找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 13142|回复: 130

[每日一码] 超级OFFSET,能偏移块,XREF里面的曲线

 火.. [复制链接]

已领礼包: 19个

财富等级: 恭喜发财

发表于 2017-7-21 12:03:47 | 显示全部楼层 |阅读模式

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

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

×

  1. (defun c:OffsetNested (/ *error* AT:GetSel dist ent new)

  2. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  3. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; SUBROUTINES ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  4. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

  5.   (defun *error* (msg)
  6.     (and ent (redraw (car ent) 4))
  7.     (and new (entdel new))
  8.     (and cmd (setvar 'CMDECHO cmd))
  9.     (if (and msg (not (wcmatch (strcase msg) "*BREAK*,*CANCEL*,*QUIT*,")))
  10.       (progn (vl-bt) (princ (strcat "\nError: " msg)))
  11.     )
  12.   )


  13.   (defun AT:GetSel (meth msg fnc / ent)
  14.     ;; meth - selection method (entsel, nentsel, nentselp)
  15.     ;; msg - message to display (nil for default)
  16.     ;; fnc - optional function to apply to selected object
  17.     ;; Ex: (AT:GetSel entsel "\nSelect arc: " (lambda (x) (eq (cdr (assoc 0 (entget (car x)))) "ARC")))
  18.     ;; Alan J. Thompson, 05.25.10
  19.     (while
  20.       (progn (setvar 'ERRNO 0)
  21.              (setq ent (meth (cond (msg)
  22.                                    ("\nSelect object: ")
  23.                              )
  24.                        )
  25.              )
  26.              (cond ((eq (getvar 'ERRNO) 7) (princ "\nMissed, try again."))
  27.                    ((eq (type (car ent)) 'ENAME)
  28.                     (if (and fnc (not (fnc ent)))
  29.                       (princ "\nInvalid object!")
  30.                     )
  31.                    )
  32.              )
  33.       )
  34.     )
  35.     ent
  36.   )



  37. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  38. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; MAIN ROUTINE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  39. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


  40.   (initget 6 "Through")
  41.   (setq dist (getdist (strcat "\nOffset Nested\nSpecify offset distance or [Through] <"
  42.                               (if (minusp (getvar 'OFFSETDIST))
  43.                                 "Through"
  44.                                 (rtos (getvar 'OFFSETDIST))
  45.                               )
  46.                               ">: "
  47.                       )
  48.              )
  49.   )

  50.   (cond ((not dist))
  51.         ((eq (getvar 'OFFSETDIST) dist))
  52.         ((eq dist "Through") (setvar 'OFFSETDIST -1.))
  53.         ((setvar 'OFFSETDIST dist))
  54.   )

  55.   (if (and (setq ent (AT:GetSel nentselp
  56.                                 "\nSelect object to offset: "
  57.                                 (lambda (x)
  58.                                   (member (cdr (assoc 0 (entget (car x))))
  59.                                           '("ARC" "CIRCLE" "ELLIPSE" "LINE" "LWPOLYLINE" "SPLINE")
  60.                                   )
  61.                                 )
  62.                      )
  63.            )
  64.            (progn
  65.              (if (eq (length ent) 4)
  66.                (progn (setq new (entmakex
  67.                                   (subst (cons 8 (getvar 'CLAYER))
  68.                                          (assoc 8 (entget (car ent)))
  69.                                          (entget (car ent))
  70.                                   )
  71.                                 )
  72.                       )
  73.                       (vla-transformby (vlax-ename->vla-object new) (vlax-tmatrix (caddr ent)))
  74.                       (setq ent (list new (cadr ent)))
  75.                )
  76.              )

  77.              (redraw (car ent) 3)

  78.              (setq pnt (getpoint (cadr ent)
  79.                                  (if (minusp (getvar 'OFFSETDIST))
  80.                                    "\nSpecify through point: "
  81.                                    "\nSpecify point on side to offset: "
  82.                                  )
  83.                        )
  84.              )
  85.            )
  86.       )

  87.     (command "_.offset" "" ent "_non" pnt "")
  88.   )

  89.   (*error* nil)

  90.   (princ)
  91. )
  92. (vl-load-com)
  93. (princ)


游客,如果您要查看本帖隐藏内容请回复



点评

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

已领礼包: 478个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 2476个

财富等级: 金玉满堂

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

使用道具 举报

已领礼包: 8987个

财富等级: 富甲天下

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

使用道具 举报

已领礼包: 188个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 1336个

财富等级: 财源广进

发表于 2017-7-21 14:57:02 | 显示全部楼层
来学习的,路太漫长了!


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

使用道具 举报

已领礼包: 466个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 5601个

财富等级: 富甲天下

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

使用道具 举报

已领礼包: 329个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 2963个

财富等级: 家财万贯

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

使用道具 举报

已领礼包: 28个

财富等级: 恭喜发财

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

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

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

使用道具 举报

已领礼包: 6468个

财富等级: 富甲天下

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

使用道具 举报

已领礼包: 5060个

财富等级: 富甲天下

发表于 2017-7-22 06:09:43 来自手机 | 显示全部楼层
吧,也行呀?吃了饭**形象代言人
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 85个

财富等级: 招财进宝

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 00:35 , Processed in 0.218314 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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