明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 528|回复: 0

CAD控件网页版标注样式

[复制链接]
发表于 2019-5-24 09:25 | 显示全部楼层 |阅读模式
增加标注样式
_DMxDrawX::AddDimStyle

增加一个新的标注样式,如果当前已经有指定名的标注样式,就直接失败返回。详细说明如下:
参数 说明
BSTR pszName 新增加的标注样式名
BSTR pszDoubleData 标注样式的实数类型属性值,格式为: "变量类型值,实数值,变量类型值,实数值... ..." 可取设置如下变量的值:第一列变量名,第二列是变量的类型值 dimaltf,143 dimasz , 41 dimcen ,141 dimdle , 46 dimdli , 43 dimexe , 44 dimexo , 42 dimgap ,147 dimlfac,144 dimrnd , 45 dimscale, 40 dimtfac,146 dimtm , 48 dimtp , 47 dimtsz ,142 dimtvp ,145 dimtxt ,140 dimaltrnd,148
BSTR pszIntData 标注样式的整数类型属性值,格式为: "变量类型值,整数值,变量类型值,整数值... ..." 可取设置如下变量的值:第一列变量数据类型,第二列变量名,第三列是变量的类型值 Int dimadec,179 Bool dimalt ,170 Int dimaltd ,171 Int dimalttd,274 Int dimalttz,286 Int dimaltu ,273 Int dimaltz ,285 Int dimaunit,275 Color dimclrd ,176 Color dimclre ,177 Color dimclrt ,178 Int dimdec ,271 Int dimfit ,287 Int dimjust ,280 Bool dimlim , 72 Bool dimsah ,173 Bool dimsd1 ,281 Bool dimsd2 ,282 Bool dimse1 , 75 Bool dimse2 , 76 Bool dimsoxd ,175 Int dimtad , 77 Int dimtdec ,272 Bool dimtih , 73 Bool dimtix ,174 Bool dimtofl ,172 Bool dimtoh , 74 Bool dimtol , 71 Int dimtolj ,283 Int dimzin , 78 Int dimunit ,270 Bool dimupt ,288 Int dimtzin ,284 Int dimfrac ,276 Int dimlunit,277 Int dimatfit,289 Int dimtmove,279 Int dimazin, 79
BSTR pszStringData 标注样式的字符串类型属性值,格式为: "变量类型值,字符串值,变量类型值,字符串值... ..." 可取设置如下变量的值:第一列变量名,第二列是变量的类型值 dimapost,4 dimpost,3
BSTR pszIdData 标注样式的对象id类型属性值,格式为: "变量类型值,对象id值,变量类型值,对象id值... ..." 可取设置如下变量的值:第一列变量名,第二列是变量的类型值 dimblk, 342 dimblk1, 343 dimblk2, 344 dimldrblk,341 dimtxsty,340
js代码增加一个标注样式:
  1.    var idTextStyleId = mxOcx.AddTextStyle1("MyTextStyle", "italicc.shx", "gbcbig.shx", 0.7);
  2.                    // 文字高度140,2.5
  3.                 // 标注精度: 271,4
  4. var idDimStyleId = mxOcx.AddDimStyle("MyTest", "41,0.25,141,0.09,40,203,140,2.5", "271,4",
  5.                   "", string.Format("340,{0}", idTextStyleId) );
  6.    var dimRec = mxOcx.ObjectIdToObject(idDimStyleId);           
  7.     // 设置小数点分隔符.
  8.     dimRec.SetDimVarInt(278, '.');              
  9.     // 测量比例因子: 144,2
  10.     dimRec.SetDimVarDouble(144, 2);
用户可以增加标注样式到数据库,具体实现js代码如下:

  1.   function CreateDim(){
  2.     //返回控件的数据库对象
  3.     var database =mxOcx.GetDatabase();
  4.     //返回数据库中的标注样式表对象
  5.     var mxdim = database.GetDimStyleTable();
  6.     //增加新的标注样式
  7.     var dimstr = mxdim.Add("mydim");
  8.     //设置样式
  9.     dimstr.SetDimVarDouble(40, 20.0);
  10.     //返回数据库中的标注样式表对象
  11.     database.CurrentlyDimstyleName = "mydim";

  12. }
得到标注样式名
用户可以得到所有标注样式名,具体实现js代码如下:

  1.   function GetAllDim() {
  2.     var database = mxOcx.GetDatabase();
  3.     // 得到所有图层名
  4.     var sRet = null;
  5.     //返回数据库中的文字样式表对象
  6.     var spDimStyleTable = database.GetDimStyleTable();
  7.     //创建一个遍历层表中所有图层的遍历器
  8.     var spIter = spDimStyleTable.NewIterator();
  9.     //移动当前遍历器位置
  10.     for(;!spIter.Done();spIter.Step(true,true))
  11.     {
  12.         //返回遍历器当前位置的记录
  13.         var spDimStyleTableRec = spIter.GetRecord();
  14.         //符号表记录名属性
  15.         var sName = spDimStyleTableRec.Name;
  16.         // 0零层不参加比较
  17.         if(sName != "0")
  18.         {
  19.             if(sRet == null)
  20.                 sRet = sName;
  21.             else
  22.             {
  23.                 sRet = sRet +","+sName;
  24.             }
  25.         }
  26.     }
  27.     alert(sRet);
  28. }
删除标注样式
用户可以得到删除某个标注样式,具体实现js代码如下:
  1. function DelDim() {
  2.     var winWidth = 440;
  3.     var winHeight = 140;
  4.     var winLeft = (screen.width - winWidth) / 2;
  5.     var winTop = (screen.height - winHeight) / 2 - 20;
  6.     var str = 'dialogHeight:' + winHeight + 'px;dialogWidth:' + winWidth + 'px;dialogTop:' + winTop + 'px;dialogLeft:' + winLeft + 'px;resizable:yes;center:yes;status:no;'
  7.     var rt = window.showModalDialog("Gettext.htm?tmp=" + Math.random(), "输入图层名", str);
  8.     var txt;
  9.     if (typeof (rt) == "undefined") {
  10.         return;
  11.     } else {
  12.         var arr = rt.split(",");
  13.         txt = arr[0];
  14.     }
  15.     var database = mxOcx.GetDatabase();
  16.     //返回数据库中的样式表对象
  17.     var DimStyleTable = database.GetDimStyleTable();
  18.     //得到样式表表中的样式对象
  19.     var DimStyleRec = DimStyleTable.GetAt(txt, false);
  20.     if (DimStyleRec == null)
  21.         return;
  22.     //删除对象
  23.     DimStyleRec.Erase();
  24.     alert("成功删除标注样式");
  25. }


您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-20 17:39 , Processed in 0.211519 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表