sunny20102 发表于 2012-12-1 22:29:49

针对99#的补充:
好像涉及到算法的问题.;;---------------------------
;; 曲线分段测试
;; 要求: 中间按模数定尺划分n段
;;       两端对称
;; 公差delta=|两端尺寸-模数|
;;---------------------------
(defunc:test( / )
        (div_curve 12600 1200.0 100.0)
;        (princ)
)
;;---------------------------
;;返回值: (n_mid n_edge mod dim_edge)
;;   n_mid: 中间标准模数分格数量
;;   mod: 标准分格尺寸
;;n_edge: 两边分格数量(偶数)
;;dim_edge: 边部分格尺寸
;;---------------------------
(defundiv_curve(Len mod delta / num left res nn m_edge)
        (setq num (fix (/ Len mod)))
        (setq left (- Len (* num mod)))
        (if (<= left delta);;例如:10.050.05<0.1
          (if (zerop left)
                (setq res (list num mod)) ;;;仅两个元素
                (progn
                  (setq num (- num 2))
                  (setq m_edge (/ (- Len (* num mod)) 2.0))
                  (setq res (list num2modm_edge))
                )
          )
    ;|else|;(if (<= (abs (- left mod)) delta)
                (progn   ;;例如: 9.940.06<0.1
                  (setq num (1- num))
                  (setq m_edge (/ (- Len (* num mod)) 2.0))
                  (setq res (list num2modm_edge))
                )
                (progn
                  (setq n_max (fix (/ Len (- mod delta))))
                  (setq n_max (1+ n_max))
                  (setq num (1- num))
                  (setq nn 2.0)
                  (setq m_edge (/ (- Len (* num mod)) nn))
                  (while
                        (and (> (abs (- m_edge mod)) delta)
                             (< nn n_max)
                        )
                        (setq num (1- num))
                        (setq m_edge (/ (- Len (* num mod)) nn))
                        (setq nn (+ 2 nn))
                  )
                  (setq nn (fix (- nn 2)))
                  (setq res (list num nnmodm_edge))       
                )
          )
        )
        res
)
;;---------------------------
;;---------------------------上面的while 循环有问题,贴上来,希望帮忙解决

sachindkini 发表于 2012-12-1 22:30:42

dear sir,

good

胆小鬼39 发表于 2012-12-2 17:55:48

看看G板的程序

yuanziyou 发表于 2012-12-26 09:41:15

学习源代码,每天进步一点点

ddisddis 发表于 2013-1-4 09:00:31

谢谢楼主分享

cxs259 发表于 2013-1-4 09:32:12

G版程序一定要看 ,学习

dbx511 发表于 2013-1-4 21:29:30

看看效果如何!

77023570 发表于 2013-1-5 00:01:01

我来好好学习一下,谢谢了

yjycad 发表于 2013-1-5 21:58:02

正需要,学习学习!

ww5w 发表于 2013-1-6 14:25:00

Gu_xl 发表于 2012-3-26 18:59 static/image/common/back.gif
;;等分曲线,返回点坐标
;;参数 Curve = 曲线图元名 p1 = 曲线上第一点 p2 = 曲线上第一点
;;   Flag ...

请教一下,怎么让pts直接以点显示在线上?谢谢
页: 1 2 3 4 5 6 7 8 9 10 [11] 12 13 14 15 16 17 18 19 20
查看完整版本: 能否根据起点终点定长定距等分曲线?