铆钉 发表于 2004-5-29 14:07:00

请各位斑竹给瞧瞧病

(defun ok_VVV (/ HOLDANG ENAME VL-OBJ X P PX1 JANG) ;HOLDOSMODE)<BR>       (vl-load-com)<BR>       (setq HOLDORTH (getvar "orthomode"))<BR>       (setq HOLDANG (/ (* (getvar "snapang") 180) pi))<BR>       (setq ENAME       (car (entsel "\n拾取天桥路线: "))<BR>        VL-OBJ (vlax-ename-&gt;vla-object;|将 AutoLISP 类型的对象名转换为 VLA 对象|; ENAME)<BR>       )<BR>       (setq zxzhs (getdist (vlax-curve-getstartpoint VL-OBJ) "\n点取天桥中心桩号:"))<BR>       (setq cm (getvar "cmdecho"))<BR>       (setq os (getvar "osmode"))<BR>       (setvar "cmdecho" 0)<BR>       (setvar "osmode" 0)<BR>       (setq y (vlax-curve-getDistAtPoint VL-OBJ<BR>                               (vlax-curve-getclosestpointto VL-OBJ<BR>                                               (vlax-curve-getpointatparam VL-OBJ<BR>                (vlax-curve-getparamatdist VL-OBJ zxzhs<BR>                       ;|(getdist (vlax-curve-getstartpoint VL-OBJ) "\n给定点:"))|;<BR>                       )))))<BR>       (setq yy (+ y 20))<BR>       (setq x (vlax-curve-getparamatpoint VL-OBJ;返回曲线在指定点的参数<BR>                               (setq P (vlax-curve-getclosestpointto VL-OBJ;返回曲线上离指定点最近的点(在 WCS 上)<BR>                                                       (vlax-curve-getpointatparam VL-OBJ;返回曲线上具有指定参数值的点<BR>                        (vlax-curve-getparamatdist VL-OBJ yy;返回距曲线开始点为指定距离的曲线参数<BR>                               ))))))<BR>       (setq PX1 (vlax-curve-getfirstderiv;|返回曲线在指定位置的一阶导数(在 WCS 中)|; VL-OBJ X))<BR>       (setq JANG (angle '(0 0 0) PX1))<BR>       (command "_.snapang" (/ (* JANG 180) pi))<BR>       (setvar "orthomode" 1)<BR>       (command "_.line" P PAUSE "")<BR>       (setvar "orthomode" HOLDORTH)<BR>       (setvar "snapang" 0)<BR>       (setvar "osmode" os)<BR>       (setvar "cmdecho" cm)<BR>       (princ)<BR>)



我这个程序是这样的我需要取得曲线上一个点到起点的沿曲线的曲线长度后,再换算出比此点的曲线长长一个值的曲线上的点,并在求出点绘制一条垂线,垂线长度是计算得来,并且两侧都有

无痕 发表于 2004-5-29 14:16:00

垂线长度是计算得来


来不及细看,这个计算方程(方法)是什么?

铆钉 发表于 2004-5-29 14:19:00

我根据填土高度来计算占地宽厚再画出占地线


还有就是在(setq y (vlax-curve-getDistAtPoint VL-OBJ<BR>                               (vlax-curve-getclosestpointto VL-OBJ<BR>                                               (vlax-curve-getpointatparam VL-OBJ<BR>                (vlax-curve-getparamatdist VL-OBJ zxzhs<BR>)))))


中我得到的曲线长度为两点直线距离


我怎样才可以得到曲线距离

无痕 发表于 2004-5-29 14:23:00

两个 vlax-curve-getDistAtPoint       (最好是vlax-curve-getDistAtparam)相减得曲线两点间实际长度

铆钉 发表于 2004-5-29 14:24:00

我需要曲线长度

meflying 发表于 2004-5-29 14:27:00

程序过程很乱。。。   (vlax-curve-getpointatparam
    VL-OBJ
    (vlax-curve-getparamatdist...这样得出的点肯定在曲线上。。。还要再vlax-curve-getclosestpointto做什么?而且你开头就是通过距离来求一些东西,最后又是得出距离,这个过程好象等于什么都没做看不明白,你不要以程序过程来说明,你以你的要求来说明一下你到底要做什么?
输入哪些数据,输出什么

铆钉 发表于 2004-5-29 14:28:00

(setq y       (vlax-curve-getDistAtParam VL-OBJ<BR>                (vlax-curve-getparamatdist VL-OBJ zxzhs;返回距曲线开始点为指定距离的曲线参数 )))

meflying 发表于 2004-5-29 14:30:00

这个不用你解释,是想问你,你到底想做什么?你说的过程看不明白(不是指程序)

铆钉 发表于 2004-5-29 14:32:00

我需要在曲线上点取一个点


然后取得这个点到起点的距离后


再给取得的距离机上一段距离后


求出这个点再在这个点画一条垂线

meflying 发表于 2004-5-29 14:42:00

1、取的点到起点的距离是直线距离还是沿曲线距离?


2、机上是什么东西?这个距离又是什么距离,给出的这个距离和求出的点是什么关系?
页: [1] 2
查看完整版本: 请各位斑竹给瞧瞧病