ingoenius
Guest
Herkese merhaba Adım dosyasında almam gereken bir dosyaya ihtiyacım var koordinatlar konum ve ölçek blok adı
Genel olarak çalışır, ancak bloktaki blokların rotasyonlarını doğru bir şekilde yazıp 3d'te birden fazla eksende dönen ve 3d'te dönen blokların rotasyonlarını doğru bir şekilde yazma sorunum var.
Seni buraya, daha deneyimli biri varsa lisp’in altına koydum (bir göz atmak mükemmel olurdu
Teşekkür ederim.
Genel olarak çalışır, ancak bloktaki blokların rotasyonlarını doğru bir şekilde yazıp 3d'te birden fazla eksende dönen ve 3d'te dönen blokların rotasyonlarını doğru bir şekilde yazma sorunum var.
Seni buraya, daha deneyimli biri varsa lisp’in altına koydum (bir göz atmak mükemmel olurdu
Teşekkür ederim.
Kod:
;; sayının sinus yayını döndürürken, radians
(vl-load-com)
(defun asin (num)
(=1 nm 1)
(Atan numarası (sqrt (- 1 (expt number 2))))
)
)
; vladimir nesterovsky tarafından bir vektöre bir dönüşüm matrisi uygulayın
(defun mxv (m v)
(mapcar '(lambda (r) (muhtemelen '+ (mapcar '* r v)) m)
)
(fun c:blend ()
(defun c:blender ( / s n index str obj nome ins çürük çürük çürük çürük çürütme dosyası)
(setq sss (listeler 0 "insert"))) ;zero é il codice del nome
(setq n (uzun uzun boylu ss))
(setq index 0)
(setq old-arcunits (getvar "aunits"))
(setq old-arcprec (getvar "auprec")
(setvar "aunits" 0)
(setvar "auprec" 6); derece için hassaslığın başlangıcı
(setq str "); boş dize
; youo del tekrar - !!!
(repeat n; Her blok için tekrar
(setq obj (vlax-name->vla-object (sisim ss index)))
(setq adı (if) (vlax-property- available-p obj " effectivename")
(setq adı (vla-get- effectivename obj)
(setq adı (vla-get-name obj)
)
)
(vlax-get obj 'inclusionpoint)
(setq çürümesi (vla-get-rotation obj)
(setq normu (vlax-get obj 'normal)
; Blok sco'daki vektör x'in rotasyonunu hesaplamak
(setq çürük (trans (polar '(0 0 0) çürük 1.0) norm 0))
; blok rotasyonlarını y ve sonra zinde hesaplama
(setq çürük (- (asin (caddr çürük)); y
(setq rotz (atan (cadr çürük) (kar çürük)); zıpkıt üzerinde rotasyon
; normal vektörün geri dönüş rotasyonunu zinde hesaplama
(setq zvec (mxv)
(Liste (kozmanlar) (-)) 0)
(Liste (sin (- çürük)) (kozmanlar) 0)
(0 0 1)
)
Standart Standart Standart Standart
)
)
; normal vektörün geri dönüş rotasyonunu yÃ1⁄4zerinde hesaplama
(setq zvec (mxv)
(Liste (kozmanlar) 0 (sin (sihirli))
"(0 1 0)
(Liste (- (sin) 0 (kozman)
)
Zvec
)
)
; x x x üzerindeki bloğun rotasyonunu hesaplamak
(atan (cadr zvec) (kaddr zvec)))
(setq str (strcat str; önceki dizeye ek)
isim adı
" " " " ""
(rtos (kar ins)2 6);6
" " " " ""
(rtos (kadr ins)2 6)
" " " " ""
(rtos (caddrins)2 6)
" " " " ""
(angtos rotx 0 8);8
" " " " ""
(angtos çürük 0 )
" " " " ""
(angtos çürüme 0 )
" " " " ""
(rtos (vla-get-xscaletors obj)
" " " " ""
(rtos (vla-get-yscaletors obj)
" " " " ""
(rtos (vla-get-zscaletors obj)
"\n"; Line at
)
)
(setq indeksi (1+ index)); bir sonraki bloka hareket etmek
)
(setvar "aunits" old-arcunits)
(setvar "auprec" old-arcprec)
(Eğer
(setq dosyası (resmi bir dosyayı "" "txt" 1)
Bir dosyayı seçin veya oluşturun
(progn
(setq dosyası (open file "a"); open lr file
(princ str dosyası); dosya yazmak
(close file) yakın dosya
)
)
(principal)
)