- 积分
- 1225
- 明经币
- 个
- 注册时间
- 2002-7-27
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
发表于 2020-3-22 23:03:03
|
显示全部楼层
两种方式可以修改
1 在Lisp 程序中可以设定对角点坐标,左小角与右上角,在对该范围内的实体查找,给你提供查找程序,再对实体修改。
2 利用块属性文字,在对其修改。
查找某范围内的实体程序
;nInt-在坐标内Lpt RPT内查找文字1、多文字2、视窗8、多义线16,天正标准块4,可叠加,如输入3,即选择该范围内文字与mtext
;Nflag-图纸空间还是模型空间 ,0-模型空间 1-图纸空间 2-模型空间、图纸空间内所有的
(defun GetRectEntity (LPt RPt nInt Nflag / filter a)
;------------坐标查询---------------
(setq filter (quote ((-4 . "and>"))))
(setq filter (append (list '(-4 . "<and") '(-4 . ">=,>=,*") (cons 10 LPt) '(-4 . "and>")
'(-4 . "<and") '(-4 . "<=,<=,*") (cons 10 RPt) '(-4 . "and>")
) filter)
)
;-----------------图纸空间模型空间查询------------------------------
(cond
((= 0 Nflag)(setq filter (append (list '(-4 . "<and") (cons 67 0) '(-4 . "and>")) filter)));模型空间
((= 1 Nflag)(setq filter (append (list '(-4 . "<and") (cons 67 1) '(-4 . "and>")) filter)));图纸空间
(t nil)
)
;---------------------实体查询--------------------------
(setq filter (append (quote ((-4 . "or>"))) filter))
;文本
(if (= 1 (logand nInt 1))(setq filter (append (list '(-4 . "<and")(cons 0 "TEXT") '(-4 . "and>")) filter)))
;多文本
(if (= 2 (logand nInt 2))(setq filter (append (list '(-4 . "<and") (cons 0 "MTEXT") '(-4 . "and>")) filter)))
;天正标注
(if (= 4 (logand nInt 4))(setq filter (append (list '(-4 . "<and") (cons 0 "TCH_DRAWINGNAME") '(-4 . "and>")) filter)))
;视窗
(if (= 8 (logand nInt 8))
(progn
(setq filter (append (quote ((-4 . "and>"))) filter))
(setq filter (append (list '(-4 . "<and") (cons 0 "VIEWPORT") '(-4 . "and>")) filter)
filter (append (list '(-4 . "<and") '(-4 . ">") (cons 69 1) '(-4 . "and>")) filter);将图纸空间删除
)
(setq filter (append (quote ((-4 . "<and"))) filter))
)
)
;多义线
(if (= 16 (logand nInt 16))(setq filter (append (list '(-4 . "<and") (cons 0 "LWPOLYLINE") '(-4 . "and>")) filter)))
(setq filter (append (quote ((-4 . "<or"))) filter))
;------------------------------------------------------
(setq filter (append (quote ((-4 . "<and"))) filter))
(setq a (ssget "X" filter))
(if (= a nil)(setq a (ssadd))(setq a a))
) |
|