[求助]面积添加到属性块(保留小数)[已结]
本帖最后由 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) 在属性块面积属性里 显示的面积的单<BR>位 是 ha( 公 顷 ) 其 值 为 ㎡ 的 1/10000, 即<BR>106301.09÷10000=10.63. ( 保留两位小数 )<BR>2) 以㎡为单位的数据最好也能放入属性块中 , 可<BR>以暂时先放在地块编号中 .</FONT></P>
<P><FONT size=4>谢谢啦,</FONT></P>
<P></P> 你图上的不都已经绑定了吗?
;面积加入属性。明经 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)
)
<p>建议你使用属性块的扩展词典功能,很好用!</p> 看来是规划的童鞋啊,应该可以做得更贴近工作习惯的东西 <p>谢谢Z版,功能太强大了</p> 我能否浏览一下啊? 看不到啊,看来要努力了 看来很复杂啊 <p>3楼的程序收藏了。</p>
<p>谢谢斑竹</p>
<p>看看,好好的学习学习</p>