Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Schneiden von Block mit einer Geraden

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Schneiden von Block mit einer Geraden (2421 mal gelesen)
Soldnerkugel
Mitglied



Sehen Sie sich das Profil von Soldnerkugel an!   Senden Sie eine Private Message an Soldnerkugel  Schreiben Sie einen Gästebucheintrag für Soldnerkugel

Beiträge: 131
Registriert: 29.01.2010

Win 7, AutoCAD Civil 3D 2015, SketchUp, CarlsonSurvCE

erstellt am: 06. Sep. 2011 12:08    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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



Sehen Sie sich das Profil von Brischke an!   Senden Sie eine Private Message an Brischke  Schreiben Sie einen Gästebucheintrag für Brischke

Beiträge: 4171
Registriert: 17.05.2001

ACAD20XX, defun-tools

erstellt am: 07. Sep. 2011 16:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Soldnerkugel 10 Unities + Antwort hilfreich

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



Sehen Sie sich das Profil von Soldnerkugel an!   Senden Sie eine Private Message an Soldnerkugel  Schreiben Sie einen Gästebucheintrag für Soldnerkugel

Beiträge: 131
Registriert: 29.01.2010

Win 7, AutoCAD Civil 3D 2015, SketchUp, CarlsonSurvCE

erstellt am: 07. Sep. 2011 16:37    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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



Sehen Sie sich das Profil von Soldnerkugel an!   Senden Sie eine Private Message an Soldnerkugel  Schreiben Sie einen Gästebucheintrag für Soldnerkugel

Beiträge: 131
Registriert: 29.01.2010

Win 7, AutoCAD Civil 3D 2015, SketchUp, CarlsonSurvCE

erstellt am: 31. Mai. 2014 23:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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



Sehen Sie sich das Profil von Soldnerkugel an!   Senden Sie eine Private Message an Soldnerkugel  Schreiben Sie einen Gästebucheintrag für Soldnerkugel

Beiträge: 131
Registriert: 29.01.2010

Win 7, AutoCAD Civil 3D 2015, SketchUp, CarlsonSurvCE

erstellt am: 01. Jun. 2014 02:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz