Mail Archives: geda-user/2016/01/06/11:40:46
Levente:
> I'd make such API calls, for example move (change coordinate) of object,
> add new, or iterate through objects.
If you want scripting outside of pcb, then I don't know about anything
currently available. If we make a simple parsing thing that gives you a
parse tree, could that be something to start tinkering with.
First is some header things, then a list of "Symbol", Grid setting,
Vias, elements, then list of layers which contains lines, arcs, text
and polygons; followed by a list of nets. Given that you could do
something like:
pcb.read(myfile.pcb);
pcb.layer[1].line[14].x1 += 122;
pcb.layer[1].line[14].y1 -= 33;
pcb.export_ps(excellent_design.ps);
one could implement search queries:
my_line = find_line(pcb.layer[1], x1 > 299 && width < 13);
in whatever language you'd use.
Would that be something ?
///
For scripting, why don't you try out Igor2's pcb-rnd, he has
implemented scripting. See
http://www.delorie.com/archives/browse.cgi?p=geda-user/2016/01/06/06:44:34
and report back goods and bads.
///
Or, you can help by looking through action scrips and see what can be
improved. I tried this little script
Select(All)
Mode(Move)
MovePointer(100, 100)
but I got ":unknown action `MovePointer'", so a lot could be improved
there.
///
Can a plugin solve your need, I don't know much about pcb's plugins.
> If we talk about SQL implementation,
> that would be fairly easy to implement with SQL queries inside the library.
Well, now you are talking about bypassing the lib :)
But given a parsetree, it wouldn't be hard to export it to some sql and
do queries there, somehow correlate what's in memory with the answer or
import from sql, do your stuff, and then save it.
Regards,
/Karl Hammar
-----------------------------------------------------------------------
Aspö Data
Lilla Aspö 148
S-742 94 Östhammar
Sweden
+46 173 140 57
- Raw text -