| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | PNY präsentiert die neue NVIDIA RTX A400 und die A1000 Grafikkarte, eine Pressemitteilung
|
Autor
|
Thema: Probleme mit acSelectionSetWindowPolygon (2073 mal gelesen)
|
Benny4 Mitglied Softwareentwickler
 
 Beiträge: 178 Registriert: 16.02.2006 AutoCAD 2010 ZW-CAD 2012
|
erstellt am: 16. Sep. 2008 11:34 <-- editieren / zitieren --> Unities abgeben:         
Hallo Forum, ich weiss da nicht mehr weiter. Ich habe folgendes vor: Ich lasse den Benutzer eine Polylinie auswählen. Über SelectByPolygon mit der Option acSelectionSetCrossingPolygon ermittle ich alle Objekte, die innerhalb der Polylinie oder die die Polylinie kreuzen. Das funktioniert soweit auch. Dann zeichne ich einen Bogen innerhalb der Polylinie ein. Und dann möchte ich mit der Funktion SelectByPolygon und der Option acSelectionSetWindowPolygon nur jene Objekte ermitteln, die innerhalb der Polylinie sind. Und genau da liegt mein Problem. Dieses von mir neu erzeugte Objekt wird nicht in das SelectionSet aufgenommen obwohl es 100% innerhalb der Polylinie liegt. Ich habe dann auch noch eine Testfunktion geschrieben um zu schauen ob die Option acSelectionSetWindowPolygon das macht was ich will. Und die bereits in der Zeichnung vorhandenen Objekte werden alle erkannt. Nur die ich während der Funktion neu erstelle nicht. Was mache ich da falsch? Unten ein Teil meines Codes, bei dem es nicht funktioniert. Danke schon mal für Eure TIpps.
Code:
On Error Resume Next ThisDrawing.SelectionSets.Item("PRE_DRAW").Delete Set selOmTmp = ThisDrawing.SelectionSets.Add("PRE_DRAW") 'Hier wähle ich alle Objekte aus, die innerhalb der der Polylinie sind und die diese kreuzen selOmTmp.SelectByPolygon acSelectionSetCrossingPolygon, myPointsFinal 'Hier zeichne ich einen Bogen ein der 100% innerhalb der Polylinie liegt Set myArc = ThisDrawing.ModelSpace.AddArc(selOm(i).center, selOm(i).radius, newStartAngle, newEndAngle) ThisDrawing.Regen acAllViewports myArc.Update '################################################################# '################################################################# Err.Clear On Error Resume Next ThisDrawing.SelectionSets.Item("POST_DRAW").Delete Set selOmTmp1 = ThisDrawing.SelectionSets.Add("POST_DRAW") 'Und hier möchte ich alle Objekte ermitteln die nur innerhalb der Polylinie sind selOmTmp1.SelectByPolygon acSelectionSetWindowPolygon, polyPointsForObjectsDbl MsgBox "Anzahl Objekte: " & selOmTmp1.Count & vbNewLine & vbNewLine & Err.Number & " - " & Err.Description
------------------ Grüsse Benny Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
   
 Beiträge: 1360 Registriert: 24.07.2002
|
erstellt am: 16. Sep. 2008 11:41 <-- editieren / zitieren --> Unities abgeben:          Nur für Benny4
Hi Benny, Der Bogen innerhalb der Polylinie wird vom Selectionset wie eine Linie behandelt. Du müsstest dann den Bogen in kurze Linienstücke zerlegen und diese dann mit in dein SelectbyPolygon einbeziehen. Es gab hier aber, meine ich, einen Beitrag der das Thema auch schon mal beinhaltet hat. Gruß, Carsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Benny4 Mitglied Softwareentwickler
 
 Beiträge: 178 Registriert: 16.02.2006 AutoCAD 2010 ZW-CAD 2012
|
erstellt am: 16. Sep. 2008 12:04 <-- editieren / zitieren --> Unities abgeben:         
Hallo Carsten, nein da hast du mich falsch verstanden. Ich zeichne innerhalb meiner gewählten Kontur einen Bogen. Und dieser wird dann nicht in mein SelectionSet übernommen. Also nicht die Polylinie selbest besteht aus Bögen. ------------------ Grüsse Benny Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stelli1 Moderator Verm.-Ing.
    
 Beiträge: 1526 Registriert: 17.08.2005 Map 2000-2014, Rasterdesign, MapGuide, Autodesk Topobase, VS6, VS.net 2013
|
erstellt am: 16. Sep. 2008 12:16 <-- editieren / zitieren --> Unities abgeben:          Nur für Benny4
Hallo Benny, du schaltest mit ON ERROR RESUME NEXT mal jede Fehlermöglichkeit ab. Schalte die Fehlerverfolgung doch direkt mal nach dem "Selectionset" wieder mit ON ERROR GOTO 0 ein. Dann kannst du deinen Code mal debuggen. Wilfried Stelberg ------------------ Warum lisp'eln wenn's auch anders geht. www.ib-stelberg.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Benny4 Mitglied Softwareentwickler
 
 Beiträge: 178 Registriert: 16.02.2006 AutoCAD 2010 ZW-CAD 2012
|
erstellt am: 16. Sep. 2008 12:21 <-- editieren / zitieren --> Unities abgeben:         
|
Carsten1210 Mitglied staatl. geprüfter Holztechniker
   
 Beiträge: 1360 Registriert: 24.07.2002
|
erstellt am: 16. Sep. 2008 12:29 <-- editieren / zitieren --> Unities abgeben:          Nur für Benny4
Hi Benny, Warum nutzt du zwei verschiedene Punktlisten für die beiden Selectionsets?! Hat das einen Grund, warum du nicht bei beiden Selectionsets die gleiche Punktliste für die Polylinie anwendest?! Gruß, Carsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Benny4 Mitglied Softwareentwickler
 
 Beiträge: 178 Registriert: 16.02.2006 AutoCAD 2010 ZW-CAD 2012
|
erstellt am: 16. Sep. 2008 12:39 <-- editieren / zitieren --> Unities abgeben:         
Hi, ja den gibts: Die 1. Punktliste beschreibt die Polylinie, die der Benutzer ausgewählt hat. Und die 2. Punktliste ist um 0.1 mm nach außen versetzt. Das deshalb, weil ich gesehen habe, dass die Option acSelectionSetWindowPolygon nur jene Objekte ermittelt die wirklich innerhalb der Polylinie sind. Kene Objekte, die an die Polylinie angrenzen (wenn ich meinen Bogen an der Polylinie stutze) werden nicht in das SelectionSet aufgenommen. Deshalb die 2 Listen. ------------------ Grüsse Benny Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin

 Beiträge: 2855 Registriert: 02.05.2006 AutoCAD LandDesktop R2 bis 2004 Civil 3D 2005 - 2025 Plateia, Canalis Visual Basic
|
erstellt am: 16. Sep. 2008 12:57 <-- editieren / zitieren --> Unities abgeben:          Nur für Benny4
Hallo Benny, mach doch mal ein Zoomall bevor Du den Select durchführst. Ich hatte auch manchmal das Problem das Elemente die am Bildschirm nicht dargestellt sind auch nicht ausgewählt werden. Grüße, Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Benny4 Mitglied Softwareentwickler
 
 Beiträge: 178 Registriert: 16.02.2006 AutoCAD 2010 ZW-CAD 2012
|
erstellt am: 16. Sep. 2008 15:18 <-- editieren / zitieren --> Unities abgeben:         
|
Carsten1210 Mitglied staatl. geprüfter Holztechniker
   
 Beiträge: 1360 Registriert: 24.07.2002
|
erstellt am: 16. Sep. 2008 15:28 <-- editieren / zitieren --> Unities abgeben:          Nur für Benny4
|
Benny4 Mitglied Softwareentwickler
 
 Beiträge: 178 Registriert: 16.02.2006 AutoCAD 2010 ZW-CAD 2012
|
erstellt am: 17. Sep. 2008 18:06 <-- editieren / zitieren --> Unities abgeben:         
Hi, mein Problem hat sich jetzt wohl erledigt. Hatte 2 Fehler drinnen: Der 1. ist ja schon peinlich: Alle Punkte der Punktliste, die die Funktion SelectByPolygon braucht, waren auf 0... War mir zu 1.000% sicher dass die passt... Naja... Und 2. muss man nach dem Einzeichnen des Bogens die Zeichnung regenerieren. Dann hat es funktioninert. Danke jedenfalls für eure Tipps.
------------------ Grüsse Benny Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |