011集——vba获取CAD图中图元类名objectname

news2024/9/23 21:31:46

        在CAD中,通过快捷键PL(即POLYLINE命令)绘制的线属于AcDbPolyline。AcDbPolyline也被称为LWPOLYLINE,即简单Polyline,它所包含的对象在本身内部。

        此外,CAD中还有另一种二维多段线对象,称为AcDb2dPolyline(也被称为POLYLINE)。这是一个复杂的实体,所包含的对象并不在本身内部,而是独立的点对象。但在现代的CAD使用中,AcDb2dPolyline已经逐步被淘汰,不常用了。因此,通过快捷键PL绘制的线,一般被认为是AcDbPolyline(LWPOLYLINE)。

        AcDb2dPolyline与AcDbPolyline是AutoCAD中两种不同类型的二维多段线对象,它们在功能和使用上有一些区别。

  1. 效率与结构:AcDbPolyLine类是一个优化过的类,它的效率更高,可以直接访问顶点信息。而AcDb2DPolyLine类定义的实体是一个复杂的实体,需要遍历该对象包含的AcDb2dVertex对象才能访问到顶点信息。
  2. 组码与对象包含:AcDbPolyline的组码是LWPOLYLINE(LW-Low Level),这是一个简单的Polyline,它所包含的对象都在其内部。而AcDb2dPolyline的组码是POLYLINE,这是一个复杂的实体,它所包含的对象并不在其本身内部,而是独立的点对象。
  3. 常用程度与淘汰:AcDbPolyline(LWPOLYLINE)是常用的类,而AcDb2dPolyline是旧版的类,不常用,并逐步在淘汰中。
  4. 创建方式:在AutoCAD中,使用PLINETYPE命令可以控制如何使用PLINE命令创建新多段线以及是否转换早期版本图形中的现有多段线。例如,将PLINETYPE的新值设置为0,将使用优化的二维多段线,即AcDbPolyline。

总的来说,AcDbPolyline(LWPOLYLINE)是一个更优化、更常用且结构简单的类,而AcDb2dPolyline是一个复杂且逐步被淘汰的类。在实际使用中,推荐使用AcDbPolyline类。

请注意,以上信息可能因CAD版本的不同而有所差异,建议参考具体版本的官方文档或相关资料以获得最准确的信息。

        在AutoCAD中,AcadPolyline通常指的是通过AutoCAD VBA(Visual Basic for Applications)访问的二维多段线对象,它是AutoCAD中的一个实体类型。二维多段线是由一系列直线段和/或圆弧段组成的连续曲线,所有这些段都位于同一个平面上。在AutoCAD的VBA环境中,你可以使用AcadPolyline对象来创建、编辑和查询二维多段线的属性和几何信息。

        然而,AcDbPolyline实际上并不是一个直接在AutoCAD VBA中使用的对象类型。相反,AcDbPolyline是AutoCAD的数据库API(通常是.NET API或ObjectARX API)中的一个类,用于表示存储在数据库中的二维多段线数据。这个类提供了对多段线数据的底层访问,允许你进行更复杂的操作,比如直接操作数据库中的多段线数据。

        简而言之,AcadPolyline是在AutoCAD VBA环境中用于操作和交互的二维多段线对象,而AcDbPolyline是在AutoCAD的数据库API中用于表示和操作二维多段线数据的类。这两者之间的关系类似于AutoCAD用户界面和底层数据库之间的关系:一个是用户交互的接口,另一个是存储和操作数据的底层机制。

        需要注意的是,AutoCAD的API和VBA环境可能会随着软件版本的更新而发生变化,因此建议查阅你正在使用的AutoCAD版本的官方文档以获取最准确的信息。

        在AutoCAD中,通过快捷键PL绘制的线实际上是一个聚合线(Polyline),而不是AcadPolyline对象。聚合线(Polyline)是由一系列相连的直线段组成的对象,它不同于二维多段线(2D Polyline)。

        尽管聚合线(Polyline)和二维多段线(2D Polyline)在外观上可能很相似,但它们在功能和属性上有所不同。二维多段线(2D Polyline)是一个更复杂的对象,可以包含直线段和圆弧段的组合,并且具有更多的属性和设置选项。相比之下,聚合线(Polyline)仅由直线段组成,并且其属性和功能相对有限。

因此,通过快捷键PL绘制的线属于聚合线(Polyline),而不是AcadPolyline对象。要创建二维多段线(2D Polyline),你可以使用其他方法,例如在命令行中输入2DPOLY命令或选择相应的菜单选项。

        获取类名代码如下:

'2024年3月3日21:38:39 copyrights@ qq443440204
Sub 获取objectname类名()
Dim obj As Object
Dim pt(2) As Variant
 ThisDrawing.Utility.GetEntity obj, pt, "请选择"
MsgBox obj.ObjectName
If TypeOf obj Is AcadObject Then
MsgBox "好"
End If
End Sub

在AutoCAD VBA中,你可以使用TypeOf来检查对象是否为特定的AutoCAD对象类型。AutoCAD VBA支持的对象类型非常多样化,涵盖了AutoCAD中几乎所有的实体和组件。以下是一些常见的AutoCAD对象类型,你可以在TypeOf语句中使用它们来检查对象的类型:

  1. 基础对象类型
    • AcadBlockReference:块参照(Block Reference)
    • AcadDimension:标注(Dimension)
    • AcadHatch:填充(Hatch)
    • AcadLayer:图层(Layer)
    • AcadLine:直线(Line)
    • AcadMLine:多线(Multiline)
    • AcadPoint:点(Point)
    • AcadPolyline:二维多段线(2D Polyline)
    • Acad3DPolyline:三维多段线(3D Polyline)
    • AcadCircle:圆(Circle)
    • AcadArc:圆弧(Arc)
    • AcadEllipse:椭圆(Ellipse)
    • AcadText:文本(Text)
    • AcadInsert:插入(Insert)
    • AcadRay:射线(Ray)
    • AcadXLine:构造线(Xline)
    • AcadSpline:样条曲线(Spline)
  2. 高级对象类型
    • AcadBlockTable:块表(Block Table)
    • AcadBlockTableRecord:块表记录(Block Table Record)
    • AcadDictionary:字典(Dictionary)
    • AcadDictionaryEntry:字典条目(Dictionary Entry)
    • AcadLayout:布局(Layout)
    • AcadObjectId:对象ID(Object ID)
    • AcadObject:基础对象(Generic Object)
    • AcadSelectionSet:选择集(Selection Set)
    • AcadTransaction:事务(Transaction)
  3. 集合和数组
    • AcadObjectIdArray:对象ID数组
    • AcadObjectArray:对象数组
    • AcadBlockTableRecordIterator:块表记录迭代器
  4. 其他
    • AcadDatabase:数据库(Database)
    • AcadDocument:文档(Document)
    • AcadApplication:应用程序(Application)
    • AcadUtility:实用工具(Utility)

请注意,随着AutoCAD版本的更新,新的对象类型可能会被添加,而旧的对象类型可能会被弃用或替换。因此,为了获得最准确的信息,你应该查阅与你正在使用的AutoCAD版本相对应的官方文档或帮助文件。

使用TypeOf时,你需要确保你正在检查的对象确实是你期望的类型,否则你可能会遇到运行时错误。如果你不确定对象的类型,你可以先使用TypeOf来检查它是否属于一个更通用的类型(如AcadObject),然后再进一步细化检查。

以上部分来自网络,不正之处欢迎批评指正。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1487274.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue开发实例(十一)用户列表的实现与操作

用户列表的实现与操作 一、创建用户页面和路由二、表格优化1、表头自定义2、表格滚动3、加入数据索引4、利用插槽自定义显示 三、功能1、查询功能3、增加4、删除5、修改 一、创建用户页面和路由 创建用户页面 在 src/components/Main 下创建文件夹user,创建文件Us…

苍穹外卖Day05——总结5

前期文章 文章标题地址苍穹外卖Day01——总结1https://lushimeng.blog.csdn.net/article/details/135466359苍穹外卖Day01——解决总结1中存在的问题https://lushimeng.blog.csdn.net/article/details/135473412苍穹外卖Day02——总结2https://lushimeng.blog.csdn.net/articl…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《基于条件风险价值的虚拟电厂参与能量及备用市场的双层随机优化》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 这篇文章的标题涉及到以下几个关键点…

【二叉树的最近公共祖先】【后序遍历】Leetcode 236. 二叉树的最近公共祖先

【二叉树的最近公共祖先】【后序遍历】Leetcode 236. 二叉树的最近公共祖先 解法1 涉及到结果向上返回就要用后序遍历解法2 自己写的方法 后序遍历 ---------------🎈🎈236. 二叉树的最近公共祖先 题目链接🎈🎈-----------------…

【kubernetes】关于k8s集群如何将pod调度到指定node节点?

目录 一、k8s的watch机制 二、scheduler的调度策略 Predicate(预选策略) 常见算法: priorities(优选策略)常见的算法有: 三、k8s的标签管理之增删改查 四、k8s的将pod调度到指定node的方法 方案一&am…

20个 K8S集群常见问题总结,建议收藏

问题1:K8S集群服务访问失败? 原因分析:证书不能被识别,其原因为:自定义证书,过期等。 解决方法:更新证书即可。 问题2:K8S集群服务访问失败? curl: (7) Failed connec…

YOLOv9改进 | 基础篇 | 提供YOLOv9全系列支持V9n、V9s、V9m、V9l、V9x的修改方式(全网独家首发)

一、本文介绍 大家好,本文给大家带来的是2024年2月21日全新发布的SOTA模型YOLOv9的补全教程(算是一种补全吧我个人认为),了解V7的读者都知道V7系列是不支持模型深度和宽度的修改的也就是没有办法像YOLOv8那样有多个版本&#xff…

IOC中Bean的生命周期

生命周期的各个阶段: 可以分为三个阶段:产生-使用-销毁 又可以分四个阶段:四个阶段 实例化 ->属性注入->初始化 ->销毁 实例化后到使用的初始化过程: 属性赋值 ->处理各种Aware接口->实现BeanPostProcessor的b…

【大厂AI课学习笔记NO.63】模型的维护

说是模型的维护,其实这堂课都是在讲“在工业环境中开发和部署机器学习模型的流程”。 上图来自于我的笔记思维脑图,已经上传,要链接的访问的主页查看资源。 一路走来,我们学习了数据管理、模型学习、模型验证、模型部署等重要的步…

js中Generator函数详解

定义: promise是为了解决回调地狱的难题出现的,那么 Generator 就是为了解决异步问题而出现的。 普通函数,如果调用它会立即执行完毕;Generator 函数,它可以暂停,不一定马上把函数体中的所有代码执行完毕…

鸿蒙App开发新思路:小程序转App

国家与国家之间错综复杂,在谷歌的安卓操作系统“断供”后,鸿蒙系统的市场化&独立化的道路便显而易见了。 2024年1月18日,华为宣布,不再兼容安卓的“纯血鸿蒙”--HarmonyOS NEXT鸿蒙星河版最终面世,并与2024年Q4正…

自己本地模拟内存数据库增删改查

目录 学习初衷准备代码实现结果感谢阅读 学习初衷 用于满足自己的测试要求,不连接数据库,也不在意数据丢失 准备 maven依赖 org.springframework.boot spring-boot-starter-test test 代码实现 内存数据库(InMemoryDatabase&#xff0…

AmzTrends x TiDB Serverless:通过云原生改造实现全局成本降低 80%

本文介绍了厦门笛卡尔数据(AmzTrends)在面临数据存储挑战时,选择将其数据分析服务迁移到 TiDB Serverless 的思路和实践。通过全托管的数据库服务,AmzTrends 实现了全局成本降低 80% 的效果,同时也充分展示了 TiDB Ser…

【活动】金三银四,前端工程师如何把握求职黄金期

随着春意盎然的气息弥漫大地,程序员群体中也迎来了一年一度的“金三银四”求职热潮。这个时间段对于广大前端工程师而言,不仅象征着生机勃发的新起点,更是他们职业生涯中至关重要的转折点。众多知名公司在这一时期大规模开启招聘通道&#xf…

Java面试题总结200道(二)

26、简述Spring中Bean的生命周期? 在原生的java环境中,一个新的对象的产生是我们用new()的方式产生出来的。在Spring的IOC容器中,将这一部分的工作帮我们完成了(Bean对象的管理)。既然是对象,就存在生命周期,也就是作用…

机器人持续学习基准LIBERO系列9——数据集轨迹查看

0.前置 机器人持续学习基准LIBERO系列1——基本介绍与安装测试机器人持续学习基准LIBERO系列2——路径与基准基本信息机器人持续学习基准LIBERO系列3——相机画面可视化及单步移动更新机器人持续学习基准LIBERO系列4——robosuite最基本demo机器人持续学习基准LIBERO系列5——…

windows下安装npm

windows下安装了多个node.js如何切换npm。 下载nvm 下载nvm地址:https://github.com/coreybutler/nvm-windows/releases 安装nvm 这个是nodejs的安装位置,如果没有nodejs文件夹就新建一个(后来发现他会自动生成一个快捷方式) 设置setting.txt 打开安装…

http 协议深入介绍

一,http 相关概念 (一)关键名词 1,互联网 是网络的网络,是所有类型网络的母集 2,因特网 世界上最大的互联网网络。即因特网概念从属于互联网概念。习惯上,大家把连接在因特网上的计算机都成…

【大厂AI课学习笔记NO.66】TensorFlow

TensorFlow 这个框架,实在是太有名了,最近周红衣都在大力的宣传和讲解。 他说的是对的,人工智能,就是大力出奇迹,就是大量的算力,大量的数据,加上模型的加持,实现的智能感觉。 Goog…

MWC 2024丨Smart Health搭载高通Aware平台—美格发布智能健康看护解决方案,开启健康管理新体验

2月29日,在MWC 2024世界移动通信大会上,全球领先的无线通信模组及解决方案提供商——美格智能正式发布了新一代Cat.1模组SLM336Q,是中低速物联网应用场景的高性价比之选。本次还发布了首款搭载高通Aware™平台的智能看护解决方案MC303&#x…