samifox 发表于 2022-7-6 06:15:19

错误:错误的参数类型:stri

你好
 
我不明白为什么有些函数可以用作princ函数的参数,而另一些函数则大喊“error:bad argument type:stringp”。
 
例如,此代码:
 
(defun LineReport ()
(setq ent (car (entsel "\nSelect line object")))
(setq objLine (vlax-ename->vla-object ent))
(alert (strcat
   "This a brief report about the selected line :"
   "\nColor : "
   (vla-get-color objLine)
   "\nLwight : "
   (vla-get-lineweight objLine)
   "\nLayer : "
   (vla-get-layer objLine)

)
)

)
 
谢谢
谢伊

jdiala 发表于 2022-7-6 06:31:33

(vla get color objLine)=整数而不是字符串
 
为什么不使用cond函数来测试objLine是否是一条线?

Lee Mac 发表于 2022-7-6 06:51:05

 
您的代码正在调用alert函数,而不是princ函数;但是,该错误是将非字符串参数传递给strcat函数的结果,如文档中所述,strcat函数只接受字符串参数。
 
任何prin*函数(princ/prin1/print)确实可以用于打印任何数据类型的数据,例如:
参见“显示消息”一节,了解这些功能之间的差异。

neophoible 发表于 2022-7-6 06:54:46

是的,没错。您真的需要在这里调用警报函数吗?一般来说,只要在屏幕上打印就足够了,除非发出某种警告。

samifox 发表于 2022-7-6 07:09:11

 
我怎么知道这个函数返回什么?在vla上按ctrl+F1时,会打开一个ActiveX和VBA帮助参考,其中有许多我不理解的mambo jambo

jdiala 发表于 2022-7-6 07:17:14

 
我帮不了你。值可以是列表、字符串、整数等。
因此,要熟悉这些特性。如果你遇到错误,请访问Lee网站上的错误消息。
 
试试这个:
 
2
页: [1]
查看完整版本: 错误:错误的参数类型:stri