找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 4296|回复: 15

[LISP程序]:生成面域并在其内标注面积(m2)和质心

[复制链接]
发表于 2006-6-26 11:32:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
(defun c:wb ();生成面域并在其内标注面积(m2)和质心
(VL-LOAD-COM)
(setq AcadObject   (vlax-get-acad-object)
      AcadDocument (vla-get-ActiveDocument AcadObject)
      mSpace           (vla-get-ModelSpace AcadDocument)
)
  
(setq p1 t)
(while p1
  (if *error*
  (command "-boundary" (setq p1 (getpoint "点取封闭区域内部的一点:"))  "A" "o" "R" "" "")
  (command "-boundary" (setq p1 (getpoint "点取封闭区域内部的一点:")) "Y" "A" "o" "R" "" "")
)
(setq EN (entlast))

(command "area" "o" EN)
(setq AA (getvar "area"))
(COMMAND "TEXT" p1 500 0 (RTOS (/ AA 1000000) 2 3))
(setq Centriod (vla-get-Centroid (vlax-ename->vla-object EN)))
(setq x (vlax-safearray-get-element (vlax-variant-value Centriod) 0))
(setq y (vlax-safearray-get-element (vlax-variant-value Centriod) 1))
(entdel en)
(command "circle" (list x y 0) 500 "")
  )
nil
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-11-22 11:42:50 | 显示全部楼层
不错的程序,谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-6-14 16:41:59 | 显示全部楼层
程序不能使用,出错
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 111个

财富等级: 日进斗金

发表于 2007-6-27 22:48:18 | 显示全部楼层
其实(setq AcadObject (vlax-get-acad-object)
AcadDocument (vla-get-ActiveDocument AcadObject)
mSpace (vla-get-ModelSpace AcadDocument)
)
是多余的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-6-29 05:09:22 | 显示全部楼层
如果文字居中与圆心并文字有平方符号就更完美了,而且退出后提示错误,希望楼主能否修正!!!怎么没有个完整的求面积lsp
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-7-17 00:18:41 | 显示全部楼层
我的一个求形心程序
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-10-11 23:02:25 | 显示全部楼层
这种生成面域有点慢而且有命令行有提示
可以vla-addregion
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-10-24 17:09:37 | 显示全部楼层
没人气...............................
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-11-15 22:53:45 | 显示全部楼层
可以用字段来实现啊。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-12-13 21:39:38 | 显示全部楼层
谢谢`
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-3-22 16:56:09 | 显示全部楼层
不错............
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2008-3-24 11:29:37 | 显示全部楼层
凑个热闹:)  http://zml84.blog.sohu.com/77169816.html

  1. ;;;=======================================;;;功能:根据点位表,计算截面特性值;;;参数:LST_PT  ----截面内外轮廓线二维点表(defun ZML-JM (LST_PT          /             X面积        X静矩           对X轴惯性矩               Y面积          Y静矩             对Y轴惯性矩           PT0               X0          Y0             X1                Y1           XX               YY          Y面积             Y静矩        面积A           面积B               YA          YB             惯性矩A        惯性矩B           X形心               Y形心          对形心X轴惯性矩        对形心Y轴惯性矩               对X轴惯性矩             LST_X        LST_Y           MAX_X               MAX_Y          MIN_X             MIN_Y        形心至上   形心至下               形心至左          形心至右              )    ;;==========    ;;第一部分  计算与面积有关的特性    (setq X面积        0          Y面积        0          X静矩        0          Y静矩        0          对X轴惯性矩 0          对Y轴惯性矩 0    )    (setq PT0 (last LST_PT))    (foreach PT        LST_PT        (progn            ;;            (setq X0 (car PT0)                  Y0 (cadr PT0)                  X1 (car PT)                  Y1 (cadr PT)            )            (setq XX (- X1 X0)                  YY (- Y1 Y0)            )            ;;对于X轴            ;;备忘:a为矩形,b为三角形            (setq 面积A          (* XX Y0)                  YA          (* 0.5 Y0)                  惯性矩A (* (/ 1.0 12) XX Y0 Y0 Y0)                  惯性矩A (+ 惯性矩A (* 面积A YA YA))            )            (setq 面积B          (* 0.5 XX YY)                  YB          (+ Y0 (/ YY 3.0))                  惯性矩B (* (/ 1.0 36) XX YY YY YY)                  惯性矩B (+ 惯性矩B (* 面积B YB YB))            )            (setq X面积              (+ X面积 面积A 面积B)                  X静矩              (+ X静矩 (* 面积A YA) (* 面积B YB))                  对X轴惯性矩 (+ 对X轴惯性矩 惯性矩A 惯性矩B)            )            ;;对于y轴            ;;备忘:a为矩形,b为三角形            (setq 面积A          (* YY X0)                  YA          (* 0.5 X0)                  惯性矩A (* (/ 1.0 12) YY X0 X0 X0)                  惯性矩A (+ 惯性矩A (* 面积A YA YA))            )            (setq 面积B          (* 0.5 YY XX)                  YB          (+ X0 (/ XX 3.0))                  惯性矩B (* (/ 1.0 36) YY XX XX XX)                  惯性矩B (+ 惯性矩B (* 面积B YB YB))            )            (setq Y面积              (+ Y面积 面积A 面积B)                  Y静矩              (+ Y静矩 (* 面积A YA) (* 面积B YB))                  对Y轴惯性矩 (+ 对Y轴惯性矩 惯性矩A 惯性矩B)            )            (setq PT0 PT)        )    )    ;;计算形心位置    (setq X形心        (/ Y静矩 Y面积)          Y形心        (/ X静矩 X面积)    )    ;;计算对自身形心的惯性矩    (setq 对形心X轴惯性矩 (- 对X轴惯性矩 (* X面积 Y形心 Y形心))          对形心Y轴惯性矩 (- 对Y轴惯性矩 (* Y面积 X形心 X形心))    )    ;;==========    ;;第二部分  计算截面的边缘位置    (setq LST_X        '()          LST_Y        '()    )    (foreach PT        LST_PT        (setq LST_X (cons (car PT) LST_X)              LST_Y (cons (cadr PT) LST_Y)        )    )    (setq MAX_Y        (apply 'max LST_Y)          MIN_Y        (apply 'min LST_Y)          MAX_X        (apply 'max LST_X)          MIN_X        (apply 'min LST_X)    )    (setq 形心至上 (- MAX_Y Y形心)          形心至下 (- Y形心 MIN_Y)          形心至右 (- MAX_X X形心)          形心至左 (- X形心 MIN_X)    )    ;;==========    ;;第三部分  返回结果    (list (cons "面积" Y面积)          (cons "形心" (list X形心 Y形心))          (cons "形心至上" 形心至上)          (cons "形心至下" 形心至下)          (cons "形心至左" 形心至左)          (cons "形心至右" 形心至右)          (cons "对X轴静矩" (- X静矩))          (cons "对Y轴静矩" Y静矩)          (cons "对X轴惯性矩" (- 对X轴惯性矩))          (cons "对Y轴惯性矩" 对Y轴惯性矩)          (cons "对形心X轴惯性矩" (- 对形心X轴惯性矩))          (cons "对形心Y轴惯性矩" 对形心Y轴惯性矩)    ))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-5-24 14:39:11 | 显示全部楼层
面积标注好像有点问题,怎么都是0
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-6-19 10:47:29 | 显示全部楼层
不知道怎么用,先下下来试试看
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-8-29 03:54:26 | 显示全部楼层
不好用
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-17 21:25 , Processed in 0.207025 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表