故城 发表于 2012-8-16 11:33:53

关于尺寸标注样式的问题!如何获得两种不同的标注样式???求救!求救!

本帖最后由 故城 于 2012-8-20 09:07 编辑

图一:理想标注效果

图二:实际标注效果


本来需要角度尺寸标注的时候,需要尺寸水平显示。直线距离标注的时候,需要尺寸与尺寸线平行。现在实际的效果是任何标注,其尺寸都和尺寸线平行。

C#获取标注样式的代码
            public static ObjectId curDimstyle;
            Database db = HostApplicationServices.WorkingDatabase;
            curDimstyle = db.Dimstyle;

C# 标注方法
角度标注
ModelSpace.AddDimLineAngular(new Point3d(155.2378, 159.6099, 0), new Point3d(170.1709, 155.1832, 0), new Point3d(166.3833, 161, 0), new Point3d(176.8755, 161, 0), new Point3d(170, 159, 0), "2%%D%%P1%%D" , curDimstyle);
直线距离标注
ModelSpace.AddDimRotated(0, new Point3d(40, 150.5, 0), new Point3d(90.0096, 151.7562, 0), new Point3d(65, 139, 0), "0.1~0.25", curDimstyle);


我在CAD模版中已经设置好的标注样式,手动标注都没有问题,可以实现图一的效果。可是用上面代码进行标注的时候,却出现图二的效果。不知问题出在哪了?或者有没有方法用C#获得两个标注样式,角度标注用curDimstyle1,直线距离标注用curDimstyle2.
求各位大师指导啊!!!


故城 发表于 2012-8-21 08:46:56

为什么还没人解答呢?我是新手,求大家指点!

liuxu042 发表于 2012-8-21 15:07:56

故城 发表于 2012-8-21 08:46 static/image/common/back.gif
为什么还没人解答呢?我是新手,求大家指点!

使用的还是com方式呀,为什么不用net api

故城 发表于 2012-8-24 09:26:05

liuxu042 发表于 2012-8-21 15:07 static/image/common/back.gif
使用的还是com方式呀,为什么不用net api

大哥,您说得范围有点广,能否解决我这当前的问题啊!?

mkhsj928 发表于 2012-8-27 12:10:57

不知道标注样式的类名称?用下面这段代码

      public void EntName()
      {
            while (true)
            {
                PromptEntityOptions m_peo = new PromptEntityOptions("\n请选择一个实体");
                PromptEntityResult m_per = m_ed.GetEntity(m_peo);
                if (m_per.Status != PromptStatus.OK) return;

                Entity m_ent = (Entity)mFun.m_OpenEntity(m_per.ObjectId);
                m_ed.WriteMessage(" -->实体类名:{0}|DXF名:{1}", m_ent.GetType().Name, ((RXClass)m_ent.GetRXClass()).DxfName);
            }
      }

故城 发表于 2012-8-30 09:34:59

自己解决了,是属性 Dimtoh = true
下载的“AutoCAD .net开发人员手册中文版 ”有介绍到这个属性,里面的中文翻译让我产生了误解,所以一直没有尝试改这个属性,在CAD自带的帮助文档里面有属性的详细介绍
页: [1]
查看完整版本: 关于尺寸标注样式的问题!如何获得两种不同的标注样式???求救!求救!