jasonb_880 发表于 2022-7-5 20:06:39

文本输入lisp例程帮助!

你好
 
我已经使用这个LISP例程有一段时间了,但我发现文本的位置令人沮丧,因为我不能确切地告诉它将在哪里输入-我只能选择左下角,希望它不会与我试图标记的图标重叠。
 
有人知道我是否可以在选择放置点之前看到文本并四处移动吗?
 
我基本上用例程标记图标,这样可以节省我的时间,因为它会自动增加下一个数字,所以我所要做的就是点击!
 
(defun c:sdinc()
                       
(setq comcab (getstring "\n Cabinet No <00>? "))
(if (= comcab "")
   (setq comcab "00")
)
(setq panel (getint "\n Panel No <00>?"))
(setq stnum (getint "\nStarting number? "))
(setq label (strcat comcab "/" (itoa panel) "/" (itoa stnum)))
(setq labe2 (strcat "-" comcab "/" (itoa panel) "/"))
(setq label3 (strcat comcab "/" (itoa panel) "/" (itoa stnum) "-" ))
(setq incrnum (getint "\nIncrement numbers by <1>? "))
(if (= incrnum nil)
   (setq incrnum 1))
(setq panelinc 1)
(if (= panelinc nil)
   (setq panelinc 1))

(setq txtht (getreal "\n Set textheight to: "))
(setq placepoint (getpoint "\Select text location: "))
(command "text" placepoint txtht "0" label)
(setq stnum (+ stnum incrnum))
(setq label (strcat comcab "/" (itoa panel) "/" (itoa stnum)))
(setq placepoint (getpoint "\Select text location: "))
(while (/= placepoint nil)
   (command "text" placepoint txtht "0" label)
   (if (= stnum 24)      
   (setq panel (+ panel panelinc)))
   (setq stnum (+ stnum incrnum))
   (if (= stnum 25)
   (setq stnum 1))
   (setq 2ndnum (+ 2ndnum incrnum))
   (if (= 2ndnum 26)
   (setq 2ndnum 2))
(setq label (strcat comcab "/" (itoa panel) "/" (itoa stnum)))
(setq placepoint (getpoint "\Select text location: "))
(if (> stnum 23)
   (setq label (strcat comcab "/" (itoa panel) "/" (itoa stnum))))
)                               
(princ)
)                               
(prompt "\nType >SDINC< to run. ")
 
提前感谢!
杰森

Lee Mac 发表于 2022-7-5 20:48:34

也许可以试试我的递增编号套件程序。

jasonb_880 发表于 2022-7-5 21:09:02

 
绝对天才计划!!
 
这将大大有助于感谢,因为我可以看到放置前的文本。
 
你认为我可以很容易地修改这里的脚本,以确保在前缀中间和后缀之间放置一个/吗?另外,我的典型编号是154/01/01到154/01/24,然后“中间”将增加1,因此下一个数字将是154/02/01到154/02/24,然后是154/03/01到154/03/24。
 
我认为在数字后面的前缀和中间框中输入/可能更容易,并将后缀增加到24,然后重新运行该命令。
 
再次感谢,
杰森
页: [1]
查看完整版本: 文本输入lisp例程帮助!