这个提示什么意思,该怎样改?
本帖最后由 tianyuan 于 2011-6-10 08:52 编辑我下载了关于沿曲线标注桩号的程序,但在运行时提示“; 错误: no function definition: VLAX-CURVE-GETPOINTATDIST”不知什么意思,该怎样改写呢?先谢了。程序如下:
(defun c:ezhbz ()
(setvar "cmdecho" 0)
(setq os (getvar "osmode"))
(setvar "osmode" 0)
(setq str_2 (strcat "\n给定文字高度<" (rtos (getvar "textsize") 2) ">:"))
(setq th (getreal str_2))
(if (= th nil) (setq th (getvar "textsize")))
(if (setq en (car (entsel "\n选择路径曲线:")))
(redraw en 3)
(*error* "\n没有选到曲线!")
)
(if (= nil (setq dist (getreal "\n给定间距<50m>:"))) (setq dist 50.0))
(setq nn 1)
(while
(setq pt1 (vlax-curve-getPointAtDist en (* nn dist)))
(setq zhz (* nn dist))
(if (< zhz 1000.0) (setq str_1 (strcat "K0+" (rtos zhz 2 3) "m")))
(progn
(setq nn1 (fix (/ zhz 1000.0)))
(setq nn2 (- zhz (* 1000.0 nn1)))
(setq str_1 (strcat "K" (rtos nn1 2) "+" (rtos nn2 2 3) "m"))
(if (= nn2 0.0) (setq str_1 (strcat "K" (rtos nn1 2) "+000m")))
)
)
(setq ang (a-get-Angle en pt1))
(setq pt2 (polar pt1 (+ (/ pi 2) ang) (* th 8)))
(command "line" pt1 pt2 "")
(setq ang2 (r2d (angle pt2 pt1)))
(command "text" "bl" pt2 th ang2 str_1 )
(setq nn (1+ nn))
)
(redraw en 4)
(setvar "osmode" os)
(princ)
)
;切线角度pt-ang
(defun a-get-Angle (ename point / p1 v1 pt-ang)
(setq v1 (vlax-curve-getfirstderiv
(vlax-curve-getparamatpoint ename point)
)
p1 (mapcar '+ point v1)
pt-ang (angle point p1)
)
pt-ang
)
(defun c:ezhbz ()
(vl-load-com) ; add this line
.... 意思是没有“VLAX-CURVE-GETPOINTATDIST”函数定义。
开头加上
(vl-load-com)
还是不行,命令: EZHBZ
给定文字高度<0.2000>:6
选择路径曲线:
给定间距<50m>:10
; 错误: no function definition: R2D 本帖最后由 zhynt 于 2011-6-9 16:42 编辑
你的这个程序不全,缺少函数定义,有可能是作者在其他的地方定义的。
试试在最后附上:
(defun r2d (ang)
(* (/ ang PI) 180)
) 感谢分享程序! Ok,在大家的帮助下这个程序终于可以用了,谢谢!
页:
[1]