找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2817|回复: 26

[编程申请]:请版主帮忙:用什么方法可以将选择的多条样条曲线长度相加?

[复制链接]
发表于 2002-10-15 17:49:23 | 显示全部楼层 |阅读模式

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

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

×
工作中需要一个功能:用area命令可以查询样条曲线的长度,用其中的“相加”功能可以将多条样条曲线的面积相加,但不能将长度相加。可否改进这个命令,让它可以将多条样条曲线的长度相加呢?
请版主和各位高手帮忙!
多谢了!
ynweng@21cn.com
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-10-15 21:00:33 | 显示全部楼层

多条曲线长度计算程序写好了


  1. [FONT=courier new]
  2. ;|
  3.    命令:XDTB_CurveLength
  4.    功能:计算曲线(LINE,ARC,ELLIPSE,*POLYLINE,SPLINE,CIRCLE)长度,M可以多选,
  5.    否则计算单个曲线部分长度或总长
  6. |;
  7. (defun c:XDTB_CurveLength (/ e p1 p2 ss cur_dist)
  8.   (xdrx_sysVar_Push  "osmode")
  9.   (initget "M")
  10.   (setq e (xdrx_entsel "\n请选取计算长度的曲线实体[多选-M]<退出>:"))
  11.   (setq cur_dist 0)
  12.   (cond
  13.     ((= e "M")
  14.       (if (setq ss (ssget '((0 . "*line,circle,arc,ellipse"))))
  15.         (progn
  16.           (xdrx_setsstodb ss 0)
  17.           (while (setq e (xdrx_getentdata 0))
  18.             (setq cur_dist (+ cur_dist (cadr (xdrx_getarea e))))
  19.           )
  20.         )
  21.       )
  22.     )
  23.     ((and e (listp e))
  24.       (setq e (car e))
  25.       (setvar "osmode" 512)
  26.       (if (and
  27.             (setq p1 (getpoint "\n曲线间第一点<结束取总长>:"))
  28.             (setq p2 (getpoint "\n曲线间第二点<结束取总长>:"))
  29.           )
  30.         (progn
  31.           (setq p1 (xdrx_curve_getClosestPoint e p1)
  32.                 p2 (xdrx_curve_getClosestPoint e p2)
  33.           )
  34.           (setq cur_dist (abs (xdrx_curve_getdistatpoint e p1 p2)))
  35.         )
  36.         (setq cur_dist (abs (cadr (xdrx_getarea e))))
  37.       )
  38.     )
  39.   )
  40.   (xdrx_sysvar_pop)
  41.   (if (/= cur_dist 0)
  42.     (prompt (strcat "\n曲线长度值: " (rtos cur_dist 2 2)))
  43.   )
  44.   (princ)
  45. )
  46. [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-10-15 21:33:22 | 显示全部楼层
谢谢XDsoft!我试了一下,命令行显示:
“错误: 输入的字符串有缺陷”
不能正常加载,该怎么办?
此外,我希望达到的功能是将多条Spline的长度相加,不知你写的代码有没有这个功能?
非常希望能解决这个问题,在此多谢了!

我用的软件是ACAD2002中文版,我曾经试着写了一些简单的LISP,可以正常运行。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-10-16 15:26:54 | 显示全部楼层
你好!我反复测试过,还是用不了。请你看看是怎么回事?输入命令,显示:“XDTB_CurveLength ; 错误: no function definition: XDRX_SYSVAR_PUSH”。
谢谢!
ynweng@21cn.com
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-10-16 17:25:42 | 显示全部楼层
最初由 ynweng 发布
[B]你好!我反复测试过,还是用不了。请你看看是怎么回事?输入命令,显示:“XDTB_CurveLength ; 错误: no function definition: XDRX_SYSVAR_PUSH”。
谢谢!
ynweng@21cn.com [/B]


这个程序要在“晓东工具箱”环境下运行。你要保证使用的是最新版本的晓东工具箱。

这个工具可以计算任意的曲线长度,LINE,ARC,CIRCLE,ELLIPSE,SPLINE,*POLYLINE
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2002-10-16 23:34:44 | 显示全部楼层
我这测总长可以(第一点后回车,或直接回车)
点两下后出错(测量某一段尺寸)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-10-16 23:39:28 | 显示全部楼层
最初由 aeo 发布
[B]我这测总长可以(第一点后回车,或直接回车)
点两下后出错(测量某一段尺寸) [/B]


是在最新的“晓东工具箱”下面用吗?

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

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2002-10-17 21:59:34 | 显示全部楼层
曲线间第一点<...>:
曲线间第二点<...):error: bad argument type
(ABS (XDRX_CURVE_GETDISTATPOINT E P1 P2))
........

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

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2002-10-17 22:41:35 | 显示全部楼层
对api不熟,我找了好一会.
应该是
        (setq p1 (cadr [/COLOR] (xdrx_curve_getClosestPoint e p1))
                 p2 (cadr [/COLOR] (xdrx_curve_getClosestPoint e p2))
        )
不要cadr
新版改过了吗?我的还是前一版.
是obj_curve.LSP里面的,上面贴的对的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-10-24 21:08:39 | 显示全部楼层
我试过,运行没有问题,但计算的结果好象总比我lisp的结果相加小,应该不是四舍五入的问题,就算我取整数也不对.是那里的问题??附件文件中实际值是1782,但用程序算却是:

Command: XDTB_CurveLength

请选取计算长度的曲线实体[多选-M]<退出>:m
Select objects: Other corner: 3 found

Select objects:

曲线长度值: 1779.01

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2002-10-26 21:14:07 | 显示全部楼层
下载、解压缩都没有问题,我试过了,你再试试。xdsoft及各位高手,我的问题出在那里??
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-10-26 21:20:08 | 显示全部楼层
最初由 冰火 发布
[B]下载、解压缩都没有问题,我试过了,你再试试。xdsoft及各位高手,我的问题出在那里?? [/B]


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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 08:36 , Processed in 0.227545 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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