iCAx开思网
标题:
求大牛帮忙写个lisp程序
[打印本页]
作者:
fothy
时间:
2006-10-17 14:35
标题:
求大牛帮忙写个lisp程序
有若干不规则闭合图形
有一条基准线(Y轴方向)
计算:
每个不规则图形长度*每个不规则图形的质心到基准线的水平距离(X方向)
以上除以所有不规则图形总周长
(质心:假设该图形有一定厚度,密度均匀)
求得以上的商数
谢谢大牛帮忙写个lisp程序
作者:
qomolangma
时间:
2006-10-17 15:30
标题:
看看我的程序
;;; 2D object center
(defun c:peridiv()
(setq ss (ssget))
(setq i 0 total-peri 0.0 result 0.0)
(while (< i (sslength ss))
(setq ent (ssname ss i))
(setq vlaobj (vlax-ename->vla-object ent))
(setq perimeter (vlax-get-property vlaobj 'Perimeter))
(setq centroid (vlax-get-property vlaobj 'Centroid))
(if (and (/= perimeter nil) (/= centroid nil))
(progn
(setq item (* perimeter (car (vlax-safearray->list (vlax-variant-value centroid)))))
(setq total-peri (+ total-peri perimeter))
(setq result (+ result item))
)
)
(setq i (+ i 1))
)
(alert (strcat "The Result is : " (rtos (/ result total-peri) 2 4)))
(setq ss nil)
)
作者:
qomolangma
时间:
2006-10-17 15:32
标题:
说明
在运行之前请将封闭的多边形组成面域(region).
作者:
fothy
时间:
2006-10-17 21:01
请问这个lisp具体怎么操作
已经转换为面域
已经加载lisp程序 peridiv
已经选择所有图形
接下去就没了
作者:
qomolangma
时间:
2006-10-18 14:10
1:先将要计算的各个封闭多边形组成面域。
2:加载程序,之后在命令行中输入命令。
3:选择计算的对象,完成之后回车。
4:若正常完成后将显示出一个对话框,之中就是结果了。
作者:
fothy
时间:
2006-10-20 19:05
出现错误
no function definition: VLAX-ENAME->VLA-OBJECT
作者:
qomolangma
时间:
2006-10-20 19:55
以上程序我是在AutoCAD2007中调试通过的,可能是你的系统版本问题。
作者:
qomolangma
时间:
2006-10-20 19:58
;;; 2D object center
(defun c:peridiv()
(vl-load-com)
(setq ss (ssget))
(setq i 0 total-peri 0.0 result 0.0)
(while (< i (sslength ss))
(setq ent (ssname ss i))
(setq vlaobj (vlax-ename->vla-object ent))
(setq perimeter (vlax-get-property vlaobj 'Perimeter))
(setq centroid (vlax-get-property vlaobj 'Centroid))
(if (and (/= perimeter nil) (/= centroid nil))
(progn
(setq item (* perimeter (car (vlax-safearray->list (vlax-variant-value centroid)))))
(setq total-peri (+ total-peri perimeter))
(setq result (+ result item))
)
)
(setq i (+ i 1))
)
(alert (strcat "The Result is : " (rtos (/ result total-peri) 2 4)))
(setq ss nil)
)
欢迎光临 iCAx开思网 (https://www.icax.net/)
Powered by Discuz! X3.3