ingoenius
Guest
안녕하세요 나는 텍스트 파일에서 추출 해야 하는 파일 lisp가 있다 좌표 위치와 스케일 블록 이름
일반적으로 작동하지만, 나는 블록이 차단 될 때 블록의 회전을 올바르게 transcribe하고 3d에서 여러 축으로 회전 할 수있는 문제가 있습니다.
나는 누군가가 더 숙련 된 upo를 경험 한 경우 내 lisp에서 여기에 넣었습니다 (보기가 완벽 할 것)
감사합니다.
일반적으로 작동하지만, 나는 블록이 차단 될 때 블록의 회전을 올바르게 transcribe하고 3d에서 여러 축으로 회전 할 수있는 문제가 있습니다.
나는 누군가가 더 숙련 된 upo를 경험 한 경우 내 lisp에서 여기에 넣었습니다 (보기가 완벽 할 것)
감사합니다.
Code:
;;; 아닌은 숫자의 죄 아크를 반환, 라디언에서
(vl 로드-com)
(금)
(<= -1 nm 1)
(수수 (- 1 (수 2))))
·
·
;;; Vladimir Nesterovsky의 벡터로 변환 매트릭스 적용
(defun mxv) (m v)
(mapcar '(lambda (r)) (apply '+ (mapcar '* r v))) m)
·
(fun c:백 ()
(defun c:blender (/ss n 색인 str obj nome ins rot norm rotvec rotx roty rotz rotvec 파일)
(setq sss (문서 0 "문서"))) ;제로 é il codice del nome
(세트 N)
(setq 색인 0)
(setq old-arcunits (getvar "aunits"))
(setq 오래된 -arcprec (getvar "auprec"))
(setvar "aunits") 0)
(setvar “auprec” 6); 정도를 위한 정밀도의 세트
(setq str "); 빈 문자열
;inizio 델 반복 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
(repeat n; 각 구획을 위한 반복
(setq obj (vlax-name->vla-object (이름 ss 색인)))))
(setq 이름 (if) (vlax-property-available-p obj "효과적인 이름")
(setq 이름 (vla-get- effectivename obj))
(setq 이름 (vla-get-name obj))
·
·
(setq ins (vlax-get obj 'inclusionpoint)))
(setq 썩음 (vla-get-rotation obj))
(setq norm (vlax-get obj '정상적인))
;; 구획 sco에서 벡터 x의 교체의 계산
(setq rotvec (전사 (극 '(0 0) rot 1.0) norm 0))
;; y에 구획의 교체의 계산 및 z에 그 후에
(setq roty (- (caddr rotvec))); y에 교체
(setq rotz (atan (cadr rotvec) (차 rotvec)); z에 교체
;; z에 정상적인 벡터의 반전 교체의 계산
(setq zvec (mxv)를 설치
(목록 (- rotz)) (- (sin (- rotz)))) 0)
(목록 (- rotz)) (cos (- rotz)) 0)
'(0 0)
·
주요 특징
·
·
;; y에 정상적인 벡터의 반전 교체의 계산
(setq zvec (mxv)를 설치
(리스트 (cos (- roty)) 0 (sin (- roty))))
'(0 0)
(리스트 (- (- 로티)) 0 (cos (- 로티))))
·
사이트맵
·
·
;; x에 구획의 교체의 계산
(setq rotx (- (cadr zvec) (caddr zvec))))
(setq str (strcat str; 이전 문자열에 추가)
이름 *
" "" "
(자동차 ins)2 6);6
" "" "
(rtos (캐스터 ins)2 6)
" "" "
(rtos (caddrins)2 6)
" "" "
(구토 rotx 0 8);8
" "" "
(구토스 로티 0 8)
" "" "
(낭투 0 8)
" "" "
(rtos (vla-get-xscalefactor obj))
" "" "
(rtos (vla-get-yscalefactor obj))
" "" "
(rtos (vla-get-zscalefactor obj))
"\n"; 라인 점프
·
·
(setq 색인 (1+ 색인)); 다음 구획으로 이동하기 위하여
); 반복의 끝
(setvar "aunits"이전-arcunits)
;(setvar "auprec"이전-arcprec)
(이후)
(setq 파일 (getfiled "파일 선택" " "txt" 1))
선택하거나 파일을 만들
(진료)
(setq 파일 (open file "a"); lr 파일을 엽니다
(princ str 파일); 파일에 쓰기
(닫기 파일) 닫기 파일
·
·
(주)
·