查看: 3748  |  回复: 6
45度圆弧的体验可不可以改进

主题

回复
发表于2021-12-08 18:31:19 | 显示全部楼层
1# 电梯直达

现在的45度圆弧布线是把一条线分成多个圆弧,多段直线的。

这种走线的布局不容易细调,经常出现只能调整一个个圆弧和一个个直线的情况,而且删除一条走线的时候也需要一个个线段去删除,很麻烦。


因此我提出一个想法,可以做成导线拐角位置+导线间圆角半径参数的方式,每一个圆角都是每个导线拐角的一个半径参数。

这样只有两种调整情况:

1.移动圆弧就调整圆角半径大小,保持圆弧跟随鼠标位置,达到移动圆弧但是保持在同一根线上的效果;

2.而移动直线就保持圆角半径不变,只移动直线,达到圆弧大小不变的效果。

这样的线条可以很方便的从45度直角线转换而来,只需要给每一个拐角加上圆角半径参数;转换回去也很方便。

通过合理的程序,这种走线的长度也是可以计算显示出来的。

我认为,这样做出来的单段式走线会比多段不连续的导线操作起来更流畅。

望采纳


主题

回复
发表于2021-12-08 23:55:51   |  显示全部楼层
3#
发表于2021-12-08 20:37:15  2# 试试专业版?

我的意思,不仅仅是把所有部件合并,而是使用可以调节的导线。

对专业版,详细说来,当编辑圆弧时,并不是计算与两条直线段相切的圆角,而是直接修改圆弧的大小,这样做出来的45度是不光滑的,实际上不能用。

当编辑直线时,并不是保持圆弧和直线相切,而是创建一个新的导线,这也是不光滑的。

实际上专业版只解决了组合导线到一起的问题,而没有解决这种导线如何去编辑调整的问题。


而我的建议是,给每一个拐角处添加圆角半径参数,这样计算的时候总是在两条线相接点生成一个相切的圆角,这个圆角只是45度直线的附加属性(对于45度直线,圆角的大小参数就是0),这样就可以保证每一次修改,都会使得导线是光滑的。

而且,进一步的说,这种方式不仅仅可以用于45度导线,而是任意角度圆弧+导线都可以这样,先做成直线的数据,然后在拐角处计算圆角,以达到平滑的效果。


为了解释我想要达成的效果,我在EDA里面分别画了改变前的导线,和我预期改变后导线的样子,如下图:


满足第一种,调整圆弧大小的条件:

  



满足第二种,调整直线部分位置的条件

 


我认为,这样的作法,会比目前采用的方法兼容性、使用体验更好


主题

回复
发表于2021-12-12 09:35:01   |  显示全部楼层
5#
发表于2021-12-11 12:07:05  4# 你这个就是在PCB里面支持贝塞尔曲线的调整了

不是贝塞尔,没有控制点,计算没有那么复杂。

情况有些类似,但是是在45度直线走线的基础上,对每一个拐角添加圆角的参数,调整圆角的大小,让编辑器生成对应大小的圆角。

简单地说,就是在直线上生成了圆角,每次平移一段直线时将会重新生成两个相邻圆角,每次修改圆角大小时都会压缩或拉伸两条相邻直线。

这样做的意义在于,可以将圆弧走线按照正常45度直线的方法进行调节,对45度直线的优化可以直接应用到45度带圆弧走线上,而且将直线和圆弧有机统一了起来。理论上完全可以拓展到90度走线和自由角度走线,让任意角度走线的圆角成为可能。

而且不需要很复杂的计算,一个圆角只需要根据半径来计算两个切点,就可以很容易的绘制出来。


关于如何生成圆角:

 

圆弧的计算如上图所示

以上计算的前提是,默认这条导线实际上是一个45度直线的整体走线,而圆角半径只是从属于直线拐角的一个参数 。

依靠三角函数计算一个圆角是非常快速的。而且对于布线来说,是不允许同一个导线出现截断点的,因此不存在右图所示平行情况,可以不考虑,使得计算过程更加简单。

参考CAD软件的倒圆角fillet命令,只需要有圆角半径以及两直线的走线方向即可生成一个光滑的圆角。

这也是为什么要把圆角半径作为直线拐角处附属参数的原因,这样每个圆角只与相邻的两条直线有关,圆角半径的大小决定了拐角处是否存在圆弧,以及圆弧的大小。


这样,平移直线时重新生成两个相邻的圆角;而修改圆角大小时重新生成这一个圆角,并伸缩两条相邻直线即可。



主题

回复
发表于2021-12-12 16:51:58   |  显示全部楼层
7#
发表于2021-12-12 09:49:32  6# 你点击导线右键“添加圆角”不符合吗,我试了是符合的

不是说在直线上添加圆弧,我的需求就是,对设计好的圆弧走线,既可以调节直线段,也可以调整圆弧线段。

专业版和生成圆角的功能我去都试过了,确实可以用,但是不能编辑直线段,在移动直线端的时候,圆弧不会跟着改变。编辑圆弧大小的时候自动给出导线长度,这个很厉害。

比起来标准版,专业版用了更好的算法,但是却没有实现可以平移直线的功能,移动直线以后不能让圆角跟着移动,而是在原来的端点处生成新的45度直线走线。如果只是可以编辑圆弧段的话,依旧无法做到带圆弧导线的编辑,直线段还是要删掉重画而不是微调。

  

  

 

 然后移动直线部分


主题

回复
  • 温馨提示: 标题不合格、重复发帖、发布广告贴,将会被删除帖子或禁止发言。 详情请参考: 社区发帖规则
  • 您当前输入了 0 个文字。还可以输入 8000 个文字。 已添加复制上传图片功能,该功能目前仅支持chrome和火狐

禁言/删除

X
请选择禁言时长:
是否清除头像:
禁言/删除备注:
昵 称:
 
温馨提示:昵称只能设置一次,设置后无法修改。
只支持中文、英文和数字。

举报

X
请选择举报类型:
请输入详细内容:

顶部