明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1890|回复: 8

[提问] 有没有一种功能,选择的时候按下某一个键,就只能选择指定图层的实体

[复制链接]
发表于 2013-6-3 10:23:32 | 显示全部楼层 |阅读模式
本帖最后由 OWEN7 于 2013-6-3 14:28 编辑

rt,比如 按一下A键进行选择的时候,只能选择填充实体,按一下B键选择的时候只能选择 0图层的实体。
发表于 2013-6-3 11:31:30 | 显示全部楼层
一直按着估计不行!
1、可以通过GRREAD写个关键词函数,
    比如按一下A就只能选择填充,按一下B就只能选择0图层。在程序中定义。
2、也可以通过GETXXX系统函数 通过INITGET指定关键词,
     然后 按一下A再空格 就只能选择填充 ,按一下B再空格 就只能选择0图层。

GRREAD与GETXXX方法比较------GRREAD可以立即响应关键词。而GETXXX需要再空格。
 楼主| 发表于 2013-6-3 14:26:43 | 显示全部楼层
grread真是个神奇的函数。 wowan兄写一个撒
发表于 2013-6-3 18:50:24 | 显示全部楼层
看下开心的删除工具,你会学习到这个神奇的函数——grread
发表于 2013-6-3 20:03:43 | 显示全部楼层
(defun c:()
(initget "1 2 3 4 5")
(setq no (getkword "请选择1,2,3,4,5<1>:"))
(if (= no nil)(setq no "1"))

(cond ((= no "1")程序1))
(cond ((= no "2")程序2))
(cond ((= no "3")程序3))
(cond ((= no "4")程序4))
(cond ((= no "5")程序5))

(princ))

点评

不会使用,程序1-程序5是要怎么修改吧!  发表于 2014-9-20 16:04

评分

参与人数 1明经币 +1 收起 理由
ucuc2003 + 1 思路很重要

查看全部评分

发表于 2013-6-3 20:06:44 | 显示全部楼层
(defun C:()(if (setq SS (ssget '((8 . "图层名1,图层名2"))))?)(sssetfirst nil SS)));选择指定的图层

(setq ss(ssget'((8 . "0")));   只选择0层

(setq ss(ssget'((8 . "~0")));  不选择0层

(ssget "x" '((8 . "0")(0 . "circle")));选择0层的所有圆RECTANG

(setq ss (ssget "X" '((0 . "INSERT"))));选中所有图块
发表于 2013-6-3 20:21:24 | 显示全部楼层
这个问题挺有趣的

我个人的解决方法是这样的

1)个人的首选方法
在选择的时候,键入'filter,那么就会出现这个过滤界面,只需要填上所需要选择过滤的图层
那么,就可以按"应用"进行选取。



也可以通过"添加选定对象"来实现更加复杂的选择过滤
这个'filter早在R14或者更早前就有了,非常好用,建议仔细试用

个人经常采用下列的autohotkey将'filter定义为F7功能键

2)第二个方法
大概楼主是经常会针对某层进行过滤?,lisp编程本身完成这个有些难度
个人建议采用autohotkey进行按键的转接
关于autohotkey软件,楼主可以参考我以前发过的一个帖子
http://bbs.mjtd.com/forum.php?mo ... &fromuid=250774
[重新定义F1-F12功能键]
和不死猫兄发的帖子
http://bbs.mjtd.com/thread-101400-1-1.html
[[【不死猫】] 放飞双手,高效开发:自定义我的键盘动作(猫老师脚本) ]
那么此时
定义一个ahk文件

  1. #IfWinActive AutoCAD
  2. !F1::send,(ssget '((8 . "0"))){enter}
复制代码
这个方法就是在选择的过程中,按alt+F1按键的时候,会过滤选择0层的物体
对于中文图层,可以参考一下
http://ahk.5d6d.net/thread-131-1-1.html
http://yonken.blogcn.com/article ... B8%AD%E6%96%87.html
两个网页,用类似_SendRaw(Keys) 的函数来发送

第二种方法固然不错,但是假如只是偶尔进行图层过滤的话,个人建议还是用 'filter 透明命令或者 qselect命令进行先选择再命令的做法

本帖子中包含更多资源

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

x
发表于 2014-1-10 17:22:12 | 显示全部楼层
qjchen 发表于 2013-6-3 20:21
这个问题挺有趣的

我个人的解决方法是这样的

不错的办法,收藏学习,谢谢
发表于 2014-1-10 19:00:07 来自手机 | 显示全部楼层
qjchen 发表于 2013-6-3 20:21
这个问题挺有趣的

我个人的解决方法是这样的

说得太好了,真有心
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-25 18:00 , Processed in 0.186849 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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