SDK中只有一个标注的案例,是平面标注的,看到大家问问题关于横断面标注的也挺多,要是有个example就好了
建议获取横断面信息后用MS得方式进行标注。
下面是一个点标注例子:
public void LinearAndAngularDimension(DgnModel oModel, DPoint3d pt1, DPoint3d pt2) { DgnFile oFile = Session.Instance.GetActiveDgnFile(); double uorPerMast = oModel.GetModelInfo().UorPerMaster; DimensionStyle dimStyle = new DimensionStyle("DimStyle", oFile); dimStyle.SetBooleanProp(true, DimStyleProp.Placement_UseStyleAnnotationScale_BOOLINT); dimStyle.SetDoubleProp(1, DimStyleProp.Placement_AnnotationScale_DOUBLE); dimStyle.SetBooleanProp(true, DimStyleProp.Text_OverrideHeight_BOOLINT); dimStyle.SetDistanceProp(0.5 * uorPerMast, DimStyleProp.Text_Height_DISTANCE, oModel); dimStyle.SetBooleanProp(true, DimStyleProp.Text_OverrideWidth_BOOLINT); dimStyle.SetDistanceProp(0.4 * uorPerMast, DimStyleProp.Text_Width_DISTANCE, oModel); dimStyle.SetBooleanProp(true, DimStyleProp.General_UseMinLeader_BOOLINT); dimStyle.SetDoubleProp(0.01, DimStyleProp.Terminator_MinLeader_DOUBLE); dimStyle.SetBooleanProp(true, DimStyleProp.Value_AngleMeasure_BOOLINT); dimStyle.SetAccuracyProp((byte)AnglePrecision.Use1Place, DimStyleProp.Value_AnglePrecision_INTEGER); DgnTextStyle textStyle = new DgnTextStyle("TestStyle", oFile); LevelId lvlId = Settings.GetLevelIdFromName("Default"); CreateDimensionCallbacks callbacks = new CreateDimensionCallbacks(dimStyle, textStyle, new Symbology(), lvlId, null); DimensionElement oDim = new DimensionElement(oModel, callbacks, DimensionType.SizeArrow); if (oDim.IsValid) { oDim.InsertPoint(pt1, null, dimStyle, -1); oDim.InsertPoint(pt2, null, dimStyle, -1); oDim.SetHeight(uorPerMast); oDim.AddToModel(); } }
如上图,这个是我想要的最终横断面结果,目前是通过Annotation Groups标注进行设置,但是设置比较繁琐,想通过二次开发能实现类似以上的标注,使得可以简化操作流程,希望老师能给一些开发的思路,谢谢
目前的标注信息,建议还是通过MS那套进行开发。
好的 ,谢谢老师