明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2749|回复: 4

请教求大量线交点是读写DXF文件速度快还是LISP中写表快

[复制链接]
发表于 2011-12-7 00:02:15 | 显示全部楼层 |阅读模式
本帖最后由 x_s_s_1 于 2011-12-7 00:23 编辑

请各位大侠指教,写了如下代码,速度奇慢无比,基本想法是在所有线交点上画圆,以前有朋友用VBA写过一个,是通过将图元写为DXF然后在DXF文件中操作的,速度很快。不知为何?按道理LISP写表应该快一些



  1. (vl-load-com)
  2. ;;;以下代码来自bbs.mjtd.com
  3. ;;;计算曲线交点
  4. (defun Curveinters (en1 en2 / pl pts)
  5.   (setq pl  (vlax-invoke (vlax-ename->vla-object en2) 'IntersectWith (vlax-ename->vla-object en1) acExtendNone))
  6.   (while pl
  7.     (setq pts (append pts (list (list (car pl) (cadr pl) (caddr pl))))
  8.    pl (cdr (cdr (cdr pl)))
  9.    )
  10.     )
  11. pts
  12.   )
  13. ;;;曲线选择集交点
  14. (defun ssinters (ss / pts en1 en2)
  15.   (while (> (sslength ss) 1)
  16.     (setq en1 (ssname ss 0))
  17.     (ssdel en1 ss)
  18.     (setq n (sslength ss))
  19.     (repeat n
  20.       (setq en2 (ssname ss (setq n (1- n))))
  21.       (setq pts (append pts (Curveinters en1 en2)))
  22.       )
  23.     )
  24.   pts
  25.   )
  26. ;;;删除表中重复图元.不支持表中表的重复图元.
  27. ;;; (gps->lst-delsame '(1 2 1 2 (1 1) (1 2 1 2 1) 1 2 (1 1) (1 2)))
  28. ;;;  -->(1 2 (1 1) (1 2 1 2 1) (1 2))
  29. (defun gps->lst-delsame (lst / lstitem lstnew)
  30.    (foreach lstitem lst
  31.      (if (not (member lstitem lstnew))
  32.        (setq lstnew (append lstnew (list lstitem)))
  33.      )
  34.    )
  35.    lstnew
  36. )
  37. ;;;以上代码来自bbs.mjtd.com

  38.   (setq ss (ssget))
  39.   (setq ptlst (gps->lst-delsame (ssinters ss)))
  40.   (foreach pt ptlst (command "circle" pt 100))

本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2011-12-7 01:08:22 | 显示全部楼层
不好意思,是我自己脑袋被门挤了,进入误区了,解题方式有误,应该直接求直线端点,交点的组合太多了

点评

挤挤更健康  发表于 2011-12-7 07:21
发表于 2011-12-7 08:16:15 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2012-5-30 20:09:03 | 显示全部楼层
能把你的求交点的代码,贴出来吗?我也在学习求交点的代码
 楼主| 发表于 2012-6-2 10:12:20 | 显示全部楼层
hhh454 发表于 2012-5-30 20:09
能把你的求交点的代码,贴出来吗?我也在学习求交点的代码

求交点的代码上面有,我后来的处理方法是提取直线端点就行了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-9-25 11:03 , Processed in 0.185544 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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