使用LISP插入对象
我想知道是否有一种方法可以使用LISP脚本将文件中的块插入到autocad图形中。我已经有了一个脚本,可以做很多事情,但我想在某个特定点添加一个通用注释(我们称之为b1)。理想的设置方式是:(命令
“_插入”
从c中的标准点阻塞:
单击“确定”
在b1点插入
)
肯特 (定义c:inslogo(/)
(命令“-insert”logo=logo\u new“y”nil)
(普林斯)
)
为此,文件必须位于搜索路径中。Logo\u new是文件名。 这是我用过的。只是不知道如何在b1处设置启动点。。。
(定义C:bn()
(命令“INSERT”“c:\\Users\\Kenter\\Desktop\\Arc”“0,0”“”“”)
(普林斯)
) 另一个例子:
(defun c:test ( / block point )
(setq block "test.dwg")
(setq point '(0.0 0.0 0.0))
(if (setq block (LM:ForceBlockDefinition block))
(entmake
(list
(cons 0 "INSERT") (cons 2 block) (cons 10 point)
)
)
(princ "\n** Block not Found **")
)
(princ)
)
;;---------------=={ Force Block Definition }==---------------;;
;; ;;
;;Ensures, if possible, that a block definition is present;;
;;in a drawing. ;;
;;------------------------------------------------------------;;
;;Author: Lee McDonnell, June 2010 ;;
;; ;;
;;Copyright © 2010 by Lee McDonnell, All Rights Reserved. ;;
;;Contact: Lee Mac @ TheSwamp.org, CADTutor.net ;;
;;------------------------------------------------------------;;
;;Arguments: ;;
;;block - block name or filename ;;
;;------------------------------------------------------------;;
;;Returns:Block name, else nil ;;
;;------------------------------------------------------------;;
(defun LM:ForceBlockDefinition ( block / path ext base )
(vl-load-com)
;; © Lee Mac 2010
(setq path(vl-filename-directory block)
ext (vl-filename-extension block)
base(vl-filename-base block))
(and (eq ""ext) (setq ext ".dwg"))
(or(eq "" path) (setq path (strcat path "\\")))
(cond
( (tblsearch "BLOCK" base) base )
( (setq block (findfile (strcat path base ext)))
(command "_.-insert" block) (command) base
)
)
)
页:
[1]