Inkscape extension to create guilloche patterns.
Usage
You just need to draw a base path, e.g. straight line or ellipse, and use a guilloche_contour extension (it's inside an archive) to create borders based on it.
After that you need to select 2 of desired borders and apply guilloche_pattern extension.
P.S. This Extension was made on Windows. Not sure how it will work on Linux or OS.
Good morning, i am a new member, but old man. I found this extnsion very interesting. Is it possible to have some parameters to have e niche guilloche? Thanks in advance.You done a very good job.
This extension does nothing. Only shows control panels of both functions but don't draw.
I have installed Inkscape on Windows 10 Pro 64-bit, v.1903.
What's wrong?
Very good work. I have been looking for a tool like this for ages :)
Yes it does work, just takes a little experimenting and a basic understanding of the concepts of Guilloche
I have finally got the Guilloche extension working (it takes somme practice/trial and error) but I cannot find what some of the settings actually mean. e.g. What are Env1 to Env 12? Preset functions? What are
Phase coverage and Series? Seems to work well when two simple parallel paths are selected or created using the Guilloche Contour option then Guilloche Pattern under the Extensions/Examples menu. Should be called Guilloche menu, nor Examples!
How to install the extension? I have put it under the directory listed at Edit > Preferences > System: User extensions and restarted Inkscape, but I can not find it under the Extensions menu.
How do you download the file? There is no link.
migration for InkScape 1.0 is hard :-( anyone who fixed it already? my port failed at some functions
Thanks, Mario, for trying. I love this very useful extension and desperately wish that it would be updated for 1.0. Right now I'm having to maintain a .92 version of Inkscape on an old computer just for this and a couple of other extensions.
I have gotten a version of the Guilloche Contour extension working under 1.1 to the point that it reproduces the behavior of the old 0.9x version in most respects. I'm testing it now with the help of hildybingen. One issue that I have no idea how to tackle is that the extension-dialog window disappears whenever one clicks on any of the toolbar buttons. When performing a cycle of Apply, not happy, Undo, Apply, ..., this can be very irritating. Can anyone shed light on how I can get the 0.9x behavior for the extension window?
BTW, you can run both new and old versions on the same computer by:
1) Install the new inkscape 1.1 following the default options.
2) Install the 0.9x version, but specify a different folder for the installation.
3) Use the Windows-L key combination to switch to a different user and use the 0.92 version as that user.
By running the two different versions as different users, you will avoid any confusion over the users\xxx\Appdata\Roaming\inkscape\... files.
I have converted the extension "Guilloche Contour" to run under v1.1. If the selected skeleton for the contour is a Path, it works correctly. However, sometimes an Object such as a Rectangle does not work unless it is first converted to a Path.
Example rectangle; excerpt from input svg file:
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="fill:none;stroke:#000000;stroke-width:0.750001;stroke-dashoffset:0.188976"
id="rect14716"
width="110.19597"
height="34.633018"
x="22.301565"
y="17.054138" />
</g>
You see that it is a rectangle that is 110 x 34.
However when the rectangle is passed to Guilloche Contour, it is offset and magnified as:
d = M 84.2894 64.4566 h 416.489 v 130.896 h -416.489 z
Here is the beginning of the extension code, ending with the printout of 'd' shown above.
----------------------------------------------------------------------------------------------
def effect(self):
if len(self.options.ids) < 1:
inkex.errormsg(_("This extension requires one selected path."))
return
self.prepareSelectionList()
for skeleton in self.skeletons.__iter__():
resPath = []
pattern = etree.Element(inkex.addNS('path','svg'))
if DBG:
inkex.errormsg("pattern created, pattern = " + str(pattern))
inkex.errormsg(etree.tostring(pattern, pretty_print=True))
self.options.strokeHexColor, self.strokeOpacity = getColorAndOpacity(self.options.strokeColor)
# Copy style of skeleton with setting color and opacity
s = skeleton.get('style')
# Get any path transform for the contour output
xfm = skeleton.get('transform')
firstSkel = skeleton.get('d')
if DBG:
inkex.errormsg("s = " + str(s))
inkex.errormsg(str(self.options.strokeHexColor))
inkex.errormsg(str(self.strokeOpacity))
inkex.errormsg("xfm = " + str(xfm))
inkex.errormsg("d = " + str(firstSkel))
-----------------------------------------------------------------------------------
I can't see any manipulation of the path here, so it seems that the inkscape appl. code is handing the extension a magnified version. Any ideas??
I eventually figured this out. Nothing more than unfamiliarity with inkscape. Don't waste any time trying to understand it.
I have posted guilloche_contour and guilloche_pattern extensions for inkscape v1.x on my inkscape user page: https://inkscape.org/~DrWiggly/
Installation of these extensions with inkscape v1.x is the same as installing the old extensions on v0.9x.
Included with the extension files are a few test datasets and expected results.
I have updated the extensions to run under inkscape1.1 and made a few improvements to the algorithms, but if some task failed to work under 0.9x, it may also fail the same way in this version. Give it a try.
You can report bugs to me. Reports of happy users would also be welcome;-)
Hmm. Having a similar issue that I cannot get around.
====================================
SETUP INFORMATION
-Windows 11 Home
-Inkscape v 1.0.2-2 (e86c870879, 2021-01-15)
-Guilloche Extension version: Created 2019-02-01 (Version as referenced in 2021 posting here)
-Installing Files: Unzipped and copied both contour and pattern.inx and .py files to /Programs Files/Inkscape/share/inkscape/extensions
-Inkscape restarted -"Examples" extensions appear in the Extensions menu
=====================================
Example:
- two straight Bezier lines selected
- Start the extensions:
Open Extensions/Examples/Pattern Guilloche...
- Get the following ERROR when trying to check "Live Preview"...
-------------------------
Traceback (most recent call last):
File "guilloche_pattern.py", line 975, in <module>
GuillochePattern().run()
File "C:\Program Files\Inkscape\share\inkscape\extensions\inkex\base.py", line 140, in run
self.save_raw(self.effect())
File "guilloche_pattern.py", line 849, in effect
fstEnvComps, fstEnvLengths, sndEnvComps, sndEnvLengths, fstEnvBbox, sndEnvBbox, isCorrect = linearizeEnvelopes(envs)
File "guilloche_pattern.py", line 130, in linearizeEnvelopes
comps1, lengths1 = linearize(modifySkeletonPath(env0CubicPath))
File "guilloche_pattern.py", line 60, in linearize
box = inkex.bezier.pointdistance(p[i][1], p[i][2])
AttributeError: module 'inkex' has no attribute 'bezier'
------------------------- =====================================
I've tried many variations of drawing then "Object to Path" or not and setting "Grouped" or not.... same results What am I doing wrong?
Additional note: Get same results if I just use APPLY.