当前位置:知识库 / C#开发 / 详情
如何绘一个文字自动剧中的标注 ?
如何绘一个文字自动剧中的标注 ?
C#开发|黄洪辉|2018-06-11 11:38
回答:

主要用到函数说明:


_DMxDrawX::DrawDimRotated


绘制一个线型标注。详细说明如下:


参数说明

DOUBLE dExtLine1PointX

输入第一条界线的起始点X值

DOUBLE dExtLine1PointY

输入第一条界线的起始点Y值

DOUBLE dExtLine2PointX

输入第二条界线的起始点X值

DOUBLE dExtLine2PointY

输入第二条界线的起始点Y值

DOUBLE dDimLineLocationX

输入标注线自身上的点X值

DOUBLE dDimLineLocationY

输入标注线自身上的点Y值

DOUBLE dRotationAngle

输入标注的旋转角


实现代码说明:


            MxDrawDatabase MxDrawDatabase1 = (MxDrawDatabase)axMxDrawX1.GetDatabase();
            MxDrawDatabase1.LinetypeScale = 15;

            MxDrawDimStyleTableRecord curDimRecord = MxDrawDatabase1.GetDimStyleTable().GetAt(MxDrawDatabase1.CurrentlyDimstyleName, false);
            MxDrawTextStyleTableRecord curTextRecord = MxDrawDatabase1.GetTextStyleTable().GetAt(MxDrawDatabase1.CurrentlyTextStyle, false);
            curDimRecord.SetDimVarDouble(40, 1000);//设置缩放比例Dimscale
            curDimRecord.SetDimVarInt(271, 0);//设置两位小数DimDle
            curDimRecord.SetDimVarInt(173, 1);  //设置需要显示符号            curDimRecord.SetDimVarInt(289, 3);
            curDimRecord.SetDimVarInt(174, 1);
            curDimRecord.SetDimVarString(342, "_ARCHTICK");    //设置建筑标记
            curTextRecord.bigFontFileName = "gbcbig.shx";
            curTextRecord.fileName = "tssdeng.shx";
            curTextRecord.Name = "默认样式";

            Int64 dimID = axMxDrawX1.DrawDimRotated(100, 100, 100, 200, 200, 150, 0);
            MxDrawDimension Dim = (MxDrawDimension)axMxDrawX1.ObjectIdToObject(dimID);
            Dim.DimensionText = "100";
            Dim.SetDimVarInt(173, 1);  //设置需要显示符号            Dim.SetDimVarInt(289, 0);

            Dim.SetDimVarInt(174, 1);
            Dim.SetDimVarString(342, "_ARCHTICK");    //设置建筑标记

            MxDrawPoint textPos = new MxDrawPoint();
            textPos.x = 200;
            textPos.y = 150;
            Dim.TextPosition = textPos;
            Dim.UsingDefaultTextPosition = false;
            Dim.RecomputeDimBlock(true);
            axMxDrawX1.UpdateDisplay();
            axMxDrawX1.ZoomAll();
相关问题
在c#中如何创建组?
如何绘制多行文字?
如何动态绘制样条线?
怎么动态绘制多段线?
如何动态绘制带面积周长的圆?
如何动态绘制带面积周长的矩形框?
如何绘制矩形框?
怎么绘制一个标记?
如何实现嵌套打印?
怎么设置点样式?
梦想CAD是专业的CAD插件(控件),可轻松在网页、手机及BS/CS程序中浏览编辑DWG文件,不需安装AutoCAD即可运行。经十余年累积已非常稳定可靠,有关键的空间搜索算法,并使用汇编优化,可同时处理50万级实体,有非常高的图形显示和处理效率。
联系我们
TEL:400-888-5703
185-8173-1060
客服I QQ: 3570505660
技术I QQ: 827867134
技术II QQ:6884123
VIP服务购买
销售TEL:156-8136-8971
销售QQ:710714273
用户交流
控件QQ交流群1:73281982
控件QQ交流群2:112199959
MxCAD软件群 1:515771658
技术I:QQ
827867134
客服I:QQ
3570505660
销售QQ
710714273
联系电话400-888-5703