找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 685|回复: 13

[求助] [求助]:如何将多义线按距等分并打断?

[复制链接]
发表于 2004-4-7 22:32:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
如何将多义线按距等分并打断?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-4-7 23:20:43 | 显示全部楼层
程序代码如下:

[program]
(defun c:dvp (/ obj piece plen ptlst dis npt)
  (setq        obj   (vlax-ename->vla-object (setq en (car (entsel "\n选择多义线: "))))
        piece (getint "\n分段数: ")
        plen
              (vlax-curve-getdistatparam obj (vlax-curve-getendparam obj))  ;已作修改
        dis  0
  )
  (repeat (1- piece)
    (setq dis        (+ dis (/ plen piece))
          npt        (vlax-curve-getpointatdist obj dis)
          ptlst        (cons npt ptlst)
    )
  )
(foreach pt ptlst
    (vl-cmdf "break" (list en pt) pt)
  )
(princ)
)
[/program]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-8 00:45:20 | 显示全部楼层
plen
建议用param获得
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-8 07:45:18 | 显示全部楼层
2楼:
1. 使用DIVIDE更简单些
2. 最好开始加入 (SETVAR "OSMODE" 0), 否则容易出错.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-8 08:19:18 | 显示全部楼层
最初由 陌生人 发布
[B]plen
建议用param获得 [/B]


我是初学active类函数,还不太懂,请问用param的好处是?

lsjjm:您说的用divide是分段后再搜集点位的办法吗?怎么会更简单呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2004-4-8 08:26:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
最初由 841594 发布
[B]

我是初学active类函数,还不太懂,请问用param的好处是?

lsjjm:您说的用divide是分段后再搜集点位的办法吗?怎么会更简单呢? [/B]


对曲线来说,点有可能重合,就是曲线上不同位置的点可能重合,比如曲线自交,比如圆的起点和终点。如果用 getdistAtPoint 就可能得不到正确结果。

而参数PARAM对曲线,是唯一的,闭合的、自交的曲线重合的点的参数是不同的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-4-8 08:36:11 | 显示全部楼层
谢谢晓东指点。

程序的plen部分改了,看来如果均分点正好在曲线的重合点上,还是可能有问题。不过这个比较难改一点。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-8 08:46:02 | 显示全部楼层
最初由 841594 发布
[B]...lsjjm:您说的用divide是分段后再搜集点位的办法吗?怎么会更简单呢? [/B]


起ma程序可以少几行.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-8 08:53:34 | 显示全部楼层
最初由 lsjjm 发布
[B]

起ma程序可以少几行. [/B]


贴chu来看看如何?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-8 10:47:21 | 显示全部楼层
最初由 841594 发布
[B]贴chu来看看如何? [/B]

(defun c:test ()
  (setq a (car (entsel "\nPick Pline: ")))
  (setq num (getint "\nNumber of divide: "))
  (vl-cmdf "divide" a num)
  (setq pp (ssget "x" '((0 . "POINT"))))
  (setq n 0)
  (while (< n (sslength pp))
    (setq pt (cdr (assoc 10 (entget (ssname pp n)))))
    (vl-cmdf "break" (list a pt) pt)
    (setq n (1+ n))
  )
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-8 11:02:03 | 显示全部楼层
最好不要用(ssget "x" '((0 . "POINT"))))的方法,受不同图纸的客观因素影响太大~~~
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-8 11:15:49 | 显示全部楼层
最初由 snsj 发布
[B]最好不要用(ssget "x" '((0 . "POINT"))))的方法,受不同图纸的客观因素影响太大~~~ [/B]



只是提出一种思路和方法. 根据需要可以:(ssget  '((0 . "POINT")))....
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-8 13:03:23 | 显示全部楼层
LSJJM的程序的确看上去简捷些,但因为有COMMAND调用,运行速度未必快。除了11楼的问题之外别忘了删掉辅助点。
在VLISP出现以前,这可能是最简捷的方法了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2009-5-7 12:36:05 | 显示全部楼层
很好啊!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-25 22:24 , Processed in 0.416973 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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