• 이 포럼은 이탈리아 디자인 커뮤니티인 www.cad3d.it/forum1 의 기계 생성 번역입니다. 몇 가지 용어가 올바르게 번역되지 않았습니다.

문제 transcription 회전 블록 정보 추출

ingoenius

Guest
안녕하세요 나는 텍스트 파일에서 추출 해야 하는 파일 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 파일); 파일에 쓰기
(닫기 파일) 닫기 파일
·
·

(주)
·
 
name entity를 통과하여 함수를 호출합니다. <n> 그리고 <tipo> 당신이 다시 와서 나를 원한다.
그런 다음 회전의 세 축을 얻기 위해, 함수를 호출 3 시간:
(setq rotxy) (fnbloccorot n "xy")
(세트q rotxz)
(setq 로티즈)

이름 *

이것은 기능입니다:
; ucs 세계의 z 축선에 따라 내밀린 entities로 건축하는 구획
; n : 법인 이름; 유형 : "xy"(rotation Piano xy), "xz"(rotation Piano xz), "yz"(rotation Piano yz)
(defun fnbloccorot (n 유형/rot ent x y z pt)
(세트)
(setq pt (cdr (assoc 210 엔))))
(setq x (차 pt))
(setq y) (캐스터 pt)
(Sectq z) - (Sectq z) - (Sectq z)
(컨드)
((= 타입 "xy") (setq rot (cdr))))))
((= 타입 "xz") (setq rot (angle (list 0 0) (list x z 0.0))))))))
((= 타입 "yz") (setq rot (angle (list 0 0) (list y z 0.0))))))))
·
; sessadecimali에 방열기에서
(setq rot (* (/ 180.0 pi) rot))
; 함수는 정밀도를 가진 각 끈의 진짜 수에 있는 변환을 6 소수점 반환합니다
; 6 소수점에 측정을 돌기 위하여 사용해
(토프 (rtos rot 2 6)
·</tipo></n>
 

Forum statistics

Threads
58,191
Messages
495,938
Members
103,104
Latest member
FabioFrontini
이 포럼은 이탈리아 디자인 커뮤니티인 www.cad3d.it/forum1 의 기계 생성 번역입니다. 몇 가지 용어가 올바르게 번역되지 않았습니다.

Members online

No members online now.
Back
Top