레이블이 Cad인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Cad인 게시물을 표시합니다. 모든 게시물 표시

2024년 7월 22일 월요일

freecad의 충돌 그리고 실행을 위한 python3.11의 libshiboken2, libpyside2 링크 만들기

 잘쓰던 freecad가 python3의 버전이 오롯이 3.12로 재편 되면서 기존의 3.11이 있음에도 불구하고 3.11이 제대로 돌아가지 못하게 되었다. 

 그래서 덩달아 freecad도 실행이 불가능한 상태가 되어 버렸다. 해결해 볼라구 찾아 보았다 크게 2개의 문제가 되더라 libpyside2와 libshiboken2, 이 둘이 freecad의 GUI를 담당하는데 찾고 있던 경로(/usr/lib/python3/dist-packages/)에 없었던 듯 하다.

 데비안 패키지 저장소를 뒤졌으나 libshiboken2-py3-5.15_5.15.10-4_amd64.deb 밖에 없었다. 범위를 넓혀서 rpm도 찾아 보았다. 그래서 데비안 libpyside2 패키지를 대체할 수 있는 pyside2-core-5.15.12-2-omv2490.x86_64.rpm를 다운로드 받았다. 

 데비안 현시점(2024-07-22)의 testing 배포판의 python3의 주력이 3.12으로 넘어가 버려서 /usr/lib/python3/dist-packages에 3.11 버전의 패키지를 덮어 씌우는 것은 시스템을 망가트릴 수 있어 아래의 경로에 해당 라이브러리들(libpyside2*, libshiboken2*)을 복사해 두었다.

 $ mv /home/daysleep/Downloads/libpyside2.cpython-311-x86_64-linux-gnu.so.5.15* /usr/lib/x86_64-linux-gnu/
$ mv /home/daysleep/Downloads/libshiboken2/libshiboken2-py3-5.15_5.15.10-4_amd64/usr/lib/x86_64-linux-gnu/libshiboken2.cpython-311-x86_64-linux-gnu.so.5.15* /usr/lib/x86_64-linux-gnu/
$ cp -r /home/daysleep/Downloads/libshiboken2/libshiboken2-py3-5.15_5.15.10-4_amd64/data/usr/lib/python3/dist-packages/shiboken2 /usr/local/lib/python3.11/dist-packages/

뭐 그래도 여전히 유독 /usr/lib/python3/dist-packages에서만 찾는 plugin 자원들은 문제가 생기더라 뭐 찝찝하지만 실행은 되니 우선 임시적으로 이렇게 써야 겠다.

* 주의 사항: symbolic link 생성시 반드시 작업 디레토리를 생성 경로로 설정해야 생성이 되더라 한참 애먹었다. 

$ ln -s libpyside2.cpython-311-x86_64-linux-gnu.so.5.15.12 libpyside2.cpython-311-x86_64-linux-gnu.so.5.15

2022년 7월 10일 일요일

FreeCad, Debian Test에서 사라지다.

 어느날 부터인가 libboost가 업그레이드가 안되더니 수작업으로 업그래드 한 후 갑자기 freecad가 자동으로 사라져 버렸다. test 리포지터리에서 사라진것 같다. 

 freecad 홈페이지에 가 보았더니 처음에 experimental로 올리고 나중에 testing으로 전환된다고 한다. 아마도 지금은 experimental에서 testing으로 전화되기 중간과정에서 기존 버전을 내리는 과정에 있는 것 같다. 언제 올라올지 몰라서 현재 패키지 리포지터리에 unstable 을 추가하고, freecad만 설치한후 다시 unstable 소스 리포지터리를 주석처리해서 다른 패키지에 영향을 안주도록 만들었다.


deb http://ftp.us.debian.org/debian/ testing main contrib non-free
# deb-src http://ftp.us.debian.org/debian/ testing main contrib non-free

deb http://security.debian.org/debian-security testing/updates main contrib non-free
# deb-src http://security.debian.org/debian-security testing/updates main contrib non-free

deb http://ftp.us.debian.org/debian/ unstable main contrib non-free
# deb-src http://ftp.us.debian.org/debian/ unstable main contrib non-free

2015년 11월 13일 금요일

Kicad의 결과물을 3D 캐드 에서 편집할 수 있게 해주는 방법

Kicad가 다 좋은데 평소에 섭섭하게 생각했던 것이 3D 모델링 기능이다. 3D 부품을 추가하고 편집할 수 있는 유일한 방법은 Wing3D 뿐인데 이것이 문제가 많은 프로그램이다. 하지만, 아래의 링크에 가면 StepUp 스크립트를 통해서 Kicad에서 FreeCad가 편집할 수 있는 형태로 export하는 방법을 제공하고 있다. 조만간 써야할 일이 발생할 것같아 이렇게 기록해 둔다.

http://hackaday.com/2015/11/08/kicad-script-hack-for-better-mechanical-cad-export/

2013년 11월 25일 월요일

FreeCAD로 30mm Aluminum Profile의 3D 도면 그리기

 3D 프린터가 앞으로 많이 보급되게 됨에 따라 3D 캐드 프로그램이 새로이 관심을 받게 될 것으로 생각된다. 아무래도 돈 주고 사야하는 프로그램이 사용하기 편하고 기능도 다양하겠지만, 간단한 작업을 주로 하게될 대부분의 사람들에게 무료이면서 왠만한 기능은 다 가지고 있는 FreeCAD 프로그램은 대단히 유용하다.

 이 문서는 FreeCAD 프로그램을 가지고 3D의 30mm의 알류미늄 프로파일을 그리는 작업을 설명하고자 한다. 30mm 알루미늄 프로파일은 모두 동일한 단면을 가지고 있기 때문에, 단면에 대한 2D 도면을 그리고 그 도면을 z-축으로 확장(extrude) 하는 방법으로 생성하면 된다.

 먼저, 2D 도면을 가지고 있는 sketch에서 3D 물체를 그리기 위해서는 FreeCAD를 실행하고 View 메뉴의 Part Design모드를 선택한다.


그럼 다음과 같이 창과 메뉴 구성이 설정된다.


그리고 새로운 프로젝트를 생성하자.


Create sketch를 선택하여 새로운 스케치를 생성하자.


 Choose orientation 창에서 sketch가 XY-Plane을 갖도록 설정하고 OK를 선택하자. 그럼 다음과 같이 구성이 변경된다.


툴바를 활성화 시키기 위해선  Tree view에서 Sketch를 선택해야한다. 이제 실제로 30mm 알루미늄 프로파일의 단면이 어떻게 구성되어 있는지 살펴보아야 한다.

30mm 알루미늄 프로파일의 단면 도면.
출처 : http://www.valuframe.co.uk/Series-6-Aluminium-Profiles.html

위의 그림에서 보듯이 간단하지가 않다. 반복되는 문양의 네 개가 있는데 우선 좌측 아래 쪽을 먼저 그려나가 보도록 하자. 우선 'ㄴ'자 모양을 그리기 위해서 확장 툴바를 클릭하고 다중 직선 그리기 툴바를 선택하자.


그리고 아무 곳에 'ㄴ'자 문양의 도형을 그린다.


'ㄴ'자 의 수평 위치를 설정하기 위해서 'ㄴ'자의 수직변과 원점을 선택하여 녹색으로 만들고  두 지점의 거리를 설정하는 툴바를 선택한다.


그리고 그 거리를 15mm로 설정한다.


수직 위치도 마찬가지로 'ㄴ'자의 수평변과 원점과의 거리를 15mm로 설정한다.


 'ㄴ'자의 수평변의 길이를 설정하기 위해서 수평변을 선택하여 녹색으로 만들고 수평 길이를 설정하는 툴바를 선택한다.


그리고 수평변의 길이를 11.9mm로 설정하자.


마찬가지로 수직변의 길이도 11.9mm로 설정하면 도면에 자유도가 전혀 없는 상태를 알리며 도면의 도형이 전부 녹색으로 변화 한다.


 'ㄴ'자의 모서리의 모따기를 수행하기 위해서 확장 툴바에서 모따기를 선택한다.


 그리고 'ㄴ'자의 수직변과 수평변을 선택하고


모서리의 모따기를 수행한다.


모따기가 수행된후 그 반경을 설정하기 위해서 모따기된 호를 선택하고 반지를 설정하는 툴바를 선택한다.


그리고 그 반지름을 3mm로 설정한다.


그럼 마찬가지로 자유도가 전혀없는 완벽한 도면임을 말해주는 녹색으로 변화한다. 이 부분은 항상 중간 중간에 확인해 주어야 한다. 나중에 어느 부분에서 자유도 문제가 발생하면 프로그램이 중단되거나 다운된다. 그러니 매 단계에서 파일 저장을 주기적으로 해주어야 하고 중간 단계를 확인하기 위해서 각 단계마다 자유도가 없는 완벽한 도면이 되도록 만들어 주어야 한다.


나머지 변을 그리기 위해서 위해서 직선 그리기를 선택하자.


그리고 수직 성분만 가지고 있는 직선을 그리자. 직선을 그리다 보면 주변의 도형에 따라서 접선 성분이나. 접점 성분이 첨가된 직선이 만들어 지기도 하는데 항상 확인해 주어야 한다. 만약 이러한 불필요한 성분이 있다면 좌측 Tasks 탭에서 해당 성분을 찾아 일일이 제거해 주도록 하자.


그리고 접점 성분을 추가하기 위해서 접점이 되어야 할 두 점을 선택하고 접점을 만들어 주는 툴바를 선택하자.


그리고 추가된 직선의 길이를 설정하자.


길이는  3mm이다.


마찬가지로 반대편도 3mm의 수평선의 접선을 그리자.


아래의 그림에서 보듯이 3mm의 길이를 갖는 수평 및 수직 접선을 그리자.


이제는  1.5mm의 길이를 갖는 수평 및 수직 접선을 아래의 그림과 같이 그리자.


같은 작업을 수직 및 수평 방향에 대해서 수행하자.


이제는 길이의 제한이 없는 수직 및 수평 접선을 그리자. 그리고 두 직선이 접점을 형성하도록 적당히 길이를 조절하자.


접점을 형성하는 두 직선을 접점을 경계로 자르기를 하기 위해서 확장 메뉴의 trim기능을 선택하자.


그리고 수직 및 수평 방향으로 튀어 나온 부분을 제거하자. 그럼 자유도가 없는 완변한 도면임을 나타내는 녹색으로 변하게 될 것이다.


자 이제는 내부의 사각형을 그리기 위해서 툴바에서 사각형 그리기를 선택하자.


그리고 사각형 성분 이외의 성분, 접점, 접선등 과 같이 다른 도형과 연계되는 성분이 없도록 작업 영역과 멀리 떨어져서 사각형을 그리자. 만약 위와 같은 성분이 생성 되면 Tasks 탭에 가서 해당 성분을 수동으로 제거 하도록 하자.


사각형의 윗 선분의 위치를 지정하기 위해서 아래의 그림과 같이 사각형의 한 꼭지점과 한 선분을 선택하고 두 거리를 지정하는 툴바를 선택하자.


그 거리는 1.5mm로 설정하자.


그럼 사각형의 윗 선분과 이전의 도면과의 상대적이 수직 위치는 고정되게 된다.


이제는 사각형의 우측 변과 이전 도면의 상대 위치를 설정하기 위해서 사각형 우측의 한 꼭지점과 이전 도면의 한 변을 선택하고 이 거리를 지정하는 툴바를 선택하자.


마찬가지로 그 거리를 1.5mm로 하자. 그럼 다음 그리고 같이 사각형의 모양이 변하게 된다.


나머지 변들도 마찬가지로 1.5mm의 간격을 갖도록 설정하자.


그리고 새로 그려진 사각형의 좌측 하단의 꼭지점에 모따기를 수행하고 그 반경은 1.5mm로 설정하자.


이제는 원을 추가하기 위해서 원 그리는 툴바를 선택하자.


그리고 이전 도면의 간섭을 받지 않도록 이전 도면과 좀 떨어진 위치에 원을 그리자.


원의 중심을 원점에 위치 시키기위해서 원의 중심과 원점을 선택하고 접점을 만들어 주는 툴바를 선택하자.


그리고 마지막 남은 자유도인 원의 반지름을 설정하기 위해서 원주를 선택하고 반지를 설정하는 툴바를 선택하자.


반지름을 2.5mm로 설정하자.


반지름이 지정되면 자유도가 없는 상태를 알리는 녹색으로 도면이 변하게 된다.


원점에 중심을 있고 10.5mm의 가로 세로 길이를 갖는 사각형을 그리자.


직선을 추가하자. 마찬가지로 주의 할 것은 직선과 수직성분을 포함한 어떠한 성분도 갖지 않도록 이전의 도면과 멀리 떨어져서 그려야 한다는 것이다.


아래의 그림과 같이 각 꼭지점과 해당 직선이 거리 1mm를 유지하도록 설정한다. 아직 이 직선의 길이는 설정하지 않는다. 대신 양 쪽으로 접점을 형성할 정도로 알맞게 길이를 조절하자.


비슷한 직선을 하나 더 추가해 보자.


이전에 추가한 직선과 마찬가지로 1mm의 간격을 유지하도록 설정하자.


추가한 두 개의 직선으로 생기는 접점에서 발생하는 쓸모 없는 직선을 제거하기 위해서 trim을 수행하자.


이와 같은 작업을 나머지 세 모서리에 대해서 반복하자. 그럼 아래의 그림과 같이 30mm의 알류미늄 프로파일의 단면이 형성될 것이다.


이제는 이 작업 Sketch를 떠나기 위해서 esc 키를 누르자.


2D 도면을 z축으로 확장해서 3D 객체를 만들어 내는 명령을 Autocad에서 extrude라고 했는데 FreeCAD에서는 해당 scatch를 선택하고 pad로 만드는 작업이 이에 해당하는 것 같다. 위의 그림에서 보듯이 해당 scatch에 커서를 놓고 Tasks탭에서 Pad 메뉴를 선택하자. 아니면 아래의 그림과 같이 툴바에서 Pad툴바를 선택하고 extrude 할 scatch를 선택하자.


그럼 아래의 그림과 같이 높이 10mm의 알류미늄 프로파일이 생성된다. 높이의 설정은 좌측하단의 Tasks 탭 안에 Pad parameters의 length를 조절하여 변경할 수 있다.


그럼 길이를 100mm로 설정해보자. 아래의 그림과 같이 높이 100mm를 갖는 30mm 알류미늄 프로파일을 완성할 수 있다.