我忘了命令和不能
我正在使用以下代码:(setq DimSty (getvar 'dimstyle))
然而,我的cond/if/then/etc需要字符串格式。有一个命令将其保存为字符串格式,但我丢失了它,找不到它。
帮助
谢谢 难道你不知道。。。发布后不到一分钟,我发现这很管用:
(vl-load-com)
(setq activedoc (vla-get-activedocument(vlax-get-acad-object)))
(setq DimSty (vla-item(vla-get-dimstyles activedoc) (strcat (getvar 'dimstyle))))
嗯,对我来说,dimstyle已经是文本了:
因此,使用您的代码,您可以签入if语句,因此:
通常,在字符串上使用eq而不是=更好,尽管有时两种方式都可以。我只是经常使用情商,因为我不记得什么时候“不”使用=。由于“DimSty”不等于“DimSty”,所以我也使用了strcase来转换为大写。
无论如何,如果您的意思是要检查与模式匹配的内容,那么请查看wcmatch。 这将为您提供当前DimStyle的ActiveX对象。你能提供更多关于你想要实现什么的信息吗? 我拉取当前的dimstyle,保存到变量(DimSty),更改dimstyle变量,然后将其保存回自身。问题是(getvar的dimstyle)的类型不正确
(vla-CopyFrom DimSty activedoc)
如果我在上一篇文章中没有使用代码,我会得到:
bad argument type: VLA-OBJECT "American"
“American”是当前dimstyle的名称。
一旦我使用了我发布的长代码,一切都很好。现在,我还可以使用if/then中的DimSty来与字符串值进行比较,这在以前也不起作用。
我尝试了strcase函数,但没有效果。
我希望我有道理。 我不理解为什么它需要strcat函数,因为它只组合了多个字符串,这意味着(getvar的dimstyle)返回一个字符串。但是没有它它就不能工作,我得到了VLA-OBJECT错误。这对我来说没有意义。
但是它正在工作。:/ 出于好奇,这里有一个口吃:
6 在代码中使用strcat确实是不必要的。
另一种方式:
7 要简单得多。
非常感谢。
-李·罗伊-
页:
[1]