tm20038175 发表于 2011-7-23 00:01:31

已知X,如何得到曲线上Y?

已知二维曲线上X坐标,如何得到曲线上对应的Y坐标?

tm20038175 发表于 2011-7-23 08:25:38

自己顶一个………

Gu_xl 发表于 2011-7-23 08:39:52

回复 tm20038175 的帖子

过点画垂直的xline,计算xline与曲线交点即可,计算完成后删除xline

tm20038175 发表于 2011-7-23 08:51:59

回复 Gu_xl 的帖子

好的,谢谢了。。。。。。

zhynt 发表于 2011-7-23 08:59:16

回复 tm20038175 的帖子


(defun c:x>y (/ )                  
(vl-load-com)
(setq en1 (car (entsel "\n请选择一条曲线:")))       
(while (setq pt1 (getpoint "\n请点取一点以获得X值:"))
    (setq pt2 (polar pt1 (* 0.5 pi) 1))
    (command "_.xline" pt1 pt2 "")
    (setq en2 (entlast))
    (setq pty '())
    (setq AOBJ1        (vlax-ename->vla-object en1)
          AOBJ2        (vlax-ename->vla-object en2)
          IPTS        (vla-intersectwith AOBJ1 AOBJ2 0)
          IPTS        (vlax-variant-value IPTS)
    )
    (if        (> (vlax-safearray-get-u-bound IPTS 1) 0)
      (progn (setq IPTS (vlax-safearray->list IPTS))
             (while (> (length IPTS) 0)
             (setq PTy(cons(cadr IPTS)PTy)
                     IPTS (cdddr IPTS)
             )
             )
      )
    )
    (entdel en2)
    (prompt "\nX值在曲线上相应的Y值列表:")
    (print pty)
    (princ)
)
)

xyp1964 发表于 2011-7-23 09:19:08


;; X→Y
(defun c:test927 ()
(CMDLA0)
(if (setq s1 (car (entsel "\n选择: ")))
    (progn
      (redraw s1 3)
      (while (setq p1 (getpoint "\n基点<退出>: "))
(foreach pt (xyp-Xline-Inters s1 p1 90)
   (xyp-ZB pt 1000 4 nil nil)
)
      )
      (redraw s1 4)
    )
)
(CMDLA1)
)

ljpnb 发表于 2011-7-23 10:22:25

zhynt 发表于 2011-7-23 08:59 static/image/common/back.gif
回复 tm20038175 的帖子

用entmake创建XLINE线可能在取点时没什么感觉,效果会好一点。。

tm20038175 发表于 2011-7-23 11:35:27

回复 zhynt 的帖子

好程序,来的正是时候,及时雨呀,好!。。。。

tm20038175 发表于 2011-7-23 11:36:58

回复 xyp1964 的帖子

你的程序很好,但是工具箱如何下载,如何使用一直找不到帮助文档,没有用上,可惜啊…………

zwqgdhl 发表于 2011-7-23 20:24:22

zhynt的程序很好,对我也很实用。在处理剖面地面线时,以前一直用象Gu_xl 版主说的方法编写的程序或许也可以简化一下了
页: [1]
查看完整版本: 已知X,如何得到曲线上Y?