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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值