2020-06-07 12-56-54 PDT | Martin Owens <doctormo@geek-2.com> | I think |
2020-06-04 10-09-35 PDT | Martin Owens <doctormo@geek-2.com> | I mean share code as much as possible by importing from a central module if you must. But yes, split it out into 5 extensions. |
2020-01-17 19-57-06 PST | Martin Owens <doctormo@geek-2.com> | simplstyle doesn't exist any more, it's gone. |
2020-09-02 06-46-53 PDT | Martin Owens <doctormo@geek-2.com> | I see. It's not quite ready for testing with the creator. Can I get in touch with you next week? |
2020-06-03 16-58-22 PDT | Martin Owens <doctormo@geek-2.com> | Run python-black over the code, it'll auto-format it all in one go. |
2020-06-08 07-57-22 PDT | Martin Owens <doctormo@geek-2.com> | Can you point me at the code again and I will show you the fix. |
2020-06-07 14-07-17 PDT | Martin Owens <doctormo@geek-2.com> | In master you can just construct a list of items and get the bounding box. But here you'll have to do it manually. |
2020-06-04 02-56-33 PDT | Martin Owens <doctormo@geek-2.com> | Using python-gobject Gtk / glade. It's a whole process. |
2020-06-07 05-45-13 PDT | Martin Owens <doctormo@geek-2.com> | But there was a recent change because the bounding_box is not transformed. |
2020-06-07 14-06-33 PDT | Martin Owens <doctormo@geek-2.com> | You need the elem |
2020-06-07 12-57-06 PDT | Martin Owens <doctormo@geek-2.com> | The api in master has moved on a bit. |
2020-06-04 06-12-38 PDT | Martin Owens <doctormo@geek-2.com> | Yes split into 5, you will have much fewer headaches. |
2020-06-08 07-57-08 PDT | Martin Owens <doctormo@geek-2.com> | Yes, confirmed, this is the transformation on the parent group. |
2020-06-04 04-44-48 PDT | Martin Owens <doctormo@geek-2.com> | Especially if you split out the sections into their own extensions. So --panel_screw_stroke_width would just be "screw_stroke_width" in the panel extension. |
2020-06-07 05-45-36 PDT | Martin Owens <doctormo@geek-2.com> | (it is now) so for your code, you should make sure you get the transformed bounding box. |
2020-06-04 02-45-13 PDT | Martin Owens <doctormo@geek-2.com> | So where is says "vintage circle" this is really just a star right? |
2020-06-04 10-46-54 PDT | Martin Owens <doctormo@geek-2.com> | That's completely understandable. This is a separate extension so my review is only recommendation. |
2020-06-08 10-12-06 PDT | Martin Owens <doctormo@geek-2.com> | Oh right, yeah knob is now just an element, either take it as a list or take it as an element. Up to your workflow |
2020-06-03 17-01-14 PDT | Martin Owens <doctormo@geek-2.com> | I think it might be hard to split up your functions, all your code is in one method which will make it hard to maintain (or share duplicate code). |
2020-06-07 19-21-52 PDT | Martin Owens <doctormo@geek-2.com> | Sorry for the terse explainations. |
2020-06-04 02-42-37 PDT | Martin Owens <doctormo@geek-2.com> | Unless arg1 and arg2 are sodipodi attributes and I don't understand them. |
2020-06-04 02-44-26 PDT | Martin Owens <doctormo@geek-2.com> | Amplified? |
2020-06-03 17-10-58 PDT | Martin Owens <doctormo@geek-2.com> | I don't think sodipodi:arg1 and sodipodi:arg2 are real arc arguments are they? |
2020-06-08 07-55-13 PDT | Martin Owens <doctormo@geek-2.com> | ok |
2020-06-03 17-03-11 PDT | Martin Owens <doctormo@geek-2.com> | Is this five extensions rolled into one? i.e. could these be split into 5 python files each drawing a different **part**? |
2020-01-17 19-59-53 PST | Martin Owens <doctormo@geek-2.com> | Best to keep this in the extensions channel though so other people can jump in or learn from it |
2020-06-04 04-44-02 PDT | Martin Owens <doctormo@geek-2.com> | But of course reducing it's size is possible too. |
2020-06-07 19-22-49 PDT | Martin Owens <doctormo@geek-2.com> | Off the top of my head you may want this: `bbox = sum([elem.bounding_box() * elem.composed_transform() for elem in generator])` |
2020-06-08 07-15-22 PDT | Martin Owens <doctormo@geek-2.com> | I don't know why knob would be from selected, I presume this means you intend users to select knobs. |
2020-01-17 19-59-31 PST | Martin Owens <doctormo@geek-2.com> | Once you have svg in inkscape, use the xml editor to figure out what you have. Which elements have arrived and which ones haven't |
2020-06-03 17-22-08 PDT | Martin Owens <doctormo@geek-2.com> | Have a good night! |
2020-06-07 05-37-00 PDT | Martin Owens <doctormo@geek-2.com> | It sounds like you need to deal with the transformation. |
2020-06-04 10-17-19 PDT | Martin Owens <doctormo@geek-2.com> | https://gitlab.com/inkscape/extension-manager |
2020-06-03 17-06-38 PDT | Martin Owens <doctormo@geek-2.com> | This is the dictionary pattern, it can turn this:
```
if self.options.moog_panel_units == 1: #single
moog_units = 53.721
elif self.options.moog_panel_units == 2: #double
moog_units = 107.696
elif self.options.moog_panel_units == 4: #quad
moog_units = 215.646
elif self.options.moog_panel_units == 8: #octal
moog_units = 431.546
```
into this:
```moog_units = {1: 53.721, 2: 107.696, 4: 215.646, 8: 431.546}[self.options.moog_panel_units]```
|
2020-09-02 06-05-08 PDT | Martin Owens <doctormo@geek-2.com> | freesvg extension? |
2020-06-04 02-42-14 PDT | Martin Owens <doctormo@geek-2.com> | No, for the attributes which are sodipodi attributes, those are right (although you don't have to use them as you can just say PathElement.arc(...) as documented yesterday) |
2020-06-04 02-44-38 PDT | Martin Owens <doctormo@geek-2.com> | Yes |
2020-06-08 07-15-48 PDT | Martin Owens <doctormo@geek-2.com> | And if that's the case, yes, knob = self.svg.get_selected() is wrong, as it returns a LIST of items, not a single item. |
2020-09-02 06-08-16 PDT | Martin Owens <doctormo@geek-2.com> | If not, can you link me, I'm still confused |
2020-06-08 11-12-20 PDT | Martin Owens <doctormo@geek-2.com> | Just say `if isinstance(knob, inkex.Group): for child in knob.decendants(): if child.**is color object test**: knob = child` |
2020-06-03 16-56-05 PDT | Martin Owens <doctormo@geek-2.com> | etree isn't being used you can remove that import |
2020-06-04 04-43-27 PDT | Martin Owens <doctormo@geek-2.com> | Black is like any automatic tool, you have to make a decision on it's output. |
2020-06-08 07-14-58 PDT | Martin Owens <doctormo@geek-2.com> | You have to get a list of all the elements that make up the knob. If that's just one group, or if that's a set of items. |
2020-06-08 11-11-11 PDT | Martin Owens <doctormo@geek-2.com> | You could get around that. |
2020-06-07 05-47-07 PDT | Martin Owens <doctormo@geek-2.com> | I don't understand. |
2020-07-08 13-42-42 PDT | Martin Owens <doctormo@geek-2.com> | No, likely they are using the appimage or snap. There's reports of very odd python issues with those. |
2020-01-17 19-57-42 PST | Martin Owens <doctormo@geek-2.com> | draw_oval_hole is drawing a rectangle |
2020-06-04 10-47-13 PDT | Martin Owens <doctormo@geek-2.com> | It would only be a requirement if you wanted to get your extension into the core repository (i.e. shipped with Inkscape) |
2020-06-08 10-18-15 PDT | Martin Owens <doctormo@geek-2.com> | Just turn it into a list, knob = [knob] if that's the only issue. |
2020-06-03 16-57-47 PDT | Martin Owens <doctormo@geek-2.com> | You don't have to do the argparse stuff, it's done for you. |
2020-06-03 16-44-42 PDT | Martin Owens <doctormo@geek-2.com> | I think it's private, I get 404 |
2020-06-04 02-45-44 PDT | Martin Owens <doctormo@geek-2.com> | Then I understand, I was reading 'arc' by mistake. |
2020-06-08 09-44-08 PDT | Martin Owens <doctormo@geek-2.com> | Oh, `from inkex.elements import ShapeElement` |
2020-06-03 17-09-13 PDT | Martin Owens <doctormo@geek-2.com> | `draw_circle_mark` can use `PathElement.arc((cx, cy), r)` instead of manually making arcs |
2020-06-04 10-21-19 PDT | Martin Owens <doctormo@geek-2.com> | Yes, The gtk stuff is highly experimental. Others have used Tk |
2020-06-08 07-09-41 PDT | Martin Owens <doctormo@geek-2.com> | It's an xml element. |
2020-06-08 10-18-36 PDT | Martin Owens <doctormo@geek-2.com> | But decide now if users should be selecting multiple knobs or not. |
2020-06-07 01-37-16 PDT | Martin Owens <doctormo@geek-2.com> | Is it the above issue? |
2020-02-04 15-22-04 PST | Martin Owens <doctormo@geek-2.com> | I can't right now, I've got a backlog of things. But you should post it to the forums and see if you can get other people to test it, it seems like a really cool extension. |
2020-06-03 17-22-03 PDT | Martin Owens <doctormo@geek-2.com> | Ah I haven't got onto the ui yet, sorry. |
2020-06-08 08-13-32 PDT | Martin Owens <doctormo@geek-2.com> | This is untested: https://gitlab.com/Faselunare/synth-panels-designer/-/merge_requests/2 |
2020-09-02 06-08-05 PDT | Martin Owens <doctormo@geek-2.com> | Hang on, your extension is called freesvg? |
2020-06-04 04-43-51 PDT | Martin Owens <doctormo@geek-2.com> | It's fine as it is. |
2020-06-07 05-36-45 PDT | Martin Owens <doctormo@geek-2.com> | :thumbsup: |
2020-06-03 17-17-12 PDT | Martin Owens <doctormo@geek-2.com> | If you have your own data, you should use a different namespace. |
2020-06-03 16-49-17 PDT | Martin Owens <doctormo@geek-2.com> | No code. Am I a guest level? |
2020-06-07 05-44-45 PDT | Martin Owens <doctormo@geek-2.com> | Should be possible with bounding_Box().center |
2020-06-04 10-17-12 PDT | Martin Owens <doctormo@geek-2.com> | Yes, you can have a look at the extension manager: |
2020-06-08 07-09-45 PDT | Martin Owens <doctormo@geek-2.com> | From the svg file. |
2020-06-04 10-19-21 PDT | Martin Owens <doctormo@geek-2.com> | No, it's planned for 1.1 |
2020-06-03 16-58-08 PDT | Martin Owens <doctormo@geek-2.com> | No I think the python is actually quite good. |
2020-06-03 16-57-02 PDT | Martin Owens <doctormo@geek-2.com> | The code looks healthy. Although pylint gives a score of -1.64 out of 10. Most of that is just formatting issues. But makes it hard to see real problems (like not having underscore imported from inkex.localisation) |
2020-06-08 09-49-52 PDT | Martin Owens <doctormo@geek-2.com> | :thumbsup: |
2020-06-03 17-10-09 PDT | Martin Owens <doctormo@geek-2.com> | for `draw_knob_scale_arc_complex` do `PathElement.arc((cx, cy), r, start=start, end=end, open=True)` |
2020-06-03 17-18-25 PDT | Martin Owens <doctormo@geek-2.com> | For example you can do `synth:vintage_x` instead of `sodipodi:arg1` |
2020-06-03 16-47-30 PDT | Martin Owens <doctormo@geek-2.com> | doctormo < github |
2020-06-03 16-47-38 PDT | Martin Owens <doctormo@geek-2.com> | doctormo@gmail.com |
2020-09-02 06-04-44 PDT | Martin Owens <doctormo@geek-2.com> | Morning! |
2020-06-04 06-12-45 PDT | Martin Owens <doctormo@geek-2.com> | Tk is fine. |
2020-06-07 12-56-48 PDT | Martin Owens <doctormo@geek-2.com> | From an element, ask for elem.bounding_box(transform=True) |
2020-06-03 16-49-47 PDT | Martin Owens <doctormo@geek-2.com> | devel, I won't edit anything |
2020-07-08 13-42-49 PDT | Martin Owens <doctormo@geek-2.com> | Inkex is here to stay |
2020-06-10 13-19-48 PDT | Martin Owens <doctormo@geek-2.com> | Sounds good! |
2020-06-04 16-32-38 PDT | urbanspaceman <francesco.mulassano@gmail.com> | illustrator.png (https://chat.inkscape.org/file-upload/HRcpkcSWbiQLEDjyG/illustrator.png) |
2020-06-06 13-35-19 PDT | urbanspaceman <francesco.mulassano@gmail.com> | i need to create the scales around the selected knob (we had already talked about it)
it's just a limitation that could be mistaken for a bug and cause me a lot of headaches with users |
2020-06-04 16-26-18 PDT | urbanspaceman <francesco.mulassano@gmail.com> | spd_test2.dxf (https://chat.inkscape.org/file-upload/FE3rsqAPBNFpfpFqY/spd_test2.dxf) |
2020-06-08 09-49-16 PDT | urbanspaceman <francesco.mulassano@gmail.com> | ok, no error now but i have to change some logic i think
```To draw a scale, you must first select the corresponding knob.
Please select the knob's main color. ``` |
2020-06-08 01-45-55 PDT | urbanspaceman <francesco.mulassano@gmail.com> | Knob? |
2020-01-22 06-04-34 PST | urbanspaceman <francesco.mulassano@gmail.com> | old code (another old extension use this code
```
def draw_knob_arc(self, x, y, angle, offset):
start_point_angle = (angle - pi)/2.0
end_point_angle = pi - start_point_angle
style = { 'stroke' : '#000000',
'stroke-width' : str(self.options.linewidth),
'fill' : 'none' }
ell_attribs = {'style':simplestyle.formatStyle(style),
inkex.addNS('cx','sodipodi') :str(self.x_offset),
inkex.addNS('cy','sodipodi') :str(self.y_offset),
inkex.addNS('rx','sodipodi') :str(offset),
inkex.addNS('ry','sodipodi') :str(offset),
inkex.addNS('start','sodipodi') :str(end_point_angle),
inkex.addNS('end','sodipodi') :str(start_point_angle),
inkex.addNS('open','sodipodi') :'true', #all ellipse sectors we will draw are open
inkex.addNS('type','sodipodi') :'arc',
'transform' :transform
}
ell = inkex.etree.SubElement(parent, inkex.addNS('path','svg'), ell_attribs )
```
but i see in these days that there is less coe to write now |
2020-02-04 15-16-53 PST | urbanspaceman <francesco.mulassano@gmail.com> | hi @doctormo
do you want to test my extension? |
2020-06-04 10-11-02 PDT | urbanspaceman <francesco.mulassano@gmail.com> | :-O I should rethink everything ...
question: do you have an extension to recommend that is made with gtk?
I want to see the code |
2020-06-03 17-03-46 PDT | urbanspaceman <francesco.mulassano@gmail.com> | yes, is possible
panels, knobs, knob scales, sliders, slider scales |
2020-01-17 15-18-03 PST | urbanspaceman <francesco.mulassano@gmail.com> | hi!
on m linux computer it works
on mac doesn't works
i made some mode... and now i have only one things that works
- layer are created
- def draw_hole(self, w, h, x, y): works but hole are visible only if i'm in lasercut
- panel is not rendered at all
- oval hole not rendered
- hole center not rendered (i used line) |
2020-06-04 02-32-26 PDT | urbanspaceman <francesco.mulassano@gmail.com> | try this
``` def draw_vintage_circle(self, x, y, radius, radius2, sides):
circ = inkex.PathElement()
circ.set('spd:type', 'star')
circ.set('spd:cx', x)
circ.set('spd:cy', y)
circ.set('spd:arg1', 0.85)
circ.set('spd:arg2', 1.3)
circ.set('spd:rounded', 0.5)
circ.set('spd:sides', sides)
circ.set('spd:r1', radius)
circ.set('spd:r2', radius2)
return circ ```
but it doesn't works, i used spd instead of sodipodi |
2020-06-08 07-16-32 PDT | urbanspaceman <francesco.mulassano@gmail.com> | but i select only one element, the 'main color' that is a circle |
2020-06-08 09-55-05 PDT | urbanspaceman <francesco.mulassano@gmail.com> | ```
is_knob_selected = False
if bbox is not None:
for node in knob:
is_knob_selected = True
``` |
2020-06-04 16-32-44 PDT | urbanspaceman <francesco.mulassano@gmail.com> | inkscape.png (https://chat.inkscape.org/file-upload/wp324seaJ5ZmxfQW5/inkscape.png) |
2020-01-17 20-01-12 PST | urbanspaceman <francesco.mulassano@gmail.com> | ok, I've done it! Now I'm working on the layout of the panel, tomorrow I'll implement the functions
thanks a lot! |
2020-06-04 06-13-20 PDT | urbanspaceman <francesco.mulassano@gmail.com> | i always have one UI also with 5 separate py files? |
2020-06-07 14-08-12 PDT | urbanspaceman <francesco.mulassano@gmail.com> | what do you mean by master?
and how do I do it manually? |
2020-06-08 10-16-31 PDT | urbanspaceman <francesco.mulassano@gmail.com> | with your code I use it as an element
but I can't use it as a list
so I have to review everything ... or can I recover the existing code? |
2020-06-08 07-41-19 PDT | urbanspaceman <francesco.mulassano@gmail.com> | please look at the video |
2020-06-03 16-57-59 PDT | urbanspaceman <francesco.mulassano@gmail.com> | my python skills are not very good |
2020-06-08 07-17-18 PDT | urbanspaceman <francesco.mulassano@gmail.com> | yes the workflow is
1) create the knob (or many knobs)
2) select the desired knob and create the scale |
2020-06-07 05-18-49 PDT | urbanspaceman <francesco.mulassano@gmail.com> | If you move the knob and then generate the scales, the two are not aligned |
2020-05-16 13-23-05 PDT | urbanspaceman <francesco.mulassano@gmail.com> | hi!
maybe is little error in my code but i get strange behavior |
2020-06-04 10-25-39 PDT | urbanspaceman <francesco.mulassano@gmail.com> | I did a grep in the extensions repo but I didn't find Tk |
2020-06-04 02-43-11 PDT | urbanspaceman <francesco.mulassano@gmail.com> | ahhh ok |
2020-06-08 10-19-32 PDT | urbanspaceman <francesco.mulassano@gmail.com> | (a bit complicated for a normal user) |
2020-06-04 02-44-20 PDT | urbanspaceman <francesco.mulassano@gmail.com> | do you think this can be amplified? |
2020-06-08 08-04-14 PDT | urbanspaceman <francesco.mulassano@gmail.com> | the same 1220/1221 for the slider's scale |
2020-06-10 12-40-09 PDT | urbanspaceman <francesco.mulassano@gmail.com> | I have 3 beta tester now |
2020-06-08 09-55-02 PDT | urbanspaceman <francesco.mulassano@gmail.com> | this part |
2020-06-04 06-13-34 PDT | urbanspaceman <francesco.mulassano@gmail.com> | or you mean 5 separated UI |
2020-01-22 06-06-10 PST | urbanspaceman <francesco.mulassano@gmail.com> | ```
def draw_knob_arc(self, x, y, angle, offset):
``` |
2020-06-04 02-54-04 PDT | urbanspaceman <francesco.mulassano@gmail.com> | please remind me what is the other way of writing extensions for inkscape to get custom UI
I'd like to take a look at it as soon as I have time |
2020-06-04 04-45-46 PDT | urbanspaceman <francesco.mulassano@gmail.com> | you mean split the main file in 5 files? |
2020-06-04 10-25-00 PDT | urbanspaceman <francesco.mulassano@gmail.com> | maybe I should leave my extension as it is now, otherwise it will take me another 1000 years to get it out. When it becomes clearer how to develop in gtk I could do it again. |
2020-06-07 05-44-27 PDT | urbanspaceman <francesco.mulassano@gmail.com> | But if I select the knob (the main part) why I can't get is center? |
2020-06-03 17-15-11 PDT | urbanspaceman <francesco.mulassano@gmail.com> | Schermata 2020-06-04 alle 02.14.47.png (https://chat.inkscape.org/file-upload/9DwEc4iSCXKDJDLTT/Schermata%202020-06-04%20alle%2002.14.47.png) |
2020-07-08 14-36-20 PDT | urbanspaceman <francesco.mulassano@gmail.com> | i can ask |
2020-06-04 16-26-20 PDT | urbanspaceman <francesco.mulassano@gmail.com> | spd_test.svg (https://chat.inkscape.org/file-upload/obYh7uD2ddzTqxRLH/spd_test.svg) |
2020-06-08 01-45-46 PDT | urbanspaceman <francesco.mulassano@gmail.com> | But elem what is? |
2020-05-16 14-14-00 PDT | urbanspaceman <francesco.mulassano@gmail.com> | but written english is not a problem |
2020-06-04 05-44-28 PDT | urbanspaceman <francesco.mulassano@gmail.com> | tkinter is fine for the UI? |
2020-06-03 17-01-03 PDT | urbanspaceman <francesco.mulassano@gmail.com> | i have to install black... i think |
2020-06-04 10-19-08 PDT | urbanspaceman <francesco.mulassano@gmail.com> | this extension is already present in inkscape 1?
|
2020-06-03 17-21-13 PDT | urbanspaceman <francesco.mulassano@gmail.com> | many things to do (and I was unable to install black), I have to go to sleep ... it's very late.
tomorrow I will read everything you write to me and I will start fixing the code.
have you tried using the extension?
do you think there is a clearer way to manage the UI or is it ok? |
2020-06-04 02-45-42 PDT | urbanspaceman <francesco.mulassano@gmail.com> | is this
|
2020-06-03 16-54-26 PDT | urbanspaceman <francesco.mulassano@gmail.com> | ciao |
2020-06-03 16-49-27 PDT | urbanspaceman <francesco.mulassano@gmail.com> | yes |
2020-06-03 16-50-10 PDT | urbanspaceman <francesco.mulassano@gmail.com> | ok try |
2020-06-03 17-22-36 PDT | urbanspaceman <francesco.mulassano@gmail.com> | see you tomorrow :-)
ciao e grazie! |
2020-06-07 05-19-33 PDT | urbanspaceman <francesco.mulassano@gmail.com> | https://www.synthanatomy.com/2020/06/with-this-free-inkscape-extension-you-become-a-synth-panels-designer.html |
2020-06-03 17-18-43 PDT | urbanspaceman <francesco.mulassano@gmail.com> | i understand |
2020-06-04 02-45-28 PDT | urbanspaceman <francesco.mulassano@gmail.com> | vintage |
2020-06-08 10-19-20 PDT | urbanspaceman <francesco.mulassano@gmail.com> | no, user select only one knob at time
and (now) has to select exactly the 'main color' element |
2020-01-17 15-18-11 PST | urbanspaceman <francesco.mulassano@gmail.com> | https://pad.riseup.net/p/inkscape-extensions-keep |
2020-06-09 15-35-28 PDT | urbanspaceman <francesco.mulassano@gmail.com> | update
this bbox_panel = self.svg.get_page_bbox()
gives me exactly the center of the page (that is what i want)
but the knob is not at this coordinates but on top of the first knob
|
2020-06-07 14-09-02 PDT | urbanspaceman <francesco.mulassano@gmail.com> | I'm sorry to waste you time but I want to understand in order to finish the extension |
2020-02-04 15-24-46 PST | urbanspaceman <francesco.mulassano@gmail.com> | Schermata 2020-02-05 alle 00.23.51.png (https://chat.inkscape.org/file-upload/g2eAXWXvfkmbPnHdb/Schermata%202020-02-05%20alle%2000.23.51.png) |
2020-06-09 02-07-47 PDT | urbanspaceman <francesco.mulassano@gmail.com> | doc, it starts working,
now I have the problem that the first knob is draw in the center of the page (and it''s ok) while the second one is draw to the same coordinates as the first and not in the center of the page (i moved the first)
```
bbox_panel = self.svg.get_page_bbox()
if self.options.knob_main_style == 2:
vintage_knob = self.draw_vintage_circle(x=str(bbox_panel.center_x), y=str(bbox_panel.center_y), radius=str(self.options.knob_vintage_dimension / 2), radius2 = str(self.options.knob_vintage_dimension / 2 + 1 ), sides = 7)
mainknob = Circle(cx=str(bbox_panel.center_x), cy=str(bbox_panel.center_y), r=str(self.options.knob_main_dimension / 2))
``` |
2020-07-12 16-19-23 PDT | urbanspaceman <francesco.mulassano@gmail.com> | I understand that if the UI is not defined in the inx file, the default values are taken from the py file
I also figured out how to create a small interface with tkiner (2 sliders)
what I didn't understand though, is how to pass the values in realtime to the function it draws
```
import sys
import inkex
import argparse
import math
import os
from inkex.elements import ShapeElement
from lxml import etree
from inkex.elements import Circle, PathElement, Rectangle, load_svg, Group, TextElement
from math import *
from tkinter import *
master = Tk()
options = argparse.ArgumentParser(description='Panel parameters')
Orange = '#f6921e'
Blue = '#0000FF'
White = '#FFFFFF'
lasercut_width = '0.01mm'
class SynthPanelEffect(inkex.Effect):
w1 = Scale(master, from_=0, to=80)
w1.pack()
w2 = Scale(master, from_=0, to=200, orient=HORIZONTAL)
w2.pack()
hp = w2.get()
...
def effect(self):
#euro_hp = self.options.eurorack_panel_hp
euro_hp = self.hp <--- THIS ONE for example should change when i move the slider instead the value are applied when i close the tkinter ui
...
if __name__ == '__main__':
# Create effect instance and apply it.
mainloop()
SynthPanelEffect().run()
``` |
2020-06-07 13-53-39 PDT | urbanspaceman <francesco.mulassano@gmail.com> | so, ``` knob.bounding_box(transform=True) ? ````
|
2020-02-04 15-23-32 PST | urbanspaceman <francesco.mulassano@gmail.com> | thanks, i have a pair of beta friends (user, non dev)I try with them before to understand if the UX is optimal |
2020-06-03 17-13-16 PDT | urbanspaceman <francesco.mulassano@gmail.com> | ah ok, i use it to draw this |
2020-09-02 06-07-08 PDT | urbanspaceman <francesco.mulassano@gmail.com> | then I want to use freesvg as a reference to improve my extension |
2020-06-08 08-15-39 PDT | urbanspaceman <francesco.mulassano@gmail.com> | ok, in the evening I try and let you know if it works
thanks |
2020-06-08 07-15-44 PDT | urbanspaceman <francesco.mulassano@gmail.com> | i have a layer for each element and one main layer with all the element layers inside |
2020-07-08 12-51-21 PDT | urbanspaceman <francesco.mulassano@gmail.com> | doc, a user reported this error
```
Traceback (most recent call last):
File "SynthPanelsDesigner.py", line 21, in
import inkex
ModuleNotFoundError: No module named 'inkex'
Ubuntu 18.04 vers SPD 1.0.2 (ma lo fa anche con la v1.0)
Inkscape 1.1-dev (1:0.92.0+devel+202005110039+9ce7266)
```
is inkscape 1.1-dev the problem?
in the next release inkex disappear? |
2020-06-04 03-10-16 PDT | urbanspaceman <francesco.mulassano@gmail.com> | it's ok? |
2020-02-04 15-23-35 PST | urbanspaceman <francesco.mulassano@gmail.com> | :-) |
2020-06-04 03-08-40 PDT | urbanspaceman <francesco.mulassano@gmail.com> | wow with black now the code has doubled the lines |
2020-06-09 02-17-59 PDT | urbanspaceman <francesco.mulassano@gmail.com> | ok, this is strange
while the new knob is drawn at the same coordinates of the knob 1
a new slider is regularly drawn at the center of the page |
2020-09-02 06-05-20 PDT | urbanspaceman <francesco.mulassano@gmail.com> | no the extension manager |
2020-06-06 13-34-02 PDT | urbanspaceman <francesco.mulassano@gmail.com> | doc, i need a workaround for a non-bug on my extension |
2020-09-02 06-04-58 PDT | urbanspaceman <francesco.mulassano@gmail.com> | :-) morning! |
2020-06-04 16-26-01 PDT | urbanspaceman <francesco.mulassano@gmail.com> | i tred to export a simple design to dxf but is not properly rendered...
and if i open the svg with illustrator, some parts are missing |
2020-09-02 06-47-07 PDT | urbanspaceman <francesco.mulassano@gmail.com> | yes no problem |
2020-09-02 06-09-05 PDT | urbanspaceman <francesco.mulassano@gmail.com> | i want to test the extension manager and update my extension to add compatibility with extension manager
|
2020-01-22 06-06-02 PST | urbanspaceman <francesco.mulassano@gmail.com> | in my new function for wxample i pass
the x, y coordinates to center the circle
the offset parameter (the dimension of the circle is n+offset)
and the angle |
2020-06-03 17-08-48 PDT | urbanspaceman <francesco.mulassano@gmail.com> | ok |
2020-06-04 03-10-08 PDT | urbanspaceman <francesco.mulassano@gmail.com> | params now look like this
```
class SynthPanelEffect(inkex.Effect):
def add_arguments(self, pars):
# Parts
pars.add_argument(
"--part", type=int, default=1, help="Select which part you want to draw"
)
# Panel
pars.add_argument("--panel_type", default="e3u", help="Panel type")
pars.add_argument("--eurorack_panel_hp", type=int, default=1, help="Panel HP?")
pars.add_argument("--api_panel_units", type=int, default=1, help="API Units?")
pars.add_argument("--moog_panel_units", type=int, default=1, help="Moog Units?")
pars.add_argument(
"--panel_color", type=inkex.Color, default="#e6e6e6", help="Panel color"
)
pars.add_argument(
"--panel_custom_width",
type=float,
default="100",
help="Set the panel custom width",
)
pars.add_argument(
"--panel_custom_height",
type=float,
default="100",
help="Set the panel custom height",
)
pars.add_argument(
"--panel_holes",
type=inkex.Boolean,
default="False",
help="Want do drill the mounting holes?",
)
pars.add_argument(
"--panel_centers", type=inkex.Boolean, default="False", help="Mark centers?"
)
pars.add_argument(
"--panel_oval", type=inkex.Boolean, default="False", help="Oval holes?"
)
pars.add_argument(
"--panel_lasercut",
type=inkex.Boolean,
default="False",
help="Lasercut style?",
)
# Screws
pars.add_argument(
"--panel_screws", type=inkex.Boolean, default="False", help="Add screws"
)
pars.add_argument(
"--panel_screw_radius", type=float, default="100", help="Screw radius"
)
pars.add_argument("--panel_screw_type", type=int, default=1, help="Screw type")
pars.add_argument(
"--panel_screw_color",
type=inkex.Color,
default="#e6e6e6",
help="Screw color",
)
pars.add_argument(
"--panel_screw_stroke_color",
type=inkex.Color,
default="#e6e6e6",
help="Screw stroke color",
)
pars.add_argument(
"--panel_screw_stroke_width",
type=float,
default="100",
help="Screw stroke width",
)
pars.add_argument(
"--panel_screw_tick_color",
type=inkex.Color,
default="#e6e6e6",
help="Screw tick color",
)
pars.add_argument(
"--panel_screw_tick_width",
type=float,
default="100",
help="Screw tick width",
) ``` |
2020-06-03 16-29-32 PDT | urbanspaceman <francesco.mulassano@gmail.com> | doc, i've updated e repo
https://gitlab.com/Faselunare/synth-panels-designer |
2020-06-08 09-13-06 PDT | urbanspaceman <francesco.mulassano@gmail.com> | ```
Traceback (most recent call last):
File "SynthPanelsDesign.py", line 1626, in
SynthPanelEffect().run()
File "/Applications/Inkscape.app/Contents/Resources/share/inkscape/extensions/inkex/base.py", line 123, in run
self.save_raw(self.effect())
File "SynthPanelsDesign.py", line 875, in effect
bbox = knob.bounding_box(composed_transform(knob))
File "SynthPanelsDesign.py", line 1620, in composed_transform
if parent is not None and isinstance(parent, ShapeElement):
NameError: name 'ShapeElement' is not defined
``` |
2020-06-03 16-48-29 PDT | urbanspaceman <francesco.mulassano@gmail.com> | done!
|
2020-06-03 17-12-28 PDT | urbanspaceman <francesco.mulassano@gmail.com> | which line? |
2020-06-04 02-45-18 PDT | urbanspaceman <francesco.mulassano@gmail.com> | i have build this function reading value from the xml editor |
2020-06-03 16-54-19 PDT | urbanspaceman <francesco.mulassano@gmail.com> | I'm going to sleep, let me know what you think |
2020-06-08 07-41-11 PDT | urbanspaceman <francesco.mulassano@gmail.com> | https://streamable.com/q40maw |
2020-01-22 06-03-31 PST | urbanspaceman <francesco.mulassano@gmail.com> | @doctormo i need to draw an open circle
is arc the right function? |
2020-02-04 15-24-32 PST | urbanspaceman <francesco.mulassano@gmail.com> | in the end, this is the about page |
2020-01-17 20-02-55 PST | urbanspaceman <francesco.mulassano@gmail.com> | you know if is it possible to load remote file?
the idea is to ave a txt file on my server with the extension credits/sponsor and update without touching the extension |
2020-06-03 16-46-01 PDT | urbanspaceman <francesco.mulassano@gmail.com> | :-) |
2020-06-03 16-45-12 PDT | urbanspaceman <francesco.mulassano@gmail.com> | yes, do you know how do i give you access? |
2020-06-07 07-21-32 PDT | urbanspaceman <francesco.mulassano@gmail.com> | I'm not at home in front of my code now and I can't check if I already get the transformed bounding box |
2020-06-07 12-09-00 PDT | urbanspaceman <francesco.mulassano@gmail.com> | i use this
```
knob = self.svg.get_selected()
bbox = self.svg.get_selected_bbox()
```
how do i get the transformed bbox? |
2020-06-04 02-44-34 PDT | urbanspaceman <francesco.mulassano@gmail.com> | simpliified sorry |
2020-06-03 17-18-38 PDT | urbanspaceman <francesco.mulassano@gmail.com> | ah ok, |
2020-06-10 12-39-49 PDT | urbanspaceman <francesco.mulassano@gmail.com> | Git updated |
2020-06-08 07-13-18 PDT | urbanspaceman <francesco.mulassano@gmail.com> | ok, let's see if I can understand
- I have my knob
- the scale must be drawn around this knob (not other elements of the page)
- so I have to select this knob before drawing the scale
- you tell me that I have to use elem but elem is a generic name or instead of elem goes the name of my knob?
I just can't understand.
it's probably something that you can solve in 10 minutes by knowing well how inkscape is made
is this not valid?
```
knob = self.svg.get_selected()
``` ? |
2020-06-08 08-01-28 PDT | urbanspaceman <francesco.mulassano@gmail.com> | 873 |
2020-06-03 16-49-32 PDT | urbanspaceman <francesco.mulassano@gmail.com> | which level yoou need? |
2020-06-04 02-45-50 PDT | urbanspaceman <francesco.mulassano@gmail.com> | https://chat.inkscape.org/file-upload/9DwEc4iSCXKDJDLTT/Schermata%202020-06-04%20alle%2002.14.47.png |
2020-06-04 02-44-28 PDT | urbanspaceman <francesco.mulassano@gmail.com> | ``` def draw_vintage_circle(self, x, y, radius, radius2, sides):
circ = inkex.PathElement()
circ.set('sodipodi:type', 'star')
circ.set('sodipodi:cx', x)
circ.set('sodipodi:cy', y)
circ.set('sodipodi:arg1', 0.85)
circ.set('sodipodi:arg2', 1.3)
circ.set('inkscape:rounded', 0.5)
circ.set('sodipodi:sides', sides)
circ.set('sodipodi:r1', radius)
circ.set('sodipodi:r2', radius2)
return circ
``` |
2020-06-04 10-20-56 PDT | urbanspaceman <francesco.mulassano@gmail.com> | ok, require some work to be installed on macosx if i read well |
2020-06-09 15-47-44 PDT | urbanspaceman <francesco.mulassano@gmail.com> | now works and i don't know why (!!) |
2020-09-02 06-05-35 PDT | urbanspaceman <francesco.mulassano@gmail.com> | i have this version installed on linux 1.0 (4035a4fb49, 2020-05-01) |
2020-06-03 17-15-45 PDT | urbanspaceman <francesco.mulassano@gmail.com> | in the UI you have to select vintage on the first column of the knob |
2020-09-02 06-03-03 PDT | urbanspaceman <francesco.mulassano@gmail.com> | doc, i want to try the extension manager
in which version of inkscape is available?
in your freesvg extension i read
``` This Gtk3 extension is designed to be installed and run via the Inkscape Extension Manager. If you're not sure if you have the extension manager installed, you will need to check 'Extension Manager' in your extensions menu and install it first ifit's missing.``` |
2020-09-02 06-08-39 PDT | urbanspaceman <francesco.mulassano@gmail.com> | no no
my extension is synthpanels designer (www.synthpanels.design)
|
2020-06-04 02-57-52 PDT | urbanspaceman <francesco.mulassano@gmail.com> | are there any real benefits or does it make sense to invest time? |
2020-06-07 05-46-52 PDT | urbanspaceman <francesco.mulassano@gmail.com> | I don't have the code now, is not already made I this way? |
2020-06-03 17-17-56 PDT | urbanspaceman <francesco.mulassano@gmail.com> | ? |
2020-06-03 16-45-39 PDT | urbanspaceman <francesco.mulassano@gmail.com> | before making it public I would like to be sure I hasn't done stupid things |
2020-06-09 02-08-03 PDT | urbanspaceman <francesco.mulassano@gmail.com> | git is not updated |
2020-06-03 16-47-20 PDT | urbanspaceman <francesco.mulassano@gmail.com> | found it!
give me your email please |
2020-06-08 09-55-19 PDT | urbanspaceman <francesco.mulassano@gmail.com> | line 904 |
2020-06-07 05-19-30 PDT | urbanspaceman <francesco.mulassano@gmail.com> | The extension si not public available but I've start promoting it on Facebook, people get crazy |
2020-06-08 08-01-23 PDT | urbanspaceman <francesco.mulassano@gmail.com> | line 872 |
2020-06-04 02-45-22 PDT | urbanspaceman <francesco.mulassano@gmail.com> | sorry sorry |
2020-06-07 13-57-07 PDT | urbanspaceman <francesco.mulassano@gmail.com> | AttributeError: 'generator' object has no attribute 'bounding_box'
Inkscape version
1.0 (4035a4f, 2020-05-01) |
2020-06-04 16-26-21 PDT | urbanspaceman <francesco.mulassano@gmail.com> | spd_test.dxf (https://chat.inkscape.org/file-upload/WkoEm8oyH93WMLSEN/spd_test.dxf) |