Message 1 of 5
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hi all, hopefully I'm not asking something that has been answered dozens of time before 🙏🙏🙏
I'm trying to create an iLogic rule for drawings.
Where annotations are automatically added in an organized manner, and where holes exist, the annotation is added to the dimension.
Public Sub Main() Dim oDrawDoc As DrawingDocument oDrawDoc = ThisApplication.ActiveDocument Dim oActiveSheet As Sheet oActiveSheet = oDrawDoc.ActiveSheet Dim oDrawingCurveSegment As DrawingCurveSegment oDrawingCurveSegment = ThisApplication.CommandManager.Pick(kDrawingCurveSegmentFilter, "Seleccionar la línea del origen") Dim oDrawingCurve As DrawingCurve oDrawingCurve = oDrawingCurveSegment.Parent If Not oDrawingCurve.CurveType = kLineSegmentCurve Then MsgBox("Esta no es una línea Ingeniero") Exit Sub End If Dim oDimIntent As GeometryIntent oDimIntent = oActiveSheet.CreateGeometryIntent(oDrawingCurve, kEndPointIntent) Dim oDrawingView As DrawingView oDrawingView = oDrawingCurve.Parent If Not oDrawingView.HasOriginIndicator Then oDrawingView.CreateOriginIndicator(oDimIntent) End If Dim oOrdinateDimensions As OrdinateDimensions oOrdinateDimensions = oActiveSheet.DrawingDimensions.OrdinateDimensions Dim oTextOrigin As Point2d Dim DimType As DimensionTypeEnum DimType = kHorizontalDimensionType Dim TG As TransientGeometry TG = ThisApplication.TransientGeometry oTextOrigin = TG.CreatePoint2d(oDrawingView.Left + 2, oDrawingCurve.StartPoint.Y) Call oOrdinateDimensions.Add(oDimIntent, oTextOrigin, DimType) Dim oIntent As GeometryIntent Dim textPt As Point2d For Each oDrawingCurve In oDrawingView.DrawingCurves Select Case oDrawingCurve.CurveType Case kCircleCurve oIntent = oActiveSheet.CreateGeometryIntent(oDrawingCurve, kCenterPointIntent) textPt = TG.CreatePoint2d(oDrawingView.Left + 2, oDrawingCurve.CenterPoint.Y) Case kLineSegmentCurve oIntent = oActiveSheet.CreateGeometryIntent(oDrawingCurve, kStartPointIntent) textPt = TG.CreatePoint2d(oDrawingView.Left + 2, oDrawingCurve.StartPoint.Y) Case kCircularArcCurve oIntent = oActiveSheet.CreateGeometryIntent(oDrawingCurve, kEndPointIntent) textPt = TG.CreatePoint2d(oDrawingView.Left + 2, oDrawingCurve.EndPoint.Y) Case Else oIntent = Nothing End Select If Not oIntent Is Nothing Then Call oOrdinateDimensions.Add(oIntent, textPt, DimType) End If Next oDrawingCurveSegment = ThisApplication.CommandManager.Pick(kDrawingCurveSegmentFilter, "Select end line to complete ordinate dimension") oDrawingCurve = oDrawingCurveSegment.Parent If Not oDrawingCurve.CurveType = kLineSegmentCurve Then MsgBox("A linear curve should be selected for this sample.") Exit Sub End If oDimIntent = oActiveSheet.CreateGeometryIntent(oDrawingCurve, kEndPointIntent) oTextOrigin = TG.CreatePoint2d(oDrawingView.Left + 2, oDrawingCurve.StartPoint.Y) Call oOrdinateDimensions.Add(oDimIntent, oTextOrigin, DimType) End Sub
This is the code I currently have and the following photo is of the results it generates for me.
best regards, thanks
Solved! Go to Solution.