create drawing dimension that does not attach to any geometry

By Xiaodong Liang

Let’s say I have two points in my sheet (10, 20) and (20, 20), and I want to create a DrawingDimension between those points. There is no geometry intent I can provide, so using any of the "GeneralDimensions.Add" method is not possible.

Still, one way to do it can be to create this dimension to a DrawingSketch, regarding converting the point positions from the sheet space to the sketch space, then use the "GeneralDimensions.Retrieve" method to make the Sketch dimension visible into the Sheet.

Here is a sample that illustrates this workflow in C#:

void addDimWithoutGeo()    {        // assume we have had Inventor application             DrawingDocument oDrawingDoc =             (DrawingDocument)mApplication.ActiveDocument;             TransientGeometry oTG =             mApplication.TransientGeometry;             //Create new Drawing Sketch        DrawingSketch oSketch =             oDrawingDoc.ActiveSheet.DrawingViews[1].                                        Sketches.Add();             //Create 2 points in the sheet space        Point2d oSheetPoint1 =             oTG.CreatePoint2d(10, 20);        Point2d oSheetPoint2 =             oTG.CreatePoint2d(20, 20);             //Convert points in sketch space        Point2d oInSketchPoint1 =             oSketch.SheetToSketchSpace(oSheetPoint1);        Point2d oInSketchPoint2 =             oSketch.SheetToSketchSpace(oSheetPoint2);             //Edit sketch        oSketch.Edit();             //Create 2 sketch points        SketchPoint oSketchPoint1 =             oSketch.SketchPoints.Add(oInSketchPoint1, false);        SketchPoint oSketchPoint2 =             oSketch.SketchPoints.Add(oInSketchPoint2, false);             //Set position for the text        Point2d oTextPosition =             oTG.CreatePoint2d(0, 0);             //Create dimension in sketch        oSketch.DimensionConstraints.AddTwoPointDistance(            oSketchPoint1,             oSketchPoint2,            Inventor.DimensionOrientationEnum.kAlignedDim,             oTextPosition,             false);             //Close sketch         oSketch.ExitEdit();             //Retrieve dimensions of the sketch in the sheet        object dummy = null;        oDrawingDoc.ActiveSheet.DrawingDimensions.            GeneralDimensions.Retrieve(oSketch, dummy);    }

Comments

Leave a Reply

Discover more from Autodesk Developer Blog

Subscribe now to keep reading and get access to the full archive.

Continue reading