Origin constraint sketch

Origin constraint sketch

Anonymous
Not applicable
433 Views
1 Reply
Message 1 of 2

Origin constraint sketch

Anonymous
Not applicable

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

0 Likes
Accepted solutions (1)
434 Views
1 Reply
Reply (1)
Message 2 of 2

TomaszDąbrowski
Enthusiast
Enthusiast
Accepted solution

My opinion is that you missed one point and index don't match.

In lase section change:

oSkPnts(5) to oSkPnts(6)

oSkPnts(6) to oSkPnts(7)

AddVerticalAlignConstraint(oSkPnts(5), oOriginSketchPoint) to AddVerticalAlign(oSkPnts(6), oOriginSketchPoint)

 

Call oSkPnts.Add(oLine(1).Geometry.MidPoint, False)
        Call sketch1.GeometricConstraints.AddMidpoint(oSkPnts(6), oLines(1))
        
        Call oSkPnts.Add(oLine(2).Geometry.MidPoint, False)
        Call sketch1.GeometricConstraints.AddMidpoint(oSkPnts(7), oLines(2))
        
        Call sketch1.GeometricConstraints.AddVerticalAlign(oSkPnts(6), oOriginSketchPoint)

 

0 Likes