Loading connectivity objects from a library

From @ouabache on Tue Jun 19 2018 17:03:09 GMT+0000 (UTC)

One thing that gEDA’s gschem does that we should copy is the ability to define bus rippers in a symbol file and load them into a schematic from a library. The alternative is to synthesize the graphic in the program but that is undesirable because you are hard coding that into your code. This makes it difficult to change without recompiling the code.

This should be done for all connectivity objects: Bus rippers,symbol pins,io_ports,junctions etc. This would give the user more control over the look of their schematics and would simplify the tools.

John Eaton

Copied from original issue: https://github.com/LibrePCB/librepcb-rfcs/issues/19

From @ubruhin on Wed Jun 20 2018 18:14:48 GMT+0000 (UTC)

Sorry, I really don’t understand what you mean :wink: Could you give a concrete example, maybe with screenshots?

From @ouabache on Thu Jun 21 2018 00:42:17 GMT+0000 (UTC)

gschem has a section in its system-gschemrc file where you can select the busripper from a choice of
busripper-1.sym or busripper-2.sym that are simply two symbol files. This makes it easy for the user
to create and add their own busrippers if they do not like the default ones.

This could be extended to also include symbol pins, io_ports, power and ground connectors,junctions etc. I think it would give the users the ability to control the look of their drawings without requiring a lot of support.

John Eaton

system-gschemrc

; Bus ripper controls
; The following keywords control the auto bus ripper addition code
;
; bus-ripper-size : Sets the size of the auto bus rippers.
; bus-ripper-type : Sets the bus ripper type either a “component” or
; plain “net”
; bus-ripper-syname : If above is set to component, specify the symbol name.
; The symbol must exist in a component library
; bus-ripper-rotation : Either “symmetric” or “non-symmetric”. This deals
; with how the bus ripper symbol is rotated when it
; is auto added to a schematic.
;

; The default bus ripper
(bus-ripper-size 200)
(bus-ripper-type “component”)
(bus-ripper-symname “busripper-1.sym”)
(bus-ripper-rotation “non-symmetric”)

; A symmetric alternative
;(bus-ripper-size 200)
;(bus-ripper-type “component”)
;(bus-ripper-symname “busripper-2.sym”)
;(bus-ripper-rotation “symmetric”)

; A simple net
;(bus-ripper-size 200)
;(bus-ripper-type “net”)