← Back to team overview

kicad-developers team mailing list archive

Re: Wiring logic/algorithm

 

C++ is a prerequisite for working on KiCad.  I doubt anyone will have
the time to generate psuedo code for you.

On 8/3/2017 8:31 AM, Arun Kumar wrote:
> I'm not familiar with C++. May be a pseudo code would be of great help.
> 
> 
> On Thu 3 Aug, 2017, 5:15 PM Wayne Stambaugh, <stambaughw@xxxxxxxxx
> <mailto:stambaughw@xxxxxxxxx>> wrote:
> 
>     On 8/3/2017 3:54 AM, Simon Richter wrote:
>     > Hi,
>     >
>     > On 03.08.2017 07:09, Arun Kumar wrote:
>     >
>     >> Could you please let me know the wiring logic used in kicad. Like how
>     >> the wire is drawn uisng mouse movement and clicks.
>     >
>     > The first click starts a wire, which already has two segments, one
>     > horizontal, one vertical, with the first segment being the longer one
>     > initially.
>     >
>     > Moving the mouse then adjusts the length of both at once. If the first
>     > segment disappears, they switch places (so if you start horizontal and
>     > pass through the point over the beginning, the vertical segment
>     becomes
>     > first).
>     >
>     > Clicking fixes the point between the two segments currently being
>     > edited, and adds another segment at the end, which then has to be at a
>     > 90 degree angle.
>     >
>     > Clicking on a connection point (end of another wire or end of a
>     > component pin) ends the wire. If you want to end the current wire
>     > without connecting anywhere, double-click.
>     >
>     >> Also the wiring is rerouted when the components are move around.
>     Could
>     >> you please explain the under lying logic and algorithm. If possible
>     >> please guide me to the relevant code of kicad.
> 
>     The wire drawing code is in eeschema/bus-wire-junction.cpp and the
>     move/drag code is in eeschema/block.cpp.
> 
>     >
>     > When you move a component ('m' key), nothing else moves. When you
>     grab a
>     > component ('g' key), all wires that are already connected remain
>     > connected, and the last segment that connects to the component is
>     adjusted.
>     >
>     >    Simon
>     >
>     >
>     >
>     > _______________________________________________
>     > Mailing list: https://launchpad.net/~kicad-developers
>     > Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     > Unsubscribe : https://launchpad.net/~kicad-developers
>     > More help   : https://help.launchpad.net/ListHelp
>     >
> 
>     _______________________________________________
>     Mailing list: https://launchpad.net/~kicad-developers
>     Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     Unsubscribe : https://launchpad.net/~kicad-developers
>     More help   : https://help.launchpad.net/ListHelp
> 


Follow ups

References