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

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. 慕课笔记利用css进行布局【两列布局】

    <html> <head> <title>两列布局</title> <style type="text/css"> bo ...

  2. 添物不花钱学JavaEE(基础篇) --HTML

    HTML是什么? HTML – Hyper Text Markup Language HTML官方网址 http://www.w3.org/TR/2014/REC-html5-20141028/ 其实 ...

  3. HDU 4745 最长回文子序列

    题目大意 两只青蛙朝不同方向条,每次都到达值相同的位置,不能重复到达自己到过的地方,且不能飞跃已到过的地方 我们可以理解为这两只青蛙分别把整个序列遍历了一遍,依次走过所有的点,找到最多相同的点的个数, ...

  4. 关于FFM (Field-aware Factorization Machines) 的几篇博客

    深入FFM原理与实践 http://tech.meituan.com/deep-understanding-of-ffm-principles-and-practices.html#mjx-eqn-e ...

  5. Java Web 总结

    Java Servlet 总结 Servlet 简介 Servlet 是什么? 运行在Web服务器上的应用程序,作为浏览器和服务器之间的中间层. 与CGI功能类似,优点在于 性能更好 在Web服务器的 ...

  6. lines-HDU5124(区间处理 +离散化)

    Problem Description John has several lines. The lines are covered on the X axis. Let A is a point wh ...

  7. P1165 日志分析 洛谷

    https://www.luogu.org/problem/show?pid=1165 题目描述 M 海运公司最近要对旗下仓库的货物进出情况进行统计.目前他们所拥有的唯一记录就是一个记录集装箱进出情况 ...

  8. HDU——2874 Connections between cities

    Connections between cities Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (J ...

  9. 解决Vue打包后背景图片路径错误问题

    1.原因解析 当用vue-cli自动构建项目后,有两种运行方法,分别是: npm run dev : 提供一个开发的环境,自动热更新,资源使用绝对路径,所以可以正常看到背景图片. npm run bu ...

  10. 后台进程管理工具---supervisor

    supervisor是一个linux下的进程管理工具,有时须要开发一些后台服务类的程序.这类程序通常不能由于意外挂掉.所以最好能在出现意外挂掉的情况下可以重新启动,继续服务. 之前我一直採用创建dae ...