Créer une barre à partir d'une ligne

Forum destiné aux questions et discussions en français
Forum rules
Règles du forum et informations utiles.

VEUILLEZ LIRE CECI AVANT DE DEMANDER DE L'AIDE
User avatar
NormandC
Posts: 18534
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: Créer une barre à partir d'une ligne

Postby NormandC » Wed Oct 05, 2011 8:52 pm

En fait, j'ai l'impression que cette variable makeSolid existe déjà depuis quelque temps, elle est mentionnée dans la doc Part API (ou peut-être est-ce plutôt la TopoShape API. C'est simplement que je ne sais pas m'en servir.

Je ne suis donc pas certain de la nature du changement apporté au code. Les paquets du PPA Devel datent de déjà quelques semaines, c'est moi qui les copie manuellement de ceux du PPA Daily Builds. Ce dernier n'inclut pas encore la modif de Werner, il faudra attendre encore 7-8h environ car la construction des paquets ne se fait qu'aux 24 heures. Mais dès que ça sera complété, je peux copier les paquets dans le PPA Devel.

Tu vois, ton script je sais pas faire, je comprends toujours rien au Python :oops:, alors je pique des bouts de code ici et là.

Dans l'exemple de Werner qui se trouve dans la page du bogue sur Mantis, il utilise la commande makePipeShell. J'ai donc tenté d'utiliser la variable makeSolid avec la commande makePipe, mais ça ne semble pas vouloir marcher. Bref, il serait peut-être possible de générer des solides en modifiant ton script pour utiliser makePipeShell plutôt que makePipe. La différence entre les deux, c'est que makePipeShell créer des lissages et peut accepter plus d'une section, mais en utilisant qu'une alors ça donne le même résultat que makePipe.

Bonne soirée,

Normand
nicotuf
Posts: 14
Joined: Mon Jul 20, 2009 1:51 pm

Re: Créer une barre à partir d'une ligne

Postby nicotuf » Thu Oct 06, 2011 11:39 am

rockn wrote:
Un exmple où j'ai créer les barres avec ce script :
The attachment Batiment.FCStd.notreallyzipped.zip is no longer available
Bon, on se rend compte que ça génère des Part.ToPoShape, ce qui n'est pas un solide. Pourtant je pars d'une surface que j'extrude.

Bonjour,

Je me permet d'intervenir, j'ai ouvert ton fichier (capture ci-dessous) et pour moi tous les éléments créés sont des solides...(On obtient un volume et un centre de gravité, que demander de plus à un solide ?) Ou alors il y a une subtilité que je n'ai pas saisie, ce qui est tout à fait possible...


01.jpg
01.jpg (88.97 KiB) Viewed 1046 times
User avatar
rockn
Posts: 1600
Joined: Wed Sep 28, 2011 10:39 am
Location: Toulouse, France
Contact:

Re: Créer une barre à partir d'une ligne

Postby rockn » Thu Oct 06, 2011 2:09 pm

Ah oui, c'est cool alors.
Je disais ça car dans mon script
print type(beam)
donne
<type 'Part.TopoShape'>

et de plus par rapport à une Box (du module Part) on a pas la possibilité dans les données de modifié la section ni la longueur.

En tous cas merci encore pour les exemple de ligne de code pour obtenir des infos sur l'objet.
Formations et tutoriels FreeCAD en Français, soutenez moi : https://www.tipeee.com/formations-freecad
nicotuf
Posts: 14
Joined: Mon Jul 20, 2009 1:51 pm

Re: Créer une barre à partir d'une ligne

Postby nicotuf » Thu Oct 06, 2011 3:29 pm

rockn wrote: et de plus par rapport à une Box (du module Part) on a pas la possibilité dans les données de modifié la section ni la longueur.
Moi aussi au début j'ai eu du mal à comprendre la différence, mais quand on utilise les fonctions en ligne de commande pour créer des objets on ne crée pas d'objets paramétriques avec des données modifiables.

Par contre avec de tous petits script on peut créer des objets paramétrés : (exemple trouvé sur le site)

Code: Select all

class Line:
  def __init__(self, obj):
	"App two point properties" 
	obj.addProperty("App::PropertyVector","p1","Line","Start point")
	obj.addProperty("App::PropertyVector","p2","Line","End point").p2=FreeCAD.Vector(1,0,0)
	obj.Proxy = self

  def execute(self, fp):
	"Print a short message when doing a recomputation, this method is mandatory" 
	fp.Shape = Part.makeLine(fp.p1,fp.p2)

a=FreeCAD.ActiveDocument.addObject("Part::FeaturePython","Line")
Line(a)
a.ViewObject.Proxy=0 # just set it to something different from None (this assignment is needed to run an internal notification)
a+
User avatar
NormandC
Posts: 18534
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: Créer une barre à partir d'une ligne

Postby NormandC » Thu Oct 06, 2011 6:54 pm

Voir aussi cet exemple : viewtopic.php?f=3&t=1533#p10897