Mailing list archives : pcb-rnd

ID:3125
From:ge...@igor2.repo.hu
Date:Tue, 18 Jun 2019 08:20:55 +0200 (CEST)
Subject:[pcb-rnd] project state update (including camv-rnd)
Hi all,
 
next week the bug fix phase starts in pcb-rnd, which means I will spend 
more time on fixing bugs that have been reported on the mailing list or 
are on the TODO. 
 
The bugfix phase also means feature development on already released 
features stops until the release so we have the chance to get them tested 
out. However, as always, feature development on not-yet-released plugins 
will continue (at a lower priority than bugfixing).
 
Note: since 2016 the schedule is planned and published in advance, see: 
http://www.repo.hu/cgi-bin/pcb-rnd-people.cgi?cmd=timeline
 
There are 3 groups of largish features I am working on:
 
1. camv-rnd
 
This is a sister project, which will soon replace gerbv in our recommended 
toolchain. It is part of the rnd (ringdove) EDA suite, which means it 
looks and works the same as pcb-rnd (it shares the hidlib code) and it can 
communicate with the rest of the suite through genxproj (optional), but 
will not be integrated with our other tools. 
 
After about 2 weeks of intensive hacking, I have all the essential infra 
(GUI) set up and I have a gerber file parser/renderer that behaves very 
much like the official reference viewer. 
 
On the way I was writing small test files that I ran through any gerber 
viewer I had access to. By now, taking the reference viewer as basis, I 
think camv-rnd is way more accurate than what we got used to in other 
viewers (including gerbv, which fails on many of the test cases).
 
I am looking for alpha testers. If you are interested, please contact me 
on IRC or mail me. What I am looking for is someone who has at least some 
minimal understanding of the gerber format _and_ can invest some time in 
preparing minimal test case files. Please consider signing up for the 
CUCP.
 
(As always, throwing random gerber files at me is not helping at all - I 
have access to the internet too, I can download random files too)
 
This is the "sister projects" part on the timeline (although it names 
genxproj only - but I generally wanted to get our suite expand).
 
 
2. scripting
 
I get more and more feature requests for real exotic, special things that 
I do not want to make part of pcb-rnd. At least not the core feature set. 
Rationale: it's extremely hard to maintain a huge code base packed with 
features only 1 or 2 users know about and it also makes it much harder for 
new users to learn the software.
 
I have a mechanism (since 2010!) for resolving this problem: user 
scripting. So far it didn't take off, but since a few development cycles I 
allocate some of my time on getting the infastructure better and better.
 
This cycle I will try to release my first user script on edakrill. It will 
be a small awk script for "tenting/untenting vias" (deleting or generating 
solder mask shape on non-terminal padstacks) and for "pasting/unpasting 
pads" (adding or removing paste shape on non-holed padstacks).
 
Along the way I need to add a lot of new actions that expose some 
internals of pcb-rnd so scripts can now safely reference object, list 
object them (using the query plugin), read and edit them (using the 
propedit plugin) and manipulate padstacks and padstack prototypes.
 
At the moment I don't need help with this specific part, but any user 
scripting effort is welcome. Write your own script, with dialog boxes, 
actions, menus, hotkey, etc. in one of the 10 scripting languages pcb-rnd 
supports!
 
This is the "scripting" part on the timeline.
 
3. pcb ordering
 
This one was not planned, but the opportunity came as PCBWay contacted me 
with the idea and a ready-to-use API. As you may remember I made a 
survey/poll about how our power users would related to the feature and the 
reception seems to be positive:
http://repo.hu/cgi-bin/pool.cgi?cmd=show&node=order_button_poll
 
So I started to code the infra and experiment with the API. It will take a 
lot of time to have a working version - and target is not the upcoming 
release. But I think we could have something usable in the next 
development cycle.
 
At the moment this part doesn't need help.
 
4. genxproj
 
Genxproj is an _optional_ GUI project manager. For me, a console junkie, 
it is not something I'd ever use myself, but I see how more GUI-oriented 
users do like such tools. It's an old project, there's a demo video 
showing a gschem <-> pcb-rnd -> gerbv flow:
 
http://repo.hu/cgi-bin/pool.cgi?cmd=show&node=genxproj_a1
 
Prior art is xgsch2pcb and easyspice. How genxproj is much more than those 
attempts:
 
- it is not hardwired to one workflow; instead it is a framework in which 
you can easily script any workflow using any X11 applications (doesn't 
need to be EDA or CAD)
 
- it can force-embed the GUI window of the applications it runs, which 
means it can emulate tabbed views. Famous idea that is among non-gEDA 
users: single EDA project, one tab for schematics, one tab for PCB, one 
tab for the output "render"
 
- this all done in a way that we do not need to make _any_ integration 
among our software - in fact to some degree it all works even if the EDA 
tools we use don't even want to cooperate at all (the demo video is like 
that: neither gschem or gerbv did anything for this to be possible, 
genxproj is just working around their limitations)
 
 
So it's best of both worlds: 
 
- on the surface emulating integration 
 
- deep inside it's all done without ruining our software with any actual 
integration or ties between them.
 
I plan to allocate some time to make progress with this project.
 
If you want to help with _coordinated_ testing _and_ you can allocate 
some time for it, please sign up in the CUCP!
 
Best regards,
 
Igor2
 
 

Reply subtree:
3125 [pcb-rnd] project state update (including camv-rnd) from ge...@igor2.repo.hu