How to use sketcher B-spline tool

Post here for help on using FreeCAD's graphical user interface (GUI).
Forum rules
and Helpful information
IMPORTANT: Please click here and read this first, before asking for help

Also, be nice to others! Read the FreeCAD code of conduct!
chrisb
Veteran
Posts: 54207
Joined: Tue Mar 17, 2015 9:14 am

Re: How to use sketcher B-spline tool

Post by chrisb »

I may add: Deleting knots or even control circles doesn't really change the complexity of the B-Spline, it only removes the constraints applied to those control circles. You can always get them back with the "Show all internal geometry" function.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
nohspamjose
Posts: 16
Joined: Wed May 02, 2018 12:58 pm

Re: How to use sketcher B-spline tool

Post by nohspamjose »

I have been using the sketcher b-spline tool to create some 1930's stair rods (see photo 1)
IMG_20220131_115133.jpg
IMG_20220131_115133.jpg (191.77 KiB) Viewed 768 times
I can sketch the parallelogram with all the necessary constraints
and I can sketch the slot (with width constraint) and even the candle-flame end elements (using the bezier/b-spline tools)

The tricky part is locking the bezier sections of the sketch, so they and the parallel slot move as one, so I can maintain the shape but constrain how far the candle-flame tips are from the top and bottom (letting the parallel slot resize as needed.

Group selecting the bezier doesn't help. I can't find a tool that locks their relative position. and I can't drag the bezier, so it moves in lockstep

Moving the parallel slot leaves the candle flames static and distorted by where the two elements join (slot & flame sections)

The usability of the tool is confusing, undocumented (for the usage I've described) and possibly inconsistent.

Am I being dense and missing an obvious way to do this seemingly simple task or is this a particularly gnarly area that's difficult to make easy for a user to achieve?

I guess there may be a work-around by creating the wood without the slot from a padded sketch and then creating a separate padded sketch for the area to be removed and then positioning the two and running a boolean subtraction. If I suggested that in my job as a UX/UI designer (30 years this year), I'd be rightly fired or possibly taken out and shot.

I made a video of the odd interaction behaviour but the forum seems picky about format and size (without specifying either, so I can't upload it.
Last edited by nohspamjose on Tue Feb 01, 2022 10:51 am, edited 1 time in total.
nohspamjose
Posts: 16
Joined: Wed May 02, 2018 12:58 pm

Re: How to use sketcher B-spline tool

Post by nohspamjose »

I have been using the sketcher b-spline tool to create some 1930's stair rods (see photo 1)

1930s stair rod
IMG_20220131_115133.jpg
IMG_20220131_115133.jpg (191.77 KiB) Viewed 769 times
I can sketch the parallelogram with all the necessary constraints
and I can sketch the slot (with width constraint) and even the candle-flame end elements (using the bezier/b-spline tools)

The tricky part is locking the bezier sections of the sketch, so they and the parallel slot move as one, so I can maintain the shape but constrain how far the candle-flame tips are from the top and bottom (letting the parallel slot resize as needed.

Group selecting the bezier doesn't help. I can't find a tool that locks their relative position. and I can't drag the bezier, so it moves in lockstep

Moving the parallel slot leaves the candle flames static and distorted by where the two elements join (slot & flame sections)

The usability of the tool is confusing, undocumented (for the usage I've described) and possibly inconsistent.

Am I being dense and missing an obvious way to do this seemingly simple task or is this a particularly gnarly area that's difficult to make easy for a user to achieve?

I guess there may be a work-around by creating the wood without the slot from a padded sketch and then creating a separate padded sketch for the area to be removed and then positioning the two and running a boolean subtraction. If I suggested that as the designed solution in my job as a UX/UI designer (30 years this year), I'd be rightly fired or possibly taken out and shot.

Here is a video of the odd interaction behaviour
phpBB [video]
Last edited by nohspamjose on Tue Feb 01, 2022 10:52 am, edited 3 times in total.
chrisb
Veteran
Posts: 54207
Joined: Tue Mar 17, 2015 9:14 am

Re: How to use sketcher B-spline tool

Post by chrisb »

No photo attached, and to watch the video, I should register :cry: .
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
GeneFC
Veteran
Posts: 5373
Joined: Sat Mar 19, 2016 3:36 pm
Location: Punta Gorda, FL

Re: How to use sketcher B-spline tool

Post by GeneFC »

I was able to watch without registration, but it is not clear what was done.

Need a real file (FCStd) and the referenced image to understand the situation.

Gene
nohspamjose
Posts: 16
Joined: Wed May 02, 2018 12:58 pm

Re: How to use sketcher B-spline tool

Post by nohspamjose »

Sorry about the missing image and difficult video link. Should be fixed now

By way of an explanation.
  • I created the parallelogram
  • within it I placed a rectangle and deleted its ends
  • I drew a bezier of about 12 points that approximated to the candle flame shape I wanted and constrained the open end points of the bezier to be co-located (joined) on the end points of the remaining vertical lines of the inner rectangle.
  • I then repeated the bezier activity at the other end of the rectangle
I now have the inner profile - approximately
Even if I refine the beziers by manually dragging the control points, I can't find a way to fix each of the bezier's control points relative to each other so that the shape is frozen but moveable as part of the whole path.
  • If I try to select the control points and constrain them, I can't find a constraint tool that does what I want
  • If I try to unconstrain everything (apart from the height and width of the inner rectangle) and then select all in the inner path and then drag wierd unintuitive/illogical subparts move.
  • I can't find a way to move the inner shape - keeping its integrity and constrain it within the parallelogram
  • This is what I try to demonstrate in the video
Last edited by nohspamjose on Mon Jan 31, 2022 9:13 pm, edited 1 time in total.
chrisb
Veteran
Posts: 54207
Joined: Tue Mar 17, 2015 9:14 am

Re: How to use sketcher B-spline tool

Post by chrisb »

From what I see I would recommend appropriate attachments. See the Basic Attachment Tutorial.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
nohspamjose
Posts: 16
Joined: Wed May 02, 2018 12:58 pm

Re: How to use sketcher B-spline tool

Post by nohspamjose »

We crossed in the post - please see the edits I made in my previous post :roll:

BTW, Thanks for the links - started to look but will finish looking tomorrow after work
nohspamjose
Posts: 16
Joined: Wed May 02, 2018 12:58 pm

Re: How to use sketcher B-spline tool

Post by nohspamjose »

Here's an example file (a smaller version of what I showed in the video)
Note that I created two splines (one either end). It would have been great to be able to copy and paste the first to create the second (with rotate/mirror) but I couldn't see a way to do that. When I did them I made them roughly equal but as soon as I added a constraint to vertically centre the inner rectangle (20mm above origin for 40mm high rectangle), the rectangle moved but the beziers didn't - apart from where they were attached to the rectangle, which distorted them, as you'll see in the attached file. The only remedy I can see is to manually reposition the control points.

Even if there is a way to do this, the UI could be more intuitive - I'm happy to discuss and work with the Sketcher developers* to help improve the user experience (even documenting what's NOT possible would help users save wasted time trying)
testSketcher.FCStd
(14.73 KiB) Downloaded 29 times

*I have 30 years experience on enterprise grade UI/UX design and Design Thinking leadership
User avatar
adrianinsaval
Veteran
Posts: 5551
Joined: Thu Apr 05, 2018 5:15 pm

Re: How to use sketcher B-spline tool

Post by adrianinsaval »

nohspamjose wrote: Tue Feb 01, 2022 12:09 pm Even if there is a way to do this, the UI could be more intuitive - I'm happy to discuss and work with the Sketcher developers* to help improve the user experience (even documenting what's NOT possible would help users save wasted time trying)
*I have 30 years experience on enterprise grade UI/UX design and Design Thinking leadership
while we do need people with UI/UX expertise we don't have any full time developer to take action on demand, abdullah is very open to suggestions but I think he's too busy rigth now so won't be acting soon either.
For documenting go to the wiki subforum to learn how to get wiki editing permissions, if you need clarification about ussage of a tool so you can document it, ask in this forum.
There's also a UI/UX forum were your opinion might be appreciated.
There's also other developments going on about sketcher in the part design subforum, some of those could use UX advise.
Also this discussion: https://forum.freecadweb.org/viewtopic. ... 00#p540084
beware, it's a lengthy one and it's stalled but I mention it because I'm not too happy with the UI that was merged (although it's certainly more useful than what was before)

Concrete proposals are better than general ideas, if you can muck up in qtdesigner or even better code the UI it's probably more helpful. You will likely need top get sufficiently familiar with FreeCAD and if possible some of the codebase in order to make actionable and good proposals.

Also beware that this is a community baed FOSS project, everyone is a volunteer working on their free time, this is not a enterprise. So don't expect an enterprise-like workflow, we've had experts come and say generic stuff and then quit before, I suspect because they were too used to working for a company rather than trying to convince a random unpaid person to do what they want.
Post Reply