Zobrazit plnou verzi příspěvku: Pomoc při úpravě LISPu

rychetsky
01.10.2010, 12:15
Dobrý den
Mohl by mi někdo z LISPových kouzelníků pomoci upravit můj oblíbený LISP?
Potřebuji do vybíraných entit přihodit SPLINE. Aby pokud se vyskytne ve výběru, byla dotázána na "Zadejte přesnost" převedena na křivku a spojena se zbytkem.
 
Nejde se někdo šikovný, kdo to upraví?
 
uploads/temp/20101001_121408_pljoinfuzz.lsp

vknop
01.10.2010, 17:30
Dobrý den,nejde to stáhnout, ale pokud chcete dále pracovat s entitou SPLINE, tak asi narazíte, pokud se tedy něco zásadně v posledních verzích nezměnilo. Jediné, co lze rozumně s nakresleným splinem dělat, je smazat a použít něco jiného (=normálního).Přijít s entitou SPLINE, to byl teda nápad, to se Autodesku opravdu "povedlo"... Párkrát jsem narazil na takový paskvil a říkám, že projektant, který použije v projektu spline, by zasloužil klackem přes ruce, aby ho takové zvěrstvo víckrát nenapadlo...

Vladimír Michl
01.10.2010, 18:30
:-) SPLINE přeci není žádný výmysl Autodesku, ale standardní geometrický objekt používaný snad ve všech CADech pro hladké 2D i 3D objekty - těžko jej nahradit jinou entitou.
 
SPLINE jde v AutoCADu editovat uzlovou editací (tvar), měnit řád (hladkost), směr, nebo se zadanou přesností spline převést na křivku (polyline). Co jiného potřebujete?
 

vknop
02.10.2010, 01:43
No, že zrovna Vy takto reagujete... Sám nejlépe víte, ve které verzi AutoCADu přibyla SPLINE jako entita. A určitě také víte, že ten převod na křivku nevytvoří identický průběh, takže to je takový převod-nepřevod. (Jak sám píšete, i když v jiné souvislosti, "těžko jej nahradit jinou entitou") A až si budete muset připravit vytyčení komunikace, kterou nějaký umělec nakreslil splinem, pochopíte i ten zmíněný klacek:-)

Vladimír Michl
02.10.2010, 12:46
Chápu, ale nezaměňujte praktické projekční potíže s okótováním a vytýčením s účelností popisu hladké geometrie pomocí spline křivek. Podobné "potíže" jsou i s přechodnicemi a dalšími tvary, které se přesto v projekční praxi běžně vyskytují a CAD aplikace (včetně silničářského Civilu 3D) je podporují.
 
Spline jako DWG objekt byl myslím zaveden v AutoCADu R13 (možná už R12), tedy před 11 verzemi. Od R13 je k dispozici i jeho editační příkaz [CMD]SPLINEDIT[/CMD].

vknop
02.10.2010, 18:00
"praktické projekční potíže"... A věřil byste, že zrovna praktické potíže mohou být rozhodující? Je celkem jedno, jak úžasně hladký (a účelně popsaný) je spline, když prakticky je na ho... Přechodnice jsou jiná kategorie, mají svůj jasný matematický předpis, ale spine, jako aproximační křivka, je něco jiného a v technickém výkrese pro ně nevidím důvod.

vbehun
02.10.2010, 21:12







Jistě - spline jsou obtížné křivky - nicméně ve verzi 2011 přibyla nová metoda editace řídícími body (CV - Control Vertices) - ve verzi 2010 metoda FP (Fit Point) - viz AutoCAD 2011 for Dummies nebo tato videoukázka.Nebyl by problém popsat spline matematickou křivkou - ostatně předpokládám, že Autocad používá stejné metody pro generování splinů jako Inventor.V literatuře k Inventoru je kótování splinů popsáno - viz tento odkaz na Autodesk Inventor Help - search - spline - dimensioning splines.Spliny jsou v Inventoru velmi dobře popsány a mnohem více využívány než v Autocadu.vbehun2010-10-02 21:22:00

vknop
02.10.2010, 22:05
Veřím, že práce se spliny se s verzemi zlepšuje, ale pořád to neřeší základní vlastnost (a problém) splinu, a to, že nejde identicky nahradit křivkou (rád bych se pletl, kdyby se to už změnilo, ale i tak by to nebyl důvod k pořízení nové verze). My geodeti jsme na ty souřadnice trochu háklivější:-) Proto jsem psal, že (díky této "nejednoznačnosti" splinu) je smazání jediná rozumná operace, resp. tak to bylo myšleno, kdyby to někdo takto nepochopil.

Vladimír Michl
02.10.2010, 22:13
Ano, převod na polyline s podobným průběhem je editační volba až u posledních verzí (ale i předtím to šlo - např. pomocí SplineConvert a dalšími postupy). Nicméně podle mně naopak tento převod dělá z matematicky přesně popsané křivky jen určitou aproximaci (zadané přesnosti) - je fakt, že se pak asi lépe kótuje.

vbehun
02.10.2010, 22:34

Předpokládám že pokud se v limitním případě bude počet přímkových úseků při náhradě splinu křivkou blížit nekonečnu, pak takováto křivka / polyline bude dostatečně přesná náhrada splinu. Nicméně je to poněkud nepraktické.vbehun2010-10-02 22:56:05

vknop
02.10.2010, 22:39
OK, tak nakonec přece jen trochu shoda. Jen pro upřesnění. Smysl (pro mě) má především křivka nevyhlazená, kde žádná aproximace nehrozí. Určitě jde vygenerovat křivku, kde bude tolik vrcholů, že rozdíl od splinu bude zanedbatelný, ale pořád je jednodušší spline nepoužít.

rychetsky
04.10.2010, 08:27
Dobrý den
Já při rýsování spline používám zcela výjimečně.
Používám hodně externích výkresů a občas se stane, že tam spline je.
Pokud chci pak vytvořit uzavřenou křivku např. pro šrafy a součástí je spline, tak se mi nevytvoří. V případě Layoutu závodu je mi jedno, jestli  má hranice trávníku po převodu ze spline na křivku nějakou odchylku. Není to geodetické zaměření, ale obecný layout.

vbehun
05.10.2010, 11:42
Toto by Autodesk mohl dotáhnout. Když je možné při editaci polyline připojit další křivku, aby dokázal taky připojit entitu spline (po dotazu, zda převést na polyline - třeba se zadanou přesností).

rychetsky
05.10.2010, 11:51
Na to právě mám ten LISP, akorát do něj stačí přihodit spline s tím dotazem. Přesně jak to píšete.
Pak máte na 1 kliknutí hotovou uzavřenou křivku z téměř jakéhokoli "zvěrstva". 
Bohužel v LISPu neumím, tak jsem myslel že by mi někdo mohl pomoci.rychetsky2010-10-05 11:53:10

rychetsky
05.10.2010, 11:54
http://leteckaposta.cz/847450217

Buba
05.10.2010, 12:11
A príkaz JOIN Vám nestačí?

rychetsky
05.10.2010, 12:20
Umí Join spojit entity, které se nedotýkají?
O tom pochybuji...
Tento lisp to umí a navíc umožnuje nastavit toleranci mezery. Funkce Fuzz...

vbehun
05.10.2010, 12:24
JOIN neumí připojit SPLINE - alespoň o tom nevím.[QUOTE=Buba]A príkaz JOIN Vám nestačí?[/QUOTE]

Buba
05.10.2010, 12:33
TO: rychetsky
Entity sa musia dotýkať.

TO:vbehun
Príkaz JOIN vie pripojiť Spline.
Ak sa Spline prevedie na Polyline a použije sa PEDIT/JOIN, tak entity sa dotýkať nemusia.

rychetsky
05.10.2010, 12:41
To Buba: Takže vaše rada je. Abych přestal používat můj nejoblíbenější LISP, který umí spojit i entity které se nedotýkají, tím že je spojí a uzavře. To celé na jeden klik.
A použil následující postup.
U entit které se nedotýkají našel mezeru (která je třeba pár tisícin), pak vše ručně opravil a spojil, pak ručně převedl spline na polyline a zakončil to příkazem JOIN. 
 
Na co mít LISP, který to zvládne na 1 kliknutí po zadaní proměnné Fuzz za vteřinu, když to můžu jako osel ručně editovat několik minut
 
To je čirý masochismus
 

Buba
05.10.2010, 12:49
Netvrdila som nikdy, že nemáte používať Váš obľúbený lisp. Len som načrtla riešenie problému so štandartnými príkazmi AutoCADu.
 
A nemusíte sa hneď čertiť. Veď je taký krásny upršaný deň :)

vbehun
05.10.2010, 12:54



Samostatný příkaz JOIN je až od verze Autocadu 2006. Bohužel nemám čest vlastnit tuto verzi. Myslel jsem větev JOIN příkazu PEDIT - tam to nejde. P.S.U nás neprší a občas i vykoukne sluníčko ...[QUOTE=Buba]TO:vbehun
Príkaz JOIN vie pripojiť Spline.[/QUOTE]vbehun2010-10-05 12:57:16

rychetsky
05.10.2010, 13:20
Já se nečertím...naopak jste mi náladu zlepšila
Zkuste ten LISP a uvidíte, že mu přijdete taky na chuť...
 
P.S. Standardní příkazy jsou občas dost kostrbaté řešení, proto některé věci raději řeším nestandardními utilitami

vbehun
05.10.2010, 13:25


Někteří architekti preferují úplně odlišnou cestu, pokud jde o to spojit křivky a spliny. Je totiž také možné převést všechny křivky na spliny a ty spojit s původními spliny. Na webové stránce Reinaldo Togorese zde je diskutováno toto řešení a prokázáno zmenšení objemu výsledného výkresu se spliny - odpadnou nespočetné vrcholy křivek, nahrazujících původní spliny v klasickém řešení (při náhradě splinů křivkami s mnoha vrcholy).Za zkoušku nic nedáte - podívejte se na spline-wise lisp tady.vbehun2010-10-05 21:48:21

Kubíček
06.10.2010, 09:03
Nevím o co Vám přesně jde. Včera u nás jedna kolegině stavařka řešila problém se šrafováním. Jedno z řešení je zmrazit šrafy, přes které se má šrafovat a ponechat pouze ty, které tvoří hranici šrafované plochy.
 
Vzpomněl jsem si, že pokud nakreslíte křivku "křivka" "k", můžete ji editovat příkazem pedit, kde je jednou z voleb spline.  Podle vlastností se změní křivka na 2d křivku.
Obdobně můžete příkazem "ke" "kedit" převézt spline
na křivku   A 10 kostra
2d křivku   A 10 spline
Nevím jaký je rozdíl mezi spline a 2d křivkou?
Váš lispovský soubor se mi nepodařilo otevřít. Pošlete ho prosím na jankubicek@atlas.cz