找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 811|回复: 5

[求助] [求助]:请教如何在ACAD关闭前让其自动运行一段LSP程序

[复制链接]
发表于 2005-11-4 07:42:36 | 显示全部楼层 |阅读模式

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

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

×
有如下一段显示或者隐藏实体的LSP,但是隐藏是采用ENTDEL的,所以在关闭图形前必须先SHOWIT
否则图形会丢失,我觉得要是在程序中加上一段反应器程序,让我们在关闭图形的时候,自动提示或者自动SHOWIT,就会安全许多,我不大会反应器,不知道是否可以实现,请各位帮帮忙,谢谢
[php]
;HIDIT.lsp Hides objects temporarily.       Viji Varghese, Kerala, India, May '01
;SHOWIT.lsp Replaces the hidden objects.

(defun
   C:HIDIT (/ ANO SM ASET SM)
  (if (/= ASETN NIL)
    (setq *ASETN ASETN)
  ) ;_ end of if
  (while (= ASET NIL) (setq ASET (ssget)))
  (setq ASETN (sslength ASET))
  (if (/= *ASETN NIL)
    (setq *ASETN (+ ASETN *ASETN))
  ) ;_ end of if
  (if (= *HIDESET NIL)
    (setq *HIDESET (ssadd))
  ) ;_ end of if
  (setq ANO 0)
  (repeat ASETN
    (setq SM (ssname ASET ANO))
    (setq ANO (1+ ANO))
    (setq *HIDESET (ssadd SM *HIDESET))
    (entdel SM)
  ) ;_ end of repeat
  (princ (strcat (rtos ASETN 2 0) " object(s) hidden \nIf you want the objects back, run Showit BEFORE you close the drawing."))
  (alert "\t\tWarning! \nRun Showit to return objects before closing drawing. \nObjects will be lost otherwise.")
  (princ)
) ;_ end of defun
(defun
   C:SHOWIT (/ ANU ANO SMA)
  (if (/= *HIDESET NIL)
    (progn
      (setq ANU (sslength *HIDESET))
      (setq ANO 0)
      (repeat ANU
        (setq SMA (ssname *HIDESET ANO))
        (setq ANO (1+ ANO))
        (entdel SMA)
      ) ;_ end of repeat
      (princ (strcat (rtos ANU 2 0) " object(s) replaced"))
      (princ)
    ) ;_ end of progn
  ) ;_ end of if
  (setq *HIDESET NIL)
  (princ
    "\nHIDIT.lsp SHOWIT.lsp Written by Viji Varghese, Kerala, India May '01"
  ) ;_ end of princ
  (princ)
) ;_ end of defun
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-11-4 08:48:45 | 显示全部楼层
重新定义“QUIT”命令
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-4 12:36:34 | 显示全部楼层
请问是否用NEW,quit或者直接按标题栏的X都会先调用系统命令quit
让我仔细试试,谢谢:)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-4 12:44:12 | 显示全部楼层
可以用关闭反应器,在回调函数中要遵循反应器的一些规则,在帮助中有比较详细的说明。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2005-11-13 21:29:49 | 显示全部楼层
对,陌生人兄写过
(defun x_hide (ss)
  (setq ssv (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object))))
  (vlax-for obj ssv (vla-put-Visible Obj :vlax-false))
)
不过1楼的程序主要可以在R14下用,不过14不知道有没有反应器这个东西,比较麻烦
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-28 20:46 , Processed in 0.466144 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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