Skip to content

Instantly share code, notes, and snippets.

James O'Hare Farfarer

Block or report user

Report or block Farfarer

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@Farfarer
Farfarer / swizzleRGBA.py
Last active Jul 15, 2019
Command to swizzle RGBA vertex map components.
View swizzleRGBA.py
#!/usr/bin/env python
import lx
import lxifc
import lxu.command
class ListMaps (lxifc.Visitor):
def __init__ (self, meshmap):
self.meshmap = meshmap
self.mapIDs = []
@Farfarer
Farfarer / selectSymmetrical.py
Last active Feb 22, 2019
Selects elements that are symmetrical to the current selection.
View selectSymmetrical.py
#!/usr/bin/env python
import lx
import lxifc
import lxu.command
class GetSymmetricalVertex(lxifc.Visitor):
def __init__(self, accessor):
self.accessor = accessor
self.sym_ids = set()
@Farfarer
Farfarer / selectSchematicNodes.py
Created Nov 26, 2018
Selects the schematic nodes of the current item selection. Install to <scripts dir>/lxserv and run the command ffr.selectSchmNodes
View selectSchematicNodes.py
#!/usr/bin/env python
import lx
import lxu.select
import lxu.command
class SelectSchmNodes_Cmd(lxu.command.BasicCommand):
def __init__(self):
lxu.command.BasicCommand.__init__(self)
@Farfarer
Farfarer / resetMeshTransform.py
Created Aug 22, 2018
Stick this in `<user scripts folder>/lxserv` and restart Modo. You can run the command `ffr.resetMeshTransform` to reset the transforms for selected items and the normals/tangents should be transformed appropriately, too.
View resetMeshTransform.py
#!/usr/bin/env python
import lx
import lxu
import lxifc
import lxu.command
class ListVMaps(lxifc.Visitor):
def __init__(self, meshmap):
self.meshmap = meshmap
@Farfarer
Farfarer / selectGroundPolys.py
Last active Aug 23, 2018
Selects all polygons which face straight up and are at or below 0 in the Y axis.
View selectGroundPolys.py
#!/usr/bin/env python
import lx
import lxifc
import lxu.command
class SelectGround(lxifc.Visitor):
def __init__(self, poly, mesh):
self.poly = poly
self.mesh = mesh
@Farfarer
Farfarer / randomRGBA.py
Last active Aug 23, 2018
Sets the vertex colour of each mesh island to a random value.
View randomRGBA.py
#!/usr/bin/env python
import random
import lx
import lxifc
import lxu.command
class SetMarksVisitor (lxifc.Visitor):
def __init__ (self, elem, marks):
self.elem = elem
@Farfarer
Farfarer / listTextureEffects.py
Last active Jun 13, 2018
List avaialble texture effects (internal names and user-friendly names) in Modo.
View listTextureEffects.py
def ListTextureEffects(category=lx.symbol.sSHADE_SURFACE):
internal = []
user = []
host_svc = lx.service.Host()
msg_svc = lx.service.Message ()
msg = lx.object.Message (msg_svc.Allocate ())
for i in xrange(host_svc.NumServers(lx.symbol.a_TEXTUREEFFECT)):
@Farfarer
Farfarer / quantize.py
Last active Mar 12, 2019
Wrapper command for vertMap.quantize so you can type in the number of divisions, rather than calculate them manually.
View quantize.py
#!/usr/bin/env python
import lx
import lxu.command
class Quantize_Cmd(lxu.command.BasicCommand):
def __init__(self):
lxu.command.BasicCommand.__init__(self)
self.dyna_Add ('steps', lx.symbol.sTYPE_INTEGER)
@Farfarer
Farfarer / islandCount.py
Created Jan 2, 2018
Command to tell you the number of polygon islands in the active mesh(es). Queryable in script via islandCount = lx.eval1('ffr.islandCount ?')
View islandCount.py
#!/usr/bin/env python
import lx
import lxu.command
import lxifc
class SetMarks (lxifc.Visitor):
def __init__ (self, acc, mark):
self.acc = acc
self.mark = mark
@Farfarer
Farfarer / selectByColor.py
Created Oct 30, 2017
Select vertices by vertex color.
View selectByColor.py
#!/usr/bin/env python
import lx
import lxifc
import lxu.command
class SelectByColor_Vis(lxifc.Visitor):
def __init__(self, mesh, point, vmapID, rgb, selMode, sel_svc, vtx_pkt_trans, sel_type_vert):
self.mesh = mesh
self.point = point
You can’t perform that action at this time.