| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Ausrichten eines Rechtecks (2617 mal gelesen)
|
noctis79 Mitglied Konstrukteur/ CAD-Administrator
Beiträge: 164 Registriert: 07.10.2009 Inventor Pro 2017 Cideon Workspace
|
erstellt am: 02. Okt. 2011 18:23 <-- editieren / zitieren --> Unities abgeben:
Hallo, hab mal wieder ein Problem... Makro macht bis jetzt folgendes: Anlegen eines neuen Bauteils Skizze auf die XY- Ebene Zeichnen eines Rechtecks Bemaßen des Rechtecks Jetzt möchte ich noch den Mittelpunkt der vertikalen Linie Horizontal zum Ursprungpunkt und den Mittelpunkt der horizontalen Linie vertikal zum Ursprungspunkt ausrichten. Leider komme ich an dieser Stelle nicht weiter... Ich kann auf StartSketchPoint und EndSketchPoint der Linie zugreifen, einen MidPoint habe ich leider nicht gefunden... Desweiteren würde es mich mal interessieren, wie Ihr vorgeht wenn Ihr eine Abhängigkeit auf den Ursprungspunkt setzt. Projiziert Ihr den in die Skizze oder greift Ihr direkt darauf zu? Danke für Eure Hilfe! 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: 03. Okt. 2011 09:31 <-- editieren / zitieren --> Unities abgeben: Nur für noctis79
|
noctis79 Mitglied Konstrukteur/ CAD-Administrator
Beiträge: 164 Registriert: 07.10.2009 Inventor Pro 2017 Cideon Workspace
|
erstellt am: 03. Okt. 2011 14:24 <-- editieren / zitieren --> Unities abgeben:
Moing, immer die gleichen hier ^^ Ja, den hab ich gestern auch noch entdeckt. Mein Problem ist jetzt aber, dass oOSketch.GeometricConstraints.AddHorizontalAlign einen SketchPoint verlangt. Der von Dir beschriebene Punkt ist aber ein Point2d. Kann man den irgendwie in einen SketchPoint umwandeln oder muss der vorher Projeziert werden?!? Hab im Moment noch 2 Mittellinien eingefügt da der Start und Endpunkt als SketchPoint vorhanden ist... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PaulSchuepbach Moderator Programmierer
Beiträge: 1005 Registriert: 01.10.2003
|
erstellt am: 03. Okt. 2011 16:40 <-- editieren / zitieren --> Unities abgeben: Nur für noctis79
Hallo, SketchLine.StartSketchPoint und SketchLine.EndSketchPoint sind SketchPoint-Objekte - allerdings sind SketchLine.Geometry.StartPoint, MidPoint und EndPoint Pont2D Objekte und daamit wird's nicht gehen. Wiesoo machst Du nicht einfach eine 2. DimensionConstraint hin ? Der Code ist nur quick&dirty, mach ein neues BT auf mit aktiver Skizze und lass den Code laufen... Code: Private Sub AddDims() Dim oApp As Inventor.Application Set oApp = ThisApplication Dim oDoc As PartDocument Set oDoc = oApp.ActiveDocument Dim oCD As PartComponentDefinition Set oCD = oDoc.ComponentDefinition Dim oSketch As PlanarSketch Set oSketch = oCD.Sketches(1) ' 1. Mass Dim oPt_1 As Point2d Set oPt_1 = oApp.TransientGeometry.CreatePoint2d(5, 0) Dim oDim_1 As DimensionConstraint Set oDim_1 = oSketch.DimensionConstraints.AddOffset(oSketch.SketchLines(1), oSketch.SketchLines(3), oPt_1, False) oDim_1.Parameter.value = 5 ' 2. Mass = Mass1 / 2 Dim oPt_2 As Point2d Set oPt_2 = oApp.TransientGeometry.CreatePoint2d(4, -1) Dim oDim_2 As DimensionConstraint Set oDim_2 = oSketch.DimensionConstraints.AddOffset(oSketch.SketchLines(1), oSketch.SketchPoints(1), oPt_2, False) oDim_2.Parameter.Expression = oDim_1.Parameter.Name & " / 2" ' 3. Mass Dim oPt_3 As Point2d Set oPt_3 = oApp.TransientGeometry.CreatePoint2d(0, 5) Dim oDim_3 As DimensionConstraint Set oDim_3 = oSketch.DimensionConstraints.AddOffset(oSketch.SketchLines(2), oSketch.SketchLines(4), oPt_3, False) oDim_3.Parameter.value = 7 ' 4. Mass = Mass3 / 2 Dim oPt_4 As Point2d Set oPt_4 = oApp.TransientGeometry.CreatePoint2d(1, 4) Dim oDim_4 As DimensionConstraint Set oDim_4 = oSketch.DimensionConstraints.AddOffset(oSketch.SketchLines(2), oSketch.SketchPoints(1), oPt_4, False) oDim_4.Parameter.Expression = oDim_3.Parameter.Name & " / 2" oDoc.UpdateEnd Sub
HTH ------------------ Grüsse, Paul Inventor-Programmierung, Inventor-Tools und Inventor API-Schulung Online 3D-Ersatzteilkataloge Meine Tochter auf Youtube 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: 03. Okt. 2011 17:28 <-- editieren / zitieren --> Unities abgeben: Nur für noctis79
Hi Inventor macht das glaub ich anders. Es wird ein Sketchpoint mit einem MidPointConstraint auf der selektierten Linie erstellt. Dieser SketchPoint wird dann horizontal zum projezierten Ursprung gesetzt. Code: Public Sub HorziAlign() Dim oPartDoc As PartDocument Set oPartDoc = ThisApplication.ActiveDocument Dim oCompDef As PartComponentDefinition Set oCompDef = oPartDoc.ComponentDefinition Dim oSketch As PlanarSketch Set oSketch = oCompDef.Sketches.Item(1) Dim oSelection As SketchLine Set oSelection = oPartDoc.SelectSet.Item(1) Dim oPoint1 As SketchPoint Dim oPoint2 As SketchPoint Set oPoint1 = oSketch.AddByProjectingEntity(oCompDef.WorkPoints.Item(1)) Set oPoint2 = oSketch.SketchPoints.Add(oSelection.Geometry.MidPoint, False) Call oSketch.GeometricConstraints.AddMidpoint(oPoint2, oSelection) Call oSketch.GeometricConstraints.AddHorizontalAlign(oPoint1, oPoint2) End Sub
------------------ MfG RK Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
noctis79 Mitglied Konstrukteur/ CAD-Administrator
Beiträge: 164 Registriert: 07.10.2009 Inventor Pro 2017 Cideon Workspace
|
erstellt am: 08. Okt. 2011 20:51 <-- editieren / zitieren --> Unities abgeben:
|