Announcements
Attention for Customers without Multi-Factor Authentication or Single Sign-On - OTP Verification rolls out April 2025. Read all about it here.
Sergio.D.Suárez
in reply to: lzs013

Hi, this is an Ilogic code, maybe it could help you for what you're trying to achieve, press escape to get out of the loop.

 

Dim sFont As String =  "ISOCPEUR"  ' "ISOCP_IV25"
Dim sFSize1 As Double = 0.3 'font size in cm 

Dim oDoc As DrawingDocument = ThisDoc.Document
Dim oActiveSheet As Sheet = oDoc.ActiveSheet

Try
		Line1 :
	' Set a reference to the drawing curve segment.
	' This assumes that a drawing curve is selected.
	Dim oDrawingCurveSegment As DrawingCurveSegment 
	oDrawingCurveSegment = ThisApplication.CommandManager.Pick(SelectionFilterEnum.kDrawingDefaultFilter, "Select PartComponent")

	If oDrawingCurveSegment Is Nothing Then
		Exit Sub
	Else

	    ' Set a reference to the drawing curve.
	    Dim oDrawingCurve As DrawingCurve
	    oDrawingCurve = oDrawingCurveSegment.Parent

	    ' Get the mid point of the selected curve
	    ' assuming that the selected curve is linear
	    Dim oMidPoint As Point2d
	    oMidPoint = oDrawingCurve.MidPoint

	    ' Set a reference to the TransientGeometry object.
	    Dim oTG As TransientGeometry
	    oTG = ThisApplication.TransientGeometry

	    Dim oLeaderPoints As ObjectCollection
	    oLeaderPoints = ThisApplication.TransientObjects.CreateObjectCollection

	    ' Create a few leader points.
	    Call oLeaderPoints.Add(oTG.CreatePoint2d(oMidPoint.X + 0.5, oMidPoint.Y - 0.5))
	    'Call oLeaderPoints.Add(oTG.CreatePoint2d(oMidPoint.X + 10, oMidPoint.Y + 5))

	    ' Create an intent and add to the leader points collection.
	    ' This is the geometry that the leader text will attach to.
	    Dim oGeometryIntent As GeometryIntent
	    oGeometryIntent = oActiveSheet.CreateGeometryIntent(oDrawingCurve)

	    Call oLeaderPoints.Add(oGeometryIntent)
		
		'oDescription ="<StyleOverride Font='" & sFont & "' FontSize='" & sFSize1 & "' Bold='True'><Property Document='model' PropertySet='Design Tracking Properties' Property='Description' FormatID='{32853F0F-3444-11D1-9E93-0060B03C1CA6}' PropertyID='29'>DESCRIPTION</Property></StyleOverride>"
		oPartNumber = "<StyleOverride Font='" & sFont & "' FontSize='" & sFSize1 & "' Bold='True'><Property Document='model' PropertySet='Design Tracking Properties' Property='PartNumber' FormatID='{32853F0F-3444-11D1-9E93-0060B03C1CA6}' PropertyID='5'>PART NUMBER</Property></StyleOverride>"
		
	    ' Create text with simple string as input. Since this doesn't use
	    ' any text overrides, it will default to the active text style.
	    Dim sText As String = oPartNumber '<Br/> "Other text"

		Dim oLeaderNote As LeaderNote
	    oLeaderNote = oActiveSheet.DrawingNotes.LeaderNotes.Add(oLeaderPoints, sText)
	    oLeaderNote.VerticalJustification = 25601

	    ' Insert a node.
	    Dim oFirstNode As LeaderNode
	    oFirstNode = oLeaderNote.Leader.RootNode.ChildNodes.Item(1)

	    'Dim oSecondNode As LeaderNode
	    'oSecondNode = oFirstNode.ChildNodes.Item(1)

	End If
	GoTo Line1
Catch
End Try

 I hope it can be useful. regards


Please accept as solution and give likes if applicable.

I am attaching my Upwork profile for specific queries.

Sergio Daniel Suarez
Mechanical Designer

| Upwork Profile | LinkedIn