找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1749|回复: 2

[求助] [求助]:如何用entmake创建一个复杂图元的带属性的块?

[复制链接]
发表于 2002-9-5 14:09:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
如何用entmake创建一个复杂图元的带属性的块?:1 :a :c
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2002-9-6 15:16:06 | 显示全部楼层

就这样简单(假定你熟悉DXF)。

1  做块block
2  做insert

注意属性标志的组码。
我那个写坐标的程序就是用ENTMAKE把坐标搞成的无名属性块。


下载后用一下,查看一下标注的坐标的各个组码,就知道该怎样写了。

从结构上看,是比较全的:文字、多段线、属性都有。

下载  [url]http://inlayout.com/product/sitecoord/sitecoordsetup.exe[/URL]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2002-9-7 00:38:05 | 显示全部楼层
这样生成的块的属性在2002中只能用ddatte编辑,双击时提示没有属性?

  1. (defun $yb_mkunblk (p1            p2            str1    str2    $angle  str
  2.                     /            lst0    lst1    blkn    lx            pt3
  3.                     pa2            pa3            $yb_mkattrib
  4.                    )
  5.   (defun drop (lst item)
  6.     (append (reverse (cdr (member item (reverse lst))))
  7.             (cdr (member item lst))
  8.     )
  9.   )
  10.   ;;生成Attdef 或 attrib
  11.   (defun $yb_mkattrib (p str $angle code1 code2 tf)
  12.     (list (cons        0
  13.                 (if tf
  14.                   "ATTDEF"
  15.                   "ATTRIB"
  16.                 )
  17.           )
  18.           '(100 . "AcDbEntity")
  19.           '(67 . 0)                        ;模型空间
  20.           '(8 . "0")                        ;图层
  21.           '(100 . "AcDbText")
  22.           (cons 10 p)                        ;文字起点
  23.           (cons 40 h)                        ;字高
  24.           (cons 1 str)                        ;缺省值
  25.           (CONS        100
  26.                 (IF TF
  27.                   "AcDbAttributeDefinition"
  28.                   "AcDbAttribute"
  29.                 )
  30.           )
  31.           (cons 2 (substr str 1 1))
  32.           '(70 . 8)
  33.           '(73 . 0)
  34.           (cons 50 $angle)                ;旋转角
  35.           '(41 . 0.75)                        ;宽度因子
  36.           '(51 . 0.0)                        ;倾角
  37.           '(7 . "z")                        ;字体样式
  38.           '(71 . 0)                        ;文字生成标志
  39.           (cons 72 code1)
  40.           (cons 74 code2)
  41.           (cons        11
  42.                 (if (/= (+ code1 code2) 0)
  43.                   p
  44.                   '(0.0 0.0 0.0)
  45.                 )
  46.           )                                ;对齐点
  47.           '(210 0.0 0.0 1.0)                ;拉伸方向
  48.           (if tf
  49.             (cons 3 (substr str 1 1))
  50.           )

  51.     )
  52.   )
  53.   (entmake
  54.     (list '(0 . "block") '(2 . "*U") '(70 . 1) (cons 10 p1))
  55.   )
  56.   (entmake (list '(0 . "LWPOLYLINE")
  57.                  '(100 . "AcDbEntity")
  58.                  '(8 . "0")
  59.                  '(100 . "AcDbPolyline")
  60.                  '(90 . 3)
  61.                  (cons 10 p1)
  62.                  (cons 10 p2)
  63.                  (cons 10 pt3)
  64.                  '(210 0.0 0.0 1.0)
  65.            )
  66.   )
  67.   (setq blkn (entmake '((0 . "ENDBLK"))))
  68.   (setq        lst0 (list '(0 . "INSERT")
  69.                    '(100 . "AcDbEntity")
  70.                    (cons 8 (getvar "clayer"))
  71.                    '(100 . "AcDbBlockReference")
  72.                    '(66 . 1)
  73.                    (cons 10 p1)
  74.                    '(41 . 1.0)
  75.                    '(42 . 1.0)
  76.                    '(43 . 1.0)
  77.                    '(50 . 0.0)
  78.                    '(70 . 0)
  79.                    '(71 . 0)
  80.                    '(44 . 0.0)
  81.                    '(45 . 0.0)
  82.                    '(210 0.0 0.0 1.0)
  83.              )
  84.   )
  85.   (setq lst1 (append lst0 (list (cons 2 blkn))))
  86.   (entmake lst1)
  87.   ;;引用属性
  88.   (entmake (drop ($yb_mkattrib pa2 px $angle 0 0 nil) nil))
  89. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-26 05:02 , Processed in 0.171143 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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