我快速浏览了一下,看看是否可以找到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作为替代方案。 |