Share your MoI keyboard shortcuts
 1-14  15-34  35-54  55-72

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

Previous
Next
 From:  mkdm
8123.21 In reply to 8123.20 
Thanks a lot Michael for your technical info. Much appreciated!

- 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:  Metin Seven (METINSEVEN)
8123.22 In reply to 8123.13 
Thanks for sharing your keyboard shortcuts, Shayne! This thread offers an interesting peek into the workflow of different MoI users. I hope there's more to come.

Have a nice weekend y'all.

— 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:  ndrakey
8123.23 
Been experimenting with Hotkeys for a long time.
Im a Softimage XSI user and tried to transfer all of my Shortkeys from Softimage to Moi3D
Im still working on placing them for best hand convenience.

[Shortcut Keys]
,=Komma ist noch nicht belegt ----------------------------------------
-=Bindestrich ist noch nicht belegt -------------------------------merge verbindet kurven(braucht man das?------
.=script:moi.geometryDatabase.lock();
1=shrinktrimmedsrf
2=Image
3=$unicode$007300630072006900700074003A0020002F002A0020004300610063006800650020006C006500730020006F0062006A0065007400730020007300E9006C0065006300740069006F006E006E00E900730020002B0020007300740079006C00650020003D0020006300610063006800E90020002A002F00200076006100720020006700640020003D0020006D006F0069002E00670065006F006D006500740072007900440061007400610062006100730065003B00200076006100720020007300740079006C006500730020003D002000670064002E006700650074004F0062006A006500630074005300740079006C0065007300280029003B00200076006100720020007300690020003D0020002D0031003B00200066006F0072002000280020007600610072002000690020003D00200030003B002000690020003C0020007300740079006C00650073002E006C0065006E006700740068003B0020002B002B0069002000290020007B002000690066002000280020007300740079006C00650073002E006900740065006D002800690029002E006E0061006D0065002E00730065006100720063006800280020002F00680069006400640065006E002F00690020002900200021003D0020002D0031002000290020007300690020003D00200069003B0020007D002000690066002000280020007300690020003D003D0020002D0031002000290020007B00200076006100720020007300740079006C00650020003D002000670064002E006100640064005300740079006C006500280029003B0020007300740079006C0065002E006E0061006D00650020003D0020002700480069006400640065006E0027003B0020007300690020003D0020007300740079006C0065002E0069006E006400650078003B0020007D00200076006100720020006F0062006A00650063007400730020003D002000670064002E00670065007400530065006C00650063007400650064004F0062006A006500630074007300280029003B0020006F0062006A0065006300740073002E00730065007400500072006F00700065007200740079002800200027007300740079006C00650049006E0064006500780027002C00200073006900200029003B0020006F0062006A0065006300740073002E00730065007400500072006F0070006500720074007900280020002700680069006400640065006E0027002C0020007400720075006500200029003B
4=script:/* repasse en Vue Perspective*/var vp = moi.ui.mainWindow.viewpanel.getViewport('3D'); vp.projection = 'Perspective';
5=$unicode$007300630072006900700074003A002F002A0020007600750065002000440069006D00E90074007200690071007500650020002A002F0076006100720020007600700020003D0020006D006F0069002E00750069002E006D00610069006E00570069006E0064006F0077002E007600690065007700700061006E0065006C002E00670065007400560069006500770070006F00720074002800270033004400270029003B002000760070002E00700072006F006A0065006300740069006F006E0020003D002000270050006100720061006C006C0065006C0027003B0020007600610072002000610073003100330020003D0020004D006100740068002E006100730069006E00280031002F00330029003B002000760070002E0073006500740041006E0067006C0065007300280020003900300020002D00200028004D006100740068002E006100730069006E0028004D006100740068002E00740061006E00280061007300310033002900290020002A0020003100380030002F004D006100740068002E005000490029002C002000610073003100330020002A0020003100380030002F004D006100740068002E0050004900200029003B
6=$unicode$007300630072006900700074003A002F002A0020005600750065002000490073006F006D00E9007400720069007100750065002A002F0076006100720020007600700020003D0020006D006F0069002E00750069002E006D00610069006E00570069006E0064006F0077002E007600690065007700700061006E0065006C002E00670065007400560069006500770070006F00720074002800270033004400270029003B002000760070002E00700072006F006A0065006300740069006F006E0020003D002000270050006100720061006C006C0065006C0027003B002000760070002E0073006500740041006E0067006C0065007300280020003900300020002D00200028004D006100740068002E006100730069006E0028004D006100740068002E00740061006E0028003300300020002A0020004D006100740068002E00500049002F003100380030002900290020002A0020003100380030002F004D006100740068002E005000490029002C00200034003500200029003B
7=_cMorph
8=Align VerticalCenter
9=Align HorizontalCenter
Alt+1=DelCorners
Alt+2=AddPoint
Alt+B=PlanarSrf
Alt+E=Rectangle
Alt+G=script:moi.drawingAids.gridSnap = !moi.drawingAids.gridSnap;
Alt+H=script: /*! Show subset of hidden objects --- Ctrl+Space*/ moi.geometryDatabase.showSubset();
Alt+I=$unicode$007300630072006900700074003A0020002F002A0020004D006F006E0074007200650020004300F4007400E9007300200069006E0063006F006D0070006C0065007400730020002A002F00200076006100720020006700640020003D0020006D006F0069002E00670065006F006D006500740072007900440061007400610062006100730065003B002000670064002E0064006500730065006C0065006300740041006C006C00280029003B00200076006100720020006200720065007000730020003D00670064002E006700650074004F0062006A006500630074007300280029002E0067006500740042007200650070007300280029003B00200066006F0072002000280020007600610072002000690020003D00200030003B002000690020003C002000620072006500700073002E006C0065006E006700740068003B0020002B002B006900200029002000620072006500700073002E006900740065006D002800690029002E006700650074004E0061006B006500640045006400670065007300280029002E00730065007400500072006F0070006500720074007900280020002700730065006C006500630074006500640027002C0020007400720075006500200029003B
Alt+K=script: /* Hide seam edges */ var breps = moi.geometryDatabase.getObjects().getBReps(); for ( var i = 0; i < breps.length; ++i ) breps.item(i).getSeamEdges().setProperty( 'hidden', false );
Alt+O=Ist noch nicht belefgt-------------------------------------------------------
Alt+P=Ist noch nicht belegt -------------------------------------------------------
Alt+T=Text
Alt+X=script:moi.view.useThinAntiAliasing = !moi.view.useThinAntiAliasing;
B=$unicode$007300630072006900700074003A0020002F002A0020007300E9006C0065006300740069006F006E0020006400650020006C006100200070006C007500730020006C006F006E00670075006500200063006F00750072006200650020002A002F002000760061007200200063007500720076006500730020003D0020006D006F0069002E00670065006F006D006500740072007900440061007400610062006100730065002E006700650074004F0062006A006500630074007300280029002E00670065007400430075007200760065007300280029003B00200076006100720020006D00610078006C0065006E0020003D0020002D0031003B00200076006100720020006D006100780063007200760020003D0020006E0075006C006C003B00200066006F0072002000280020007600610072002000690020003D00200030003B002000690020003C0020006300750072007600650073002E006C0065006E006700740068003B0020002B002B0069002000290020007B002000760061007200200063007200760020003D0020006300750072007600650073002E006900740065006D002800690029003B002000690066002000280020006300720076002E00680069006400640065006E0020007C007C0020006300720076002E006C006F0063006B00650064002000290020007B00200063006F006E00740069006E00750065003B0020007D002000760061007200200074006800690073006C0065006E0020003D0020006300720076002E006700650074004C0065006E00670074006800280029003B0020006900660020002800200074006800690073006C0065006E003E0020006D00610078006C0065006E002000290020007B0020006D00610078006C0065006E0020003D00200074006800690073006C0065006E003B0020006D006100780063007200760020003D0020006300720076003B0020007D0020007D002000690066002000280020006D0061007800630072007600200021003D0020006E0075006C006C002000290020006D00610078006300720076002E00730065006C006500630074006500640020003D00200074007200750065003B
Backspace=Backspace Ist noch nicht belegt--------------------------------
C=Rotate
Ctrl+1=BooleanUnion
Ctrl+2=BooleanDifference
Ctrl+3=BooleanMerge
Ctrl+4=BooleanIntersection
Ctrl+6=script: /* Opens Lighting Options Dialog */ moi.ui.createDialog( 'moi://ui/LightingOptions.htm' );
Ctrl+A=script:moi.geometryDatabase.selectAll();
Ctrl+Alt+5=Mirror
Ctrl+Alt+7=/* zuletzt erstellte objekte auswaehlen */ 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+Alt+8=script: /* switch selection from selected faces to edges on those faces adjacent to unselected faces */ var gd = moi.geometryDatabase; var seledges = moi.geometryDatabase.createObjectList(); var faces = gd.getSelectedObjects().getFaces(); for ( var i = 0; i < faces.length; ++i ) { var edges = faces.item(i).getEdges(); for ( var j = 0; j < edges.length; ++j ) { var edge = edges.item(j); var allselected = true; var facesofedge = edge.getFacesOfEdge(); for ( var k = 0; k < facesofedge.length; ++k ) { if ( !facesofedge.item(k).selected ) { allselected = false; } } if ( !allselected || facesofedge.length == 1 ) { seledges.addObject( edge ); } } } gd.deselectAll(); seledges.setProperty( 'selected', true );
Ctrl+Alt+9=script:var gd = moi.geometryDatabase; var faces = gd.getSelectedObjects().getFaces(); gd.deselectAll(); for ( var i = 0; i < faces.length; ++i ) faces.item(i).getEdges().setProperty( 'selected', true );
Ctrl+Alt+E=boxcenter
Ctrl+Alt+F=Fullscreen
Ctrl+Alt+G=script:moi.drawingAids.straightSnap = !moi.drawingAids.straightSnap;
Ctrl+Alt+H=Separate
Ctrl+Alt+Q=script: /*! Show/Hide edges --- H*/ 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 ); }
Ctrl+Alt+R=Sphere
Ctrl+Alt+T=Cylinder
Ctrl+Alt+W=moi.geometryDatabase.isolate();
Ctrl+B=ConvertFaceToCurve
Ctrl+C=rotateAxis
Ctrl+D=ArrayCircular
Ctrl+DownArrow=Nudge ZDown
Ctrl+E=box
Ctrl+G=script:moi.view.resetCPlane();
Ctrl+I=_importObj
Ctrl+N=New
Ctrl+O=Open
Ctrl+R=/* Alle Kurven auswaehlen */ script:moi.geometryDatabase.getObjects().getCurves().setProperty( 'selected', true );
Ctrl+S=IncrementalSave
Ctrl+Shift+1=Polyline
Ctrl+Shift+2=Arc3pt
Ctrl+Shift+3=noch nicht belegt... hier war trim----------------------------------------------------------------------------
Ctrl+Shift+4=Sketchcurve
Ctrl+Shift+A=script:moi.geometryDatabase.deselectAll();
Ctrl+Shift+Alt+A=Shell
Ctrl+Shift+Alt+E=RectCenter
Ctrl+Shift+Alt+G=script:var x = moi.drawingAids.straightSnap; moi.drawingAids.straightSnap = !x; moi.drawingAids.objectSnap = x;
Ctrl+Shift+Alt+Q=script:moi.view.showHiddenLines =! moi.view.showHiddenLines;
Ctrl+Shift+Alt+R=Circle
Ctrl+Shift+C=CopyClipboardWithOrigin
Ctrl+Shift+G=script:moi.drawingAids.objectSnap = !moi.drawingAids.objectSnap;
Ctrl+Shift+H=script:moi.geometryDatabase.getObjects().getBReps().setProperty( 'hidden', true );
Ctrl+Shift+V=PastePart
Ctrl+Space=noch nicht belegt -------------------------------------------------------------
Ctrl+T=/* Kurven auswaehlen die offen sind */script:var curves = moi.geometryDatabase.getObjects().getCurves(); for ( var i = 0; i < curves.length; ++i ) if ( !curves.item(i).isClosed ) curves.item(i).selected = true;
Ctrl+UpArrow=Nudge zUp
Ctrl+V=Paste
Ctrl+X=Scale1D
Ctrl+Y=script:moi.command.redo();
Ctrl+Z=script:moi.command.undo();
D=ArrayGem
Delete=Delete
DownArrow=Nudge Down
E=ist noch nicht belegt
F=script:moi.ui.getActiveViewport().reset();
F1=script:moi.launchHelp();
F10=moi.ui.mainWindow.viewpanel.mode = '3D';
F11=moi.ui.mainWindow.viewpanel.mode = 'Split';
F12=script: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 } }
F2=script: /* Set lighting options for Showroom Shine */ var v = moi.view; v.lightingStyle = 'LessFill'; v.specularHighlights = true; v.specularBrightness = 0.3; v.specularFocusSize = 1.0; v.metallicLighting = true; v.fixedLightPositions = true; v.customKeyLightLevel = 0.0; v.customFillLightLevel = 0.0;
F3=script: /* Set lighting options for Wax */ var v = moi.view; v.lightingStyle = 'CustomLevels'; v.specularHighlights = true; v.specularBrightness = 0.9; v.specularFocusSize = 1.5; v.metallicLighting = false; v.fixedLightPositions = true; v.customKeyLightLevel = 0.08; v.customFillLightLevel = 0.982;
F4=script: /* Set lighting options for Wetsuit */ var v = moi.view; v.lightingStyle = 'Hemispheric'; v.specularHighlights = true; v.specularBrightness = 0.19; v.specularFocusSize = 1.5; v.metallicLighting = false; v.fixedLightPositions = true; v.customKeyLightLevel = 0.0; v.customFillLightLevel = 0.0;
F5=script: /* Set lighting options for Enamel */ var v = moi.view; v.lightingStyle = 'CustomLevels'; v.specularHighlights = true; v.specularBrightness = 0.37; v.specularFocusSize = 0.89; v.metallicLighting = false; v.fixedLightPositions = false; v.customKeyLightLevel = 1.0; v.customFillLightLevel = 0.14;
F6=script: /* Set lighting options for Clear Coat */ var v = moi.view; v.lightingStyle = 'CustomLevels'; v.specularHighlights = true; v.specularBrightness = 0.17; v.specularFocusSize = 1.0; v.metallicLighting = false; v.fixedLightPositions = true; v.customKeyLightLevel = -1.0; v.customFillLightLevel = 2.0;
F7=moi.ui.mainWindow.viewpanel.mode = 'top'
F8=moi.ui.mainWindow.viewpanel.mode = 'Right';
F9=moi.ui.mainWindow.viewpanel.mode = 'Front';
G=script:moi.grid.display = !moi.grid.display; moi.grid.showXYAxes = moi.grid.display;
H=script:moi.geometryDatabase.hide();
I=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 );
J=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; }
K=script: /* Hide seam edges */ var breps = moi.geometryDatabase.getObjects().getBReps(); for ( var i = 0; i < breps.length; ++i ) breps.item(i).getSeamEdges().setProperty( 'hidden', true );
L=script:var dir = moi.view.lightDirection; if ( dir.x == 1 && dir.y == 1 && dir.z == -1 ) { dir.set(-0.5,1,0); } else { dir.set(1,1,-1); } moi.view.lightDirection = dir;
LeftArrow=Nudge Left
P=project
Q=script:moi.ui.getActiveViewport().interactiveViewChange('zoomarea');
RightArrow=Nudge Right
Shift+1=join
Shift+2=Merge
Shift+3=Blend
Shift+4=Loft
Shift+5=/*Loop selection*/script:moi.geometryDatabase.selectLoop();
Shift+6=/*! Select edge loop --- L*/ 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);
Shift+7=ExplodeMove
Shift+A=script: 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());
Shift+Alt+A=Offset
Shift+Alt+B=Trim
Shift+Alt+C=CopyClipboard
Shift+A
…[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:  mkdm
8123.24 In reply to 8123.23 
Hi ndrakey,

And thanks for sharing.

Just some questions...

Your config appears a little bit messy.
What are these long $unicode characters sequences ?
Maybe something went wrong with copy/paste ?

Very interesting the shortcut "K=script: /* Hide seam edges *". In which situations do you use it ?

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:  ndrakey
8123.25 In reply to 8123.24 
I couldnt post the my whole config due to the character limitation.
the Hide Seam function was added before i knew there was a script that could toggle between edge visibility:

script: /*! Show/Hide edges --- H*/ 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 ); }

I dont use the hide seam function as the script does almost the same.
Think I should throw this one out but it`s hard for me to let things go :))
  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.26 In reply to 8123.24 
Hi Marco, re: $unicode entries - those will happen if the shortcut key contains any non-ascii characters in it, this is kind of a holdover from supporting having the .ini file as an ascii file rather than as a unicode encoded text file, which is what Windows just decides to create when you use Windows API functions to generate the file. I'm not using those APIs anymore in MoI v4 so I could change this more easily in v4 to write real unicode characters in there, but it doesn't really come up very often.

- Michael

EDITED: 14 Oct 2016 by MICHAEL GIBSON

  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.27 In reply to 8123.26 
Hi Michael,

Yes, this is the "longstanding problem" of unicode in INI files.

But in general I think that it's not a good idea the attempt of incorporating non ascii data in INI file.
INI files are evergreen plain ascii and they should stay this way. :)

- 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:  Metin Seven (METINSEVEN)
8123.28 
Because my head was spinning of all the keyboard shortcuts I have to remember between Blender, ZBrush and MoI, I decided to reduce my Moi.ini keyboard shortcuts to mainly the scripts and commands that are not part of the standard MoI interface. This makes it a lot easier to assign and remember keyboard shortcuts. The other commands I simply activate in the UI using my tablet pen, as the MoI interface is very convenient for that workflow.

Here we go again:

[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 );
B=BoundingBoxCenter
Backspace=Delete
C=moi.geometryDatabase.selectLastCreated();
Cmd+A=script:moi.geometryDatabase.selectAll();
Cmd+C=CopyClipboard
Cmd+I=script: /* Invert selection */ moi.geometryDatabase.invertSelection();
Cmd+N=New
Cmd+O=Open
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=script:moi.geometryDatabase.selectAll();
Ctrl+C=CopyClipboard
Ctrl+N=New
Ctrl+O=Open
Ctrl+S=Save
Ctrl+Shift+C=CopyClipboardWithOrigin
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=DelCorners
Delete=Delete
DownArrow=Nudge Down
E=script: /*Edge loop selection*/ moi.geometryDatabase.selectLoop();
F=FatLines
F1=script:moi.launchHelp();
G=script: /* Toggle grid and axis lines */ moi.grid.display=!moi.grid.display; moi.grid.showXYAxes=moi.grid.display
H=script: /* Hide selection */ moi.geometryDatabase.hide();
I=ScaleIndividual
L=script: /* Lock selection toggle */ moi.geometryDatabase.lock();
LeftArrow=Nudge Left
M=ExplodeMove
N=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 );
P=script: /* Copy PDF format to clipboard */ moi.geometryDatabase.copyToClipboardPDF();
PageDown=Nudge ZDown
PageUp=Nudge ZUp
R=Rebuild
RightArrow=Nudge Right
S=script: /* Open Add New Style dialog */ 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();
Shift+Cmd+C=CopyClipboardWithOrigin
Shift+Cmd+S=SaveAs
Shift+Cmd+V=PastePart
Shift+Cmd+Z=script:moi.command.redo();
Shift+D=DistortCurves
Shift+DownArrow=Nudge Down Small
Shift+E=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+H=script: /* Select objects to unhide */ moi.geometryDatabase.showSubset();
Shift+LeftArrow=Nudge Left Small
Shift+PageDown=Nudge ZDown Small
Shift+PageUp=Nudge ZUp Small
Shift+R=Randomize
Shift+RightArrow=Nudge Right Small
Shift+UpArrow=Nudge Up Small
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 } }
U=UnwrapCurve
UpArrow=Nudge Up
W=script: /* Toggle unselected objects to wireframe */ var breps = moi.geometryDatabase.getObjects().getBreps(); var didone = false; for ( var i = 0; i < breps.length; ++i ) { var brep = breps.item(i); if ( brep.hidden ) continue; if ( !brep.selected ) { var faces = brep.getFaces(); for ( var j = 0; j < faces.length; ++j ) { if ( !faces.item(j).hidden ) { faces.setProperty( 'hidden', true ); didone = true; break; } } } } if ( !didone ) { for ( var i = 0; i < breps.length; ++i ) { var brep = breps.item(i); if ( brep.hidden ) continue; brep.getFaces().setProperty( 'hidden', false ); } } moi.view.resetAll(); moi.ui.redrawViewports();
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 );
  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.29 In reply to 8123.28 
Hi Metin,

Thanks for sharing your Shortcuts!

See you.

- 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:  Metin Seven (METINSEVEN)
8123.30 In reply to 8123.29 
My pleasure, Marco, and thank you too!

— 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.31 In reply to 8123.30 
Hello Metin,

Just a side note....

I've seen your "Greenhouse effect" illustration on your web site.

Aaaahhhhhhhhh LOL :) :)

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:  Frenchy Pilou (PILOU)
8123.32 
@Metin
Your 3D Voxels images are very pleasant! :)
Did you use Qubicle, MagicaVoxel.. ?
---
Pilou
Is beautiful that please without concept!
My Gallery
  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.33 
Thank you very much, Marco and Pilou, much appreciated!

Pilou, I started the voxel work around 2004 in 3ds Max, extruding quad polygons by fixed amounts, using the grid. As far as I know there were no dedicated voxel editors available in those days.

The first voxel editor I found was Paint3D for Windows. I used that for a number of years, and also helped develop it with feature suggestions and testing. But the programmer has discontinued development by now.

When I moved over to the Mac, I started using Cubicle and MagicaVoxel. Both have their strengths and weaknesses. There's also a third option, VoxelShop, but that's using a Java environment. I prefer native applications if possible. I'm really looking forward to the native Mac version of MoI V4 for that matter.

All the best,

— 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:  Frenchy Pilou (PILOU)
8123.34 In reply to 8123.33 
<< As far as I know there were no dedicated voxel editors available in those days.
Seems 3D Coat has some voxels functions! ;)
---
Pilou
Is beautiful that please without concept!
My Gallery
  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-14  15-34  35-54  55-72