FastFiber

Alles buiten Polyline Verwijderen of Selecteren (opgelost)

Gestart door Kenny van Lent, ma 10 08 2009, 14:19:15

Vorige topic - Volgende topic

Kenny van Lent

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

hilnanne

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

roy_043

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.




Kenny van Lent

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.

H@rm

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
Acad 10 t/m 2015
Revit 2010 t/m 2015
autodidact lisp

hulpje

HELAAS BESTAAT CADToppers.com niet meer
ACP-er (AutoDesk Certified Professional)

roy_043

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?

Kenny van Lent

#7
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

hulpje

HELAAS BESTAAT CADToppers.com niet meer
ACP-er (AutoDesk Certified Professional)

roy_043

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:

  • vraag de gebruiker een pl te selecteren
  • gebruik entget op de pl
  • controleer of het een gesloten pl is
  • destilleer een lijst met punten uit het resultaat van entget
  • gebruik ssget met de optie CP (of WP) en de lijst met punten1
  • je hebt nu een selectie-set die alle elementen bevat die je wilt behouden
  • loop alle elementen in de tekening af
  • gebruik ssmemb om te controleren of een element in de selectie-set zit
  • zit een element er niet in dan wissen met entdel
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.

mrbeegee

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!

mrbeegee

#11
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.

Manu

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
AutoCad 2000 - 2007 - 2008
Sketchup 4-5-6

Kenny van Lent

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

Manu

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

AutoCad 2000 - 2007 - 2008
Sketchup 4-5-6

FastFiber