找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3138|回复: 9

[每日一码] line,arc,circle消重,真正的秒杀

[复制链接]
发表于 2013-6-27 13:15:16 | 显示全部楼层 |阅读模式

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

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

×
新发布的API中的xdrx_Pickset_RemoveDupLine line,arc,circle消重函数,效率高到极致,测试20000条直线消重,仅需0.5秒!我用Lisp编写的直线消重程序,消重20000条直线用时132秒!有了这强大的API,我都想把自己的函数库扔了!{:soso_e118:}
  1. ;;arc、line/circle除重
  2. (defun c:t15 ()
  3.   ;;设置全局精度距离精度、角度精度
  4.   (xdrx_document_setprec 0.001 0.001)
  5.   (setq ss (ssget '((0 . "line,arc,circle"))))
  6.   (setq StartTime (car (_VL-TIMES)))
  7.   ;;line,arc,circle选择集删重线
  8.   (xdrx_Pickset_RemoveDupLine ss)
  9.   (princ (strcat "\n  用时  " (rtos (* 0.001 (- (car (_VL-TIMES)) StartTime)) 2 4) "  秒 "))
  10.   (princ)
  11.   )

命令: t15
选择对象: 指定对角点: 找到 20200 个
选择对象:
对图层0消除重线: 由20200变为202
  用时  0.5150  秒 "\n  用时  0.5150  秒 "
命令:

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

已领礼包: 35个

财富等级: 招财进宝

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

使用道具 举报

发表于 2013-6-27 21:17:57 来自手机 | 显示全部楼层
lisp用132s绝对是你的算法问题,lisp肯定比不过arx,但这个算法好的话肯定不会是132s来自: Android客户端

点评

确实是我程序的问题!调整了下程序,Lisp合并用时11秒左右!也就是和arx速度差20倍左右!  详情 回复 发表于 2013-6-27 23:56
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-27 23:56:12 | 显示全部楼层
本帖最后由 Love-Lisp 于 2013-6-28 00:00 编辑
Free-Lancer 发表于 2013-6-27 21:17
lisp用132s绝对是你的算法问题,lisp肯定比不过arx,但这个算法好的话肯定不会是132s

确实是我程序的问题!调整了下程序,Lisp合并用时10秒左右!也就是和arx速度差20倍左右!:lol
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2107个

财富等级: 金玉满堂

发表于 2013-7-3 05:09:41 | 显示全部楼层
太强大了,真的想快点用起API,话说XDAPI真的很强大,看了一下里面的命令功能很全,比LISP强大多了。CAD版本只能06,希望06的API早日完工,谢谢。:)

点评

早就出来了啊,从2004-2014版本都有,你确认刚从火星归来?  详情 回复 发表于 2013-7-3 10:31
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-7-3 10:31:28 | 显示全部楼层
evayleung 发表于 2013-7-3 05:09
太强大了,真的想快点用起API,话说XDAPI真的很强大,看了一下里面的命令功能很全,比LISP强大多了。CAD版 ...

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

使用道具 举报

已领礼包: 2107个

财富等级: 金玉满堂

发表于 2013-7-3 12:24:55 | 显示全部楼层
是出来了,不少命令都用不了。0630的版本没下载,上一个版本挺多命令都显示无此命令的。

点评

你说的命令是指啥? 是XDRX_API里面的函数没有,还是什么其他工具的命令没有? 举几个例子贴上来吧。  详情 回复 发表于 2013-7-3 12:55
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-7-3 12:55:10 | 显示全部楼层
evayleung 发表于 2013-7-3 12:24
是出来了,不少命令都用不了。0630的版本没下载,上一个版本挺多命令都显示无此命令的。

你说的命令是指啥?  是XDRX_API里面的函数没有,还是什么其他工具的命令没有?

举几个例子贴上来吧。

点评

*** == AutoCAD 应用程序开发接口XdRx_API For AutoCAD Build 2013.6.16 == *** 出现这行,应该是成功加载API了。 然后输入 命令: (setq a "建筑设计") "建筑设计" 命令: (xdrx_string_right a 4) "设  详情 回复 发表于 2013-7-3 23:06
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2107个

财富等级: 金玉满堂

发表于 2013-7-3 23:06:30 | 显示全部楼层
本帖最后由 evayleung 于 2013-7-3 23:08 编辑
newer 发表于 2013-7-3 12:55
你说的命令是指啥?  是XDRX_API里面的函数没有,还是什么其他工具的命令没有?

举几个例子贴上来吧。 ...
可能是我表达不清楚,不好意思啊,应该是API里面的函数吧,也许是我应用不当。请指教
***  == AutoCAD 应用程序开发接口XdRx_API For AutoCAD Build 2013.6.16  ==  ***
出现这行,应该是成功加载API了。

然后输入
命令: (setq a "建筑设计")
"建筑设计"

命令: (xdrx_string_right a 4)
"设计"


这个函数是有反应的,再然后输入

命令: (xdrx_string_tok "abc;;def;;efg" ";")

就不会返回值了,
按说明应该是返回以下值的。
xdrx_string_tok

功    能:将由给定分割字符串分割的字符串组成表,若是"",忽略

调用格式:(xdrx_string_tok <字符串> <分割字符串>)

返 回 值:字符串表

示    例:(xdrx_string_tok "abc;;def;;efg" ";;")=("abc" "def" "efg")
          (xdrx_string_tok "abc;;def;;efg" ";")=("abc" "def" "efg")
          (xdrx_string_tok "abcddefgddzdf" "d")=("abc" "efg" "z" "f")
          (xdrx_string_tok "abcddefgddzdf" "dd")=("abc" "efg" "z" "f")
          (xdrx_string_tok ",1,2" ",")=("1" "2) ;前面的""忽略
          (xdrx_string_tok ",1,2,,,3,")=("1" "2" "3") ;;""忽略


点评

命令: (xdrx_string_tok "abc;;def;;efg" ";") ("abc" "def" "efg") 命令: (xdrx_string_regexps "[^;]+" "abc;;def;;efg") ("abc" "def" "efg") 命令: (xdrx_string_split "abc;;def;;efg" ";") ("abc" ""  详情 回复 发表于 2018-8-22 14:25
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

发表于 2018-8-22 14:25:13 | 显示全部楼层
evayleung 发表于 2013-7-3 23:06
可能是我表达不清楚,不好意思啊,应该是API里面的函数吧,也许是我应用不当。请指教
***  == AutoCAD 应 ...

命令: (xdrx_string_tok "abc;;def;;efg" ";")
("abc" "def" "efg")

命令: (xdrx_string_regexps "[^;]+" "abc;;def;;efg")
("abc" "def" "efg")

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 08:09 , Processed in 0.415549 second(s), 50 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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