2025년 3월 28일 금요일

[VB6] 폼 종료(X) 버튼 클릭 시 종료 여부 확인하는 방법

 VB6(VB6.0)에서 폼의 종료(X) 버튼을 눌렀을 때, 바로 종료되지 않고 사용자가 종료할지 취소할지 선택할 수 있도록 설정하는 방법을 소개합니다.

종료 버튼(X) 클릭 시 확인 메시지 띄우기

사용자가 X 버튼을 눌렀을 때, "프로그램을 종료하시겠습니까?"와 같은 메시지를 띄워 종료 여부를 선택하도록 만들 수 있습니다.

구현 코드 (Form_QueryUnload 사용)

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    ' X 버튼을 눌렀을 때 확인 메시지를 표시
    If UnloadMode = vbFormControlMenu Then
        Dim result As Integer
        result = MsgBox("프로그램을 종료하시겠습니까?",
                 vbYesNo + vbQuestion, "종료 확인")
        
        ' 사용자가 "아니오"를 선택하면 종료 취소
        If result = vbNo Then
            Cancel = True
        End If
    End If
End Sub

코드 설명

  1. QueryUnload 이벤트 활용

    • 폼이 닫히려 할 때 실행되는 이벤트입니다.

    • UnloadModevbFormControlMenu이면 X 버튼을 클릭한 경우입니다.

  2. MsgBox로 종료 확인 메시지 표시

    • vbYesNo + vbQuestion 옵션을 사용하여 "예/아니오" 버튼이 있는 메시지를 띄웁니다.

  3. 종료 여부 결정

    • 사용자가 "예(Yes)"를 선택하면 종료됩니다.

    • 사용자가 "아니오(No)"를 선택하면 Cancel = True로 종료를 취소합니다.

실행 예시

X 버튼을 누르면 다음과 같은 메시지가 표시됩니다.

[종료 확인]
프로그램을 종료하시겠습니까?
[예]  [아니오]
  • [예]를 클릭하면 프로그램이 종료됩니다.

  • [아니오]를 클릭하면 프로그램이 계속 실행됩니다.

응용: 특정 버튼으로만 종료되도록 설정

만약 X 버튼으로는 종료되지 않고, 특정 버튼을 눌러야만 종료되도록 만들고 싶다면 다음과 같이 구현할 수 있습니다.

특정 버튼을 눌러야만 종료되게 만들기

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    ' X 버튼으로 종료 방지
    If UnloadMode = vbFormControlMenu Then
        Cancel = True
        MsgBox "이 프로그램은 X 버튼으로 종료할 수 없습니다.", vbInformation, "알림"
    End If
End Sub

' 종료 버튼 (CommandButton) 클릭 시 종료
Private Sub cmdExit_Click()
    Unload Me
End Sub

마무리

이 방법을 활용하면 VB6 프로그램에서 실수로 X 버튼을 눌러 종료되는 것을 방지하고, 사용자에게 종료 여부를 확인할 수 있도록 할 수 있습니다. 필요에 따라 X 버튼을 아예 비활성화하거나, 특정 버튼으로만 종료되도록 변경하는 것도 가능합니다.

2025년 3월 23일 일요일

Blender Bsurface 애드온 사용법

 Blender에서 Bsurface 애드온을 활용하면 Grease Pencil이나 엣지를 이용하여 빠르게 메쉬를 생성할 수 있습니다. 특히 리토폴로지(Retopology) 작업에 유용합니다. 이 글에서는 Bsurface 애드온의 활성화 방법과 구체적인 사용법을 소개합니다.


🔹 Annotation을 활용한 리토폴로지 과정


1️⃣ Bsurface 애드온 활성화

  1. Blender 상단 메뉴에서 Edit > Preferences 를 클릭합니다.

  2. Add-ons 탭으로 이동한 후, 검색창에 Bsurface 입력합니다.

  3. "Mesh: Bsurface GPL Edition" 체크박스를 활성화합니다.

  4. 설정을 저장하려면 "Save Preferences" 버튼을 클릭합니다.

이제 Edit Mode에서 Bsurface 기능을 사용할 수 있습니다.


2️⃣ 리토폴로지할 오브젝트 준비

  1. 리토폴로지를 할 모델(예: 조각된 얼굴)을 선택

  2. Tab 키를 눌러 Edit Mode로 전환


3️⃣ Annotation을 사용하여 가이드라인 그리기

  1. "Placement" 옵션을 Surface로 설정

    • 이렇게 하면 Annotation 선이 모델 표면에 붙음

  2. 리토폴로지를 원하는 부분에 메쉬 가이드라인을 그리기


4️⃣ Bsurface로 면 생성

  1. 우측 Bsurface 패널에서 "Add Surface" 클릭

    • 그러면 Annotation 선을 따라 메쉬가 생성됨

  2. 필요에 따라 Subdivision 값을 조정하여 세부 디테일 수정



2025년 3월 22일 토요일

Blender Curve Extrude & Bevel 사용법 (Taper 적용 예제 포함)

 

1. 개요

Blender에서 Curve를 활용하면 간단한 선을 3D 형태로 변환할 수 있습니다. 특히 Extrude(압출), Bevel(베벨), Taper(테이퍼) 기능을 이용하면 곡선을 더욱 다양하게 변형할 수 있습니다. 이번 포스팅에서는 Taper Curve를 활용하여 유기적인 형태를 만드는 방법을 소개합니다.



2. Taper와 Bevel을 이용한 곡선 변형

2.1 Taper란?

Taper는 한쪽 끝은 가늘고, 다른 쪽 끝은 두껍게 만들 수 있는 기능입니다. 이를 활용하면 점진적으로 변형되는 곡선을 만들 수 있습니다.

2.2 Bevel과 Taper 적용 방법

  1. Shift + A → Curve → Bezier Curve 추가 (메인 곡선)

  2. Shift + A → Curve → Bezier Curve 추가 (Taper 곡선)

  3. 메인 곡선을 선택한 상태에서 Properties Editor → Object Data Properties → Geometry → Taper Object에 만든 Taper Curve를 지정

  4. 곡선의 두께가 Taper 곡선의 형태에 따라 점진적으로 변형됨

3. 실전 예제: 유기적인 튜브 형상 만들기

3.1 기본 세팅

  1. Shift + A → Curve → Bezier Curve 추가 (메인 곡선)

  2. Shift + A → Curve → Bezier Circle 추가 (단면 형상)

  3. 메인 곡선을 선택하고 Bevel Object로 Bezier Circle 지정

3.2 Taper 적용

  1. Shift + A → Curve → Bezier Curve 추가 (Taper 곡선)

  2. 메인 곡선 선택 후 Taper Object에 해당 곡선을 지정

  3. 필요하면 **Edit Mode (탭 키)**에서 Taper 곡선을 변형하여 원하는 형태로 조정

4. 단축키 및 추가 팁

  • H / Alt + H: 곡선 제어점을 숨기거나 다시 표시

  • G / R / S: 곡선 제어점을 이동, 회전, 크기 조절

  • Properties Editor → Geometry → Fill Mode: Full을 선택하면 단면이 채워진 튜브 형태가 됨

5. 마무리

Blender에서 Bevel과 Taper 기능을 활용하면 단순한 곡선도 다채로운 3D 모델로 변형할 수 있습니다. 위의 내용을 참고하여 창의적인 모델링을 시도해 보세요!

-


Sidewinder


World


FishMusic


LaughingBaby