【发布时间】:2019-07-11 09:37:52
【问题描述】:
我是 autolisp 的新手并设置了我的第一个宏。我想创建一个矩形,用一些居中的文本标记它,然后将两个实体转换为一个块(这是为了优化将打包项目加载到预告片中)。
我已经成功构建了矩形,但我被困在 mtext 部分。这是我到目前为止所做的:
(defun c:caja ()
;Switch OFF System Variables
(setvar "osmode" 0)
;Switch OFF snap
;(setvar "blipmode" 0)
;Switch OFF Blipmode
*******************************************************
;User Inputs
(setq pt1 (getpoint "\nSelect start point: "));lower left corner
(setq Long (getdist "\nLength m : "))
(setq Ancho (getdist "\nWidth : "))
;(setq Alto (getdist "\nHeight : "))
;(setq Peso (getdist "\nWeight : "))
*******************************************************
(setq pt2 (polar pt1 0 Long )) ;lower right corner
(setq pt3 (polar pt2 (* pi 0.5) Ancho));upper right corner
*******************************************************
(command"rectang" pt1 pt3"")
(command "mtext" "!pt1" "!pt3" "potato")
执行最后一行代码时,我得到:
无效点。 ;错误:功能取消。
然而,autocad 让我继续处理 mtext 命令并要求我“指定第一个角”。如果我在那里输入 !pt1 就可以了。
我的理解是,在 autolisp 中,我必须在引号 "" 之间写下我通常会在命令提示符下键入的每个答案,所以我不知道自己做错了什么。
【问题讨论】: