明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1278|回复: 3

制作ATTDEF属性块

[复制链接]
发表于 2015-7-21 16:22:09 | 显示全部楼层 |阅读模式
  1. (setq blc (getint "\n请输入比例尺1:"))
  2.   (setvar 'userr1 blc);设置比例尺
  3.   ;(setq zg (* 0.002 blc));字高
  4.   (setq scale (* 0.001 blc));缩放比例

  5. ;16、将选择集做成属性块(选择集中单行文本作为属性)
  6. (defun emkattblk (inspt scale height height2 height3 height4 / ent i pt pzx0)
  7.   (entmake (list '(0 . "block") (cons 2 "gc1200") '(70 . 2) (cons 10 inspt)))
  8.    (entmake (list '(0 . "circle") '(8 . "0")  (cons 10 inspt) '(40 .  1)))
  9. (setq ss (ssadd (entlast)))
  10.   (repeat (setq i (sslength ss))
  11.     (setq ent (entget (ssname ss (setq i (1- i)))))
  12.     (if (= (cdr (assoc 0 ent)) "circle")
  13.       ;(entmake (list '(0 . "ATTDEF") (assoc 10 ent) (assoc 40 ent) (assoc 1 ent) (cons 3 (cdr (assoc 1 ent))) (cons 2 (cdr (assoc 1 ent))) '(70 . 0)))
  14.       ;(entmake (cdr ent))
  15.       (progn
  16. ;;;插入属性
  17.   (entmake (list
  18.              '(0 . "ATTdef")
  19.              '(100 . "AcDbEntity")
  20.              '(100 . "AcDbText")
  21.               (cons 10 (setq pt (polar inspt 0 (* 1.2 scale))))
  22.               (cons 40 (* 2.0 scale))
  23.               (cons 50 0)
  24.               (cons 41 0.8)
  25.               (cons 51 0)
  26.               (cons 1 height)
  27.               (cons 7 "HZ")
  28.               (cons 72 2)
  29.               (cons 11 pt)
  30.               '(100 . "AcDbAttributeDefinition")
  31.        (cons 3 "height")
  32.               (cons 2 height)
  33.               (cons 70  0)
  34.               (cons 74 1)
  35.            )
  36.    )
  37. ;;;;;;;;
  38.   (entmake (list
  39.              '(0 . "ATTdef")
  40.              '(100 . "AcDbEntity")
  41.              '(100 . "AcDbText")
  42.         (cons 62 2)
  43.               (cons 10 pt)
  44.               (cons 40 (* 2.0 scale))
  45.               (cons 50 0)
  46.               (cons 41 0.8)
  47.               (cons 51 0)
  48.               (cons 1 height2)
  49.               (cons 7 "HZ")
  50.               (cons 72 0)
  51.               (cons 11 pt)
  52.               '(100 . "AcDbAttributeDefinition")
  53.               (cons 3 "height2")
  54.        (cons 2 height2)
  55.               (cons 70  0)
  56.               (cons 74 3)
  57.            ))
  58.   ;;;;;;;;;;;;
  59.   (entmake (list
  60.              '(0 . "ATTdef")
  61.              '(100 . "AcDbEntity")
  62.              '(100 . "AcDbText")
  63.        (cons 62 3)
  64.               (cons 10 pt)
  65.               (cons 40 (* 2.0 scale))
  66.               (cons 50 0)
  67.               (cons 41 0.8)
  68.               (cons 51 0)
  69.               (cons 1 height3)
  70.               (cons 7 "HZ")
  71.               (cons 72 0)
  72.         (cons 73 2)
  73.               (cons 11 pt)
  74.               '(100 . "AcDbAttributeDefinition")
  75.               (cons 3 "height3")
  76.        (cons 2 height3)
  77.               (cons 70  0)
  78.               (cons 74 1)
  79.            ))
  80.   ;;;;;;
  81. (entmake (list
  82.              '(0 . "ATTdef")
  83.              '(100 . "AcDbEntity")
  84.              '(100 . "AcDbText")
  85.        (cons 62 3)
  86.               (cons 10 (setq pzx0 (polar pt (* 1.5 pi) (* 2 scale))))
  87.               (cons 40 (* 2.0 scale))
  88.               (cons 50 0)
  89.               (cons 41 0.8)
  90.               (cons 51 0)
  91.               (cons 1 height4)
  92.               (cons 7 "HZ")
  93.               (cons 72 0)
  94.         (cons 73 2)
  95.               (cons 11 pzx0)
  96.               '(100 . "AcDbAttributeDefinition")
  97.        (cons 3 "height4")
  98.               (cons 2 height4)
  99.               (cons 70  0)
  100.               (cons 74 3)
  101.            ))
  102.    ;;;结束标志
  103.   )
  104.     )
  105.   )
  106.   (entmake '((0 . "ENDBLK")))

  107.   (entmake (list '(0 . "INSERT") (cons 2 "gc1200") (cons 10 inspt) (cons 41 scale)(cons 42 scale)(cons 43 scale)))
  108.   (command "_.erase" ss "")

  109. )

  110. (setq inspt (getpoint ""))
  111. (setq height "12345")
  112. (setq height2 "hhhh")
  113. (setq height3 "ggggfd")
  114. (setq height4 "ghggg")
  115. (emkattblk inspt scale height height2 height3 height4 )
发表于 2015-7-21 23:48:18 | 显示全部楼层
上图
发表于 2015-7-28 08:34:33 | 显示全部楼层
感谢楼主无私奉献,受益匪浅!
发表于 2015-8-9 11:58:25 | 显示全部楼层
上个图看看,如何使用和效果
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-23 02:43 , Processed in 0.190890 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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