zxjing 发表于 2010-8-6 15:03:00

[求助]面积添加到属性块(保留小数)[已结]

本帖最后由 zxjing 于 2011-2-19 00:03 编辑 <br /><br /><P><FONT face=Verdana size=4>各位前辈,大家好! 我现在遇到这样一个问题 , 请</FONT></P>
<P><FONT face=Verdana size=4>帮忙 . 需要把已经测出的面积绑定到 属性块<BR>123 的面积属性里 .<BR>已经测量出的面积的单位是㎡ , 如图 106301.09 <BR>1) 在属性块面积属性里&nbsp; 显示的面积的单<BR>位 是 ha( 公 顷 ) 其 值 为 ㎡ 的 1/10000, 即<BR>106301.09÷10000=10.63. ( 保留两位小数 )<BR>2) 以㎡为单位的数据最好也能放入属性块中 , 可<BR>以暂时先放在地块编号中 .</FONT></P>
<P><FONT size=4>谢谢啦,</FONT></P>
<P></P>

gufeng 发表于 2010-8-7 11:08:00

你图上的不都已经绑定了吗?

ZZXXQQ 发表于 2010-8-7 11:52:00



;面积加入属性。明经 ZZXXQQ 2009.10.2,2010.8.7
(defun c:addarea ()
(setvar "CMDECHO" 0)
(while (and (setq s1 (entsel "\n选择封闭地块 :"))
             (setq ent (entget(car s1)))
             (wcmatch (cdr(assoc 0 ent)) "*POLYLINE")
             (/= (cdr(assoc 70 ent)) 0))
(command ".AREA" "e" s1)
(redraw (car s1) 3)
(setq sa (rtos(/ (getvar "AREA") 10000) 2 2))
(setq sa1 (rtos (getvar "AREA") 2 2))
(if (and (setq s2 (entsel "\nSelect Block with Attrib 选择带属性图块 :"))
         (setq ent (entget(setq en (car s2))))
         (= (cdr(assoc 0 ent)) "INSERT")
         (= (cdr(assoc 66 ent)) 1)
         (= (cdr(assoc 2 ent)) "123")) (progn
   (setq ent1 ent)
   (while (= (cdr(assoc 0 (setq ent1 (entget(entnext(cdr(assoc -1 ent1))))))) "ATTRIB")
    (if (= (cdr(assoc 2 ent1)) "地块编号")
   (entmod (subst(cons 1 sa1) (assoc 1 ent1) ent1))
    )
    (if (= (cdr(assoc 2 ent1)) "面积")
   (entmod (subst(cons 1 sa) (assoc 1 ent1) ent1))
    )
   )
   (entmod ent)
))
(redraw (car s1) 4)
)
(princ)
)

syk070205 发表于 2010-8-7 16:48:00

<p>建议你使用属性块的扩展词典功能,很好用!</p>

luowy 发表于 2010-8-9 15:33:00

看来是规划的童鞋啊,应该可以做得更贴近工作习惯的东西

zxjing 发表于 2010-8-10 12:34:00

<p>谢谢Z版,功能太强大了</p>

124350440 发表于 2010-8-15 10:58:00

我能否浏览一下啊?

qingtao210 发表于 2010-8-15 23:48:00

看不到啊,看来要努力了

display18 发表于 2010-8-20 22:32:00

看来很复杂啊

461045462 发表于 2010-9-21 22:51:00

<p>3楼的程序收藏了。</p>
<p>谢谢斑竹</p>
<p>看看,好好的学习学习</p>
页: [1] 2 3 4 5
查看完整版本: [求助]面积添加到属性块(保留小数)[已结]