| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | |  | NVIDIA GTC Paris und ISC High Performance-Konferenz 2025, eine Pressemitteilung
|
Autor
|
Thema: Schneiden von Block mit einer Geraden (2739 mal gelesen)
|
Soldnerkugel Mitglied
 
 Beiträge: 131 Registriert: 29.01.2010 Win 7, AutoCAD Civil 3D 2015, SketchUp, CarlsonSurvCE
|
erstellt am: 06. Sep. 2011 12:08 <-- editieren / zitieren --> Unities abgeben:         
Grüß Gott mal wieder, liebe Forumsgemeinde. Heute möchte ich herausfinden, ob es Schnitt"punkte" von Blöcken mit einer Linie gibt. Das klappt auch prima mit .IntersectWith Jetzt kann es vorkommen, dass ein Block keine Schnittpunkte mit einer Linie hat, gibt es da irgendeine Methode mit der man sich in eine Variable ausgeben kann, ob es jetzt Schnittpunkte gibt oder nicht? ------------------ http://www.stupidedia.org/stupi/Rechter_Winkel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH

 Beiträge: 4191 Registriert: 17.05.2001 ACAD20XX, defun-tools
|
erstellt am: 07. Sep. 2011 16:27 <-- editieren / zitieren --> Unities abgeben:          Nur für Soldnerkugel
Hallo, (ich habe es jetzt nicht explizit an einem Beispiel getestet, wenn ich mich jedoch recht entsinne, dann übergibst du an die Methode Variablen, die dann mit Werten (mit den Koordinaten der Schnittpunkte) gefüllt sind.) Was hast du denn für eine Rückgabe bei IntersectWith? Da steht doch dann in den übergebenene Variablen ein Wert drinn .. und wenn dem nicht so ist, dann gibts auch keine Schnittpunkte. Grüße Holger ------------------ Holger Brischke CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen. defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Soldnerkugel Mitglied
 
 Beiträge: 131 Registriert: 29.01.2010 Win 7, AutoCAD Civil 3D 2015, SketchUp, CarlsonSurvCE
|
erstellt am: 07. Sep. 2011 16:37 <-- editieren / zitieren --> Unities abgeben:         
exakt so ist das. Mittlerweile habe ich das Problem lösen können, bin hier Forum auf das hier gestossen: If VarType(varSchnittpunktarry) <> vbEmpty And UBound(varSchnittpunktarry) > -1 Then ... EndIf mir wäre es lieber gewesen, wenn es etwas geben würde wie Dim Kontrolle as Boolean Kontrolle = oObject.gibt-es-Schnittpunkte und man könnte dann in der Variable Kontrolle einfach nachsehen, ob sich zwei Objekte schneiden oder nicht. wie gesagt - ich konnt's mittlerweile selber lösen, war aber ein bisserl aufwändiger. Trotzdem danke für deine Hilfsbereitschaft ------------------ http://www.stupidedia.org/stupi/Rechter_Winkel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Soldnerkugel Mitglied
 
 Beiträge: 131 Registriert: 29.01.2010 Win 7, AutoCAD Civil 3D 2015, SketchUp, CarlsonSurvCE
|
erstellt am: 31. Mai. 2014 23:06 <-- editieren / zitieren --> Unities abgeben:         
so.... ich möchte mein Makro etwas ändern. Ich selektiere Alignments in Civil3D - funktioniert jetzt möchte ich bestimmte Blöcke filtern, die diese Alignments schneiden ...leider funktioniert das nicht. Hier mein Codeschnipsel Set oSSetBlck = ThisDrawing.SelectionSets.Add("Blocks") If (oSSetBlck Is Nothing) Then Set oSSet = ThisDrawing.SelectionSets.Item("Blocks") oSSetBlck.Clear dxfCodes2(0) = 410 'Filter ob Modell oder Layout dxfValues2(0) = "Model" '0=Model dxfCodes2(1) = 0 'Objekttyp als Filter dxfValues2(1) = "INSERT" 'Objektname als String dxfCodes2(2) = 2 'Objekttyp als Filter dxfValues2(2) = "Rack_*" 'Objektname als String oAeccApp.ZoomExtents For Each oAlignment In oSSet strAName = oAlignment.Name Set oline = oAlignment.GetLWPolyline dblPts = oline.Coordinates dblStPt(0) = dblPts(0): dblStPt(1) = dblPts(1) dblEPt(0) = dblPts(2): dblEPt(1) = dblPts(3) oSSetBlck.Select acSelectionSetCrossing, dblStPt, dblEPt, dxfCodes2, dxfValues2 i = oSSetBlck.Count Next am Filter kann's nicht liegen, denn wenn ich einfach alle Blöcke filtere, dann sind sie im SelectionSet. Wenn ich jetzt aber nur diejenigen Filtern will, die das Alignment kreuzen, dann bleibt es leer. dblStPt und dblEPt werden richtige Werte zugewiesen -> muss also passen es kann also nur am Selection Set "oSSetBlck" liegen, ist evtl. acSelectionSetCrossing die falsche Option?
------------------
 http://www.stupidedia.org/stupi/Rechter_Winkel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
Soldnerkugel Mitglied
 
 Beiträge: 131 Registriert: 29.01.2010 Win 7, AutoCAD Civil 3D 2015, SketchUp, CarlsonSurvCE
|
erstellt am: 01. Jun. 2014 02:00 <-- editieren / zitieren --> Unities abgeben:         
so, gelöst... dblStPt bzw. dblEPt waren falsch dimensioniert es muss sein: Dim dblStPt(2) as double Dim dblEPt(2) as double statt: Dim dblStPt(1) as double Dim dblEPt(1) as double ------------------
 http://www.stupidedia.org/stupi/Rechter_Winkel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |