Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  InsertionPoint für Skizze

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:  InsertionPoint für Skizze (1076 mal gelesen)
winter7288
Mitglied
Konstrukteur


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

Beiträge: 40
Registriert: 03.07.2008

erstellt am: 15. Aug. 2012 15:07    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


Makrofehler.jpg


Module2.txt

 
Hallo zusammen,

ich bin dabei unsere Zeichnungsvorlage neu zu machen mit neuem Rahmen, Schriftkopf etc. Für den Rahmen mit Faltmarken usw. habe ich mir ein Makro hier aus dem Forum heruntergeladen und etwas angepaßt.

So weit, so gut. Wenn ich das Makro von Hand ausführe, klappt alles wunderbar und der Rahmen wird schön auf den Ursprung gelegt. Wenn ich das Makro aber über AutoSave() laufen lasse, wird der Einfügepunkt nicht mehr auf die linke untere Ecke gesetzt sondern in die Mitte.
Weiß jemand, woran das liegen könnte?

------------------
--
Grüße aus dem Westerwald,
Manfred

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: 15. Aug. 2012 18:03    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 winter7288 10 Unities + Antwort hilfreich

Hallo

Dein Makro ruft, meiner Meinung nach sinnloserweise, einen weiteren Befehl über den CommandManager auf. Innerhalb des Speicherns wird der vermutlich nicht ausgeführt und ohne definierten Einfügepunkt nimmt Inventor die Mitte. Änder mal die Funktion ConvertToInsertationPoint so ab:

Code:
Private Sub ConvertToInsertionPoint(oSketchPoint As SketchPoint)
    Dim oSelectSet As SelectSet
    Set oSelectSet = ThisApplication.ActiveDocument.SelectSet

    ' Programmatically select the sketch point
    Call oSelectSet.Select(oSketchPoint)
   
    oSketchPoint.InsertionPoint = True
   
    ' Get the Inventor command that does the conversion
    ' Dim oControlDef As ControlDefinition
    ' Set oControlDef = ThisApplication.CommandManager.ControlDefinitions.Item("SketchInsertionPtCmd")

    ' Execute the command
    ' oControlDef.Execute
   
End Sub


Zum Thema Autosave sag ich jetzt lieber nix.

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

[Diese Nachricht wurde von rkauskh am 15. Aug. 2012 editiert.]

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

winter7288
Mitglied
Konstrukteur


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

Beiträge: 40
Registriert: 03.07.2008

erstellt am: 16. Aug. 2012 08:22    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,

vielen Dank, das war's. 

Die Routine hatte ich so übernommen, vermutlich aus einer Zeit, als Inventor das nicht anders konnte.

Ich gebe ja zu, daß ich nicht viel Ahnung von VBA unter Inventor habe. Ich will, daß der Rahmen sich anpaßt, wenn ich die Blattgröße ändere. Und dazu ist mir erstmal nix anderes eingefallen, als das beim Speichern über AutoSave zu machen. Lieber wäre mir auch, wenn das Makro beim Ändern der Blattgröße automatisch läuft.

------------------
--
Grüße aus dem Westerwald,
Manfred

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: 16. Aug. 2012 09:01    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 winter7288 10 Unities + Antwort hilfreich

Hallo

Inventor kann das schon sehr lange. Das Makro war halt nur für den einen speziellen Zweck geschrieben. Inventor bringt mit iLogic mittlerweile eine Alernative zu VBA mit, die auch das Reagieren auf Events ermöglicht. Dann wäre Autosave überflüssig. Ich kann dir aus dem Kopf nicht sagen, ob und wie sich das Makro portieren läßt. Aber ich schau es mir in den nächsten Tagen mal an.

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

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

winter7288
Mitglied
Konstrukteur


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

Beiträge: 40
Registriert: 03.07.2008

erstellt am: 16. Aug. 2012 09:39    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

Ok, das Makro hatte ich auch in den Tiefen dieses Forums gefunden. 
An iLogic hatte ich auch schon gedacht. Aber da müsste ich mich erstmal reinarbeiten. Leider ist das meiste, was ich bisher zu iLogic gefunden habe, für Inventor ab 2012. Da hat sich wohl einiges getan im Gegensatz zu unserem AIS 2011.
Auf jeden Fall schonmal vielen Dank! 

------------------
--
Grüße aus dem Westerwald,
Manfred

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: 21. Aug. 2012 23: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 winter7288 10 Unities + Antwort hilfreich

Hallo

Sorry, hat etwas länger gedauert. Das VBA-Script bleibt wie es ist. Öffnen in deiner Zeichnungsvorlage den Ribbon "Verwalten". Klicke auf "Regel hinzufügen" und nenne die Regel "CreateAndInsertMyBorder". Der Name ist beliebig, aber so kann man es besser zuordnen. Im "Regel bearbeiten"-Fenster füge folgenden Code ein:

Code:
InventorVb.RunMacro("Anwendungsprojekt", "CreateAndInsertMyBorder", "CreateAndInsertMyBorder")

Schließe das Fenster mit OK. Klicke auf "Ereignisauslöser". Selektiere "Vor dem Speichern von Dokument" und klicke auf "Regel auswählen. In dem Dialog ein Häkchen vor deine Regel "CreateAndInsertMyBorder". Mit OK bestätigen und falls noch nicht gesetzt, das Häkchen bei "Diese Regeln ausführen, wenn Ereignisse auftreten".

Ab jetzt sollte deine Regel vor jedem Speichern ausgeführt werden.

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

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

winter7288
Mitglied
Konstrukteur


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

Beiträge: 40
Registriert: 03.07.2008

erstellt am: 22. Aug. 2012 09:28    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

Vielen Dank, Ralf! 
So funktioniert es bestens. Ich musste nur "Anwendungsprojekt" durch "DocumentProject" ersetzen, also
Code:
InventorVb.RunMacro("DocumentProject", "CreateAndInsertMyBorder", "CreateAndInsertMyBorder")

------------------
Gruß aus dem Westerwald,
Manfred

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