找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 947|回复: 12

有若干个圆和若干条直线,圆和一条或多条直线相交,要求程序能自动将所有圆内的直线剪

[复制链接]
发表于 2005-3-3 21:23:33 | 显示全部楼层 |阅读模式

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

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

×
有哪位大侠能编一个满足如下要求的纯LISP程序,要求如下:

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

已领礼包: 11304个

财富等级: 富甲天下

发表于 2005-3-4 18:02:06 | 显示全部楼层

  1. (defun C:TRIMC (/ e p pc k r n ep)
  2. (SETVAR "CMDECHO" 0)
  3. (SETQ OLDOS (GETVAR "OSMODE") OLDBLIP (GETVAR "BLIPMODE"))
  4. (SETVAR "BLIPMODE" 0)
  5. (SETVAR "OSMODE" 0)
  6. (princ "\nPlease select a circle 请选择一个圆 :" )
  7. (setq e (car (entsel))
  8.       pc (cdr (assoc 10 (entget e)))
  9.       r (cdr (assoc 40 (entget e)))
  10. )
  11. (setq n 0)
  12. (setvar "pickbox" 5)
  13. (command "trim" e "")
  14. (repeat 180
  15.    (command "f" (polar p (/(* 2 n pi) 180)(* r 0.99)))
  16.    (setq n (1+ n))
  17.    (command (polar p (/ (* 2 n pi) 180)(* r 0.99))"")
  18. )
  19. (command "redraw")
  20. (SETVAR "BLIPMODE" 1)
  21. (SETVAR "OSMODE" OLDOS)
  22. (SETVAR "BLIPMODE" OLDBLIP)
  23. (SETVAR "CMDECHO" 1)
  24. (princ)
  25. )

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

使用道具 举报

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

使用道具 举报

发表于 2005-3-5 12:42:11 | 显示全部楼层
这两句修改一下就可以用了,2楼的程序不错,比较狠!!!!!!
(command "f" (polar pc (/(* 2 n pi) 180)(* r 0.99)))   ;_这里应该是pc,不是p
   (setq n (1+ n))
   (command (polar pc (/ (* 2 n pi) 180)(* r 0.99))"")   ;_这里应该是pc,不是p
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2005-3-5 21:04:28 | 显示全部楼层
1.
(repeat 180
   (command "f" (polar pc (/(* 2 n pi) 180)(* r 0.99)))
   (setq n (1+ n))
   (command (polar pc (/ (* 2 n pi) 180)(* r 0.99)) "")
)
(command "") ;多這行正常些

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

使用道具 举报

发表于 2005-3-5 23:09:45 | 显示全部楼层
测试:支持框选,内、外可选择。不支持多义线*PLINE
[php]
;;;加载通用函数
;;;下载:http://www.xdcad.net/forum/showthread.php?s=&threadid=325268
(load "xyp_lib")

;;;以圆为边界剪切内或外实体
;;;不支持多义线*PLINE
(defun c:test085 ()
  (cmdla0)
  (setq tx1 (ukword 1 "1 2" "\n\选择方向 : 1-内部/2-外部" tx1))
  (setq        SS (ssget '((0 . "CIRCLE")))
        n  -1
  )
  (setvar "osmode" 0)
  (command ".undo" "BE")
  (while (setq s1 (ssname ss (setq n (1+ n))))
    (setq rad (dxf 40 (entget s1))
          pt  (dxf 10 (entget s1))
          m   0
    )
  (repeat 5
    (tr-f)
     )
   )
  (command ".undo" "E")
  (cmdla0)
)
(defun tr-f ()
  (command "trim" ss "" "F")
  (repeat 361
    (if        (= tx1 "1")
      (setq pt1 (polar pt (* m (/ pi 180)) (- rad (/ rad 100))))
      (setq pt1 (polar pt (* m (/ pi 180)) (+ rad (/ rad 100))))
    )
    (setq m (1+ m))
    (command pt1)
  )
  (command "" "")
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

已领礼包: 11304个

财富等级: 富甲天下

发表于 2005-3-6 16:01:23 | 显示全部楼层
谢谢各位的指正,下面发一个SSGET版的。

  1. (defun C:TRIMC (/ e SS SL I pc r n)
  2. (SETVAR "CMDECHO" 0)
  3. (SETQ OLDOS (GETVAR "OSMODE") OLDBLIP (GETVAR "BLIPMODE"))
  4. (SETVAR "BLIPMODE" 0)
  5. (SETVAR "OSMODE" 0)
  6. (princ "\nPlease select a circle 请选择圆 :" )
  7. (IF (SETQ SS (SSGET '((0 . "CIRCLE")))) (PROGN
  8. (SETQ SL (SSLENGTH SS) I 0)
  9. (REPEAT SL
  10.   (setq e (SSNAME SS I)
  11.         pc (cdr (assoc 10 (entget e)))
  12.         r (* (cdr (assoc 40 (entget e))) 0.99)
  13.         I (1+ I)
  14.   )
  15.   (setq n 0)
  16.   (setvar "pickbox" 5)
  17.   (command "trim" e "")
  18.   (repeat 180
  19.    (command "f" (polar pc (/ (* 2 n pi) 180) r))
  20.    (setq n (1+ n))
  21.    (command (polar pc (/ (* 2 n pi) 180) r) "")
  22.   )
  23.   (command "")
  24. )
  25. ))
  26. (SETVAR "OSMODE" OLDOS)
  27. (SETVAR "BLIPMODE" OLDBLIP)
  28. (SETVAR "CMDECHO" 1)
  29. (princ)
  30. )

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

使用道具 举报

发表于 2005-3-7 21:52:47 | 显示全部楼层
为什么不试一试扩展工具里的EXTRIM,简单易行,完全可以实现,功能更强大。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

已领礼包: 11304个

财富等级: 富甲天下

发表于 2005-3-8 00:10:33 | 显示全部楼层
最初由 silen618 发布
[B]为什么不试一试扩展工具里的EXTRIM,简单易行,完全可以实现,功能更强大。 [/B]

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-27 23:02 , Processed in 0.423309 second(s), 56 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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