此变量*REVCLOUDMAXARCLENGTH在2008版本中不可用。我在谷歌上搜索了一下,发现它是2013年的版本。
只是好奇而已。如果这个变量起作用,AutoCAD怎么知道我的第一个首选项是0.5(这个数字适用于大多数图形,这就是为什么我第一个选择0.5的原因)?我认为可能没有。你同意吗? 它存储在注册表中,因此其值将是您上次使用的值,即使是在另一个图形中。如果你通常使用0.5,那就是它的主要用途。明天我可以给你一个2008年的替代方案。 我快速浏览了一下,看看是否可以找到REVCLOUD的历史,以便了解在*REVCLOUDMAXARCLENGTH之前使用的内容,但没有成功。在没有更多信息的情况下,我使用了一个全局变量convcloudnew:arclength。
(defun convcloudnew ( / al g i ss sse )
(if (setq ss (ssget '((0 . "LINE,*POLYLINE,CIRCLE,ELLIPSE,SPLINE,ARC"))))
(progn
(repeat (setq i (sslength ss))
(setq sse (cons (cdr (entget (ssname ss (setq i (1- i))))) sse))
)
(if (null (setq al (getvar "*REVCLOUDMAXARCLENGTH")))
(if (or (numberp (setq al convcloudnew:arclength))
(setq al (* (getvar "DIMSCALE") 0.5))
)
(setq g T)
)
)
(while al
(command "_.erase" ss "")
(setq ss (ssadd))
(foreach x sse
(command "_.revcloud" "arc" al al "object" (entmakex x) "")
(ssadd (entlast) ss)
)
(if g (setq convcloudnew:arclength al))
(initget 6)
(setq al (getreal (strcat "\nSpecify a different arc length or ENTER to accept the current value < " (rtos al 2 2) " >: ")))
)
)
(princ "\nNo objects selected.")
)
)
顺便说一句,我之所以使用DIMSCALE,是因为你建议使用它。您可以考虑将CANNOSCALEVALUE作为替代方案。 嗨,克林特,
您的代码可以完美地记住活动图形中最后使用的弧长,就像圆角和倒角如何存储最后使用的值一样。然而,我认为我使用“DIMSCALE”的逻辑并非万无一失。由于一些图形即使很大,也没有任何尺寸要求,因此没有人费心设置尺寸比例。在这种情况下,它无助于捕捉dimscale。因此,在对几个图形进行了一些尝试之后,我决定,无论图形的大小如何,也不管在模型空间或图纸空间中进行云处理,我都必须使用默认值0.5。
所以,我刚刚修改了这一行
(setq al (* (getvar "DIMSCALE") 0.5))
到
6
这是可行的。你认为还有什么需要修改的吗? 嗨,克林特,
对我所做的有什么建议吗?
不是shailujp。只有你才能知道该函数将如何使用。如果您发现使用固定值效果最好,请坚持使用它。如果这是您(或其他起草人)经常做的事情,那么您(或起草人)将了解哪些值对不同的绘图比例最有效。 谢谢你,克林特,
我还没有将这个实用程序推广到主lisp中。我一直在等待你对我在几次测试后做的小改动的反馈。我将为我的团队进行测试模式设置,他们将使用大约一周左右,然后他们将提供反馈,如果他们发现任何问题或没有。
我真的很感谢你在这方面的帮助。
非常感谢。
页:
1
[2]