明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1544|回复: 4

用反应器实现布局转换时隔离与布局相关联的层

[复制链接]
发表于 2005-4-21 21:17:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2005-4-22 12:51:48 编辑

不好意思,重新改了下。大家看看,有什么还需要改的,重点是更精炼、更直接。 ;;; 布局转换时隔离与布局名相关联的层,如布局名为1,则隔离1-1、1-2、……,回到模型空间时再所有图层全开。
(vl-load-com)
(setq snl '()
tbll (TblNext "LAYER" T)
)
(While (SetQ snl (Cons (Cdr (Assoc 2 tbll)) snl)
tbll (TblNext "LAYER" nil)
)
)
(if (not *miscellaneous-reactor*)
(setq *miscellaneous-reactor*
(vlr-miscellaneous-reactor
nil
'((:vlr-layoutSwitched . ctab-autorun))
)
)
) (defun mlayer (layl do)
(foreach name layl
(vla-put-layeron
(vla-item (vla-get-layers
(vla-get-activedocument (vlax-get-acad-object))
)
name
)
do
)
)
)
(defun ctab-autorun (x y / op)
(cond
((= (getvar "tilemode") 0)
(progn (setq op '())
(foreach name (vl-remove "0" snl)
(if (not (wcmatch name (strcat (getvar "ctab") "-*")))
(setq op (cons name op))
)
)
(mlayer snl :vlax-true)
(mlayer op :vlax-false)
)
)
((= (getvar "tilemode") 1) (mlayer snl :vlax-true))
)
)

本帖子中包含更多资源

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

x
发表于 2005-4-22 08:35:00 | 显示全部楼层
怎么错了?(mlayer...)没有提供
发表于 2005-4-22 12:09:00 | 显示全部楼层
先了解LAYL & DO是甚么??
用:vlr-sysvarchanged对吗?
用:vlr-layoutswitched会好一点!
回调函数内最好全用ActiveX
 楼主| 发表于 2005-4-22 12:56:00 | 显示全部楼层
(defun ctab-autorun (x y / op)里面的xy简直就是陪像的,好像没用上啊?可是去掉后又会出错,怎么回事? to龙龙仔 :vlr-layoutswitched 是比上次那个好多了,这个我还是今天早上又翻了遍书才发现还有这个的
发表于 2005-4-22 13:09:00 | 显示全部楼层
因为系统调用回调函数就是这样的,会传入一些参数...只是你没有用到这个参数而已...但系统并不会因为你不用就不传,所以这两个参数还是需要存在的...


就同错误处理函数中的参数一样
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 07:35 , Processed in 0.191358 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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