找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 714|回复: 13

[求助] [求助]:如何批量将样条曲线转换成多段线!急!急!

[复制链接]
发表于 2004-10-22 09:10:29 | 显示全部楼层 |阅读模式

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

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

×
由于本不太懂编写LSP文件,所以发贴希望名位大侠能帮帮忙!在此先谢啦!
我想把一批样条曲线转换成多段线!
我这有一个小程序,只能转单条线,希望各位大侠能帮我改一改!然后发上来
(defun c:pl2 ()
  (vl-load-com)
  (setq mode1 (getvar "osmode"))
  (setvar "osmode" 0)
  (setq ent (entsel))
  (setq ent1 (car ent))
  (setq curve-obj (vlax-ename->vla-object (car ent)))
  (setq leng (vlax-curve-getDistAtParam
               curve-obj
               (vlax-curve-getEndParam curve-obj)
             )
  )
(setq pt1 (vlax-curve-getStartPoint
               curve-obj )
        pt3 (vlax-curve-getEndpoint curve-obj)
             )
(setq m (getreal "间隔"))
  (setq n m)
  (command "pline")
  (command pt1)
  (while (< n leng)
    (setq pt2 (vlax-curve-getpointatdist curve-obj n))
    (command pt2)
    (setq n (+ n m))
    )
  (command pt3)
  (command "")
  (command)
  (command "erase" ent1 "")
  (princ)
  (setvar "osmode" mode1)
)
这是一个重画多段线后删掉原来的样条曲线!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-10-22 09:51:08 | 显示全部楼层
这里有个 可以设定转换精度,能根据曲线弯曲程度动态调整点的密度
但判断速度和减少点数的算法正在修改,目前效率不高,先给个用用。
命令名称  TPL
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2004-10-22 15:26:23 | 显示全部楼层
;;;|样条曲线到多义线
;;;|spl-pl
(defun c:spl-pl (/ pt ent i n ss)
  (setq ss (ssget '((0 . "SPLINE")))n 0)
  (repeat (sslength ss)     
  (setq pt(ACET-GEOM-SPLINE-POINT-LIST(setq ent(ssname ss n))nil))
(command "pline" (foreach i pt (command i)))
  (command ".erase" ent "")
    (setq n(1+ n))
    )(princ)
  )


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

使用道具 举报

发表于 2004-10-22 15:54:06 | 显示全部楼层
需要有ET扩展工具的支持,CAD2004/2005安装文件中都自带有ET扩展工具的安装,如果是2002可以在论坛下载ET扩展工具
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2004-10-22 16:06:18 | 显示全部楼层
http://www.xdcad.net/forum/showthread.php?threadid=249365
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-10-22 16:43:24 | 显示全部楼层
上一个没有用!效果不理想
我试了这个
;;;|样条曲线到多义线
;;;|spl-pl
(defun c:spl-pl (/ pt ent i n ss)
  (setq ss (ssget '((0 . "SPLINE")))n 0)
  (repeat (sslength ss)     
  (setq pt(ACET-GEOM-SPLINE-POINT-LIST(setq ent(ssname ss n))nil))
(command "pline" (foreach i pt (command i)))
  (command ".erase" ent "")
    (setq n(1+ n))
    )(princ)
  )

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

使用道具 举报

发表于 2004-10-22 17:28:09 | 显示全部楼层
错误:no function definition: ACET-GEOM-SPLINE-POINT-LIST 是因为你没有安装ET扩展工具,安装好ET扩展工具后自然就能用了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2004-10-22 19:46:36 | 显示全部楼层
;;;|样条曲线到多义线
;;;|spl-pl
(defun c:spl-pl (/ pt ent i n ss)
(setq ss (ssget '((0 . "SPLINE")))n 0)
(repeat (sslength ss)
(setq pt(ACET-GEOM-SPLINE-POINT-LIST(setq ent(ssname ss n))nil))
(command "pline" (foreach i pt (command i)))
(command ".erase" ent "")
(setq n(1+ n))
)(princ)
)
这个程序转出来怎么就变成直线,
但我还要保持原来的样子,
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2004-10-22 22:11:32 | 显示全部楼层
最初由 梦断江南 发布
[B]你可以用pedit/fit [/B]

要能用它我早用啦,也就不用这么麻烦啦!不过还得谢你!
希望多发布意思!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-27 13:48 , Processed in 0.326638 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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