最近有朋友询问切换图层的代码

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 切换图层为当前图层失效的更多相关文章

  1. C# for AUTOCAD ActiveX获取图形对象坐标程序

    C# for AUTOCAD ActiveX获取图形对象坐标程序 using System;using System.Collections.Generic;using System.Componen ...

  2. AutoCAD神器! AutoCAD自动切换中英文输入法插件(ZDSRF)

    AutoCAD神器! AutoCAD自动切换中英文输入法插件 (一)功能特点: CAD命令中只能输入英文字符,不能输入中文,在文字编辑.文字输入.尺寸编辑中经常需要输入中文,此时就需要频繁的切换输入法 ...

  3. OpenLayers 3 之 切换图层控件

    OpenLayers 3 之 切换图层控件 openlayers 3中并没有默认的图层切换控件,GitHub中有一个项目实现了我们需要的控件-------- ol3-layerswitcher . 可 ...

  4. ArcGIS api for javascript——放大时切换图层

    描述 本例展示了如何在地图里指出显示的缓存或切片的细节等级(LODs).当打开示例地图,可以看到一些来自ArcGIS Online ESRI_Imagery_World_2D图层的影像.这个应用程序配 ...

  5. [moka同学笔记]WINDOWS中cmd的切换目录cd命令失效

    症状: 解决办法: 二.解决问题 原因是没有切换盘符步骤一:C:\Users\Administrator>D:步骤二:D:\>

  6. VBNET AUTOCAD NETAPI 让插件随autocad启动

    定义一个函数,随AutoCAD 启动加载当前程序集到autocad,涉及到写入注册表,注意这是在autocad内部加载dll之后处理的方法.... 写入HKLM表示所有登录的用户都会受影响(autoc ...

  7. 基于.NET的CAD二次开发学习笔记二:AutoCAD .NET中的对象

    1.CAD对象:一个CAD文件(DWG文件)即对应一个数据库,数据库中的所有组成部分,看的见(包括点.多段线.文字.圆等)和看不见(图层.线型.颜色等)的都是对象,数据库本身也是一个对象. 直线.圆弧 ...

  8. 利用C#进行AUTOCAD的二次开发

    众所周知,对AutoCAD进行二次开发用到的主要工具有:ObjectArx,VBA,VLisp.但它们的优缺点是显而易见的:ObjectArx功能强大,编程效率高,但它的缺点是编程者必须掌握VC++, ...

  9. iOS语音播放之切换听筒和扬声器的方法解决方案

    关于流媒体播放的相关知识可以加本人QQ:564702640 一起来讨论 [[UIDevice currentDevice] setProximityMonitoringEnabled:YES]; // ...

随机推荐

  1. Android ImageView加载圆形图片且同时绘制圆形图片的外部边缘边线及边框

     Android ImageView加载圆形图片且同时绘制圆形图片的外部边缘边线及边框 在Android早期的开发中,如果涉及到圆形图片的处理,往往需要借助于第三方的实现,见附录文章1,2.And ...

  2. Android BottomSheet:底部弹出Fragment面板(4)

     Android BottomSheet:底部弹出Fragment面板(4) BottomSheet不仅可以弹出轻量级的定制好的面板(见附录文章5,6,7),还可以弹出"重"的 ...

  3. 在docker下面安装Nginx PHP mysql let's encrypt

    最近自己在弄了个Nginx PHP Mysql Let's encrypt的docker,下面记录一下 1)先装 Let's encrypt docker run --rm -p 80:80 -p 4 ...

  4. Delphi简单的数据操作类

    unit MyClass; uses   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,   VCL ...

  5. Java日期LocalDate使用

    在做报表统计时,需要对指定时间内的数据做统计,则需要使用到时间日期API 在此使用的是java.util.Date的完美私生子LocalDate类 LocalDate方法介绍 now() : 从默认时 ...

  6. Eclipse 搭建tomcat+动态项目完整版

    1. Tomcat搭建 1.新加服务器,右击控制台的server目录->new->server->选择本地tomcat 2.配置tomcat属性(如果更改失败,将tomcat下的项目 ...

  7. neutron trouble shooting - ip can not ping

    neutron创建了一个router后,显示列表如下: [root@controller01 keystone]# neutron router-port-list router +--------- ...

  8. 两个月后才更新一篇。。。。LIB和DLL的差别

     共同拥有两种库: 一种是LIB包括了函数所在的DLL文件和文件里函数位置的信息(入口).代码由执行时载入在进程空间中的DLL提供,称为动态链接库dynamic link library. 一种是 ...

  9. Mariadb galera 集群

    部署galera 多主架构 (galera集群多用于关键性业务,因为galera集群为了数据的一致性,采用的是同步的机制,这就使galera牺牲了一部分性能来换取数据一致性.) 环境准备:三台服务器 ...

  10. 第1章 SQL核心

    第1章 SQL核心正在更新内容,请稍后