Vytisknout stránku | Zavřít okno

line -> polyline

Vytištěno z: CAD Fórum
Kategorie: Autodesk - stavebnictví, strojírenství, CAD/GIS
Název fóra: CAD programování
Popis fóra: Otázky programování - nadstavby a utility pro CAD a GIS aplikace Autodesk (VBA, AutoLISP, ARX/C++, .Net, JavaScript, Python, MEL...)
URL: https://www.cadforum.cz/forum/forum_posts.asp?TID=3320
Datum vytištění: 13.kvě.2026 v 09:16


Téma: line -> polyline
Odeslal: Mato Hauso
Předmět: line -> polyline
Datum odeslání: 26.říj.2006 v 01:33
zdravim

chcel by som sa spytat ze ci v acade 2007 sa da niako zmenit vlastnost ciary (line) na polyline? alebo to treba vsetko pekne prekreslit

viem ze sa daju viacere zlucit do seba cez join a tym vznikne polyline ale to len v pripade ked line  sa dotykaju koncovymi bodmi ( teda ak sa nemylim )

mam totiz problem s tym ze polyline sa da v properties priradit hrubka( global width) a line nie alebo aspon o  tom neviem a to by som velmi potreboval spravit preto vlastne hladam sposob ako oklamat a cad a line priradit vlastnosti pl alebo niako pretransformovat L na PL

a preco nema L taku vlastnost ?

vopred vdaka mato





Odpovědi:
Odeslal: Petr Bláha
Datum odeslání: 26.říj.2006 v 02:23
Součástí ExpressTools v AutoCADu dříve byl příkaz PLJOIN, který umí dělat PLINE i z entit, které se nedotýkají a umí to hromadně (.lisp se dá se lehce přidat). V posledních AutoCADech umí hromadně dělat z LINE => PLINE i normální _PEDIT. Toleranci na připojení nemá, ale problém GW tím vyřešíte, protože to zeditujete hromadně.

Jinak Global Width jde nastavit opravdu jen u PLINE ... u LINE bych to řešil normálně tloušťkou čáry přes hladiny (výjímečně "natvrdo" přes vlastnost objektu).

... téma máte ve špatném vláknu! ... toto rozhodně není "CAD programování" :-).


Odeslal: PepaR
Datum odeslání: 26.říj.2006 v 07:58
Jak psal pan Bláha, PLJOIN je někdy funkce k nezaplacení, je škoda, že jej implementací příkazu do _PEDIT zrušili. V _PEDITU je totiž trošku ztracený.
 
Existuje ještě jedna malá finta  a to nakreslit nebo převést jednu z čar jako polyline  přiřadit ji globální tloušťku a posléze přes funkci Zkosit (nastavení na hranu 0, 0) slučovat čáry, ketré že si nejenom přeberou typ objektu jako takový (tzn. křivku), ale i vlastnosti křivky.


-------------
PepaR
https://www.jremes.cz" rel="nofollow - jremes.cz | https://www.stavlab.cz" rel="nofollow - stavlab.cz


Odeslal: Mrázek
Datum odeslání: 26.říj.2006 v 08:37
To je dobrá finta!!
Ale zpět k původnímu dotazu - pokud se Mato ptal na prosté převedení Line na Polyline (předpokládám bez potřeby spojení), tak se to dělá příkazem _PEDIT (česky KEDIT) s tím, že po kliknutí na Line ACAD upozorní, že entita není Polyline a zda to chcete změnit. Potvrzením se druh entity změní. Bohužel, musí se tímto postupem dělat jedna entita po druhé.
Nebo s tím počítat už při kreslení a rovnou to kresit příkazem Polyline.


-------------
Ing. Zdeněk Mrázek
Preciosa Ornela a.s.
AIP 2018, ACADM 2018, Vault Pro 2018


Odeslal: Seiner
Datum odeslání: 26.říj.2006 v 08:57

Kdysi jsem začal dělat na lispiku, ktery měl sloužit k něčemu takovému. Ale zůstalo to ve stádiu rozpracovanosti. Nicméně pro jednoduché výkresy to funguje - můžete zkusit.

;příprava výkresu na faxování nebo vložení do Wordu - změní úsečky, oblouky a kružnice na křivky dané tloušťky
;rozpracováno!

(defun c:zesil()
(setq tl(getreal "Tloušťka křivky: "))
(setq e (entsel "Vyber representanta "))
(setq hlad (cdr(assoc 8 (setq p(entget(car e)))))
      barva (cdr(assoc 62 p))
      typc  (cdr(assoc 6 p))
   )

(if (and(/= barva nil)(/= typc nil))
(setq m (ssget "X" (list (cons  8 hlad)(cons 62 barva) (cons 6 typc)))))
(if (and(= barva nil)(/= typc nil))(progn
(setq m (ssget "X" (list (cons  8 hlad) (cons 6 typc))))(while (< i pocet)
 (if (/=(assoc 62 (entget(ssname m i)))nil)
  (setq m (ssdel (ssname m i) m) pocet (sslength m))
  (setq i (1+ i))
 )
)
))


(if (and(/= barva nil)(= typc nil))(progn
(setq m (ssget "X" (list (cons  8 hlad) (cons 62 barva))))(while (< i pocet)
 (if (/=(assoc 6 (entget(ssname m i)))nil)
  (setq m (ssdel (ssname m i) m) pocet (sslength m))
  (setq i (1+ i))
 )
)
))


(if (and(= barva nil)(= typc nil))(progn
(setq m (ssget "X" (list (cons  8 hlad))))
(setq pocet (sslength m) i 0)
(while (< i pocet)
 (if (or (/=(assoc 62 (entget(ssname m i)))nil)(/=(assoc 6 (entget(ssname m i)))nil))
  (setq m (ssdel (ssname m i) m) pocet (sslength m))
  (setq i (1+ i))
 )
)
))

 


(command "_SELECT" m "")
(command "_chprop" "P" "" "_C" "7" "")
(setq skupt (ssget "P" '((-4 . "<OR")(0 . "LINE")(0 . "CIRCLE")(0 . "ARC")(-4 . "OR>"))))
(if (/= skupt nil)(progn

(setq pocett (sslength skupt))
(setq i 0)
(while (< i pocett)
(if (<= i pocett)(progn
(setq m (ssname skupt i))
(setq dz (entget m))
(if (/=(cdr(assoc 0 dz))"CIRCLE")
(command "_PEDIT" m "_Y" "_W" tl "")
(progn
(command "_DONUT" (-(* 2.(cdr(assoc 40 dz))) tl) (+(* 2.(cdr(assoc 40 dz)))tl) (cdr(assoc 10 dz))"")

(entdel m)
))
(setq i (+ 1 i))(write-line (itoa i)))
))))
)



-------------
Vítězslav Seiner

Chrudim


Odeslal: Pepa
Datum odeslání: 27.říj.2006 v 05:59
Původně odeslal(a) Mrázek Mrázek napsal(a):

Bohužel, musí se tímto postupem dělat jedna entita po druhé.


ALE NEMUSÍ. NEMUSÍÍÍWink 
Použijte zmiňovaný _PEDIT (KEDIT), na výzvu na řádku Vyberte křivku nebo [NÁsobně]: zadejte (nebo _MU), oknem (nebo po jedné, ale všechny najednou) vyberte požadované objekty, po ukončení výběru vyskočí na řádku už známé Zadejte volbu
[Uzavři/oteVři/Připoj/šířKa/Interpolace/Spline/KOstra/tYpčgen/Zpět]:
takže všem křivkám přiřadíte tloušťku najednou. Navíc při volbě připoj máte možnost zadat velikost mezery mezi jednotlivými částmi tak, aby se spopjily do jedné.



-------------
Pepa


Odeslal: Mato Hauso
Datum odeslání: 02.lis.2006 v 20:56
dakujem vsetkym za rady a triky ohlado  line -> pl

najviac ale vyuzivam pedit
aj lps poteshil len malo casu na skumanie mam dakujem


Odeslal: Ferdinand
Datum odeslání: 02.lis.2006 v 23:31
Tipy a triky taky obsahují možnost:
pro vícenásobné příkazy použít
_MULTIPLE
např. zkuste _multiple _polyline ...


-------------
-FerTh-



Vytisknout stránku | Zavřít okno