| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Matrix aller ausgewählten Teile auf eine Position (1742 mal gelesen)
|
freak-tom Mitglied PDM-/CAD-Admin
Beiträge: 347 Registriert: 07.03.2006
|
erstellt am: 13. Nov. 2006 15:16 <-- editieren / zitieren --> Unities abgeben:
Hallo Forum-User hab mal wieder eine Frage und zwar wie kann ich mittels VBA alle ausgewählten Teile in einer Baugruppe auf 0,0,0 setzen? Habe folgenden Code gefunden, dieser ändert allerdings immer nur ein Teil! Kann mir jemand sagen wie der Code geändert werden muss, das er meinen Vorstellungen entspricht? Code: Public Sub Teile_auf_Ursprung() ' Set a reference to the assembly component definintion. Dim oAsmCompDef As AssemblyComponentDefinition Set oAsmCompDef = ThisApplication.ActiveDocument.ComponentDefinition ' Get an occurrence from the select set. On Error Resume Next Dim oOccurrence As ComponentOccurrence Set oOccurrence = ThisApplication.ActiveDocument.SelectSet.Item(1) If Err Then MsgBox "An occurrence must be selected." Exit Sub End If On Error GoTo 0 ' Get the current transformation matrix from the occurrence. Dim oTransform As Matrix Set oTransform = oOccurrence.Transformation ' Move the occurrence honoring any existing constraints. oTransform.SetTranslation ThisApplication.TransientGeometry.CreateVector(2, 2, 3) oOccurrence.Transformation = oTransform ' Move the occurrence ignoring any constraints. ' Anything that causes the assembly to recompute will cause the ' occurrence to reposition itself to honor the constraints. oTransform.SetTranslation ThisApplication.TransientGeometry.CreateVector(0, 0, 0) Call oOccurrence.SetTransformWithoutConstraints(oTransform) ' Iterate through all of the occurrences and ground them. oOccurrence.Grounded = True 'Next End Sub
Danke schonmal im Voraus Wir haben Inventor 10 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Alienware m17x, Win7, Inventor2012
|
erstellt am: 14. Nov. 2006 09:54 <-- editieren / zitieren --> Unities abgeben: Nur für freak-tom
|
freak-tom Mitglied PDM-/CAD-Admin
Beiträge: 347 Registriert: 07.03.2006
|
erstellt am: 14. Nov. 2006 10:13 <-- editieren / zitieren --> Unities abgeben:
|
SEHER Mitglied Systemanalytiker
Beiträge: 1203 Registriert: 13.03.2001 Inventor 2 bis 2022 häufig wechselnder Rechnerverkehr
|
erstellt am: 14. Nov. 2006 10:22 <-- editieren / zitieren --> Unities abgeben: Nur für freak-tom
|
freak-tom Mitglied PDM-/CAD-Admin
Beiträge: 347 Registriert: 07.03.2006
|
erstellt am: 14. Nov. 2006 12:31 <-- editieren / zitieren --> Unities abgeben:
|
freak-tom Mitglied PDM-/CAD-Admin
Beiträge: 347 Registriert: 07.03.2006 Productstream Professional Pro 2011 / Jobserver / Replikator Productstream Professional Office 2011 Productstream Professional Pro 2010 / Jobserver / Replikator Productstream Professional Office 2010 Solid Works 2018 DraftSight 2019 SAP ECTR
|
erstellt am: 17. Nov. 2006 14:59 <-- editieren / zitieren --> Unities abgeben:
Hallo Forumuser, kann ich die Winkel auch beeinflussen über VBA? Ich hab jetzt schon im Forum und in der Hilfe nachgeschaut, bin aber zu keinem Ergebniss gekommen! Ich muss allerdings auch gestehen, das ich mich so gut wie gar nicht damit auskenne! Ich kann mir nur die Struktur erklären, da ich andere Programmiersprachen kann und diese ähnlich aufgebaut sind aber so wirklich steig ich bei VBA noch nicht durch!
MfG Freak Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PaulSchuepbach Moderator Programmierer
Beiträge: 1005 Registriert: 01.10.2003
|
erstellt am: 17. Nov. 2006 17:22 <-- editieren / zitieren --> Unities abgeben: Nur für freak-tom
Zitat: Original erstellt von freak-tom:
kann ich die Winkel auch beeinflussen über VBA?
Hallo,
Wenn ich Deine Frage richtig verstehe, dann suchst Du nach der Möglichkeit, die Einbauposition - also die Lage im Raum - zu definieren. Das ist keine Frage der Programmiersprache, sondern ist reine Vektorgeometrie und nennt sich Transformationsmatrix. Dabei handelt es sich um eine gewöhnliche 4x4 Matrix, also 3 Vektoren, die die Transformation beschreiben und 1 Vektor der die Translation beschreibt. Steht doch alles im Beispielcode drin, den Du selber gepostet hast ? Ein paar Zeilen irgendwo rauskopieren und im VBA-Editor durchlaufen zu lassen machen eben noch keinen Programmierer... Offensichtlich hast Du die wenigen Zeilen Code des Beispiels nicht verstanden. Und was Du bei VB(A) nicht verstehen willst, das wiederum verstehe ich nicht. Wenn Du eine OOP-Sprache kannst, dann sollte aber VB(A) kein Problem darstellen. ------------------ Grüsse, Paul
Inventor-Programmierung, Inventor-Tools und Inventor API-Schulung thinkCAD Web-Kataloge Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Alienware m17x, Win7, Inventor2012
|
erstellt am: 17. Nov. 2006 17:42 <-- editieren / zitieren --> Unities abgeben: Nur für freak-tom
|
freak-tom Mitglied PDM-/CAD-Admin
Beiträge: 347 Registriert: 07.03.2006
|
erstellt am: 22. Jan. 2007 12:27 <-- editieren / zitieren --> Unities abgeben:
Hallo ich kann PHP, HTML, JAVA SCRIPT, CSS, allerdings alles nur so das ich damit zurechtkomme! Ich weis also nur die Sachen, die ich bis jetzt gebraucht habe! Programmiere in meiner Freizeit Hompages! MfG Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |