找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3180|回复: 6

[每日一码] 多段线换向(反向)程序

[复制链接]

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-3-30 09:23:06 | 显示全部楼层 |阅读模式

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

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

×
  1. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;多段线换向(反向)程序 1.0;;;;;;;;;;;   ;;;;;;;;;;;;;;;;;
  2. ;;                                                                                     ;;
  3. ;;   1、本程序的功能为:多段线换向(反向),只针多段线。                                ;;
  4. ;;                                                                                     ;;
  5. ;;   2、程序主命令为"hx",在命令行中输入"hx"按提示使用即可。                            ;;
  6. ;;                                                                      2011.8.10      ;;
  7. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  8. (DEFUN c:hx (/ ss1 num data one points tempnum tempent)
  9.     (PRINC "\n\t请选择要换向的线条:")
  10.     (SETQ ss1 (SSGET (LIST (CONS 0 "lwpolyline"))))
  11.     (SETQ num 0)
  12.     (REPEAT (IF ss1
  13.                 (SSLENGTH ss1)
  14.                 0
  15.             )
  16.         (SETQ data (ENTGET (SSNAME ss1 num))
  17.               num  (1+ num)
  18.         )
  19.         (SETQ points nil)
  20.         (FOREACH one data
  21.             (PROGN (IF (= (CAR one) 10)
  22.                        (SETQ points (APPEND points (LIST one)))
  23.                    )
  24.             )
  25.         )
  26.         (SETQ points (REVERSE points))
  27.         (SETQ tempnum 0)
  28.         (SETQ tempent nil)
  29.         (FOREACH one data
  30.             (PROGN (IF (= (CAR one) 10)
  31.                        (SETQ tempent (APPEND tempent (LIST (NTH tempnum points)))
  32.                              tempnum (1+ tempnum)
  33.                        )
  34.                        (SETQ tempent (APPEND tempent (LIST one)))
  35.                    )
  36.             )
  37.         )
  38.         (IF (NOT (ENTMOD tempent))
  39.             (ALERT "错误:\n\t不能更新实体数据!\t")
  40.         )
  41.     )
  42.     (PRINC)
  43. )


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

已领礼包: 5578个

财富等级: 富甲天下

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

使用道具 举报

已领礼包: 859个

财富等级: 财运亨通

发表于 2016-3-30 18:02:43 | 显示全部楼层
Lisp 处理中节点部分 revese , Bulge 组码值 * -1

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

使用道具 举报

已领礼包: 137个

财富等级: 日进斗金

发表于 2020-4-18 07:10:14 | 显示全部楼层
老师 您好 论坛中有多段线反向的帖子。好像是手工判断调整,我希望能自动判断调整。      在图纸中已经画好线,A1到B1,B2到A2,A3到B3,总点到C1,总点到C2,总点到C3,线条的起点预先设置在图层列A,终点的图层设置在图层列B,线条是多义线。能不能根据多义线的起点和终点自动判断多义线的方向,并进行多义线的反向。 http://bbs.xdcad.net/thread-725628-1-1.html  谢谢老师!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2020-11-3 16:09:12 | 显示全部楼层
这个程序还是有BUG,对弧线段的处理不对。

换向前

换向前

换向后

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

使用道具 举报

发表于 2020-11-3 16:43:51 | 显示全部楼层
修改了 明经论坛 《求一个lisp程序实,现对调多段线起点和终点》帖子中网友提供的代码。
可以做到解决弧线段的问题
(defun C:DT ( / A B C D ENT LST LST1 TMP)
  (setq ENT (entget (car (entsel "\n请选择道路中心线: "))))
  (setq tmp ent)
  (while (setq tmp (member (assoc 10 tmp) tmp))
    (setq a   (assoc 10 tmp)
          b   (cons 40 (cdr (assoc 41 tmp)))
          c   (cons 41 (cdr (assoc 40 tmp)))
          d   (cons 42 (- (cdr (assoc 42 tmp))))
          LST (append (list b c d a) LST)
    )
    (setq tmp (cddddr tmp))
  )
  (repeat 3 (setq LST (append (cdr lst) (list (car lst)))))
  (setq lst1 (reverse (cdr (member (assoc 10 ent) (reverse ent)))))
  (entmod (append lst1 lst '((210 0 0 1))))
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1094个

财富等级: 财源广进

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 21:30 , Processed in 0.320191 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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