□ SldWorks.SldWorks: SOLIDWORKS 애플리케이션의 핵심
SldWorks.SldWorks는 SOLIDWORKS 애플리케이션 전체를 나타내는 가장 상위 레벨의 객체입니다. 마치 건물의 기초와 같이 모든 SOLIDWORKS 기능에 대한 접근점을 제공하며, 매크로나 애드인을 개발할 때 가장 먼저 만나게 되는 객체입니다.
▷ SldWorks.SldWorks의 역할
- SOLIDWORKS 애플리케이션 관리: SldWorks 객체를 통해 SOLIDWORKS 애플리케이션을 제어하고 관리할 수 있습니다. 예를 들어, 새로운 문서를 생성하거나, 기존 문서를 열고 저장하는 등의 작업을 수행할 수 있습니다.
- 다른 객체에 대한 접근: SldWorks 객체는 ModelDoc2(모델 문서), Feature(피처), Component(컴포넌트) 등 SOLIDWORKS 내의 다른 모든 객체에 대한 접근점을 제공합니다. 이를 통해 다양한 모델링 작업을 자동화하고 맞춤형 기능을 구현할 수 있습니다.
- SOLIDWORKS 환경 설정: SldWorks 객체를 통해 SOLIDWORKS의 다양한 설정을 변경할 수 있습니다. 예를 들어, 단위, 색상, 인터페이스 등을 사용자의 환경에 맞게 조정할 수 있습니다.
ISldWorks Interface Members
▷ISldWorks Interface Members 에 표시된 Properties and methods란 무엇인가?
Properties 와 methods는 SOLIDWORKS API에서 가장 상위 레벨의 객체인 SldWorks 객체가 제공하는 기능들을 상세하게 정의한 부분입니다. 쉽게 말해, SOLIDWORKS 애플리케이션을 프로그래밍 방식으로 제어하고 조작하기 위해 사용할 수 있는 모든 도구들 입니다.이 멤버들은 크게 Properties (속성)와 Methods (메서드) 두 가지로 나눌 수 있습니다.
1) Properties (속성)
객체의 특징을 나타내는 값: 마치 사물의 특징을 나타내는 형용사나 명사처럼, 객체의 상태나 특성을 나타내는 값입니다.
읽기 전용 또는 읽기/쓰기 가능: 일부 속성은 값을 읽기만 가능하고, 다른 일부는 값을 변경할 수도 있습니다.
Properties (속성) 예시:
- ActiveDoc: 현재 활성화된 문서를 나타내는 ModelDoc2 객체
- Version: SOLIDWORKS 버전 정보
- UserUnitType: 현재 사용 중인 단위 (mm, inch 등)
2) Methods (메서드)
객체에 대한 작업을 수행하는 함수: 객체를 가지고 수행할 수 있는 특정 작업을 정의합니다.
입력값과 반환값: 메서드는 작업을 수행하기 위해 필요한 입력값을 받고, 결과를 반환할 수 있습니다.
Methods (메서드) 예시:
- NewDocument: 새로운 문서를 생성
- ActivateDoc3: 특정 이름의 문서를 활성화
- SaveAs: 문서를 다른 이름으로 저장
▷ methods를 사용할때 입력하는 Parameters와 Arguments란 무엇인가?
Parameters와 Arguments는 함수나 메서드를 호출할 때 자주 사용되는 용어로, 비슷한 의미를 가지지만 약간의 차이가 있습니다. SOLIDWORKS API의 ISldWorks 인터페이스 멤버에서도 이 두 용어를 자주 접하게 됩니다.
1) Parameters (매개변수)
- 함수나 메서드가 정의될 때 선언되는 변수:
함수나 메서드가 어떤 종류의 값을 입력으로 받아서 처리할지를 미리 정의하는 부분입니다. - 함수 내부에서 사용되는 변수: 함수 내부에서 전달된 값을 참조하여 작업을 수행하는 데 사용됩니다.
Parameters 예시 코드
Sub AddNumbers(ByVal num1 As Integer, ByVal num2 As Integer)
Dim result As Integer
result = num1 + num2
MsgBox result
End Sub
위 예시에서 num1과 num2는 AddNumbers 함수의 매개변수입니다.
이 함수는 두 개의 정수를 입력받아 합을 계산하고 결과를 출력하는 기능을 합니다.
2) Arguments (인수)
함수나 메서드를 호출할 때 실제로 전달되는 값: 함수를 호출할 때 매개변수에 대응하여 실제로 전달되는 값입니다.
매개변수에 할당되는 값: 함수가 호출될 때 매개변수에 해당하는 인수가 복사되거나 참조됩니다.
Arguments 예시 코드
Call AddNumbers(10, 20)
10과 20은 AddNumbers 함수를 호출할 때 전달되는 인수입니다. 각각 num1과 num2 매개변수에 할당됩니다.
1) 예제 코드
SOLIDWORKS API의 메서드를 호출할 때도 마찬가지로 매개변수와 인수를 사용합니다. 예를 들어, NewDocument 메서드를 호출하여 새로운 문서를 생성할 때, 문서의 종류(Part, Assembly 등)와 생성 위치 등을 인수로 전달해야 합니다.
ISldWorks 인터페이스 멤버를 사용할 때 매개변수와 인수를 올바르게 이해하고 사용하는 것이 중요합니다. 왜냐하면 매개변수의 자료형, 개수, 순서에 따라 함수의 동작이 달라지기 때문입니다.
Dim swApp As SldWorks.SldWorks
Set swApp = Application.SldWorks
Dim newPart As ModelDoc2
Set newPart = swApp.NewDocument("Part", 0, 0, 0)
NewDocument 메서드의 첫 번째 매개변수는 생성할 문서의 종류를 나타내는 문자열이고,
두 번째, 세 번째, 네 번째 매개변수는 문서를 생성할 위치를 나타내는 좌표값입니다.
2) 예제 코드
호출이 성공하면 swModel은 이제 아래에서 설명할 활성 모델 객체를 보유합니다. 실패하면 swModel은 아무것도 없거나 null로 유지되고 오류 변수는 실패 이유를 설명합니다.
dim swApp as SldWorks.SldWorks
dim swModel as ModelDoc2
dim errors as Long
set swApp = Application.SldWorks
set swModel = swApp.ActivateDoc3("Part1", true, swRebuildOnActivation_e.swUserDecision, errors)
swApp 변수는 SOLIDWORKS 애플리케이션 전체를 나타내는 SldWorks 객체를 담을 변수입니다.
swModel 변수는 활성화될 문서를 나타내는 ModelDoc2 객체를 담을 변수입니다.
errors 변수는 문서 활성화 과정에서 발생할 수 있는 오류 코드를 저장하기 위한 변수입니다.
set swApp = Application.SldWorks
SOLIDWORKS 애플리케이션 연결: swApp 변수에 현재 실행 중인 SOLIDWORKS 애플리케이션 객체를 할당합니다. 이를 통해 우리는 SOLIDWORKS 환경과 상호작용할 수 있게 됩니다.
set swModel = swApp.ActivateDoc3("Part1", true, swRebuildOnActivation_e.swUserDecision, errors)
문서 활성화: Part1이라는 이름의 문서를 활성화하는 명령입니다.
- "Part1": 활성화할 문서의 이름입니다.
- true: 활성화된 문서를 화면에 보이게 할지 여부를 결정합니다. true이므로 문서가 보여집니다
- swRebuildOnActivation_e.swUserDecision:
문서 활성화 후 재생성 여부를 결정합니다. 이 경우 사용자가 결정하도록 설정되어 있습니다. - errors: 활성화 과정에서 발생한 오류 코드를 저장합니다.
명명에 관하여:
변수 앞에 있는 sw는 SOLIDWORKS 객체임을 의미합니다. 이는 스마트 개발 소프트웨어가 없던 시절부터 사용되어온
헝가리안 명명 규칙입니다. 요즘에는 일반적으로 객체 위에 마우스를 올려놓으면 유형을 확인할 수 있으므로 접두사가
필요하지 않은 경우가 많습니다.
앞의 "I"는 인터페이스를 나타냅니다. 인터페이스는 특정 객체에 대한 추상적인 설계입니다.
SldWorks 객체 자체는 해당 인터페이스를 구현합니다.
인터페이스는 여러 가지 다른 구현을 갖도록 설계되었지만, SOLIDWORKS의 경우 대부분의 인터페이스는 하나의
구현만 갖습니다.
Key Points:
sw 접두사: SOLIDWORKS 객체를 나타내는 헝가리안 명명 규칙에서 유래되었지만,
현대 IDE에서는 덜 중요해졌습니다.
"I" 접두사: 인터페이스를 나타냅니다. 인터페이스는 객체의 추상적인 정의이며,
SldWorks 객체는 이 인터페이스를 구현합니다.
자주 사용 하는 코드 입니다 : 현재 활선화된 모델을 가져 오는 코드 입니다
Dim swApp As SldWorks.SldWorks
Set swApp = GetObject(, "SldWorks.Application")
On Error GoTo 0
If swApp Is Nothing Then
MsgBox "SolidWorks가 실행 중인지 확인하세요.", vbCritical
Exit Sub
End If
▷ 참고 사이트
'VBA SOLIDWORK' 카테고리의 다른 글
3.SldWorks.Feature 개념 (0) | 2024.12.25 |
---|---|
2. SldWorks.ModelDoc2 개념 (0) | 2024.12.24 |
SOLIDWORKS 매크로 및 애드인 개발을 위한 API 개체 모델 이해 (0) | 2024.12.23 |
BOM 컨셉 코드 (1) | 2024.12.20 |
독립 프로그램 개발을 위한 VB.NET 개발 환경 설정 (1) | 2024.12.20 |