错误:错误的参数类型:poin
你好我有一个lisp,它以不同的比例书写多行文字。
看起来像这样
(defun C:MTEXT5 (/ oldlay)
(setq oldlay (getvar "clayer"))
(vl-load-com)
(setvar "cmdecho" 0)
(if (not (tblsearch "LAYER" "A-------T2-------B"))
(command "-layer" "M" "A-------T2-------B" "C" "red" "A-------T2-------B" "")
(setvar "clayer" "A-------T2-------B")
) ; end if
(Describe)
(setvar "cmdecho" 0)
(load "K:\\CAD\\AIX-meny-2008\\Lisp\\text\\TextVariables.lsp")
(RegularText)
(text5)
(setvar "cmdecho" 1)
(setq PT1 (getpoint "\n First Point :"))
(setq PT2 (getcorner PT1 "\n Second Point :"))
(initdia)
(command "mtext" PT1 PT2)
(setvar "clayer" oldlay)
); end
在同一个文件中,这些行有20个这样的副本。
差异是(文本5)。我从另一个lisp中获取变量,并仅加载textsize。
现在
每个(textX)都可以工作,只有一个除外。
具有(text10)功能的命令MTEXT10。
如果我通过我的mnu文件(我的菜单)执行它,它会返回以下信息:
错误:错误的参数类型:点:nil
当我在命令提示符中键入命令时,它会工作。。。
真奇怪。。为什么会这样? 可能是内置在text10函数中的问题-如果你可以发布这个单独的函数,我可以看看是否有什么问题?
(defun RegularText ()
(if (not (tblsearch "style" "AIX_ISO"))
(C:AIXTXT)
))
(defun text5 ()
(command ".style" "" "" "15" "" "" "" "")
)
(defun text10 ()
(command ".style" "" "" "30" "" "" "" "")
)
这一切以前都奏效了。。
突然它停止了
并且仅适用于mtext10命令。
mtext1到mtext200工作正常。
mtext10只能从命令中工作:不能从菜单中工作。 六羟甲基三聚氰胺六甲醚。。。这太奇怪了。。如果它适用于文本5和文本10,那么它们看起来几乎相同(显然除了30)。
嗯,很难判断出哪里出了问题,但我建议您定位变量。
发生的错误向我表明,在使用多行文字时,您的一个点选择为零,因此我将定位pt1 pt2,以便在重复函数时不会携带其他值。
但我真的看不出还有什么地方会出错。。。
页:
[1]