Create Bevel through node, not offset

Asked by Jon Ellis

I'm using Inkscape 0.48 in Windows XP. I'm trying to make line drawings. When I have two lines joined, I can choose to have a miter, rounded or bevel joint.

In some cases, I want a bevel joint. However, the bevel stops at the edge of the lines and does not "cut" through the node point. How can I change it to do so? I've tried to set the miter limit to a negative number, but this does not work.

Basically, I have two lines joined at 90 degrees and I draw a third line through the joining node at 45 degrees. Think like a capital " K " where the third line is the vertical line in the K. When i do this and select bevel for the 90 degree lines, I have a part sticking over the other side because the linewidths are different. Is it possible to make the bevel flush to the node so I don't have part of the line stick over the other side?

Question information

Language:
English Edit question
Status:
Solved
For:
Inkscape Edit question
Assignee:
No assignee Edit question
Solved by:
su_v
Solved:
Last query:
Last reply:
Revision history for this message
su_v (suv-lp) said :
#1

> Is it possible to make the bevel flush to the node so
> I don't have part of the line stick over the other side?

AFAIU the rendering of a bevel join is defined in the SVG 1.1 specification which Inkscape strives to adhere to.
<http://www.w3.org/TR/SVG11/painting.html#StrokeLinejoinProperty>
<http://www.w3.org/TR/SVG11/images/painting/linejoin.svg>

I didn't find a more detailed explanation of the bevel join nor its underlying math, but all SVG renderers I tested seem to use the same method to determine the geometry of the bevel: <http://imgh.us/bevel-join-1.svg> renders the same in Inkscape, its reference SVG implementation Batik (Squiggle), in web browsers like Firefox 3.6, Safari 5.0, Opera 11, Chromium 12.0, and in SVG viewers based on librsvg (rsvg-view, ImageMagick, GIMP, etc.)).

Revision history for this message
Jon Ellis (ellis-jon) said :
#2

While I completely understand they are doing and that they have some standard, it is still no use to me. Their standard doesn't cover what I expect a bevel joint to look like.

Based on the figure shown here (http://imgh.us/bevel-join-1.svg), the bevel connects the two furthest pieces. But I want it to go through the overlapping point where they meet (http://yfrog.com/h3dnrqj). I don't really care what the "standard" is. It should include the option to go negative past the point where Inkscape thinks it should go. Otherwise, I have to draw a triangle at each instance where I have a bevel and that can be 50+ per figure for me.

Remember, the end users of the program may have a different intention than what the designers have in mind.

Revision history for this message
Best su_v (suv-lp) said :
#3

> While I completely understand they are doing and that they have
> some standard, it is still no use to me. Their standard doesn't
> cover what I expect a bevel joint to look like.

While I do understand your POV, please remember that it's not 'their' obscure standard or specification - Inkscape's native file format is SVG (the format as defined in the open standard, which has been under development by the World Wide Web Consortium (W3C) since 1999), and Inkscape's main goal on the roadmap to version 1.0 is still to support the SVG specification by 100% (which - by the way - was one of the reasons Inkscape forked from its predecessor application SodiPodi).

«An Open Source vector graphics editor, with capabilities similar to Illustrator, CorelDraw, or Xara X, using the W3C standard Scalable Vector Graphics (SVG) file format. »
<http://inkscape.org/>

Note that the Inkscape project does play a role in shaping future versions of the SVG specification:
<http://wiki.inkscape.org/wiki/index.php/SVG_WorkingGroup>

> Remember, the end users of the program may have a
> different intention than what the designers have in mind.

Inkscape's features to support technical drawings and diagrams have improved with each of the past releases and will continue to do so. But Inkscape is not a CAD application nor aims to be one exclusively. I'm not sure at this point if e.g. different join modes could be implemented in Inkscape without unreasonable efforts to avoid risking to break compatibility of Inkscape files with vector applications and SVG renderers (which - while maybe not for you - does matter for many other users).

Possibly - if a feature like optionally aligning the stroke outside|center|inside of the geometric centerline of a path gets implemented in a future version of the SVG specification - additional end and join types might be available:
Bug #170898 in Inkscape: “Facilitate outset/inset by half stroke width”
<https://bugs.launchpad.net/inkscape/+bug/170898>

Or one could imagine that a future fillet/chamfer tool or path effect (LPE) in Inkscape would have a 'bevel' mode as well:
Bug #170149 in Inkscape: “Node fillet / chamfer tools”
<https://bugs.launchpad.net/inkscape/+bug/170149>

Revision history for this message
Jon Ellis (ellis-jon) said :
#4

it's a bit frustrating that the "standard" excludes and prohibits these types of uses. Now I have to add a bunch of stupid triangles to EVERY BEVEL JOINT!

this didn't solve my problem and I still think it's a dumb standard but I accept that inkscape isn't going to change it.