Hi @FilipeMais ,
with iLogic you can create such pattern:
Dim oLine As SketchLine = ThisApplication.CommandManager.Pick(SelectionFilterEnum.kSketchCurveLinearFilter, "Horizontale Skizzenlinie wählen:")
If oLine Is Nothing Then Exit Sub
Dim oSk As Sketch = oLine.Parent
Dim oTG As TransientGeometry = ThisApplication.TransientGeometry
If oLine.StartSketchPoint.Geometry.Y - oLine.EndSketchPoint.Geometry.Y > 0.001 Then
MsgBox("Nur horizontale Linien möglich.")
Exit Sub
End If
Dim oSPt As Point2d
If oLine.StartSketchPoint.Geometry.X > oLine.EndSketchPoint.Geometry.X Then
oSPt = oLine.StartSketchPoint.Geometry
Else
oSPt = oLine.EndSketchPoint.Geometry
End If
HL = InputBox("Abstand zum Mittelpunkt", "Skala_1", "1500")/10
'Dim AnzL As Integer = InputBox("Anzahl Skalenstriche", "Skala_1", "10")
AbL = InputBox("Abstand Skalenstriche", "Skala_1", "100") / 10
ReL = InputBox("Rechteck Länge", "Skala_1", "40") / 10
ReB = InputBox("Rechteck Breite", "Skala_1", "10") / 10
Dim Lg As Double = Abs(oLine.StartSketchPoint.Geometry.X - oLine.EndSketchPoint.Geometry.X)
Dim AnzL As Integer = Floor((Lg - AbL / 2)/AbL) + 1
'senkreche Hilfslinie
Dim oCPT As Point2d = oTG.CreatePoint2d(oSPt.X, oSPt.Y + HL)
Dim oSLine As SketchLine = oSk.SketchLines.AddByTwoPoints(oSPt, oCPT)
oSLine.Construction = True
Ab = AbL / 2
Dim oRPt As Point2d
Dim oColl As ObjectCollection
For i = 1 To AnzL
oRPt = oTG.CreatePoint2d(oSPt.X-Ab , oSPt.Y)
Wi = Atan2(HL, Ab)
oSLine = oSk.SketchLines.AddByTwoPoints(oRPt, oCPT)
oSLine.Construction = True
oHPtL = oTG.CreatePoint2d(oRPt.X, oRPt.Y - ReL/2)
oHPtB = oTG.CreatePoint2d(oRPt.X - ReB/2, oRPt.Y)
oReLines = oSk.SketchLines.AddAsThreePointCenteredRectangle(oRPt, oHPtL, oHPtB)
oColl = ThisApplication.TransientObjects.CreateObjectCollection
For Each oSkEnt In oReLines
oColl.Add(oSkEnt)
Next
oSk.RotateSketchObjects(oColl, oRPt, PI/2+Wi, False, True)
Ab = Ab + AbL
Next
oLine.Construction = True