Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Zuordnung Zeichnungslinie-Modellkante

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:  Zuordnung Zeichnungslinie-Modellkante (603 mal gelesen)
rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 17. Jan. 2009 10:26    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

Hallo

Ich durchsuche in einer IDW alle dargestellten Linien, Bögen usw. und prüfe ob im Ursprungsteil der dargestellten Kante ein Attributset existiert.

Hier mal die Quintessenz der Sub. Die unwichtigen Zwischenschritte mit Fehlerbehandlung usw. hab ich rausgenommen.

Code:

Set oDrawDoc = oInventorApp.ActiveDocument
Dim oSheet As Sheet
Set oSheet = oDrawDoc.ActiveSheet
Dim ka As Integer
Dim oDrawingView As DrawingView
Dim oCurve As DrawingCurve
Dim Mg As Object

For Each oDrawingView In oSheet.DrawingViews
    If (oDrawingView.ViewType = kStandardDrawingViewType) Then
      For Each oCurve In oDrawingView.DrawingCurves
        Set Mg = oCurve.ModelGeometry
        For ka = 1 To Mg.EdgeUses.Item(1).Edge.AttributeSets.Count
          .....


Funktioniert in Bauteil- und Baugruppenableitungen. Aber sobald die Baugruppe eine Baugruppenbearbeitung enthält, finde ich an dieser Stelle die Attribute nicht mehr. Hab mir schon per Haltepunkt und Überwachung einen Wolf gesucht. In der Überwachung von Mg hab ich dann mein Attribut unter

Mg.NativeObject.Faces.Item(1).CreatedByFeature.SurfaceBody.Edges.Item(1).AttributeSets.Item(1)

wiedergefunden. Das Problem ist dabei nur, daß ich über diesen Weg keine eindeutige Zuordnung zwischen Zeichnungslinie und Modellkante hinbekomme.
Wie verändern Baugruppenbearbeitungen das Modell bzw. dessen Ableitung in der IDW? Hat jemand einen Tip wie ich eine exakte Zuordnung hinbekomme? Oder ist das wieder eine der "kleinen Unschärfen" in der API? 

Ich quäle mich jetzt schon seit drei Wochen damit rum, komme aber einfach nicht weiter.

------------------
MfG
RK

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 19. Jan. 2009 19:31    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

Hallo

Ich glaube ich habe die Lösung gefunden. Ich stelle mal ein Beispiel hier rein, falls jemand das doch mal brauchen sollte.

Code:

Set oDrawDoc = oInventorApp.ActiveDocument
Dim oSheet As Sheet
Set oSheet = oDrawDoc.ActiveSheet
Dim ka As Integer
Dim oDrawingView As DrawingView
Dim oCurve As DrawingCurve
Dim Mg As Object
Dim SF As Edge

For Each oDrawingView In oSheet.DrawingViews
    If (oDrawingView.ViewType = kStandardDrawingViewType) Then
      For Each oCurve In oDrawingView.DrawingCurves
        Set Mg = oCurve.ModelGeometry
        Set SF = Mg.GetSourceEdge
        MsgBox SF.AttributeSets.Item(1).Item(1).Value
      Next
    Endif
Next


Das Schöne ist, das an Kanten die durch eine Baugruppenbearbeitung entstanden sind, keine SourceEdge existiert und dann Nothing zurückkommt. Kann man prima weiterverwursten.

Trotzdem wieder danke an alle für's Lesen.

PS: Kann man Threads als gelöst markieren?

------------------
MfG
RK

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