Message 1 of 2

Not applicable
10-05-2021
12:34 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hello,
i tried to constraint my rectangle on the middle origin of the sketch.
But wen i defined the orgin, my rectangle is automaticaly constraint on the corner.
how can i do it?
Sub test()
'Créer une nouvelle piece SHOP
Dim oApp As Inventor.Application
Set oApp = ThisApplication
oTemplatesPath = oApp.DesignProjectManager.ActiveDesignProject.TemplatesPath
oTemplateFile = "piece SHOP.ipt"
oTemplate = oTemplatesPath & "\" & oTemplateFile
Dim oPartDoc As PartDocument
Set oPartDoc = oApp.Documents.Add(kPartDocumentObject, oTemplate)
'Créer une esquisse
' Create a 2D sketch on the X-Y plane.
Dim sketch1 As PlanarSketch
Set sketch1 = oPartDoc.ComponentDefinition.Sketches.Add(oPartDoc.ComponentDefinition.WorkPlanes.Item(3))
Dim oTG As TransientGeometry
Set oTG = oApp.TransientGeometry
' Declaration des variable avec dimenssions du tiroir
Dim Largeur_interieur_tiroir As Integer
Largeur_interieur_tiroir = 200
Dim Hauteur_interieur_tiroir As Integer
Hauteur_interieur_tiroir = 50
Dim Epaisseur_parois_tiroir As Integer
Epaisseur_parois_tiroir = 18
' Création base du tiroir
'Créer des points au dimensions du tioir
Dim oSkPnts As SketchPoints
Set oSkPnts = sketch1.SketchPoints
Call oSkPnts.Add(oTG.CreatePoint2d(Largeur_interieur_tiroir / 2, Epaisseur_parois_tiroir / 2), False)
Call oSkPnts.Add(oTG.CreatePoint2d((0 - Largeur_interieur_tiroir) / 2, Epaisseur_parois_tiroir / 2), False)
Call oSkPnts.Add(oTG.CreatePoint2d((0 - Largeur_interieur_tiroir) / 2, (0 - Epaisseur_parois_tiroir) / 2), False)
Call oSkPnts.Add(oTG.CreatePoint2d(Largeur_interieur_tiroir / 2, (0 - Epaisseur_parois_tiroir) / 2), False)
'Créeation du centre
Dim oOriginSketchPoint As SketchPoint
Set oOriginSketchPoint = sketch1.AddByProjectingEntity(oPartDoc.ComponentDefinition.WorkPoints.Item(1))
' Relier les points pour dormer un rectancle
Dim oLines As SketchLines
Set oLines = sketch1.SketchLines
Dim oLine(1 To 4) As SketchLine
Set oLine(1) = oLines.AddByTwoPoints(oSkPnts(1), oSkPnts(2))
Set oLine(2) = oLines.AddByTwoPoints(oSkPnts(2), oSkPnts(3))
Set oLine(3) = oLines.AddByTwoPoints(oSkPnts(3), oSkPnts(4))
Set oLine(4) = oLines.AddByTwoPoints(oSkPnts(4), oSkPnts(1))
'Contraindre l'esquisse
'Horizontal
Call sketch1.GeometricConstraints.AddHorizontal(oLines(1))
'Parallele
Call sketch1.GeometricConstraints.AddParallel(oLine(1), oLine(3))
Call sketch1.GeometricConstraints.AddParallel(oLine(2), oLine(4))
'Perpendiculaire
Call sketch1.GeometricConstraints.AddPerpendicular(oLines(1), oLines(2))
oApp.ActiveView.Update
Dim oTextPoint As Point2d
Set oTextPoint = oLine(1).Geometry.MidPoint.Copy
oTextPoint.Y = oTextPoint.Y + 1
Call sketch1.DimensionConstraints.AddTwoPointDistance(oSkPnts(1), oSkPnts(2), kHorizontalDim, oTextPoint)
Call oSkPnts.Add(oLine(1).Geometry.MidPoint, False)
Call sketch1.GeometricConstraints.AddMidpoint(oSkPnts(5), oLines(1))
Call oSkPnts.Add(oLine(2).Geometry.MidPoint, False)
Call sketch1.GeometricConstraints.AddMidpoint(oSkPnts(6), oLines(2))
Call sketch1.GeometricConstraints.AddVerticalAlignConstraint(oSkPnts(5), oOriginSketchPoint)
End Sub
thank
Solved! Go to Solution.