Reklam

Çizim Paylaş

Bülten Aboneliği
*  E-posta adresiniz:



* Güvenlik kodu:

3d polyline'ı 2d polyline'a çeviren lisp

3d polyline'ı 2d polyline'a çeviren lisp, 3d pline to 2d pline, pline converter, pline dönüştürme
admin - 10.10.2006 16:54
Yazar:
İçerik: LSP formatında AutoLISP dosyası

(Kontrol panelinizde görünür)
3d polyline'ı 2d polyline'a çeviren lisp.

Üreticinin açıklaması:
freecadapps.com
Description: Convert 3d polyline to 2d polyline

Convert 2d polyline, 3dface, line, arc, & circle to 3d polyline

1. Join 3Dpoly's (ends should meet).

2. If you accidently pick a 3DPoly, it is just drawn over again.

3. The Join function will replace the two 3DPolys with a single 3dPoly.

4. The Change function will just draw over the existing entity.

5. For a mesh , first explode it into faces, then change to 3dpoly(s).

6. Resolution will control smoothnes of curves, also make various shapes
such as... 6 = hex, 3 = triangle, 4 = square, etc....



Bu lisp www.freecadapps.com kaynağından alınmış ve halka açık olduğu için paylaşım amacıyla sayfaya eklenmiştir.

Buraya tıklayarak açılan pencereden AutoLISP kodlarını Ctrl + C ile kopyalayabilirsiniz

Kod:

;Convert 3d polyline to 2d polyline
;..............................................................................
(defun c:p3p2 (/ eg cl en e nc fp pt)
(princ "n[Change 3D Polyline to 2D Polyline.]")
(setq e  (entsel "  Select a 3DPoly: ")          ; get the header data
       en (car e)
       cl (if(=(cdr(assoc 70(entget en)))1)1)             ; closed flag 1=yes
       p1 (cdr(assoc 10(entget(entnext en))))
       p2 (cdr(assoc 10(entget(entnext(entnext en)))))
)
(command "ucs" "3" p1 p2 "")
(setq fp (trans p1 0 1))                                  ; save first point
;       en (entnext en))                                   ; leave header
(setvar "blipmode" 0)
(command "pline")
(command fp)                                             ; id first vertex
(while (/=(cdr(assoc 0(setq eg(entget(setq en(entnext en))))))"SEQEND")
  (setq pt (trans(cdr(assoc 10 eg))0 1))
  (if pt (command pt))
  (if (and (not pt) cl)(command fp))
);endwhile
(command "")
(command "ucs" "w")
(setvar "blipmode" 1)
(princ)
);end C:P3P2
(princ)(PRINC " --> 'www.autocadokulu.com' Çizim yardımları yüklendi !")

Bu kodları nasıl kullanacağınızı bilmiyorsanız aşağıdaki linkten;
AutoLISP > Konu Anlatımları > Lisp Dosyalarının oluşturulması ve Yüklenmesi
konusunu inceleyiniz.
Yorumlar :
SerdarBas   28.04.2016 12:47 #15659  

HAY BEN SİZİN YAPACAĞINIZ LİSP' E ARKADAŞ KUSURA BAKMAYIN AMA LISPI UYGULADIKTAN SONRA EKRANA HER TIKLADIĞIMDA NOKTALAR OLUSUYOR REGEN YAPINCCA GIDIYOR SACMA SAPAN BİR ŞEY AYNI VIRUS GIBI

sibel_colak   05.01.2009 19:57 #10080  

Ben bu kodu kendimce geliştirdim..

Kodda tek seçim yapılıyordu düzenlemiş olduğum kodda birden fazla 3d polyline seçilip polyline yapılıyor.

Paylaşmak istedim...

(defun c:p3p ()
(princ "n[Change 3D Polyline to Polyline.]")


(setq index 0)
(setq e(ssget))
(setq sayac (sslength e))
( repeat sayac


(setq en (ssname e index)
cl (if(=(cdr(assoc 70(entget en)))1)1) ; closed flag 1=yes
p1 (cdr(assoc 10(entget(entnext en))))
p2 (cdr(assoc 10(entget(entnext(entnext en)))))
)
(command "ucs" "3" p1 p2 "")
(setq fp (trans p1 0 1)) ; save first point

(setvar "blipmode" 0)
(command "pline")
(command fp) ; id first vertex
(while (/=(cdr(assoc 0(setq eg(entget(setq en(entnext en))))))"SEQEND")
(setq pt (trans(cdr(assoc 10 eg))0 1))
(if pt (command pt))
(if (and (not pt) cl)(command fp))
);endwhile
(command "")
(command "ucs" "w")
(setvar "blipmode" 1)

(setq index(+ index 1))
)
(princ)
);end C:P3P

Copyright © 2004-2018 | Tüm Hakları Saklıdır | 2734 | Site haritası | İstatistikler | Hakkımızda | Kadromuz | Gizlilik | Reklam