明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3014|回复: 11

[提问] 求一个线均分的工具(类似divide)

[复制链接]
发表于 2013-5-31 11:44 | 显示全部楼层 |阅读模式
2明经币
对象:多线或线
输入:一个数值n
执行后:多线每一段(或线)等分,份数=ceil(每一段长度/n),如ceil(900/200)=5

附件: 您需要 登录 才可以下载或查看,没有账号?注册
发表于 2013-5-31 20:33 | 显示全部楼层

先将曲线原位复制,再在2点打断,
再用cad的divide命令和measure命令即可满足要求
使用时先设置好pdmode和pdsize,或用块(此回答明经里面有不知道是不是你想要的)
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=92651
回复

使用道具 举报

发表于 2013-5-31 20:44 | 显示全部楼层
回复

使用道具 举报

发表于 2013-5-31 21:03 | 显示全部楼层
(defun yjp-df-obj(df-obj jd-dis / i obj-length pt pt-list)
  (setq obj-length(Vlax-Get df-obj 'Length ))
  (setq i 0 pt-list '())
  (repeat (1+ (fix (/ obj-length jd-dis)))
    (setq pt(vlax-curve-getPointAtDist df-obj (* jd-dis i)))
    (setq pt-list(cons pt pt-list))
    (setq i(1+ i))       
  )
  (setq pt-list (reverse (cons (car (reverse (yjp-lw-pt df-obj)))  pt-list)))
)
;按距离等分
回复

使用道具 举报

发表于 2013-6-1 09:11 | 显示全部楼层
yjpzc 发表于 2013-5-31 21:03
(defun yjp-df-obj(df-obj jd-dis / i obj-length pt pt-list)
  (setq obj-length(Vlax-Get df-obj 'Len ...

请提供函数:yjp-lw-pt,谢谢!
回复

使用道具 举报

发表于 2013-6-1 09:22 | 显示全部楼层
最后一句可以去掉  我忘记去掉了 最后一个最多段线节点坐标
(defun yjp-lw-pt(df-obj / lst lw-name a)
  (setq lw-name  (entget (vlax-vla-object->ename df-obj)))
  (setq lst '())
  (foreach  a lw-name
            (if (= (car a) 10)
            (if (= (length (cdr a)) 3)
                (setq lst (cons (cdr a) lst))
                (setq lst (cons (append (cdr a) '(0.0)) lst))
              )
         )
    )
  (setq lst (reverse lst))
)
回复

使用道具 举报

发表于 2013-6-1 09:23 | 显示全部楼层
(defun yjp-df-obj(df-obj jd-dis / i obj-length pt pt-list)
  (setq obj-length(Vlax-Get df-obj 'Length ))
   (setq i 0 pt-list '())
   (repeat (1+ (fix (/ obj-length jd-dis)))
     (setq pt(vlax-curve-getPointAtDist df-obj (* jd-dis i)))
     (setq pt-list(cons pt pt-list))
     (setq i(1+ i))        
  )
  pt-list
)
回复

使用道具 举报

发表于 2013-6-1 09:31 | 显示全部楼层
yjpzc 发表于 2013-6-1 09:23
(defun yjp-df-obj(df-obj jd-dis / i obj-length pt pt-list)
  (setq obj-length(Vlax-Get df-obj 'Len ...

万分感谢!
回复

使用道具 举报

 楼主| 发表于 2013-6-5 10:07 | 显示全部楼层
多谢楼上各位!
回复

使用道具 举报

 楼主| 发表于 2013-6-5 10:19 | 显示全部楼层
本帖最后由 doro 于 2013-6-5 10:23 编辑

按楼上提供的函数自己摸索下,还有就是我没有表述清楚,重新上个图

图中 n=400
380=1900/ceil(1900/400)
309=1234/ceil(1234/400)

函数ceil(z): 返回 ≥ z 的最小整数。
就是以最接近n的一个值等分各线段

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-25 18:28 , Processed in 0.276265 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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