找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1359|回复: 13

[LISP函数]:封闭pl线计算面积,并标在图上

[复制链接]
发表于 2005-4-5 18:37:38 | 显示全部楼层 |阅读模式

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

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

×
我自己写的一个关于封闭pl线计算面积,并标在图上的lsp

现在有几个问题,请大家指导一下。
  1,程序的四舍五入部分,不知道该怎么优化一下
  2,标出来的面积虽然已经转化到平方米,但是后面会有好多个零,不知道怎么解决。



;;写多个封闭pl线面积

(defun c:ae(/ plx mj pt n)
    (setq mj 0)
    (setq n 0)
    (setq plx (car (entsel)))
    (while (/= plx nil)
       (progn
          (plx_mj)
          (setq mj (+ mj cc))
          (setq n (+ n 1))
          (setq plx (car (entsel)))
       )
    )
    (setq pt (getpoint "\n请选择面积插入点:"))
    (command "text" pt "3000" "" mj)
    (princ n)
    (princ "个元素的面积和")
    (princ)
)
(prompt  "\n******ae--写多个封闭pl线面积******")
(prompt  "\n******(最好闭合pl线)******")
(princ)

(defun plx_mj()   
    (command "area" "e" plx)
    (setq aa (rtos (getvar "area")))
    (setq bb (strlen aa))
    (setq bb (- bb 4))
    (setq cc (substr aa 1 bb))
    (setq cc (atoi cc))
    (setq dd (substr aa (+ bb 1) 1))
    (setq dd (atoi dd))
    (if (>= dd 5)
        (setq cc (+ cc 1))
    )
    (setq cc (/ cc 100.00))
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
 楼主| 发表于 2005-4-5 18:42:29 | 显示全部楼层
求多个pl线的面积和时候会有提示说明多少个元素的和
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

已领礼包: 12个

财富等级: 恭喜发财

发表于 2005-4-9 18:57:44 | 显示全部楼层
试试另一种
见:http://www.xdcad.net/forum/showthread.php?s=&threadid=360152
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2005-4-11 19:13:56 | 显示全部楼层
RTOS

设定的数值转为字符串???楼上的兄弟,请您仔细的读一下我的程序,多谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-11 22:35:41 | 显示全部楼层
1楼楼主回帖后又仔细阅读了一下其程序,你的程序使用RTOS函数确能抑制后续"0"(也可编一个递规调用去尾零的子程序),不信的话你可以按以下的试一试:
(defun c:ae (/ plx mj pt n)
  (setq mj 0)
   ......
  (setq pt (getpoint "\n请选择面积插入点:"))
  (setq mj (rtos mj 2))   ;此句为新添加,不加此句第一次运行出错,因下一句命令"TEXT"要求字符串,而非REAL
  (command "text" pt "3000" "" mj)
   ......
)
其它:
一、1楼楼主除上述错误外还有6楼楼主所说的面积计算错误的问题,给你一个提示,问题出在以下这句:(setq cc (/ cc 100.00)) ,请自行改正。
二、程序还可修改一下,适用于求所有封闭图形的面积,而非仅仅封闭pl线面积。
三、全局与局部变量、变量的命名、容错及程序结构等都有......
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2005-4-14 19:12:10 | 显示全部楼层
形成封闭pl线再计算面积,有时会很麻烦,对封闭区域求面积会省点事:http://www.xdcad.net/forum/showthread.php?s=&threadid=272117
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-28 03:52 , Processed in 0.262361 second(s), 56 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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