明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 16752|回复: 35

[已解答] 求曲线转多段线程序……

  [复制链接]
发表于 2014-3-11 15:42 | 显示全部楼层 |阅读模式
10明经币
本帖最后由 Gu_xl 于 2014-3-12 10:18 编辑

一直想要一个可以把曲线转化为多段线的工具,之前找了一个“xgqx2.VLX”(http://bbs.mjtd.com/forum.php?mod=viewthread&tid=68784),很满意,但由于有使用次数限制,所以只能作罢。
后来又找了一个(http://bbs.mjtd.com/forum.php?mod=viewthread&tid=93868),遗憾的是只对样条曲线有效,虽然按楼主的留言做了一些补充,但使用过程中经常出现无效的情况,且由于是以段数来分的,所以长线短线分的段数还要不停手工来试,等于是只能一条条操作,这些都劣于“xgqx2.VLX”。

由于本人是小白,只懂些皮毛中的皮毛,虽然努力尝试过,怎奈能力有限,特此求教。

说正事吧,希望程序能实现一下要求:
                                                  
1、按长度等分曲线,如果可以选择智能分段(自动在弧度大的地方分                                               段较细弧度小的分的较大,显得圆润自然夹点又少)那当然最好了!
2、支持所有曲线(弧线、样条曲线、椭圆、圆),支持框选。
3、可以选择保留或不保留原线段。

最后,衷心感谢大神相助,在明经上学习了不少东西,也提高了工作效率,谢谢了!

最佳答案

查看完整内容

GXL-GETSAMPLET函数见 按弦高限差值回返曲线拟合样本点
发表于 2014-3-11 15:42 | 显示全部楼层
  1. (defun c:tt (/ d ss pl enl)
  2.   (setq d (getreal "\n输入弦高容差<0.5>"))
  3.   (if (null d)
  4.     (setq d 0.5)
  5.   )
  6.   (while (setq ss (ssget '((0 . "*line,arc,circle,ellipse"))))
  7.     (repeat (setq n (sslength ss))
  8.       (setq e (ssname ss (setq n (1- n))))
  9.       (setq pl (GXL-GETSAMPLET e d))
  10.       (setq enl
  11.              (list
  12.                '(0 . "LWPOLYLINE")
  13.                '(100 . "AcDbEntity")
  14.                '(100 . "AcDbPolyline")
  15.                (cons 90 (length pl))
  16.              )
  17.       )
  18.       (setq enl (append enl (mapcar '(lambda (x) (cons 10 x)) pl)))
  19.       (entmake enl)
  20.       (entdel e)
  21.     )
  22.   )
  23.   (princ)
  24. )

GXL-GETSAMPLET函数见 按弦高限差值回返曲线拟合样本点

评分

参与人数 2明经币 +2 金钱 +70 收起 理由
yjr111 + 1 + 50 神马都是浮云
dnedved + 1 + 20 G版出手,神马都是浮云!

查看全部评分

回复

使用道具 举报

发表于 2014-3-11 16:58 | 显示全部楼层
不好意思回答。另外椭圆不拟合的话,怎么搞我也不知道。
回复

使用道具 举报

 楼主| 发表于 2014-3-11 17:26 | 显示全部楼层
mandala 发表于 2014-3-11 16:58
不好意思回答。另外椭圆不拟合的话,怎么搞我也不知道。

明经其实有不少此类程序,有的是功能不全或不稳定,有的则是绑在一个大工具集里面,“xgqx2.VLX”是目前我使用过的最好用的,可惜有限制啊
回复

使用道具 举报

发表于 2014-3-12 09:12 | 显示全部楼层
请修改标题,去掉【Gu_xl】
小心gu版打你屁屁
回复

使用道具 举报

发表于 2014-3-12 09:38 | 显示全部楼层
坛子里似乎有类似的帖子,楼主好好查查应该能有收获   10币来之不易 得省着使
回复

使用道具 举报

发表于 2014-3-12 09:46 | 显示全部楼层
cad  ET自带的flatten就可以了,如果fl不了的如椭圆先偏移一点点(再偏回去),就成一般线了,最后再flatten,完美ok.
回复

使用道具 举报

 楼主| 发表于 2014-3-12 10:44 | 显示全部楼层
freehand8008 发表于 2014-3-12 09:38
坛子里似乎有类似的帖子,楼主好好查查应该能有收获   10币来之不易 得省着使

除了xgqx2.VLX,没发现真正令人满意的,各论坛找了半年了。
回复

使用道具 举报

 楼主| 发表于 2014-3-12 12:56 | 显示全部楼层
Gu_xl 发表于 2014-3-12 11:00
GXL-GETSAMPLET函数见 按弦高限差值回返曲线拟合样本点

G版V5!!!
我把您写的代码和”[size=1em]Gxl-GetSamplet.LSP“分别保存为两个LSP并加载。
体验了一下,十分给力,但也发现点问题
1.圆、椭圆不打断无法使用(错误: 参数类型错误: numberp: nil)
2.样条曲线当弯的很尖锐时会出现这样的情况

放大

再放大


3.所有的对象处理后都自动变为0层,不方便图层管理,如果可以保持原层就好了。

十分感谢G版的支援!!!

本帖子中包含更多资源

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

x

点评

请重新下载Gxl-GetSamplet函数!至于图层的问题,请自己动手修改!  发表于 2014-3-12 13:18
回复

使用道具 举报

发表于 2014-3-12 13:00 | 显示全部楼层
freehand8008 发表于 2014-3-12 09:38
坛子里似乎有类似的帖子,楼主好好查查应该能有收获   10币来之不易 得省着使

老兄,有没那夸张吗?我给你10币你帮忙写个程序或者改个程序?试试?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 10:20 , Processed in 0.212930 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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