找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1090|回复: 14

样条曲线怎么分段?保持线路径不变,一条一条断开就好

[复制链接]

已领礼包: 50个

财富等级: 招财进宝

发表于 2017-12-28 16:12:31 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 君是我的泪 于 2017-12-30 09:44 编辑

spline绘制的样条曲线,如何批量断开,不影响路径和完整
142016zpftaf75qd0p97yy.jpg.thumb.jpg
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 50个

财富等级: 招财进宝

 楼主| 发表于 2017-12-28 16:17:26 | 显示全部楼层
转化为多段线,然后炸开,有用吗?
命令行键入命令:flatten,按提示选择你要转换的样条曲线即可。
注意:flatten命令是Express扩展工具包中的命令,使用前先确认你已经安装了这个扩展工具。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

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

使用道具 举报

已领礼包: 812个

财富等级: 财运亨通

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

使用道具 举报

已领礼包: 394个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 50个

财富等级: 招财进宝

 楼主| 发表于 2017-12-29 08:47:04 | 显示全部楼层

图片上显示的蓝点都断开,但路径是完整的,变成一条一条的弧线
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 406个

财富等级: 日进斗金

发表于 2017-12-29 08:47:47 | 显示全部楼层

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

使用道具 举报

已领礼包: 50个

财富等级: 招财进宝

 楼主| 发表于 2017-12-29 11:36:14 | 显示全部楼层
拓展工具包不对的,FLATTEN一下线太多了 Unnamed QQ Screenshot20171229113334.jpg Unnamed QQ Screenshot20171229113528.jpg
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-12-29 14:00:54 | 显示全部楼层

下面代码,可以断开LINE,POLYLINE,LWPOLYLINE,SPLINE,CIRCLE,ELLIPSE,ARC
断开方式可以选点, 等分,SPLINE 拟合点断开。

  1. (defun c:tt (/ pts)
  2.   (defun _break-pnt ()
  3.     (if (setq
  4.           e (car (xdrx_entsel
  5.                    "\n选择要断开的曲线<退出>:"
  6.                    '((0 . "LINE,ARC,CIRCLE,ELLIPSE,SPLINE,*POLYLINE"))
  7.                  )
  8.             )
  9.         )
  10.       (progn (while (setq pt (getpoint "\n拾取断开点<结束>:"))
  11.                (setq pts (cons pt pts))
  12.              )
  13.              (if pts
  14.                (xdrx_curve_getsplitcurves e pts)
  15.              )
  16.       )
  17.     )
  18.     (princ)
  19.   )
  20.   (defun _break-divide ()
  21.     (if (and (setq
  22.                e (car (xdrx_entsel
  23.                         "\n选择要断开的曲线<退出>:"
  24.                         '((0 . "LINE,ARC,CIRCLE,ELLIPSE,SPLINE,*POLYLINE"))
  25.                       )
  26.                  )
  27.              )
  28.              (setq div (getint "\n输入等分数<退出>:"))
  29.         )
  30.       (progn (xdrx_curve_getsplitcurves
  31.                e
  32.                (setq pts (xdrx_getsamplept e div))
  33.              )
  34.       )
  35.     )
  36.     (princ)
  37.   )
  38.   (defun _break-fit ()
  39.     (if (setq e (car (xdrx_entsel "\n选择要断开的SPLINE<退出>:"
  40.                                   '((0 . "SPLINE"))
  41.                      )
  42.                 )
  43.         )
  44.       (progn
  45.         (if (setq pts (xdrx_getpropertyvalue e "fitpoints"))
  46.           (xdrx_curve_getsplitcurves e pts)
  47.           (progn (xdrx_prompt "\nSPLINE 没有拟合点. 断开失败."))
  48.         )
  49.       )
  50.     )
  51.     (princ)
  52.   )
  53.   (xdrx_begin)
  54.   (if (not #xd_var_global_break_mode)
  55.     (setq #xd_var_global_break_mode "D")
  56.   )
  57.   (xdrx_initget "A S D")
  58.   (if (setq sel (getkword
  59.                   (xdrx_prompt "\n操作方式[选点(A)/等分(S)/拟合点(D)<"
  60.                                #xd_var_global_break_mode
  61.                                ">:"
  62.                                t
  63.                   )
  64.                 )
  65.       )
  66.     (setq #xd_var_global_break_mode sel)
  67.   )
  68.   (cond ((= #xd_var_global_break_mode "A") (_break-pnt))
  69.         ((= #xd_var_global_break_mode "S") (_break-divide))
  70.         ((= #xd_var_global_break_mode "D") (_break-fit))
  71.   )
  72.   (if pts
  73.     (xdrx_prompt "\n如你所愿.")
  74.   )
  75.   (xdrx_end)
  76.   (princ)
  77. )


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

使用道具 举报

已领礼包: 50个

财富等级: 招财进宝

 楼主| 发表于 2017-12-29 15:53:27 | 显示全部楼层
这个好像不用插入xd-lisp-lib.VLX,但别的api包一定要装吧,直接在CAD上可以吗?我看到最后只有xdrx_prompt命令,直接按TT就可以解决了,真厉害
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 50个

财富等级: 招财进宝

 楼主| 发表于 2017-12-29 15:55:56 | 显示全部楼层

又有一个问题,可不可以按多少长度来等分,例如l或者pl全部10m等分,关键是多头怎么办,是不是要发新贴
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-12-29 16:03:46 | 显示全部楼层

你安装XDRX API, xd-lisp-lib.vlx就包含了。不用在单独加载 xd-lisp-lib.vlx了。

你启动CAD,API加载后,会自动加载xd-lisp-lib.vlx 的,屏幕上提示 晓东通用LISP函数库....已经加载。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 50个

财富等级: 招财进宝

 楼主| 发表于 2017-12-29 16:06:30 | 显示全部楼层
其实CAD里本身就自带定数等分,定量等分 Unnamed QQ Screenshot20171229160228.jpg ,但变成一个个点了, Unnamed QQ Screenshot20171229160435.jpg 能定距等分变成线不?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-12-29 16:54:39 | 显示全部楼层


下面,输入距离断开,多个距离用 , 分开

  1. (defun c:tt ()
  2.   (if (and (setq
  3.              e (car (xdrx_entsel
  4.                       "\n拾取要断开的曲线<退出>:"
  5.                       '((0 . "*POLYLINE,SPLINE,ARC,CIRCLE,ELLIPSE,LINE"))
  6.                     )
  7.                )
  8.            )
  9.            (setq pt (getpoint "\n起始点<退出>:"))
  10.            (setq pt (xdrx_curve_getclosestpoint e (trans pt 1 0)))
  11.            (setq dir1 (xdrx_curve_getfirstderiv e pt))
  12.            (setq p2 (XD::Drag:GMove (trans pt 0 1)
  13.                                     "\n指定方向<退出>:"
  14.                                     1
  15.                                     dir1
  16.                                     nil
  17.                                     ""
  18.                     )
  19.            )
  20.            (setq dir2 (xdrx_vector_normalize (mapcar '- (trans p2 1 0) pt)))
  21.            (/= ""
  22.                (setq dists (getstring "\n输入断开距离(多个用,分开)<退出>:"))
  23.            )
  24.       )
  25.     (progn (setq dists (xdrx_string_split dists ",")
  26.                  dists (mapcar 'atof dists)
  27.            )
  28.            (if (not (xdrx_vector_IsCodirectional dir1 dir2))
  29.              (setq dists (mapcar '- dists))
  30.            )
  31.       (if (= (length dists) 2)
  32.         (setq dists (cons 0.0 (cons 0.0 dists)))
  33.       )
  34.       (if (= (length dists) 3)
  35.         (setq dists (cons 0.0 dists))
  36.       )
  37.       (setq pts (xdrx_curve_getpointsatdists e pt dists))
  38.       (xdrx_curve_getsplitcurves e pts)
  39.     )
  40.   )
  41.   (princ)
  42. )


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

使用道具 举报

已领礼包: 50个

财富等级: 招财进宝

 楼主| 发表于 2017-12-30 09:51:35 | 显示全部楼层
本帖最后由 君是我的泪 于 2017-12-30 09:55 编辑

pl,曲线arc可以,怎么把样条曲线,转化为曲线,因为样条曲线不行,你上面写着"*POLYLINE,SPLINE,ARC,CIRCLE,ELLIPSE,LINE",但是实际spline不行,是不是漏写了什么,你好厉害,这么多问题都能解答 Unnamed QQ Screenshot20171230095001.jpg
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-13 06:12 , Processed in 0.362960 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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