明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: tm20038175

能否根据起点终点定长定距等分曲线?

  [复制链接]
发表于 2012-10-7 12:44:50 | 显示全部楼层
强烈围观中!!
发表于 2012-10-7 21:38:48 | 显示全部楼层
呵呵,太感谢了,真的很不错~~
发表于 2012-10-8 11:07:03 | 显示全部楼层
回复个看看高手如何处理的!
发表于 2012-10-12 20:47:53 | 显示全部楼层
顶上顶上~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
发表于 2012-10-22 10:43:16 | 显示全部楼层
这里面包含定距等分吗?  
发表于 2012-10-22 11:50:28 | 显示全部楼层
好东西得顶顶!
发表于 2012-10-23 08:35:58 | 显示全部楼层
曲线和直线的等分常见的
发表于 2012-11-27 21:45:50 | 显示全部楼层
向版主学习
发表于 2012-12-1 22:22:22 | 显示全部楼层
定距等分的问题好像没有解决完美
新问题:
       一条线按照给定的尺寸划分n段, 剩余的首尾各半,但是有个前提:首尾的分段尺寸必须和给定的尺寸在一个允差内。文字表达不清,借用一个实例说明:
线长126000 , 要求中间的尺寸为1200, 首尾分段尺寸与1200的允差为100;
那么1200的几段,首尾的分段尺寸和数量各多少,
  1200 x 4 + 1300 x 3 x 2  即满足要求
发表于 2012-12-1 22:29:49 | 显示全部楼层
针对99#的补充:
好像涉及到算法的问题.
  1. ;;---------------------------
  2. ;; 曲线分段测试
  3. ;; 要求: 中间按模数定尺划分n段
  4. ;;       两端对称
  5. ;; 公差delta=|两端尺寸-模数|
  6. ;;---------------------------
  7. (defun  c:test( / )
  8.         (div_curve 12600 1200.0 100.0)
  9. ;        (princ)
  10. )
  11. ;;---------------------------
  12. ;;  返回值: (n_mid n_edge mod dim_edge)
  13. ;;   n_mid: 中间标准模数分格数量
  14. ;;     mod: 标准分格尺寸
  15. ;;  n_edge: 两边分格数量(偶数)
  16. ;;dim_edge: 边部分格尺寸
  17. ;;---------------------------
  18. (defun  div_curve(Len mod delta / num left res nn m_edge)
  19.         (setq num (fix (/ Len mod)))
  20.         (setq left (- Len (* num mod)))
  21.         (if (<= left delta);;例如:10.05  0.05<0.1
  22.             (if (zerop left)
  23.                 (setq res (list num mod)) ;;;仅两个元素
  24.                 (progn
  25.                     (setq num (- num 2))
  26.                     (setq m_edge (/ (- Len (* num mod)) 2.0))
  27.                     (setq res (list num  2  mod  m_edge))
  28.                 )
  29.             )
  30.     ;|else|;(if (<= (abs (- left mod)) delta)
  31.                 (progn   ;;例如: 9.94  0.06<0.1
  32.                     (setq num (1- num))
  33.                     (setq m_edge (/ (- Len (* num mod)) 2.0))
  34.                     (setq res (list num  2  mod  m_edge))
  35.                 )
  36.                 (progn
  37.                     (setq n_max (fix (/ Len (- mod delta))))
  38.                     (setq n_max (1+ n_max))
  39.                     (setq num (1- num))
  40.                     (setq nn 2.0)
  41.                     (setq m_edge (/ (- Len (* num mod)) nn))
  42.                     [b](while
  43.                         (and (> (abs (- m_edge mod)) delta)
  44.                              (< nn n_max)
  45.                         )
  46.                         (setq num (1- num))
  47.                         (setq m_edge (/ (- Len (* num mod)) nn))
  48.                         (setq nn (+ 2 nn))
  49.                     )[/b]
  50.                     (setq nn (fix (- nn 2)))
  51.                     (setq res (list num nn  mod  m_edge))       
  52.                 )
  53.             )
  54.         )
  55.         res
  56. )
  57. ;;---------------------------
  58. ;;---------------------------
上面的while 循环有问题,贴上来,希望帮忙解决
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-4-21 18:15 , Processed in 0.183228 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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