谢谢你的上述指示,艾伦。
尽管添加了“(setvar’osmode 47)”,但我仍然对取消有问题。
昨天我忘了说的一件事是,AutoCAD上出现了一条错误消息:“名为“tempblk”的块已经存在。”
这是我想将块命名为最接近秒的日期的另一个原因,尽管它不像您的解决方案那样令人满意,但它省略了一个步骤,即使用临时块名称。
不需要再进一步了,因为这取决于我学习更多的LISP并尝试解决。
干杯
- ; insert a block make a new block with name + 1
- ; By Alan H Dec 2019 info@alanh.com.au
- (defun blkins (blkname / x temp)
- ;; *error*
- (defun *error* (msg)
- (if (/= msg "Function cancelled")
- (princ (strcat "\nError: " msg))
- )
- (setvar 'osmode 47)
- (princ)
- )
- (if (tblsearch "BLOCK" blkname)
- (progn
- ; (alert "Block of that name already exists\n \nwill temporary rename")
- (command "-rename" "block" blkname "tempblk")
- (setq temp 1)
- )
- )
- (if (= (getenv "UB") nil)
- (setenv "UB" "0")
- )
- (setq x (+ (atoi (getenv "UB")) 1))
- (setenv "UB" (rtos x 2 0))
- (command "-INSERT" blkname (getpoint "\nPick insertion point") 1 "" 0)
- (command "-rename" "block" blkname (strcat blkname "-" (rtos x 2 0)))
- (if (= temp 1)
- (command "-rename" "block" "tempblk" blkname)
- )
- )
|