Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Issue in 7.6.2 beta

1 view
Skip to first unread message

Morten Leikvoll

unread,
Aug 15, 2016, 10:01:02 AM8/15/16
to
I have this ULP with a redundant bug detector that kicked in all of a
sudden.

Using CONTEXT menu, my test detected if more than one item was in the
ingroup() when executed from context menu from a wire perspective. Of
course this should not be possible.

I tried a few tricks to get rid of the bug, but finally I had to close,
then reopen the project before the bug went away.

Unfortunately I can not recreate it at command, but this may give a hint
what to look for.

This is how the detector looks like:
---------------
found="";
if(schematic) schematic(SCH)//Look for the selected net
{
SCH.sheets(SHT) SHT.nets(NET) NET.segments(SEG) SEG.wires(WIR)
if(ingroup(WIR))
{
if(found!="")//Redundant test
{
dlgMessageBox("Bug detected? Several grouped wires detected in
Sch.MenuContext.Wire context");
exit(0);
}
found=NET.name;
found_page=SHT.number;
}
}
----------------

Morten Leikvoll

unread,
Sep 14, 2016, 8:01:01 AM9/14/16
to
I just wanted to lift this issue and ask for a confirmation. This
happens all too often to me. If you like me to contribute, please let me
know what to try. Unfortunally this is not a saveable state.

I suspect the group function has some conflicts with the rightclick
context selection that doesnt get resolved properly. Maybe related to
latest SET CONTEXT repair attempts.


Morten Leikvoll

unread,
Sep 15, 2016, 7:01:01 AM9/15/16
to
I did some deeper digging here and found ingrouped wires inside objects
that were not themself ingrouped, or even at the page where the context
function was triggered.
I was browsing schematic->sheets->nets->segments->wires and segments and
their ancestors were not part of ingroup even if the wire was. I guess
those are false ingrouped.

I see I may add some redundancy to my script to only pick those ingroups
where the parent is also part of the ingroup, but still this is flaky.

Morten Leikvoll

unread,
Sep 15, 2016, 7:01:01 AM9/15/16
to
Another interesting issue.. Those false ingrouped wires were something I
moved to a different sheet not long ago. When just grouping them again,
the false ingroup flags seems to get cleared.

Maybe the context ingroup function should get a new function name, like
incontext()? I guess its not too late to do that, flaky as it has been.
Logically they are totally different, and using the ingroup() for this
seems to be a horrible shortcut.

Richard Hammerl

unread,
Sep 19, 2016, 10:01:01 AM9/19/16
to
We tried this and could not reproduce the problem. Do you have any
further news on ths in order to reproduce it reliable meanwhile?


--
Mit freundlichen Gruessen / Best regards
Richard Hammerl
CadSoft Support -- hot...@cadsoft.de
FAQ: http://www.cadsoft.de/training/faq/

Walter Spermann

unread,
Sep 20, 2016, 12:01:01 PM9/20/16
to
On 09/20/2016 10:15 AM, Morten Leikvoll wrote:
> On 19.09.2016 15:50, Richard Hammerl wrote:
>> Am 15.09.2016 um 12:23 schrieb Morten Leikvoll:
>>> On 15.09.2016 12:16, Morten Leikvoll wrote:
>>>> I did some deeper digging here and found ingrouped wires inside objects
>>>> that were not themself ingrouped, or even at the page where the context
>>>> function was triggered.
>>>> I was browsing schematic->sheets->nets->segments->wires and segments and
>>>> their ancestors were not part of ingroup even if the wire was. I guess
>>>> those are false ingrouped.
>>>>
>>>> I see I may add some redundancy to my script to only pick those ingroups
>>>> where the parent is also part of the ingroup, but still this is flaky.
>>>>
>>>
>>> Another interesting issue.. Those false ingrouped wires were something I
>>> moved to a different sheet not long ago. When just grouping them again,
>>> the false ingroup flags seems to get cleared.
>>>
>>> Maybe the context ingroup function should get a new function name, like
>>> incontext()? I guess its not too late to do that, flaky as it has been.
>>> Logically they are totally different, and using the ingroup() for this
>>> seems to be a horrible shortcut.
>>>
>>
>>
>> We tried this and could not reproduce the problem. Do you have any
>> further news on ths in order to reproduce it reliable meanwhile?
>
> I can reproduce this now. As I thought it seems to be related to moving schematic across pages.
>
> How to reproduce:
> 0-Unzip the files attached using the opensource 7zip tool (free download at 7zip.org)
>
> 1-Use the attached tiny test project
>
> 2-In the schematic editor, run the attached ulp using "run test_wire_context install" to install
> context menu
>
> 3-Group and move everything on page 1 to page 2
>
> 4-Undo
>
> 5-Rightclick the the wire between C3 and C4, get a multiple ingroup item error message and read the
> ingroup() status list in debug.txt.
>
>
We also could reproduce it and fixed it for next beta.
Thanks for your effort!

Regards,
Walter Spermann

--
----------------------------------------------------------------------------------------------------------
Walter Spermann
Software Development
CadSoft Computer GmbH
Pleidolfweg 15
84568 Pleiskirchen
Tel.: 08635/6989-10
www.cadsoft.io
----------------------------------------------------------------------------------------------------------

Morten Leikvoll

unread,
Dec 14, 2016, 7:01:02 AM12/14/16
to
On 20.09.2016 17:14, Walter Spermann wrote:
> We also could reproduce it and fixed it for next beta.
> Thanks for your effort!

I just found another leftover of this in 7.7.0. I can still not repeat
it, but here is a snapshot of the debug text generated by my script
confirming the same issue:

schematic net SIGNAL1:no
schematic net segment:no
schematic net segment wire:yes
schematic net SIGNAL2:no
schematic net segment:no
schematic net segment wire:yes
schematic net SIGNAL3:no
schematic net segment:no
schematic net segment wire:yes


I think those nets may have been involved in some group mirror function.
That's the best clue I can give now. I will followup as soon as I see
more of it.

0 new messages