Description
Place les annotations dans leur calque dédié.
Ce script est encore expérimental et doit continuer d'être testé et mis à jour.
Le script suivant fonctionne sur :
- Rhino pour Windows ;
- Rhino pour macOS.
Script par MLAV.LAND, sous licence GNU GPL 3.
Code
import rhinoscriptsyntax as rs
import scriptcontext as sc
def arrange_texts_in_layers(annotation_style_name, target_layer):
rs.EnableRedraw(False)
all_objs = rs.AllObjects()
if all_objs:
for obj in all_objs:
if rs.IsDimension(obj) or rs.IsLeader(obj) or rs.IsText(obj):
if rs.DimensionStyle(obj) == annotation_style_name:
rs.ObjectLayer(obj, target_layer)
idefs = sc.doc.InstanceDefinitions
for idef in idefs:
if idef.Name:
idef_objects = idef.GetObjects()
for obj in idef_objects:
if rs.IsDimension(obj) or rs.IsLeader(obj) or rs.IsText(obj):
if rs.DimensionStyle(obj) == annotation_style_name:
rs.ObjectLayer(obj.Id, target_layer)
rs.EnableRedraw(True)
if( __name__ == "__main__" ):
arrange_texts_in_layers("R-100", "00-2D::03-Dimensions::02-100eme")
arrange_texts_in_layers("R-50", "00-2D::03-Dimensions::03-50eme")
arrange_texts_in_layers("R-20", "00-2D::03-Dimensions::04-20eme")
arrange_texts_in_layers("R-Layout-Annotation", "00-2D::03-Dimensions::05-Layout")
print("All annotations have been placed in their relevant layer :)")