Re: [Kicad-developers] Group selection idea

2017-01-23 Thread Kristoffer Ödmark
> - Duplicating a group should create a new group (I'm not sure it works
> this way for the moment).

Currently duplication just copies the group, but yes, I can change so that it
appends -{num} from 1 and upwards when copying. Here I also guess that ideally
they would be a subgroup of a nested group after that. {groupname}-copies for 
example

> You can for instance
> define a group as a set of unique timestamps of the items which belong
> to it. This would also simplify the file format by not polluting the
> board entities with group information, e.g.

I am not sure I like this, the format pollution you mention is actually 
something
I want, It makes the file format easy to scan with a text editor, which is 
something
I have had to do a few times when using Kicad. But ofcourse I could probably 
change
that if it is deemed neccesary. How does timestamps work? Are they unique 
always or 
are they an indication at what time something is added/edited?

> - Add Group/Ungroup commands to the Edit menu.

Not sure I follow, do you mean the preferences menu? The one you get with the 
shortcut E?

> - if you click on a group member, the selection tool IMHO should select
> the group the member belongs to. An alternate mode (e.g. Shift+click)
> could be used to pick single elements from a group. This is the typical
> behaviour of all programs I know that support grouping (from
> Corel/Inkscape to Altium).

Hmm, yes, that seems more natural.

> - Add a shortcut to group/ungroup (e.g. Ctrl+G/Ctrl+U).
> - Add a 'merge groups' option which squashes several groups into a -
> single one.

Will look into it, although I see these as additions to a feature not yet



On 01/19/2017 02:30 PM, Tomasz Wlostowski wrote:
> On 19.01.2017 12:18, Kristoffer Ödmark wrote:
>> Hey!
>>
>> Did you have a look at the group selection patch and have any comments? :)
> 
> Hi,
> 
> Yes, but I didn't have much time. My quick observations:
> - if you click on a group member, the selection tool IMHO should select
> the group the member belongs to. An alternate mode (e.g. Shift+click)
> could be used to pick single elements from a group. This is the typical
> behaviour of all programs I know that support grouping (from
> Corel/Inkscape to Altium).
> - Add a shortcut to group/ungroup (e.g. Ctrl+G/Ctrl+U).
> - Add Group/Ungroup commands to the Edit menu.
> - Add a 'merge groups' option which squashes several groups into a -
> single one.
> - Duplicating a group should create a new group (I'm not sure it works
> this way for the moment).
> - Add a possibility to have recursive grouping. This probably means a
> bit of changes in the file format and code model. You can for instance
> define a group as a set of unique timestamps of the items which belong
> to it. This would also simplify the file format by not polluting the
> board entities with group information, e.g.
> 
> (track (timestamp A) ... )
> (track (timestamp B) ... )
> (track (timestamp C) ... )
> (track (timestamp D) ... )
> 
> // all grouping info stored in a separate section of the file which
> translates to a separate object within the BOARD.
> (groups
>   ( group (name small1) (timestamp X) ids ( A B ) )
>   ( group (name small2) (timestamp Y) ids ( C D ) )
>   ( group (name twogroupstogether) (timestamp Z) ids ( X Y ) )
> )
> 
> If you had time, you could also extend the 'append board' feature to:
> - Let the user append a board as a new group.
> - Optionally, rename the nets so that they are in a 'private' namespace
> in each appended board.
> This would be a *big* help for panelization which currently is quite
> cumbersome in Kicad.
> 
> Many thanks for your efforts,
> Tom
> 
> 
> 
>> - Kristoffer
>>
>>
>> On 2017-01-12 12:55, Tomasz Wlostowski wrote:
>>> I like it. Give me a few days to review it and I hope it will get
>>> merged. You'll also have to make the groups persistent (save to file).
>>> Recursive grouping (group of groups) would be also an advantage.
>>>
>>>
>>> Cheers,
>>> Tom
>>>
>>> Sent from my Samsung Galaxy smartphone.
>>>
>>>
>>>  Original message 
>>> From: Kristoffer Ödmark <kristofferodmar...@gmail.com>
>>> Date: 12/01/2017 12:41 (GMT+01:00)
>>> To: kicad-developers@lists.launchpad.net
>>> Subject: Re: [Kicad-developers] Group selection idea
>>>
>>> Hey again, What would be the chances of seing this getting into the
>>> master branches on launchpad, what would I have to add/change to get it
>>> there?
>>>
>>> - Kristoffer
>>>
>>> On 2017-01-11 21:59, Kristoffer Ödmark wrote:
>>>

Re: [Kicad-developers] Group selection idea

2017-01-13 Thread Kristoffer Ödmark
kicad_pcb file. suggesting (group )
>>> to be used for this. ( tracks, vias, texts, etc etc )
>>>
>>> This does not hinder the development for hierarchy of the groups later
>>> on. That could be fixed with having another field later which keeps
>>> track of the hierarchy and parents/childs groups.
>>>
>>> I looked over my implementation and changed everything to use wxStrings
>>> and wxArrayStrings, to be more like current things in Kicad, I do not
>>> know if this was an issue or not.
>>>
>>> Is the file format upgrade for the current implementation okay? If it is
>>> I will start implementing it this weekend.
>>>
>>> - Kristoffer
>>>
>>> On 01/13/2017 02:07 PM, Wayne Stambaugh wrote:
>>>> Kristoffer,
>>>>
>>>> I was merely talking about getting your initial implementation correct
>>>> in Pcbnew to prevent issues with the full implementation down the road.
>>>> While I'm OK with opening up a full design specification, I think it's a
>>>> bit premature and will distract us from the immediate work at hand.
>>>> None of the schematic group linking work can happen until the new
>>>> schematic and symbol library file formats are complete.  I want to keep
>>>> the focus on grouping in Pcbnew for the time being and not get bogged
>>>> down in a full implementation specification.
>>>>
>>>> Cheers,
>>>>
>>>> Wayne
>>>>
>>>> On 1/12/2017 3:38 PM, Kristoffer Ödmark wrote:
>>>>> I think Physical design reuse (PDR) is far out of scope of the group
>>>>> selection idea. However it Might be used. I actually put some thinking
>>>>> on howto implement some kind of PDR into Kicad without having to
>>>>> redesign everything existing already. Its in a google doc with comments
>>>>> enabled.
>>>>>
>>>>> [Google docs link]
>>>>> https://docs.google.com/document/d/1ivRRu7F2g6_WU9bgHlaUTaXZw02oluMh4NA41BqEM-8/edit?usp=sharing
>>>>>
>>>>>
>>>>>
>>>>> PDR discussions I think should be in a separate thread, since the amount
>>>>> of work to get there is quite a bit more, involves both eeschema and
>>>>> pcbnew, new file formatting, specifying workflows etc etc.
>>>>>
>>>>> Its called snippets in Am, PDR in PADS.
>>>>>
>>>>> - Kristoffer
>>>>>
>>>>> On 2017-01-12 18:47, Clemens Koller wrote:
>>>>>> Hello!
>>>>>>
>>>>>> This feature looks really useful in production if it's implemented
>>>>>> properly.
>>>>>> Some comments from my side how things could be extended in the future:
>>>>>>
>>>>>> Group selection (also read: table-based/parametric-based selection!)
>>>>>> seems like a great feature and the step towards physical design reuse
>>>>>> (PDR).
>>>>>> With some intelligent grouping of routed components and
>>>>>> automatic/assisted selection of components based on netlist-topology
>>>>>> (or manual or table based selection) it is possible to create a
>>>>>> physical design reuse (or channels) by duplicating groups with the
>>>>>> same layout but different component references + different net names /
>>>>>> instances of net names.
>>>>>> An additional approach is intelligent "group editing" (table based - a
>>>>>> must have for complex designs!) where there is an automatic / assisted
>>>>>> rename of components and netnames to create reuses. This also applies
>>>>>> to the schematic entry, obviously.
>>>>>>
>>>>>> The word "intelligent" above means obviously, that there is some
>>>>>> infrastructure and coding work to consider.
>>>>>>
>>>>>> An example screenshot of one of my designs using a buggy commercial
>>>>>> product is attached. There are 60 similar channels.
>>>>>> Layouting these manually would be a hell of work, obviously.
>>>>>>
>>>>>> Regards,
>>>>>>
>>>>>> Clemens
>>>>>>
>>>>>>
>>>>>> On 2017-01-12 17:37, Wayne Stambaugh wrote:
>>>>>>> I think this feature would be useful but w

Re: [Kicad-developers] Group selection idea

2017-01-13 Thread Wayne Stambaugh
er,
>>>
>>> I was merely talking about getting your initial implementation correct
>>> in Pcbnew to prevent issues with the full implementation down the road.
>>> While I'm OK with opening up a full design specification, I think it's a
>>> bit premature and will distract us from the immediate work at hand.
>>> None of the schematic group linking work can happen until the new
>>> schematic and symbol library file formats are complete.  I want to keep
>>> the focus on grouping in Pcbnew for the time being and not get bogged
>>> down in a full implementation specification.
>>>
>>> Cheers,
>>>
>>> Wayne
>>>
>>> On 1/12/2017 3:38 PM, Kristoffer Ödmark wrote:
>>>> I think Physical design reuse (PDR) is far out of scope of the group
>>>> selection idea. However it Might be used. I actually put some thinking
>>>> on howto implement some kind of PDR into Kicad without having to
>>>> redesign everything existing already. Its in a google doc with comments
>>>> enabled.
>>>>
>>>> [Google docs link]
>>>> https://docs.google.com/document/d/1ivRRu7F2g6_WU9bgHlaUTaXZw02oluMh4NA41BqEM-8/edit?usp=sharing
>>>>
>>>>
>>>>
>>>> PDR discussions I think should be in a separate thread, since the amount
>>>> of work to get there is quite a bit more, involves both eeschema and
>>>> pcbnew, new file formatting, specifying workflows etc etc.
>>>>
>>>> Its called snippets in Am, PDR in PADS.
>>>>
>>>> - Kristoffer
>>>>
>>>> On 2017-01-12 18:47, Clemens Koller wrote:
>>>>> Hello!
>>>>>
>>>>> This feature looks really useful in production if it's implemented
>>>>> properly.
>>>>> Some comments from my side how things could be extended in the future:
>>>>>
>>>>> Group selection (also read: table-based/parametric-based selection!)
>>>>> seems like a great feature and the step towards physical design reuse
>>>>> (PDR).
>>>>> With some intelligent grouping of routed components and
>>>>> automatic/assisted selection of components based on netlist-topology
>>>>> (or manual or table based selection) it is possible to create a
>>>>> physical design reuse (or channels) by duplicating groups with the
>>>>> same layout but different component references + different net names /
>>>>> instances of net names.
>>>>> An additional approach is intelligent "group editing" (table based - a
>>>>> must have for complex designs!) where there is an automatic / assisted
>>>>> rename of components and netnames to create reuses. This also applies
>>>>> to the schematic entry, obviously.
>>>>>
>>>>> The word "intelligent" above means obviously, that there is some
>>>>> infrastructure and coding work to consider.
>>>>>
>>>>> An example screenshot of one of my designs using a buggy commercial
>>>>> product is attached. There are 60 similar channels.
>>>>> Layouting these manually would be a hell of work, obviously.
>>>>>
>>>>> Regards,
>>>>>
>>>>> Clemens
>>>>>
>>>>>
>>>>> On 2017-01-12 17:37, Wayne Stambaugh wrote:
>>>>>> I think this feature would be useful but we should proceed with
>>>>>> caution
>>>>>> if we are going to include persistence.  I'm guessing making groups
>>>>>> persistent will require a change to the pcb file format.  We should
>>>>>> think this through thoroughly before moving forward.  Is it possible
>>>>>> that this grouping could be used for an am like room feature?  If
>>>>>> so, than we need to plan this out accordingly rather than just
>>>>>> commit a
>>>>>> new feature for the sake of convenience.
>>>>>>
>>>>>> On 1/12/2017 6:55 AM, Tomasz Wlostowski wrote:
>>>>>>> I like it. Give me a few days to review it and I hope it will get
>>>>>>> merged. You'll also have to make the groups persistent (save to
>>>>>>> file).
>>>>>>> Recursive grouping (group of groups) would be also an advantage.
>>>>>>>
>>>>>>>
>>>>>>> Cheers

Re: [Kicad-developers] Group selection idea

2017-01-13 Thread jp charras
Hi Kristoffer.

I cannot apply your patches to the current version.
Can you rebuild them ?

Thanks.


-- 
Jean-Pierre CHARRAS

___
Mailing list: https://launchpad.net/~kicad-developers
Post to : kicad-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp


Re: [Kicad-developers] Group selection idea

2017-01-13 Thread Kristoffer Ödmark
n.
>>>
>>> Cheers,
>>>
>>> Wayne
>>>
>>> On 1/12/2017 3:38 PM, Kristoffer Ödmark wrote:
>>>> I think Physical design reuse (PDR) is far out of scope of the group
>>>> selection idea. However it Might be used. I actually put some thinking
>>>> on howto implement some kind of PDR into Kicad without having to
>>>> redesign everything existing already. Its in a google doc with comments
>>>> enabled.
>>>>
>>>> [Google docs link]
>>>> https://docs.google.com/document/d/1ivRRu7F2g6_WU9bgHlaUTaXZw02oluMh4NA41BqEM-8/edit?usp=sharing
>>>>
>>>>
>>>>
>>>> PDR discussions I think should be in a separate thread, since the amount
>>>> of work to get there is quite a bit more, involves both eeschema and
>>>> pcbnew, new file formatting, specifying workflows etc etc.
>>>>
>>>> Its called snippets in Am, PDR in PADS.
>>>>
>>>> - Kristoffer
>>>>
>>>> On 2017-01-12 18:47, Clemens Koller wrote:
>>>>> Hello!
>>>>>
>>>>> This feature looks really useful in production if it's implemented
>>>>> properly.
>>>>> Some comments from my side how things could be extended in the future:
>>>>>
>>>>> Group selection (also read: table-based/parametric-based selection!)
>>>>> seems like a great feature and the step towards physical design reuse
>>>>> (PDR).
>>>>> With some intelligent grouping of routed components and
>>>>> automatic/assisted selection of components based on netlist-topology
>>>>> (or manual or table based selection) it is possible to create a
>>>>> physical design reuse (or channels) by duplicating groups with the
>>>>> same layout but different component references + different net names /
>>>>> instances of net names.
>>>>> An additional approach is intelligent "group editing" (table based - a
>>>>> must have for complex designs!) where there is an automatic / assisted
>>>>> rename of components and netnames to create reuses. This also applies
>>>>> to the schematic entry, obviously.
>>>>>
>>>>> The word "intelligent" above means obviously, that there is some
>>>>> infrastructure and coding work to consider.
>>>>>
>>>>> An example screenshot of one of my designs using a buggy commercial
>>>>> product is attached. There are 60 similar channels.
>>>>> Layouting these manually would be a hell of work, obviously.
>>>>>
>>>>> Regards,
>>>>>
>>>>> Clemens
>>>>>
>>>>>
>>>>> On 2017-01-12 17:37, Wayne Stambaugh wrote:
>>>>>> I think this feature would be useful but we should proceed with
>>>>>> caution
>>>>>> if we are going to include persistence.  I'm guessing making groups
>>>>>> persistent will require a change to the pcb file format.  We should
>>>>>> think this through thoroughly before moving forward.  Is it possible
>>>>>> that this grouping could be used for an am like room feature?  If
>>>>>> so, than we need to plan this out accordingly rather than just
>>>>>> commit a
>>>>>> new feature for the sake of convenience.
>>>>>>
>>>>>> On 1/12/2017 6:55 AM, Tomasz Wlostowski wrote:
>>>>>>> I like it. Give me a few days to review it and I hope it will get
>>>>>>> merged. You'll also have to make the groups persistent (save to
>>>>>>> file).
>>>>>>> Recursive grouping (group of groups) would be also an advantage.
>>>>>>>
>>>>>>>
>>>>>>> Cheers,
>>>>>>> Tom
>>>>>>>
>>>>>>> Sent from my Samsung Galaxy smartphone.
>>>>>>>
>>>>>>>
>>>>>>>  Original message 
>>>>>>> From: Kristoffer Ödmark <kristofferodmar...@gmail.com>
>>>>>>> Date: 12/01/2017 12:41 (GMT+01:00)
>>>>>>> To: kicad-developers@lists.launchpad.net
>>>>>>> Subject: Re: [Kicad-developers] Group selection idea
>>>>>>>
>>>>>>> Hey again, What would be the

Re: [Kicad-developers] Group selection idea

2017-01-13 Thread Maciej Sumiński
>>>
>>> - Kristoffer
>>>
>>> On 2017-01-12 18:47, Clemens Koller wrote:
>>>> Hello!
>>>>
>>>> This feature looks really useful in production if it's implemented
>>>> properly.
>>>> Some comments from my side how things could be extended in the future:
>>>>
>>>> Group selection (also read: table-based/parametric-based selection!)
>>>> seems like a great feature and the step towards physical design reuse
>>>> (PDR).
>>>> With some intelligent grouping of routed components and
>>>> automatic/assisted selection of components based on netlist-topology
>>>> (or manual or table based selection) it is possible to create a
>>>> physical design reuse (or channels) by duplicating groups with the
>>>> same layout but different component references + different net names /
>>>> instances of net names.
>>>> An additional approach is intelligent "group editing" (table based - a
>>>> must have for complex designs!) where there is an automatic / assisted
>>>> rename of components and netnames to create reuses. This also applies
>>>> to the schematic entry, obviously.
>>>>
>>>> The word "intelligent" above means obviously, that there is some
>>>> infrastructure and coding work to consider.
>>>>
>>>> An example screenshot of one of my designs using a buggy commercial
>>>> product is attached. There are 60 similar channels.
>>>> Layouting these manually would be a hell of work, obviously.
>>>>
>>>> Regards,
>>>>
>>>> Clemens
>>>>
>>>>
>>>> On 2017-01-12 17:37, Wayne Stambaugh wrote:
>>>>> I think this feature would be useful but we should proceed with
>>>>> caution
>>>>> if we are going to include persistence.  I'm guessing making groups
>>>>> persistent will require a change to the pcb file format.  We should
>>>>> think this through thoroughly before moving forward.  Is it possible
>>>>> that this grouping could be used for an am like room feature?  If
>>>>> so, than we need to plan this out accordingly rather than just
>>>>> commit a
>>>>> new feature for the sake of convenience.
>>>>>
>>>>> On 1/12/2017 6:55 AM, Tomasz Wlostowski wrote:
>>>>>> I like it. Give me a few days to review it and I hope it will get
>>>>>> merged. You'll also have to make the groups persistent (save to
>>>>>> file).
>>>>>> Recursive grouping (group of groups) would be also an advantage.
>>>>>>
>>>>>>
>>>>>> Cheers,
>>>>>> Tom
>>>>>>
>>>>>> Sent from my Samsung Galaxy smartphone.
>>>>>>
>>>>>>
>>>>>>  Original message 
>>>>>> From: Kristoffer Ödmark <kristofferodmar...@gmail.com>
>>>>>> Date: 12/01/2017 12:41 (GMT+01:00)
>>>>>> To: kicad-developers@lists.launchpad.net
>>>>>> Subject: Re: [Kicad-developers] Group selection idea
>>>>>>
>>>>>> Hey again, What would be the chances of seing this getting into the
>>>>>> master branches on launchpad, what would I have to add/change to
>>>>>> get it
>>>>>> there?
>>>>>>
>>>>>> - Kristoffer
>>>>>>
>>>>>> On 2017-01-11 21:59, Kristoffer Ödmark wrote:
>>>>>>> Attaching Patch!
>>>>>>>
>>>>>>> ( Thanks Chris! )
>>>>>>>
>>>>>>> On 2017-01-11 20:51, Kristoffer Ödmark wrote:
>>>>>>>> Hello!
>>>>>>>>
>>>>>>>> I hacked together a group selection concept looking like this:
>>>>>>>> https://youtu.be/eJp-aJ8i0H4
>>>>>>>>
>>>>>>>> It can assign BOARD_ITEM to a specific group for easier
>>>>>>>> selection and
>>>>>>>> group manipulation. I am open to suggestions on changes, this is
>>>>>>>> surely
>>>>>>>> not an optimal implementation.
>>>>>>>>
>>>>>>>> Useful when you may want to keep the relative position of
>>>>>>>> somethin

Re: [Kicad-developers] Group selection idea

2017-01-13 Thread Kristoffer Ödmark

Okay, got it.

For the group selection thing, I did some quick tests today, and only 
letting board items belong to one group at a time seems like a good way, 
letting them belong to multiple groups gave me a headache in how to 
implement any way of handling the groups.


This would then change the format for the pcb file with one value under 
every saved board item in the kicad_pcb file. suggesting (group )

to be used for this. ( tracks, vias, texts, etc etc )

This does not hinder the development for hierarchy of the groups later 
on. That could be fixed with having another field later which keeps 
track of the hierarchy and parents/childs groups.


I looked over my implementation and changed everything to use wxStrings 
and wxArrayStrings, to be more like current things in Kicad, I do not 
know if this was an issue or not.


Is the file format upgrade for the current implementation okay? If it is 
I will start implementing it this weekend.


- Kristoffer

On 01/13/2017 02:07 PM, Wayne Stambaugh wrote:

Kristoffer,

I was merely talking about getting your initial implementation correct
in Pcbnew to prevent issues with the full implementation down the road.
While I'm OK with opening up a full design specification, I think it's a
bit premature and will distract us from the immediate work at hand.
None of the schematic group linking work can happen until the new
schematic and symbol library file formats are complete.  I want to keep
the focus on grouping in Pcbnew for the time being and not get bogged
down in a full implementation specification.

Cheers,

Wayne

On 1/12/2017 3:38 PM, Kristoffer Ödmark wrote:

I think Physical design reuse (PDR) is far out of scope of the group
selection idea. However it Might be used. I actually put some thinking
on howto implement some kind of PDR into Kicad without having to
redesign everything existing already. Its in a google doc with comments
enabled.

[Google docs link]
https://docs.google.com/document/d/1ivRRu7F2g6_WU9bgHlaUTaXZw02oluMh4NA41BqEM-8/edit?usp=sharing


PDR discussions I think should be in a separate thread, since the amount
of work to get there is quite a bit more, involves both eeschema and
pcbnew, new file formatting, specifying workflows etc etc.

Its called snippets in Am, PDR in PADS.

- Kristoffer

On 2017-01-12 18:47, Clemens Koller wrote:

Hello!

This feature looks really useful in production if it's implemented
properly.
Some comments from my side how things could be extended in the future:

Group selection (also read: table-based/parametric-based selection!)
seems like a great feature and the step towards physical design reuse
(PDR).
With some intelligent grouping of routed components and
automatic/assisted selection of components based on netlist-topology
(or manual or table based selection) it is possible to create a
physical design reuse (or channels) by duplicating groups with the
same layout but different component references + different net names /
instances of net names.
An additional approach is intelligent "group editing" (table based - a
must have for complex designs!) where there is an automatic / assisted
rename of components and netnames to create reuses. This also applies
to the schematic entry, obviously.

The word "intelligent" above means obviously, that there is some
infrastructure and coding work to consider.

An example screenshot of one of my designs using a buggy commercial
product is attached. There are 60 similar channels.
Layouting these manually would be a hell of work, obviously.

Regards,

Clemens


On 2017-01-12 17:37, Wayne Stambaugh wrote:

I think this feature would be useful but we should proceed with caution
if we are going to include persistence.  I'm guessing making groups
persistent will require a change to the pcb file format.  We should
think this through thoroughly before moving forward.  Is it possible
that this grouping could be used for an am like room feature?  If
so, than we need to plan this out accordingly rather than just commit a
new feature for the sake of convenience.

On 1/12/2017 6:55 AM, Tomasz Wlostowski wrote:

I like it. Give me a few days to review it and I hope it will get
merged. You'll also have to make the groups persistent (save to file).
Recursive grouping (group of groups) would be also an advantage.


Cheers,
Tom

Sent from my Samsung Galaxy smartphone.


 Original message 
From: Kristoffer Ödmark <kristofferodmar...@gmail.com>
Date: 12/01/2017 12:41 (GMT+01:00)
To: kicad-developers@lists.launchpad.net
Subject: Re: [Kicad-developers] Group selection idea

Hey again, What would be the chances of seing this getting into the
master branches on launchpad, what would I have to add/change to get it
there?

- Kristoffer

On 2017-01-11 21:59, Kristoffer Ödmark wrote:

Attaching Patch!

( Thanks Chris! )

On 2017-01-11 20:51, Kristoffer Ödmark wrote:

Hello!

I hacked together a group selection concept looking like this:
https://yo

Re: [Kicad-developers] Group selection idea

2017-01-13 Thread Wayne Stambaugh
Kristoffer,

I was merely talking about getting your initial implementation correct
in Pcbnew to prevent issues with the full implementation down the road.
While I'm OK with opening up a full design specification, I think it's a
bit premature and will distract us from the immediate work at hand.
None of the schematic group linking work can happen until the new
schematic and symbol library file formats are complete.  I want to keep
the focus on grouping in Pcbnew for the time being and not get bogged
down in a full implementation specification.

Cheers,

Wayne

On 1/12/2017 3:38 PM, Kristoffer Ödmark wrote:
> I think Physical design reuse (PDR) is far out of scope of the group
> selection idea. However it Might be used. I actually put some thinking
> on howto implement some kind of PDR into Kicad without having to
> redesign everything existing already. Its in a google doc with comments
> enabled.
> 
> [Google docs link]
> https://docs.google.com/document/d/1ivRRu7F2g6_WU9bgHlaUTaXZw02oluMh4NA41BqEM-8/edit?usp=sharing
> 
> 
> PDR discussions I think should be in a separate thread, since the amount
> of work to get there is quite a bit more, involves both eeschema and
> pcbnew, new file formatting, specifying workflows etc etc.
> 
> Its called snippets in Am, PDR in PADS.
> 
> - Kristoffer
> 
> On 2017-01-12 18:47, Clemens Koller wrote:
>> Hello!
>>
>> This feature looks really useful in production if it's implemented
>> properly.
>> Some comments from my side how things could be extended in the future:
>>
>> Group selection (also read: table-based/parametric-based selection!)
>> seems like a great feature and the step towards physical design reuse
>> (PDR).
>> With some intelligent grouping of routed components and
>> automatic/assisted selection of components based on netlist-topology
>> (or manual or table based selection) it is possible to create a
>> physical design reuse (or channels) by duplicating groups with the
>> same layout but different component references + different net names /
>> instances of net names.
>> An additional approach is intelligent "group editing" (table based - a
>> must have for complex designs!) where there is an automatic / assisted
>> rename of components and netnames to create reuses. This also applies
>> to the schematic entry, obviously.
>>
>> The word "intelligent" above means obviously, that there is some
>> infrastructure and coding work to consider.
>>
>> An example screenshot of one of my designs using a buggy commercial
>> product is attached. There are 60 similar channels.
>> Layouting these manually would be a hell of work, obviously.
>>
>> Regards,
>>
>> Clemens
>>
>>
>> On 2017-01-12 17:37, Wayne Stambaugh wrote:
>>> I think this feature would be useful but we should proceed with caution
>>> if we are going to include persistence.  I'm guessing making groups
>>> persistent will require a change to the pcb file format.  We should
>>> think this through thoroughly before moving forward.  Is it possible
>>> that this grouping could be used for an am like room feature?  If
>>> so, than we need to plan this out accordingly rather than just commit a
>>> new feature for the sake of convenience.
>>>
>>> On 1/12/2017 6:55 AM, Tomasz Wlostowski wrote:
>>>> I like it. Give me a few days to review it and I hope it will get
>>>> merged. You'll also have to make the groups persistent (save to file).
>>>> Recursive grouping (group of groups) would be also an advantage.
>>>>
>>>>
>>>> Cheers,
>>>> Tom
>>>>
>>>> Sent from my Samsung Galaxy smartphone.
>>>>
>>>>
>>>>  Original message 
>>>> From: Kristoffer Ödmark <kristofferodmar...@gmail.com>
>>>> Date: 12/01/2017 12:41 (GMT+01:00)
>>>> To: kicad-developers@lists.launchpad.net
>>>> Subject: Re: [Kicad-developers] Group selection idea
>>>>
>>>> Hey again, What would be the chances of seing this getting into the
>>>> master branches on launchpad, what would I have to add/change to get it
>>>> there?
>>>>
>>>> - Kristoffer
>>>>
>>>> On 2017-01-11 21:59, Kristoffer Ödmark wrote:
>>>>> Attaching Patch!
>>>>>
>>>>> ( Thanks Chris! )
>>>>>
>>>>> On 2017-01-11 20:51, Kristoffer Ödmark wrote:
>>>>>> Hello!
>>>>>>
>>>>>> I hacked together a group se

Re: [Kicad-developers] Group selection idea

2017-01-12 Thread Rohan Agrawal
Just adding my 2 cents, as a user of Kicad.

I think that PCB groups and schematic groups should be linked. They should
also be reusable between different boards and projects.

For example I have a 5V switching design I use on a lot of boards, and
would like to be able to have it in a library of such designs that I can
pull from.

Rohan

On Thu, Jan 12, 2017 at 12:38 PM Kristoffer Ödmark <
kristofferodmar...@gmail.com> wrote:

> I think Physical design reuse (PDR) is far out of scope of the group
> selection idea. However it Might be used. I actually put some thinking
> on howto implement some kind of PDR into Kicad without having to
> redesign everything existing already. Its in a google doc with comments
> enabled.
>
> [Google docs link]
>
> https://docs.google.com/document/d/1ivRRu7F2g6_WU9bgHlaUTaXZw02oluMh4NA41BqEM-8/edit?usp=sharing
>
> PDR discussions I think should be in a separate thread, since the amount
> of work to get there is quite a bit more, involves both eeschema and
> pcbnew, new file formatting, specifying workflows etc etc.
>
> Its called snippets in Am, PDR in PADS.
>
> - Kristoffer
>
> On 2017-01-12 18:47, Clemens Koller wrote:
> > Hello!
> >
> > This feature looks really useful in production if it's implemented
> properly.
> > Some comments from my side how things could be extended in the future:
> >
> > Group selection (also read: table-based/parametric-based selection!)
> seems like a great feature and the step towards physical design reuse (PDR).
> > With some intelligent grouping of routed components and
> automatic/assisted selection of components based on netlist-topology (or
> manual or table based selection) it is possible to create a physical design
> reuse (or channels) by duplicating groups with the same layout but
> different component references + different net names / instances of net
> names.
> > An additional approach is intelligent "group editing" (table based - a
> must have for complex designs!) where there is an automatic / assisted
> rename of components and netnames to create reuses. This also applies to
> the schematic entry, obviously.
> >
> > The word "intelligent" above means obviously, that there is some
> infrastructure and coding work to consider.
> >
> > An example screenshot of one of my designs using a buggy commercial
> product is attached. There are 60 similar channels.
> > Layouting these manually would be a hell of work, obviously.
> >
> > Regards,
> >
> > Clemens
> >
> >
> > On 2017-01-12 17:37, Wayne Stambaugh wrote:
> >> I think this feature would be useful but we should proceed with caution
> >> if we are going to include persistence.  I'm guessing making groups
> >> persistent will require a change to the pcb file format.  We should
> >> think this through thoroughly before moving forward.  Is it possible
> >> that this grouping could be used for an am like room feature?  If
> >> so, than we need to plan this out accordingly rather than just commit a
> >> new feature for the sake of convenience.
> >>
> >> On 1/12/2017 6:55 AM, Tomasz Wlostowski wrote:
> >>> I like it. Give me a few days to review it and I hope it will get
> >>> merged. You'll also have to make the groups persistent (save to file).
> >>> Recursive grouping (group of groups) would be also an advantage.
> >>>
> >>>
> >>> Cheers,
> >>> Tom
> >>>
> >>> Sent from my Samsung Galaxy smartphone.
> >>>
> >>>
> >>>  Original message 
> >>> From: Kristoffer Ödmark <kristofferodmar...@gmail.com>
> >>> Date: 12/01/2017 12:41 (GMT+01:00)
> >>> To: kicad-developers@lists.launchpad.net
> >>> Subject: Re: [Kicad-developers] Group selection idea
> >>>
> >>> Hey again, What would be the chances of seing this getting into the
> >>> master branches on launchpad, what would I have to add/change to get it
> >>> there?
> >>>
> >>> - Kristoffer
> >>>
> >>> On 2017-01-11 21:59, Kristoffer Ödmark wrote:
> >>>> Attaching Patch!
> >>>>
> >>>> ( Thanks Chris! )
> >>>>
> >>>> On 2017-01-11 20:51, Kristoffer Ödmark wrote:
> >>>>> Hello!
> >>>>>
> >>>>> I hacked together a group selection concept looking like this:
> >>>>> https://youtu.be/eJp-aJ8i0H4
> >>>>>
> >>>>> It can assign BOARD_ITEM to a spec

Re: [Kicad-developers] Group selection idea

2017-01-12 Thread Kristoffer Ödmark
I think Physical design reuse (PDR) is far out of scope of the group 
selection idea. However it Might be used. I actually put some thinking 
on howto implement some kind of PDR into Kicad without having to 
redesign everything existing already. Its in a google doc with comments 
enabled.


[Google docs link]
https://docs.google.com/document/d/1ivRRu7F2g6_WU9bgHlaUTaXZw02oluMh4NA41BqEM-8/edit?usp=sharing

PDR discussions I think should be in a separate thread, since the amount 
of work to get there is quite a bit more, involves both eeschema and 
pcbnew, new file formatting, specifying workflows etc etc.


Its called snippets in Am, PDR in PADS.

- Kristoffer

On 2017-01-12 18:47, Clemens Koller wrote:

Hello!

This feature looks really useful in production if it's implemented properly.
Some comments from my side how things could be extended in the future:

Group selection (also read: table-based/parametric-based selection!) seems like 
a great feature and the step towards physical design reuse (PDR).
With some intelligent grouping of routed components and automatic/assisted 
selection of components based on netlist-topology (or manual or table based 
selection) it is possible to create a physical design reuse (or channels) by 
duplicating groups with the same layout but different component references + 
different net names / instances of net names.
An additional approach is intelligent "group editing" (table based - a must 
have for complex designs!) where there is an automatic / assisted rename of components 
and netnames to create reuses. This also applies to the schematic entry, obviously.

The word "intelligent" above means obviously, that there is some infrastructure 
and coding work to consider.

An example screenshot of one of my designs using a buggy commercial product is 
attached. There are 60 similar channels.
Layouting these manually would be a hell of work, obviously.

Regards,

Clemens


On 2017-01-12 17:37, Wayne Stambaugh wrote:

I think this feature would be useful but we should proceed with caution
if we are going to include persistence.  I'm guessing making groups
persistent will require a change to the pcb file format.  We should
think this through thoroughly before moving forward.  Is it possible
that this grouping could be used for an am like room feature?  If
so, than we need to plan this out accordingly rather than just commit a
new feature for the sake of convenience.

On 1/12/2017 6:55 AM, Tomasz Wlostowski wrote:

I like it. Give me a few days to review it and I hope it will get
merged. You'll also have to make the groups persistent (save to file).
Recursive grouping (group of groups) would be also an advantage.


Cheers,
Tom

Sent from my Samsung Galaxy smartphone.


 Original message 
From: Kristoffer Ödmark <kristofferodmar...@gmail.com>
Date: 12/01/2017 12:41 (GMT+01:00)
To: kicad-developers@lists.launchpad.net
Subject: Re: [Kicad-developers] Group selection idea

Hey again, What would be the chances of seing this getting into the
master branches on launchpad, what would I have to add/change to get it
there?

- Kristoffer

On 2017-01-11 21:59, Kristoffer Ödmark wrote:

Attaching Patch!

( Thanks Chris! )

On 2017-01-11 20:51, Kristoffer Ödmark wrote:

Hello!

I hacked together a group selection concept looking like this:
https://youtu.be/eJp-aJ8i0H4

It can assign BOARD_ITEM to a specific group for easier selection and
group manipulation. I am open to suggestions on changes, this is surely
not an optimal implementation.

Useful when you may want to keep the relative position of something on
the board like maybe a RF layout etc.

It cannot currently save the group assignments between sessions, since
that would require some changes to the file format. That would need some
agreement that this is indeed wanted.

it also doesnt work on zones right now.

ps: I do not now the best way to attach a patch file.
I added my feature
commit
git pull
fix conflict
commit

Anyone have any steps on how to get one patch file for this, now I got
one patch file, and a merge.

- Kristoffer


___
Mailing list: https://launchpad.net/~kicad-developers
Post to : kicad-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp


___
Mailing list: https://launchpad.net/~kicad-developers
Post to : kicad-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp



___
Mailing list: https://launchpad.net/~kicad-developers
Post to : kicad-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp



___
Mailing list: https://launchpad.

Re: [Kicad-developers] Group selection idea

2017-01-12 Thread Kristoffer Ödmark
Yes, my patch was just an idea in its current implementation though it 
is very useful. But in the future I could see things as:


- Hierarchial groups
	- Connection between eeschema so that symbols could belong to a group 
by default and that nets that are only connected between symbols sharing 
the same group could be considered part of the group upon creation in pcb

- And of course persistance, that is very nice to have I have noticed


On 01/12/2017 06:00 PM, Wayne Stambaugh wrote:

On 1/12/2017 11:53 AM, Kaspar Emanuel wrote:

It does look really neat and I agree with Wayne it bears some thought
and could be a really powerful feature.

Wayne, I think what you mean by "a***m like room feature" are reusable
"snippets" of placed and routed components. Is that right?


I'm not sure what it's called in am.  I seem to remember a
discussion about "rooms" regarding one of the commercial EDA products
but could not say for sure which one.  Basically the feature is reusable
blocks of board objects.  I think this feature could be really powerful
if we think about the bigger picture rather than just the patch we have
in front of us.



On 12 January 2017 at 16:37, Wayne Stambaugh <stambau...@gmail.com
<mailto:stambau...@gmail.com>> wrote:

I think this feature would be useful but we should proceed with caution
if we are going to include persistence.  I'm guessing making groups
persistent will require a change to the pcb file format.  We should
think this through thoroughly before moving forward.  Is it possible
that this grouping could be used for an am like room feature?  If
so, than we need to plan this out accordingly rather than just commit a
new feature for the sake of convenience.

On 1/12/2017 6:55 AM, Tomasz Wlostowski wrote:
> I like it. Give me a few days to review it and I hope it will get
> merged. You'll also have to make the groups persistent (save to file).
> Recursive grouping (group of groups) would be also an advantage.
>
>
> Cheers,
> Tom
>
> Sent from my Samsung Galaxy smartphone.
>
>
>  Original message 
> From: Kristoffer Ödmark <kristofferodmar...@gmail.com
<mailto:kristofferodmar...@gmail.com>>
> Date: 12/01/2017 12:41 (GMT+01:00)
> To: kicad-developers@lists.launchpad.net
<mailto:kicad-developers@lists.launchpad.net>
> Subject: Re: [Kicad-developers] Group selection idea
>
> Hey again, What would be the chances of seing this getting into the
> master branches on launchpad, what would I have to add/change to
get it
> there?
>
> - Kristoffer
>
> On 2017-01-11 21:59, Kristoffer Ödmark wrote:
>> Attaching Patch!
>>
>> ( Thanks Chris! )
>>
>> On 2017-01-11 20:51, Kristoffer Ödmark wrote:
>>> Hello!
>>>
>>> I hacked together a group selection concept looking like this:
>>> https://youtu.be/eJp-aJ8i0H4
>>>
>>> It can assign BOARD_ITEM to a specific group for easier
selection and
>>> group manipulation. I am open to suggestions on changes, this is
surely
>>> not an optimal implementation.
>>>
>>> Useful when you may want to keep the relative position of
something on
>>> the board like maybe a RF layout etc.
>>>
>>> It cannot currently save the group assignments between sessions,
since
>>> that would require some changes to the file format. That would
need some
>>> agreement that this is indeed wanted.
>>>
>>> it also doesnt work on zones right now.
>>>
>>> ps: I do not now the best way to attach a patch file.
>>> I added my feature
>>> commit
>>> git pull
>>> fix conflict
>>> commit
>>>
>>> Anyone have any steps on how to get one patch file for this, now
I got
>>> one patch file, and a merge.
>>>
>>> - Kristoffer
>
> ___
> Mailing list: https://launchpad.net/~kicad-developers
<https://launchpad.net/~kicad-developers>
> Post to : kicad-developers@lists.launchpad.net
<mailto:kicad-developers@lists.launchpad.net>
> Unsubscribe : https://launchpad.net/~kicad-developers
<https://launchpad.net/~kicad-developers>
> More help   : https://help.launchpad.net/ListHelp
<https://help.launchpad.net/ListHelp>
>
>
> ___
> Mailing list: https://launchpad.net/~ki

Re: [Kicad-developers] Group selection idea

2017-01-12 Thread Wayne Stambaugh
On 1/12/2017 11:53 AM, Kaspar Emanuel wrote:
> It does look really neat and I agree with Wayne it bears some thought
> and could be a really powerful feature.
> 
> Wayne, I think what you mean by "a***m like room feature" are reusable
> "snippets" of placed and routed components. Is that right?

I'm not sure what it's called in am.  I seem to remember a
discussion about "rooms" regarding one of the commercial EDA products
but could not say for sure which one.  Basically the feature is reusable
blocks of board objects.  I think this feature could be really powerful
if we think about the bigger picture rather than just the patch we have
in front of us.

> 
> On 12 January 2017 at 16:37, Wayne Stambaugh <stambau...@gmail.com
> <mailto:stambau...@gmail.com>> wrote:
> 
> I think this feature would be useful but we should proceed with caution
> if we are going to include persistence.  I'm guessing making groups
> persistent will require a change to the pcb file format.  We should
> think this through thoroughly before moving forward.  Is it possible
> that this grouping could be used for an am like room feature?  If
> so, than we need to plan this out accordingly rather than just commit a
> new feature for the sake of convenience.
> 
> On 1/12/2017 6:55 AM, Tomasz Wlostowski wrote:
> > I like it. Give me a few days to review it and I hope it will get
> > merged. You'll also have to make the groups persistent (save to file).
> > Recursive grouping (group of groups) would be also an advantage.
> >
> >
> > Cheers,
> > Tom
> >
> > Sent from my Samsung Galaxy smartphone.
> >
> >
> >  Original message 
> > From: Kristoffer Ödmark <kristofferodmar...@gmail.com
> <mailto:kristofferodmar...@gmail.com>>
> > Date: 12/01/2017 12:41 (GMT+01:00)
> > To: kicad-developers@lists.launchpad.net
> <mailto:kicad-developers@lists.launchpad.net>
> > Subject: Re: [Kicad-developers] Group selection idea
> >
> > Hey again, What would be the chances of seing this getting into the
> > master branches on launchpad, what would I have to add/change to
> get it
> > there?
> >
> > - Kristoffer
> >
> > On 2017-01-11 21:59, Kristoffer Ödmark wrote:
> >> Attaching Patch!
> >>
> >> ( Thanks Chris! )
> >>
> >> On 2017-01-11 20:51, Kristoffer Ödmark wrote:
> >>> Hello!
> >>>
> >>> I hacked together a group selection concept looking like this:
> >>> https://youtu.be/eJp-aJ8i0H4
> >>>
> >>> It can assign BOARD_ITEM to a specific group for easier
> selection and
> >>> group manipulation. I am open to suggestions on changes, this is
> surely
> >>> not an optimal implementation.
> >>>
> >>> Useful when you may want to keep the relative position of
> something on
> >>> the board like maybe a RF layout etc.
> >>>
> >>> It cannot currently save the group assignments between sessions,
> since
> >>> that would require some changes to the file format. That would
> need some
> >>> agreement that this is indeed wanted.
> >>>
> >>> it also doesnt work on zones right now.
> >>>
> >>> ps: I do not now the best way to attach a patch file.
> >>> I added my feature
> >>> commit
> >>> git pull
> >>> fix conflict
> >>> commit
> >>>
> >>> Anyone have any steps on how to get one patch file for this, now
> I got
> >>> one patch file, and a merge.
> >>>
> >>> - Kristoffer
> >
> > ___
> > Mailing list: https://launchpad.net/~kicad-developers
> <https://launchpad.net/~kicad-developers>
> > Post to : kicad-developers@lists.launchpad.net
> <mailto:kicad-developers@lists.launchpad.net>
> > Unsubscribe : https://launchpad.net/~kicad-developers
> <https://launchpad.net/~kicad-developers>
> > More help   : https://help.launchpad.net/ListHelp
> <https://help.launchpad.net/ListHelp>
> >
> >
> > ___
> > Mailing list: https://launchpad.net/~kicad-developers
&g

Re: [Kicad-developers] Group selection idea

2017-01-12 Thread Kaspar Emanuel
It does look really neat and I agree with Wayne it bears some thought and
could be a really powerful feature.

Wayne, I think what you mean by "a***m like room feature" are reusable
"snippets" of placed and routed components. Is that right?

On 12 January 2017 at 16:37, Wayne Stambaugh <stambau...@gmail.com> wrote:

> I think this feature would be useful but we should proceed with caution
> if we are going to include persistence.  I'm guessing making groups
> persistent will require a change to the pcb file format.  We should
> think this through thoroughly before moving forward.  Is it possible
> that this grouping could be used for an am like room feature?  If
> so, than we need to plan this out accordingly rather than just commit a
> new feature for the sake of convenience.
>
> On 1/12/2017 6:55 AM, Tomasz Wlostowski wrote:
> > I like it. Give me a few days to review it and I hope it will get
> > merged. You'll also have to make the groups persistent (save to file).
> > Recursive grouping (group of groups) would be also an advantage.
> >
> >
> > Cheers,
> > Tom
> >
> > Sent from my Samsung Galaxy smartphone.
> >
> >
> >  Original message 
> > From: Kristoffer Ödmark <kristofferodmar...@gmail.com>
> > Date: 12/01/2017 12:41 (GMT+01:00)
> > To: kicad-developers@lists.launchpad.net
> > Subject: Re: [Kicad-developers] Group selection idea
> >
> > Hey again, What would be the chances of seing this getting into the
> > master branches on launchpad, what would I have to add/change to get it
> > there?
> >
> > - Kristoffer
> >
> > On 2017-01-11 21:59, Kristoffer Ödmark wrote:
> >> Attaching Patch!
> >>
> >> ( Thanks Chris! )
> >>
> >> On 2017-01-11 20:51, Kristoffer Ödmark wrote:
> >>> Hello!
> >>>
> >>> I hacked together a group selection concept looking like this:
> >>> https://youtu.be/eJp-aJ8i0H4
> >>>
> >>> It can assign BOARD_ITEM to a specific group for easier selection and
> >>> group manipulation. I am open to suggestions on changes, this is surely
> >>> not an optimal implementation.
> >>>
> >>> Useful when you may want to keep the relative position of something on
> >>> the board like maybe a RF layout etc.
> >>>
> >>> It cannot currently save the group assignments between sessions, since
> >>> that would require some changes to the file format. That would need
> some
> >>> agreement that this is indeed wanted.
> >>>
> >>> it also doesnt work on zones right now.
> >>>
> >>> ps: I do not now the best way to attach a patch file.
> >>> I added my feature
> >>> commit
> >>> git pull
> >>> fix conflict
> >>> commit
> >>>
> >>> Anyone have any steps on how to get one patch file for this, now I got
> >>> one patch file, and a merge.
> >>>
> >>> - Kristoffer
> >
> > ___
> > Mailing list: https://launchpad.net/~kicad-developers
> > Post to : kicad-developers@lists.launchpad.net
> > Unsubscribe : https://launchpad.net/~kicad-developers
> > More help   : https://help.launchpad.net/ListHelp
> >
> >
> > ___
> > Mailing list: https://launchpad.net/~kicad-developers
> > Post to : kicad-developers@lists.launchpad.net
> > Unsubscribe : https://launchpad.net/~kicad-developers
> > More help   : https://help.launchpad.net/ListHelp
> >
>
> ___
> Mailing list: https://launchpad.net/~kicad-developers
> Post to : kicad-developers@lists.launchpad.net
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp
>
___
Mailing list: https://launchpad.net/~kicad-developers
Post to : kicad-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp


Re: [Kicad-developers] Group selection idea

2017-01-12 Thread Wayne Stambaugh
I think this feature would be useful but we should proceed with caution
if we are going to include persistence.  I'm guessing making groups
persistent will require a change to the pcb file format.  We should
think this through thoroughly before moving forward.  Is it possible
that this grouping could be used for an am like room feature?  If
so, than we need to plan this out accordingly rather than just commit a
new feature for the sake of convenience.

On 1/12/2017 6:55 AM, Tomasz Wlostowski wrote:
> I like it. Give me a few days to review it and I hope it will get
> merged. You'll also have to make the groups persistent (save to file).
> Recursive grouping (group of groups) would be also an advantage.
> 
> 
> Cheers,
> Tom
> 
> Sent from my Samsung Galaxy smartphone.
> 
> 
>  Original message 
> From: Kristoffer Ödmark <kristofferodmar...@gmail.com>
> Date: 12/01/2017 12:41 (GMT+01:00)
> To: kicad-developers@lists.launchpad.net
> Subject: Re: [Kicad-developers] Group selection idea
> 
> Hey again, What would be the chances of seing this getting into the
> master branches on launchpad, what would I have to add/change to get it
> there?
> 
> - Kristoffer
> 
> On 2017-01-11 21:59, Kristoffer Ödmark wrote:
>> Attaching Patch!
>>
>> ( Thanks Chris! )
>>
>> On 2017-01-11 20:51, Kristoffer Ödmark wrote:
>>> Hello!
>>>
>>> I hacked together a group selection concept looking like this:
>>> https://youtu.be/eJp-aJ8i0H4
>>>
>>> It can assign BOARD_ITEM to a specific group for easier selection and
>>> group manipulation. I am open to suggestions on changes, this is surely
>>> not an optimal implementation.
>>>
>>> Useful when you may want to keep the relative position of something on
>>> the board like maybe a RF layout etc.
>>>
>>> It cannot currently save the group assignments between sessions, since
>>> that would require some changes to the file format. That would need some
>>> agreement that this is indeed wanted.
>>>
>>> it also doesnt work on zones right now.
>>>
>>> ps: I do not now the best way to attach a patch file.
>>> I added my feature
>>> commit
>>> git pull
>>> fix conflict
>>> commit
>>>
>>> Anyone have any steps on how to get one patch file for this, now I got
>>> one patch file, and a merge.
>>>
>>> - Kristoffer
> 
> ___
> Mailing list: https://launchpad.net/~kicad-developers
> Post to : kicad-developers@lists.launchpad.net
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp
> 
> 
> ___
> Mailing list: https://launchpad.net/~kicad-developers
> Post to : kicad-developers@lists.launchpad.net
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp
> 

___
Mailing list: https://launchpad.net/~kicad-developers
Post to : kicad-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp


Re: [Kicad-developers] Group selection idea

2017-01-12 Thread Tomasz Wlostowski
I like it. Give me a few days to review it and I hope it will get merged. 
You'll also have to make the groups persistent (save to file). Recursive 
grouping (group of groups) would be also an advantage.


Cheers,
Tom

Sent from my Samsung Galaxy smartphone.


 Original message 
From: Kristoffer Ödmark <kristofferodmar...@gmail.com>
Date: 12/01/2017 12:41 (GMT+01:00)
To: kicad-developers@lists.launchpad.net
Subject: Re: [Kicad-developers] Group selection idea

Hey again, What would be the chances of seing this getting into the
master branches on launchpad, what would I have to add/change to get it
there?

- Kristoffer

On 2017-01-11 21:59, Kristoffer Ödmark wrote:
> Attaching Patch!
>
> ( Thanks Chris! )
>
> On 2017-01-11 20:51, Kristoffer Ödmark wrote:
>> Hello!
>>
>> I hacked together a group selection concept looking like this:
>> https://youtu.be/eJp-aJ8i0H4
>>
>> It can assign BOARD_ITEM to a specific group for easier selection and
>> group manipulation. I am open to suggestions on changes, this is surely
>> not an optimal implementation.
>>
>> Useful when you may want to keep the relative position of something on
>> the board like maybe a RF layout etc.
>>
>> It cannot currently save the group assignments between sessions, since
>> that would require some changes to the file format. That would need some
>> agreement that this is indeed wanted.
>>
>> it also doesnt work on zones right now.
>>
>> ps: I do not now the best way to attach a patch file.
>> I added my feature
>> commit
>> git pull
>> fix conflict
>> commit
>>
>> Anyone have any steps on how to get one patch file for this, now I got
>> one patch file, and a merge.
>>
>> - Kristoffer

___
Mailing list: https://launchpad.net/~kicad-developers
Post to : kicad-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp
___
Mailing list: https://launchpad.net/~kicad-developers
Post to : kicad-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp


Re: [Kicad-developers] Group selection idea

2017-01-12 Thread Kristoffer Ödmark
Hey again, What would be the chances of seing this getting into the 
master branches on launchpad, what would I have to add/change to get it 
there?


- Kristoffer

On 2017-01-11 21:59, Kristoffer Ödmark wrote:

Attaching Patch!

( Thanks Chris! )

On 2017-01-11 20:51, Kristoffer Ödmark wrote:

Hello!

I hacked together a group selection concept looking like this:
https://youtu.be/eJp-aJ8i0H4

It can assign BOARD_ITEM to a specific group for easier selection and
group manipulation. I am open to suggestions on changes, this is surely
not an optimal implementation.

Useful when you may want to keep the relative position of something on
the board like maybe a RF layout etc.

It cannot currently save the group assignments between sessions, since
that would require some changes to the file format. That would need some
agreement that this is indeed wanted.

it also doesnt work on zones right now.

ps: I do not now the best way to attach a patch file.
I added my feature
commit
git pull
fix conflict
commit

Anyone have any steps on how to get one patch file for this, now I got
one patch file, and a merge.

- Kristoffer


___
Mailing list: https://launchpad.net/~kicad-developers
Post to : kicad-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp


Re: [Kicad-developers] Group selection idea

2017-01-11 Thread Kristoffer Ödmark

Attaching Patch!

( Thanks Chris! )

On 2017-01-11 20:51, Kristoffer Ödmark wrote:

Hello!

I hacked together a group selection concept looking like this:
https://youtu.be/eJp-aJ8i0H4

It can assign BOARD_ITEM to a specific group for easier selection and
group manipulation. I am open to suggestions on changes, this is surely
not an optimal implementation.

Useful when you may want to keep the relative position of something on
the board like maybe a RF layout etc.

It cannot currently save the group assignments between sessions, since
that would require some changes to the file format. That would need some
agreement that this is indeed wanted.

it also doesnt work on zones right now.

ps: I do not now the best way to attach a patch file.
I added my feature
commit
git pull
fix conflict
commit

Anyone have any steps on how to get one patch file for this, now I got
one patch file, and a merge.

- Kristoffer
>From f9aa34cddbb6a8b90f5edf2dfc344c73bf252663 Mon Sep 17 00:00:00 2001
From: totalkrill 
Date: Wed, 11 Jan 2017 19:49:05 +0100
Subject: [PATCH] Added concept of selectiongroups. Groups context menu
 Added Modified SELECT_MENU and the select_tool Added getters to BOARD
 class Added std::string groupId to BOARD_ITEM class

---
 include/class_board_item.h  |   2 +
 pcbnew/class_board.cpp  |  88 +
 pcbnew/class_board.h|  22 ++
 pcbnew/tools/common_actions.cpp |  20 +
 pcbnew/tools/common_actions.h   |  15 
 pcbnew/tools/pcb_editor_control.cpp | 147 +++-
 pcbnew/tools/pcb_editor_control.h   |  11 +++
 pcbnew/tools/selection_tool.cpp | 104 +++--
 pcbnew/tools/selection_tool.h   |   6 ++
 9 files changed, 408 insertions(+), 7 deletions(-)

diff --git a/include/class_board_item.h b/include/class_board_item.h
index 34c275c14..d78951ac7 100644
--- a/include/class_board_item.h
+++ b/include/class_board_item.h
@@ -84,6 +84,8 @@ protected:
 
 public:
 
+std::string groupId = "";
+
 BOARD_ITEM( BOARD_ITEM* aParent, KICAD_T idtype ) :
 EDA_ITEM( aParent, idtype ), m_Layer( F_Cu )
 {
diff --git a/pcbnew/class_board.cpp b/pcbnew/class_board.cpp
index 6608c3ce0..b292ddd66 100644
--- a/pcbnew/class_board.cpp
+++ b/pcbnew/class_board.cpp
@@ -1128,6 +1128,94 @@ EDA_RECT BOARD::ComputeBoundingBox( bool aBoardEdgesOnly )
 return area;
 }
 
+std::list BOARD::GetAllItems()
+{
+std::list itemsList;
+
+auto tracks = m_Track.GetFirst();
+auto drawings = m_Drawings.GetFirst();
+auto modules = m_Modules.GetFirst();
+auto zones = m_Zone.GetFirst();
+
+for( BOARD_ITEM* item = tracks; item; item = item->Next() )
+{
+if ( item != NULL )
+itemsList.push_back( item );
+}
+for( BOARD_ITEM* item = drawings; item; item = item->Next() )
+{
+if ( item != NULL )
+itemsList.push_back( item );
+}
+for( BOARD_ITEM* item = modules; item; item = item->Next() )
+{
+if ( item != NULL )
+itemsList.push_back( item );
+}
+for( BOARD_ITEM* item = zones; item; item = item->Next() )
+{
+if ( item != NULL )
+itemsList.push_back( item );
+}
+
+return itemsList;
+}
+
+std::list BOARD::GetAllGroupItems()
+{
+std::list itemsList;
+
+auto tracks = m_Track.GetFirst();
+auto drawings = m_Drawings.GetFirst();
+auto modules = m_Modules.GetFirst();
+auto zones = m_Zone.GetFirst();
+
+for( BOARD_ITEM* item = tracks; item; item = item->Next() )
+{
+if ( item != NULL && item->groupId != "" )
+itemsList.push_back( item );
+}
+for( BOARD_ITEM* item = drawings; item; item = item->Next() )
+{
+if ( item != NULL && item->groupId != "" )
+itemsList.push_back( item );
+}
+for( BOARD_ITEM* item = modules; item; item = item->Next() )
+{
+if ( item != NULL && item->groupId != "" )
+itemsList.push_back( item );
+}
+for( BOARD_ITEM* item = zones; item; item = item->Next() )
+{
+if ( item != NULL && item->groupId != "" )
+itemsList.push_back( item );
+}
+
+return itemsList;
+}
+
+std::list BOARD::GetGroups()
+{
+
+std::list existingGroups;
+
+std::list itemsList = GetAllGroupItems();
+
+for( BOARD_ITEM* i : itemsList )
+{
+bool groupSeen = false;
+
+for( std::string s : existingGroups )
+{
+if( s == i->groupId )
+groupSeen = true;
+}
+if( !groupSeen  && i->groupId != "" )
+existingGroups.push_back( i->groupId );
+}
+return existingGroups;
+}
+
 
 // virtual, see pcbstruct.h
 void BOARD::GetMsgPanelInfo( std::vector< MSG_PANEL_ITEM >& aList )
diff --git a/pcbnew/class_board.h b/pcbnew/class_board.h
index 

[Kicad-developers] Group selection idea

2017-01-11 Thread Kristoffer Ödmark

Hello!

I hacked together a group selection concept looking like this: 
https://youtu.be/eJp-aJ8i0H4


It can assign BOARD_ITEM to a specific group for easier selection and 
group manipulation. I am open to suggestions on changes, this is surely

not an optimal implementation.

Useful when you may want to keep the relative position of something on 
the board like maybe a RF layout etc.


It cannot currently save the group assignments between sessions, since 
that would require some changes to the file format. That would need some 
agreement that this is indeed wanted.


it also doesnt work on zones right now.

ps: I do not now the best way to attach a patch file.
I added my feature
commit
git pull
fix conflict
commit

Anyone have any steps on how to get one patch file for this, now I got 
one patch file, and a merge.


- Kristoffer
>From 2980b0146ab2a195bc9b82bdb8797a5911299740 Mon Sep 17 00:00:00 2001
From: totalkrill 
Date: Wed, 11 Jan 2017 19:49:05 +0100
Subject: [PATCH 2/2] Added concept of selectiongroups. Groups context menu
 Added Modified SELECT_MENU and the select_tool Added getters to BOARD
 class Added std::string groupId to BOARD_ITEM class

---
 include/class_board_item.h  |   2 +
 pcbnew/class_board.cpp  |  88 +
 pcbnew/class_board.h|  22 ++
 pcbnew/tools/common_actions.cpp |  20 +
 pcbnew/tools/common_actions.h   |  15 
 pcbnew/tools/pcb_editor_control.cpp | 147 +++-
 pcbnew/tools/pcb_editor_control.h   |  11 +++
 pcbnew/tools/selection_tool.cpp |  98 +++-
 pcbnew/tools/selection_tool.h   |   6 ++
 9 files changed, 406 insertions(+), 3 deletions(-)

diff --git a/include/class_board_item.h b/include/class_board_item.h
index 34c275c14..d78951ac7 100644
--- a/include/class_board_item.h
+++ b/include/class_board_item.h
@@ -84,6 +84,8 @@ protected:
 
 public:
 
+std::string groupId = "";
+
 BOARD_ITEM( BOARD_ITEM* aParent, KICAD_T idtype ) :
 EDA_ITEM( aParent, idtype ), m_Layer( F_Cu )
 {
diff --git a/pcbnew/class_board.cpp b/pcbnew/class_board.cpp
index 6608c3ce0..b292ddd66 100644
--- a/pcbnew/class_board.cpp
+++ b/pcbnew/class_board.cpp
@@ -1128,6 +1128,94 @@ EDA_RECT BOARD::ComputeBoundingBox( bool aBoardEdgesOnly )
 return area;
 }
 
+std::list BOARD::GetAllItems()
+{
+std::list itemsList;
+
+auto tracks = m_Track.GetFirst();
+auto drawings = m_Drawings.GetFirst();
+auto modules = m_Modules.GetFirst();
+auto zones = m_Zone.GetFirst();
+
+for( BOARD_ITEM* item = tracks; item; item = item->Next() )
+{
+if ( item != NULL )
+itemsList.push_back( item );
+}
+for( BOARD_ITEM* item = drawings; item; item = item->Next() )
+{
+if ( item != NULL )
+itemsList.push_back( item );
+}
+for( BOARD_ITEM* item = modules; item; item = item->Next() )
+{
+if ( item != NULL )
+itemsList.push_back( item );
+}
+for( BOARD_ITEM* item = zones; item; item = item->Next() )
+{
+if ( item != NULL )
+itemsList.push_back( item );
+}
+
+return itemsList;
+}
+
+std::list BOARD::GetAllGroupItems()
+{
+std::list itemsList;
+
+auto tracks = m_Track.GetFirst();
+auto drawings = m_Drawings.GetFirst();
+auto modules = m_Modules.GetFirst();
+auto zones = m_Zone.GetFirst();
+
+for( BOARD_ITEM* item = tracks; item; item = item->Next() )
+{
+if ( item != NULL && item->groupId != "" )
+itemsList.push_back( item );
+}
+for( BOARD_ITEM* item = drawings; item; item = item->Next() )
+{
+if ( item != NULL && item->groupId != "" )
+itemsList.push_back( item );
+}
+for( BOARD_ITEM* item = modules; item; item = item->Next() )
+{
+if ( item != NULL && item->groupId != "" )
+itemsList.push_back( item );
+}
+for( BOARD_ITEM* item = zones; item; item = item->Next() )
+{
+if ( item != NULL && item->groupId != "" )
+itemsList.push_back( item );
+}
+
+return itemsList;
+}
+
+std::list BOARD::GetGroups()
+{
+
+std::list existingGroups;
+
+std::list itemsList = GetAllGroupItems();
+
+for( BOARD_ITEM* i : itemsList )
+{
+bool groupSeen = false;
+
+for( std::string s : existingGroups )
+{
+if( s == i->groupId )
+groupSeen = true;
+}
+if( !groupSeen  && i->groupId != "" )
+existingGroups.push_back( i->groupId );
+}
+return existingGroups;
+}
+
 
 // virtual, see pcbstruct.h
 void BOARD::GetMsgPanelInfo( std::vector< MSG_PANEL_ITEM >& aList )
diff --git a/pcbnew/class_board.h b/pcbnew/class_board.h
index 0ad5e9d89..210b7065d 100644
--- a/pcbnew/class_board.h
+++ b/pcbnew/class_board.h
@@