CAD系统变量详细说明
栅格设置
系统变量名:GRIDMODE
打开与关闭栅格捕捉:
打开栅格捕捉:
axMxDrawX1.SetSysVarLong("GRIDMODE", 1);
关闭栅格捕捉:
axMxDrawX1.SetSysVarLong("GRIDMODE", 0);
栅格间距系统变量名:SNAPUNIT
设置栅格间距为500,500如下:
MxDrawPoint ptSNAPUNIT = new MxDrawPoint();
ptSNAPUNIT.x = 500;
ptSNAPUNIT.y = 500;
param.AddString("SNAPUNIT");
param.AddPointEx(ptSNAPUNIT,5002);
axMxDrawX1.CallEx("Mx_SetSysVar", param);
图层和线型设置
主要用到函数说明:
MxDrawXCustomFunction::Mx_SetSysVar
得到当前空间的所有实体。详细说明如下:
| 参数 | 说明 |
|---|---|
|
CString sVarName |
系统变量名 |
|
Value |
需要设置的值 |
设置图层使用如下:
Dim param As MxDrawResbuf
Set param = New MxDrawResbuf
param.AddString "CLAYER"
param.AddString "图层1", 5005 ' 5005 = RTSTR,代码是一个字符串类型的值
MxDrawX1.CallEx "Mx_SetSysVar", param
js创建图层,并设置成当前层代码如下:
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);
}
设置线型使用如下:
Dim param As MxDrawResbuf
Set param = New MxDrawResbuf
param.AddString "CELTYPE"
param.AddString "DOT", 5005 ' 5005 = RTSTR,代码是一个字符串类型的值
MxDrawX1.CallEx "Mx_SetSysVar", param
正交设置
系统变量名:ORTHOMODE
启用正交:
axMxDrawX1.SetSysVarLong("ORTHOMODE", 1);
正交模式打开后,需要参考上一次的输入点,一般控件会自动确定,也可以用户自己指定,指定系统变量名:LASTPOINT。
设置上一次用户输入点(C++)语言:
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);
极轴设置
调用自定义函数Mx_SetPoloarTracee实现,如下,VC2005代码:
IDispatchPtr spRet1(m_ocx.CallLongParam1(_T("Mx_SetPoloarTracee"),1),false);
另外它是系统变量:AUTOSNAP的第4个二制位控制,打开极轴(C#代码):
int iRet = 0;
axMxDrawX1.GetSysVarLong("AUTOSNAP",ref iRet);
iRet |= 8;
axMxDrawX1.SetSysVarLong("AUTOSNAP",iRet);
对象捕捉
系统变量名:OSMODE
去掉最近点捕捉标志(C++代码):
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() );
关闭捕捉(C#代码):
axMxDrawX1.SetSysVarLong("OSMODE", 0);
对象追踪
系统变量名:DYNTRACE
禁用动态追踪(C++代码):
MrxDbgUtils::setSysVar(_T("DYNTRACE"),0);
禁用动态追踪(C#代码):
axMxDrawX1.SetSysVarLong("DYNTRACE", 0);
浙公网安备 33010602011771号