zhaosujun 发表于 2002-11-1 11:24:00

求助

;;;-----------------------------------------------------
;;;计算线加总长度
;;;-----------------------------------------------------
(defun C:LENOF (/ CURVE TLEN SS N SUMLEN)
(vl-load-com)
(setq SUMLEN 0)
(setq SS (ssget '((0 . "CIRCLE,ELLIPSE,LINE,*POLYLINE,SPLINE,ARC"))))
(setq N 0)
(repeat (sslength SS)
    (setq CURVE (vlax-ename->vla-object (ssname SS N)))
    (setq TLEN (vlax-curve-getdistatparam
CURVE
(vlax-curve-getendparam CURVE)
       )
    )
    (setq SUMLEN (+ SUMLEN TLEN))
    (setq N (1+ N))
)
(print (strcat "总长度: " (rtos SUMLEN 2 5)))
(princ)
)
在command:下键入(print sumlen)返回为nil,但在上程序加(setq j 2)在command:下键入(print j)返回为2 2。这是为什么?

leeyeafu 发表于 2002-11-1 11:38:00

在你的程序中sumlen是函数lenof()的局部变量......

也就是说,sumlen只是在lenof()函数中存在,当lenof()函数返回后,sumlen变量就不存在了。
页: [1]
查看完整版本: 求助