기금넷 공식사이트 - 주식 시세 - CAD에서 여러 폴리라인의 총 길이를 빠르게 계산하는 방법
CAD에서 여러 폴리라인의 총 길이를 빠르게 계산하는 방법
플러그인 계산을 사용하세요.
Tianzheng Transcendence Toolset 등과 같은 많은 플러그인에는 길이 계산 기능이 있습니다.
autolisp 코드는 다음과 같습니다: (defun?c:TE?(?/?&k1?&kw1?&ss1?cd1?i?x) (setvar?"cmdecho"?0) (setvar?" blipmode"? 0) (if?(null?vlax-dump-object)?(vl-load-com)?) (princ?"\n곡선을 선택하십시오") (if?(setq?&kw1?(ssget?' ((0 ?.?"*LINE,ARC,CIRCLE,HELIX,ELLIPSE"))))
(progn (setq?i?-1.0?&ss1?'()) (while?(setq ?&k1? (ssname?&kw1?(setq?i?(1+?i))))
;(vla-put-color?(vlax-ename->vla-object?&k1)? 252)
(setq?&ss1?(cons?&k1?&ss1)) ) (setq?&ss1?(mapcar?'(lambda?(X)?(*?0.001?(vlax-curve-getDistAtParam ?x? (vlax-curve-getEndParam?x))))?&ss1)) (setq?cd1?(적용?'+?&ss1)) (setq?&ss1?(적용?'strcat?(cdr?(적용? 'append? (mapcar?'(lambda?(x)?(list?"+"?(rtos?x)))?&ss1))))) (setq?&ss1?(strcat?"("?&ss1?" )") ) (s1611151?&kw1?
(list?(strcat?"\n"?(rtos?i?2?0)?"곡선의 계산 공식은: "?&ss1) ?(strcat?" \n"?(rtos?i?2?0)?"곡선의 전체 길이:"?(rtos?cd1)?"미터")) )
) ) (princ)
)
(defun?s1611151?(&kw1?str?/?&k1?&kw1?a1?a2?ss1) (setq?ss1?'()?a1 ?0.0?i?0.0) (while?(setq?&k1?(ssname?&kw1?0))
(setq?&kw1?(ssdel?&k1?&kw1))
(if?(and?( vlax-curve-isClosed?&k1); 객체가 닫힌 객체인 경우(setq?&k1?(vlax-ename->vla-object?&k1)); vlax 객체로 변환(null?( vl-catch-all-error-p ?(setq?a2?(vl-catch-all-apply?'vla-get-area?(list?&k1))))) );면적 계산
(progn (setq?a2?( *?0.000001?a2)?i?(1+?i)) (setq?a1?(+?a1?a2));총 면적 (setq?a2?(rtos?a2 )) (if?(car?ss1 ) (setq?ss1?(append?ss1?(list?"+"?a2)));계산식 (setq?ss1?(cons?a2?s
s1))
) )
) );while (if?(>?a1?0.0)
(progn (princ?(car?str) ) (princ?(strcat?"\n"?(rtos?i?2?0)?"닫힌 물체의 면적을 계산하는 공식은 다음과 같습니다. ("?(apply?'strcat?ss1)?" )")); 계산식 표시 (princ?(cadr?str)) (princ?(strcat?";"?(rtos?i?2?0)?"닫힌 개체의 전체 영역:"(rtos? a1)?"?제곱미터" ))
)
(princ?(apply?'strcat?str)) )
)