明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: wuyunpeng888

[提问] cad图元名转换为字符串

[复制链接]
发表于 2014-9-9 00:45:27 | 显示全部楼层
wuyunpeng888 发表于 2014-9-8 22:22
还有个问题,lisp可不可以修改自定义类型图元的关联表内的信息?

那要看这些自定义实体给没给留这个接口
 楼主| 发表于 2014-9-9 01:25:53 | 显示全部楼层
这个图元名后面的数值 就是对象的ID
发表于 2014-9-9 07:58:14 | 显示全部楼层
wuyunpeng888 发表于 2014-9-8 22:22
还有个问题,lisp可不可以修改自定义类型图元的关联表内的信息?

调用相应的ARX程序可以修改。
 楼主| 发表于 2019-1-12 10:03:12 | 显示全部楼层
已经在VBA中搞定,VBA代码如下
'获得图元的组码,返回值为指定类型的数组
Public Function GetEntDXF(ByVal ent As Object) As Variant
Dim sym As Object, list As Object
Dim Count  As Integer, Count1 As Integer, i As Integer, j As Integer
Dim elements() As Variant, elements1() As Variant
Dim objTemp As Object, objTemp1 As Object

Set sym = VLFS.Item("read").funcall("(entget (handent" & Chr(34) & ent.Handle & Chr(34) & "))")
Set list = VLFS.Item("eval").funcall(sym)
Count = VLFS.Item("length").funcall(list)
ReDim elements(0 To Count - 1)
For i = 0 To Count - 1
    Set objTemp = VLFS.Item("nth").funcall(i, list)
    Count1 = VLFS.Item("vl-list-length").funcall(objTemp)
    If Count1 = 0 Then '如果返回值为0说明是点对
        ReDim elements1(0 To 1)
        elements1(0) = VLFS.Item("car").funcall(objTemp) '获得点对的第一个组码
        
        If TypeName(VLFS.Item("cdr").funcall(objTemp)) = "DVlObject" Then '如果点对的第二个元素是对象的话,说明是图元名,否则是数据
            Set objTemp1 = VLFS.Item("cdr").funcall(objTemp)
            If objTemp1.Type = "lentity" Then
                Set elements1(1) = VLFS.Item("cdr").funcall(objTemp)
            End If
        Else  '点对数据
            elements1(1) = VLFS.Item("cdr").funcall(objTemp)
        End If
    Else        '否则说明是表
        ReDim elements1(0 To Count1 - 1)
        For j = 0 To Count1 - 1
            elements1(j) = VLFS.Item("nth").funcall(j, objTemp)
        Next j
    End If
    elements(i) = elements1
Next
GetEntDXF = elements
End Function
 楼主| 发表于 2019-1-12 10:17:41 | 显示全部楼层
现在不需要转字符串了,现在是用VBA的数组,得到对象的DXF组码,VBA也一样可以
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-4-25 12:11 , Processed in 0.138898 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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