Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Constraint zwischen Arbeitsebenen

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:  Constraint zwischen Arbeitsebenen (1597 mal gelesen)
Stefan.Geissler
Mitglied
Student


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

Beiträge: 13
Registriert: 22.04.2008

erstellt am: 19. Mai. 2008 08:52    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 VBA Gemeinde,

ich muss erstmal ein dickel Lob für das Forum loswerden, es hat mir allein durch lesen der älteren Beiträge viel gebracht. Nun bin ich aber an einem Punkt angekommen wo ich nicht mehr weiterweis.

Ich möchte in ein Assembly zwei Parts (erstmal die gleichen) einladen, und diese dann in Abhängigkeiten setzten. Die Abhängigkeit soll zwischen den Arbeitsebenen des jeweiligen Parts entstehen. Mit Hilfe der API ist es mir auch ganz gut gelungen, jedoch nur wie in der Hilfe beschrieben mit Flächen.

Wie schaffe ich es nun diese von mir in dem Part erstellte Arbeitsebene anzusprechen?

mein code lautet bis jetzt wie folgt:

Code:
'abgeleitet aus der API
Dim oPosMatrix As Matrix
Set oPosMatrix = oApp.TransientGeometry.CreateMatrix

Dim oGrund1 As ComponentOccurrence
Set oGrund1 = oAssDoc.ComponentDefinition.Occurrences.Add(Speicherort, oPosMatrix)

Dim oGrund2 As ComponentOccurrence
Set oGrund2 = oAssDoc.ComponentDefinition.Occurrences.Add(Speicherort, oPosMatrix)


nun will ich die Arbeitsebenen von Grund1 und Grund2 miteinander in Abhängigkeit setzten, wie sprech ich die Ebenen an?
Dim oEbene1 as WorkPlane
Set oEbene1 = ???

Danke schonmal 


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

daywa1k3r
Moderator
Softwareentwickler




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

Beiträge: 3497
Registriert: 01.08.2002

Alienware m17x, Win7, Inventor2012

erstellt am: 19. Mai. 2008 09:14    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 Stefan.Geissler 10 Unities + Antwort hilfreich

Hallo Stefan,

kommt darauf an, welche Ebene du haben willst. Du kannst dir über die CompDef von der Occurrence die Definition holen, und dann über die Workplanes auf die Ebenen zugreifen:

Code:

...
    Dim oGrund2 As ComponentOccurrence
    Set oGrund2 = oAssDoc.ComponentDefinition.Occurrences.Add(Speicherort, oPosMatrix)
   
    Dim oPartDef As PartComponentDefinition
    Set oPartDef = oGrund2.Definition
   
    Set oEbene1 = oPartDef.WorkPlanes(1)
...


------------------
Grüße Igor

FX64 Software Solutions

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

Stefan.Geissler
Mitglied
Student


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

Beiträge: 13
Registriert: 22.04.2008

erstellt am: 19. Mai. 2008 11:41    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

Das mit den Ebenen hat funktioniert, jetzt beschwert er sich bei dieser Zeile

Code:
Dim oCons As AssemblyConstraint
    Set oCons = oAssDoc.ComponentDefinition.Constraints.AddMateConstraint(oEbene1, oEbene2, 0, kNoInference, kNoInference)

(Die Methode AddMate.. ist für das Objekt _IRxAssembleyConstrains fehlgeschlagen) das gleiche bei AddFlush...


Und noch eine Frage, wie sprech ich die von mir manuell erstellten Arbeitsebenen im Part an?

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

daywa1k3r
Moderator
Softwareentwickler




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

Beiträge: 3497
Registriert: 01.08.2002

Alienware m17x, Win7, Inventor2012

erstellt am: 19. Mai. 2008 11:54    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 Stefan.Geissler 10 Unities + Antwort hilfreich

Hilfedatei:

Code:

Public Sub MateConstraintOfWorkPlanes()
    Dim oAsmCompDef As AssemblyComponentDefinition
    Set oAsmCompDef = ThisApplication.ActiveDocument.ComponentDefinition

    ' Get references to the two occurrences to constrain.
    ' This arbitrarily gets the first and second occurrence.
    Dim oOcc1 As ComponentOccurrence
    Set oOcc1 = oAsmCompDef.Occurrences.Item(1)

    Dim oOcc2 As ComponentOccurrence
    Set oOcc2 = oAsmCompDef.Occurrences.Item(2)

    ' Get the XY plane from each occurrence. This goes to the
    ' component definition of the part to get this information.
    ' This is the same as accessing the part document directly.
    ' The work plane obtained is in the context of the part,
    ' not the assembly.
    Dim oPartPlane1 As WorkPlane
    Set oPartPlane1 = oOcc1.Definition.WorkPlanes.Item(3)

    Dim oPartPlane2 As WorkPlane
    Set oPartPlane2 = oOcc2.Definition.WorkPlanes.Item(3)

    ' Because we need the work plane in the context of the assembly
    ' we need to create proxies for the work planes. The proxies
    ' represent the work planes in the context of the assembly.
    Dim oAsmPlane1 As WorkPlaneProxy
    Call oOcc1.CreateGeometryProxy(oPartPlane1, oAsmPlane1)

    Dim oAsmPlane2 As WorkPlaneProxy
    Call oOcc2.CreateGeometryProxy(oPartPlane2, oAsmPlane2)

    ' Create the constraint using the work plane proxies.
    Call oAsmCompDef.Constraints.AddMateConstraint(oAsmPlane1, oAsmPlane2, 0)
End Sub


------------------
Grüße Igor

FX64 Software Solutions

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