帮助制作字符串
大家好。我在构造字符串时有点麻烦。我的代码运行得很好,除了一件小事。我希望字符串的中间部分是一个变量,由用户在代码的前面设置,或者读取另一个用户变量。以下是我目前的代码:
(defun C:titld (/ strRevv )
;'(vl-load-com)
(SETQ RV (GETVAR "USERI5"))
(IF (= RV 0)(setVAR "USERI5" (getint "\nEnter Current Revision Number: ")))
(setq pt (getpoint "\Select Insertion Point: "))
(setq strRevv (getvar "useri5"))
(setq date (strcat "%<\\AcSm SheetSet.REV " "04" " DATE \\f \"%tc1\">%"))
(setq desc (strcat "%<\\AcSm SheetSet.REV " "04" " DESCRIPTION \\f \"%tc1\">%"))
(setq initial (strcat "%<\\AcSm SheetSet.REV " "04" " INITIALS \\f \"%tc1\">%"))
;(setq date (strcat "rev " strrevv " INITIALS"))
(COMMAND "-insert" "rev1t40-d" pt "" "" "" strrevv date desc initial)()
)
请注意,在每个日期、描述、初始行中都有“04”。我希望能够使用存储在strRevv变量中的值,并从该数字中生成字符串。这可能吗?
提前感谢您的时间! 对于这个字符串部分,您可以替换为
(getint ...... )
具有
(getstring ......)
除非您要求它是整数,在这种情况下,您可以使用
(rtos <integer value> 2 0)
至于setvar;你不能用SETQ代替SETVAR吗?存储变量。如果在调用此函数之前设置,则始终可以使用全局变量。
希望这有帮助,
索利弗 感谢您的超快回复!事实上,我在发布这篇文章后大约10秒就找到了答案。至于SETVAR,我需要使用它,因为我对其他命令也使用相同的值。
我试图将一个整数粘贴到字符串中,但autocad不喜欢它,所以我在其中添加了一行(itoa),以及一个IF来检查数字,如果数字小于10,则以零作为前缀。
非常感谢您抽出时间回复!
页:
[1]