Zobrazit plnou verzi příspěvku: line -> polyline

Mato Hauso
26.10.2006, 01:33
zdravimchcel 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 PLa preco nema L taku vlastnost ?vopred vdaka mato

Petr Bláha
26.10.2006, 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í" :-).Petr Bláha2006-10-26 02:24:48

PepaR
26.10.2006, 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.PepaR2006-10-26 08:42:37

Mrázek
26.10.2006, 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.

Seiner
26.10.2006, 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))))))))

Pepa
27.10.2006, 05:59

[QUOTE=Mrázek] Bohužel, musí se tímto postupem dělat jedna entita po druhé.
[/QUOTE]ALE NEMUSÍ. NEMUSÍÍÍ  Použijte zmiňovaný _PEDIT (KEDIT), na výzvu na řádku Vyberte křivku nebo [NÁsobně]: zadejte NÁ (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é.

Mato Hauso
02.11.2006, 20:56
dakujem vsetkym za rady a triky ohlado  line -> pl najviac ale vyuzivam peditaj lps poteshil len malo casu na skumanie mam dakujem

Ferdinand
02.11.2006, 23:31
Tipy a triky taky obsahují možnost:pro vícenásobné příkazy použít_MULTIPLEnapř. zkuste _multiple _polyline ...