안녕하세요!
회사에서 cad로 cam 프로그램을 산출하고 있는 lisp 초보입니다.
2d인 cad에서 rotate3d함수를 사용하여 회전한 좌표값을 얻을려구 하는데 cad와 lisp에서 좌표값이 틀리게 나옵니다. 도저히 알길이 없어 이렇게 올립니다. 고수님의 조언좀 부탁드립니다.
(setq aa (ssget “_L” )) ;; 객체 선택해서 회전값을 줌
(rotate3d aa ‘(-365. -400. -740.) ‘(0. -400. -740.) (atof (angtos pgb_a 0 4)))
(setq tmp_orign (cdr (assoc 10 (entget (SSNAME AA 0 ))))) ; = (-245.161 -502.429 -511.729)
이렇게 해서 얻은값 tmp_orign하고 cad에서 회전한 block의 list를 뽑은 좌표가 맞지 않습니다.
Select objects:
BLOCK REFERENCE Layer: “0”
Space: Model space
Handle = 3E0B
“VA_DAN1”
at point, X=-264.1946 Y=-356.0689 Z=-535.5889
X scale factor 1.0000
Y scale factor 1.0000
Z scale factor 1.0000
Extrusion direction relative to UCS:
X= 0.0000 Y= -0.0644 Z= 0.9979
rotate3d 함수를 사용할때는 따로 엔티티의 속성에서 불러오는 방식이 존재하는지 궁금합니다.