找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2686|回复: 12

[求助] 双向偏移增强优化版,大师们看看能实现不?

[复制链接]
发表于 2013-11-27 23:50:09 | 显示全部楼层 |阅读模式

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

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

×
还是看图说问题吧,如下图左边是偏移前,右边是偏移后效果。对T字形 T型,十字型,以及下面的围合线都能实现双向偏移,删除源线,自动裁剪的效果。(偏移默认值,记忆上次值)  :      (最下面围合的图形可能是单独处理的,外框线是往内偏移的,框内线还是双向偏移的)。根据eachy大师的单线边窗的帖子,触发想起这些功能的 ,图片看不清楚的,下面有上传的文件。
111.jpg
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
 楼主| 发表于 2013-11-27 23:53:14 | 显示全部楼层
本帖最后由 --@----- 于 2013-11-28 00:00 编辑

CAD示例文件 下载 (T字型,L字型,十字型线,打错了个字)

示例CAD.zip

22.68 KB, 下载次数: 19, 下载积分: D豆 -1 , 活跃度 1

点评

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-11-28 00:00:35 | 显示全部楼层

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-11-28 00:05:41 | 显示全部楼层
变通一下,轴线生墙,几乎每个建筑软件必须的

点评

关键是生成墙,生成的是墙图层,而且要得把墙体砸开,砸开的话你还是得去修剪,还得去设置生成墙的那些参数, 专业就是单线变双 呵呵  详情 回复 发表于 2013-11-28 00:08
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-28 00:08:57 | 显示全部楼层
本帖最后由 --@----- 于 2013-11-28 00:10 编辑
st788796 发表于 2013-11-28 00:05
变通一下,轴线生墙,几乎每个建筑软件必须的


其实就是单线变墙那种效果。关键是单线生成墙,生成的是墙图层,而且要得把墙体砸开,砸开的话你还是得去修剪,还得去设置生成墙的那些参数,  专业就是单线变双  呵呵  

点评

设不设墙图层,那是代码定的,设路图层,就是单线变路。 墙体炸开是什么意思? 专业软件的单线变双,和你贴图的有什么区别的地方?  详情 回复 发表于 2013-11-28 00:18
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-11-28 00:18:41 | 显示全部楼层
--@----- 发表于 2013-11-28 00:08
其实就是单线变墙那种效果。关键是单线生成墙,生成的是墙图层,而且要得把墙体砸开,砸开的话你还是得 ...

设不设墙图层,那是代码定的,设路图层,就是单线变路。

墙体炸开是什么意思? 专业软件的单线变双,和你贴图的有什么区别的地方?

点评

偶然发现 Curve_getOffsetCurves 还有自动倒内角疗效 图示均为 Line 用 Curve_getoffsetCurves 双向偏移后自动把内角给倒了!偏移后仍旧为 Line  详情 回复 发表于 2013-11-28 00:23
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-11-28 00:23:46 | 显示全部楼层
newer 发表于 2013-11-28 00:18
设不设墙图层,那是代码定的,设路图层,就是单线变路。

墙体炸开是什么意思? 专业软件的单线变双, ...

偶然发现 Curve_getOffsetCurves 还有自动倒内角疗效{:soso_e113:}

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-11-28 08:16:31 | 显示全部楼层
本帖最后由 st788796 于 2013-11-28 08:20 编辑

倒内角有条件的, 不完美的变双

  1. (defun c:tt (/ ss d hw)
  2.   (if (and (setq ss (ssget '((0 . "line"))))
  3.            (setq d (getdist "\n宽度: "))
  4.       )
  5.     (progn
  6.       (xdrx_begin)
  7.       (setq hw (* d 0.5))
  8.       (mapcar '(lambda (x)
  9.                  (xdrx_curve_getoffsetcurves x hw)
  10.                  (xdrx_curve_getoffsetcurves x (- hw))
  11.                )
  12.               (setq el (xdrx_pickset->ents ss))
  13.       )
  14.       (setq ss (xdrx_curve_intersectbreak (xdrx_getss) 0.))
  15.       (xdrx_document_redraw ss) ;_更新数据库,不然 F 选不到
  16.       (xdrx_setsstodb ss 9)
  17.       (mapcar
  18.         '(lambda (x / s)
  19.            (if (setq s (ssget "F" x '((0 . "Line"))))
  20.              (xdrx_entity_delete
  21.                (xdrx_pickset_intersect s (xdrx_getss 9))
  22.              )
  23.            )
  24.          )
  25.         (mapcar 'xdrx_entity_getstretchpoint el)
  26.       )
  27.       (xdrx_end)
  28.     )
  29.   )
  30.   (princ)
  31. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-30 00:38:17 | 显示全部楼层
本帖最后由 --@----- 于 2013-11-30 01:00 编辑

突然间想起来一个处理单线变双的步骤:处理之前先把这些单线转换成多断线,再合并有端头连接的多段线,单线双向偏移、删除源线、交点打断、删除短线(500之内默认短线一般情况下单线变双两根线之间的距离都很短的不会超于500)故把这部分当成个短线来处理掉,以上步骤都是对选中的线以及偏移后的线的处理 。至于程序是啥原理,咱也不懂,这也只是个想法,,呵呵

点评

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-11-30 09:05:41 | 显示全部楼层
--@----- 发表于 2013-11-30 00:38
突然间想起来一个处理单线变双的步骤:处理之前先把这些单线转换成多断线,再合并有端头连接的多段线,单线 ...

  1. (defun c:tt (/ ss d hw hhw _pi2)
  2.   (if (and (setq ss (ssget '((0 . "line"))))
  3.            (setq d (getdist "\n宽度: "))
  4.       )
  5.     (progn
  6.       (xdrx_begin)
  7.       (setq hw         (* d 0.5)
  8.             hhw         (* 0.9 hw)
  9.             _pi2 (* pi 0.5)
  10.       )
  11.       (xdrx_setmark)
  12.       (mapcar '(lambda (x)
  13.                  (xdrx_curve_getoffsetcurves x hw)
  14.                  (xdrx_curve_getoffsetcurves x (- hw))
  15.                )
  16.               (setq el (xdrx_pickset->ents ss))
  17.       )
  18.       (setq ss (xdrx_curve_intersectbreak (xdrx_getss) 0.))
  19.       (xdrx_document_redraw ss) ;_更新数据库,不然 F 选不到
  20.       (xdrx_setsstodb ss 9)
  21.       (mapcar
  22.         '(lambda (x / s)
  23.            (if (setq s (ssget "F" x '((0 . "Line"))))
  24.              (xdrx_entity_delete
  25.                (xdrx_pickset_intersect s (xdrx_getss 9))
  26.              )
  27.            )
  28.          )
  29.         (apply
  30.           'append
  31.           (mapcar
  32.             '(lambda (e / an sp ep)
  33.                (setq an (xdrx_getpropertyvalue e "angle"))
  34.                (mapcar 'set '(sp ep) (xdrx_entity_getstretchpoint e))
  35.                (list (list (polar sp (- an _pi2) hhw)
  36.                            (polar ep (- an _pi2) hhw)
  37.                      )
  38.                      (list (polar sp (+ an _pi2) hhw)
  39.                            (polar ep (+ an _pi2) hhw)
  40.                      )
  41.                )
  42.              )
  43.             el
  44.           )
  45.         )
  46.       )
  47.       (xdrx_end)
  48.     )
  49.   )
  50.   (princ)
  51. )

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

使用道具 举报

已领礼包: 18个

财富等级: 恭喜发财

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

使用道具 举报

已领礼包: 18个

财富等级: 恭喜发财

发表于 2020-4-7 18:44:13 | 显示全部楼层
st788796 发表于 2013-11-30 09:05
这样能删掉短线,但有缺角

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

使用道具 举报

已领礼包: 18个

财富等级: 恭喜发财

发表于 2020-4-7 18:45:25 | 显示全部楼层
st788796 发表于 2013-11-28 08:16
倒内角有条件的, 不完美的变双

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-14 19:52 , Processed in 0.401518 second(s), 64 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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