点表函数调用问题
;;; 得到曲线vla_obj端点表(defun get_endpoints (vla_obj / startpoint endpoint obj_length points point side)
(setq startpoint (vlax-curve-getStartPoint vla_obj)
endpoint (vlax-curve-getEndPoint vla_obj)
obj_length (vlax-curve-getDistAtPoint vla_obj endpoint)
startpoint (get_z startpoint gclst)
endpoint (get_z endpoint gclst)
slope (* (/ (abs (- (nth 2 startpoint) (nth 2 endpoint))) obj_length) 100)
slopestr (strcat (rtos slope 2 3) "%")
side (- (nth 2 startpoint) (nth 2 endpoint))
points (append
(list startpoint)
(list endpoint)
(list slopestr side)
)
)
points
)
;;; 取表中z值
(defun get_z (pt xyzlst / xyz i xx yy)
(setq i 0)
(setq xyz (nth 0 xyzlst))
(while (xyz)
(if (< ((abs (- (nth 0 pt) (nth i xyz))) 0.1))
(if (< ((abs (- (nth 1 pt) (nth (1+ i) xyz))) 0.1))
(progn
(setq pt (list (nth 0 pt) (nth 1 pt) (nth (+ i 2) xyz))
xyz nil
)
)
)
)
(setq i (+ i 3))
(setq xyz (nth i xyzlst))
)
pt
)
经多次调试,以上两个函数存在问题,但无法发现问题,求大神指导,方便的话可以留Q,有尝指导。谢谢!
其中gclst为三维点表,例(3165.46 1266.03 2118.9 1278.06 1190.49 943.907),vla_obj 为pl线的对象
补充,函数功能为,判断pl线端点坐标,将gclst中与端点最近的(x,y值相差在0.1之内)点的z坐标赋值到pl端点坐标的z值,并赋值其他两个计算值。 求大神帮忙呀 关注一下, 已解决,while函数及if函数的括号问题。
页:
[1]