查看:
3748
|
回复:
6
|
45度圆弧的体验可不可以改进
|
|||
|
发表于2021-12-08 18:31:19
|
显示全部楼层
1#
电梯直达
现在的45度圆弧布线是把一条线分成多个圆弧,多段直线的。 这种走线的布局不容易细调,经常出现只能调整一个个圆弧和一个个直线的情况,而且删除一条走线的时候也需要一个个线段去删除,很麻烦。 因此我提出一个想法,可以做成导线拐角位置+导线间圆角半径参数的方式,每一个圆角都是每个导线拐角的一个半径参数。 这样只有两种调整情况: 1.移动圆弧就调整圆角半径大小,保持圆弧跟随鼠标位置,达到移动圆弧但是保持在同一根线上的效果; 2.而移动直线就保持圆角半径不变,只移动直线,达到圆弧大小不变的效果。 这样的线条可以很方便的从45度直角线转换而来,只需要给每一个拐角加上圆角半径参数;转换回去也很方便。 通过合理的程序,这种走线的长度也是可以计算显示出来的。 我认为,这样做出来的单段式走线会比多段不连续的导线操作起来更流畅。 望采纳 |
|||
|
发表于2021-12-08 23:55:51
|
显示全部楼层
3#
我的意思,不仅仅是把所有部件合并,而是使用可以调节的导线。 对专业版,详细说来,当编辑圆弧时,并不是计算与两条直线段相切的圆角,而是直接修改圆弧的大小,这样做出来的45度是不光滑的,实际上不能用。 当编辑直线时,并不是保持圆弧和直线相切,而是创建一个新的导线,这也是不光滑的。 实际上专业版只解决了组合导线到一起的问题,而没有解决这种导线如何去编辑调整的问题。 而我的建议是,给每一个拐角处添加圆角半径参数,这样计算的时候总是在两条线相接点生成一个相切的圆角,这个圆角只是45度直线的附加属性(对于45度直线,圆角的大小参数就是0),这样就可以保证每一次修改,都会使得导线是光滑的。 而且,进一步的说,这种方式不仅仅可以用于45度导线,而是任意角度圆弧+导线都可以这样,先做成直线的数据,然后在拐角处计算圆角,以达到平滑的效果。 为了解释我想要达成的效果,我在EDA里面分别画了改变前的导线,和我预期改变后导线的样子,如下图: 满足第一种,调整圆弧大小的条件:
满足第二种,调整直线部分位置的条件
我认为,这样的作法,会比目前采用的方法兼容性、使用体验更好 |
|||
|
发表于2021-12-12 09:35:01
|
显示全部楼层
5#
不是贝塞尔,没有控制点,计算没有那么复杂。 情况有些类似,但是是在45度直线走线的基础上,对每一个拐角添加圆角的参数,调整圆角的大小,让编辑器生成对应大小的圆角。 简单地说,就是在直线上生成了圆角,每次平移一段直线时将会重新生成两个相邻圆角,每次修改圆角大小时都会压缩或拉伸两条相邻直线。 这样做的意义在于,可以将圆弧走线按照正常45度直线的方法进行调节,对45度直线的优化可以直接应用到45度带圆弧走线上,而且将直线和圆弧有机统一了起来。理论上完全可以拓展到90度走线和自由角度走线,让任意角度走线的圆角成为可能。 而且不需要很复杂的计算,一个圆角只需要根据半径来计算两个切点,就可以很容易的绘制出来。 关于如何生成圆角:
圆弧的计算如上图所示 以上计算的前提是,默认这条导线实际上是一个45度直线的整体走线,而圆角半径只是从属于直线拐角的一个参数 。 依靠三角函数计算一个圆角是非常快速的。而且对于布线来说,是不允许同一个导线出现截断点的,因此不存在右图所示平行情况,可以不考虑,使得计算过程更加简单。 参考CAD软件的倒圆角fillet命令,只需要有圆角半径以及两直线的走线方向即可生成一个光滑的圆角。 这也是为什么要把圆角半径作为直线拐角处附属参数的原因,这样每个圆角只与相邻的两条直线有关,圆角半径的大小决定了拐角处是否存在圆弧,以及圆弧的大小。 这样,平移直线时重新生成两个相邻的圆角;而修改圆角大小时重新生成这一个圆角,并伸缩两条相邻直线即可。 |
|||
|
发表于2021-12-12 16:51:58
|
显示全部楼层
7#
不是说在直线上添加圆弧,我的需求就是,对设计好的圆弧走线,既可以调节直线段,也可以调整圆弧线段。 专业版和生成圆角的功能我去都试过了,确实可以用,但是不能编辑直线段,在移动直线端的时候,圆弧不会跟着改变。编辑圆弧大小的时候自动给出导线长度,这个很厉害。 比起来标准版,专业版用了更好的算法,但是却没有实现可以平移直线的功能,移动直线以后不能让圆角跟着移动,而是在原来的端点处生成新的45度直线走线。如果只是可以编辑圆弧段的话,依旧无法做到带圆弧导线的编辑,直线段还是要删掉重画而不是微调。
然后移动直线部分 |
|