梦想CAD控件系统变量说明
这里介绍一些常用系统变量有String、double、long、McGePoint3d等类型,其中有部分系统变量是随图纸保存,再次打开时就会读取图纸中的系统变量,有些系统变量不随图纸保存,其作用来控制当前各种状态。
setSysVar function
作用:设置系统变量.支持int,double,LPCTSTR,McGePoint3d,McGePoint2d类型变量。
接口:static Mcad::ErrorStatus setSysVar(LPCTSTR varName, long 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();
例如: 修改当前线重。
// 修改当前线重,为0.6mm.
//可以取如下值:
//-1
// -2
// -3
//0
//5
//9
//13
//15
//18
//20
//25
//30
//35
//40
//50
//53
//60
//70
//80
//90
//100
//106
//120
//140
//158
//200
//211 axMxDrawX1.SetSysVarLong("CELWEIGHT", 60); // 设置显示线重.
axMxDrawX1.Cal("Mx_ShowWeight");
getSysVar function
作用:得到系统变量.支持int,double,LPCTSTR,McGePoint3d,McGePoint2d类型变量。
接口:static Mcad::ErrorStatus getSysVar(LPCTSTR varName, long & val, McDbDatabase * pDatabase = NULL);
参数:
| 名称 | 说明 |
|---|---|
| varName |
变量名 |
返回值:成功返回Mcad::eOk;
参考例程:
long lShow = 0;
MrxDbgUtils::getSysVar(_T("LWDISPLAY"),lShow);
m_isShow = (lShow != 0);
COM接口:
_DMxDrawX::GetSysVarDouble
_DMxDrawX::GetSysVarLong
_DMxDrawX::GetSysVarString
主要用到函数说明:
_DMxDrawX::GetSysVarString
得到一个字符串类型的系统变量。
js中使用如下:
var pRet = mxOcx.Call("GetSysVar","ORTHOMODE");
if(pRet != null)
{
var iOrthoMode = pRet.AtLong(1);
alert(iOrthoMode);
}
c#中使用如下:
// C# 取当前图层
String s = "";
axMxDrawX1.GetSysVarString("CLAYER", ref s); MessageBox.Show(s);
栅格设置
系统变量名: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);
系统变量名: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控件系统变量说明的更多相关文章
- 如何在网页中浏览和编辑DWG文件 梦想CAD控件
如何在网页中浏览和编辑DWG文件 梦想CAD控件 www.mxdraw.com 梦想绘图控件5.2 是国内最强,最专业的CAD开发组件(控件),不需要AutoCAD就能独立运行.控件使用VC 201 ...
- 梦想CAD控件图块COM接口知识点
梦想CAD控件图块COM接口知识点 图块是将多个实体组合成一个整体,并给这个整体命名保存,在以后的图形编辑中图块就被视为一个实体.一个图块包括可见的实体如线.圆.圆弧以及可见或不可见的属性数据.图块的 ...
- 梦想CAD控件图层COM接口知识点
梦想CAD控件图层COM接口知识点 一.新建图层 主要用到函数说明: _DMxDrawX::AddLayer 增加新的图层.详细说明如下: 参数 说明 BSTR pszName 图层名 c#中实现代码 ...
- 梦想CAD控件,用于浏览和编辑DWG文件,在脱离AUTOCAD的情况下独立运行,相当于简易CAD
(百度百科连接) 梦想绘图控件5.2 是国内最强,最专业的CAD开发组件(控件),不需要AutoCAD就能独立运行.控件使用VC 2010开发,最早从2007年第一个版本完成,经过多年的累积已经非常 ...
- 梦想CAD控件关于比较问题
全图比较 怎么比较两个CAD图纸文件修改前后的不同部分呢?在工程图纸设计中,我们更多情况下可能需要对同一张工程图的前后修改部分进行对比,以确定工程图纸的改动部分及追溯原因,本教程演示了几种常见的比较方 ...
- 梦想CAD控件文字COM接口知识点
一.参数绘制文字 在CAD设计时,需要绘制文字,用户可以设置设置绘制文字的高度等属性. 主要用到函数说明: _DMxDrawX::DrawText 绘制一个单行文字.详细说明如下: 参数 说明 DOU ...
- 梦想CAD控件网页版搜索图面上的文字
在网页中查找到CAD控件图纸上的文字.点击此处在线演示. 主要用到函数说明: _DMxDrawX::NewSelectionSet 实例化一个构造选择集进行过滤,该类封装了选择集及其处理函数. _DM ...
- 梦想CAD控件COM接口自定义命令
在CAD软件操作中,为方便使用者,使用自定义命令发出命令,完成CAD绘图,修改,保存等操作.点击此处下载演示实例. _DMxDrawX::RegistUserCustomCommand 向CAD控件注 ...
- 梦想CAD控件网页版关于自定义命令
在CAD控件操作中,为方便使用者,使用自定义命令发出命令,完成CAD绘图,修改,保存等操作.点击此处在线演示. _DMxDrawX::RegistUserCustomCommand 向CAD控件注册一 ...
随机推荐
- git/svn里面的merge和rebase区别
现在一般都用界面化的东西了,这种用法相近的命令行知不知道区别都可以.但是有些人喜欢研究,那么我来个传送门: 当我们用命令行操作git的时候,merge和rebase 有什么区别,请参考 https:/ ...
- spring mvc +Mybatis3.1 整合的时候异常
在使用Mybatis3.10+spring3.10+mybatis-spring-1.0.0集成,使用spring 时发生例如以下错误: 严重: Servlet.service() for servl ...
- java中a++和++a在较复杂的运算中分析
关于连加和连减:http://blog.csdn.net/ieayoio/article/details/46431843 以下是一段普遍都了解的代码: public static void main ...
- 嵌入式开发之8127---DM8127如何利用EDMA搬移数据
--------------qq:1327706646 ---------------------author:midu -------------------------------datetime ...
- STM32学习之路-感觉自己走到了一个天大的坑里了!
先前兴致勃勃的来弄16位并口驱动LCD.本以为就须要改下LCD IC的初始化即可了,没想到弄了这么多天最终发现自己走进了一个深坑了 T T 原因是我的开发板是奋斗V5的, 它确实有MCU外扩IO口, ...
- Codeforces Round #214 (Div. 2) C. Dima and Salad 背包
C. Dima and Salad Dima, Inna and Seryozha have gathered in a room. That's right, someone's got to ...
- convex hull
1 什么是convex hull 就是凸包,是计算几何中的一个概念,计算几何是计算机图形学的基础之一. 对于二维平面来说是这样的:对于二维平面上的点集,凸包是位于最外层的点构成的包围其它所有的点的凸多 ...
- Windows10 Win键失灵的解决方法
之前在Windows10出来的时候在使用过程中发现:按“Win键”调出开始菜单没有用.一点反应都没有.Win+R等这样的组合键也没用. 后来周年更新后,还是无法使用... 各种方法用尽啊.都不行啊! ...
- YTU 2640: 编程题:运算符重载---矩阵求和
2640: 编程题:运算符重载---矩阵求和 时间限制: 1 Sec 内存限制: 128 MB 提交: 484 解决: 190 题目描述 /* 有两个矩阵a和b,均为2行3列.求两个矩阵之和. 重 ...
- ORACLE分区表发挥性能
1.1 分区表PARTITION table 在ORACLE里如果遇到特别大的表,可以使用分区的表来改变其应用程序的性能. 1.1.1 分区表的建立: 某公司的每年产生巨大的销售记录,DBA向公司建议 ...