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");

如下图风格:

12-23 18:00