帮助lisp自动标注
大家好。我画了一条多段线,上面有带块的任意块(情况1)或不同的线、多段线、xline(情况2)。。。。。
请帮助我将lisp自动标注为文件附加。
非常感谢你!
文件:
自动标注。图纸 简单的答案是使用ssget“F”,这会创建一个穿过一条样条线的对象列表,然后与一个明显的相交方式是为块插入点、圆、直线/样条线相交。
有人欢迎你跳在我需要粘贴在一起3个程序将需要时间。
非常感谢比格尔!
很高兴得到比格尔的帮助。
我不知道如何写lisp需要你的帮助是非常好的。
请帮帮我,再次感谢比格尔。 现在有点忙还有其他人吗?
非常感谢比格尔!
希望有人帮助我!
谢谢大家。 这里是一个开始,使用简单的测试分割一条线并沿其创建点,然后返回点的坐标。使用多if或COND将更整洁
; 1st step to find objects along a pline
; by Alan H
(defun pointpline ( / ss x obj pt co-ordsxy)
(if (not co-ords2xy) (load "pline co-ords"))
(setq co-ords (getcoords (car (entsel "\nplease pick pline"))))
(co-ords2xy)
(setq ss (ssget "F" co-ordsxy))
(setq x (sslength ss))
(repeat (sslength ss)
(setq obj (vlax-ename->vla-object (ssname SS (setq x (- x 1)))))
(if (= "AcDbPoint" (vla-get-objectname obj))
(setq pt (vlax-safearray->list (vlax-variant-value (vla-get-Coordinates obj))))
)
(princ pt)
)
)
(pointpline)
你需要这个
; pline co-ords example
; by Alan H
(defun getcoords (ent)
(vlax-safearray->list
(vlax-variant-value
(vlax-get-property
(vlax-ename->vla-object ent)
"Coordinates"
)
)
)
)
(defun co-ords2xy ()
; convert now to a list of xy as co-ords are x y x y x y if 3d x y z x y z
(setq numb (/ (length co-ords) 2))
(setq I 0)
(repeat numb
(setq xy (list (nth i co-ords)(nth (+ I 1) co-ords) ))
(setq co-ordsxy (cons xy co-ordsxy))
(setq I (+ I 2))
)
)
; program starts here
;(setq co-ords (getcoords (car (entsel "\nplease pick pline"))))
;(co-ords2xy)
非常感谢比格尔!谢谢你的帮助。
我依次运行两个lisp(getcoords.lsp和pointpline.lsp_,我复制并另存为lisp)。但没有结果(结果:请选择Plinenilnilnil)。我哪里都不知道我错了。
请帮帮我。
非常感谢你!祝你好运!
getcoords。lsp
点样线。lsp 该示例用于测试,绘制一条Pline,然后除以10,然后选择一个形状,然后运行程序。这10个单词应该出现在屏幕上。下一步是添加块,最后为交叉对象添加相交。 块的代码
(if (= "AcDbBlockReference" (vla-get-objectname obj))
(setq pt (vlax-safearray->list (vlax-variant-value (vla-get-InsertionPoint obj))))
)
页:
[1]