liaobadadi 发表于 2009-9-8 21:41:00

大侠,救命~!

<p>我知道一个块的联合属性列表,用ssget 获得的,但是我在表里面找不到这个块当前的坐标值,如何解决噢,谢谢了,(用entsel&nbsp; 可以获得,但是对象不允许我一个个的选)。</p>

luowy 发表于 2009-9-8 23:50:00

nentsel?

liu_kunlun 发表于 2009-9-9 08:10:00

<p>entsel只能选到insert实体,其块名在第2组。</p><p>用(tblsearch "block" (cdr (assoc 2 (entget (car (entsel))))))</p><p>可得到块的组表:例如</p><p>((0 . "BLOCK") (2 . "*U1") (70 . 1) (10 489.159 365.93 0.0) (-2 . <br/>&lt;图元名: 7ef54ea0&gt;))</p><p>其块表后面的实体名,即为块内的第一个实体</p>

liaobadadi 发表于 2009-9-9 22:10:00

<p>依侠客之言 还是不行啊 ,组表如下:</p><p>((0 . "BLOCK") (2 . "c0") (70 . 0) (4 . "") (10 0.0 0.0 0.0) (-2 . &lt;图元名: <br/>7efb2e58&gt;))</p><p>对-2 项用ENTGETG获得如下:</p><p>((-1 . &lt;图元名: 7efb2e58&gt;) (0 . "CIRCLE") (330 . &lt;图元名: 7efb2e50&gt;) (5 . "1F8B") <br/>(100 . "AcDbEntity") (67 . 0) (8 . "0") (62 . 21) (100 . "AcDbCircle") (10 0.0 <br/>0.0 0.0) (40 . 1.0) (210 0.0 0.0 1.0))</p><p>还是没找到当前块的坐标 啊》&nbsp; 为啥呢?</p><p></p><p></p>

liaobadadi 发表于 2009-9-9 22:11:00

自己先 顶顶!

liu_kunlun 发表于 2009-9-10 08:16:00

<p>第一个组码的10组即为块定义的参照点坐标。而块的插入点坐标在inert实体中,即(car (entsel))得到的实体,10组。</p><p>第二个组码的10组即为该块中园的圆心坐标,但图形中圆心并不一定在此,需要将块内坐标转换到块外。</p><p>多参考帮助中dxf组码的内容</p><p>不太清楚你所说“当前块的坐标”到底指什么?</p>

liaobadadi 发表于 2009-9-10 17:47:00

我说的当前块的坐标指,块的插入坐标,依大侠之言,意思是,属性列表中找不到块的坐标,只找得到块中实体的坐标,需要把这个坐标再自己转换出来,转成块现在的插入坐标值??还是不懂 菜鸟上传了一个圈的块,大侠不吝赐教,写个能读取这个块坐标的程序,谢了~

ZZXXQQ 发表于 2009-9-10 20:43:00

;读块的插入点坐标 明经 ZZXXQQ 2009.9.10<br/>(defun c:tt ()<br/>&nbsp;(if (and (setq s1 (entsel "\n选择图块 :"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq ent (entget(car s1)))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (= (cdr(assoc 0 ent)) "INSERT")) (progn<br/>&nbsp; (princ "\n")<br/>&nbsp; (princ (cdr (assoc 10 ent)))<br/>&nbsp;))<br/>)<br/>

liaobadadi 发表于 2009-9-11 21:10:00

我不能用ENTSEL ,我只知道图元名,SSNAME 获得的~

liaobadadi 发表于 2009-9-12 21:17:00

继续顶上去,为了一个答案~
页: [1] 2
查看完整版本: 大侠,救命~!