Kenter 发表于 2022-7-6 10:41:27

使用LISP插入对象

我想知道是否有一种方法可以使用LISP脚本将文件中的块插入到autocad图形中。我已经有了一个脚本,可以做很多事情,但我想在某个特定点添加一个通用注释(我们称之为b1)。理想的设置方式是:
 
(命令
“_插入”
从c中的标准点阻塞:
单击“确定”
在b1点插入
)
肯特

CADkitt 发表于 2022-7-6 11:06:05

(定义c:inslogo(/)
(命令“-insert”logo=logo\u new“y”nil)
(普林斯)
)
为此,文件必须位于搜索路径中。Logo\u new是文件名。

Kenter 发表于 2022-7-6 11:28:03

这是我用过的。只是不知道如何在b1处设置启动点。。。
 
(定义C:bn()
(命令“INSERT”“c:\\Users\\Kenter\\Desktop\\Arc”“0,0”“”“”)
(普林斯)
)

Lee Mac 发表于 2022-7-6 11:45:55

另一个例子:
 

(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]
查看完整版本: 使用LISP插入对象