找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1090|回复: 11

[LISP函数]:[分享]層復製

[复制链接]
发表于 2003-8-7 18:40:01 | 显示全部楼层 |阅读模式

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

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

×
  1. ;;;程序名稱: 層復制___________________________________
  2. ;;;程序提供: 龍龍仔大俠&前生版主 _____________________
  3. ;;;程序修改: Spring___________________________________
  4. ;;;2003.06.05_________________________________________
  5. (defun ai_error        (errmsg)
  6.   (if errmsg
  7.     '("console break"
  8.       "Function Cancelled"
  9.      )
  10.     (princ (strcat "\nError: " errmsg))
  11.   )
  12.   (princ)
  13. ) ;_defun
  14. (defun C:LCO (/ ss lay count en ed)
  15.   (setq cm (getvar "cmdecho"))
  16.   (setq        old_error *error*)               
  17.   (setq  *error* ai_error)       
  18.   (setvar "cmdecho" 0)
  19.   (setq ss (ssget))
  20.   (if ss
  21.     (progn
  22.       (setq lay T)
  23.       (while (/= lay "")
  24.         (setq lay (getstring "\n請輸入層名 / <ENTER結束命令>: "))
  25.         (if (and (/= "" lay) (tblsearch "LAYER" lay))
  26.           (progn
  27.             (setq count 0)
  28.             (while (< count (sslength ss))
  29.               (setq en (ssname ss count))
  30.               (setq count (1+ count))
  31.               (setq ed (entget en))
  32.               (setq ed (subst (cons 8 lay) (Assoc 8 ed) ed))
  33.               (entmake ed)
  34.             )
  35.             (prompt
  36.               (strcat "\n"
  37.                       (itoa (sslength SS))
  38.                       " 物件拷貝到 "
  39.                       lay
  40.                       " 層 "
  41.               )
  42.             )
  43.           )
  44.           (prompt
  45.             (strcat "\n輸入的圖層名稱不存在! layer name=" lay " ")
  46.           )
  47.         )
  48.       )
  49.     )
  50.   )
  51.   (setq count nil)
  52.   (setvar "cmdecho" cm)
  53.   (setq *error* old_error)
  54.   (princ)
  55. )
  56. ;;;________________________________________________________________________
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 2个

财富等级: 恭喜发财

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

使用道具 举报

发表于 2003-8-8 13:22:56 | 显示全部楼层
不要打击积极性么.
我觉得程序结构还是挺完整的.考虑了异常退出.如果能在选层的时候可以考虑通过物体选取,操作性可能会强些.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2003-8-8 13:29:30 | 显示全部楼层
(defun C:lc (/ layr a)
  (command "undo" "be")
  (setq layr (getstring "\nEnter target layer name: "))
  (setq a (ssget))
  (command "layer" "n" layr "")
  (command "copy" a "" "@" "@")
  (command "chprop" a "" "la" layr "")
  (command "undo" "e")
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-8-8 15:41:24 | 显示全部楼层
这个好像不是出自我手,是前生兄的,程序中使用entmake对尺寸对象可能会有非预期效果(尺寸对象受很多系统变量影响)。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-8-8 18:16:27 | 显示全部楼层
最初由 taner 发布
[B]这程序太一般了,请去明经通道看看。 [/B]


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

使用道具 举报

发表于 2003-8-8 20:33:06 | 显示全部楼层 |阅读模式

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

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

×
技巧:如果通过输入目标层名来改层,还不如
选择好物体后,在cad图层按钮中直接选取目标层也可(如图所示)

以下lsp是通过选图上目标实体来定目标层

  1.   [FONT=courier new]
  2. ;copy layer entities to another layer
  3. ;layer copy
  4. (defun c:lac (/ ss nm e la)
  5. (print "<拷贝到另一层> obj:")(setq ss(ssget))
  6. (setq nm (car (entsel "\n target objects for new layer:"))
  7.         e (entget nm)
  8.        la (cdr (assoc 8 e))
  9. )
  10. (command "copy" ss "" "0,0" "0,0" "change" ss "" "p" "la" la "")
  11. )

  12.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-8-8 20:34:25 | 显示全部楼层
2
技巧:如果通过输入目标层名来改层,还不如
选择好物体后,在cad图层按钮中直接选取目标层也可(如图所示)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-8-8 20:35:09 | 显示全部楼层
3
技巧:如果通过输入目标层名来改层,还不如
选择好物体后,在cad图层按钮中直接选取目标层也可(如图所示)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-8-8 20:36:47 | 显示全部楼层
4 技巧:如果通过输入目标层名来改层,还不如
选择好物体后,在cad图层按钮中直接选取目标层也可(如图所示)

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

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2003-8-9 13:56:00 | 显示全部楼层
如果这个层不存在的话,"LC"则会新建一个层,并将所选原地COPY TO 新层上.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 06:35 , Processed in 0.443385 second(s), 56 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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