Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Problem mit VBA-MAkro - Richtung der Anordnung ändern

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:  Problem mit VBA-MAkro - Richtung der Anordnung ändern (1262 mal gelesen)
M. Hanke
Mitglied
Konstruktionsingenieur


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

Beiträge: 384
Registriert: 05.12.2002

erstellt am: 19. Okt. 2012 11:59    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 Forum,
leider bin ich mit dem Inventor Objektmodell noch nicht so vertraut (auch wenn es dazu eine sehr schöne Grafik gibt) und habe somit noch Probleme bei meinem ersten Makro:

Ziel des Makros ist es, die Richtung der Anordnung ilogic-gesteuert umzuschalten.

Hier die Prozedur:

Public Sub patterndirection(direction As Boolean, doc As PartDocument)
'Diese Funktion setzt die Anordnungsrichtung 1 entgegen der Z-Achse
'Diese Funktion setzt die Anordnungsrichtung 1 in Richtung der Z-Achse
'Direction: Variable für Anordnungsrichtung (z / -z)
'Dim doc As PartDocument            'Variable für dieses Dokument

'Hilfsvariable
Dim pat1 As RectangularPatternFeature  'Variable für das gesuchte Anordnungs-Feature
Dim opartdef As PartComponentDefinition

'Setzen der aktuellen Werte für Dokument, Anordnung und Richtung
Set opartdef = doc.ComponentDefinition
Set pat1 = opartdef.parfeatures.RectangularPatternFeatures("AnordnungVolleWindungen")

'Parameter Richtung Anordnung einstellen
pat1.NaturalXDirection = direction

End Sub


Hier die Test-Prozedur, mit der ich das ganze auf VBA-Ebene testen wollte:
Private Sub testepatterndirection()
'Testen der Funktion patterndirection
Dim doceiskond As PartDocument

If Application.ActiveDocument = Application.FindFile Then
    Set doceiskond = Application.ActiveDocument = PartDocument
End If

Call patterndirection(False, doceiskond)

Call patterndirection(True, doceiskond)

End Sub


Und hier der Aufruf über ilogic:
'doc = ThisDoc.Document
''Einstellen aller Parameter auf Benutzerdefinierte Wickelrichtung
''Eingabegrößen: fx:Wickelrichtung (Text)
''Ausgabe: fx:Wickelrichtung_Number (1 wenn mit UZS, -1 wenn gegen UZS)
'If Wickelrichtung="mit UZS" Then
' Wickelrichtung_Number=1
' InventorVb.RunMacro("Anwendungsprojekt", "Wickelrichtung", "patterndirection", False)
'ElseIf Wickelrichtung="gegen UZS" Then
' Wickelrichtung_Number=-1
' InventorVb.RunMacro("Anwendungsprojekt", "Wickelrichtung", "patterndirection", True)
'End If
'


Leider läuft das bei mir immer in Fehler, die darauf hindeuten, dass ich etwas grundsätzliches mit den Objekten falschmache.

Kann mir wer helfen, wo der Fehler ist?

Danke!

------------------
Gruß
Michael


--->> Wissen ist Macht. Nichts wissen macht auch nichts. <<---

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

M. Hanke
Mitglied
Konstruktionsingenieur


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

Beiträge: 384
Registriert: 05.12.2002

Firma: SolidEdge 2019 Premium + P&ID Design + Piping + Isogen
Home: Solid Edge Academic Copy ST8, Win10

erstellt am: 19. Okt. 2012 12:02    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

Hier nochmal die Fehlermeldungen:
Bei Aufruf über ILogic:
"object variable or with block variable not set"
in Zeile 12:
"Set opartdef = doc.ComponentDefinition"

Bei Aufruf über Test-Prozedur:
"object does't support this property or method"
in Zeile
"If Application.ActiveDocument = Application.FindFile Then"

------------------
Gruß
Michael


--->> Wissen ist Macht. Nichts wissen macht auch nichts. <<---

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. Okt. 2012 13:21    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 M. Hanke 10 Unities + Antwort hilfreich

Hallo

Du benutzt doc ohne ihm einen Wert zugewiesen zu haben. Fehlt da nach dem False nicht ", doc"?

Code:
InventorVb.RunMacro("Anwendungsprojekt", "Wickelrichtung", "patterndirection", False)

Bei dem zweiten rätsel ich noch was du da versuchst? Probier's mal so, wobei das direkte hin und herdrehen der Richtung unter Umständen auf dem Bildschirm nicht angezeigt wird.

Code:
Private Sub testepatterndirection()
'Testen der Funktion patterndirection
Dim doceiskond As PartDocument

If Thisapplication.ActiveDocument.DocumentType=kPartDocumentObject then
    Set doceiskond = ThisApplication.ActiveDocument
End If

If Not doceiskond Is Nothing Then
    Call patterndirection(False, doceiskond)
    Call patterndirection(True, doceiskond)
End If

End Sub


------------------
MfG
Ralf

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

M. Hanke
Mitglied
Konstruktionsingenieur


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

Beiträge: 384
Registriert: 05.12.2002

erstellt am: 19. Okt. 2012 22:20    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 Ralf,
danke für die Hilfe. Werde ich gleich am Montag ausprobieren. Dummer Fehler das erste - aber manchmal sieht man den Wald vor lauter Bäumen nicht.
Das zweite hast du genau richtig interpretiert. Ich wollte das aktuelle Dokument suchen und nur dann das Makro laufen lassen, wenn das aktuelle Dokument ein Part-Dokument ist.

Vielen Dank nochmal!

------------------
Gruß
Michael


--->> Wissen ist Macht. Nichts wissen macht auch nichts. <<---

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