au-s 发表于 2022-7-6 15:01:44

错误:错误的参数类型: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
 
当我在命令提示符中键入命令时,它会工作。。。
真奇怪。。为什么会这样?

Lee Mac 发表于 2022-7-6 15:36:12

可能是内置在text10函数中的问题-如果你可以发布这个单独的函数,我可以看看是否有什么问题?

au-s 发表于 2022-7-6 15:48:54



(defun RegularText ()
(if (not (tblsearch "style" "AIX_ISO"))
   (C:AIXTXT)
))

(defun text5 ()
(command ".style" "" "" "15" "" "" "" "")
)
(defun text10 ()
(command ".style" "" "" "30" "" "" "" "")
)

 
这一切以前都奏效了。。
突然它停止了
并且仅适用于mtext10命令。
mtext1到mtext200工作正常。
 
mtext10只能从命令中工作:不能从菜单中工作。

Lee Mac 发表于 2022-7-6 16:19:25

六羟甲基三聚氰胺六甲醚。。。这太奇怪了。。如果它适用于文本5和文本10,那么它们看起来几乎相同(显然除了30)。
 
嗯,很难判断出哪里出了问题,但我建议您定位变量。
 
发生的错误向我表明,在使用多行文字时,您的一个点选择为零,因此我将定位pt1 pt2,以便在重复函数时不会携带其他值。
 
但我真的看不出还有什么地方会出错。。。
页: [1]
查看完整版本: 错误:错误的参数类型:poin