找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2845|回复: 33

(完成)[编程申请]:自动转到别的图层

[复制链接]
发表于 2004-9-20 12:02:11 | 显示全部楼层 |阅读模式

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

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

×
申请高手编一个程序解决下述问题:
  1.设定好一个特殊图层,用来显示每次编辑图的变化。每次修改图时,所有改动能自动转到此图层上,这样就能知道此次修改的所有内容。
  2.每次改动包括图上的各种操作。
  3.适用于各种版本的CAD
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 593个

财富等级: 财运亨通

发表于 2004-9-20 12:09:11 | 显示全部楼层

Re: [编程申请]:自动转到别的图层

最初由 wcf 发布
[B]申请高手编一个程序解决下述问题:
  1.设定好一个特殊图层,用来显示每次编辑图的变化。每次修改图时,所有改动能自动转到此图层上,这样就能知道此次修改的所有内容。
  2.每次改动包括图上的各种操作。
 ... [/B]

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

使用道具 举报

 楼主| 发表于 2004-9-20 14:44:43 | 显示全部楼层
分别编也可以,肯定是有一定的难度,比如原来的“TEXT”图层的文字“aa”,现在编辑成“bb”以后,要求自动转到先建立的“TEXT1”图层,或所指定的某个图层且颜色随层。或原图上一条线加长以后,也能自动转到此图层上,且颜色随层,这样所做编辑工作一目了然,便于修改。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2004-9-22 12:25:02 | 显示全部楼层
最初由 wcf 发布
[B]分别编也可以,肯定是有一定的难度,比如原来的“TEXT”图层的文字“aa”,现在编辑成“bb”以后,要求自动转到先建立的“TEXT1”图层,或所指定的某个图层且颜色随层。或原图上一条线加长以后,也能自动转到此图层?.. [/B]

  1. ;|
  2. 程序简介:用于修改图形时将修改的实体或者新生成的实体转换至指定图层
  3.           适用AutoCAD2000+以上版本。
  4.                                                                   
  5. 免责声明:本程序仅提供作为应用上的参考, 而未声明或隐含任何保证;   
  6.                                                                   
  7.            对于任何特殊用途之适应性, 以及商业销售所隐含作出的保证,
  8.                                                                   
  9.            在此一概予以否认。                                    
  10.                                                                   
  11. 拒绝担保:拒绝任何责任担保,因使用该程序所致的全部风险及后果均由用
  12.           户自己承担。                                            
  13.                                                                   
  14. 作    者:eahcy[晓东家园 [url]www.xdcad.net[/url]]                           
  15.                                                                   
  16.           复制、传播请保持以上信息完整                           
  17. |;
  18. (vl-load-com)
  19. ;;数据库监视器
  20. (if (not ea:savenew)
  21.   (setq        ea:savenew
  22.          (vlr-acdb-reactor
  23.            "Ea-acdb-reactor"
  24.            '((:vlr-objectModified . SaveChangedLyr) ;修改
  25.              (:vlr-objectAppended . SaveChangedLyr) ;添加
  26.             )
  27.          )
  28.   )
  29. )
  30. ;;命令监视器
  31. (if (not ea:chgnew)
  32.   (setq        ea:chgnew
  33.          (vlr-editor-reactor
  34.            nil
  35.            '((:vlr-commandended . ChgModefied) ;图形内绘制
  36.              (:vlr-commandcancelled . ChgModefied)
  37.                                         ;命令中断时检查是否有新实体
  38.              (:vlr-lispEnded . ChgModefied) ;检查Lisp生成的新实体
  39.              (:vlr-lispCancelled . ChgModefied) ;中断后是否有新实体
  40.             )
  41.          )
  42.   )
  43. )
  44. ;;命令回调
  45. (defun ChgModefied (var1 var2 / lyrs lyrlst item doc)
  46.   (setq        lyrs (vla-get-layers
  47.                (setq doc (vla-get-activedocument (vlax-get-acad-object)))
  48.              ) ;_vla-get-layers
  49.   ) ;_setq
  50.   (if HasChangedObject
  51.     (progn
  52.       (vla-startundomark doc)
  53.       (mapcar
  54.         '(lambda (item / name lyr lyrobj)
  55.            (IF (and (not (vlax-erased-p item))
  56.                     (= (type ea:globlelay) 'STR)
  57.                     (vlax-property-available-p item 'layer)
  58.                     (not (vl-catch-all-error-p
  59.                            (vl-catch-all-apply
  60.                              'vla-item
  61.                              (list lyrs ea:globlelay)
  62.                            )
  63.                          )
  64.                     )
  65.                     (/=        (strcase (vla-get-layer item))
  66.                         (strcase ea:globlelay)
  67.                     )
  68.                );_ end and
  69.              (progn
  70.                
  71.                (if (= (vla-get-lock
  72.                         (setq lyrobj
  73.                                (vla-item lyrs
  74.                                          (setq lyr (vla-get-layer item))
  75.                                )
  76.                         )
  77.                       ) ;_ vla-get-lock
  78.                       :vlax-true
  79.                    ) ;_ =
  80.                  (vla-put-lock lyrobj :vlax-false)
  81.                ) ;_ if
  82.                (vla-put-layer item ea:globlelay) ;change layer
  83.                (vla-put-color item 256)        ;change color to bylayer
  84.              ) ;_ progn
  85.            ) ;_ if
  86.          ) ;_ lambda
  87.         (vl-remove nil
  88.                    (mapcar 'vlax-ename->vla-object
  89.                            HasChangedObject
  90.                    ) ;_ mapcar
  91.         ) ;_ vl-remove
  92.       ) ;_ mapcar
  93.       (vla-endundomark doc)
  94.       (setq HasChangedObject nil)
  95.     ) ;_ progn
  96.   ) ;_ if
  97. )
  98. ;;acdb 回调函数, 保存修改或者新加的实体
  99. (defun SaveChangedlyr (var1 var2 /)
  100.   (if (not HasChangedObject)
  101.     (setq HasChangedObject (list (cadr var2)))
  102.     (setq HasChangedObject
  103.            (append (list (cadr var2)) HasChangedObject)
  104.     ) ;_ setq
  105.   ) ;_ if
  106. ) ;_ end defun
  107. ;;设置修改的图层,使用前请先设定要修改的图层
  108. (defun c:setlyr        (/ str lyr)
  109.   (if (setq str (getstring "\n输入转换至图层: "))
  110.     (progn
  111.       (if (not (tblsearch "layer" str))
  112.         (progn
  113.           (setq        lyr
  114.                  (vla-add (vla-get-layers
  115.                             (vla-get-activedocument (vlax-get-acad-object))
  116.                           )
  117.                           str
  118.                  )
  119.           )
  120.           (vla-put-color lyr 6) ;_可以通过图层管理器修改颜色
  121.         )
  122.       )
  123.       (setq ea:globlelay str)
  124.     )
  125.   )
  126.   (princ)
  127. )
  128. (defun c:Removelyr (/)
  129.   (vlr-remove-all)
  130.   (setq        ea:savenew
  131.          nil
  132.         ea:chgnew nil
  133.   )
  134.   (princ "\n\t已取消自动更新图层, 要启用请重新加载本程序!")
  135.   (princ)
  136. )
  137. (princ "\n\t已启用修改自动更新图层功能!")


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

使用道具 举报

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

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2004-11-7 23:52:27 | 显示全部楼层
最初由 wcf 发布
[B]很不错,可惜有一批R14的用户无法使用。谢谢eahcy版主! [/B]

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

使用道具 举报

 楼主| 发表于 2004-11-9 16:46:02 | 显示全部楼层
谢谢eachy版主的热诚!
请问用appload加载后需要输入什么命令才能操作?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2004-11-9 18:20:52 | 显示全部楼层
最初由 wcf 发布
[B]谢谢eachy版主的热诚!
请问用appload加载后需要输入什么命令才能操作? [/B]

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

使用道具 举报

已领礼包: 8611个

财富等级: 富甲天下

发表于 2004-11-9 18:45:49 | 显示全部楼层
小心啊,上次我用了一下,结果存盘的时候状如死机,等了好半天才存上,吓得我再也不敢用了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2004-11-9 20:08:12 | 显示全部楼层
最初由 liuyj 发布
[B]小心啊,上次我用了一下,结果存盘的时候状如死机,等了好半天才存上,吓得我再也不敢用了。 [/B]

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

使用道具 举报

 楼主| 发表于 2004-11-9 21:03:34 | 显示全部楼层
我记得在2002版本下加载程序后,正常应该在命令行出现“设置一个图层”,然后所有的操作自动转到所设定的图层。
    但是在R14下加载程序后在命令行没有反应,且不能转换图层,不知是何原因?
    烦版主在调试一下。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2004-11-10 00:07:30 | 显示全部楼层
最初由 wcf 发布
[B]我记得在2002版本下加载程序后,正常应该在命令行出现“设置一个图层”,然后所有的操作自动转到所设定的图层。
    但是在R14下加载程序后在命令行没有反应,且不能转换图层,不知是何原因?
    烦版主在调试一?.. [/B]

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

使用道具 举报

 楼主| 发表于 2004-11-10 11:48:22 | 显示全部楼层
这次能用了,但还存在一个小问题
用DTEXT命令输入文字不能自动转到所建立的图层上
copy标注尺寸时死机
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 8611个

财富等级: 富甲天下

发表于 2004-11-10 11:53:23 | 显示全部楼层
最初由 eachy 发布
[B]
你用了哪个版本? [/B]


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

使用道具 举报

发表于 2004-11-10 15:26:55 | 显示全部楼层
这个东西对画图有很大用处吗?我试了一下,不知道对做图有什么方便。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 23:10 , Processed in 0.478713 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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