明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 654|回复: 4

[已解答] 点表函数调用问题

[复制链接]
发表于 2015-11-24 17:56 | 显示全部楼层 |阅读模式
;;; 得到曲线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线的对象


 楼主| 发表于 2015-11-24 17:59 | 显示全部楼层
补充,函数功能为,判断pl线端点坐标,将gclst中与端点最近的(x,y值相差在0.1之内)点的z坐标赋值到pl端点坐标的z值,并赋值其他两个计算值。
 楼主| 发表于 2015-11-25 12:26 | 显示全部楼层
求大神帮忙呀
发表于 2015-11-25 13:14 | 显示全部楼层
关注一下,
 楼主| 发表于 2015-11-25 13:17 | 显示全部楼层
已解决,while函数及if函数的括号问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-20 01:28 , Processed in 0.319536 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表