注册 登录
明经CAD社区 返回首页

Gu_xl的个人空间 http://www.mjtd.com/?161460 [收藏] [复制] [分享] [RSS]

日志

图层反映器应用:禁止某个图层设置为当前层

热度 3已有 1424 次阅读2012-12-6 10:08 |个人分类:Lisp应用|系统分类:开发| 图层, 反映器

 

图层反应器.LSP

本源代码由 Gu_xl 编写发布! 联系方式: Email: Gu_xl@sohu.com
;;图层反映器应用
;;功能:禁止某个图层(如图层"2")设置为当前层,以保证不在该图层上画物体
(defun c:tt  ()
  ;;建立反应器
  (or *sysVarvlr*
      (setq *sysVarvlr*
	     (vlr-editor-reactor
	       nil
	       '((:vlr-sysVarWillChange . sysVarWillChange) ;_ 回调函数
		 (:vlr-sysVarChanged . sysVarchange)))) ;_ 回调函数
      )
  (princ)
  )
;;回调函数
(defun sysVarWillChange(reactor_object lst)
  (if (= "CLAYER" (car lst))
    (setq *savelayer* (getvar "CLAYER")) ;_ 保存当前层名称
    )
  (if (= "2" *savelayer*) (setq *savelayer* "0")) ;_ 图层"2"为禁止图层,若当前层为禁止层,则默认为"0层"
  )
;;回调函数
(defun sysVarchange (reactor_object lst)
  (if (and (= "CLAYER" (car lst))
	   (= "2" (getvar "CLAYER")) ;_ 图层"2"为禁止图层,可自行修改
	   )
    (progn
      (vlr-remove reactor_object) ;_ 停用图层反应器
      (setvar "CLAYER" *savelayer*) ;_ 恢复当前层
      (vlr-add reactor_object) ;_ 启用反应器
      )
    )
  (princ)
  )

路过

雷人
2

握手

鲜花

鸡蛋

刚表态过的朋友 (2 人)

发表评论 评论 (2 个评论)

回复 自贡黄明儒 2012-12-6 12:15
这个实用
回复 冒个烟圈 2015-6-5 19:54
收藏之

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-7 05:19 , Processed in 0.225167 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部