👉 sub_PPT_to_Freecad_macro_data.py
이 도구의 목적은 회로 설계자가 PPT 슬라이드만으로도 3D 기구 형상을 설계할 수 있게 만드는 것입니다.
전력전자 제품은 방열판, 케이스, 단자대, 변압기 배치처럼 기구 요소가 회로만큼 중요합니다.
그러나 회로 설계자가 별도의 3차원 도면 프로그램을 익히기에는 시간과 부담이 큽니다.
그래서 이 도구는 PPT에서 사각형과 원 몇 개만 그려도, 그리고 간단한 이름 규칙만 지켜도, FreeCAD에서 바로 3차원 형상을 만들어 주는 흐름을 제공합니다. 이미 익숙한 슬라이드 위에서 2차원 도형을 배치해 두면, 이를 자동으로 읽어 FreeCAD에서 입체 모델로 보여줍니다.
FreeCAD는 비용 없이 사용할 수 있으며, 구체적인 프로그램 사용법을 몰라도 됩니다.
이 도구가 PPT와 FreeCAD 사이를 이어 주는 ‘다리’가 되어, 회로와 기구 담당자가 같은 입체 모델을 보며 이야기하는 시간을 늘려주는 것이 목표입니다. 그 시간이 많아질수록 제품의 완성도는 자연스럽게 더 높아집니다.



이 도구는 세 개의 파이썬 파일이 함께 동작합니다.
- PowerPoint에서 도형을 그립니다.
- 사각형, 원으로 형상을 만들고
- 각 도형 안에 “높이·두께·바디 종류(P/D/N)” 정보를 글자로 적습니다.
main_PPT_to_Freecad.py실행- PowerPoint 파일을 열어 그룹을 해제합니다.
- 그룹 안에 하나만 적어 둔 텍스트를 그 그룹 안 모든 도형으로 복사합니다.
- 처리된 파일을
c:\tmp_freecad\tmp.pptx에 저장합니다.
sub_PPT_to_Freecad_macro_data.py실행tmp.pptx를 읽어- 각 도형의 중심 좌표, 크기, 회전, 색, 높이 정보를 정리한 뒤
c:\tmp_freecad\ppt_freecad.txt에 저장합니다.
- FreeCAD에서
freecad_macro.py실행ppt_freecad.txt를 읽어- P 바디, D 바디, N 바디를 입체 형상으로 만들고
- 서로 더하고 빼는 연산을 통해 최종 입체 형상을 만듭니다.준비 사항
- 폴더와 파일 위치
- 작업용 기본 폴더:
c:\tmp_freecadtmp.pptx: 그룹 해제 후 저장되는 임시 PowerPoint 파일ppt_freecad.txt: FreeCAD 매크로에서 읽는 최종 입력 자료
- 세 파이썬 파일
main_PPT_to_Freecad.pysub_PPT_to_Freecad_macro_data.pyfreecad_macro.py필요한 도구
- 파이썬 3
- 마이크로소프트 PowerPoint
- FreeCAD
- 파이썬 꾸러미
python-pptx(명령 줄에서pip install python-pptx)파워포인트에서 도면 작성 규칙- 작업 슬라이드와 표시 글자
- 변환 대상이 되는 슬라이드에는 반드시
@freecad라는 글자를 넣습니다. - 이 글자가 없는 슬라이드는 변환 대상에서 제외됩니다.
권장 방법
- 가장 간단한 방법은 첫 슬라이드만 작업용으로 쓰고, 나머지는 삭제한 뒤 저장하는 것입니다.
- 여러 슬라이드를 쓸 경우, 각 슬라이드마다
@freecad와 아래의z_base를 함께 적어 주는 것이 안전합니다.
예시)
@freecad, z_base=0, scale=10
좌표 기준과 축척
- 스크립트는 슬라이드에서 도형들의 최소 x, y 값을 찾아 좌표 기준점으로 사용합니다.
@freecad가 들어 있는 글상자에scale=값을 함께 적으면 그 값을 축척으로 사용합니다.- 적지 않으면 기본값은
1.0입니다.
예시)
- 슬라이드에서 가로 길이를 10으로 그렸는데 실제로 100 정도의 길이로 만들고 싶다면
scale=10으로 적습니다.도형 종류와 선 설정
변환 대상 도형
- 사각형
- 원(타원 포함, 원통으로 해석)
변환되지 않는 것
- 선이 없는 도형
- 점선, 대시선 등 실선이 아닌 선
- 그림, 장식 도형, 단순 글상자 등
실선으로 된 사각형·원만 변환 대상으로 사용됩니다.
높이 정보 텍스트 형식
각 사각형·원 도형 안에 높이 정보 텍스트를 적어야 입체 형상으로 변환됩니다.
텍스트가 없으면 경고만 남기고 그 도형은 무시합니다.
기본 형식
P, z0, 두께, 이름D, z0, 두께, 이름N, z0, 두께, 이름
- 첫 항목: 바디 종류
P: 기본 몸체(양의 바디)D: 구멍·파임 등 제거용 바디N: 공통으로 빼낼 바디(관통 홈 등)
- 두 번째 항목:
z0(시작 높이)- 숫자만 사용합니다.
- 슬라이드별
z_base와 더해져 최종 시작 높이가 됩니다.
- 세 번째 항목: 두께
- 양수·음수 모두 허용
- 0 또는 음수로 넣으면 스크립트가 적절히 보정합니다.
- 네 번째 항목: 이름(선택)
- 글자·숫자·점(.)만 허용
- 적어 두면 FreeCAD에서 해당 바디 위에 이름이 입체 글자로 표시됩니다.기준 높이 z_base
각 작업 슬라이드의 @freecad 글상자 안에
z_base=값
을 함께 적어 슬라이드 전체의 기준 높이로 사용합니다.
모든 도형의 z0에 이 값이 더해집니다.
예시)
@freecad, z_base=20, scale=1그룹을 이용한 일괄 적용
복잡한 형상을 여러 도형으로 나누어 그릴 때, 모든 도형에 같은 텍스트를 넣는 것은 번거롭습니다.
이를 줄이기 위한 규칙:
- 같은 높이 정보를 써야 하는 도형들을 하나의 그룹으로 묶습니다.
- 그 그룹 안의 도형들 중 하나에만
P, z0, 두께, 이름형식으로 텍스트를 적습니다. main_PPT_to_Freecad.py를 실행하면- 그 그룹 안의 모든 도형에 같은 텍스트가 복사됩니다.
- 이때 복사된 글씨는 자동으로 빨간색, 작은 글씨로 바뀝니다.
- 이후 그룹은 자동 해제되고, 각 도형은 독립된 상태로 다음 단계로 넘어갑니다.
- 색상 사용
- PowerPoint에서 지정한 도형 색은 가능한 한 FreeCAD에서 그대로 유지합니다.
- 특정 색상은 보기 좋은 색으로 자동 치환되도록 색상 표가 준비되어 있습니다.
- 색상은 주로 부품 구분과 시각적인 강조에 사용됩니다.파워포인트 파일 저장
- 파이썬 스크립트 실행 순서
- 작업한 파일을 예를 들어
c:\tmp_freecad\my_model.pptx
와 같은 경로로 저장합니다.첫 번째 스크립트 실행
파일: main_PPT_to_Freecad.py
- 명령 줄(또는 파워셸)을 열고, 스크립트가 있는 폴더로 이동합니다.
- 다음과 같이 실행합니다.
python main_PPT_to_Freecad.py "c:\tmp_freecad\my_model.pptx"
이 스크립트가 하는 일
@freecad가 있는 슬라이드만 찾습니다.- 그룹 안에서 하나만 적어 둔 높이 정보를 그룹 전체 도형으로 복사합니다.
- 그룹을 해제한 뒤 결과를
c:\tmp_freecad\tmp.pptx로 저장합니다. - 저장 후, 안내에 따라 두 번째 스크립트를 이어서 실행할 수 있습니다.두 번째 스크립트 실행
파일: sub_PPT_to_Freecad_macro_data.py
- 첫 스크립트 안내에 따라 바로 실행하거나, 따로 명령 줄에서 실행할 수 있습니다.
하는 일
c:\tmp_freecad\tmp.pptx를 열어- 슬라이드와 도형을 분석하고
- 각 도형의 종류, 위치, 크기, 회전, 색, 높이 정보를 정리해
c:\tmp_freecad\ppt_freecad.txt에 저장합니다.
마지막에
“입력 자료를 …에 저장하였습니다.”
와 비슷한 문장이 출력되면 준비가 끝난 것입니다.
프리캐드에서 입체 형상 만들기
매크로 등록
파일: freecad_macro.py
- FreeCAD를 실행합니다.
- 매크로 관리 창을 열어
- 새 매크로를 만들고
freecad_macro.py내용을 붙여 넣거나, freecad_macro.py파일을 그대로 등록합니다.
- 새 매크로를 만들고
이 매크로는 실행 시 자동으로 c:\tmp_freecad\ppt_freecad.txt를 읽습니다.
매크로 실행과 형상 생성
매크로를 실행하면 대략 다음과 같은 단계로 진행됩니다.
- 새 문서를 만들고 입력 파일을 읽습니다.
- 한 줄씩 해석하여
- P 바디 목록
- D 바디 목록
- N 바디 목록
을 나눕니다.
- 사각형은 박스, 원은 원통으로 만들어 높이 정보를 반영합니다.
- 이름이 있는 경우, 바디 위에 입체 글자를 올립니다.
- 모든 P 바디를 합쳐 하나의 본체로 만들고, 모든 N 바디를 따로 합친 뒤
- 본체에서 N 바디를 빼서 최종 형태를 만들고
- D 바디에도 필요하면 N 바디를 적용해 관통 구멍이나 공통 파임 등을 처리합니다.
- 화면에 모든 형상이 잘 보이도록 뷰를 정리합니다.
필요하면 중간 단계 바디(P_SUM, N_SUM 등)는 숨기고 최종 결과만 남겨서 작업할 수 있습니다.
자주 하는 실수와 점검 방법
@freecad를 빼먹은 슬라이드- 변환 대상에서 제외되며, 중간 파일에 슬라이드 번호와 함께 경고가 남습니다.
- 도형 안에 높이 정보를 쓰지 않은 경우
- 경고 메시지만 남고 그 도형은 무시됩니다.
- 형식이 잘못된 텍스트
- P/D/N이 아닌 글자, 숫자가 아닌 높이·두께, 허용되지 않은 특수문자가 들어간 이름 등은 자동으로 걸러집니다.
- 두께를 0이나 음수로 입력한 경우
- 스크립트가 내부적으로 z0와 두께를 보정합니다.
- 이상하면
ppt_freecad.txt를 열어 실제로 어떤 값으로 저장되었는지 확인하면 됩니다.마무리
'AI와 코딩' 카테고리의 다른 글
| [동영상 추천] Claude Code 토큰 비용 절감 완벽 설명서 (0) | 2026.04.24 |
|---|---|
| [HTML 코드 공유] 음성 타자기 (0) | 2026.04.15 |
| [파이선 코드 공유] PPT를 이용한 그래프 데이터 추출(그래프 디지타이저) (0) | 2025.12.02 |
| [HTML 코드 공유] SmartCompare - 웹 기반 줄 단위 파일 비교 & 편집 도구 (0) | 2025.12.01 |
| [ AI ] AI 시대, 엔지니어라면 반드시 Python을 배워야 하는 이유 (5) | 2025.11.29 |