CADsite forum

AutoCAD => Autolisp => Topic gestart door: t.freriks op ma 02 03 2009, 23:14:39

Titel: Lisp: veel & lange polylines 'ont-arcen' (Opgelost mbv HofCAD!)
Bericht door: t.freriks op ma 02 03 2009, 23:14:39
Wie ow wie kan me helpen bijgaand script uit te kleden en te verbouwen, zodat hij doet wat ik nodig heb?

Probleem:
Ik heb een tekening met zeer veel (109) en zeer lange (tientalle kilometers) polylines, echter de meeste daarvan bevatten naast rechte lijnsegmenten ook vele arc-segmenten. Deze arc segmenten moet ik, t.b.v. een systeem van 'derden' vervangen door rechte lijn segmenten, omdat hun systeem, welke is gebaseerd op MapInfo daar niet mee om kan gaan. (zie bijlage CAD bestand: http://www.cadsite.be/smf/index.php?action=dlattach;topic=3242.0;attach=810 (http://www.cadsite.be/smf/index.php?action=dlattach;topic=3242.0;attach=810))

Wat ik wil bereiken, is het volgende:
- in één keer alle polylines selecteren om alles in één keer te bewerken (alle te wijzigen polylines zitten in één layer)
- De polylines moeten uiteindelijk dezelfde route volgen, m.u.v. de arc segmenten, deze mogen ietwat vereenvoudigd worden, met als instelling: rechte lijnstukken van 0,2 units (of variabel n.a.v. invoer gebruiker)
- De polylines moeten weer in hun oorspronkelijke layer worden teruggezet.


Nu heb ik een script gevonden (zie bijlage: http://www.cadsite.be/smf/index.php?action=dlattach;topic=3242.0;attach=809 (http://www.cadsite.be/smf/index.php?action=dlattach;topic=3242.0;attach=809))wat al voor 90% doet wat ik vraag, alleen hij doet teveel. Dit script verdeelt ook de rechte lijnstukken, waardoor alle polylines tezamen veel te veel punten gaan bevatten.
Wie kan me helpen dit script te verbouwen, zodat:
- Het script niet meer vraagt om de polylines te verdelen in X delen, deze optie is voor mij overbodig en mag verwijderd worden. Uitsluitend de optie om segmenten met een lengte van X-units te maken moet blijven bestaan.
- Het script zou alleen de arc segmenten moeten bewerken, en de rechte lijnstukken uit de oorspronkelijke polylines ongemoeid laten (deze hoeven niet in stukken verdeeld te worden)
- Het oorspronkelijke script zet het resultaat in Layer '0', maar dit zou teruggezet moeten worden in de oorspronkelijke layer (ook al selecteer ik in het begin polylines van verschillende layers.


Kan iemand dit script zo gemakkelijk doorgronden om dit probleem op te lossen? Mijn kennis van Lisp is te mager om dit in één keer te kunnen lezen... :lol:

Thomas
Titel: Re: Lisp: veel & lange polylines 'ont-arcen' (->uitsluitend rechte lijnsegmenten)
Bericht door: bart op wo 04 03 2009, 07:55:51
probeer de lisp eens in combinatie met overkill.
deze kan de segmenten in de pline weer optimaliseren
Titel: Re: Lisp: veel & lange polylines 'ont-arcen' (->uitsluitend rechte lijnsegmenten)
Bericht door: HofCAD op wo 04 03 2009, 09:14:14
Beste Thomas,

Het volgende is niet de oplossing die je zoekt, maar ik wil
het toch even vermelden.

Als je de polylijnen met met commando WMFOUT (of het commando EXPORT) exporteert naar
een Windows metafile formaat (*.wmf) en daarna met het commando WMFIN (of het commando IMPORT)
importeert, krijg je in je tekening een block met daarin je polylijnen.
Als je dit block na verschalen(commando SCALE optie Reference) explodeert (EXPLODE of XPLODE)
krijg je polylijnen, waarbij bij elke polylijn de arc-segmenten omgezet zijn naar een aparte polylijnen
met line-segmenten.
Om weer lange lange polylijnen te krijgen moet je deze dan met het commando PEDIT en de optie Join
aan elkaar rijgen.

Met vriendelijke groet, HofCAD CSI

PS Zie bijlage voor het eindresultaat
Titel: Re: Lisp: veel & lange polylines 'ont-arcen' (->uitsluitend rechte lijnsegmenten)
Bericht door: HofCAD op wo 04 03 2009, 14:08:16
Beste Thomas,

Ook het volgende is waarschijnlijk niet de oplossing die je zoekt, omdat
de benadering te grof is.

Als je een 2D polylijn omzet naar een 3D polylijn, dan moeten de arc-segmenten
omgezet worden naar line-segmenten.
Op http://forums.augi.com/archive/index.php/t-45963.html zie je een aantal
programma's die dat doen.
Of zie bijv.: http://azcarya.blogspot.com/2007/02/autocad-converting-3d-polyline-to-2d.html

Maar door deze kennis kwam ik op deze site  :pintje: :lol: :D :lol: :pintje:
http://www.black-cad.homepage.t-online.de/pedit.htm waar je PEDIT3DE.zip
kan downloaden met het programma pedit3d.
Na toepassing van pedit3d op de voorbeeld tekening met 1 polylijn met een totaal van 6
segmenten (4 line-segmenten en 2 arc-segmenten) krijg je 1 polylijn met een totaal 44 lijnsegmenten.
Een nadeel is wel bij het gebruik van pedit3d dat de oorspronkelijke polylijn geexplodeerd wordt,
en dat de daaruit ontstaande lijnen en bogen blijven bestaan.
Door slim gebruik van lagen hoeft dit geen probleem te zijn.
Als waarschuwing moet ik je nog wel meegeven, dat je ondanks de mogelijkheid om
meerdere polylijnen tegelijk mag selecteren moet je dit niet doen.

Met vriendelijke groet, HofCAD CSI
Titel: Re: Lisp: veel & lange polylines 'ont-arcen' (->uitsluitend rechte lijnsegmenten)
Bericht door: t.freriks op wo 04 03 2009, 23:46:23
Beste HofCAD,

Je bent echt geweldig! Die laatste oplossing was zo goed als alles wat ik zocht met als enige nadeel dat hij van meerder polylines die elkaar op het einde raken, één lange polyline maakt. Dat wordt wat lastig met enkele tientalle tekeningen waar zo'n 100 polylines in zitten. In principe zou dit hiermee wel moeten lukken.

Nu vond ik ondertussen (ik heb ook niet stilgezeten) op http://www.4d-technologies.com/geotools/manual/conversion_tools.htm#PLARC2PL een tool voor $11,95 welke ook dat laatste probleempje oplost! Ik ga niet moeilijk doen over twaalf dollar wanneer mij dat de komende weken tientalle uren werk scheelt. (ik heb de tool al getest omdat deze ook in de volledige geotools demo zit welke 30 dagen werkt)

In ieder geval enorm bedankt voor je hulp en toeweiding, je kan in ieder geval wel zien dat je écht weet waarover je praat, zover moet ik nog maar (ooit) zien te komen betreft lisp...

Thomas