说明设置系统变量函数获取系统变量函数系统变量详细说明动态输入线宽显示
说明

这里介绍一些常用系统变量有String、double、long、McGePoint3d等类型,其中有部分系统变量是随图纸保存,再次打开时就会读取图纸中的系统变量,有些系统变量不随图纸保存,其作用来控制当前各种状态。

设置系统变量函数

setSysVar function


作用:设置系统变量.支持int,double,LPCTSTR,McGePoint3d,McGePoint2d类型变量。


接口static Mcad::ErrorStatus setSysVar(LPCTSTR varNamelong val,McDbDatabase pDatabase = NULL);


参数


名称说明
varName

变量名


返回值:成功返回Mcad::eOk;


参考例程


long lWdith = McDb::kLnWt015;
MrxDbgUtils::setSysVar(_T("CELWEIGHT"),lWdith);


    该函数有种参数类型重载,可以支持int,double,LPCTSTR,McGePoint3d,McGePoint2d类型变量。

    COM接口:

                        _DMxDrawX::SetSysVarDouble

                        _DMxDrawX::SetSysVarLong 

                        _DMxDrawX::SetSysVarString        


SetSysVarLong function


作用:设置long类型的系统变量。


参考例程


例如: 设置当前绘图颜色为白色,16777215 = 0xFFFFFF,它是RGB三个颜色的组合。


 axMxDrawX1.SetSysVarLong("CECOLOR", 16777215);


例如: 设置点样式。


            // 设置点样式,为67.,具体的值,可以看autocad帮助
            axMxDrawX1.SetSysVarLong("PDMODE", 67);            
            // 设置点大小,0.0表示它随屏幕
            axMxDrawX1.SetSysVarDouble("PDSIZE", 0.0);            
            // 重新生成,所有实体。,
            axMxDrawX1.Regen();
获取系统变量函数

getSysVar function


作用:得到系统变量.支持int,double,LPCTSTR,McGePoint3d,McGePoint2d类型变量。


接口static Mcad::ErrorStatus getSysVar(LPCTSTR varNamelong valMcDbDatabase pDatabase = NULL);


参数


名称说明
varName

变量名


返回值:成功返回Mcad::eOk;


参考例程


long lShow = 0;
MrxDbgUtils::getSysVar(_T("LWDISPLAY"),lShow);
m_isShow = (lShow != 0);


    COM接口:

                        _DMxDrawX::GetSysVarDouble

                        _DMxDrawX::GetSysVarLong 

                        _DMxDrawX::GetSysVarString        

系统变量详细说明

栅格设置


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


正交设置


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

系统变量名:DYNINPUT


禁用动态输入(C++代码):


MrxDbgUtils::setSysVar(_T("DYNINPUT"),0);


禁用动态输入(C#代码):


axMxDrawX1.SetSysVarLong("DYNINPUT", 0);
线宽显示

系统变量名:LWDISPLAY


显示线重(C#代码):


调用自定义函数Mx_ShowWeight实现(C#代码):


mxOcx.Cal("Mx_ShowWeight");


不显示线重(C#代码):


 axDrawX.CallLongParam1("Mx_ShowWeight", 0);
梦想CAD是专业的CAD插件(控件),可轻松在网页、手机及BS/CS程序中浏览编辑DWG文件,不需安装AutoCAD即可运行。经十余年累积已非常稳定可靠,有关键的空间搜索算法,并使用汇编优化,可同时处理50万级实体,有非常高的图形显示和处理效率。
技术服务
TEL:400-888-5703
185-8173-1060
客服I QQ: 3570505660
技术I QQ: 827867134
技术II QQ:6884123
产品购买
TEL:156-8136-8971
QQ:710714273
用户交流
控件QQ交流群1:73281982
控件QQ交流群2:112199959
MxCAD软件群 1:515771658
技术I:QQ
827867134
客服I:QQ
3570505660
销售QQ
710714273
联系电话400-888-5703