cad

CAD关于图层冻结图层操作(com接口网页版)

梦想的初衷 提交于 2019-12-02 18:18:07
被冻结上的图层实体,不会参显示数据的生成,这样可以加快显示速度,和打开图纸的速度,它与关闭属性相比,冻结后的图层不但看不见,并且在内存中也不参加显示。 // 冻结选择实体的层。 var ent = mxOcx.GetEntity("选择要冻结图层的实体:"); if(ent == null) { return; } if (ent == null) { return; } var sLayerName = ent.Layer; var database = mxOcx.GetDatabase(); var layerTable = database.GetLayerTable(); var layerTableRec = layerTable.GetAt(sLayerName, false); if(layerTable != null) { layerTableRec.IsFrozen = true; alert("成功冻结图层"); } 来源: https://www.cnblogs.com/yzy0224/p/11757271.html

CAD关于图层锁定图层操作(com接口网页版)

空扰寡人 提交于 2019-12-02 18:18:00
锁定后的图层上的实体不能编辑,但可以选择,如果想也不能选择,设置控件InitSet属性值为:SelectLockLayer=N 下面演示,遍历所有图层表记录,并设置图层为锁定状态, 例如代码 JS: function LockeAllLayer() { //返回控件的数据库对象 var database = mxOcx.GetDatabase(); //返回数据库中的层表对象 var layerTable = database.GetLayerTable(); //创建一个遍历层表中所有图层的遍历器 var iter = layerTable.NewIterator(); for (; !iter.Done(); iter.Step()) { //返回遍历器当前位置的记录 var layerRec = iter.GetRecord(); layerRec.IsLocked = true; alert("成功锁定图层"); } } 来源: https://www.cnblogs.com/yzy0224/p/11757268.html

CAD关于图层当前层操作(com接口网页版)

霸气de小男生 提交于 2019-12-02 18:17:34
当前层表示DWG数据库默认层,向数据库中添加一个对象时,默认放到该层上,该属性随图存放,通过系统变量CLAYER操作,系统变量设置参考:http://www.mxdraw.com/help_2_48.html 设置当前层代码JS: // 新建一个图层 mxOcx.AddLayer("MyLayerName"); // 设置当前层 mxOcx.SetSysVarString("CLAYER", "MyLayerName"); // 设置控件Draw函数使得的层 mxOcx.LayerName = "MyLayerName"; 或者这样: // 添加层 mxOcx.AddLayer("aaaa"); // 得到当前数据库 var database = mxOcx.GetDatabase(); // 设置当前层 database.CurrentlyLayerName = "aaaa"; 来源: https://www.cnblogs.com/yzy0224/p/11757233.html

CAD关于图层添加图层操作(com接口网页版)

时光毁灭记忆、已成空白 提交于 2019-12-02 18:17:21
调用控件AddLayer方法添加图层,详细接口说明见: http://www.mxdraw.com/help/frames.htm?frmname=topic&frmfile=MxDrawXLib___DMxDrawX__AddLayer@BSTR.htm 例如JS代码: // 新建一个图层 mxOcx.AddLayer("MyLayerName"); // 设置控件Draw函数使得的层 mxOcx.LayerName = "MyLayerName"; 或使用层表Add方法来添加一个图层 // sNewLayerName新创建的图层名 var sNewLayerName = "TestNewLayer"; //返回控件的数据库对象 var database = mxOcx.GetDatabase(); var layerTable = database.GetLayerTable(); // 向层表中新增一个层表记录 var layerTableRec = layerTable.Add(sNewLayerName); // 设置新图层的颜色。SetRGB var color = layerTableRec.Color; color.SetRGB(255, 0, 0); layerTableRec.Color = color; // 把新建的层设置成当前层 database

CAD关于文字样式简介(com接口)

╄→尐↘猪︶ㄣ 提交于 2019-12-02 15:09:59
DWG数据库中,文字样式存放在文字样式表中,表类名:MxDrawTextStyleTable,它的详细接口说明参考:http://www.mxdraw.com/help/IMxDrawTextStyleTable.htm 文字样式表中每一条记录称为一种文字样式,类名:MxDrawTextStyleTableRecord,它的详细接口说明参考: http://www.mxdraw.com/help/IMxDrawTextStyleTableRecord.htm 文字样式是随图纸保存,不同的图纸使用的文字样式都可能会不一样。 文字样式设置命令:Mx_Style, 比如: 1 ocx.SendStringToExecute( "Mx_Style" ) 调用样式界面,如下图: 文字样式主要属性有:字体文件名,大字体文件名,新建文本高度,新建文本宽度缩放比例,文字倾斜角度,TrueType字体数据等 DWG数据库默认总是有一个"Standard"文字样式,该文字样式不能被删除。 来源: https://blog.csdn.net/u013725001/article/details/102778325

CAD关于文字样式当前文字样式操作(com接口c#语言)

只愿长相守 提交于 2019-12-02 15:09:22
当前文字样式表示向DWG数据库添加一个文字对象时,使用的默认的文字样式,通过系统变量TEXTSTYLE操作,系统变量设置参考: http://www.mxdraw.com/help_2_48.html 设置当前文字样式C# // 添加文字样式 axMxDrawX1.AddTextStyle1("MyTextStyle", "txt.shx", "hztxt.shx", 1); // 得到当前数据库 MxDrawDatabase database = (MxDrawDatabase)axMxDrawX1.GetDatabase(); // 设置当前文字样式 database.CurrentlyTextStyle = "MyTextStyle"; 取当前文字样式代码: String sCurrentTextStyle = database.CurrentlyTextStyle; 来源: https://blog.csdn.net/u013725001/article/details/102778351

CAD关于文字样式添加文字样式操作(com接口c#语言)

被刻印的时光 ゝ 提交于 2019-12-02 15:07:48
下面代码,得到当前数据库中的文字样式表,然后向样式表中添加一个文字样表记录 C#代码: private void AddTextStyle(String sNewTextStyleName) { MxDrawApplication app = new MxDrawApplication(); //返回数据库中的文字样式表对象 MxDrawTextStyleTable txtStyleTable = app.WorkingDatabase().GetTextStyleTable(); MxDrawTextStyleTableRecord txtStyle = txtStyleTable.GetAt(sNewTextStyleName, true); if(txtStyle != null) { // 当前数据已经有该文字样。 // 如果被删除,就反删除。 txtStyle.SetProp("unErase", null); return; } //增加新的文字样式 MxDrawTextStyleTableRecord mxtstr = txtStyleTable.Add(sNewTextStyleName); //设置样式的属性,如果文字样式设置了TrueType字体,就不会使用前面设置shx字体 //参数一为turetype字体名 参数二为是否粗写 参数三为是否斜写

CAD关于文字样式得到所有文字样式操作(com接口c#语言)

旧街凉风 提交于 2019-12-02 15:07:11
下面代码是遍历文字样式表中所有文字样式,并得到所有文字样式名,在遍历的循环中,得到每个文字样式记录对象,可以去修改它的属性 private void GetAllTextStyle() { MxDrawDatabase database = (MxDrawDatabase)axMxDrawX1.GetDatabase(); //返回数据库中的文字样式表对象 MxDrawTextStyleTable mxtst = database.GetTextStyleTable(); //创建一个遍历文字样式表中所有文字样式的遍历器 MxDrawTextStyleTableIterator iter = mxtst.NewIterator(); if (iter == null) return; string sRet = null; //移动当前遍历器位置 for (; !iter.Done(); iter.Step(true, false)) { //返回遍历器当前位置的文字样式 MxDrawTextStyleTableRecord spTextStyleRec = iter.GetRecord(); //得到文字样式名 sRet = sRet + ',' + spTextStyleRec.Name; } MessageBox.Show(sRet); } 运行效果如下: 来源: https

AutoCAD二次开发(2020版)--3,执行ARX文件--

我的未来我决定 提交于 2019-12-02 14:36:28
上一节中我们在initApp()函数中,将helloWorld()函数注册给了CAD主程序,注册指令的字符串为“Hello”。 void initApp() { acedRegCmds->addCommand(_T("HELLOWORLD_COMMANDS"), _T("Hello"),_T("Bonjour"), ACRX_CMD_TRANSPARENT,helloWorld); } 如果你用过CAD的话会知道在CAD中经常用类似命令行的方法输入指令,我们上一个程序就给CAD新增了一个指令“Hello”。 用这个新增指令就可以调用被注册的函数helloWorld(); 注意,CAD指令不分区大小写。 执行之前,首先要加载ARX文件。 方法1:   最直接的方法是,打开一个CAD窗口,然后将ARX文件直接拖到画布中, 会弹出提示,选择始终加载或者加载一次都可以,确定后完成加载。 (示例图上的文件名和本教程中上一节程序的文件名不同,请忽略。) 方法2:   在CAD窗口中输入指令 APPLOAD,然后在弹出窗口中,找到你的ARX文件,点击加载。 加载成功之后,直接输入命令hello 就会调用helloWorld()函数 在屏幕上打印 Hello World ! 手动创建项目是为了理解框架的基本结构,下一节开始,将一直使用模板创建项目,能极大提高效率。 来源: https://www

2,手动创建CAD二次开发项目--AutoCAD二次开发(2020版)

让人想犯罪 __ 提交于 2019-12-02 10:49:20
本项目使用手动创建,意为不使用SDK模板。 从Visual Studio的“文件”下拉菜单中,选择“新建”->“项目...”。 在出现的“新建项目”对话框的“项目类型:”树中,单击“ Visual C ++”节点。 在模板列表中选择“ Windows桌面向导”。 在项目名称编辑框中输入所需的项目名称,例如“ Step01”。 将位置设置为要存储项目的文件夹,然后单击“确定”。 这将调用“ Windows桌面项目”对话框。              确定后弹出对话框,从应用程序类型下拉选项中选择动态链接库。                项目创建成功之后,开始配置项目属性。右键点击解决方案,选择属性。依次配置下面内容: “ C / C ++”->“常规”:   在“附加包含目录”中,添加ObjectARX SDK的头文件路径。   将“警告等级”设置为“ 1级”。   调试信息格式选择 程序数据库(/Zi) “ C / C ++”->“代码生成”:   在“运行库”中, 选择“多线程DLL(/MD)”。 “ C / C ++”->“预处理器”:   删除宏 _DEBUG 。 “ 配置属性”->“常规”:   平台工具集选择Visual Studio 2017 (v141)   目标文件扩展名修改为 .arx   配置类型 改为 动态库.dll “链接器”->“输入”: