Là je sais pas faire, a tu un exemple.ce que je veux dire c'est juste tout mettre dans un conteneur unique
mario
Difficultes pour modifier la macro airfoil import vers freecad 0.17
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
Be nice to others! Read the FreeCAD code of conduct!
Re: Difficultes pour modifier la macro airfoil import vers freecad 0.17
Re: Difficultes pour modifier la macro airfoil import vers freecad 0.17
Bonsoir
J'ai intégré deux DatumPlane pour y accrocher les Sketchs pour le passages des longerons et clefs d'aile.
La macro
J'ai intégré deux DatumPlane pour y accrocher les Sketchs pour le passages des longerons et clefs d'aile.
Là je sais pas faire, a tu un exemple.ce que je veux dire c'est juste tout mettre dans un conteneur unique
mario
La macro
-
- Posts: 26
- Joined: Fri Jan 09, 2015 8:31 pm
- Location: France
Re: Difficultes pour modifier la macro airfoil import vers freecad 0.17
Bonsoir,
J'ai une erreur en mode BSpline, en prenant le même fichier .dat pour emplanture et saumon:
Et en mode DWire le DatumPlane renvoie également l'erreur suivante:
Je n'ai pas plus cherché que ça à déboguer.
Avec le même objectif que le site que je vois en référence dans la macro https://aero-modelisme.com/conception-a ... n-gratuit/, c'est à dire produire un plan des sections pour en faire la découpe laser, j'avais commencé il y a quelque temps un module pour la création d'une aile. L'objectif était d'automatiser, comme les macros proposées, et de faciliter la modification en créant un objet aile. Je repris du code de la macro airfoil import et d'autres macros pour aller chercher le fichier de profil.
Module Aile "Aile_module2.py"
La macro pour lancer la création d'une aile:
Ensuite pour créer les nervures, le module "Nervures.py":
Et la macro pour créer les nervures, ça mouline un peu chez moi:
Pas mal de compléments et d'améliorations possibles, je m'étais arrêté là car un autre membre du club dessinait sur Solidworks le plan d'un projet de planeur. Mais là on va recevoir une découpeuse laser, faudrait que je continue ce module!
Dans le désordre:
1) rajouter le profil de saumon à l'objet aile
2) corriger un bug de la fenêtre de récupération du profil, la boite de dialogue apparait en arrière plan
3) ajouter le mode BSpline
4) ajouter un offset de la première nervure
5) calcul automatique du nombre de nervures en fonction du pas (j'ai supposé qu'on choisit plutôt le pas pour faciliter le construction)
6) créer la mise à jour de l'objet "nervures" en cas de modif
7) ajouter le pas en propriété modifiable de l'objet "nervures"
8) ajouter la vrillage dans les propriétés de l'aile
9) créer l'atelier du module aile avec le bouton de création d'aile, de création des nervures à partir de l'aile sélectionner
10) nettoyer, optimiser le code
11) gérer les erreurs utilisateur
12) mettre ça sur github
13) calcul de la normale des sections à partir du dièdre paramétré
14) améliorer la création automatique du plan avec les sections
15) la propal de mario52, intégrer les fichiers .dat au conteneur du fichier freecad .fcstd. Je n'ai aucune idée de comment faire. Mais j'irais chercher dans le code source qui intègre les planches ou spreadsheets dans le conteneur.
16) ...
Je ne suis pas du tout un pro de la programmation, et plutôt débutant en python!
Ah oui, et ma raison d'écrire: partager nos idées pour améliorer nos outils respectifs de création d'aile paramétrée!
Je pense notamment à préciser le besoin. La création de plans pour la fabrication, et/ou la modélisation réaliste d'un aéromodèle en 3D. Je pense par exemple que les baguettes ou clés d'aile ne doivent pas être un sketch extrudé, sauf si cela correspond à une forme réelle et complexe, mais plutôt de créer des solides simples et faire la soustraction à l'aile pleine et ensuite créer les sections des nervures.
J'ai une erreur en mode BSpline, en prenant le même fichier .dat pour emplanture et saumon:
Code: Select all
Draft.makeBSpline: Equal endpoints forced Closed
Found several edges: wiring them
Found 1 open wire: closing it
Draft.makeBSpline: Equal endpoints forced Closed
Found several edges: wiring them
Found 1 open wire: closing it
Error, not a valid .dat file
Code: Select all
PositionBySupport: TopoDS::Face
PartDesign::Plane: Links go out of the allowed scope
Exception (Tue Mar 13 22:25:39 2018): TopoDS::Face
PositionBySupport: TopoDS::Face
PositionBySupport: TopoDS::Face
PositionBySupport: TopoDS::Face
PartDesign::Plane: Links go out of the allowed scope
Exception (Tue Mar 13 22:25:39 2018): TopoDS::Face
Avec le même objectif que le site que je vois en référence dans la macro https://aero-modelisme.com/conception-a ... n-gratuit/, c'est à dire produire un plan des sections pour en faire la découpe laser, j'avais commencé il y a quelque temps un module pour la création d'une aile. L'objectif était d'automatiser, comme les macros proposées, et de faciliter la modification en créant un objet aile. Je repris du code de la macro airfoil import et d'autres macros pour aller chercher le fichier de profil.
Module Aile "Aile_module2.py"
Code: Select all
import os, re
from PySide import QtCore, QtGui
import FreeCAD, FreeCADGui, Part, Draft
from pivy import coin
ModeVerbose = True
if open.__module__ == '__builtin__':
pythonopen = open
def msgCsl(message):
if ModeVerbose:
FreeCAD.Console.PrintMessage(message) # +"\n")
def FileProfil():
# PySide returns a tuple (filename, filter) instead of just a string like in PyQt
FileProfil, filefilter = QtGui.QFileDialog.getOpenFileName(QtGui.qApp.activeWindow(),'Open An Airfoil File',FreeCAD.ConfigGet("UserHomePath"),'*.*')
# if ModeVerbose:
msgCsl(FileProfil)
return FileProfil
def NomFichier(filename):
NomFichier = os.path.basename(filename)
# _,NomFichier = os.path.split(filename)
msgCsl(NomFichier)
return NomFichier
def CheminFichier(filename):
CheminFichier = os.path.dirname(filename)
msgCsl(CheminFichier)
return CheminFichier
def getPoints(filename):
# Regex to identify data rows and throw away unused metadata
regex = re.compile(r'^\s*(?P<xval>(\-|\d*)\.\d+(E\-?\d+)?)\,?\s*(?P<yval>\-?\s*\d*\.\d+(E\-?\d+)?)\s*$')
afile = pythonopen(filename,'r')
# read the airfoil name which is always at the first line
airfoilname = afile.readline().strip()
coords=[]
# upside=True
# last_x=None
# Collect the data for the upper and the lower side seperately if possible
for lin in afile:
curdat = regex.match(lin)
if curdat != None:
x = float(curdat.group("xval"))
y = float(curdat.group("yval"))
# the normal processing
coords.append(FreeCAD.Vector(x,y,0))
# End of if curdat != None
# End of for lin in file
afile.close()
return coords
class Aile:
def __init__(self, obj):
# fichier, filefilter = QtGui.QFileDialog.getOpenFileName(QtGui.qApp.activeWindow(),'Open An Airfoil File',FreeCAD.ConfigGet("UserHomePath"),'*.*')
# chemin, fichier = os.path.split(fichier)
# msgCsl("Repertoire: " + chemin + "\nFichier: " + fichier)
# obj.addProperty("App::PropertyPath","Chemin","Aile","Profil de l'aile").Chemin=chemin
obj.addProperty("App::PropertyFile","Fichier","Aile","Profil de l'aile").Fichier = FileProfil()
obj.addProperty("App::PropertyLength","EchelleSaumon", "Aile","Echelle saumon, soit la longueur du saumon").EchelleSaumon = 1.0
obj.addProperty("App::PropertyLength","EchelleEmplanture", "Aile","Echelle emplanture, soit la longueur de l'emplanture").EchelleEmplanture = 1.0
obj.addProperty("App::PropertyLength","Longueur", "Aile","Longueur de l'aile").Longueur = 10.0
# obj.addProperty("Part::PropertyPartShape","Aile","Aile","Aile")
obj.addProperty("App::PropertyVectorList","points_saumon","Aile","Points du saumon")
obj.addProperty("App::PropertyVectorList","points_emplanture","Aile","Points de l'emplanture")
obj.Proxy = self
points=[]
points = getPoints(obj.Fichier)
e = obj.getPropertyByName("EchelleSaumon")
for p in points:
p.x = p.x * e
p.y = p.y * e
p.z = obj.Longueur
obj.points_saumon = points
saumonP = Part.makePolygon(obj.points_saumon, True)
saumon = Draft.makeWire(saumonP,True,False)
saumon.Label = "Saumon"
points=[]
points = getPoints(obj.Fichier)
e = obj.getPropertyByName("EchelleEmplanture")
for p in points:
p.x = p.x * e
p.y = p.y * e
obj.points_emplanture = points
emplantureP = Part.makePolygon(obj.points_emplanture, True)
emplanture = Draft.makeWire(emplantureP,True,False)
emplanture.Label = "Emplanture"
obj.addProperty("App::PropertyString","WireSaumon","Aile","Saumon de l'aile").WireSaumon = saumon.Name
obj.addProperty("App::PropertyString","WireEmplanture","Aile","Emplanture de l'aile").WireEmplanture = emplanture.Name
AileBis = FreeCAD.ActiveDocument.addObject('Part::Loft','Loft')
AileBis.Label = "Loft_Aile"
obj.addProperty("App::PropertyString","NomLoft","Aile","Nom du lissage lie a l'aile").NomLoft = AileBis.Name
AileBis.Sections = [FreeCAD.ActiveDocument.getObject(emplanture.Name),FreeCAD.ActiveDocument.getObject(saumon.Name)]
AileBis.Solid = True
AileBis.Ruled = False
def onChanged(self, fp, prop):
# Do something when a property has changed
msgCsl("Change property: " + str(prop) + "\n")
if prop == "Fichier":
fp.points_emplanture = getPoints(fp.Fichier)
self.updateWire(fp,fp.WireEmplanture,"points_emplanture","EchelleEmplanture")
fp.points_saumon=getPoints(fp.getPropertyByName("Fichier"))
self.updateWire(fp,fp.WireSaumon,"points_saumon","EchelleSaumon")
if prop == "EchelleEmplanture":
self.updateWire(fp,fp.WireEmplanture,"points_emplanture","EchelleEmplanture")
if prop == "EchelleSaumon":
self.updateWire(fp,fp.WireSaumon,"points_saumon","EchelleSaumon")
if prop == "Longueur":
self.updateWire(fp,fp.WireSaumon,"points_saumon","EchelleSaumon")
def execute(self, fp):
msgCsl("class Aile, execute")
def updateWire(self, fp, oWire, fWire, Echelle):
oW = FreeCAD.ActiveDocument.getObject(oWire)
eW = FreeCAD.ActiveDocument.getObject(fp.WireEmplanture)
fW = fp.getPropertyByName(fWire)
e = fp.getPropertyByName(Echelle)
z = 0.0
if fWire == "points_saumon" : z = fp.Longueur
mPosition = FreeCAD.Vector(0,0,z)
mRotation = FreeCAD.Rotation(FreeCAD.Vector(0,0,1),0)
mCenter = FreeCAD.Vector(0,0,1)
mPlacement = FreeCAD.Placement(mPosition,mRotation,mCenter)
mPlacement = eW.Placement.multiply(mPlacement)
oW.Placement = mPlacement
pts = []
for p in fW:
pts.append(FreeCAD.Vector(p.x * e,p.y * e, 0))
oW.Points = pts
Code: Select all
import Aile_module2
reload(Aile_module2)
a=FreeCAD.ActiveDocument.addObject("Part::FeaturePython","Aile")
Aile_module2.Aile(a)
a.ViewObject.Proxy=0 # just set it to something different from None (this assignment is needed to run an internal notification)
FreeCAD.ActiveDocument.recompute()
Code: Select all
import FreeCAD, FreeCADGui
import Part
import math
from FreeCAD import Base
ModeVerbose = True
def msgCsl(message):
if ModeVerbose:
FreeCAD.Console.PrintMessage(message +"\n")
#DOC = "Test_Macro_sections"
#NB_NERVURES = 3
#OBJ = "Cut"
#NOM_SECTION = "Section_"
#ANGLE = 20.00 # en degres
#Normale = FreeCAD.Base.Vector(0,math.sin(ANGLE/180.00*math.pi),math.cos(ANGLE/180.00*math.pi))
def Extruder(DOC,OBJ,NB_NERVURES,NOM_SECTION,Normale,Longueur):
for cnt in range(1 , NB_NERVURES+1):
# msgCsl("Section %d, sinus %f, cosinus %f" % (cnt,ANGLE/180.00,ANGLE/180.00*math.pi))
msgCsl("Section %d, %s" % (cnt,Normale))
nomExtrusion = NOM_SECTION + "Extrude_%d" % (cnt)
msgCsl(nomExtrusion)
FreeCAD.getDocument(DOC).addObject("Part::Extrusion",nomExtrusion)
FreeCAD.getDocument(DOC).getObject(nomExtrusion).Base = FreeCAD.getDocument(DOC).getObject(NOM_SECTION + "%d" % cnt)
FreeCAD.getDocument(DOC).getObject(nomExtrusion).Dir = (Longueur*Normale.x,Longueur*Normale.y,Longueur*Normale.z)
FreeCAD.getDocument(DOC).getObject(nomExtrusion).Solid = (True)
FreeCAD.getDocument(DOC).getObject(nomExtrusion).TaperAngle = (0)
FreeCADGui.getDocument(DOC).getObject(NOM_SECTION + "%d" % cnt).Visibility = False
FreeCAD.getDocument(DOC).getObject(nomExtrusion).Label = nomExtrusion
FreeCAD.getDocument(DOC).recompute()
#ECARTEMENT_NERVURE = 50
def Sections(DOC,OBJ,NB_NERVURES,ECARTEMENT_NERVURE,NOM_SECTION,Normale):
shape=FreeCAD.getDocument(DOC).getObject(OBJ).Shape
for cnt in range(1 , NB_NERVURES+1):
wires=list()
# msgCsl("Section %d, sinus %f, cosinus %f" % (cnt,ANGLE/180.00,ANGLE/180.00*math.pi))
msgCsl("Section %d, %s" % (cnt,Normale))
for i in shape.slice(Normale,ECARTEMENT_NERVURE*cnt):
wires.append(i)
comp=Part.Compound(wires)
slice=FreeCAD.getDocument(DOC).addObject("Part::Feature",NOM_SECTION + "%d" % (cnt) )
slice.Shape=comp
slice.purgeTouched()
del slice,comp,wires
del shape
Code: Select all
import Nervures, math
reload(Nervures)
DOC = FreeCAD.ActiveDocument.Name
NB_NERVURES = 10
ECARTEMENT_NERVURE = 50
OBJ = "Loft"
NOM_SECTION = "Nervure_"
Longueur = 2.00
ANGLE = 1.14 # en degres
Normale = FreeCAD.Base.Vector(0,math.sin(ANGLE/180.00*math.pi),math.cos(ANGLE/180.00*math.pi))
Nervures.Sections(DOC,OBJ,NB_NERVURES,ECARTEMENT_NERVURE,NOM_SECTION,Normale)
Nervures.Extruder(DOC,OBJ,NB_NERVURES,NOM_SECTION,Normale,Longueur)
Dans le désordre:
1) rajouter le profil de saumon à l'objet aile
2) corriger un bug de la fenêtre de récupération du profil, la boite de dialogue apparait en arrière plan
3) ajouter le mode BSpline
4) ajouter un offset de la première nervure
5) calcul automatique du nombre de nervures en fonction du pas (j'ai supposé qu'on choisit plutôt le pas pour faciliter le construction)
6) créer la mise à jour de l'objet "nervures" en cas de modif
7) ajouter le pas en propriété modifiable de l'objet "nervures"
8) ajouter la vrillage dans les propriétés de l'aile
9) créer l'atelier du module aile avec le bouton de création d'aile, de création des nervures à partir de l'aile sélectionner
10) nettoyer, optimiser le code
11) gérer les erreurs utilisateur
12) mettre ça sur github
13) calcul de la normale des sections à partir du dièdre paramétré
14) améliorer la création automatique du plan avec les sections
15) la propal de mario52, intégrer les fichiers .dat au conteneur du fichier freecad .fcstd. Je n'ai aucune idée de comment faire. Mais j'irais chercher dans le code source qui intègre les planches ou spreadsheets dans le conteneur.
16) ...
Je ne suis pas du tout un pro de la programmation, et plutôt débutant en python!
Ah oui, et ma raison d'écrire: partager nos idées pour améliorer nos outils respectifs de création d'aile paramétrée!
Je pense notamment à préciser le besoin. La création de plans pour la fabrication, et/ou la modélisation réaliste d'un aéromodèle en 3D. Je pense par exemple que les baguettes ou clés d'aile ne doivent pas être un sketch extrudé, sauf si cela correspond à une forme réelle et complexe, mais plutôt de créer des solides simples et faire la soustraction à l'aile pleine et ensuite créer les sections des nervures.
Ubuntu 16.04 LTS 64bits - FreeCAD daily-build - FreeCAD 0.17
Re: Difficultes pour modifier la macro airfoil import vers freecad 0.17
Bonsoir SchmilBlick
J'ai testé sur la version.
OS: Windows 10
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.17.13387 (Git)
Build type: Release
Branch: master
Hash: c5f4079252b11e3c54cd603be7d3697fa9f9d922
Python version: 2.7.14
Qt version: 4.8.7
Coin version: 4.0.0a
OCC version: 7.1.0
Locale: French/France (fr_FR)
Je lance la macro sans avoir ouvert un nouveau dossier, et pas d'erreur
J'ai testé sur la version.
OS: Windows 10
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.17.13387 (Git)
Build type: Release
Branch: master
Hash: c5f4079252b11e3c54cd603be7d3697fa9f9d922
Python version: 2.7.14
Qt version: 4.8.7
Coin version: 4.0.0a
OCC version: 7.1.0
Locale: French/France (fr_FR)
Je lance la macro sans avoir ouvert un nouveau dossier, et pas d'erreur
-
- Posts: 26
- Joined: Fri Jan 09, 2015 8:31 pm
- Location: France
Re: Difficultes pour modifier la macro airfoil import vers freecad 0.17
Salut Blonblon,
OS: Ubuntu 16.04.4 LTS
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.17.13407 (Git)
Build type: None
Branch: master
Hash: 2c2d781aa686b731f2a0e754dc30ebb76f3553e0
Python version: 2.7.12
Qt version: 4.8.7
Coin version: 4.0.0a
OCC version: 7.1.0
Locale: French/France (fr_FR)
J'ai réessayé avec un profil ouvert:
- BSpline: ok, même résultat que toi. Reste donc le message orange "PartDesign::Plane: Links go out of the allowed scope"
- DWire: ko, en fait il n'y a pas de faces créées donc les datum plane en mode FlatFace ne peuvent fonctionner.
Pour dessiner les baguettes à partir de sketch sur les datum plane, il faudrait que ces derniers soient perpendiculaires à la baguette, sinon le sketch sera incliné par rapport à la section et les cotes du sketch ne correspondront pas aux dimensions de la baguette. Il faudrait créer la baguette à partir du sketch emplanture, puis positionner correctement le résultat tangent aux profiles des emplanture et saumon. Là ça se corse. L'idéal serait d'avoir une fonction f(x) qui se déplace sur le long du profile, x étant la distance au bord de fuite.
SchmilBlick
OS: Ubuntu 16.04.4 LTS
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.17.13407 (Git)
Build type: None
Branch: master
Hash: 2c2d781aa686b731f2a0e754dc30ebb76f3553e0
Python version: 2.7.12
Qt version: 4.8.7
Coin version: 4.0.0a
OCC version: 7.1.0
Locale: French/France (fr_FR)
J'ai réessayé avec un profil ouvert:
- BSpline: ok, même résultat que toi. Reste donc le message orange "PartDesign::Plane: Links go out of the allowed scope"
- DWire: ko, en fait il n'y a pas de faces créées donc les datum plane en mode FlatFace ne peuvent fonctionner.
Pour dessiner les baguettes à partir de sketch sur les datum plane, il faudrait que ces derniers soient perpendiculaires à la baguette, sinon le sketch sera incliné par rapport à la section et les cotes du sketch ne correspondront pas aux dimensions de la baguette. Il faudrait créer la baguette à partir du sketch emplanture, puis positionner correctement le résultat tangent aux profiles des emplanture et saumon. Là ça se corse. L'idéal serait d'avoir une fonction f(x) qui se déplace sur le long du profile, x étant la distance au bord de fuite.
SchmilBlick
Ubuntu 16.04 LTS 64bits - FreeCAD daily-build - FreeCAD 0.17
Re: Difficultes pour modifier la macro airfoil import vers freecad 0.17
Bonsoir
Chez moi cela fonctionne jusqu'à l'affichage des Datumplane, à partir de là il faut faire manuellement leur positionnement éventuel ainsi que les Sketchs.
Est ce que tu a l'affichage du tronçon d'aile.
Dans vue rapport il y a des messages qui s'affichent mais qui ne gênent pas le fonctionnement.
Pour la découpe des nervures la Macro n'est pas encore faite, mais on l'appellera une fois les passages des clefs et des longerons modélisés.
Tu n'a pas modifié la Macro que j'ai posté.
Chez moi cela fonctionne jusqu'à l'affichage des Datumplane, à partir de là il faut faire manuellement leur positionnement éventuel ainsi que les Sketchs.
Est ce que tu a l'affichage du tronçon d'aile.
Dans vue rapport il y a des messages qui s'affichent mais qui ne gênent pas le fonctionnement.
Pour la découpe des nervures la Macro n'est pas encore faite, mais on l'appellera une fois les passages des clefs et des longerons modélisés.
Tu n'a pas modifié la Macro que j'ai posté.
-
- Posts: 26
- Joined: Fri Jan 09, 2015 8:31 pm
- Location: France
Re: Difficultes pour modifier la macro airfoil import vers freecad 0.17
oui, oui, le loft est bien créé, à partir du moment où j'ai supprimé le dernier point dans mon fichier .dat
En DWire, pour que le datumplane soit correctement créé, je pense qu'il faut faire un upgrade pour obtenir les faces à partir des wire, comme dans le cas des splines, ensuite le code fonctionnera je pense.
A part pour corriger ce passage pour les datumplane, je n'ai pas vu le besoin de modifier ta macro. Je pense pouvoir si tu le souhaites. Sinon de mon côté je me remets à créer un workbench à partir du module que j'ai joint dans mon premier post.
Pour la création des nervures, j'ai proposé du code qu'il faudrait adapter pour l'utiliser à partir de ta macro et du fait d''utiliser la structure body/part. Je n'ai pas encore regardé dans le détail le blog pour y piocher une éventuelle méthode plus efficace.
Je suivrai la suite de tes macros avec intérêt
En DWire, pour que le datumplane soit correctement créé, je pense qu'il faut faire un upgrade pour obtenir les faces à partir des wire, comme dans le cas des splines, ensuite le code fonctionnera je pense.
A part pour corriger ce passage pour les datumplane, je n'ai pas vu le besoin de modifier ta macro. Je pense pouvoir si tu le souhaites. Sinon de mon côté je me remets à créer un workbench à partir du module que j'ai joint dans mon premier post.
Pour la création des nervures, j'ai proposé du code qu'il faudrait adapter pour l'utiliser à partir de ta macro et du fait d''utiliser la structure body/part. Je n'ai pas encore regardé dans le détail le blog pour y piocher une éventuelle méthode plus efficace.
Je suivrai la suite de tes macros avec intérêt
Ubuntu 16.04 LTS 64bits - FreeCAD daily-build - FreeCAD 0.17
Re: Difficultes pour modifier la macro airfoil import vers freecad 0.17
Bonjour SchmilBlick
Peut tu poster ta modif sur le fichier.
Tu peu poster tes fichiers et tes idées, le Forum est fait pour cela.
Quand j'ai modifié Airfoil c'était pour qu'il ne fonctionne que sur FreeCAD 0.17, comme je l'ai lancé par erreur sur la version 0.16 j'ai regardé pour y intégrer un teste de version, j'ai modifié le panneau dialogue, j'ai automatisé la modélisation au maximum, pour les clefs d'aile et le longerons je pense qu'il est préférable de le faire manuellement, il suffit d'attacher le(s) Sketch(s) sur le(s) Datumplane il(s) qui se réajustent automatiquement.
Pour dessiner les nervures je pense a une macro indépendante.
Peut tu poster ta modif sur le fichier.
Tu peu poster tes fichiers et tes idées, le Forum est fait pour cela.
Quand j'ai modifié Airfoil c'était pour qu'il ne fonctionne que sur FreeCAD 0.17, comme je l'ai lancé par erreur sur la version 0.16 j'ai regardé pour y intégrer un teste de version, j'ai modifié le panneau dialogue, j'ai automatisé la modélisation au maximum, pour les clefs d'aile et le longerons je pense qu'il est préférable de le faire manuellement, il suffit d'attacher le(s) Sketch(s) sur le(s) Datumplane il(s) qui se réajustent automatiquement.
Pour dessiner les nervures je pense a une macro indépendante.
-
- Posts: 26
- Joined: Fri Jan 09, 2015 8:31 pm
- Location: France
Re: Difficultes pour modifier la macro airfoil import vers freecad 0.17
Tu parles du fichier .dat ? Car je n'ai rien modifié d'autre. C'est juste le fichier avec les points du profil.Peut tu poster ta modif sur le fichier.
Effectivement une macro séparée pour les nervures me semble mieux vu que cela peut s'appliquer à n'importe quel solide.
Ubuntu 16.04 LTS 64bits - FreeCAD daily-build - FreeCAD 0.17
Re: Difficultes pour modifier la macro airfoil import vers freecad 0.17
Je pensais à une modif sur mon fichier macro, donc on a la certitude que cela fonctionne.
Si les fichiers import dat profil emplenture saumon doivent je pense avoir le meme nombre de points pour le Loft.
J'ai commencé la macro nervures ça ne marche que pour la première nervure.
Si les fichiers import dat profil emplenture saumon doivent je pense avoir le meme nombre de points pour le Loft.
J'ai commencé la macro nervures ça ne marche que pour la première nervure.