SolveSpace Logo SOLVESPACE -- parametric 2d/3d CAD
Examples
Tutorials
Features
Download
Reference
Technology
Library
Forum
Contact
USER FORUM

(you are viewing a thread; or go back to list of threads)

Command Line Interface (by Gr�goire P)
I've started to read and understand the code for a week or two. And I think it would be interesting to add a Command Line Interface. What do you think to be the easyiest way? Do you know tools to do that?

By the way, with a friend we start to make translations of Solvespace (at the moment, french, portuguese, german, spanish and italian) that we will commit as soon as possible.

We've got a bunch of short and long term ideas but is there a roadmap or sort of that we can follow?
For example, things we want to bring:
- .jt import/export
- meshing tool facilities (with tetgen or gmsh)
- drawing enhancements
- a git menu (with libgit2) to handle better file management and multi-user works

For me, the CLI is the most critical part at the moment because it can ease the process of prototyping new design functions (involute gears, ...) before they are hardcoded.
Fri Sep 26 2014, 04:52:03
(no subject) (by Jonathan Westhues)
I have no set roadmap. Early in my development of the program, I'd intended to provide a command line interface; that was the original intended purpose of what became the browser window.

I still like the concept, but it would be (a) a lot of work to implement, and (b) unfamiliar to most younger mechanical designers. Also note that adding support for some arbitrary curve (like that involute) isn't just a matter of entering the equation; you'd also need to represent it in a way that srf/... handles, for example by approximating it as a cubic spline.

In any case, let me know what you end up with, and I'd be interested to review; or let me know if you have any questions.
Sun Sep 28 2014, 15:03:56
(no subject) (by Gr�goire P)
Thanks for your answer!

I've got a question about the best way to implement the gear tools.
Is it better to create a new group or a new entity?
By creating a new group, we can change parameters like number of teeth, module and angle in the text window.
But I don't know if it would be best or more clean to make a new entity... I think it will be harder to code too, no?

About approximating gear profile as cubic spline, I will use the method describe here: http://www.arc.id.au/GearDrawing.html
The error they obtain is quite inconsiderable, in my opinion.

In a second time, it will be fun to be able to create helical gears. We need to extrude in a "non perpendicular way". Do you have clues to make extrusion along an arbritary curve and not just along the norm of the active workplane?
Like if nothing is selected, we use the norm of the sketch and if a curve is selected when we extrude, we use it as the extrusion path.
It could be useful to make an chamfer tool with that enhancement too!
Fri Oct 3 2014, 15:56:22
(no subject) (by Jonathan Westhues)
It's probably easiest to create the involute as a new entity, that generates either just one tooth (that you can step and repeat to make the outline of the gear) or the complete outline of the gear. That outline can then be extruded or otherwise manipulated as usual. The manner in which the involute is approximated at that link seems reasonable.

Have you worked with non-trivial NURBS surface operations before? Swept surfaces are a difficult problem in general, with some useful results in the academic literature but mostly just a lot of messy approximation. The Booleans would also need to be enhanced to work usefully on those surfaces.
Sun Oct 5 2014, 03:54:01
(no subject) (by app4soft)
> “It's probably easiest to create the involute as a new entity that generates either just one tooth (that you can step and repeat to make the outline of the gear) or the complete outline of the gear.”

It would be great to has such feature in SolveSpace.

Meanwhile, here is POC of sketching approximated Involute curve using two 2-point tangent connected cubic Bézier segments (3 points, 4 control handles):

- https://www.reddit.com/r/Solve...ated_involute_curve_using_two/
Sun Feb 12 2023, 10:33:01
(no subject) (by Paul)
>> I think it would be interesting to add a Command Line Interface.

There is solvespace-cli which is build with the GUi on Linux. I've suggested merging that into the same executable but some think it should remain headless. If you mean adding a REPL to solvespace, that's something entirely different and probably a huge amount of work, but not a bad thing.

>> By the way, with a friend we start to make translations of Solvespace (at the moment, french, portuguese, german, spanish and italian) that we will commit as soon as possible.

I assume you're just going to update the German and Spanish translations? I can't tell from the comment if you're aware what is already there ;-)

>> In a second time, it will be fun to be able to create helical gears. We need to extrude in a "non perpendicular way". Do you have clues to make extrusion along an arbritary curve and not just along the norm of the active workplane?

You can make helical gears now, unless you mean (helical) bevel gears, which require a sort of twisted frustum extrusion. That ability is on my personal to-do list along with a sort of path extrusion, but feel free to give it a try.

>> We've got a bunch of short and long term ideas but is there a roadmap or sort of that we can follow?

I keep a list of such things in the github milestones:
https://github.com/solvespace/solvespace/milestones

The most complex is the old request for hierarchical sketches, which is probably a prerequisite for anything like .jt import or export. I try to work on things that don't require breaking compatibility first. I think we can add a lot of nice things without big internal changes. Then there are things that will probably require more serious restructuring.

Internally we could use a better b-rep structure which could make exporting better .step files easier to implement (on the list). Nor does the existing structure carry enough information to allow selection of individual edges of the solid model (for a generalized fillet/chamfer tool for example).
https://github.com/solvespace/solvespace/issues/1236
Sun Feb 12 2023, 13:15:49
Post a reply to this comment:
Your Name:
Your Email:
Subject:
(no HTML tags; use plain text, and hit Enter for a line break)
Attached file (if you want, 5 MB max):
© 2008-2022 SolveSpace contributors. Most recent update June 2 2022.