Push and Shove Development
Push and Shove Development
Hi All,
Currently I'm developing Push and Shove feature for DipTrace 5.0 and I will share videos of the development progress in this thread.
Comments and suggestions are welcome.
The first one is here:
Regards,
Stanislav
Currently I'm developing Push and Shove feature for DipTrace 5.0 and I will share videos of the development progress in this thread.
Comments and suggestions are welcome.
The first one is here:
Regards,
Stanislav
- Attachments
-
- PushAndShove_1.mp4
- (2.35 MiB) Downloaded 2549 times
Re: Push and Shove Development
Wow, looks good. I guess it's not so easy to develop this algorythmus.
I have a question. To you also plane sometimes to make a feature, that when I move a Trace, that I can only move till the next line or pad, so that I do not can make an error? Till now it show me whit the red rings how near I can move the trace to an other Trace or Pad. It's nice to see this Error real time, but it ynuld be nicer if I could't make an Error by moving Traces.
BR Roli
I have a question. To you also plane sometimes to make a feature, that when I move a Trace, that I can only move till the next line or pad, so that I do not can make an error? Till now it show me whit the red rings how near I can move the trace to an other Trace or Pad. It's nice to see this Error real time, but it ynuld be nicer if I could't make an Error by moving Traces.
BR Roli
Re: Push and Shove Development
This looks great!!
Will be very helpful when laying out a tight board.
If possible, I'd like the ability to lock down a traces and VIAs so they couldn't be pushed. But by default they would be pushable. Just a simple LOCK featured that could be turned on/off on specific traces.

Will be very helpful when laying out a tight board.
If possible, I'd like the ability to lock down a traces and VIAs so they couldn't be pushed. But by default they would be pushable. Just a simple LOCK featured that could be turned on/off on specific traces.
Re: Push and Shove Development
We plan to make pushing traces/vias when you edit or move something. The core algorithm is almost done as you can see on the video above - we will include it into 5.0, then step-by-step add more features based on it. Probably also add limit editing option if there is no enough space to push objects.Roli wrote: ↑27 Sep 2023, 18:15 I have a question. To you also plane sometimes to make a feature, that when I move a Trace, that I can only move till the next line or pad, so that I do not can make an error? Till now it show me whit the red rings how near I can move the trace to an other Trace or Pad. It's nice to see this Error real time, but it ynuld be nicer if I could't make an Error by moving Traces.
Common lock feature already works in such way.
Re: Push and Shove Development
Looks nice. Could you add an option to reroute multiple traces simultaneously (for example signal buses, differential pairs)? I saw this option in a video about Altium, and I think is time saving.
Re: Push and Shove Development
Differential pairs are already there since version 3.0, bus routing is in plans.
Re: Push and Shove Development
At 9 seconds in, the new trace has overlapped existing traces. Would it be possible to have the algorithm block the new trace from intruding into this area if the existing traces cannot be shoved? It would also help to have the new trace automatically bend around the immovable traces while obeying the spacing rules. Something that might help with DipTrace's push-and-shove speed (if it hasn't been done already) is to make use of multi-threading.
Tom
Re: Push and Shove Development
Yes, we will combine push and shove with existing real-time DRC and "Follow rules" options. The new trace bend around the immovable ones and other interactive routing improvements are in plans for 5.1, etc. development - we will discuss them here. Core algorithm is actually pushing traces/vias, other options are easier to make when you already have the main thing. Currently we need to complete and debug it and make 5.0 as soon as possible - research, attempts (third principle was successful) and development took much of my time (features for 5.0 from other programmers are already done).Tomg wrote: ↑30 Sep 2023, 12:47 At 9 seconds in, the new trace has overlapped existing traces. Would it be possible to have the algorithm block the new trace from intruding into this area if the existing traces cannot be shoved? It would also help to have the new trace automatically bend around the immovable traces while obeying the spacing rules. Something that might help with DipTrace's push-and-shove speed (if it hasn't been done already) is to make use of multi-threading.
Algorithm is designed to use multi-threading from the beginning, however it is much easier to debug with single thread, so video is also from single-thread run (there is a switch in source code and debug painting blinks in multi-thread). Also some things work in multi-thread only (working with unsuccessful routing and trying to re-route with different parameters without touching main thread).
p.s. Upgrade to 5.0 is free for all orders/upgrades since November 2022 (22 is correct).
Re: Push and Shove Development
Thank you for the progress update. Looking forward to the introduction of the next version's new features and bug fixes.
Tom
Re: Push and Shove Development
Great news!
I have a question, how does it behave to follow a complex board contour?
Im doing very geometrically complicated flexible boards/cables, all board edges are splines which are converted to .dxf line-segments in SolidWorks and imported to Diptrace.
The traces have to follow the contours and it is basically impossible to route with Diptrace.
I have done it so far to just convert dxf line-segments to copper but I don't know how to convert them to traces and connect hundreds of lines if it even is possible.
Since the copper lines are overlapping, it works in the gerber files but I have lost all help from Diptrace, the ratlines doesn't recognize they are connected so I'm basically doing it by hand and hope I didn't miss a connection.
I have a question, how does it behave to follow a complex board contour?
Im doing very geometrically complicated flexible boards/cables, all board edges are splines which are converted to .dxf line-segments in SolidWorks and imported to Diptrace.
The traces have to follow the contours and it is basically impossible to route with Diptrace.
I have done it so far to just convert dxf line-segments to copper but I don't know how to convert them to traces and connect hundreds of lines if it even is possible.
Since the copper lines are overlapping, it works in the gerber files but I have lost all help from Diptrace, the ratlines doesn't recognize they are connected so I'm basically doing it by hand and hope I didn't miss a connection.
- Attachments
-
- spline.PNG (61.58 KiB) Viewed 53662 times