반응형
■ Part 이름 가져오기
Document에 포함된 Part 이름들 가져오는 기능 입니다. Part 안에 있는 Property, Dimension의 이름 및 깂을 가져오기 위함 입니다.

● Part 이름 가져오는 코드
import FreeCAD as App
doc = App.ActiveDocument
if doc is None:
print("열려있는 문서가 없습니다.")
else:
print(f"Document : {doc.Name}")
print("=" * 60)
found = False
for obj in doc.Objects:
# 정확히 App::Part인 객체만 검색
if obj.TypeId == "App::Part":
print(f"Name : {obj.Name}")
print(f"Label : {obj.Label}")
print(f"TypeId : {obj.TypeId}")
print("-" * 60)
found = True
if not found:
print("App::Part 객체가 없습니다.")
● 프로그램 실행 결과
| 16:50:15 Document : korea01 16:50:15 ============================================================ 16:50:15 Name : Part 16:50:15 Label : Part 16:50:15 TypeId : App::Part 16:50:15 ------------------------------------------------------------ 16:50:15 Name : KO_1 16:50:15 Label : KO_1 16:50:15 TypeId : App::Part 16:50:15 ------------------------------------------------------------ |
"for obj in doc.Objects" 코드 설명
현재 FreeCAD Document 안에 들어 있는 모든 객체(Object)를 하나씩 꺼내서 검사하는 코드입니다.
Document가 가지고 있는 Object들을 하나씩 꺼내서 변수 "obj"에 넣으면서 반복 실행합니다.
1. doc.Objects란?
Document에 포함되어 있는 모든 Document Object의 목록입니다.
즉, Model Tree에서 보이는 모든 종류의 객체를 말합니다.
| Model Tree | doc.Objects에 포함된 객체 |
| Document │ ├── Part │ └── Body │ ├── Pad │ ├── Part001 │ └── Body │ ├── Box └── Spreadsheet |
doc.Objects │ ├── Part ├── Body ├── Pad ├── Part001 ├── Body001 ├── Box └── Spreadsheet |
2. obj.TypeId 이란?
Object가 가지고 있는 Property(속성)와 Method(기능)를 사용할 수 있습니다.
| Property/Attribute | Method(함수) |
| obj.Name ↑ Property → 값을 가져옴 |
obj.isDerivedFrom(...) ↑ Method → 기능을 실행함 |
다양한 예시
| 코드 | 의미 |
| obj.Name | FreeCAD 내부 이름 |
| obj.Label | Model Tree 표시 이름 |
| obj.TypeId | 객체 타입 |
| obj.PropertiesList | 객체가 가진 Property 목록 |
| obj.Document | 해당 Object가 속한 Document |
| obj.Group | App::Part 등이 포함하고 있는 객체 |
| obj.isDerivedFrom() | 특정 타입 계열인지 검사 |
| obj.getPropertyByName() | Property 값을 가져올 때 사용 |
| obj.setPropertyStatus() | Property 상태 제어 등에 사용 |
BOM 정보 수집 순서
| Document ↓ doc.Objects ↓ obj ↓ obj.TypeId ↓ App::Part ↓ obj.PropertiesList ↓ Part Number Part Name Material Description ... |
obj.를 통해 그 객체의 정보와 기능에 접근 할수 있습니다.
by korealionkk@gmail.com
반응형
'업무 자동화 > FreeCAD' 카테고리의 다른 글
| FreeCAD & Python] Property 가져오기 (0) | 2026.08.28 |
|---|---|
| FreeCAD & Python] 활성화된 문서(Document)의 이름을 확인 (0) | 2026.08.26 |
| FreeCAD & Python] VScode 사용 하기 #3 (0) | 2026.08.26 |
| FreeCAD & Python] VScode 사용 하기 #2 (0) | 2026.08.25 |
| FreeCAD & Python] VScode 사용 하기 #1 (0) | 2026.08.25 |