艾什顿
发表于 2010-7-27 18:15:00
461045462
发表于 2010-8-5 06:47:00
<p>谢谢<font face="Verdana" color="#61b713"><b>gufeng</b></font>与斑竹</p>
<p>下载了收集起来,好好学习学习</p>
gufeng
发表于 2010-8-5 14:46:00
根据你说的修改了,可以计算出没有使用Close闭合的多段线,前提是多段线的首尾节点需要重合.
(defun c:test (/ AREA_H AREA_WSERRHAN NEWENTLAST
OBJ OBJ_AREAOBJ_I OBJ_NAME
OBJ_VLA OLDCMDECHOOLDDELOBJ OLDENTLAST
PT JD
)
(vl-load-com)
(setq obj (ssget '((0 . "*POLYLINE"))))
(if obj
(progn
(setq obj_i -1)
(setq oldcmdecho (getvar "cmdecho"))
(setq oldDELOBJ (getvar "DELOBJ"))
(setvar "cmdecho" 0) ;_禁止回显
(setvar "DELOBJ" 0) ;_控制创建面域保留原对象
(setq errhan '()) ;_不能创建面域的图元句柄表
(setq area_ws 3) ;_面积的小数位数
(setq area_h 3) ;_面积文字的高度
(setq jd 1e6);_面积除以这个数 1e6=10的6次方 需要自己设定
(repeat (sslength obj)
(setq obj_name (ssname obj (setq obj_i (1+ obj_i)))) ;_图元名
(setq obj_vla (vlax-ename->vla-object obj_name)) ;_Vla对象
(setq oldentlast (entlast))
(command "_region" obj_name "") ;_创建面域
(setq newentlast (entlast))
(if (equal oldentlast newentlast) ;_如果创建面域不成功
(progn
(setq errhan (cons (cdr (assoc 5 (entget obj_name))) errhan))
)
(progn
(setq obj_area (vla-get-Area obj_vla)) ;_面积
(setqobj_area (/ obj_area jd))
(setq pt (vlax-safearray->list
(vlax-variant-value
(vla-get-centroid
(vlax-ename->vla-object newentlast)
)
)
)
) ;_取得面域或实体的面积或质量的中点
(command "-text"
"j"
"mc"
pt
area_h
0
(rtos obj_area 2 area_ws)
)
(entdel newentlast)
)
)
)
(if errhan
(progn
(princ "\n没有标注面积的图元句柄列表:\n")
(princ errhan)
)
)
(setvar "DELOBJ" oldDELOBJ)
(setvar "cmdecho" oldcmdecho)
)
)
(princ)
)
xd-xdcad
发表于 2010-8-7 07:54:00
谢谢楼主的更改,我会进一步试验程序,若有问题会及时反馈给楼主
xd-xdcad
发表于 2010-8-10 13:16:00
<p>不知怎的,又出现下面提示</p>
<p><font face="Verdana">错误: no function definition: VLAX-ENAME->VLA-OBJECT</font></p>
<p>原先仅安装2002,程序执行没有问题,安装2004后,在2002系统中,出项错误提示</p>
<p><font face="Verdana">补充一句,在2004系统中没有问题<br/> </p></font>
gufeng
发表于 2010-8-10 23:31:00
<p>估计你使用的是2楼的代码 使用11楼的代码应该没问题</p>
<p><font face="Verdana">错误: no function definition: VLAX-ENAME->VLA-OBJECT</font> </p>
<p> 是没有将 Visual LISP 扩展功能加载到 AutoLISP 使用 (vl-load-com)即可 11楼的代码已经加上</p>
linshiyin2
发表于 2010-8-11 08:05:00
留个记号
xd-xdcad
发表于 2010-8-11 10:01:00
<p>加载的就是楼主11楼的程序</p>
<p>我原先安装了2002版本,运行楼主的程序没有问题,自从安装了2004后,今天发现,不仅楼主的程序不能运行,好多程序都不能运行了,包括LSP、VLX</p>
<p><font face="Verdana"><font face="Verdana"><font face="Verdana">加载LSP程序出现:错误: no function definition: VLAX-ENAME->VLA-OBJECT</font> <br/>加载VLX出现:警告:未能加载Autocad类型库:“加载类型库/DLL时出错"</font></font></p>
gufeng
发表于 2010-8-11 13:53:00
<p>修复安装2002试试,如果不行,找论坛的高手帮帮忙,没遇到过这问题,抱歉.</p>
461045462
发表于 2010-8-13 12:45:00
<p>谢谢</p>
<div> <span style="FILTER: glow(color='#A6BA98',strength='2'); WIDTH: 105px"><font face="Verdana" color="#61b713"><b>gufeng</b></font>很实用</div>
<div>我使用了很好</div></span>
页:
1
[2]
3
4
5
6
7
8
9
10
11