Extrait de code Mari
Documentation de l’API Python de Mari
La documentation de l’API Python de Mari est dans Help/SDK/Python/Documentation.
Le haut de la documentation de chaque classe est composé de :
- La hiérarchie de la classe.
- Une courte description de ce qu’elle est supposée faire.
- Parfois, un exemple de code.
La hiérarchie de classe permet de connaitre les fonctions héritées pouvant être utilisées, ne les oubliez pas !
Exemples Pythons
Il y a également des exemples de scripts dans Help/SDK/Python/Open Examples Folder.
Vous pouvez y jeter un coup d’œil une fois les concepts de base de Python dans Mari assimilés.
Geometry
Ils sont listés dans la palette Objects de l’interface de Mari.
mari.geo
est un objet de type GeoManager
. Il est souvent l’objet duquel on part pour obtenir d’autres informations.
import mari
# get object names
print mari.geo.names()
# get a GeoEntity object from its name
print mari.geo.get('my_geo')
# remove an object from its name
mari.geo.remove('my_geo')
# iterate over every objects in the scene
for geo in mari.geo.list():
print geo.name()
# get the currently selected GeoEntity object
print mari.geo.current()
# hide and show object
geo.hide()
print geo.isVisible() # return False
geo.show()
print geo.isVisible() # return False
# another way to show/hide object
geo.setVisibility(True)
# lock and unlock object
geo.lock()
print geo.isLocked() # return True
geo.unlock()
print geo.isLocked() # return False
# another way to lock/unlock object
geo.setLocked(True)
Générer de la subdivision de surface
import mari
# get the currently selected geo
geo = mari.geo.current()
# apply subdivision (note that "Level" to 3 mean three subdivision levels: 0, 1 and 2)
geo.generateSubdivision({"Level":3,
"Scheme":"Catmull Clark",
"Force":True,
"Boundary Interpolation":"Edge And Corner"});
# change subdivision level
geo.setSubdivisionLevel(1)
print geo.maximumSubdivisionLevel() # should return 2
Metadata
Les objets Python de type mari.Metadata
. La plupart des objets Python de Mari supportent les métadonnées ; Layer
, Camera
, GeoEntity
, etc. Voir la section Subclasses dans la hiérarchie de ces classes pour les lister.
import mari
# get the currently selected geo
geo = mari.geo.current()
# iterate over metadatas
for name in geo.metadataNames():
print "Name:", name
print "Value:", geo.metadata(name)
print "Default Value:", geo.metadataDefault(name)
print "Description:", geo.metadataDescription(name)
print "Display Name:", geo.metadataDisplayName(name)
Autres codes
D’autres codes sont disponibles ici.
Dernière mise à jour : mar. 02 juin 2020