DWG数据库中,标注样式存放在标注样式表中,表类名:MxDrawDimStyleTable,它的详细接口说明参考:http://www.mxdraw.com/help/IMxDrawDimStyleTable.htm
标注样式表中每一条记录称为一种标注样式,类名:MxDrawDimStyleTableRecord,它的详细接口说明参考:http://www.mxdraw.com/help/IMxDrawDimStyleTableRecord.htm
标注样式是随图纸保存,不同的图纸使用的标注样式都可能会不一样。
标注样式设置命令:Mx_Dimstyle, 比如:
mxOcx.SendStringToExecute("Mx_Dimstyle")
调用样式界面,如下图:
标注样式主要属性有:double,int string三个类型标注的变量设置,通过设置三类的变量的值,就能设置标注样式的各种控制值。
比如:GetDimVarDouble,SetDimVarDouble ,设置Double类型属性,可以设置的值有如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | (m_标注变量名,DXF组码) m_dimaltf,143 m_dimasz , 41 m_dimcen ,141 m_dimdle , 46 m_dimdli , 43; m_dimexe , 44; m_dimexo , 42; m_dimgap ,147; m_dimlfac,144; m_dimrnd , 45; m_dimscale, 40; m_dimtfac,146; m_dimtm , 48; m_dimtp , 47; m_dimtsz ,142; m_dimtvp ,145; m_dimtxt ,140; m_dimaltrnd,148; |
因为我们的标注设置和AutoCAD保持一至,所以如果不清楚,标注变量名具体代表什么属性,可以复制标注变量,然后在百度搜索AutocAD 标注变量名,就能看见。
比如,我们搜索 dimaltf,是什么属性,如下图:
比如,我们要修改标注样式中的文字高度,文件高度控制变量是dimtxt,对应的DXF组码是140,所以如下调用,设置文件高度是100, 140是DXF组码。
1 | dimstyle.SetDimVarDouble(140, 100); |
GetDimVarInt,SettDimVarInt ,设置Int类型属性,可以设置的值有如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | m_dimadec,179 m_dimalt ,170 m_dimaltd ,171 m_dimalttd,274 m_dimalttz,286 m_dimaltu ,273 m_dimaltz ,285 m_dimaunit,275 m_dimclrd ,176 m_dimclre ,177 m_dimclrt ,178 m_dimdec ,271 m_dimfit ,287 m_dimjust ,280 m_dimlim , 72 m_dimsah ,173 m_dimsd1 ,281 m_dimsd2 ,282 m_dimse1 , 75 m_dimse2 , 76 m_dimsoxd ,175 m_dimtad , 77 m_dimtdec ,272 m_dimtih , 73 m_dimtix ,174 m_dimtofl ,172 m_dimtoh , 74 m_dimtol , 71 m_dimtolj ,283 m_dimzin , 78 m_dimunit ,270 m_dimupt ,288 m_dimtzin ,284 m_dimfrac ,276 m_dimlunit,277 m_dimatfit,289 m_dimtmove,279 m_dimazin, 79 |
比如,设置标注中的文字显示小数位,设置不显示小数位,调用如下:
1 | curDimRecord.SetDimVarInt(271, 0); |
GetDimVarString,SetDimVarString 设置String类型属性,可以设置的值有如下:
1 2 3 4 5 6 7 8 9 10 | m_dimapost,4 m_dimpost,3 m_dimblk, 342 m_dimblk1, 343 m_dimblk2, 344 m_dimldrblk,341 m_dimtxsty,340 m_dimltype,345 m_dimltex1,346 m_dimltex2,347 |
如下,设置标注两端使用建筑标注效果
1 | curDimRecord.SetDimVarString(342, "_ARCHTICK" ); |
如下图风格: