乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 87|回复: 0

[综合讨论] 搜索通配符文本和转换

[复制链接]

7

主题

30

帖子

65

银币

限制会员

铜币
-2
发表于 2022-7-6 23:04:03 | 显示全部楼层 |阅读模式
大家好,
我想分享一个基于Leemac脚本(转义通配符)的想法。
工作正常,但我想为代码优化提供帮助。
 
1: 根据通配符设置搜索文本
2: 选择找到的所有文本
3: 如果找到通配符,它将创建层并将块更改为其层。
4: 设置层的颜色
5: 转换为块(HDV1\u CONVERT)
 
正如您在附件中看到的,当我第一次运行脚本时,会出现警报。
有没有办法自动接受警报?
 
当做
 
 
::@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 
;;Autocad Electrical字符串匹配和转换
;;搜索通配符文本并转换为组件(块:HDV1\u convert)
;;http://www.lee-mac.com/escapewildcards.html参考
(defun c:CALL_TAG1();;开始
(vla sendcommand(vla get activedocument(vlax get acad object))“TAG\u 1\r”)
(vla sendcommand(vla get activedocument(vlax get acad object))“CALL\u TAG2\r”)
)
(定义c:CALL_TAG2()
(vla sendcommand(vla get activedocument(vlax get acad object))“TAG\u 2\r”)
(vla sendcommand(vla get activedocument(vlax get acad object))“CALL\u TAG3\r”)
)
(定义c:CALL_TAG3()
(vla sendcommand(vla get activedocument(vlax get acad object))“TAG\u 3\r”)
;;(vla sendcommand(vla get activedocument(vlax get acad object))“CALL\u TAG4\r”)
;;...
)
(定义c:TAG_1(/ss)
;;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
;; 变量集
(setq 1_序列“@@@####`.@@@@`.###A”)
(setq 1\u layer“TAG1\u layer\u A”)
(setq 1_颜色“0255,0”)
(setq 2_序列“@@@####`.@@@@`.###B”)
(setq 2\u layer“TAG2\u layer\u B”)
(setq 2_颜色“0,0255”)
(setq 3_序列“@@@####`.@@@@`.###C”)
(setq 3\u layer“TAG3\u layer\u C”)
(setq 3_颜色“0255255”)
;;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
(if(setq ss(car(cdr(ssgetfirst)))
(命令“.u zoom”“1”ss”)
(程序
(C:按通配符1搜索)
(C:SendToNewLayer1)
(普林斯)
);; 程序
);; 如果
)
;####################################################################################
;;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$CALL\u SCRIPT\u JANSSEN\u TAG\u 002
(定义c:TAG_2(/ss)
(if(setq ss(car(cdr(ssgetfirst)))
(命令“.u zoom”“1”ss”)
(程序
(C:按通配符2搜索)
(C:SendToNewLayer2)
(普林斯)
);; 程序
);; 如果
)
;####################################################################################
;;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$CALL\u SCRIPT\u JANSSEN\u TAG\u 003
(定义c:TAG_3(/ss)
(if(setq ss(car(cdr(ssgetfirst)))
(命令“.u zoom”“1”ss”)
(程序
(C:按通配符3搜索)
(C:SendToNewLayer3)
(普林斯)
);; 程序
);; 如果
)
;;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
;;http://www.lee-mac.com/escapewildcards.html参考
(vl load com);;CARREGAR OUTRO LISP
;;;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
(defun c:按通配符1(/str)搜索)
(如果(/=“”(setq str 1_序列))
(sssetfirst零
(ssget“_X”
(列表
'(0.“文本”)
(缺点1(LM:escapewildcards str))
)
)
)
)
(普林斯)
)
;;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;; 转义所提供字符串中的通配符特殊字符
(定义LM:escapewildcards(str)
(如果(wcmatch str str);
(如果(wcmatch str str);
(strcat“`”(substr str 1 1)(LM:转义码卡(substr str 2)))
(strcat(substr str 1 1)(LM:escapewildcards(substr str 2)))
)
str公司
)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SELECIONAR E JOGAR PARA A SUA CAMADA;;;;;;;;;;;;;;;;;
; 将选定对象更改为图层;NovaCamada criar uma camada nova e jogar os Selecionar pra dentro
(defun c:SendToNewLayer1()
(if(setq ss(car(cdr(ssgetfirst)))
(托拉耶1
(ssget“_P”);;选择排除锁定层
1_层
)
(程序
(普林斯)
);; 程序
);; 如果
)
(defun tolayer1(ss lay/i e)
;;; ss-选取集
;;; 层-层名称
(重复(setq i(sslength ss))
(entmod)
(subst
(cons 8层)
(assoc 8(entget(setq e(ssname ss(setq i(1-i k)а)))))
(entget e)
)
)
)
(命令“-LAYER”“\N”1\u LAYER”“)
(命令“-LAYER”“color”“Truecolor”1\u color 1\u LAYER”)
(命令“-LAYER”“set”1\u LAYER“”)
(vla sendcommand(vla get activedocument(vlax get acad object))“按通配符1搜索”
(vla sendcommand(vla get activedocument(vlax get acad object))“AETAGSCH \u P\r\r\u qsave\r”)
)
;;;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
;;;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
;;http://www.lee-mac.com/escapewildcards.html参考
(defun c:按通配符2(/str)搜索)
(如果(/=“”(setq str 2_序列))
(sssetfirst零
(ssget“_X”
(列表
'(0.“文本”)
(缺点1(LM:escapewildcards str))
)
)
)
)
(普林斯)
)
;;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;; 转义所提供字符串中的通配符特殊字符
(定义LM:escapewildcards(str)
(如果(wcmatch str str);
(如果(wcmatch str str);
(strcat“`”(substr str 1 1)(LM:转义码卡(substr str 2)))
(strcat(substr str 1 1)(LM:escapewildcards(substr str 2)))
)
str公司
)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SELECIONAR E JOGAR PARA A SUA CAMADA;;;;;;;;;;;;;;;;;
; 将选定对象更改为图层;NovaCamada criar uma camada nova e jogar os Selecionar pra dentro
(defun c:SendToNewLayer2()
(if(setq ss(car(cdr(ssgetfirst)))
(托拉耶2
(ssget“_P”);;选择排除锁定层
2_层
)
(程序
(普林斯)
);; 程序
);; 如果
)
(defun tolayer2(ss-lay/i-e)
;;; ss-选取集
;;; 层-层名称
(重复(setq i(sslength ss))
(entmod)
(subst
(cons 8层)
(assoc 8(entget(setq e(ssname ss(setq i(1-i k)а)))))
(entget e)
)
)
)
(命令“-LAYER”“\N”2\u LAYER”“)
(命令“-LAYER”“color”“Truecolor”2\u color 2\u LAYER”)
(命令“-LAYER”“set”2\u LAYER“”)
(vla sendcommand(vla get activedocument(vlax get acad object))“按通配符搜索2\r”)
(vla sendcommand(vla get activedocument(vlax get acad object))“AETAGSCH \u P\r\r\u qsave\r”)
)
;;;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
;;;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
;;http://www.lee-mac.com/escapewildcards.html参考
(defun c:按通配符3(/str)搜索)
(如果(/=“”(setq str 3_序列))
(sssetfirst零
(ssget“_X”
(列表
'(0.“文本”)
(缺点1(LM:escapewildcards str))
)
)
)
)
(普林斯)
)
;;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;; 转义所提供字符串中的通配符特殊字符
(定义LM:escapewildcards(str)
(如果(wcmatch str str);
(如果(wcmatch str str);
(strcat“`”(substr str 1 1)(LM:转义码卡(substr str 2)))
(strcat(substr str 1 1)(LM:escapewildcards(substr str 2)))
)
str公司
)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SELECIONAR E JOGAR PARA A SUA CAMADA;;;;;;;;;;;;;;;;;
; 将选定对象更改为图层;NovaCamada criar uma camada nova e jogar os Selecionar pra dentro
(定义c:SendToNewLayer3()
(if(setq ss(car(cdr(ssgetfirst)))
(tolayer3)
(ssget“_P”);;选择排除锁定层
3_层
)
(程序
(普林斯)
);; 程序
);; 如果
)
(defun tolayer3(ss lay/i e)
;;; ss-选取集
;;; 层-层名称
(重复(setq i(sslength ss))
(entmod)
(subst
(cons 8层)
(assoc 8(entget(setq e(ssname ss(setq i(1-i k)а)))))
(entget e)
)
)
)
(命令“-LAYER”“\N”3\u LAYER”“)
(命令“-LAYER”“color”“Truecolor”3\u color 3\u LAYER”)
(命令“-LAYER”“set”3\u LAYER“”)
(vla sendcommand(vla get activedocument(vlax get acad object))“按通配符搜索3\r”)
(vla sendcommand(vla get activedocument(vlax get acad object))“AETAGSCH \u P\r\r\u qsave\r”)
)
;;;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
 
 

                               
登录/注册后可看大图

000413c4gxe4cnzcc2nhpd.jpg

                               
登录/注册后可看大图
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-10 11:13 , Processed in 0.436695 second(s), 68 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表