明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: masterlong

[已解答] DCL对话框下实时控制图层状态,有什么好的方法

[复制链接]
 楼主| 发表于 2015-1-13 19:40:09 | 显示全部楼层
初步测试odcl的模式对话框可以用
包括使用command函数
 楼主| 发表于 2015-1-13 20:40:14 | 显示全部楼层
个人的看法不一定对
在CAD中对图层控制
影响速度最大的因素是MTEXT
采用边框显示文字的方式也没有用
我能想到最好的办法是
将MTEXT统一归于一个图层
然后将这个图层冻结
然后再对剩下的图层进行管理
如上述处理后
即使是每次操作都 regen
其速度也还是勉强可以接受的

我现在在做的一个程序
主要功能是
提取图框信息形成列表
对话框靠屏幕左侧开启
开启前先调整CAD的大小
以保证对话框不会遮挡住CAD
点取列表条目
相应图纸居中显示

在这个主要功能的基础上
附加的功能是
切换显示图框层、打印层、非打印层
因为这是成品图打印前的最后一道检查
所以图层切换将会非常频繁
跳出对话框再开启实在不是好的选择

以上功能已基本完成
现在还需要再进行一些优化和加强
比如前面说的MT统一图层
块定义检索等

 楼主| 发表于 2015-1-14 12:44:10 | 显示全部楼层
程序流程和功能的设置

【前置操作】
1。 检查并恢复图框层的默认设置
2。 记录所有mtext原始图层
3。 可打印层的mtext统一归并至“mt_说明”,该层冻结
4。 不可打印层的mtext统一归并至“mt_说明(不可打印)”,该层冻结
5。 所有图框改图框层,位于非打印层的,询问是否设为250色。(本操作为强制,不提供恢复)
6。 设置一个专用的临时层,图框层中非图框图元夹点显示,询问是否归并于临时层
7。 清空垃圾,记录原始图层状态

【获取】
1。 获取所有非打印层
2。 获取所有位于非打印层的图块(即非打印块)
3。 获取每个非打印块包含的可打印图层
4。 获取所有非打印块包含的可打印图层(即特殊图层)
◆5  是否需要获取包含不可打印层图元的可打印块?????(需要递归获取,会比较耗时)

【显示】
1。 显示所有层
    a.  非打印图块夹点显示
    b.  消隐非打印块
2。 显示所有可打印层包括特殊图层(此时非打印图块将可见特殊图层的图元,这个容易误以为可打印)
    a.  非打印图块夹点显示
    b.  消隐非打印块
3。 仅显示图框层
4。 仅显示所有非打印层(非打印块里特殊层的图元不可见)
5。 显示所有不可打印图元(需打开特殊图层,并消隐所有图元)
6。 仅显示所有非打印块(打开非打印层,消隐非块图元;打开特殊图层,并消隐所有图元)

【显示中逐层浏览】
1。 分类显示图层列表(可打印、特殊、不可打印、mt说明)
2。 逐层浏览
3。 显示特殊层时
    a.  非打印图块夹点显示
    b.  消隐非打印块

【后置操作】
1。 恢复图层状态
2。 解冻“mt_说明”“mt_说明(不可打印)”。此时提供查看
3。 恢复mtext原始图层(可选操作)

【关于前置操作的备注说明】
1。 单位图框为块,我设置了250色图框禁选,即不可被编辑、批打印等操作
2。 所有显示操作中,图框层始终打开以提示。所以图框层除了图框外,不应含有其它图元,以免引起误会
3。 MTEXT图层归并并始终冻结,以加快速度。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-23 10:10 , Processed in 0.125457 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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