| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: vorhandenes makro erweitern (1111 mal gelesen)
|
junior33 Mitglied
Beiträge: 14 Registriert: 03.02.2003
|
erstellt am: 04. Mrz. 2005 12:06 <-- editieren / zitieren --> Unities abgeben:
Hallo Leute, ich habe vor kurzem (im inventor-forum) ein makro erhalten was es mir erlaubt eine bestimmte datei auf einen button zu legen. funktioniert auch wunderbar. nur jetzt habe ich festgestellt, dass es von vorteil wäre wenn die datei auch zur weiteren platzierung an dem mauszeiger hängen bleiben würde. der jetzige zustand ist, dass er die datei einfach irgendwo ins modell schmeisst. weiss einer von euch vielleicht wie man das makro so erweitern könnte, dass die datei auch an dem mauszeiger hängen bleibt, so wie beim einfügen aus der bibliothek heraus? hier das makro: Public Sub AddOccurrence() ' Set a reference to the assembly component definintion. ' This assumes an assembly document is open. Dim oAsmCompDef As AssemblyComponentDefinition Set oAsmCompDef = ThisApplication.ActiveDocument.ComponentDefinition ' Set a reference to the transient geometry object. Dim oTG As TransientGeometry Set oTG = ThisApplication.TransientGeometry ' Create a matrix. A new matrix is initialized with an identity matrix. Dim oMatrix As Matrix Set oMatrix = oTG.CreateMatrix ' Set the rotation of the matrix for a 45 degree rotation about the Z axis. Call oMatrix.SetToRotation(3.14159265358979 / 4, _ oTG.CreateVector(0, 0, 1), oTG.CreatePoint(0, 0, 0)) ' Set the translation portion of the matrix so the part will be positioned ' at (3,2,1). Call oMatrix.SetTranslation(oTG.CreateVector(3, 2, 1)) ' Add the occurrence. Dim oOcc As ComponentOccurrence Set oOcc = oAsmCompDef.Occurrences.Add("C:\Temp\Part1.ipt", oMatrix) End Sub mfg junior33
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PaulSchuepbach Moderator Programmierer
Beiträge: 1005 Registriert: 01.10.2003
|
erstellt am: 07. Mrz. 2005 15:16 <-- editieren / zitieren --> Unities abgeben: Nur für junior33
Hallo Junior, das geht so: Private Sub InsterPart() Dim oApp As Inventor.Application Set oApp = ThisApplication Dim oCMgr As CommandManager Set oCMgr = oApp.CommandManager Dim FileName As String
' hier den richtigen Filenamen setzen FileName = "Klotz.ipt" Call oCMgr.PostPrivateEvent(kFileNameEvent, FileName) Call oCMgr.StartCommand(kPlaceComponentCommand) End Sub Gruesse,
Paul www.morecam.ch/cad.htm Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
junior33 Mitglied
Beiträge: 14 Registriert: 03.02.2003
|
erstellt am: 10. Mrz. 2005 10:19 <-- editieren / zitieren --> Unities abgeben:
hallo Paul, vielen dank erstmal für deine antwort. entweder mache ich etwas falsch oder das makro funktioniert nicht. ich denke mal eher dass ich etwas falsch mache. bei mir passiert nämlich nichts wenn ich nur dein makro benutze. ich habe mal versucht nur den dateinamen anzugeben und danach mal den kompletten pfad. bin jedoch zu keinen funktionierenden resultat gekommen. kann es sein dass ich beide makros irgendwie in kombination benutzen muss ? habe von vba und makros wirklich keine ahnung. es wäre super nett von dir wenn du mir dass makro so schicken könntest wie ich es auch einfügen muss, falls es eine kombination von beiden makros sein sollte. vielen dank nochmals im voraus. mfg junior33
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PaulSchuepbach Moderator Programmierer
Beiträge: 1005 Registriert: 01.10.2003
|
erstellt am: 10. Mrz. 2005 10:51 <-- editieren / zitieren --> Unities abgeben: Nur für junior33
Hallo Junior, nein, es ist keine Kombination beier Makros. Ich habe das Ganze nochmals mit dem Kompletten Pfad und Dateinamen versuch und es geht auch: Public Sub InsertPart() Dim oApp As Inventor.Application Set oApp = ThisApplication Dim oCMgr As CommandManager Set oCMgr = oApp.CommandManager Dim FileName As String ' hier den richtigen Filenamen setzen FileName = "D:\InventorData9\Test9\Workgroup\Platte.ipt" Call oCMgr.PostPrivateEvent(kFileNameEvent, FileName) Call oCMgr.StartCommand(kPlaceComponentCommand) End Sub
Hast Du auch ein Assembly-Dokument offen ?
Hast Du auch das richtige Makro ausgefuehrt ? Gruesse, Paul www.morecam.ch/cad.htm
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
junior33 Mitglied
Beiträge: 14 Registriert: 03.02.2003
|
erstellt am: 10. Mrz. 2005 11:00 <-- editieren / zitieren --> Unities abgeben:
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|