VBNET AutoCAD Activex 切换图层为当前图层失效
最近有朋友询问切换图层的代码
com切换图层

<CommandMethod("mycl")>
Public Sub MySubLayerChange()
Dim Thisdrawing As Autodesk.AutoCAD.Interop.AcadDocument = Application.DocumentManager.MdiActiveDocument.AcadDocument
Dim curLayer As Autodesk.AutoCAD.Interop.Common.AcadLayer = Thisdrawing.ActiveLayer
Dim newLayer As Autodesk.AutoCAD.Interop.Common.AcadLayer
For Each la As Autodesk.AutoCAD.Interop.Common.AcadLayer In Thisdrawing.Layers
If la.Name = "layer1" Then
newLayer = la
Thisdrawing.ActiveLayer = newLayer
End If
Next
End Sub
示效的话用下面的代码,切换系统变量



Public Sub ChangeLayer(ByRef LayerName As String)
Acadapp.ActiveDocument.SetVariable("Clayer", LayerName)
Acadapp.ActiveDocument.SetVariable("CELTYPE", "Bylayer")
'For Each entry As Object In Acadapp.ActiveDocument.layers
' If entry.name = LayerName Then
' Acadapp.ActiveDocument.Activelayer = entry
' Exit For
' End If
'Next entry
''改变线型
'For Each entry As Object In Acadapp.ActiveDocument.Linetypes
' If entry.name = "Bylayer" Then
' Acadapp.ActiveDocument.ActiveLinetype = entry
' Exit For
' End If
'Next
End Sub
'改变标注样式 //20190606 nan sheng modify
Public Sub ChangeDimStyles(ByRef Name As String)
Acadapp.ActiveDocument.SendCommand("-dimstyle" & vbCr & "r" & vbCr & Name & vbCr) REM "_zoom" & vbCr & "a" & vbCr
'ThisDrawing.SendCommand ("-dimstyle" & vbCr & "r" & vbCr & "111" & vbCr)
'For Each entry As Object In Acadapp.ActiveDocument.DimStyles
' If entry.name = Name Then
' Acadapp.ActiveDocument.ActiveDimStyle = entry
' Exit For
' End If
'Next entry
End Sub
'改变文字样式//20190606 nan sheng modify
Public Sub ChangeTextStyles(ByRef Name As String)
Acadapp.ActiveDocument.SetVariable("TEXTSTYLE", Name)
'For Each entry As Object In Acadapp.ActiveDocument.TextStyles
' If entry.name = Name Then
' Acadapp.ActiveDocument.ActiveTextStyle = entry
' Exit For
' End If
'Next entry
End Sub
NetApi切换图层

<CommandMethod("myclNetApi")>
Public Sub MySubLayerChangeNetApi()
Dim doc As Document = Application.DocumentManager.MdiActiveDocument
Dim db As Database = doc.Database
Using trans As Transaction = db.TransactionManager.StartTransaction()
Dim lt As LayerTable = trans.GetObject(db.LayerTableId, OpenMode.ForRead)
If lt.Has("layer1") Then
db.Clayer = lt("layer1")
End If
trans.Commit()
End Using
End Sub
VBNET AutoCAD Activex 切换图层为当前图层失效的更多相关文章
- C# for AUTOCAD ActiveX获取图形对象坐标程序
C# for AUTOCAD ActiveX获取图形对象坐标程序 using System;using System.Collections.Generic;using System.Componen ...
- AutoCAD神器! AutoCAD自动切换中英文输入法插件(ZDSRF)
AutoCAD神器! AutoCAD自动切换中英文输入法插件 (一)功能特点: CAD命令中只能输入英文字符,不能输入中文,在文字编辑.文字输入.尺寸编辑中经常需要输入中文,此时就需要频繁的切换输入法 ...
- OpenLayers 3 之 切换图层控件
OpenLayers 3 之 切换图层控件 openlayers 3中并没有默认的图层切换控件,GitHub中有一个项目实现了我们需要的控件-------- ol3-layerswitcher . 可 ...
- ArcGIS api for javascript——放大时切换图层
描述 本例展示了如何在地图里指出显示的缓存或切片的细节等级(LODs).当打开示例地图,可以看到一些来自ArcGIS Online ESRI_Imagery_World_2D图层的影像.这个应用程序配 ...
- [moka同学笔记]WINDOWS中cmd的切换目录cd命令失效
症状: 解决办法: 二.解决问题 原因是没有切换盘符步骤一:C:\Users\Administrator>D:步骤二:D:\>
- VBNET AUTOCAD NETAPI 让插件随autocad启动
定义一个函数,随AutoCAD 启动加载当前程序集到autocad,涉及到写入注册表,注意这是在autocad内部加载dll之后处理的方法.... 写入HKLM表示所有登录的用户都会受影响(autoc ...
- 基于.NET的CAD二次开发学习笔记二:AutoCAD .NET中的对象
1.CAD对象:一个CAD文件(DWG文件)即对应一个数据库,数据库中的所有组成部分,看的见(包括点.多段线.文字.圆等)和看不见(图层.线型.颜色等)的都是对象,数据库本身也是一个对象. 直线.圆弧 ...
- 利用C#进行AUTOCAD的二次开发
众所周知,对AutoCAD进行二次开发用到的主要工具有:ObjectArx,VBA,VLisp.但它们的优缺点是显而易见的:ObjectArx功能强大,编程效率高,但它的缺点是编程者必须掌握VC++, ...
- iOS语音播放之切换听筒和扬声器的方法解决方案
关于流媒体播放的相关知识可以加本人QQ:564702640 一起来讨论 [[UIDevice currentDevice] setProximityMonitoringEnabled:YES]; // ...
随机推荐
- nyoj 86 找球号(一)(set,map)
找球号(一) 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 在某一国度里流行着一种游戏.游戏规则为:在一堆球中,每个球上都有一个整数编号i(0& ...
- WebLoad 脚本的用法
WebLoad 对于模拟一个HTTP 请求,一般都是 由以下三部分组成,并把这三部分包在一个Transaction里(从BeginTransation 到 EndTransaction 为止): ...
- vim fulerformat的设置
在vim中设置选项,有注释很容易明白: set laststatus=1 "2总显示最后一个窗口的状态行,1窗口多于一个时显示最后一个窗口的状态行,0不显示最后一个窗口的状态行 fulerf ...
- Ubuntu12.04之vi的问题
版本:ubuntu12.04. 问题:vi不能正常使用方向键与退格键. 原因:ubuntu系统自带的 vi 不完整导致. 解决方法:安装完整的vi,sudo apt-get install vim-g ...
- oracle的processes和session最大限制
1.现象:oracle运行了一段时间后出现用户名连接不上,提示process已经达到最大值. 2.解决: --管理员身份登录 sqlplus / as sysdba --修改processes最大值, ...
- TensorFlow-GPU环境配置之三——安装bazel
TensorFlow的源码需要使用bazel进行编译,所以需要安装bazel构建工具 1.安装JDK 8 sudo add-apt-repository ppa:webupd8team/java su ...
- 详细图解mongodb 3.4.1 win7x64安装
原文:http://www.cnblogs.com/yucongblog/p/6895983.html 详细图解,记录 win7 64 安装mongo数据库的过程.安装的版本是 MongoDB-win ...
- canvas 插件
http://www.jq22.com/yanshi2217 参考这个站 发现一些比较有用的canvas插件: 线形图插件:jquery.sparkline 2.1.1 excanvas 环形图,饼状 ...
- node-V8
Node是基于V8引擎的,所以我们运行Js文件不会存在问题,下面演示一下: 因为安装Vscode后,会自动添加本路径到path,所以可以用 code yes.js 来执行创建文件 Vscode是基于N ...
- form 表单序列化 serialize
在开发中有时需要在js中提交form表单数据,就需要将form表单进行序列化. jquery提供的serialize方法能够实现. $("#searchForm").seriali ...