选择要获取的实体';s L
AutoCAD 2009和10 VBA。是否可以选择一个特定的分解实体来获取其图层名称?一个人可以吗
再往前走一步,在块中选择一个特定的enity?我想知道
如果可能的话,如何在这两种情况下做到这一点。
非常感谢。 它必须是VBA吗。。。 VBA版本如下:
Sub GetNestedEnt()
Dim varPckPt As Variant
Dim obj As AcadObject
Dim varMatrix As Variant
Dim lngContext As Long
Dim strObjName As String
Dim strText As String
Dim ent As AcadEntity
On Error GoTo MissedPick
ThisDrawing.Utility.GetSubEntity obj, varPckPt, varMatrix, lngContext, "Select an entity: "
Set ent = obj
MsgBox ent.Layer
On Error GoTo 0
Exit Sub
MissedPick:
MsgBox "Missed Pick!"
End Sub LISP要简洁得多。。。
(defun c:getlay (/ ent)
(and (setq ent (car (nentsel "\nSelect Entity: ")))
(princ (strcat "\nLayer is: "
(cdr (assoc 8 (entget ent))))))
(princ))
总是这样。
你是要学习LISP Sean还是直接进入。NET或C#/++?或者您已经知道LISP,但使用VBA代替?
正如我在2010年发现的那样,VBA已不复存在。。。
有一组相当特殊的情况使我绕过AutoLisp而支持VBA(主要是由于其他常用应用程序中基于VB的支持)。不过,我真希望我花了必要的时间来学习lisp。
我现在把大部分时间都花在了工作上。NET,并慢慢地将我的旧VBA例程转移到C#。如果空闲时间允许,我会学习C++。
我已经接受了一个事实,那就是我可能永远也学不会口齿不清。
这里有一个问题问你:你计划下载必要的文件,以激活VBA的2010年安装?
我曾考虑过学习VBA,因为它似乎离LISP不太远,因为LISP中使用的大多数方法都适用于VBA,只有一种不同的格式化代码的方法。但现在我只想专注于C++,这将使我在学习其他语言方面有更好的地位。
所以,回答你的问题,可能不是。 我不能说我会责怪你。当然不是在游戏的这个阶段。实际上,我想知道有多少AutoCAD 2010用户有机会下载这些文件。
我有Inventor 2009,但还没有投入太多时间。由于VBA是API中数量有限的一种,我想知道发明家群体是否更多地归属于VBA,因此对其即将消亡更为疯狂。 这里是我每天用来获取嵌套层名称和其他信息的一个
;;; AUTHOR
;;; Copyright© 2009 Ron Perez (ronperez ( a t ) gmail ( dot ) com)
;;;
;;;List nested objects info
(defun c:q (/ x z msg plt lyr olyr descr plot dxf propsbyobject plot?)
(defun plot? (ent /)
(if (zerop (dxf 290 ent))
"NO"
"Yes"
)
)
(defun propsbyobject (ent / out)
(setq out "")
(foreach prop '((48 . "Ltype-Scale ") (6 . "Ltype ") (62 . "Color "))
(if (dxf (car prop) ent)
(setq out (strcat (cdr prop) out))
)
)
(if (zerop (strlen out))
out
(strcat "\n *Property BYOBJECT: " out)
)
)
(defun dxf (x ename /) (cdr (assoc x (entget ename))))
(if (setq x (nentsel))
(progn (setq lyr(tblobjname "layer" (dxf 8 (car x)))
olyr (vlax-ename->vla-object lyr)
plt(plot? lyr)
)
(if (/= (setq descr (vla-get-description olyr)) "")
(setq descr (strcat "\n Description:" descr))
)
(setq msg (strcat "[ "
(dxf 0 (car x))
" ]\n Layer:"
(dxf 8 (car x))
"\n Color:"
(itoa (dxf 62 lyr))
"\n Linetype:"
(dxf 6 lyr)
"\n Plottable:"
plt
descr
(propsbyobject (car x))
"\n"
"\n"
)
)
(if (cadddr x)
(setq msg (foreach z (cadddr x)
(setq lyr(tblobjname "layer" (dxf 8 z))
olyr (vlax-ename->vla-object lyr)
plt(plot? lyr)
)
(if (/= (setq descr (vla-get-description olyr)) "")
(setq descr (strcat "\n Description:" descr))
)
(setq
msg (strcat "[ "
(if (vlax-property-available-p (vlax-ename->vla-object z) 'path)
(strcat "XREF - " (dxf 2 z))
(strcat "INSERT - " (dxf 2 z))
)
" ]\n Layer:"
(dxf 8 z)
"\n Color:"
(itoa (dxf 62 lyr))
"\n Linetype:"
(dxf 6 lyr)
"\n Plottable:"
plt
descr
(propsbyobject z)
"\n"
"\n"
msg
)
)
)
)
)
(alert msg)
(princ msg)
)
(princ "\nNothing selected...")
)
(princ)
)
页:
[1]
2