明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1695|回复: 7

请问如何用vba获得图形信息

[复制链接]
发表于 2004-3-23 15:16:00 | 显示全部楼层 |阅读模式
图形的实体信息。


是通过那些命令呢?谢谢


不读取dxf。
发表于 2004-3-23 17:51:00 | 显示全部楼层
先通过ObjectName判断实体的类型,然后再根据各个对象本身所提供的方法、属性来操作实体。公共的属性像Layer、Color等。
 楼主| 发表于 2004-3-24 19:58:00 | 显示全部楼层
谢谢,知道大概的方法了。


又有问题了


文档对象,实际上就是AutoCAD图形,它可在Documents(文档)集合中找到,它提供访问所有图形还有大部分非图形的AutoCAD对象。通过提供的ModelSpace(模型空间)和PaperSpace(图纸空间)访问图形对象(线、圆、弧等),通过提供的如Layers(图层)、Linetypes(线型)和TextStyles(字型)这样名称的集合访问非图形对象(图层、线型、字型等)。Document(文档)对象也提供访问Plot(打印出图)和Utility(实用工具)对象。


请问有没有详细地说明或实例呀,比如我想提取出来一条支线的两个点的四个坐标


麻烦了,谢谢先!!
发表于 2004-3-24 20:39:00 | 显示全部楼层
ACAD的模型应该是Application应用程序-Document文档-ModelSpace模型空间,一般的绘图,实体全部在模型空间,通过遍历它就可以得到。另一种是通过选择集来选择实体,然后对其进行操作。
 楼主| 发表于 2004-3-25 17:41:00 | 显示全部楼层
大哥,这些呢,我现在模模糊糊的理解了。但只是理论上的理解。


所以呢,希望你能给个例子。就这个吧,比如图形上有一条直线,通过编程获取他的起点和终点的坐标,然后msg显示出来。


呵,麻烦给写个代码吧,要不不好理解了,谢啦谢啦。
发表于 2004-3-26 08:39:00 | 显示全部楼层
<BR>Dim lineobj As AcadLine<BR>Dim selobj As AcadObject, selpnt As Variant<BR>Dim mp1(0 To 2) As Double '起点<BR>Dim mp2(0 To 2) As Double '终点<BR>ThisDrawing.Utility.GetEntity selobj, selpnt, "请选择目标直线"<BR>        If (selobj.EntityName = "AcDbLine") Then<BR>         Set lineobj = selobj<BR>         mp1(0) = lineobj.StartPoint(0)<BR>         mp1(1) = lineobj.StartPoint(1)<BR>         mp2(0) = lineobj.EndPoint(0)<BR>         mp2(1) = lineobj.EndPoint(1)<BR>End If
发表于 2004-3-27 22:15:00 | 显示全部楼层
我有个类似的问题:不通过"ThisDrawing.Utility.GetEntity"再用鼠标选择,而是用程序选择AcadLine(已知ObjectID),然后修改端点!


请问高手如何代码实现?
发表于 2004-3-27 22:31:00 | 显示全部楼层
使用文档对象的ObjectIDToObject来返回一个对象。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-28 07:42 , Processed in 0.179117 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表