_

dolaczanie spline’a do polilinii w AutoCadzie

Archiwum grupy newsowej pl.comp.cad. Na razie tylko do czytania i przeszukiwania.

Re: dolaczanie spline’a do polilinii w AutoCadzie

Postprzez pdurys » kwi 14, 2003 15:05

> Hej, zgodnie z trescia tematu, moj problem wyglada nastepujaco: mam
polilinie
> i spline’a. Chce, zeby tworzyly one jedna polilinie.....
> Jak to zrobic?
> Jak przekonwertowac spline’a na polilinie?

Masz dwie mozliwosci:
Pierwsza, rysujesz Polilinie (_PLINE) i poddajac ja edycji zamieniajasz na
semi-splajn. Do takiej polilinii mozesz dolaczac nowe segmenty, tylko jedno
male ale... po dolaczeniu cala nowa polilinia ponownie bedzie "lamana" nie
"krzywa". Rozwiazanie, kolejne (_PEDIT) i opcja Spline...

Druga mozliwosc, to rysujesz Splajn (_SPLINE) i nie mozesz do tego dolaczyc
niczego nowego, oprocz nowych wierzcholkow, ale nadal to bedzie splajn.

Reasumujac, obiekt typu Polilinia i Splajn sa rysowane w rozny sposob i nie
mozna tego "pozenic".

Ale moze Tobie o cos innego chodzilo?


--
Pozdrowienia
Pawel Durys
PS. Moj adres email, jest wylacznie do uzytku dla Usenet News.



--
Serwis Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
pdurys
 

dolaczanie spline’a do polilinii w AutoCadzie

Postprzez thiefunny » kwi 14, 2003 15:41

Hej, zgodnie z trescia tematu, moj problem wyglada nastepujaco: mam polilinie
i spline’a. Chce, zeby tworzyly one jedna polilinie..... Jak to zrobic? Jak
przekonwertowac spline’a na polilinie?

Pozdrawiam i z góry dzięki za ewentualną pomoc
Thiefunny

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
thiefunny
 

Re: dolaczanie spline’a do polilinii w AutoCadzie

Postprzez a_gumula » kwi 15, 2003 10:24

musisz zamienić Splajna na Polilinię
poniższy program robi to w sposób prymitywny, ale innego wyjścia nie
widzę...

(defun c:spline2poly (/ Fit SSet Count Delta Measure Pts)

(defun MakePoly ()
(entmake
(append
(list
’(0 . "LWPOLYLINE") ’(100 . "AcDbEntity") ’(100 . "AcDbPolyline")
(cons 6 (vla-get-linetype Obj)) (cons 62 (vla-get-color Obj))
(cons 8 (vla-get-layer Obj)) (cons 90 (length Pts))
(if (vlax-curve-isclosed Obj) (cons 70 1) (cons 70 0))
)
(mapcar ’(lambda (x) (cons 10 x)) Pts)
)
)
);end MakePoly

(defun StatLayer (Name Id)
(/= Id
(logand Id
(cdr (assoc 70 (entget (tblobjname "layer" Name))))
)
)
);end StatLayer

(cond
((setq SSet (ssget ’((0 . "SPLINE"))))
(while (not (and (>= Fit 10) (<= Fit 500)))
(initget 7)
(setq Fit (getint "
Podaj współczynnik dopasowania [10-500]: "))
)
(repeat (setq Count (sslength SSet))
(setq Count (1- Count)
Obj (vlax-ename->vla-object (ssname SSet Count))
Delta (/ (vlax-curve-getdistatparam Obj (vlax-curve-GetEndParam
Obj)) Fit)
Measure 0.0 Pts nil)
(repeat (1+ Fit)
(setq Pts (cons(vlax-curve-getpointatdist Obj Measure) Pts)
Measure (+ Measure Delta))
);end repeat
(cond
((StatLayer (vla-get-layer Obj) 4) (MakePoly) (vla-delete Obj) (prompt
"
Zamieniono. "))
(T (setq Pts (prompt "
Obiekt na zablokowanej warstwie. ")))
);end cond
);end repeat
)
(T (prompt "
Nie wybrano splajnów. "))
);end cond
(princ)
);end file
a_gumula
 

Re: dolaczanie spline’a do polilinii w AutoCadzie

Postprzez abc » kwi 15, 2003 21:31

Ten program robi to jeszcze "prymitywniej" - zapisuje wskazany splajn jako
dxf w formacie 12 i potem wstawia, już jako polilinie bardzo zblizona swym
ksztaltem. Dzieje sie tak poniewaz (to do mlodziezy) AutoCAD R12 (kolo 1990)
nie obslugiwał krzywych typu spline i elipsa (elipsa była - ale jako
polilinia)

;;; 1999(2002) by kojacek
(vl-load-com)
;;;
(defun C:SPLPL (/ Sel Tmp CMD Obj)
(setq Sel (entsel "
Wskaż splajn lub elipsę: "))
(if Sel
(progn
(if
(member
(jk:DXF 0 (entget (setq Obj (car Sel))))
’("SPLINE" "ELLIPSE")
)
(if
(not (jk:ENT_isLocked Obj 1))
(progn
;;;(jk:SYS_UndoBegin)
(setq Tmp (strcat (getenv "TEMP") "$.dxf")
CMD (getvar "CMDECHO")
)
(setvar "CMDECHO" 0)
(if (findfile Tmp)(vl-file-delete Tmp))
(command "_dxfout" Tmp "_V" "R12" "_O" Obj "" "")
(command "_-insert" (strcat "*" Tmp)(getvar "INSBASE")"" "")
(vl-file-delete Tmp)
(entdel Obj)
(setvar "CMDECHO" CMD)
;;;(jk:SYS_UndoEnd)
)
)
(princ "
Należy wybrać splajn lub elipsę. ")
)
)
)
(princ)
)

(defun jk:DXF (Code Lst)(cdr (assoc Code Lst)))
(defun jk:ENT_isLocked (e m)
(if (= 4 (logand 4 (jk:DXF 70 (tblsearch "LAYER" (jk:DXF 8 (entget e))))))
(progn (if m (princ "
Obiekt na zamkniętej warstwie. "))T)nil)
)

kojacek

Użytkownik "Guma" <a_gumula@poczta.onet.pl> napisał w wiadomości
news:b7gfk3$ja1$1@nemesis.news.tpi.pl...
> musisz zamienić Splajna na Polilinię
> poniższy program robi to w sposób prymitywny, ale innego wyjścia nie
> widzę...
abc
 


Powrót do pl.comp.cad

Kto przegląda forum

Użytkownicy przeglądający ten dział: Bing [Bot]

cron