Code Monkey home page Code Monkey logo

quickjoint's People

Contributors

jarrettr avatar vmario89 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

quickjoint's Issues

Struggling to generate joints for rectangle shapes

Hello,
First off thanks a lot @JarrettR for developing this super extension !!

I failed to generate joints on regular rectangle shapes ( the QuickJoint utility simply doesn't change the rectangle)
All I can do as an alternative is draw a 'rectangle' with the pencil tool but then the enclosed shape doesn't have 90° angles.

Please see the gifs to better understand (attached below)(imgur post) : https://imgur.com/a/tbbiXNY

Is there anything that I am doing wrong ?

Thank you

EDIT : I just forgot to convert the shapes to path ;))

Does not work in InkScape 0.92.4

Hi, this extensions looks interesting but it simply does no output in InkScape 0.92.4 on Windows. I dont see anything strange in .py file and i dont get any error.

Option for adding dogbones

Better for CNCs with tool radii trying to get into corners, and avoiding stress fractures in acrylics

get_line does not apply correctly for all path segments

Hi, since latest pull request, some issues appear if a path has non-linear segments

Traceback (most recent call last):
  File "/home/himbeere/.config/inkscape/extensions//quick_joint/quick_joint.py", line 279, in <module>
    QuickJoint().run()
  File "/usr/share/inkscape/extensions/inkex/base.py", line 231, in run
    self.save_raw(self.effect())
  File "/home/himbeere/.config/inkscape/extensions//quick_joint/quick_joint.py", line 263, in effect
    newPath = self.draw_tabs(p, lineNum)
  File "/home/himbeere/.config/inkscape/extensions//quick_joint/quick_joint.py", line 144, in draw_tabs
    cursor, segCount, segment, closePath = self.get_segments(path, line, self.numtabs)
  File "/home/himbeere/.config/inkscape/extensions//quick_joint/quick_joint.py", line 200, in get_segments
    start, end, closePath = QuickJointPath(path).get_line(line)
  File "/home/himbeere/.config/inkscape/extensions/quick_joint/quick_joint.py", line 65, in get_line
    start = complex(self[n].x, self[n].y)
AttributeError: 'Curve' object has no attribute 'x'. Did you mean: 'x2'?

grafik

we need some routine to ignore that segment or to convert to regular stupid line

fix kerf management

Thank you very much for your work on Quickjoint inkscape extension!
I was really pleased to find it.

There is one thing that could be improved to make it practical though: kerf management. I am looking into your code right now to see what I can do, but since I don't know Python (yet) I thought I'd post this issue first...

Here is the issue:

  • As one comment from 2021 on inkscape.org points out, the slots should decrease in size with kerf, not increase. That is, of course, in order to cancel the play.
  • Also, the fingers should increase in size with kerf. Alternatively, each slot should decrease in width by twice the kerf.
  • Eventually, some "ears" should be added on both fingers and slots to avoid round concave edges for a perfect fit. (see https://www.festi.info/boxes.py/ for example)

This is the first time I file an issue on github so I hope I am doing it right. Please let me know if you need more help or information from my side.

Kerf management, as you know, is key for a proper fit.

Thank you in advance for your good reception of this issue.

Compatibility with inkscape 1.0 and python 3

Hi,
Thanks for your extensions !
I started porting this extension for the upcoming version 1.0 of inkscape, it's working great when using 'tabs' creation but not yet with the slots creation.
You can see the WIP here : https://github.com/aaujon/QuickJoint, I will make a RP when it will be ready.
About the 'slots', I'm not really sure about how it should be working, for what I understand it's only working when using a simple segment, I can't easily use the feature to connect 2 rectangles for example. Don't you think that we could re-use the code that create 'tabs' to also create 'slots' by just changing a few signs ?

Interface is crummy

The interface looks kinda bad, and this may hurt usability.

Wouldn't mind mockups showing how it could be!

image

Not working

I installed in the extensions folder and it shows up in Inkscape drop down but does not put the tabs or the slots on the drawing. Using version 1.0

Option to define slot/tab widths

Hi,
i wonder why there is no option to define the width of the tabs and slots. Its calculated by regular pattern but it could be useful to define it extra, like the material thickness parameter. especially when trying to implement things like t-slot connections (#5).

Smart detection of rectangles or groups

Hello,

Please see the attached video. I'm using v1.0 of Inkscape and the latest build from the site here.
I made a simple rectangle, pulled up the extension and changed the settings with no effect or errors in either "Live Preview" or when applying.

2020-08-02-10-55-26

RE: QuickJoint and InkScape 0.92

Hello,

I tried to use this repo for promoting edges w/ tabs in InkScape 0.92. I put the .inx file and .py file in the extensions folder in the inkscape folder.

...

I also tried to put the extension in %appdata%\inkscape but I have been unsuccessful thus far. Have you updated your repo in a while or do things need to happen to set up things again?

Seth

P.S. If you are busy, I understand. If you are working on this project still and do not want people bothering you about it, that is cool too. Please reply if/and/or/but. Either way, I will wait to hear from you.

Errors:

I tried to use this and just got these errors:

Inkscape 1.0
Tried on box, path.

"quickjoint.py:65: DeprecationWarning: Effect.OptionParser or optparse has been deprecated and replaced with argparser.You must change self.OptionParser.add_option to self.arg_parser.add_argument; the arguments are similar.
self.OptionParser.add_option("-s", "--side",
quickjoint.py:69: DeprecationWarning: Effect.OptionParser or optparse has been deprecated and replaced with argparser.You must change self.OptionParser.add_option to self.arg_parser.add_argument; the arguments are similar.
self.OptionParser.add_option("-n", "--numtabs",
quickjoint.py:73: DeprecationWarning: Effect.OptionParser or optparse has been deprecated and replaced with argparser.You must change self.OptionParser.add_option to self.arg_parser.add_argument; the arguments are similar.
self.OptionParser.add_option("-l", "--numslots",
quickjoint.py:77: DeprecationWarning: Effect.OptionParser or optparse has been deprecated and replaced with argparser.You must change self.OptionParser.add_option to self.arg_parser.add_argument; the arguments are similar.
self.OptionParser.add_option("-t", "--thickness",
quickjoint.py:81: DeprecationWarning: Effect.OptionParser or optparse has been deprecated and replaced with argparser.You must change self.OptionParser.add_option to self.arg_parser.add_argument; the arguments are similar.
self.OptionParser.add_option("-k", "--kerf",
quickjoint.py:85: DeprecationWarning: Effect.OptionParser or optparse has been deprecated and replaced with argparser.You must change self.OptionParser.add_option to self.arg_parser.add_argument; the arguments are similar.
self.OptionParser.add_option("-u", "--units",
quickjoint.py:89: DeprecationWarning: Effect.OptionParser or optparse has been deprecated and replaced with argparser.You must change self.OptionParser.add_option to self.arg_parser.add_argument; the arguments are similar.
self.OptionParser.add_option("-e", "--edgefeatures",
quickjoint.py:93: DeprecationWarning: Effect.OptionParser or optparse has been deprecated and replaced with argparser.You must change self.OptionParser.add_option to self.arg_parser.add_argument; the arguments are similar.
self.OptionParser.add_option("-f", "--flipside",
quickjoint.py:97: DeprecationWarning: Effect.OptionParser or optparse has been deprecated and replaced with argparser.You must change self.OptionParser.add_option to self.arg_parser.add_argument; the arguments are similar.
self.OptionParser.add_option("-a", "--activetab",
quickjoint.py:340: DeprecationWarning: Effect.affect is now Effect.run(). The output argument has changed.
e.affect()
quickjoint.py:302: DeprecationWarning: Effect.unittouu is now a method in the svg document. Use self.svg.unittouu(str) instead.
self.thickness = self.unittouu(str(self.options.thickness) + self.options.units)
quickjoint.py:303: DeprecationWarning: Effect.unittouu is now a method in the svg document. Use self.svg.unittouu(str) instead.
self.kerf = self.unittouu(str(self.options.kerf) + self.options.units)
quickjoint.py:309: DeprecationWarning: Effect.selected is now a dict in the svg. Use self.svg.selected.
for id, node in self.selected.iteritems():
Traceback (most recent call last):
File "quickjoint.py", line 340, in
e.affect()
File "C:\Program Files\Inkscape\share\inkscape\extensions\inkex\deprecated.py", line 180, in affect
return self.run(args=args)
File "C:\Program Files\Inkscape\share\inkscape\extensions\inkex\base.py", line 123, in run
self.save_raw(self.effect())
File "quickjoint.py", line 309, in effect
for id, node in self.selected.iteritems():
AttributeError: 'collections.OrderedDict' object has no attribute 'iteritems'"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.