突发口齿不清
你好,朋友们谁能帮我一个忙吗。lsp文件,将属性分解为其值。
拉马纳 爆发如果已安装快速工具,则lsp应包含在其中。 亲爱的朋友李:,
谢谢你的建议。
实际上,我没有使用autocad,我正在使用其他cad程序,因为我需要burst或a2t。lsp文件。
请帮帮我
拉马纳 我不确定分发受AutoDesk版权保护的LISP文件会带来哪些法律问题,但我认为这是不合法的眨眼:
然而,我愿意接受相反的建议。 亲爱的朋友,
我不想按原样使用程序。我想知道逻辑。没有法律问题。Burst可能使用了vlx函数,这对我没有帮助。
但我需要知道这些概念。
谢谢关心
拉马纳 我想象一下,突发的概念是穿过一个块,提取其中的每个实体,然后在它当前所在的位置绘制该实体。对于属性,它可能会抓取该属性。。嗯属性。。并创建一个文本或多行文字对象,在其位置具有相同的属性,就像它对块的线和圆所做的那样。
重新创建LISP可能并不困难,在这个论坛的另一个线程中已经有了一些框架。 我认为突发命令分解块,然后将任何属性转换为文本。至少我是这样理解的。 我的爆破Lisp程序版本-恰当命名。
;; MacBurst~ An Alternative Burst LISP by Lee Mac
;; Copyright (c) 03.06.2009
(defun c:MacBurst (/ ss iPt lst)
(vl-load-com)
(princ "\nInitializing...")
(if (setq ss (ssget '((0 . "INSERT"))))
(foreach Blk (vl-remove-if 'listp
(mapcar 'cadr (ssnamex ss)))
(setq iPt
(vlax-3D-point
(cdr (assoc 10 (entget Blk)))))
(mapcar
(function
(lambda (x)
(vla-move
(vlax-ename->vla-object x)
(vlax-3D-point '(0 0 0)) iPt)))
(append
(mapcar 'entmakex
(vl-remove-if
(function
(lambda (x)
(eq "ATTDEF" (cdr (assoc 0 x)))))
(setq lst
(mapcar 'entget
(GetObj
(tblobjname "BLOCK"
(cdr (assoc 2 (entget Blk)))))))))
(mapcar 'entmakex
(mapcar
(function
(lambda (y)
(vl-remove-if
(function
(lambda (x)
(member (car x)
'(100 3 2 70 280)))) y)))
(mapcar
(function
(lambda (x)
(subst (cons 0 "TEXT") (assoc 0 x)
(subst (cons 73 (cdr (assoc 74 x)))
(assoc 74 x) x))))
(vl-remove-if-not
(function
(lambda (x)
(eq "ATTDEF" (cdr (assoc 0 x))))) lst))))))
(entdel Blk)))
(princ))
; Get Block Sub-Entities
(defun GetObj(bObj)
(if (setq bObj (entnext bObj))
(cons bObj (GetObj bObj))))
李先生,
谢谢你的代码,
我会尽力满足我的要求。
再次非常感谢
拉马纳
页:
[1]