CADsite forum

AutoCAD => AutoCAD probleem => Topic gestart door: Kenny van Lent op ma 10 08 2009, 14:19:15

Titel: Alles buiten Polyline Verwijderen of Selecteren (opgelost)
Bericht door: Kenny van Lent op ma 10 08 2009, 14:19:15
Hallo,

Al een tijd zitten mijn collega's en ik met een probleem betreffende het verwijderen van objecten buiten een gesloten polyline, tot op heden kunnen we nergens een oplossing vinden.

Het is dus de bedoeling dat alles buiten de geselecteerde polyline verwijderd word, of dit nu met een speciaal script gebeurt of via een nog voor ons onbekende inverse select, maakt ons niet uit. Want om nou meer dan 10.000 lijntjes met de hand te "erasen" is een rotklus kan ik jullie wel vertellen.

Zeer benieuwd naar wie hier de opossing voor heeft, in iedergeval alvast bedankt voor enige moeite ;)

Met vriendelijke groet,
K. van Lent
Titel: Re:Alles buiten Polyline Verwijderen of Selecteren
Bericht door: hilnanne op ma 10 08 2009, 14:55:19
Hallo,

Ik hebmisschien een oplossing maar het is wel een omweg.
Mischien kan je eerst de polyline en dat wat daar binnen staan een block van maken.
En dan vervolgens met "qselect" alles selecteren behalve dat block. en dan kan je het dus in 1 x deleten.
Hopelijk is dat een idee.

gr Nanne
Titel: Re:Alles buiten Polyline Verwijderen of Selecteren
Bericht door: roy_043 op ma 10 08 2009, 15:37:24
Beste Kenny,

Ik vat jouw probleem waarschijnlijk te simpel op...

Maar ik zou het volgende doen:
erase
all
remove (of shift ingedrukt houden)
window trekken om de te behouden elementen
enter

Groet, Roy.



Titel: Re:Alles buiten Polyline Verwijderen of Selecteren
Bericht door: Kenny van Lent op ma 10 08 2009, 15:54:52
Hartstikke bedankt voor de snelle reacties.

Roy: Heb ik al geprobeerd, het gaat om topografie. Ik heb dus z'n 580.973 objecten en alles staat " kriskras", niks is dus recht en met de hand hetgene de-selecteren van wat ik niet wil wissen is een nogsteeds veelste grote klus, aangezien in zijn totaliteit het om tientallen miljoenen objecten gaat, het bovengenoemde getal is van maar 1 .dwg van de tientallen die aanwezig zijn.

Hilnanne: Dit ga ik zometeen met een collega overleggen, hierover zal ik je nog informeren of dit de oplossing is.
Titel: Re:Alles buiten Polyline Verwijderen of Selecteren
Bericht door: H@rm op ma 10 08 2009, 15:58:03
Volgens mij is dit probleem ook al eens eerder in dit forum behandeld.

Bijkomend probleem zal zijn dat de polylijn heel grillig gevormd is.
Wat Kenny wil is iets als:
EraseP <enter>
<selecteer polylijn>
<enter>

Moeilijkheid is hoe om te gaan met elementen die de polylijn kruizen?
Met zulke grote hoeveelheden aan elementen (>100000) is handmatige (de)selectie niet wenselijk.
Ik weet niet of het bij jullie ook zo is, maar als ik erase all doe slaat mijn pc vaak (=bijna altijd) vast.

Voor het programeren is het dus van belang of je kunt bepalen of een punt binnen of buiten een (gesloten) polylijn ligt.
Op deze manier maak ik het jullie niet makkel;ijker, maar kenny uiteindelijk wel.

Michel
Titel: Re:Alles buiten Polyline Verwijderen of Selecteren
Bericht door: hulpje op ma 10 08 2009, 16:07:03
Misschien staat hier nog iets voor je

http://www.autocadexchange.com/Default.aspx?tabid=174&aff=75&aft=2735&afv=topic&afpg=1

Titel: Re:Alles buiten Polyline Verwijderen of Selecteren
Bericht door: roy_043 op ma 10 08 2009, 16:15:44
Citaat van: roy_043 op ma 10 08 2009, 15:37:24
erase
all
remove (of shift ingedrukt houden)
window trekken om de te behouden elementen
enter

En als je een window polygon of crossing polygon gebruikt i.p.v. een window?
Titel: Re:Alles buiten Polyline Verwijderen of Selecteren
Bericht door: Kenny van Lent op di 11 08 2009, 08:31:01
roy_043: Alle mogelijke manieren geprobeerd en tevergeefs, dit is niet hetgene wat wij zoeken tenzij een inverse selection mogelijk zou zijn. Toch hartstikke bedankt  :vreegoe:

H@rm: Alle mogelijkheden met Erase/EraseP zijn uitgeprobeerd, ook dit zonder succes.

hulpje: Hier ga ik kijken

Het zou fijn zijn als ik de gesloten polyline selecteer en dan kon zeggen dat ik alles buiten de polyline kan selecteren en dan uiteindelijk simpelweg op de DEL knop te drukken, en hard ook ;)

Is er ergens een script die "Inverse Selection" en/of "Outer Selection" mogelijk maakt?

We hebben een programmeur in huis, alleen heeft hij het idee dat het gigantisch veel werk zal zijn om zoiets te creeeren. Enige tips en/of shortcuts zijn hartstikke welkom.

UPDATE:

Zojuist heb ik 2 plaatjes toegevoegd ter illustratie van wat ik wil bereiken. Vrijwel alle functies hebben wij toegepast die standaard in AutoCAD 2008/2009/2010 staan. Zelfs "Extrim" functioneert niet naar behoren in deze tekeningen, waarschijnlijk door de complexheid van de tekeningen is mijn vermoeden.

Met vriendelijke groet,
K. van Lent
Titel: Re:Alles buiten Polyline Verwijderen of Selecteren
Bericht door: hulpje op di 11 08 2009, 10:34:41
Misschien staat hier nog iets interessants
http://rkmcswain.blogspot.com/2007/04/autocad-2008-xclip.html
Titel: Re:Alles buiten Polyline Verwijderen of Selecteren
Bericht door: roy_043 op di 11 08 2009, 10:59:15
Beste Kenny,

Als ik de plaatjes bekijk wil jij dus 2 dingen:
1.
Elementen die helemaal buiten de polylijn staan moeten gewist worden.
2.
Elementen die door de polylijn worden doorsneden moeten getrimd worden.

Het eerste is volgens mij redelijk makkelijk te programmeren:
1 het is hierbij wel zo dat eventuele gebogen delen (bulge) in de pl als recht worden beschouwd.

Het tweede is volgens mij moeilijker.

Groet, Roy.
Titel: Re:Alles buiten Polyline Verwijderen of Selecteren
Bericht door: mrbeegee op di 11 08 2009, 15:25:28
Als MAP gebruiker loop ik ook wel eens tegen dit probleem aan. Ik gebruik nu een lisp die hiermee helpt; selmetpoly.lsp
Ik heb hem onder een knop geplaatst.
In jouw geval zou ik het volgende doen:
Gebruik de lisp om objecten binnen een polylijn te selecteren(window of crossing).
escape uit het commando, daarna erase je alles maar remove je met Previous selection hetgene wat binnen je polylijn valt. succes!
Titel: Re:Alles buiten Polyline Verwijderen of Selecteren
Bericht door: mrbeegee op di 11 08 2009, 15:35:15
Oja, daarna kan je met EXTRIM de lijntjes buiten de polylijn trimmen mocht je dat willen. Liefst een continious linetype gebruiken, dan kan autocad met het trimmen ook daar niet in de fout gaan.
Titel: Re:Alles buiten Polyline Verwijderen of Selecteren
Bericht door: Manu op wo 12 08 2009, 09:46:44
Ook deze lisp in bijlage verwijderd alle objekten 'VOLLEDIG outside' de gesloten polyline.. maar je dient hier ook het commando extrim achteraf te gebruiken om de rest te trimmen..

succes!

Manu
Titel: Re:Alles buiten Polyline Verwijderen of Selecteren
Bericht door: Kenny van Lent op wo 12 08 2009, 11:03:24
hulpje: Met xclip word niet letterlijk alles buiten de grens verwijderd, daarbij komt dat er dan 2 bestanden voor nodig zijn. Geen optie dus. Toch bedankt hulpje  :vreegoe:

roy_043: Dit ga ik aan onze programmeur voordragen, waarschijnlijk komen wij hier een heel eind mee, hierover zal ik je up-to-date houden.

mrbeegee: Zover ik dit begrepen heb, is er alsnog een inverse select nodig. Daarbij kan ik geen "selmetpoly.lsp" vinden nog in een onbestaande bijlage nog via Google, waar staat dit bestand zodat ik hem kan downloaden?

Met vriendelijke groet,
K. van Lent
Titel: Re:Alles buiten Polyline Verwijderen of Selecteren
Bericht door: Manu op wo 12 08 2009, 11:18:37
Kenny,

De bijlage(n) zie je toch bij de berichten staan (onder de avatar..).. 8)
Heb je de lisp van mrbeegee en mezelf dan niet uitgeprobeerd..?.. want die doen toch precies hetgeen je had gevraagd?

groeten,

Manu

Titel: Re:Alles buiten Polyline Verwijderen of Selecteren
Bericht door: H@rm op wo 12 08 2009, 11:21:38
Denk er aan dat je ook ingelogd moet zijn om de bijlagen te zien.

Michel
Titel: Re:Alles buiten Polyline Verwijderen of Selecteren
Bericht door: Kenny van Lent op vr 14 08 2009, 10:39:00
Manu: del_outside.lsp is PRECIES wat ik zocht! :vreegoe: Hartstikke bedankt hiervoor. Alleen werkt extrim niet naar behoren, mijn idee is om eerst extrim te gebruiken en daarna del_outside.lsp voor het gewenste resultaat. De polyline heb ik op Continues gezet maar zet geen zoden aan de dijk, als ik extrim uitvoer doet het letterlijk niks. Zeer vreemd, als ik dit uitvoer op een kleiner bestand lukt het wel. Enig idee hoe dit zou komen?

mrbeegee: Hartstikke bedankt voor de .lsp waarmee ik alles binnen de polyline kan selecteren  :vreegoe:, zou een goed alternatief zijn mocht de motor van del_outside.lsp het begeven. Daarnaast kan ik jouw .lsp wel goed voor andere projecten gebruiken.

Alleen nog uitvinden hoe wij extrim weer aan de gang kunnen krijgen. Het deeg is gerold, nu moet het de oven nog in. Tot zovere iedereen bedankt voor jullie input.

Met smart wacht ik op reactie,

Met vriendelijke groet,

K. van Lent
Titel: Re:Alles buiten Polyline Verwijderen of Selecteren
Bericht door: roy_043 op vr 14 08 2009, 12:35:03
Beste Kenny,

Omdat ik Bricscad 7 gebruik kan ik extrim niet testen. Maar je kunt ook zelf "extrimmen" door gebruik te maken van optie fence in het trim-commando:

: trim
Select cutting entities for trim <ENTER to select all>:
Entities in set: 1
Select cutting entities for trim <ENTER to select all>:
Edge mode/Fence/Projection/<Select entity to trim>: f
First point of fence:
Next fence point:
Next fence point:

De punten van de fence moet je dan kiezen net buiten de polylijn die als snijlijn wordt gebruikt.
Misschien dat dit wel lukt en, ondanks dat het wat tijd kost, toch werkbaar is.

Groet, Roy.
Titel: Re:Alles buiten Polyline Verwijderen of Selecteren
Bericht door: Manu op vr 14 08 2009, 13:43:37
Citaat van: Kenny van Lent op vr 14 08 2009, 10:39:00
"..als ik extrim uitvoer doet het letterlijk niks..."

Kenny,

Wat staat er te lezen in het Autocad Text Window (via F2) vlak na het uitvoeren van de extrim?
En sta je volledig uitgezoomd voor het uitvoeren van extrim?

Manu
Titel: Re:Alles buiten Polyline Verwijderen of Selecteren
Bericht door: Kenny van Lent op ma 17 08 2009, 10:15:24
roy_043: Zoals ik al zei heb ik vrijwel alle standaard commando's uitgeprobeerd op allerlij manieren, ook deze was al als 1 van de eerste aan de beurt. Geeft geen foutmeldingen, en AutoCAD denkt dat het functioneert naar behoren, terwijl dat niet het geval is. Extrim verwijderd de lange lijnen, maar niet de korte, terwijl juist de korte van belang zijn om getrimmed te worden. Hiervoor zoek ik nogsteeds een oplossing.

Manu: Zoals ik hierboven al vermeld heb, AutoCAD vermeld dat alles correct funcioneert, maar in tegendeel. En ja, ik heb extrim gebruikt nadat ik zoom-extend heb gebruikt en ook heb ik extrim gebruikt terwijl ik ingezoomd was. Nogteeds worden niet ALLE lijnen getrimmed, enig idee?
Titel: Re:Alles buiten Polyline Verwijderen of Selecteren
Bericht door: roy_043 op ma 17 08 2009, 12:43:03
Beste Kenny,

Als de polylijn gebogen delen heeft dan zou je nog kunnen proberen om deze met polyfit (http://www.polyface.de/) om te zetten in een polylijn met alleen rechte stukjes (let op: ook de rechte delen van de polylijn worden door polyfit opgedeeld in stukjes).

Post anders eens een KLEINE test dwg met een stukje van de omtrek en een paar elementen die niet te trimmen zijn ...

Groet, Roy.

Titel: Re:Alles buiten Polyline Verwijderen of Selecteren
Bericht door: Manu op di 18 08 2009, 11:43:28
Kenny,

Zou het kunnen dat de lijnen die NIET worden getrimd niet in hetzelfde vlak liggen zoals de polyline waarrond je trimt?
Kijk de Z-waardes eens na van hetgeen 'overblijft'.. of zie na of het geen 3D-polylines zijn..
Tip : middels het commando ID kun je van eender welk 'punt' de XYZ-waarden opvragen..

Hou je ons op de hoogte?

Manu
Titel: Re:Alles buiten Polyline Verwijderen of Selecteren
Bericht door: Kenny van Lent op di 18 08 2009, 13:42:44
roy_043 en Manu: Zojuist zijn wij erachter gekomen dat "extrim" alleen hetgene trimt wat visueel is op het beeldscherm. Dit verklaart ook waarom de grote lijnen die bij Zoom Extend zichtbaar waren, getrimt werden. Dus hetgeen wat niet zichtbaar is met Zoom Extend word NIET getrimt, wat dus wel moet gebeuren.

Maar "extrim" zegt het al, "ex" (Zoom Extend) "trim" (Trim). Is het mogelijk om hiervoor een ander soortgelijk commando te gebruiken zodat wel alle objecten ongeacht of het zichtbaar is verwijderd worden of moet ik hiervoor een instelling veranderen van "Trim Visible" naar "Trim Real", of iets in die geest.

Daarbij zweet ik otters uit m'n kont, heerlijk weertje, vind je niet? ;)

Met vriendelijke groet,
K. van Lent
Titel: Re:Alles buiten Polyline Verwijderen of Selecteren
Bericht door: mrbeegee op di 18 08 2009, 16:22:52
Ik heb het ook eens gereproduceerd. Heb hier een stadskaart van Amsterdam 50MB groot ruim 1.000.000 objecten.
Ik heb een gesloten polylijn om de grachtengordel getekend en NIET geheel uitgezoomd met de lisp deloutside alles buiten de polylijn proberen te verwijderen........ effe wachten. AutoCad is nu nog bezig!
Daarom nog een paar vraagjes:
* Welke AutoCad versie gebruik je?
* Is het gedeelte dat je wilt verwijderen groter of kleiner dan het gedeelte dat je wilt behouden?

Ik denk dat ik iets te veel hooi op de vork heb genomen.  :o   nee, hij is er weer.
Hij heeft keurig alles weggegooid wat geheel buiten de polylijn stond.
Nu met extrim de crossings trimmen. Je hoeft trouwens niet uitgezoomd te staan want dat commando (zoom extend) zit al in het extrim-commando.
Het grootste gedeelte haalt die ook weg alleen de hele kleine overschrijdingen pakt die niet.
Dit heeft denk ik te maken met met een visuele tolerantie die AutoCad gebruikt tijdens het trimmen. Handmatig trimmen als je ingezoomt ben gaat probleemloos. Maar dat is waarschijnlijk geen optie voor je!?
Ik heb nog geen slimmere oplossing dan handmatig hiervoor gevonden.
Titel: Re:Alles buiten Polyline Verwijderen of Selecteren
Bericht door: roy_043 op di 18 08 2009, 19:18:02
Beste Kenny,

Ik heb eens gezocht naar extrim.lsp en warempel: in autocad14 was deze functie een lisp!

Wat heb je nodig (*.txt hernoemen naar *.lsp):
http://personales.unican.es/Togoresr/lisp/Ejemplos/R14/BONUS/AC_BONUS.txt
http://personales.unican.es/Togoresr/lisp/Ejemplos/R14/BONUS/EXTRIM.txt

Wat is volgens mij het probleem:
In feite trimt extrim ook met de optie fence. Om de punten voor deze fence te bepalen wordt gebruik gemaakt van het commando offset. Voor stedenbouwkundige tekeningen is de offset-afstand te groot waardoor kleine overschrijdingen worden gemist.

Wat zou je kunnen proberen:
Verander deze regels in EXTRIM.LSP:
regel 162:                       (/ (pixel_unit) 2.0)
regel 348:         b (* (getvar "viewsize") 0.05);initial offset distance
regel 351:         c (pixel_unit)
Bijvoorbeeld in:
regel 162:                       (/ (pixel_unit) 2000.0)
regel 348:         b (* (getvar "viewsize") 0.00005);initial offset distance
regel 351:         c (/ (pixel_unit) 1000.0)
In het voorbeeld worden de maten gedeeld door 1000. Dit getal kun je nog groter maken.

Ik moest overigens in AC_BONUS.LSP ook nog een error-functie "uitschakelen":
(defun init_bonus_error ( lst / ss undo_init)
   nil
)

Groet, Roy.
Titel: Re:Alles buiten Polyline Verwijderen of Selecteren
Bericht door: mrbeegee op wo 19 08 2009, 10:16:09
Hoi Roy,
In Map3D/express kwam ik deze lisp ook tegen. Deze is reeds iets aangepast tov de oorspronkelijke lisp in de bonustools.
Omdat deze iets anders is weet ik niet precies hoe deze aan te passen. Kan jij dit bekijken?
Titel: Re:Alles buiten Polyline Verwijderen of Selecteren
Bericht door: roy_043 op wo 19 08 2009, 11:13:40
Beste mrbeegee,

Oude regels voor jou:
regel 197:                        (/ (acet-geom-pixel-unit) 2.0)
regel 391:         b (* (getvar "viewsize") 0.05);initial offset distance
regel 394:         c (acet-geom-pixel-unit)
Nieuwe regels voor jou:
regel 197:                        (/ (acet-geom-pixel-unit) 2000.0)
regel 391:         b (* (getvar "viewsize") 0.00005);initial offset distance
regel 394:         c (/ (acet-geom-pixel-unit) 1000.0)
Het kan overigens zijn dat delen door 1000 een te grote stap is. Als de polylijn veel bogen bevat dan zal het programma waarschijnlijk zeer traag worden.

Groet, Roy.
Titel: Re:Alles buiten Polyline Verwijderen of Selecteren
Bericht door: mrbeegee op wo 19 08 2009, 15:27:28
Perfect Roy.  :vreegoe:
Ik had de waarden 100 maal zo "fijn" genomen en alles was nu wel meegenomen.
Titel: Re:Alles buiten Polyline Verwijderen of Selecteren
Bericht door: Ropa op do 20 08 2009, 10:09:45
Je kan misschien ook bij de EXPRESS tools het volgende gebruiken.
BLOCKS-> trim to nested objects-Fence.......

Ik kan me nog herinneren dat er vroeger (ik meende autocad14) ook bij de bonustools ene optie was om alles buiten een polyline te trimmen. Als ik bv een kadastrale situatie had dan maakte ik een cirkel eroverheen en liet dan een commando uitvoeren uit de bonustools (een soort multitrim geloof ik). Je zag gewoon dat hij een paar keer om de cirkel heen trok om alle lijnen te trimmen met de cirkellijn. Dit heb ik nooit weer kunnen vinden, deze routine.

ps
lees nu net het bericht hierboven. Heb net ff extrim geprobeerd. Dit is dus wat ik bedoelde ja......Autocad 14 dus (lees ik net hierboven in bericht van Roy-043)
Mooi dat ik dat nu ook tegenkom.
Titel: Re:Alles buiten Polyline Verwijderen of Selecteren
Bericht door: Kenny van Lent op do 20 08 2009, 15:52:00
Allereerst wil ik jullie allemaal hartstikke bedanken voor de input die jullie gegeven hebben!  :D :vreegoe:

De oplossing is gevonden en het werkt zo glad als ijs, deze is als bijlage toegevoegd aan het bericht.

Zeer benieuwd ben ik naar jullie mening over dit script.

Met vriendelijke groet,
K. van Lent
Titel: Re:Alles buiten Polyline Verwijderen of Selecteren
Bericht door: Ropa op do 20 08 2009, 16:02:34
Werkt prima.

Nou weet ik hoe het heette in de bonustools. Cookiecuttertrim. Lees het in het script.