找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2116|回复: 4

[求助] [求助]:多线义和直线,弧线,圆 反向

[复制链接]
发表于 2006-1-23 12:01:57 | 显示全部楼层 |阅读模式

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

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

×
请教一个细节问题;怎样才能重画圆弧,使起点调换,还是说不可能。多义线的重画呢:我用
(setq list1 (cdr (entget n1)))
(entmake list1)
实现了顺序的重画,反序的怎么办呢。请教!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 2个

财富等级: 恭喜发财

发表于 2006-1-23 13:59:26 | 显示全部楼层

  1.   [FONT=courier new]
  2. ;;;寫了一個,但是該弧變爲圓-該弧.
  3. (defun test1 ()
  4.   (setq        en        (entsel "\n請點選弧段:")
  5.         elist        (entget (car en))
  6.         arcend0        (cdr (assoc 50 elist))
  7.         arcend1        (cdr (assoc 51 elist))
  8.         arcend2        (cons 50 arcend1)
  9.         arcend3        (cons 51 arcend0)
  10.   )
  11.   (xd-modent elist (list arcend2 arcend3))
  12.   (princ)
  13. ) [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-23 14:37:06 | 显示全部楼层
哦,你这样肯定是个圆了,原来的弧你没删除,再画了另外一半,合起来就是一圆了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-1-23 20:23:27 | 显示全部楼层
圆弧永远是逆时针方向的!即组码51的值永远大于组码50的值。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2006-1-25 00:40:54 | 显示全部楼层
把以前发的加了一下circle arc
http://www.xdcad.net/forum/showt ... d=590811#post590811
arc反过来是没用的!


  1. ;;;==============================================
  2. ;;;多线义和直线,弧线,圆 反向
  3. ;;;by Aeo @ XDCAD.net
  4. ;;;-----------------------------------------------
  5. (defun reverse-LWpline (e / a en how li1 li2 li3)
  6. (setq en(entget e '("*")) how nil)
  7. (foreach an en
  8.   (if(setq a(member(car an)'(10 40 41 42)))(setq how t))
  9.   (cond((not how)(setq li1(cons an li1)))
  10.        ((and how a)
  11.          (cond((=(car an)40)(setq an(cons 41(cdr an))))
  12.               ((=(car an)41)(setq an(cons 40(cdr an))))
  13.               ((=(car an)42)(setq an(cons 42(- 0(cdr an)))))
  14.               (t an)
  15.           )
  16.          (setq li2(cons an li2)))
  17.        ((and how(not a))(setq li3(cons an li3)))
  18.    )
  19.   )
  20. (entmod(append
  21.          (reverse li1)
  22.          (append(cdddr li2)(list(car li2)(cadr li2)(caddr li2)))
  23.          (reverse li3)
  24.         )
  25. )
  26. )
  27. (defun c:rev( / plw r e en j p10 p11 ss)
  28. (setq j -1)
  29. (prompt"\n选择要反向的 *POLYLINE,line,arc,circle:")
  30. (if(setq ss(ssget '((0 . "*POLYLINE,line,arc,circle"))))
  31.      (progn
  32.      (command"undo""group")
  33.      (repeat(sslength ss)
  34.       (setq e(ssname ss(setq j(1+ j)))
  35.             name(cdr(assoc 0(entget e)))
  36.       )
  37.       (if(= "POLYLINE"  name)(command"convert""p""s"e""))
  38.       (cond((= "LWPOLYLINE" name)(reverse-LWpline e ))
  39.            ((= "LINE" name)
  40.             (setq en(entget e) p10(cdr(assoc 10 en)) p11(cdr(assoc 11 en))
  41.                   en(subst(cons 10 p11)(assoc 10 en)en)
  42.                   en(subst(cons 11 p10)(assoc 11 en)en)
  43.              )(entmod en)
  44.            )
  45.            ((= "ARC" name) ;;arc反了还是老样子,它永远是对称的.建议注视掉-----------
  46.              (command "pedit" e "y""")
  47.              (reverse-LWpline (entlast))
  48.            )               ;;-------------------------------------------------------
  49.            ((= "CIRCLE" name)
  50.              (setq en(entget e)
  51.                    r (cdr(assoc 40 en))
  52.                    p10(cdr(assoc 10 en))
  53.                    p11(polar p10 pi r)
  54.                    p10(polar p10 0 r)
  55.                    plw(getvar "plinewid")
  56.               )
  57.               (command "_pline""none"p10 "w""0""0""a""a""-180""none"p11"cl")
  58.               (command "_MATCHPROP" e (entlast) "")  ;;这一堆写的比较傻^_^
  59.               (command "_pedit"(entlast)"l""on""")
  60.               (entdel e)
  61.               (setvar "plinewid" plw)
  62.            )
  63.        )
  64.      )(command"undo""end")
  65.    )
  66. )
  67. (princ)
  68. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-29 07:06 , Processed in 0.355841 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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