1ère Approche & Macro

Forum destiné aux questions et discussions en français
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
User avatar
yorik
Founder
Posts: 13659
Joined: Tue Feb 17, 2009 9:16 pm
Location: Brussels
Contact:

Re: 1ère Approche & Macro

Post by yorik »

Pas mal du tout ton script, bravo
Pour la fusion, il faut bien se dire que les opérations booléennes c'est ce qui coince encore la plupart du temps sur freecad, c'est un des grands problèmes d'opencascade. Mais il y a eu plusieurs contributions récemment à ce propos, ça devrait s'améliorer dans le futur. Si ça ne marche pas de faire une grande opération d'un coup, tu peux toujours essayer de le faire "à la main" en manipulant directement les shapes: fuse1 = obj1.Shape.fuse(obj2.Shape); fuse2 = fuse1.fuse(obj3.Shape), etc, etc...) et vérifier de temps en temps (Part.show(fuse2) ). Enfin, il y a généralement toujours moyen de s'en sortir...
adrenalinos
Posts: 7
Joined: Fri Feb 08, 2013 12:05 pm

Re: 1ère Approche & Macro

Post by adrenalinos »

merci! :D

je tente les fusions objets par objets...
.. Mais, en passant: quand il y a erreur à l'exécution d'une macro, le message apparaît en rouge dans le bandeau inférieur pendant 1 à 2 secondes!!! (pas très pratique, d'autant que le message peut être trop long pour être visualisé entièrement!). . . n'y a t'il pas un autre endroit où ces messages s'inscriraient?
User avatar
yorik
Founder
Posts: 13659
Joined: Tue Feb 17, 2009 9:16 pm
Location: Brussels
Contact:

Re: 1ère Approche & Macro

Post by yorik »

Tout ce qui apparaît dans la status bar aparaît aussi dans la fenêtre d'output (View->Views->Report view)
User avatar
NormandC
Veteran
Posts: 18589
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: 1ère Approche & Macro

Post by NormandC »

adrenalinos wrote:je ne comprends pas les arguments de "App.Rotation(" !
T'es pas le seul ! :lol:

App.Rotation fonctionne avec des quaternions. J'ai gardé le texte ci-dessous en référence, il provient d'un sujet de discussion du forum anglophone :
viewtopic.php?f=3&t=576&p=4026&hilit=quaternion

they represent a quaterion, suppose that :

App.Rotation(b,c,d,a)

you want to do a rotation delta along base vector v=x,y,z

Your value will be :

a=cos (delta/2)
b=x*sin(delta/2)
c=y*sin(delta/2)
d=z*sin(delta/2)

For example : 90degre along v=(0,1,0) (y axis)
App.Rotation(0,0.707,0,0.707)
N'hésite pas à indiquer si tu préfère une traduction française ce ce qui est indiqué ci-dessus...

Semble-t-il que l'usage des quaternions est répandu en modélisation (jeu vidéo notamment), mais je trouve ça beaucoup trop compliqué. Je fais de la trigo simple au travail occasionnellement, mais pour moi faire de la CAO ça n'est pas taper des lignes de code et me casser les cou!lles pour convertir une rotation tout ce qu'il y a de plus simple à faire dans une GUI en quaternion... c'est totalement contre-nature. Dans le cadre de mon travail je suis un opérateur de logiciel de CAO assez expérimenté (près de 15 ans d'expérience) et qui plus est plutôt débrouillard, mais certainement pas un programmeur (ça, c'est le frangin, un par famille c'est suffisant :D ).

Bref, quand j'ai eu besoin de créer un script, j'appliquais les rotations désirés via l'interface graphique (menu Édition --> Positionnement), ensuite je copiais les lignes de code générées dans mon script. Ça semble fastidieux, mais je suis persuadé que j'ai sauvé du temps face à l'alternative, piocher sur la calculette... :roll:
User avatar
yorik
Founder
Posts: 13659
Joined: Tue Feb 17, 2009 9:16 pm
Location: Brussels
Contact:

Re: 1ère Approche & Macro

Post by yorik »

En général il vaut toujours mieux utiliser un App.Placement... Il contient une Matrix qu'on peut le manipuler beaucoup plus facilement en la tournant sur les différents axes, etc... et il contient toujours une Rotation dont on peut extraire le quaternion (Q) ou les rotations sur les 3 axes principaux (toEuler())
User avatar
NormandC
Veteran
Posts: 18589
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: 1ère Approche & Macro

Post by NormandC »

adrenalinos wrote:2/ effectivement les cavités cylindriques sont réparties régulièrement, tous les 15°, et forment chacun un angle tangentiel non nul (30°, évolution: -15°) (sur ma copie d'écran on voit mon tableau de valeurs derrière freeCad.. "angle prog" est la valeur de "Roulis" à saisir lors d'un placement manuel) .......... "répétition circulaire" ça m'interresse!.. un tuto?
OK alors, j'ai pas porté attention au tableau, comme suggéré dans mon message ci-dessus... Les colonnes de chiffres, c'est pas mon truc (mais pas du tout) ! ;)

Je vais te préparer ça.
adrenalinos wrote:je pense que j'avais essayé Wine, sans satisfaction totale (c'est bien pour lancer UN programme Windows sous Linux?).. . je voudrais plutôt avoir un bureau virtuel Windows sous Linux.. je vous lis.. "VirtualBox" serait ma solution.. à essayer donc. ;-)
Faudrait voir quelle est ton application Windows, peut-être que la compatibilité s'est améliorée. Wine évolue constamment, mais les efforts de développement sont évidemment dirigés vers les applications les plus populaires (lire jeux, suite Office et Photoshop ;) )

Mais il ne faut pas s'attendre à des miracles non plus, il subsiste toujours quelques bogues.

Pour vérifier la compatibilité d'une application Windows, c'est par ici : http://appdb.winehq.org/objectManager.p ... plications

Si ton PC est costaud, avec beaucoup de RAM, VirtualBox est une bonne solution, c'est un logiciel libre mais il y a d'autres possibilités, comme VMWare.
User avatar
NormandC
Veteran
Posts: 18589
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: 1ère Approche & Macro

Post by NormandC »

normandc wrote:Je vais te préparer ça.
Bon, désolé, j'avais complètement oublié qu'une régression des outils de répétition de l'atelier PartDesign avait été mise place un peu avant la sortie de la version 0.13. Je dis régression, en fait le but était de rendre l'interface plus conviviale, mais le résultat est que les répétitions à partir des axes globaux ne sont plus possibles. L'axe de rotation de la répétition circulaire doit absolument se trouver sur le plan d'esquisse de la fonction sélectionnée pour la répétition. Or, la position des cylindres de cavité fait en sorte que le plan d'esquisse ne peut pas intersecter le centre du disque principal.

Pour la version 0.13 du moins, la méthode que j'avais en tête est impossible. D'après ce que j'ai pu comprendre, cette limitation sera levée à la prochaine version.

Tu dois donc continuer avec ta méthode actuelle, en soustrayant tes cylindres du disque principal. Cependant, plutôt que de les modéliser tous, tu pourrais utiliser la fonction Draft Array de Yorik (Yorik est l'auteur des ateliers Arch et Draft). Cet outil peut appliquer une répétition polaire à un objet 2D ou 3D, et génère un nouvel objet à corps multiples. Il suffit ensuite de le soustraire du disque principal à l'aide d'une opération booléenne.

C'est ça qui est génial avec FreeCAD : si une méthode ne fonctionne pas, il y a de bonnes chances qu'une autre méthode existe, et marche. :)
Attachments
disque-et-cylindres-répétition-circulaire.fcstd
(130.71 KiB) Downloaded 58 times
Post Reply