Mail Archives: geda-help/2021/03/02/09:56:55
On Tue, 2 Mar 2021, karl AT aspodata DOT se [via geda-help AT delorie DOT com] wrote:
> So, what would happen if we would like to replace a closed path of
> singly "line" (with a suitable cap style) with a "path" ending with a
> "z" to close it ?
"z" is "closepath", so unless I din't get something here, these are the
same.
> Why not go the postscript way, and introduce something like:
>
> # set default path style,
> # O for option, or D for default, or GS or S for graphics state
> O setlinecap round
> O setlinejoin round
> O setmiterlimit 4
> O setdash ....
> O setcolor ...
> O setlinewidth 5
> H ...
> ...
> z
> L ...
I'm not terribly opposed to this. So far, gEDA didn't even try to support
proper SVG paths; the current path syntax is a subset of SVG paths. That
said, I don't see enough benefits in it to justify the extra complexity.
> If geda and lepton likes this, the next step would be to remove the
> corresponding line noise from the L, H etc. directives.
These aren't redundant. Path objects allow for a lot of flexibility, but
in the vast majority of cases, you'll need just a line or a box. Imposing
path controls on the user for these cases would be overkill.
>> Lepton (ab-)uses the line cap field for that purpose, which mixes up
>> two distinct concepts and isn't an acceptable solution in my opinion.
>
> Then what would be an acceptable solution in your opinion ?
Adding a dedicated line join field to the file format.
>> Also, special-casing line width zero for filled objects kind of patches
>> the issue here but introduces yet more inconsistencies.
>
> No, it is the reverse, special-casing line width zero to be line width
> 5 is just wrong.
It is a kind of unfortunate choice, I agree with that. The rationale
behind it is that older versions of gEDA/gaf didn't support line width,
and you don't necessarily want to introduce that to your schematics:
conceptually speaking, a schematic contains a line, not a graphical object
with a certain width, and having a special setting "no particular width"
makes sense for some users.
The solution I favor would be to differentiate between "line width zero"
which, as you explained, means the thinnest line width supported by the
output device (or "no line" in the case of a filled closed path), and
"there's no line width set, use the default width".
Roland
- Raw text -