| |
| 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
Beiträge: 40 Registriert: 03.07.2008
|
erstellt am: 15. Aug. 2012 15:07 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 15. Aug. 2012 18:03 <-- editieren / zitieren --> Unities abgeben: Nur für winter7288
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
Beiträge: 40 Registriert: 03.07.2008
|
erstellt am: 16. Aug. 2012 08:22 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 16. Aug. 2012 09:01 <-- editieren / zitieren --> Unities abgeben: Nur für winter7288
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
Beiträge: 40 Registriert: 03.07.2008
|
erstellt am: 16. Aug. 2012 09:39 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 21. Aug. 2012 23:27 <-- editieren / zitieren --> Unities abgeben: Nur für winter7288
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
Beiträge: 40 Registriert: 03.07.2008
|
erstellt am: 22. Aug. 2012 09:28 <-- editieren / zitieren --> Unities abgeben:
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 |