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 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