明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2169|回复: 3

图块数据

[复制链接]
发表于 2011-10-17 20:53 | 显示全部楼层 |阅读模式
本帖最后由 jeike456 于 2011-10-17 20:55 编辑

;大家好,向大家请教一下下面这一段程式:有几句看不懂
;程式中的sl 是一个很多个块的选择集,


(defun tt ()
  (setq block_list '())
  (setq v 0)
    (repeat (sslength sl)
    (setq ename (ssname sl v))
    (setq en-data (entget ename))
    (setq blokn (cdr (assoc 2 en-data)))
    (setq ent1 (entnext ename))
   
;下面程式是在做什么?
(setq ent (entget ent1))                                    
    (if (/= (cdr (assoc 2 ent)) "SN")(geten))   
    (if (= (member blokn block_list) nil)
    (setq block_list (cons blokn block_list))
    );end if
(setq ent (subst (cons 1 "") (assoc 1 ent) ent))
        (setq ent (subst (cons 7 "TXT") (assoc 7 ent) ent))
        (setq ent (subst (cons 41 0.7) (assoc 41 ent) ent))
        (setq ent (subst (cons 50 0.0) (assoc 50 ent) ent))
(entmod ent)
(entupd ent1)  
    (setq v (1+ v))
  );end repeat

(defun geten ()
  (setq ent1 (entnext ent1))
  (setq ent (entget ent1))
)   ;end geten
发表于 2011-10-17 21:42 | 显示全部楼层
本帖最后由 cabinsummer 于 2011-10-17 21:43 编辑

  1. (defun tt ()
  2.   (setq block_list '());;;block_list空表
  3.   (setq v 0);;;v变量初始化为0
  4.     (repeat (sslength sl);;;重复次数为sl选择集中块的数量
  5.     (setq ename (ssname sl v)) ;;;sl选择集中第v个块名
  6.     (setq en-data (entget ename));;;第v个块的数据
  7.     (setq blokn (cdr (assoc 2 en-data)));;;块的名称
  8.     (setq ent1 (entnext ename));;;块中第一个属性
  9. (setq ent (entget ent1));;;块中第一个属性的数据
  10.     (if (/= (cdr (assoc 2 ent)) "SN")(geten));;;如果属性标记为SN,则geten
  11.     (if (= (member blokn block_list) nil);;;如果blokn不是block_list的成员
  12.     (setq block_list (cons blokn block_list));;;则将blokn加到Block_list前部组成一个新表
  13.     );end if
  14. (setq ent (subst (cons 1 "") (assoc 1 ent) ent));;;属性值置空
  15.         (setq ent (subst (cons 7 "TXT") (assoc 7 ent) ent));;;属性字体式样改为TXT
  16.         (setq ent (subst (cons 41 0.7) (assoc 41 ent) ent));;;属性宽度比例改为0.7
  17.         (setq ent (subst (cons 50 0.0) (assoc 50 ent) ent));;;属性旋转角度为0
  18. (entmod ent);;;修改属性数据
  19. (entupd ent1);;;更新属性显示
  20.     (setq v (1+ v));;;下一个块
  21.   );end repeat

  22. (defun geten ()
  23.   (setq ent1 (entnext ent1));;;提取下一个属性
  24.   (setq ent (entget ent1));;;下一个属性数据
  25. );end geten
 楼主| 发表于 2011-10-17 22:19 | 显示全部楼层
cabinsummer 发表于 2011-10-17 21:42

很感谢
发表于 2011-10-27 13:59 | 显示全部楼层
学习了,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-19 08:17 , Processed in 0.436025 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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