具有属性的块需要hel
这是一个带有字段的块(poliline length),我用这个块来加固,我想做一件事,但我不知道怎么做:有时这个块是分解的,所以我想在双击块长度时,只需单击它就可以得到poliline length。这是真的,还是幻想?如果有人有其他想法,或其他更好的阻止张贴请。
需要帮助。图纸 欢迎来到CADTutor。
您想只需单击属性块一次,就可以获得长度标记中表示的长度值?那之后该怎么办?
需要更多细节。 我想用最简单的方法来计算poliline的长度,但是,为了不打破障碍,这听起来有点奇怪,但是,只是问一下是否可能 拾取属性本身。
(defun c:Test (/ s)
(and (setq s (car (nentsel "\n pick on Attribute :")))
(member '(0 . "ATTRIB") (entget s))
(princ (strcat "\n The attribute value : < " (cdr (assoc 1 (entget s))) " > " ))
)
(princ)
)
我不是黑客,但我觉得这里的lisp帮不上忙,只有用VBA,如果我没有错?
如果你这么认为,为什么要在AutoLISP论坛上发帖?
这应该是你的目的地 因为我仍然不知道Lisp程序的真正力量。。。 很抱歉,Tharwat,可能你不理解我的问题,例如,在我的旁边画一条新的poliline,所以我想把这个新poliline的长度分配给我的块
这
(defun c:Test (/ *error* z o s _doc gc:GetObjectIdString)
;;; Tharwat 05.01.2014 ;;;
(defun *error* (msg)
(if z
(setvar 'DIMZIN z)
)
(if (wcmatch (strcase msg) "*CANCEL*,*EXIT*,*BREAK*")
(princ (strcat "Error :" msg " ..."))
)
)
(defun gc:GetObjectIdString (obj) ;;; By Gile
(or *util* (setq *util* (vla-get-Utility _doc)))
(if (vlax-method-applicable-p *util* 'GetObjectIdString)
(vla-GetObjectIdString *util* obj :vlax-false)
(itoa (vla-get-ObjectId obj))
)
)
(setq z (getvar 'DIMZIN))
(setvar 'DIMZIN 0)
(vla-startUndomark
(setq _doc (vla-get-ActiveDocument (vlax-get-acad-object)))
)
(princ "\n Pick a Polyline/Line/Spline ")
(and
(setq o (ssget "_+.:S:E" '((0 . "*POLYLINE,LINE"))))
(setq s (car (nentsel "\n pick on Attribute :")))
(member '(0 . "ATTRIB") (entget s))
(entmod
(subst
(cons
1
(strcat
"%<\\AcObjProp Object(%<\\_ObjId "
(gc:GetObjectIdString (vlax-ename->vla-object (ssname o 0)))
">%).Length \\f \"%lu2\">%"
)
)
(assoc 1 (entget s))
(entget s)
)
)
)
(vla-regen _doc acallviewports)
(vla-Endundomark _doc)
(*error* nil)
(princ)
)(vl-load-com)
谢谢塔瓦的回复,非常感谢!!
在我的国家,10分是学校最好的分数,所以你今天应该得到10分。
页:
[1]
2