CAD系统变量详细说明
一、栅格设置
系统变量名:GRIDMODE
1、打开与关闭栅格捕捉:
1 2 3 4 | 打开栅格捕捉: axMxDrawX1.SetSysVarLong( "GRIDMODE" , 1); 关闭栅格捕捉: axMxDrawX1.SetSysVarLong( "GRIDMODE" , 0); |
2、栅格间距系统变量名:SNAPUNIT
3、设置栅格间距为500,500如下:
1 2 3 4 5 6 | MxDrawPoint ptSNAPUNIT = new MxDrawPoint(); ptSNAPUNIT.x = 500; ptSNAPUNIT.y = 500; param.AddString( "SNAPUNIT" ); param.AddPointEx(ptSNAPUNIT,5002); axMxDrawX1.CallEx( "Mx_SetSysVar" , param); |
二、图层和线型设置
1、主要用到函数说明:MxDrawXCustomFunction::Mx_SetSysVar
(1)得到当前空间的所有实体。详细说明如下:
参数
| 说明
|
CString sVarName | 系统变量名 |
Value | 需要设置的值 |
(2)设置图层使用如下:
1 2 3 4 5 | Dim param As MxDrawResbuf Set param = New MxDrawResbuf param.AddString "CLAYER" param.AddString "图层1" , 5005 ' 5005 = RTSTR,代码是一个字符串类型的值 MxDrawX1.CallEx "Mx_SetSysVar" , param |
(3)js创建图层,并设置成当前层代码如下:
1 2 3 4 5 6 7 8 9 10 11 | function CreateCommentLayer() { var mxOcx = document.getElementById( "MxDrawXCtrl" ); mxOcx.AddLayer( "MyComment" ); mxOcx.LayerName = "MyComment" ; var param = mxOcx.NewResbuf(); param.AddString( "CLAYER" ); param.AddStringEx( "MyComment" ,5005); mxOcx.CallEx( "Mx_SetSysVar" , param); } |
(4)设置线型使用如下:
1 2 3 4 5 | Dim param As MxDrawResbuf Set param = New MxDrawResbuf param.AddString "CELTYPE" param.AddString "DOT" , 5005 ' 5005 = RTSTR,代码是一个字符串类型的值 MxDrawX1.CallEx "Mx_SetSysVar" , param |
三、正交设置
系统变量名:ORTHOMODE
1、启用正交:
1 | axMxDrawX1.SetSysVarLong( "ORTHOMODE" , 1); |
2、正交模式打开后,需要参考上一次的输入点,一般控件会自动确定,也可以用户自己指定,指定系统变量名:LASTPOINT。
3、设置上一次用户输入点(C++)语言:
1 2 3 4 5 6 | resbuf rb; rb.restype = RTPOINT; rb.resval.rpoint[X]= prvPoint.x; rb.resval.rpoint[Y]= prvPoint.y; rb.resval.rpoint[Z]= prvPoint.z; Mx::mcedSetVar(_T( "LASTPOINT" ),&rb); |
四、极轴设置
1、调用自定义函数Mx_SetPoloarTracee实现,如下,VC2005代码:
1 | IDispatchPtr spRet1(m_ocx.CallLongParam1(_T( "Mx_SetPoloarTracee" ),1), false ); |
2、另外它是系统变量:AUTOSNAP的第4个二制位控制,打开极轴(C#代码):
1 2 3 4 | int iRet = 0; axMxDrawX1.GetSysVarLong( "AUTOSNAP" , ref iRet); iRet |= 8; axMxDrawX1.SetSysVarLong( "AUTOSNAP" ,iRet); |
五、对象捕捉
系统变量名:OSMODE
1、去掉最近点捕捉标志(C++代码):
1 2 3 4 5 6 7 | MrxDbgRbList spVal = Mx::mcutNewRb(RTSHORT); Mx::mcedGetVar(_T( "OSMODE" ),spVal.data()); // 最近点捕足的值为512,进行位运算,去掉最近点捕捉标志 int iNewMode = spVal.data()->resval.rint & (~512); // 设置新值 spVal.data()->resval.rint = iNewMode; Mx::mcedSetVar(_T( "OSMODE" ),spVal.data() ); |
2、关闭捕捉(C#代码):
1 | axMxDrawX1.SetSysVarLong( "OSMODE" , 0); |
六、对象追踪
系统变量名:DYNTRACE
1、禁用动态追踪(C++代码):
1 | MrxDbgUtils::setSysVar(_T( "DYNTRACE" ),0); |
2、禁用动态追踪(C#代码):
1 | axMxDrawX1.SetSysVarLong( "DYNTRACE" , 0); |
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~