FreeCAD Macro MultiCut e MoveUp18mm

Trovato nel forum il seguente codice:

This example creates a parametric fusion object and make the referenced object its children

    shape=[]
    for i in Gui.Selection.getSelection():
        if i.isDerivedFrom("Part::Feature"):
            shape.append(i)

    App.ActiveDocument.addObject("Part::MultiFuse","Union").Shapes=shape
    App.ActiveDocument.recompute()

If you want to do it a bit more low-level you can do it this way:

    sel = Gui.Selection.getSelection()
    newShape = sel[0].Shape
    for i in sel[1:]:
        newShape = newShape.fuse(i.Shape)

    newObject = App.ActiveDocument.addObject("Part::Feature","myObject")
    newObject.Shape = newShape
    App.ActiveDocument.recompute()

 

MultiCut.FCMacro

 

Effettua la sottrazione di molteplici forme dalla forma selezionata per prima

Ho adattato il codice e commentato App.ActiveDocument.recompute() perchè inchioda l’elaborazione.

    import FreeCAD
    import Part

    sel = Gui.Selection.getSelection()
    newShape = sel[0].Shape
    for i in sel[1:]:
        newShape = newShape.cut(i.Shape)
    
    newObject = App.ActiveDocument.addObject("Part::Cut","MultiCut")
    newObject.Shape = newShape
    # App.ActiveDocument.recompute()

Utilizzo: selezionare per primo l’oggetto a cui si vogliono sottrarre gli altri oggetti selezionati ed eseguire la macro

 

MoveUp18mm.FCMacro

 

Effettua la copia di tutti gli oggetti selezionati e sposta tutti gli oggetti copiati più in alto di 18 mm

    import FreeCAD
    import Draft
    selection = FreeCADGui.Selection.getSelection()

    selection = FreeCADGui.Selection.getSelection()
    for i in selection:
      try:
    		Draft.move([i],FreeCAD.Vector(0.0,0.0,18.0),copy=True)
      except:
        continue

Utilizzo: selezionare tutti gli oggetti che si vogliono copiare spostati più in alto di 18mm (spostamento di 18mm sull’asse Z) ed eseguire la macro

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...