返回介绍

系统变量详细说明

发布于 2023-08-09 23:10:33 字数 4676 浏览 0 评论 0 收藏 0

栅格设置

系统变量名: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);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文