MoI discussion forum
MoI discussion forum

Full Version: Lots of unkown

Show messages:  1-14  …  115-134  135-154  155-174  175-194  195-214  215-234  235-254  …  355-372

From: Cemortan_Tudor
10 Jul 2020   [#175]
i'm messing with bool operations difference operations to see all the states for curves
so ~ there's a glitch
on a shape like this with keep objects will delete 'baseobjects'

Attachments:
bool_tests1.3dm

Image Attachments:
Screenshot_21.png 


From: Michael Gibson
10 Jul 2020   [#176] In reply to [#175]
Hi Tudor, yes the curve booleans can get confused if you do a boolean between an open curve and a closed curve like that.

You can do an open curves as the base object and a closed curve as the cutter but a closed curve as the base object and an open curve as the cutter will tend to make some weird results. I would recommend to avoid using that combination.

- Michael

Message 8665.177 was deleted


From: Cemortan_Tudor
16 Jul 2020   [#178]
Hi Michael !

I have a dream ))
Editpoints manipulation in 3dSpace if not snapped-> dragging -> http://moi3d.com/forum/index.php?webtag=MOI&msg=8665.117
toogle option
1. accordingly to the 3d view drag should change grid orientation : xy,xz,yz based on pickedpoint drag start position (similar to http://moi3d.com/forum/index.php?webtag=MOI&msg=8665.141)
2. view frame moi.ui.getActiveViewport().targetFrame

I've tried move command - but it requires to many actions for manipulation (for each -> select, move, axis or frame, drag)
this way we won't be snapped to orto views

about
http://moi3d.com/forum/index.php?webtag=MOI&msg=8665.142 - only on init - we can cancel align and do new one if camera changes
From: Michael Gibson
16 Jul 2020   [#179] In reply to [#178]
Hi Tudor, sorry no there isn't a method set up to do what you wan there. Since MoI is designed as a type of CAD program, it has an overall focus on accuracy and not on mushing points around in random directions.

There are other programs that are focused on that type of object manipulation. If that type of operation is important for your work you would be better off using one of those programs that is designed for that type of task rather than MoI which is not designed for that type of work currently.

- Michael
From: Cemortan_Tudor
18 Jul 2020   [#180] In reply to [#179]
It's true that i'm trying to achieve common environment for modeling - hard surface - will be neat future for history sweep update (shape creation)

Here comes a question - I know disable update - will disable sweep's update(idk others which can update) but manual update on what it works ? -> enable history ?

pointpicker.bindFunc() & pointpicker.bindFuncPostUpdate() - differences, references, other wiki locations !

Also with last v4 version will be possible to achieve this future - https://github.com/heimlich1024/OD_CopyPasteExternal
copy/paste obj extension between softwares !
by moi.filesystem.getDirs() as all files are in %system%\Windows\Temp folder

//on git Author use version of Smirmov's import obj future that has ~ normalize and ~ move actions (need digging to understand what they are for, if u know the answer !) - as script -> It should copy/replace same object on same position in different softwares !
From: Michael Gibson
18 Jul 2020   [#181] In reply to [#180]
Hi Tudor,

re:
> Here comes a question - I know disable update - will disable sweep's update(idk others which can update) but
> manual update on what it works ? -> enable history ?

It can be enabled on the results from any command except the Array commands which do not emit history records on objects because it can increase file size on larger arrays by quite a bit. The main limitation to the history function though is that it needs to be able to find the input objects in the current geometry database for it to use them for a recalculation. If the original objects have been removed that will break history updates.


> pointpicker.bindFunc() & pointpicker.bindFuncPostUpdate() - differences, references, other wiki locations !

bindFunc() will make the pointpicker call to the given function before it updates factory inputs and the function can provide the current point value on the pointpicker that will then get pushed to the factory inputs. bindFuncPostUpdate() will make the pointpicker call to the given function after the update sequence has happened so it can look at the results of the update.


> Also with last v4 version will be possible to achieve this future - https://github.com/heimlich1024/OD_CopyPasteExternal
> copy/paste obj extension between softwares !
> by moi.filesystem.getDirs() as all files are in %system%\Windows\Temp folder

I think that system is already working with MoI v3 and v4.


> //on git Author use version of Smirmov's import obj future that has ~ normalize and ~ move actions
> (need digging to understand what they are for, if u know the answer !) - as script -> It should
> copy/replace same object on same position in different softwares !

I think that Max noticed that some programs make .obj files that happen to be at what is considered an unusually small or large scale in MoI, and so he implemented a method to rescale objects to a more normal size when they are read in which is enabled by default. But that is not good for keeping unit sizes the same and so there is an "exact" command line parameter that you can pass in to the script to turn that off:
http://moi3d.com/forum/index.php?webtag=MOI&msg=6674.453

- Michael
From: Cemortan_Tudor
18 Jul 2020   [#182]
move - expanded first actions - move + x/y/z/a initial conditions (earlier script respond after first pickedpoint)
s - bbox center

extrude - do backup as part is havelly changed from vanilla
p path
b both directions
c cap ends
d directional // changed - removed distance line and input distance (slightly buggy on surfaces if keypressed while moving mouse - I think it can't update in time and skips update factory)
f tapered/flip tapered
Numpad+ increase tapered angle by 15
Shift+Numpad+ increase tapered angle by 5
Numpad- decrease tapered angle by 15
Shift+Numpad- decrease tapered angle by 5
removed t as hotkey

boolean difference
for closed curves
initial and subtractive if both are on same parallel frame but different frame
move subtractive group to initial and do the boolean difference (made for side views where u see that u have 2 circle's but u cannot subtract cuz they have different frames)

Attachments:
BooleanDifference.js
Extrude.js
Move.js


From: Cemortan_Tudor
19 Jul 2020   [#183]
crv.evaluateCurvature - how can I access first and second pt of vector ? -> tried -> [], item(), getStartPt()
From: Michael Gibson
19 Jul 2020   [#184] In reply to [#183]
Hi Tudor,

re:
> crv.evaluateCurvature - how can I access first and second pt of vector ? -> tried -> [], item(), getStartPt()

There is not a first and second point returned, it returns one vector value (with .x, .y, .z - same as a point) for the curvature vector (K) of the curve in the osculating plane at that parameter value. Radius of curvature = 1 / Magnitude K.

https://en.wikipedia.org/wiki/Curvature#Osculating_circle

- Michael
From: Michael Gibson
19 Jul 2020   [#185] In reply to [#183]
re: crv.evaluateCurvature, here is some test code. Make a curve, select it and then push the Tab key and paste this in to the XYZ input control:

var crv = moi.geometryDatabase.getSelectedObjects().getCurves().item(0);
var pt = crv.evaluatePoint( crv.domainMin );
var K = crv.evaluateCurvature( crv.domainMin );
var f = moi.command.createFactory( 'line' );
f.setInput( 0, pt );
f.setInput( 1, moi.vectorMath.add( pt, K ) );
f.commit();

That will make a line showing the curvature vector. The radius of curvature is 1 / length of that line.

Curvature vectors are generally scaled up by quite a bit when used for visualization purposes. They tend to be small in their direct form.

- Michael
From: Cemortan_Tudor
19 Jul 2020   [#186]
thanks ! that's what i've needed !
From: Cemortan_Tudor
21 Jul 2020   [#187]
how can I get toplevel from a selection (ex:face or edge to object)
From: Michael Gibson
21 Jul 2020   [#188] In reply to [#187]
Hi Tudor,

re:
> how can I get toplevel from a selection (ex:face or edge to object)

var toplevel = subobj.getTopLevelParent();

- Michael
From: Cemortan_Tudor
23 Jul 2020   [#189]
Hi Michael !
is it possible to attach moi-html to chrome to have futures like object explorer/building html ?
or other ways to debug
From: Michael Gibson
23 Jul 2020   [#190] In reply to [#189]
Hi Tudor,

re:
> Hi Michael !
> is it possible to attach moi-html to chrome to have futures like object explorer/building html ?
> or other ways to debug

No, not currently. In the future I want to have a script debugger in MoI, it will involve a lot of work to make that happen though.

- Michael

Message 8665.191 was deleted


From: Cemortan_Tudor
1 Aug 2020   [#192]
Hi Michael !
I think this should rise an error
createPoint(moi.vectorMath.add(obj.getStartPt(), scaleVector(obj.evaluateTangent(obj.domainMin), -1))).commit() - correct state
createPoint(moi.vectorMath.add(obj.getStartPt(), scaleVector(obj.evaluateTangent(obj.domainMin)),-1)).commit() - should rise -> it creates an null point

function scaleVector(v, factor) ... return moi.vectorMath.createPoint(x,y,z)
From: Cemortan_Tudor
9 Aug 2020   [#193]
Hi Michael !
I'm working a script & I wanna optimize it ! it uses a lot of moi.vectorMath.add()
wanna ask what's the math behind that function ? mb will improve runtime (not to call internals todo math operations )
From: Michael Gibson
9 Aug 2020   [#194] In reply to [#193]
Hi Tudor,

re:
> it uses a lot of moi.vectorMath.add()
> wanna ask what's the math behind that function ?

Like this:

var PtA, PtB, Result;

<......>

Result.x = PtA.x + PtB.x;
Result.y = PtA.y + PtB.y;
Result.z = PtA.z + PtB.z;


- Michael

Show messages:  1-14  …  115-134  135-154  155-174  175-194  195-214  215-234  235-254  …  355-372