明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2884|回复: 6

AUTOCAD中如何用AOTOLISP更改块属性的值、文字大小、旋转方向?

[复制链接]
发表于 2012-5-21 17:42:30 | 显示全部楼层 |阅读模式
AutoCAD中如何用AOTOLISP更改块属性的值、文字大小、旋转方向?比如块属性标记为A,请给出相应的程序代码.谢谢!
发表于 2012-5-21 19:30:49 | 显示全部楼层
做好了,就不要改它了.要不做一个块替换它
发表于 2012-5-21 19:54:46 | 显示全部楼层
本帖最后由 qq229918602 于 2012-5-21 19:56 编辑

使用群码更新。
  • (DEFUN CHATTRIB (OLDATT NEWATT)
  • (IF (AND (PRINC "\nSelect Block with attribute 选择带属性图块 :")
  •           (SETQ SS (SSGET '((0 . "INSERT") (66 . 1))))) (PROGN
  •   (SETQ I -1)
  •   (REPEAT (SSLENGTH SS)
  •    (SETQ ENT (ENTGET (SSNAME SS (SETQ I (1+ I))))
  •          ENT1 ENT)
  •    (WHILE (= (CDR (ASSOC 0 (SETQ ENT1 (ENTGET (ENTNEXT (CDR (ASSOC -1 ENT1))))))) "ATTRIB")
  •     (IF (= (CDR (ASSOC 1 ENT1)) OLDATT) (PROGN
  •   (SETQ ENT1 (SUBST (CONS 1 NEWATT) (ASSOC 1 ENT1) ENT1))
  •   (ENTMOD ENT1)
  •   (ENTMOD ENT)
  • ))
  •    )
  •   )
  • ))
  • (PRINC)
  • )
  • (DEFUN C:A ()
  • (IF (AND (SETQ OATT (GETSTRING "\nOld Attrib 原属性 :"))
  •        (SETQ NATT (GETSTRING "\nNew Attrib 新属性 :")))
  •   (CHATTRIB OATT NATT)
  • )
  • (PRINC)
  • )

发表于 2012-5-22 16:44:03 | 显示全部楼层
可以,我这里有自己编辑的原程序,你可以参考。需要,可与我联系
 楼主| 发表于 2012-5-22 17:28:57 | 显示全部楼层
hvac_wh 发表于 2012-5-22 16:44
可以,我这里有自己编辑的原程序,你可以参考。需要,可与我联系

源程序能发我不?谢谢
发表于 2012-5-23 05:32:08 | 显示全部楼层
(defun blockatte (obname / en flag dat dat1 blk1 blk2 blk3 blk4)
    (setq blkl nil
          blk2 nil
          blk3 nil
          blk4 nil
    )
    (if        (= (type obname) 'ENAME)
      (progn
        (setq en   (entget obname)
              dat1 en
        )
        (cond ((and (= (cdr (assoc 66 en)) 1)
                    (= (cdr (assoc 0 en)) "INSERT")
               )
               (setq flag T)
              )
              (T (setq flag nil))
        )                                ;cond

        (while flag
          (setq dat (entnext (cdr (assoc -1 en))))
          (if (= dat nil)
            (setq flag nil)
            (progn
              (setq en (entget dat))
              (cond
                ((= (cdr (assoc 0 en)) "ATTRIB")
                 (setq blkl (cons (cdr (assoc -1 en)) blkl)
                       blk2 (cons (cdr (assoc 2 en)) blk2)
                       blk3 (cons (cdr (assoc 1 en)) blk3)
                 )
                                        ;setq
                )
              )                                ;cond
              (if (= (cdr (assoc 0 en)) "SEQEND")
                (setq flag nil)
                (setq flag T)
              )                                ;if
            )                                ;progn
          )                                ;if
        )                                ;end while

      )                                        ;progn
    )                                        ;if
    (if        (= blkl nil)
      nil
      (setq blkl (list (cdr (assoc 10 dat1))
                       (reverse blkl)
                       (reverse blk2)
                       (reverse blk3)
                 )
      )
    )                                        ;if
  )                       
发表于 2012-5-23 05:36:12 | 显示全部楼层
hvac_wh 发表于 2012-5-23 05:32
(defun blockatte (obname / en flag dat dat1 blk1 blk2 blk3 blk4)
    (setq blkl nil
          blk2 nil

输入参数 (blockatte 实体名)  输出((块插入点)(块属性实体列表)(块属性标签列表)(块属性显示文字表)),再对属行进行修改
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-24 07:58 , Processed in 0.169242 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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