KittyCAD / modeling-app

The KittyCAD modeling app.
https://kittycad.io/modeling-app/download
MIT License
422 stars 35 forks source link

Point and Click improvements #2035

Open jessfraz opened 7 months ago

jessfraz commented 7 months ago

after v1

franknoirot commented 7 months ago

Lots of great stuff in here; just wanted to start with highlighting this:

if you want to add many lengths at once, you can enter a length mode where you can click length, then click a line add a length, click a line add a length, click a line add a length, just for ease of use

This will be a Dimension tool like those found in other CAD apps, so you can set lengths or angles depending on your clicking sequence. As I help capture these as issues, I'll make sure there is one that gets the full tool feature idea.

alteous commented 7 months ago

Export is inconsistent works once but then not working the second time

Do we know what the problem is here exactly? I haven't been able to reproduce this.

jessfraz commented 7 months ago

It’s not a backend thing it’s a ui thing where it doesn’t even prompt where to save

Irev-Dev commented 7 months ago

on close, the line is like a draft line and should look like all the other lines

This was a design choice, the close segment is different from every other segment, the user can't define it, it just goes directly back to the profile start so it should look different. It doesn't look like a draft lines, the draft lines are dashed. We can change the way the close looks but I think it probably look different still.

hover over button when disabled like extrude, would be good to know the reason sometimes the reason shows up a bit delayed like 3 seconds

We're using the browser title attribute, which yeah is kinda slow, we can use a popover or similar.

on click of object (closed sketch, not sketch mode), you should be able to extrude, it does not allow for this, you have to select within the code, we should make sure everything always works with the code panel closed

This issue was introduced in the sketch on face. I need to touch base with @mlfarrell about this we talked about it, for example here the solid2d id is supposed to be the path id, so it's already in the artifact map, but the id that get's returned by the engine is not in the client's artifact map which is why this doesn't work. I'll get my ducks lined up and make sure it's not something dumb in the FE.

inconsistencies with not being able to draw lines in sketch mode

Is this a catch all for bugs in sketch mode? it seems a little vague.

Click / hover over a line should highlight the line and the code line, this used to work and now is not

I realise this was listed in, https://github.com/KittyCAD/modeling-app/pull/1664 but I hadn't created an engine issue, it seems that highlight_set_entity doesn't work in edit_mode (and we have to use that for sketch on face). but click does work for edges and faces (but not segments as you pointing out.)

hovering over a math equation in the code will show the fully executed outcome of the equation

const myVar = my + math / expression
const yo = someFunction(my + math / expression)

is this for variable declarations only (because we can get that by looking at program memory) but if it's for any binaryExpression that's not store anywhere so we'll probably have to make a little ast with just that expression, and execute it with the previous program memory to get it it's value, but even than I'm not sure

const myVar = my + math / someExpressiveEngineCall()

Do we try and re-execute an expensive callExpression that needs the engine (queries big model for it's volume)? We could do start by only doing it for binaryExpressions that don't contain callExpressions, but this might be confusing for users.

Moving existing lines seems to be broken, its injecting lines versus say taking a corner and making a rectangle better, and the close line just moves the whole sketch versus allowing to drag the corner out, never mind it is subtle so maybe we add a keybinding for one of these as a setting, but very cool the injecting of new lines versus having to cut a line

I'll probably need a demo. I'm not able to replicate it.

after adding a length constraint to a line you are exited out of sketch mode, you should still be in sketch mode

Yeah adding constraints that add a variable by default has this issue, I'm guessing that's what you hit. I want to squash a bunch of sketch mode quirks once I get through the overlay stuff.

after hitting horizontal on a line, that line is no longer selected so you have to click it again in order to constrain the length

I think we lost this in the xstate migration, it's subtle enough to have gotten missed in the migration, but very convenient when you are trying to move quickly.

multi-select lines with control to add constraints

It's shift for selecting segments atm, and cmd or putting the cursors yourself in the editor. ctrl might be a better default since potentially we can use it for both. And maybe this is something that's non-negotiable like user's can't chang it back to shift in settings because shift is already such a hard convention for selecting a block of text in the editor.

catia, top to bottom rectangle to select, selects ONLY items fully within the box, like if half a line is in it it wont select it. But if you go bottom to top, it will select lines that are only half within the box

probably makes sense to do this when it add "select multiple segments to move at once" but that's probably the biggest use case, but having said that trying to move multiple segments at once gets gnarly with constraints, like if there's a single absolute-coords constrained segment in your selections then you probably can move your selections, and less the way the tool works is even if you selected constrained segments, it will just move the segments that it's able to. but that seems kinda jank to me.

snap to other lines in the sketches, like it needs to feel like it snaps

snapping will be a pretty big task, keen to get into it, I kinda want to have construction geometry in sketch groups before I get underway so that I'm covering that case when working on it.

Snaps will be a big task because for each kind of snap there will need to be specific ast mod for that. But it will be huge unlock since it will allow users to constrain segments without having to select a segment and click a specific constraint button.

angled line constraints arent actually updating the sketch, they create just this weird ghost line, appear to be broken

I'll have to play with this.

extrude click and point has bugs when you click the sketch again extrude click and point should show the variable name for the selected extrude in the command bar, should highlight the whole profile for the sketch extrude should be callable without somthing selected, then you select a sketch after

I struggle to follow the above sorry.

jessfraz commented 7 months ago

Sorry i can show you the ones I worded poorly!

franknoirot commented 3 weeks ago

Per this slack message, this bullet point is getting accelerated to be before V1:

after v1, more traditional feature tree feeling side bar