[Résolu] Génerer des déclinaisons d’export STL par script

Forum destiné aux questions et discussions en français
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
Post Reply
mr_hackquarium
Posts: 6
Joined: Mon Sep 27, 2021 12:07 pm
Location: Guadeloupe

[Résolu] Génerer des déclinaisons d’export STL par script

Post by mr_hackquarium »

Bonjour,

j’ai réalisé un objet avec Part Design et les variables stockées dans Spreadsheet.

Je voudrais simplement réaliser des variations en modifiant 2 valeurs et en exportant les objets obtenus au format stl, sous la forme mon_fichier_var1<val var1>_var2<val var2>.stl
(je connais la programmation et python, mais n’ai jamais codé dans Freecad)

Merci de m’indiquer par quelle doc commencer (ou un tuto en relation avec mon besoin, si vous en connaissez un)

:-)
Last edited by mr_hackquarium on Thu Sep 30, 2021 11:20 pm, edited 1 time in total.
mr_hackquarium
Posts: 6
Joined: Mon Sep 27, 2021 12:07 pm
Location: Guadeloupe

Re: Génerer des déclinaisons d’export STL par script

Post by mr_hackquarium »

J’ai écrit une macro qui fonctionne, par contre je bloque encore sur 2 points :


1. Comment utiliser un float dans une cellule du tableur ? (j’ai l’erreur "<Exception> type must be int, not float")
ou bien, comment changer d’unité ? (je peux passer une valeur avec virgule en GUI, mais pas dans ma macro)

2. Les recompute() ou les modifs de la spreadsheet ne sont pas pris en compte, du coup, tous les objets exportés sont identiques !


Voilà ma macro :

Code: Select all

import FreeCAD
import PartDesign
import Spreadsheet
import PartDesignGui

glass_thickness_values = [3, 4, 5, 6, 7]
adjust = 0.5
top_water_space_values = [5, 10, 15, 20, 25, 30, 35, 40, 45, 50]

DOC = FreeCAD.ActiveDocument
SHEET = DOC.Spreadsheet

for gt in glass_thickness_values:
	#SHEET.B1 = gt + adjust
	SHEET.B1 = gt 
	for tws in top_water_space_values:
		SHEET.B8 = tws
		SHEET.recompute()
		DOC.recompute()
		stl_file_name = "micro_overflow_v1_glass{}_space{}.stl".format(gt, tws)
		DOC.Objects[28].Shape.exportStl(stl_file_name)
ligne avec erreur (float)

Code: Select all

SHEET.B1 = gt + adjust
ligne sans erreur (integer), mais qui ne me convient pas

Code: Select all

SHEET.B1 = gt
Merci

:-)
mr_hackquarium
Posts: 6
Joined: Mon Sep 27, 2021 12:07 pm
Location: Guadeloupe

Re: Génerer des déclinaisons d’export STL par script

Post by mr_hackquarium »

Sur les conseils de The Markster, j’ai utilisé la méthode set() pour changer les variables dans le Spreadsheet

Cette méthode attend un string (donc le float est passé) et est bien pris en compte par les appels à recompute()

La macro fait donc exactement ce que je voulais

Code: Select all

import FreeCAD
import PartDesign
import Spreadsheet
import PartDesignGui

glass_thickness_values = [3, 4, 5, 6, 7]
adjust = 0.5
top_water_space_values = [5, 10, 15, 20, 25, 30, 35, 40, 45, 50]

DOC = FreeCAD.ActiveDocument
SHEET = DOC.Spreadsheet

for gt in glass_thickness_values:
	SHEET.set("B1", str(gt + adjust))
	for tws in top_water_space_values:
		SHEET.set("B8", str(tws))
		SHEET.recompute()
		DOC.recompute()
		stl_file_name = "micro_overflow_v1_glass{}_space{}.stl".format(gt, tws)
		DOC.Objects[28].Shape.exportStl(stl_file_name)
\o/
User avatar
Vincent B
Veteran
Posts: 4713
Joined: Sun Apr 05, 2015 9:02 am
Location: La Rochelle, France

Re: [Résolu] Génerer des déclinaisons d’export STL par script

Post by Vincent B »

merci pour ton retour. étonnant qu'il faille passer via une fonction string. :roll:
User avatar
flachyjoe
Veteran
Posts: 1869
Joined: Sat Mar 31, 2012 12:00 pm
Location: Limoges, France

Re: [Résolu] Génerer des déclinaisons d’export STL par script

Post by flachyjoe »

GlouGlou wrote: Fri Oct 01, 2021 4:49 pm merci pour ton retour. étonnant qu'il faille passer via une fonction string. :roll:
C'est plus facile de passer par une chaîne de caractère que par App.Units.Quantity

L'accès de la forme

Code: Select all

SHEET.B1
semble être destiné au moteur d'expression. Le type de cette propriété change selon le contenu :
Capture d’écran_2021-10-01_19-10-38.png
Capture d’écran_2021-10-01_19-10-38.png (16.2 KiB) Viewed 1221 times
- Flachy Joe -
Image
Post Reply