Skip to content

Instantly share code, notes, and snippets.

@mattcox
mattcox / SurfaceForce.py
Last active Jun 16, 2021
This example plugin for modo 701, shows how to create a surface force in Python. The force will read a mesh, get the closest position on that mesh and find the normal at that position. A force will be created along the normal vector of the surface. The result is a force that pushes particles and dynamic objects away from the surface.
View SurfaceForce.py
#python
'''
Surface Force
This example plugin for modo 701, shows how to create a surface force in
Python. The force will read a mesh, get the closest position on that mesh
and find the normal at that position. A force will be created along the
normal vector of the surface. The result is a force that pushes particles
@mattcox
mattcox / pmodel_selectOdd.cpp
Last active Jun 6, 2021
Example of a simple selection operation for the Modo procedural modelling system that selects every other polygon. It demonstrates how to use thread slots, to allow selection to be evaluated from multiple threads
View pmodel_selectOdd.cpp
#include <lxsdk/lx_mesh.hpp>
#include <lxsdk/lx_pmodel.hpp>
#include <lxsdk/lx_seltypes.hpp>
#include <lxsdk/lx_thread.hpp>
#include <lxsdk/lxu_attributes.hpp>
#define SERVER_NAME "pmodel.selectEveryOther"
/*
* The Selection Operation is evaluated in parallel from multiple threads. As
View SetFolderImages.swift
import Cocoa
import Foundation
let pathToImage = "/some/path/to/an/image.png"
let pathToFolders = URL(fileURLWithPath: "/Some/Folder/Path/")
guard let image = NSImage(contentsOfFile: pathToImage) else {
fatalError("Unable to load image.")
}
@mattcox
mattcox / shapeDraw.py
Last active Apr 16, 2020
Python example demonstrating how to modify GL drawing of an item.
View shapeDraw.py
#python
'''
Shape Draw python example. This python plugins demonstrates how to create
a Package that can be added to existing items, that controls how they draw
in the GL viewport. We will simply draw a circle. A radius channel and an
sides channel will control how the circle is drawn.
To use, add the python script to an lxserv folder in your scripts directory.
Select an locator item and enter: item.addPackage shape.draw. To remove the
@mattcox
mattcox / meshDumpCurvesCommand.py
Created Nov 7, 2019
Demonstrates how to print vertex information for the points on an ILxCurve.
View meshDumpCurvesCommand.py
#python
import lx
import lxifc
import lxu.command
import modo
class Command(lxu.command.BasicCommand):
def __init__(self):
lxu.command.BasicCommand.__init__(self)
@mattcox
mattcox / getReferenceScenesAndItems.py
Created Jul 24, 2018
Collect reference items in the selected scene.
View getReferenceScenesAndItems.py
import lxu.select
class ReferencedItems:
def __init__(self, scene):
self.mScene = lx.object.Scene(scene)
self.mSceneFilename = self.mScene.Filename()
self.mItems = []
def AddItem(self, item):
print item
@mattcox
mattcox / SetCOM.cpp
Created Feb 15, 2019
Demonstrates how to implement a custom Polymorph object that implements the SetCOM method. When the COM object is allocated, the SetCOM method will be passed a copy of the object, which can be useful if the allocated object needs passing to additional methods from within the COM implementation. Note: As the COM object is maintaining a pointer to…
View SetCOM.cpp
class SomeInterface :
public CLxImpl_Foo
{
public:
class MyPolymorph :
public CLxPolymorph<SomeInterface>
{
public:
virtual void
SetCOM(
@mattcox
mattcox / kitDumpCommand.py
Created Feb 14, 2019
Demonstrates how to list the kits installed in Modo, and query the version numbers. This mostly is a wrapper for the kit.version command.
View kitDumpCommand.py
#python
'''
Demonstrates how to list the kits installed in Modo, and query the version
numbers. This mostly is a wrapper for the kit.version command.
'''
import lx
@mattcox
mattcox / printMeshTags.py
Last active Oct 4, 2018
This sample code demonstrates how to enumerate over all polygons on the active mesh layer, and print the material tag assigned to each polygon to the event log.
View printMeshTags.py
#python
'''
This sample code demonstrates how to enumerate over all polygons on the active
mesh layer, and print the material tag assigned to each polygon to the event
log.
'''
import lx
import lxu.command
@mattcox
mattcox / previewSocketExample.py
Created Aug 13, 2018
This sample script demonstrates the basics for connecting to the preview socket, setting the resolution, and the pixel format, and reading back a floating point buffer of the image.
View previewSocketExample.py
'''
This sample script demonstrates the basics for connecting to the preview
socket, setting the resolution, and the pixel format, and reading back a
floating point buffer of the image.
To test it, launch modo, and execute the command:
telnet.listen port:5678 raw:true
Then run the following in an external Python client.
'''