明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3586|回复: 9

[讨论] 本人最近研究一键处理建筑底图程序,有问题请教各位

[复制链接]
发表于 2014-4-15 17:27:21 | 显示全部楼层 |阅读模式
本帖最后由 124803430 于 2014-4-15 17:37 编辑
  1. (defun c:ee()
  2.   (while (setq n (tblnext "layer" (null n)))
  3.     (setq layername (cdr(assoc 2 n)))
  4.     (command "layer" "c" "8" layername)
  5.     (command "")
  6.     )
  7.   )
  8. (defun c:ff()
  9.   (while (setq n (tblnext "layer" (null n)))
  10.     (setq layername (cdr(assoc 2 n)))
  11.     (command "layer" "c" "8" layername)
  12.     (command "")
  13.     )
  14.   (command "layer" "f" "*a-wind-iden" "")
  15.   (command "layer" "f" "*a-spac-iden" "")
  16.   (command "layer" "f" "*dim_iden" "")
  17.   (command "layer" "f" "*a-anno-levl"  "")
  18.   (command "layer" "f" "*a-anno-dims" "")
  19.   (command "layer" "f" "*a-grid" "")
  20.   (command "layer" "f" "*a-dim-iden" "")
  21.   (command "layer" "f" "*a-anno-note" "")
  22.   )
  23. (defun c:za()
  24.   (setq qq (nentsel "\n 请选择需要冻结的图层:" ))
  25.   (setq qqname (car qq))
  26.   (setq lay (cdr(assoc 8 (entget qqname))))
  27.   (command "layer" "f" lay "")
  28.   )
发表于 2014-4-15 17:41:57 | 显示全部楼层
我在用2014,外参照进来的图都是灰色的,不用改,建议用一下高版.
2008就不是灰色的,其它版不清楚.
回复 支持 0 反对 1

使用道具 举报

 楼主| 发表于 2014-4-15 17:32:21 | 显示全部楼层
本帖最后由 124803430 于 2014-4-15 17:33 编辑

因为我们这边底图都是外部参照,每个图参照过来的话图层显示会加竖向号,使得每个图层只有后面的名字相同,图层名本来不同
本人思路就是冻结几种特定图层,有些没冻结的图层就用手动关闭,然后图层全部改成8号灰色。但是因为外部参照图层图层名不一样。
只能使用通配符搜索功能,这样如果图层一多造成程序运行太慢。
如何能提高程序运行速度,给个思路或改进方法
变成8号色其实也挺慢的,这个程序不知道有改进方法没?
发表于 2014-4-15 19:28:12 | 显示全部楼层
同求
 楼主| 发表于 2014-4-15 21:14:20 | 显示全部楼层
kwok 发表于 2014-4-15 17:41
我在用2014,外参照进来的图都是灰色的,不用改,建议用一下高版.
2008就不是灰色的,其它版不清楚.

高版本的CAD用起来机器太卡了。
 楼主| 发表于 2014-4-16 11:05:19 | 显示全部楼层
人工顶贴~~~~~~~~
 楼主| 发表于 2014-4-17 09:21:19 | 显示全部楼层
没人回帖啊????
 楼主| 发表于 2014-4-17 21:01:01 | 显示全部楼层

没人回帖啊????
发表于 2014-4-22 05:51:43 | 显示全部楼层
你可以用先用下面代码,然后插入为外部参照
;---------- 将所选对象设置为0-建筑底图 线性不变
(defun c:0T (/ ceng ss en dxf lt)
        (setvar "cmdecho" 0)
        (setq ceng "0-建筑底图")
        (princ (strcat "\n---将所选对象设置为" ceng ",属性随层"))
        (if (not (tblsearch "layer" ceng))
                (command "_layer" "m" ceng "c" "8" ceng "lt" "Continuous" ceng "")
                (command "layer" "s" ceng "c" "8" "" "lt" "Continuous" ceng "")
        )
        (while (setq ss (ssget ":s"))
                (repeat (setq n (sslength ss))
                        (setq en (ssname ss (setq n (1- n))))
                        (setq dxf (entget en))
                        (if (not (cdr (assoc 6 dxf)))
                                (progn
                                        (setq lt (cdr (assoc 6 (entget (tblobjname "layer" (cdr (assoc 8 dxf)))))))
                                        (command "chprop" en "" "la" ceng "lw" "ByLayer" "lt" lt "")
                                )
                                (command "chprop" en "" "la" ceng "lw" "ByLayer" "")
                        )
                )
        (command "change" ss "" "p" "c" "bylayer" "lt" "" "la" ceng "lw" "bylayer" "")
        )
        (princ (strcat "\n---将所选对象设置为" ceng ",属性随层"))
        (setvar "cmdecho" 1)
        (princ)
)
这样的话除了块,其他的基本上都达到你的要求了,如果觉得块也要修改,请先用下面代码
;---------- 将块内所有对象更改到0图层,颜色随层。
(defun c:0t1 ( / e i l n ss x )
    (if (setq ss (ssget '((0 . "INSERT"))))
        (repeat (setq i (sslength ss))
            (if (not (member (setq n (cdr (assoc 2 (entget (ssname ss (setq i (1- i))))))) l))
                (progn
                    (setq e (tblobjname "block" n)
                          l (cons n l)
                    )
                    (while (setq e (entnext e))
                        (setq x (entget e))
                        (entmod (subst '(8 . "0") (assoc 8 x) x))
                    )
                )
            )
        )
    )
    (command "_.regen")
    (princ)
)
发表于 2015-12-18 15:22:14 | 显示全部楼层
tranney 发表于 2014-4-22 05:51
你可以用先用下面代码,然后插入为外部参照
;---------- 将所选对象设置为0-建筑底图 线性不变
(defun c: ...

谢谢前辈,这个程序处理建筑图挺好的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-21 01:09 , Processed in 0.204284 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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