找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 678|回复: 4

[LISP程序]:急!!!如何选择两条线段作为圆的剪切边界?

[复制链接]
发表于 2005-7-19 10:43:13 | 显示全部楼层 |阅读模式

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

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

×
作一个圆,从圆心引出两条半径,其夹角为α,其余部分的圆需要剪切掉,我的大体思路是这样的:
……
(command "line" oo gwai1 "")  ;;连接圆心与圆周上一点形成一夹角线
          (setq el1 (entlast))  
(command "line" oo gwai2 "")
        (setq el2 (entlast))  ;;连接圆心与圆周上一点形成另一夹角线
  (setq el (ssget  el1 el2)) ;;构成剪切边界的选择集

……

(command "circle" oo rnei "")   ;;作圆(rnei已计算赋值)
  (command "trim"  el "" nei0 "")  ;;剪切命令

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

已领礼包: 111个

财富等级: 日进斗金

发表于 2005-7-19 13:02:27 | 显示全部楼层
将“(setq el (ssget el1 el2)) ;;构成剪切边界的选择集”删除;
将“(command "trim" el "" nei0 "") ;;剪切命令”改为:
“(command "trim" el1 el2 ""
             (polar oo (angle oo (mapcar '* '(0.5 0.5) (mapcar '+ gwai1 gwai2))) rnei)
             ""
    )”即可。
不能用ssget加两个图元实体构成选择集,正确的方式如下:
          (ssget  [方式]  [点列表]  [过滤列表]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2005-7-19 13:35:00 | 显示全部楼层
  1. [FONT=courier new](load "xyp_lib")
  2. ;|加载通用函数(可在签名栏直接下载)
  3. 如果已经下载xyp_lib并放到搜索路径下可以不再下载!
  4. 利用以下任何一种方式即可加载和运行通用函数内的所有子程序:
  5. 1.在acad.lsp中增加(load"xyp_lib")
  6. 2.在每个程序内增加(load"xyp_lib")
  7. 3.在command下,输入(load"xyp_lib")
  8. 4.在菜单.mnl中增加(load"xyp_lib")
  9. 5.将xyp_lib.vlx文件直接拽到cad屏幕
  10. [COLOR=red] ★通用函数下载地址:[/COLOR][url]http://www.xdcad.net/forum/attachment.php?s=&postid=1606661[/url]|;

  11. ;;;作一个圆,从圆心引出两条半径,其夹角为α,其余部分的圆需要剪切掉
  12. ;;;tangdeyu
  13. (defun c:test ()
  14.   (CMDLA0)
  15.   (setq        rnei (UREAL 7 "" "\n半径" rnei)
  16.         oo   (getpoint "\n圆心点 : ")
  17.   )
  18.   (command "circle" oo rnei)
  19.   (setq s1 (entlast))
  20.   (setq        pt1 (getpoint oo "\n夹角线1方向 : ")
  21.         pt2 (getpoint oo "\n夹角线2方向 : ")
  22.   )
  23.   (command "line"
  24.            (polar oo (angle oo pt1) rnei)
  25.            oo
  26.            (polar oo (angle oo pt2) rnei)
  27.            ""
  28.   )
  29.   (mkla"弧"1)
  30.   (command "arc"
  31.            (polar oo (angle oo pt1) rnei)
  32.            "c"
  33.            oo
  34.            (polar oo (angle oo pt2) rnei)
  35.   )
  36.   (vl-erase s1)
  37.   (CMDLA1)
  38. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-7-19 14:25:52 | 显示全部楼层
很好,但不如二楼的简洁,单独运行没有什么问题,插入程序中时,找不到一个函数,将二楼的再改正一下,可能更有助于初学者使用。我说的很直吧。谢谢了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-28 09:39 , Processed in 0.349064 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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