Share your MoI keyboard shortcuts  1-20  21-35

Next
 From:  Metin Seven (METINSEVEN)
8123.1 
Hi guys,

Let's share our MoI keyboard shortcuts. Maybe we can discover some new scripts, new commands and/or clever key bindings.

I'll start off with mine (copied from my Moi.ini configuration file)

[Shortcut Keys]
/=script: /* Isolate selection */ moi.geometryDatabase.isolate();
0=script: /* 3D view (perspective or isometric) */ moi.ui.mainWindow.viewpanel.mode = '3D';
1=script: /* Front view */ var vname = 'Front'; var vp = moi.ui.mainWindow.viewpanel; vp.mode = vname; if ( vp.getViewport(vname).name != vname ) vp.reverseView( vname );
3=script: /* Right view */ var vname = 'Right'; var vp = moi.ui.mainWindow.viewpanel; vp.mode = vname; if ( vp.getViewport(vname).name != vname ) vp.reverseView( vname );
5=script: /* Toggle between Parallel and Perspective view */ var vp = moi.ui.mainWindow.viewpanel.getViewport('3D'); vp.projection = (vp.projection == 'Perspective' ? 'Parallel': 'Perspective');
7=script: /* Top view */ var vname = 'Top'; var vp = moi.ui.mainWindow.viewpanel; vp.mode = vname; if ( vp.getViewport(vname).name != vname ) vp.reverseView( vname );
A=ArrayDir
B=Blend
Backspace=Delete
C=script: /* CPlane */ moi.view.setCPlaneInteractive();
Cmd+A=script:moi.geometryDatabase.selectAll();
Cmd+C=CopyClipboard
Cmd+E=Export
Cmd+I=script: /* Invert selection */ moi.geometryDatabase.invertSelection();
Cmd+N=New
Cmd+O=Open
Cmd+R=Randomize
Cmd+S=Save
Cmd+V=Paste
Cmd+X=Cut
Cmd+Z=script:moi.command.undo();
Ctrl+1=script: /* Back view */ var vname = 'Back'; var vp = moi.ui.mainWindow.viewpanel; vp.mode = vname; if ( vp.getViewport(vname).name != vname ) vp.reverseView( vname );
Ctrl+3=script: /* Left view */ var vname = 'Left'; var vp = moi.ui.mainWindow.viewpanel; vp.mode = vname; if ( vp.getViewport(vname).name != vname ) vp.reverseView( vname );
Ctrl+7=script: /* Bottom view */ var vname = 'Bottom'; var vp = moi.ui.mainWindow.viewpanel; vp.mode = vname; if ( vp.getViewport(vname).name != vname ) vp.reverseView( vname );
Ctrl+A=ArrayCurve
Ctrl+C=cMorph
Ctrl+D=DistortCurves
Ctrl+E=Scale2D
Ctrl+F=AddPoint
Ctrl+I=Isocurve
Ctrl+K=script: /* Select naked edges (open borders) */ var gd = moi.geometryDatabase; gd.deselectAll(); var breps = gd.getObjects().getBreps(); for ( var i = 0; i < breps.length; ++i ) breps.item(i).getNakedEdges().setProperty( 'selected', true );
Ctrl+M=Merge
Ctrl+N=New
Ctrl+O=Orient
Ctrl+P=script: /* Copy PDF format to clipboard */ moi.geometryDatabase.copyToClipboardPDF();
Ctrl+R=RailRevolve
Ctrl+S=Separate
Ctrl+Shift+A=ArrayGem
Ctrl+Shift+C=CopyClipboardWithOrigin
Ctrl+Shift+D=Copy
Ctrl+Shift+R=Rebuild
Ctrl+Shift+S=script:/* Shrink selection 1.0 */ function es(edg){ var i,f; for (i=0; i<edg.length; i++) {f=edg.item(i).getFacesOfEdge(); f.setProperty('selected',0);}} var gd = moi.geometryDatabase; gd.invertSelection(); var so = gd.getSelectedObjects(), sf=so.getFaces(), i; gd.invertSelection(); for ( i=0; i<sf.length;i++) es(sf.item(i).getEdges());
Ctrl+Shift+V=PastePart
Ctrl+Shift+X=script:/* Expand selection 1.0 */ function es(edg){ var i,f; for (i=0; i<edg.length; i++) {f=edg.item(i).getFacesOfEdge(); f.setProperty('selected',1);}} var so = moi.geometryDatabase.getSelectedObjects(), sf=so.getFaces(), i; for ( i=0; i<sf.length;i++) es(sf.item(i).getEdges()); es(so.getEdges());
Ctrl+V=Paste
Ctrl+X=Cut
Ctrl+Y=script:moi.command.redo();
Ctrl+Z=script:moi.command.undo();
D=BooleanDifference
Delete=Delete
DownArrow=Nudge Down
E=Scale
F=script: /* Show all in viewports */ moi.view.resetAll();
F1=script:moi.launchHelp();
H=script: /* Hide selection */ moi.geometryDatabase.hide();
I=BooleanIntersection
J=Join
K=script: /*Edge loop selection*/ moi.geometryDatabase.selectLoop();
L=Loft
LeftArrow=Nudge Left
M=Mirror
N=NSided
O=Offset
P=PlanarSrf
PageDown=Nudge ZDown
PageUp=Nudge ZUp
R=Rotate
RightArrow=Nudge Right
S=Sweep
Shift+A=ArrayCircular
Shift+B=BoundingBoxCenter
Shift+C=script: /* Reset CPlane to default */ moi.view.resetCPlane();
Shift+Cmd+C=CopyClipboardWithOrigin
Shift+Cmd+S=SaveAs
Shift+Cmd+V=PastePart
Shift+Cmd+Z=script:moi.command.redo();
Shift+D=DelCorners
Shift+DownArrow=Nudge Down Small
Shift+E=Scale1D
Shift+F=ShowPoints
Shift+H=script: /* Select objects to unhide */ moi.geometryDatabase.showSubset();
Shift+I=Inset
Shift+K=script: /* Select edges v1.4 */ var gd=moi.geometryDatabase, so=gd.getSelectedObjects(); function ss(o,v){o.setProperty("selected",v)} function sl(o){ for ( var i=0; i<o.length; ++i ) o.item(i).getEdges().invertProperty("selected");} gd.selectLoop(); sl(so.getFaces()); sl(so.getSolids()); sl(so.getOpenBReps()); sl(so.getSingleFaceBReps()); ss(so.getBReps(),0); ss(so.getFaces(),0);
Shift+L=script: /* Lock selection toggle */ moi.geometryDatabase.lock();
Shift+LeftArrow=Nudge Left Small
Shift+M=BooleanMerge
Shift+N=Network
Shift+O=FatLines
Shift+P=Project
Shift+PageDown=Nudge ZDown Small
Shift+PageUp=Nudge ZUp Small
Shift+R=Revolve
Shift+RightArrow=Nudge Right Small
Shift+S=Shell
Shift+U=UnwrapCurve
Shift+UpArrow=Nudge Up Small
Shift+V=Chamfer
Shift+Z=script: /* Toggle edge display */ var breps = moi.geometryDatabase.getObjects().getBReps(); var hide = true; for ( var i = 0; i < breps.length; ++i ) { var edges = breps.item(i).getEdges(); if ( i == 0 ) hide = !edges.item(0).hidden; edges.setProperty( 'hidden', hide ); }
Space=script: /* Toggle quad view */ if ( moi.ui.mainWindow.viewpanel.mode != 'split' ) { moi.ui.mainWindow.viewpanel.mode = 'split' } else { var viewport = moi.ui.getViewportUnderMouse(); if ( viewport ) { viewport.viewPanel.mode = viewport.name } }
T=Trim
U=BooleanUnion
UpArrow=Nudge Up
V=Fillet
W=Move
X=Extrude
Z=script: /* Toggle visibility of all curves */ var objs = moi.geometryDatabase.getObjects().getCurves(); var ishidden = objs.length> 0 ? objs.item(0).hidden : false; objs.setProperty( 'hidden', !ishidden );

In my case, a number of key bindings correspond to either Blender or ZBrush, for convenience in switching between those tools and MoI.

— Metin

———————

metinseven.com — 3D (print) models • animation • characters • icons • illustration • infographics • visualization

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  mkdm
8123.2 
Hi everyone,

Here's my current hotkeys.

P.S. I don't think that these hotkeys would be very helpful for anyone, because a certain number of hotkeys refer to my very personal customized Moi's UI
(thread http://moi3d.com/forum/index.php?webtag=MOI&msg=8122.1).

Anyway...that's it :

[Shortcut Keys]
,=var z=1.2, vp=['3D','Left','Right','Top','Bottom','Front','Back']; for (var n in vp) moi.ui.mainWindow.viewpanel.getViewport(vp[n]).zoom(z);
-=script:moi.geometryDatabase.hide();
.=var z=.8, vp=['3D','Left','Right','Top','Bottom','Front','Back']; for (var n in vp) moi.ui.mainWindow.viewpanel.getViewport(vp[n]).zoom(z);
1=line
2=curve
3=rectangle
4=polygon
5=circle
6=arccenter
7=ellipse
8=point
9=addpoint
\;=script:moi.view.showHiddenLines =! moi.view.showHiddenLines;
\==script: /* Assign unique object name to selection */ var all_objects = moi.geometryDatabase.getObjects(); var used_names = new Array(); for ( var i = 0; i < all_objects.length; ++i ) { var obj = all_objects.item(i); if ( obj.name != '' ) { used_names[obj.name] = true; } } var counter = 1; var name; while ( 1 ) { var numtag = counter.toString(); while ( numtag.length < 4 ) { numtag = '0' + numtag; } name = 'object_' + numtag; if ( used_names[name] ) { ++counter; continue; } used_names[name] = true; break; } moi.geometryDatabase.getSelectedObjects().setProperty( 'name', name );
\\=script: /* Hide all named objects */ var objs = moi.geometryDatabase.getObjects(); for ( var i = 0; i < objs.length; ++i ) { var obj = objs.item(i); if ( obj.name != '' ) obj.hidden = true; }
\]=script: /* Extend selection to the same object name */ var names = new Array(); var objs = moi.geometryDatabase.getSelectedObjects(); for ( var i = 0; i < objs.length; ++i ) { var obj = objs.item(i); if ( obj.name != '' ) names[obj.name] = true; } objs = moi.geometryDatabase.getObjects(); for ( var i = 0; i < objs.length; ++i ) { var obj = objs.item(i); if ( obj.name != '' && names[obj.name] ) obj.selected = true; }
`=script:moi.view.resetAll();
A=script: var cb = moi.ui.getUIPanel('moi://ui/CommandBar.htm'); moi.ui.showMenu('AllStdModellingCommandsGallery.htm', cb.document.getElementById('CoordinateControls'), 4, 0);
Alt+0=script: /*! Show edges on selected objects, hide edges on all others --- Alt+H*/ var breps = moi.geometryDatabase.getObjects().getBreps(); for ( var i = 0; i < breps.length; ++i ) { var brep = breps.item(i); brep.getEdges().setProperty( 'hidden', !brep.selected ); }
Alt+1=polyline
Alt+2=interpcurve
Alt+3=rectcenter
Alt+4=polygonedge
Alt+5=circlediameter
Alt+6=arc3pt
Alt+7=ellipsediameter
Alt+8=helix
Alt+9=script: /*! Open Add new style dialog --- Alt+T*/ var gd = moi.geometryDatabase; gd.styleEditorOpened(); var dialog = moi.ui.createDialog( 'EditStyleDialog.htm?titleid=Add style dialog title&index=-1', '', moi.ui.mainWindow ); if ( dialog.window.doModal() != -1 ) { var styles = gd.getObjectStyles(); if ( styles.length> 0 ) moi.ui.propertiesPanel.editStyleIndex( styles.length - 1 ); } gd.styleEditorClosed();
Alt+`=script: var viewport = moi.ui.getViewportUnderMouse(); if ( viewport ) viewport.reset();
Alt+A=script:moi.geometryDatabase.deselectAll();
Alt+B=Rebuild
Alt+C=network
Alt+DownArrow=script: moi.ui.getActiveViewport().pan( 0.0, -0.2, 0.0 );
Alt+E=scale2d
Alt+F=Twist
Alt+F1=script: moi.ui.createDialog( 'Options.htm', 'resizeable,defaultWidth:43em,defaultHeight:32em' );
Alt+F2=script: moi.ui.createDialog( 'nodeeditor/index.html', 'resizeable,defaultWidth:680,defaultHeight:420', moi.ui.mainWindow );
Alt+F3=script: moi.grid.showXYAxes = !moi.grid.showXYAxes;
Alt+F9=ToggleTransparentDisplayAutoSel
Alt+G=arraydir
Alt+I=script:moi.geometryDatabase.invertSelection();
Alt+J=separate
Alt+K=SelectNakedEdges
Alt+L=script: /* Expand selection over same styles and loft */ var objects = moi.geometryDatabase.getObjects().getCurves(), points = moi.geometryDatabase.getObjects().getPoints(), styles = new Array(); for (var i = 0; i < points.length; i++) { objects.addObject(points.item(i))} for ( var i = 0; i < objects.length; ++i ) { var obj = objects.item(i); if ( obj.selected ) styles[obj.styleIndex] = true; } for ( var i = 0; i < objects.length; ++i ) { var obj = objects.item(i); if ( styles[obj.styleIndex] ) obj.selected = true; }; moi.command.execCommand( 'loft' );
Alt+LeftArrow=script: moi.ui.getActiveViewport().pan( -0.2, 0.0, 0.0 );
Alt+M=Merge
Alt+N=orient
Alt+Q=planecenter
Alt+R=showpoints
Alt+RightArrow=script: moi.ui.getActiveViewport().pan( 0.2, 0.0, 0.0 );
Alt+S=MarkCurveStart
Alt+T=rotate
Alt+UpArrow=script: moi.ui.getActiveViewport().pan( 0.0, 0.2, 0.0 );
Alt+V=railrevolve
Alt+W=box
Alt+X=nsided
Alt+Z=script: var viewport = moi.ui.getViewportUnderMouse(); if ( viewport ) viewport.interactiveViewChange('zoomarea');
B=blend
Backspace=Delete
C=copy
Ctrl+1=Delete
Ctrl+5=circletangent
Ctrl+6=arccontinue
Ctrl+\\=script: var objs = moi.geometryDatabase.getSelectedObjects(); if ( objs.length> 0 ) { moi.ui.mainWindow.viewpanel.getViewport('3D').targetPt = objs.getBoundingBox().center; }
Ctrl+`=SelectOuterLoopsAndDelete3
Ctrl+A=script:moi.geometryDatabase.selectAll();
Ctrl+Alt+A=Send_to_Rocket_3F
Ctrl+Alt+Q=ViewSpinning
Ctrl+Alt+W=ViewSpinningReset
Ctrl+C=CopyClipboard
Ctrl+E=ToggleParallelPerspective
Ctrl+F=chamfer
Ctrl+G=arraycurve
Ctrl+N=New
Ctrl+O=Open
Ctrl+R=script:moi.ui.mainWindow.viewpanel.reverseView( moi.ui.getActiveViewport().name );
Ctrl+S=Save
Ctrl+Shift+1=script: /*! Show-hide edges on selected objects */var breps = moi.geometryDatabase.getSelectedObjects().getBreps(); for ( var i = 0; i < breps.length; ++i ) {var brep = breps.item(i);brep.getEdges().invertProperty( 'hidden');}
Ctrl+Shift+\\=ShrinkTrimmedSrf
Ctrl+Shift+A=script: /* Align CPlane with 3D view 1.0 */ var cp=moi.view.getCPlane(), tp=moi.ui.mainWindow.viewpanel.getViewport('3D').targetFrame, tl=moi.VectorMath.pointsWithinTolerance; if (tl(cp.origin,tp.origin) && tl(cp.zaxis,tp.zaxis)) { moi.view.resetCPlane() } else {moi.view.setCPlane(tp, false)}
Ctrl+Shift+Alt+0=[Bridges]Import_TSpline
Ctrl+Shift+Alt+1=[Bridges]Export_NVil
Ctrl+Shift+Alt+2=[Bridges]Export_NVil ShowUI
Ctrl+Shift+Alt+3=[Bridges]Export_Obj_KeyShot
Ctrl+Shift+Alt+4=[Bridges]Export_Obj_KeyShot ShowUI
Ctrl+Shift+Alt+5=[Bridges]Import_Obj New
Ctrl+Shift+Alt+6=[Bridges]Import_Obj
Ctrl+Shift+Alt+7=[Bridges]Import_Obj_Smooth New
Ctrl+Shift+Alt+8=[Bridges]Import_Obj_Smooth
Ctrl+Shift+Alt+9=[Bridges]Import_TSpline New
Ctrl+Shift+Alt+D=Send_to_Rocket_3F hard
Ctrl+Shift+Alt+S=Send_to_Rocket_3F Sub
Ctrl+Shift+C=CopyClipboardWithOrigin
Ctrl+Shift+D=_Subdiv_beta9
Ctrl+Shift+E=_sScale
Ctrl+Shift+G=_sBridge
Ctrl+Shift+Q=script: moi.view.resetCPlane();
Ctrl+Shift+S=saveas
Ctrl+Shift+T=_sSplit
Ctrl+Shift+V=PastePart
Ctrl+V=Paste
Ctrl+W=sweep
Ctrl+X=Cut
Ctrl+Y=script:moi.command.redo();
Ctrl+Z=script:moi.command.undo();
D=BooleanDifference
Delete=Delete
DownArrow=Nudge Down Small
E=scale
F=fillet
F1=script:moi.launchHelp();
F11=FullScreen.js
F2=script: moi.ui.createDialog('commandFiderSearchMenu.htm', '', moi.ui.mainWindow);
F3=script: var cb = moi.ui.getUIPanel('moi://ui/CommandBar.htm'); moi.ui.showMenu('ScriptsGallery.htm', cb.
…[Message Truncated]

View full message.

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Metin Seven (METINSEVEN)
8123.3 
Thanks Marco!

Very interesting to see this. Keyboard shortcuts reflect a lot of one's workflow.

I didn't know the Open Add new style dialog script yet. Going to use that too, thanks!

— Metin

———————

metinseven.com — 3D (print) models • animation • characters • icons • illustration • infographics • visualization

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  mkdm
8123.4 In reply to 8123.3 
You are welcome Metin!

- Marco (mkdm)
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Mindset (IGNITER)
8123.5 In reply to 8123.2 
Hello Marco (mdkm),
What does Alt+F9=ToggleTransparentDisplayAutoSel do?
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  mkdm
8123.6 In reply to 8123.5 
Hi Mindset,

I effect its name it's a little confusing.

Essentyally these scripts do these things :

1) ToggleTransparentDisplayAutoSel
Essentially this script toggles the DisplayMode of a (non hidden) GeomObject between two state : Normal or FaintWireframe.
If something is selected it works only on selected otherwise on all non hidden objects.
Now I have assigned it to F9 shortcut.

code:
/* Toggle Transparence Display Mode AutoSel*/
var gd = moi.geometryDatabase;
var objs = gd.getSelectedObjects();
if (objs.length == 0) {
	objs = gd.getObjects();
}

for ( var i = 0; i < objs.length; ++i ) {
	var obj = objs.item(i);
	if (!obj.hidden) {
		var dm = obj.displayMode;
		obj.displayMode = (dm == 1) ? 0 : 1;
	}
}


Here's a brief video of F9 (the last showed by the video is ResetTransparentDisplay Alt+F9)

http://take.ms/kUv0C

2) ResetTransparentDisplay
This script resets the DisplayMode to Normal state for ALL objects (included hidden ones).
Now I have assigned it to Alt+F9 shortcut.

code:
/* Reset Transparence Display Mode*/
var gd = moi.geometryDatabase;
var objs = gd.getObjects();
objs.setProperty("displayMode", 0);


So, I post here also my updated hotkeys.

Best,

- Marco (mkdm)

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Mindset (IGNITER)
8123.7 In reply to 8123.6 
THANK YOU Marco!
Wow, what a great community.
I appreciate you very much!
-- MindSet
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  mkdm
8123.8 In reply to 8123.7 
Hi Mindset,

You are welcome!

- Marco (mkdm)
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Marbleman
8123.9 
Hi All,

Here are my shortcuts.....

[Shortcut Keys]
A=script:moi.view.showHiddenLines =! moi.view.showHiddenLines;
Backspace=Delete
C=script:var gd = moi.geometryDatabase; var objs = gd.getSelectedObjects(); gd.deselectAll(); for ( var i = 0; i < objs.length; ++i ) { var children = objs.item(i).getHistoryChildren(); children.setProperty( 'selected', true ); }
Cmd+A=script:moi.geometryDatabase.selectAll();
Cmd+C=CopyClipboard
Cmd+N=New
Cmd+O=Open
Cmd+S=Save
Cmd+V=Paste
Cmd+X=Cut
Cmd+Z=script:moi.command.undo();
Ctrl+A=script:moi.geometryDatabase.selectAll();
Ctrl+C=CopyClipboard
Ctrl+N=New
Ctrl+O=Open
Ctrl+S=Save
Ctrl+Shift+C=CopyClipboardWithOrigin
Ctrl+Shift+V=PastePart
Ctrl+V=Paste
Ctrl+X=Cut
Ctrl+Y=script:moi.command.redo();
Ctrl+Z=script:moi.command.undo();
D=CloseCurve
Delete=Delete
DownArrow=Nudge Down
F1=script:moi.launchHelp();
H=Nudge zdown
LeftArrow=Nudge Left
M=CenterAtOrigin
N=script:var gd = moi.geometryDatabase; gd.deselectAll(); var breps = gd.getObjects().getBreps(); for ( var i = 0; i < breps.length; ++i ) breps.item(i).getNakedEdges().setProperty( 'selected', true );
P=script:var gd = moi.geometryDatabase; var objs = gd.getSelectedObjects(); gd.deselectAll(); for ( var i = 0; i < objs.length; ++i ) { var parents = objs.item(i).getHistoryParents(); parents.setProperty( 'selected', true ); }
Q=AssignName
R=ConstructionLine
RightArrow=Nudge Right
S=IncrementalSave
Shift+Cmd+C=CopyClipboardWithOrigin
Shift+Cmd+V=PastePart
Shift+Cmd+Z=script:moi.command.redo();
T=script: /* Toggle grid and axis lines*/moi.grid.display=!moi.grid.display; moi.grid.showXYAxes=moi.grid.display
UpArrow=Nudge Up
W=_Dimensions
Y=Nudge zup
Z=ReconstructCurve


Its always interesting to see how others work.....a bit like seeing a trip through someone elses camera!

James E
www.jameselliott.co.uk
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Metin Seven (METINSEVEN)
8123.10 
Thanks for sharing, James. The toggle grid display is an interesting one. I'm going to lend that from you, thanks.

— Metin

———————

metinseven.com — 3D (print) models • animation • characters • icons • illustration • infographics • visualization

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Marbleman
8123.11 In reply to 8123.10 
Hi Metin,

Glad to be of help........always interersting to discuss others workflows!

Something else that I have done that improves work flow dramatically is to move the input box from the bottom left bar to the top right hand corner...please see attached image!

James E
www.jameselliott.co.uk
Image Attachments:
Size: 522.5 KB, Downloaded: 61 times, Dimensions: 2880x1800px
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Metin Seven (METINSEVEN)
8123.12 In reply to 8123.11 
Interesting! Never thought of that possibility before.

— Metin

———————

metinseven.com — 3D (print) models • animation • characters • icons • illustration • infographics • visualization

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  shayno
8123.13 
HI there

there are a few double ups as I get sloppy sometimes so I apologise in advance.

There is a screen shot of my setup , I have merged construct and transform so I don't have to switch between
Most commands I have a key for also

cheers
shayne


[Shortcut Keys]
\[=ShowPoints
\]=AddPoint
A=Arc3pt
Alt+A=makethread
Alt+B=showpoints
Alt+C=ArrayCurve
Alt+D=script: /* Toggle redraw time display */ moi.ui.showViewportDisplayTime = !moi.ui.showViewportDisplayTime;
Alt+E=script: /* Extend selection to same names */ var names = new Array(); var objs = moi.geometryDatabase.getSelectedObjects(); for ( var i = 0; i < objs.length; ++i ) { var obj = objs.item(i); if ( obj.name != '' ) names[obj.name] = true; } objs = moi.geometryDatabase.getObjects(); for ( var i = 0; i < objs.length; ++i ) { var obj = objs.item(i); if ( obj.name != '' && names[obj.name] ) obj.selected = true; }; script: if (moi.geometryDatabase.getSelectedObjects().length> 0) { moi.geometryDatabase.invertSelection(); moi.geometryDatabase.hide( true );}
Alt+G=script: /* Toggle grid and axis lines */ moi.grid.display = !moi.grid.display; moi.grid.showXYAxes = moi.grid.display;
Alt+H=script:moi.geometryDatabase.invertSelection(); moi.geometryDatabase.hide(true);
Alt+L=script: /* Expand selection over same styles and loft */ var objects = moi.geometryDatabase.getObjects().getCurves(), points = moi.geometryDatabase.getObjects().getPoints(), styles = new Array(); for (var i = 0; i < points.length; i++) { objects.addObject(points.item(i))} for ( var i = 0; i < objects.length; ++i ) { var obj = objects.item(i); if ( obj.selected ) styles[obj.styleIndex] = true; } for ( var i = 0; i < objects.length; ++i ) { var obj = objects.item(i); if ( styles[obj.styleIndex] ) obj.selected = true; }; moi.command.execCommand( 'loft' );
Alt+M=MarkOpenCurveStart
Alt+N=script: /* Assign unique object name to selection */ var all_objects = moi.geometryDatabase.getObjects(); var used_names = new Array(); for ( var i = 0; i < all_objects.length; ++i ) { var obj = all_objects.item(i); if ( obj.name != '' ) { used_names[obj.name] = true; } } var counter = 1; var name; while ( 1 ) { var numtag = counter.toString(); while ( numtag.length < 4 ) { numtag = '0' + numtag; } name = 'object_' + numtag; if ( used_names[name] ) { ++counter; continue; } used_names[name] = true; break; } moi.geometryDatabase.getSelectedObjects().setProperty( 'name', name );
Alt+O=script: /* Extend selection to same names */ var names = new Array(); var objs = moi.geometryDatabase.getSelectedObjects(); for ( var i = 0; i < objs.length; ++i ) { var obj = objs.item(i); if ( obj.name != '' ) names[obj.name] = true; } objs = moi.geometryDatabase.getObjects(); for ( var i = 0; i < objs.length; ++i ) { var obj = objs.item(i); if ( obj.name != '' && names[obj.name] ) obj.selected = true; }
Alt+P=script: /* Custom screenshot */ var prev_background = moi.view.viewportBackgroundColor; moi.view.viewportBackgroundColor = 0xFFFFFF; moi.view.lineWidth = 3; moi.grid.display = false; moi.grid.showXYAxes = false; moi.view.showAxisIcon = false; moi.view.meshAngle = 3; moi.ui.getActiveViewport().renderToClipboard( 4000, 2500 ); moi.view.lineWidth = 1; moi.grid.displa6y = true; moi.grid.showXYAxes = true; moi.view.showAxisIcon = true; moi.view.meshAngle = 8; moi.view.viewportBackgroundColor = prev_background;
Alt+R=Reconstructcurve
Alt+S=IncrementalSave
Alt+T=script: /*! Custom screenshot */ var prev_background = moi.view.viewportBackgroundColor; moi.view.viewportBackgroundColor = 0xFFFFFF; moi.view.lineWidth = 3; moi.grid.display = false; moi.grid.showXYAxes = false; moi.view.showAxisIcon = false; moi.view.meshAngle = 3; moi.ui.getActiveViewport().renderToClipboard( 4200, 2970 ); moi.view.lineWidth = 1; moi.grid.display = true; moi.grid.showXYAxes = true; moi.view.showAxisIcon = true; moi.view.meshAngle = 8; moi.view.viewportBackgroundColor = prev_background;
Alt+V=script: /* Toggle thin anti-aliasing */ moi.view.useThinAntiAliasing = !moi.view.useThinAntiAliasing;
Alt+W=script: var obj = moi.geometryDatabase.getObjects().getBReps(); for ( var o = 0; o < obj.length; ++o ) { if ( obj.item(o).hidden ) { obj.item(o).hidden = false; obj.item(o).selected = true; }}
Alt+Y=AutoRotate2
B=script:moi.drawingAids.straightSnap = !moi.drawingAids.straightSnap;
C=Circle
Ctrl+A=script:moi.geometryDatabase.selectAll();
Ctrl+B=script: /*!Highlight naked edges */ var gd = moi.geometryDatabase; gd.deselectAll(); var breps = gd.getObjects().getBreps(); for ( var i = 0; i < breps.length; ++i ) breps.item(i).getNakedEdges().setProperty( 'selected', true );
Ctrl+C=CopyClipboard
Ctrl+D=script:moi.geometryDatabase.deselectAll();
Ctrl+E=script:/* Select edges v1.2 */ var gd = moi.geometryDatabase; function sl(o) { for ( var i = 0; i < o.length; ++i ) { o.Item(i).selected = 0; var e=o.Item(i).getEdges(); for ( var j = 0; j < e.length; ++j ) e.Item(j).selected = !e.Item(j).selected;}} gd.selectLoop(); var so = gd.getSelectedObjects(); var e = so.getEdges(); sl(so.getFaces()); sl(so.getSolids()); so.getBReps().setProperty('selected',0); e.setProperty('selected',1);
Ctrl+F=Flow
Ctrl+G=Arraygem
Ctrl+H=script:var gd = moi.geometryDatabase; gd.deselectAll(); gd.hide( true ); gd.invertSelection(); gd.hide( true );
Ctrl+I=import
Ctrl+J=Separate
Ctrl+K=script:var gd = moi.geometryDatabase; gd.removeObjects( gd.getObjects().getConstructionLines() );
Ctrl+L=script:var a = moi.command.lastCommandRevisionStart; var b = moi.command.lastCommandRevisionEnd; var objects = moi.geometryDatabase.getObjects(); for ( var i = 0; i < objects.length; ++i ) { var obj = objects.item(i); if ( obj.databaseRevision> a && obj.databaseRevision <= b ) obj.selected = true; }
Ctrl+M=merge
Ctrl+N=script: /* Edit object name */ var pp = moi.ui.propertiesPanel; if (pp.show && pp.numSelectedObjects> 0) { pp.editName(); }
Ctrl+O=Open
Ctrl+P=script:var img = moi.view.screenshot( 'viewpanel', false ); var filename = moi.geometryDatabase.currentFileName; if ( filename != '' ) { img.save( filename.substring(0,filename.length-3) + 'jpg' ); }
Ctrl+Q=ringcircle1
Ctrl+R=script:moi.view.resetAll();
Ctrl+S=saveas
Ctrl+Shift+C=CopyClipboardWithOrigin
Ctrl+Shift+D=script: /* Duplicate selected objects */ var gd = moi.geometryDatabase; var objs = gd.getSelectedObjects(); if ( objs.length != 0 ) gd.copyToClipboard( objs ); moi.command.execCommand( 'paste' );
Ctrl+Shift+V=PastePart
Ctrl+T=AutoRotate2
Ctrl+U=UnWrapCurve
Ctrl+V=Paste
Ctrl+W=_CVolume 10
Ctrl+X=Cut
Ctrl+Y=script:moi.command.redo();
Ctrl+Z=script:moi.command.undo();
D=Booleandifference
Delete=Delete
E=Extrude
F=Flow
F1=script:moi.launchHelp();
F10=script: /* Open Edit styles dialog */ var dialog = moi.ui.createDialog( 'EditStylesDialog.htm', 'resizeable,defaultWidth:380,defaultHeight:420', moi.ui.mainWindow ); dialog.window.doModal();
F11=script: /* Opens Lighting Options Dialog */ moi.ui.createDialog( 'moi://ui/LightingOptions.htm' );
F12=script:moi.ui.createDialog( 'moi://ui/ScriptPalette.htm' );
F2=script:/* Set perspective 3D view */ moi.ui.mainWindow.viewpanel.getViewport('3D').projection = 'Perspective'; moi.ui.mainWindow.viewpanel.mode = '3D';
F3=script: /* Set free rotation style */ moi.view.rotationStyle = 'Free';
F4=script: /* Set first person rotation style */ moi.view.rotationStyle = 'FirstPerson';
F5=script: /* switch selection from a face to its edges */ var gd = moi.geometryDatabase; var faces = gd.getSelectedObjects().getFaces(); gd.deselectAll(
…[Message Truncated]

View full message.

Image Attachments:
Size: 226.6 KB, Downloaded: 40 times, Dimensions: 900x494px
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  mkdm
8123.14 In reply to 8123.13 
Hi shayno,

and good morning.

> Shift+L=script:var a = moi.command.lastCommandRevisionStart; var b = moi.command.lastCommandRevisionEnd; var objects = moi.geometryDatabase.getObjects(); for ( var i = 0; i < objects.length; ++i ) { var obj = objects.item(i); if ( obj.databaseRevision> a && obj.databaseRevision <= b ) obj.selected = true; }

Very useful script which I didn't know.

I just included it into my current config, thanks.

Best,

- Marco (mkdm)
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
8123.15 In reply to 8123.14 
Hi Marco, there's also a newer wrapper for that: moi.geometryDatabase.selectLastCreated(); , it can also take an optional parameter for whether to deselect other objects or not, the default is false, not deselect existing selection.

But that script you mentioned does the same thing manually, find objects that were created by the last run command and select them.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  mkdm
8123.16 In reply to 8123.15 
Hi Michael,

and thanks for the tip.

I'm going to use it.

Have a nice day,

- Marco (mkdm)
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  mkdm
8123.17 In reply to 8123.15 
Hi Michael,

I'm noticing that geometryDatabase.selectLastCreated(); as well as its manual counterpart, is very "sensible" to some situations.
That is, it does not select anymore last created objects if some situation occurs.

For example :

1) If I move the last created object
2) If I delete any object other than last created one
3) If I make a point editing on any object other than last created one

I didn't test different cases but I want to ask you if this behavior it's normal, and if so, what is the inner mechanism that produces this behavior.

Thanks.

- Marco (mkdm)
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
8123.18 In reply to 8123.17 
Hi Marco, well all those things you are describing are running new commands, so the result of your action there will now be the object generated by the last command instead.

For #1 or #3, moving an object or an edit point using Transform > Move uses the Move command, or moving it by dragging uses the internal Drag command. #2 deleting an object runs the delete command.

Basically anything that modifies the geometry database will be done through a command so that command pre- and post-processing will run and do things like generate undo units for any objects that are being removed or replaced by new versions, and have any UI for the command cleared, etc... It is possible to modify the geometry database outside of the context of running in a command but none of the regular actions you do in MoI will do it that way because you won't get undo units for example and there would be various cleanup steps the script would have to do manually on its own. That's the whole reason there is such a thing as a command instead of everything just running direct script code all the time.

I have some ideas on maybe changing this in the future to try something like generate undo units for scripts that modify the geometry database without running in a command by clustering modifications that happened within some tight time frame of each other into an individual unit, but I'm not sure yet how reliable that will be. It's much simpler to have one "command" generate one undo unit.

Sorry maybe I'm not understanding what you are asking about though.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  mkdm
8123.19 In reply to 8123.18 
Hi Michael,

> Sorry maybe I'm not understanding what you are asking about though.

You've made it abundantly clear.

I'm a software developer so I fully understand your explanations :)

Best,

- Marco (mkdm)
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
8123.20 In reply to 8123.19 
Hi Marco, the part that's a bit tricky is that there are just a few things that run as a command by calling an internal C function in moi_lib.dll rather than executing a script in the commands folder. If I remember right this is limited to drag, edit frame transform, scale on unit system change, drag/drop of a file onto the window, undo and redo.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged
 

Reply to All Reply to All

 

 
Show messages:  1-20  21-35