오토캐드] 다각형 도심(Centroid) 찍어주는 리습(Lisp)
- Cad
- 2020. 3. 19.
오토캐드에서 Region 객체는 "massprop" 명령어로 단면적(Area), 외곽선 길이(Perimeter), 도심(Centroid), 단면2차모멘트(Moments of inertia) 등을 확인할 수 있습니다.
위 그림은 정삼각형을 Region으로 만들어 massprop로 확인한 예입니다. 각 단면성질은 수치로 나타내어 지는데요, 그 중 도심(Centroid)을 보면 X, Y 좌표로 값이 나옵니다. 캐드 그림상으로 도심을 표시하고 싶다면 point 나 circle 명령에서 이 좌표를 입력하면 가능합니다. 하지만 텍스트를 일일이 쳐야하는 번거로움이 있죠.
아래 리습을 이용하면 Region 객체 도심을 Point로 바로 찍을 수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 | (defun c:rcen(/ ent pcen) (vl-load-com) (setq ent (car (entsel "\n Select Region: "))) (if (and ent (= (vlax-get-property (vlax-ename->vla-object ent) 'Objectname) "AcDbRegion")) (progn (setq pcen (vlax-safearray->list (vlax-variant-value (vla-get-Centroid (vlax-ename->vla-object ent))))) (print pcen) (entmake (list (cons 0 "point") (cons 410 (getvar "ctab")) (cons 10 pcen))) ) (princ "\n Object not selected or is not Region!") ) (princ) ) | cs |
긁어서 메모장에 붙인 후 파일명을 rcen.lsp 로 만들어서 appload 로 로딩시키면 됩니다. 명령어는 rcen 입니다.
rcen을 치면 "Select Region" 이라고 나옵니다. 객체를 선택해 주면 도심에 Point가 찍히고 명령어창에 도심 좌표도 보여집니다.
캐드 그림상으로 도심을 확인할 수 있으니 꽤 유용하게 쓸 수 있습니다. 활용해 보시기 바랍니다.(아래는 다각형 하나더 그려서 확인해 본 예입니다)
'Cad' 카테고리의 다른 글
캐드] 객체(치수, 블럭, 해치, 원, 폴리라인)만 선택하는 간단한 리습 (0) | 2021.04.18 |
---|---|
오토캐드] 무한 수직, 수평선 긋기 리습 (0) | 2020.03.23 |
Cad] 변곡 강연선(Tendon) 배치 VBA (0) | 2020.03.15 |
Cad] 정착부 강연선(Tendon) 배치 VBA (3) | 2020.03.15 |
Cad] 직선과 접하는 두점으로 이루어진 원호(Arc) 그리기 (0) | 2020.03.14 |