明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4502|回复: 10

怎样判断顺弧逆弧?

[复制链接]
发表于 2003-5-5 09:53:00 | 显示全部楼层 |阅读模式
用Autolisp编程判断顺弧逆弧的一般情况是保留上一个实体的终点坐标,将其赋给一个变量,若下一个实体是圆弧,则将次变量与圆弧的起点坐标进行比较,如果相同,则说明该圆弧为逆时针。否则该圆弧为顺时针。
  可是这个判断条件对一种特殊情况并不适用:即上一段实体为顺弧,而下一段实体为逆弧时。此时第二段实体逆弧的起点坐标与第一段实体顺弧的起始坐标相等。如果按以上的条件进行判断,会把逆弧判断成顺弧。   本人曾试过在其中多加入一个判断条件,即如果两段弧的起始坐标相等的情况下,下一段实体为逆弧。可是没有用。
  请问用什么判别条件才能完整的判断是顺弧还是逆弧呢?
发表于 2003-5-5 10:42:00 | 显示全部楼层

不知你判断顺弧还是逆弧作和用途? 见内...

不知你判断顺弧还是逆弧作何用途?
一般直线的起始点是你开始画的那一点, 而圆弧的起始点不一定是你开始的那一点.不管你从那开始, 一旦画好以后, 它的起始点是过两个端点(始终点)的半径角度最小的那一点.
 楼主| 发表于 2003-5-5 10:50:00 | 显示全部楼层

是用于生成3B代码

我判断顺弧和逆弧是为了生成3B代码。圆弧的起始点不是按逆时针方向来选择的吗?即逆时针方向的第一点不是起始点吗?我使用了or函数来对其进行判断,函数入下:
(if (or (and (= jspx eplx) (= jspy eply))  (and (= jspx splx) (= jspy sply)))

其中:jspx,jspy为本段圆弧的起始点,splx,sply为上一段圆弧的起始点,eplx,eply为上一段实体的终点。第一个and函数是用于判断本段圆弧的起始点是否和上一段实体的终点重合,若重合则为逆弧。后一个and用于判断如果上一段实体为弧,若其起始点于本段弧的起始点重合,则可知本段弧为逆弧。可是运行时,这个判别式好像还是对我前面所说的情况进行判别。请问,是怎么会事呢?
发表于 2003-5-5 16:15:00 | 显示全部楼层

搞不懂你这里逆弧顺弧的意思,定义说说看? 判断点重合可用(equal pt1 pt2)...

 楼主| 发表于 2003-5-5 17:43:00 | 显示全部楼层

定义在附件里。我画了一副图,希望能给点提示该如何判断

本帖子中包含更多资源

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

x
发表于 2003-5-5 19:47:00 | 显示全部楼层

呵呵,这都是我走过的路呀!你还有很长的路要走!·#·¥

如果是多段线,弧度为正的是逆弧,负的是顺弧。
单纯圆弧,就需要中心点的位置坐标了。起点与终点的位置差别,以及起点与终点的起始角度不同,可以确定圆弧的顺逆。你自己再试试,不难,但是麻烦。!!!
你怎么处理线切割的火花补偿量!呵呵!我是说,你是不是不用“Offset”。
有空给我发邮件,我很少上网的!
 楼主| 发表于 2003-5-5 20:35:00 | 显示全部楼层

你的邮箱是什么啊?

是的,我是用offset命令的。我的程序是:无论你是用单线画的图形则先把它转换成多义线,然后使用offset命令对其进行偏置,偏置后再删除掉原来画的图形,仅保留偏置后的图形,这个时候就出现一个问题,在偏置后,我加入了一个delete命令,这时后要选择要删除的实体,可是偏置值一般都是很小的,一般都是零点几毫米的偏置值,这个时候在AUTOCAD上这点距离根本就分不出来,所以无法选择原来的实体进行删除。但是我的老师又要求只能保留偏置后的图形,请问有什么办法可以删除掉原来的图形吗? 
  保留偏置后的结果后再用explode命令把多义线炸开,然后进行实体的选择,创建选择集,最后用自己编的3B程序提取选择集内每个实体的信息(包含有循环了)进行计算然后得出3B代码。
  我另一个程序是编齿轮的,你已经给我回了一个帖了。等我整理一下后我想发到你邮箱,如果你有qq的话请告诉我。在qq上讨论更方便些。
 楼主| 发表于 2003-5-5 20:46:00 | 显示全部楼层

关于判断顺弧逆弧的问题你能在说得详细点吗?

我原来的意思是先画一条顺弧的,然后再画一条逆弧(就象我图上所画的一样)。然后加工的时候先从顺弧开始加工。根据我现有的知识,我提取出此顺弧的起始点在下方,然后起终点在上面。这个是没有问题的。然后接着顺弧我画一条逆弧(也象图上所示),然后此逆弧的起始点应该也和上面一条顺弧的起始点是重合的,这就与逆弧的一般判断条件(:如果圆弧的起始点为上一段实体的终点重合,则此圆弧为逆弧。)矛盾。因为此时这段逆弧的起始点没有和上一段顺弧的终点重合而是和顺弧的起始点重合了。这样程序就会转向SR方向而不是NR方向了。我的问题也在此了,就是说要用怎么样的判断条件才能把这种特殊的情况也判断进去。对于你的这句话:“起点与终点的位置差别,以及起点与终点的起始角度不同,可以确定圆弧的顺逆。”  我还不是很理解,我得出圆弧的起始点和终点坐标后如果不和上一段实体进行比较的话我怎么知道它是顺弧还是逆弧呢?因为在AUTOCAD里面圆弧总是规定好逆时针的啊。我的判断顺逆弧的方法也是参考别人的,但是我发现这个方法好像并不能把所有的情况都判断进去。请多多指教了。
发表于 2003-5-8 21:34:00 | 显示全部楼层

你可以这样做!

你可以在生成原始对象(一定是一个单一对象了)时,使用(setq  ss (entlast))语句,将对象赋给一个变量。在删除对象时,就可以直接用(command "erase" ss ""),即可!
我的邮箱是:lcl2094_cn@sina.com
我的个人竹叶:http://luocl-cad.myrice.com
欢迎来看看!
希望你能过有所收获!让我们共同提高吧!
 楼主| 发表于 2003-5-8 21:56:00 | 显示全部楼层

我还有一些问题想请教你

你用AUTOLISP编过提取样条曲线的代码然后生成3B代码的程序吗?我的老师现在叫我编一下提取样条曲线的信息然后生成3B代码的程序。如果你曾经编过的话麻烦你给我一点提示好吗?因为我是搞毕业设计的,所以比较急些。我的qq号码是:215531833。希望你能帮助我。谢谢了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-26 16:38 , Processed in 0.176999 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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