infatalerror Posté(e) le 29 octobre 2006 Posté(e) le 29 octobre 2006 Hello !! :) Je me suis mis récement à autocad et j'ai essayé de retracer ce que j'ai pu faire de plus technique sur le papier avec autocad.... pour le principal ca roule je galère un peu mais j'apprend vite. Le seul point ou je bloque lamentablement, c'est la distorsion des hélices par rapport à un point de centre : au lieu de faire courrir une ligne sur un bête cylindre, je veut lui faire suivre une suite de courbes ( voir photo )...Alors est ce moi qui n'ai pas assé utilisé google ou mes méninges ou est ce radicalement impossible? :casstet: http://img85.imageshack.us/img85/7135/piedis8.jpg [Edité le 29/10/2006 par infatalerror] pour information, je veux plaquer ceci tout autour de la premiere photo http://img85.imageshack.us/img85/585/corpsdemoulurejc4.jpg si quelqu'un pourrais m'orienter sur la manière de procéder ( j'imagine ajouter des parametres à la construction de l'hélice...mais je sèche un peu trop a mon goût... :) ) Merci de vos réponses !!! :) infatalerror@wanadoo.fr [Edité le 29/10/2006 par infatalerror]
(gile) Posté(e) le 29 octobre 2006 Posté(e) le 29 octobre 2006 Salut, Je ne pense pas que tu puisse faire ça à partir d'une hélice. L'hélice (nouveauté 2007) s'inscrit autour d'un cylindre ou d'un cône. Tu vas devoir faire un peu comme "sur le papier" définir les points de lissage de ton "hélice" et la dessiner avec une SPLINE qui pourra servir de chemin pour extruder ton profil avec les commande LISSAGE ou BALAYAGE Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
(gile) Posté(e) le 29 octobre 2006 Posté(e) le 29 octobre 2006 Un exemple : http://img64.imageshack.us/img64/3440/torsadesnq7.png Et un petit rendu : http://img130.imageshack.us/img130/9392/torsades3gc2.png [Edité le 29/10/2006 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
infatalerror Posté(e) le 29 octobre 2006 Auteur Posté(e) le 29 octobre 2006 merci de vos réponses !!! mais j'aurais imaginé qu'en rajoutant des parametres on aurais pu le faire.... surtout que quand on y réfléchis, ça à l'air tout a fais réalisable... je me demande si il n'y aurais pas un moyen avec le code VBA d'arriver à faire quelque chose, étant donné que certains ont trouvés le moyen de réaliser des hélices avec la version 2006 ( de manière codé j'entend ) alors, je sais que j'abuse, mais n'y aurais t'il pas un petit génie qui entreverrais une solution dans ce sens? :) ce qui m'embete en fait, c'est essentiellement la productivité, car en taille de pierre ce genre de torsions sont assé fréquente pour peu que l'on sorte du banal tout droit ( et oui, mine de rien c'est quand même un peu de l'art... :) ) Et je tiend encore a remercier les réponses... ;)
(gile) Posté(e) le 29 octobre 2006 Posté(e) le 29 octobre 2006 Re, Normalement, si on peut le dessiner, on doit pouvoir le programmer, mais ça n'est pas toujours simple.Je ne peux rien te promettre, mais je vais essayer de faire quelque chose.Je viens d'avoir une idée pour dessiner la spline à partir des sommets d'une surface de révolution. http://img410.imageshack.us/img410/60/torsades4vq9.png Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
infatalerror Posté(e) le 29 octobre 2006 Auteur Posté(e) le 29 octobre 2006 Re !! Après avoir essayé les splines avec les points de passage, je persiste à croire que des parametres supplémentaires pour une hélice serais un idéal de précision et de rapidité.... ( jamais content celui-la... ;) ) Le probleme restant entier à mes yeux, je solicite, qui voudra m'aider, ceux qui peuvent m'orienter pour le VBA pour le probleme suivant : -Donner en option des parametres supplémentaire à une hélice ( comme les cônes mais avec un point de centre ) -Donner ces parametres de maniere "friendly user" ( genre rajouter des options dans un menu et cliquer sur les points de centre) ATTENTION !!Ce n'est pas du "mâchage de travail" que je cherche, c'est une direction.... :) Il est évident que la solution une fois trouvée ( si je la trouve : ne vendont pas la peau de l'ours ) sera mise en post sur ce forum pour la communauté. merci d'avance !! :)
infatalerror Posté(e) le 29 octobre 2006 Auteur Posté(e) le 29 octobre 2006 Re, Normalement, si on peut le dessiner, on doit pouvoir le programmer, mais ça n'est pas toujours simple.Je ne peux rien te promettre, mais je vais essayer de faire quelque chose.Je viens d'avoir une idée pour dessiner la spline à partir des sommets d'une surface de révolution. http://img410.imageshack.us/img410/60/torsades4vq9.png Désolé je suis à la boure... :) merci gile !! [Edité le 29/10/2006 par infatalerror]
(gile) Posté(e) le 30 octobre 2006 Posté(e) le 30 octobre 2006 Voilà un petit LISP (je ne connais pas le VBA), qui crée une spline suivant les sommets d'un maillage (surface de révolution). http://img172.imageshack.us/img172/3864/spirevnn4.png Nouvelle version (01/11/06) Invites : Commande: spirev Sélectionnez l'objet qui subira une révolution:Sélectionnez l'objet qui définit l'axe de révolution:Spécifiez le nombre de spires: 2 Spécifiez le nombre de points de lissage par spire: 30 Spécifiez le sens du pas [Droite/Gauche] : Effacer la surface de révolution ? [Oui/Non] : Le code : (defun c:spirev (/ OS EC S1 S2 sp_err prof axe prec sens tr ent surf mv nv pt pts n lst) (defun sp_err (msg) (if (= msg "Fonction annulée") (princ) (princ (strcat "\nErreur: " msg)) ) (command) (command "_.undo" "_end") (setvar "SURFTAB1" S1) (setvar "SURFTAB2" S2) (setvar "CMDECHO" EC) (setvar "OSMODE" OS) (setq *error* m:err m:err nil ) (princ) ) (setq OS (getvar "OSMODE") EC (getvar "CMDECHO") S1 (getvar "SURFTAB1") S2 (getvar "SURFTAB2") m:err *error* *error* sp_err ) (while (not (setq prof (car (entsel "\nSélectionnez l'objet qui subira une révolution: " ) ) ) ) ) (while (not (setq axe (car (entsel "\nSélectionnez l'objet qui définit l'axe de révolution: " ) ) ) ) ) (initget 7) (setq tr (getreal "\nSpécifiez le nombre de spires: ")) (initget 7) (setq prec (getint "\nSpécifiez le nombre de points de lissage par spire: " ) ) (initget "Droite Gauche") (if (/= (setq sens (getkword "\nSpécifiez le sens du pas [Droite/Gauche] : " ) ) "Gauche" ) (setq sens "Droite") ) (command "_.undo" "_begin") (setvar "SURFTAB1" prec) (setvar "SURFTAB2" (round (* prec tr))) (setvar "CMDECHO" 0) (setvar "OSMODE" 0) (command "_.revsurf" prof axe "" "") (setq ent (entlast) surf ent mv (cdr (assoc 71 (entget ent))) nv (cdr (assoc 72 (entget ent))) ) (while (setq pt (cdr (assoc 10 (entget (entnext ent))))) (setq ent (entnext ent) pts (cons (trans pt 0 1) pts) ) ) (setq pts (reverse pts) lst (list (nth 0 pts)) ) (if (= sens "Droite") (setq n 0) (setq n (* nv mv)) ) (repeat (1- nv) (if (= sens "Droite") (setq n (rem (+ 1 nv n) (* nv mv))) (setq n (- n (1- nv))) ) (if (minusp n) (setq n (+ n (* nv mv))) ) (setq lst (cons (nth n pts) lst)) ) (command "_.spline") (mapcar 'command (reverse lst)) (command "" "" "") (initget "Oui Non") (if (/= "Non" (getkword "\nEffacer la surface de révolution ? [Oui/Non] : " ) ) (entdel surf) ) (command "_.undo" "_end") (setvar "SURFTAB1" S1) (setvar "SURFTAB2" S2) (setvar "CMDECHO" EC) (setvar "OSMODE" OS) (setq *error* m:err m:err nil ) (princ) ) ;;; Arrondit un nombre à l'entier le plus proche (defun round (num) (if ( (abs (- num (1+ (fix num)))) ) (fix num) (1+ (fix num)) ) ) [Edité le 31/10/2006 par (gile)] [Edité le 1/11/2006 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
infatalerror Posté(e) le 30 octobre 2006 Auteur Posté(e) le 30 octobre 2006 De mon coté je commencais a m'orienter de cette maniere :http://img85.imageshack.us/img85/4198/hlicoderk5.jpg Mais je suis tout de même curieux du comment de ta methode... :) Car je t'avouerais que je ne comprend pas grand chose à ce que tu as ecrit....A mon humble avis, on dirais que tu utilise des outils qui sont deja dans autocad en leur passant des variables par le biais des sélections souris.... je me trompe? Quoi qu'il en soit, je vais essayer ceci, et rendre mes impressions un peu + tard :) Merci !! :)
(gile) Posté(e) le 30 octobre 2006 Posté(e) le 30 octobre 2006 Ma méthode est simple, comme la seule entité AutoCAD pour tracer ce type de courbe est la spline, il faut déterminer des points de lissage. Pour avoir une succession de points incrémentés en hauteur et de manière angulaire situés sur le profil (surface ou solide de révolution), le plus simple, à mon avis, est de récupérer la liste des sommets d'une surface de révolution (maillage polygonal) puis dans cette liste ne retenir que les points qui nous intéressent : un pour chaque maille horizontale décalé d'une maille verticale à chaque fois (comme un escalier).Ces points servent ensuite à créer la spline. Tu peux essayer le LISP, après avoir sélectionné l'objet (spline ou polyligne) qui subira a révolution et l'axe de révolution, il faut spécifier le nombre de spires puis le nombre de points de lissage par spire (ce qui donnera la précision). Le maillage est créé en fonction de ces paramètres, il est proposer de le supprimer quand la spline est dessinée. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
infatalerror Posté(e) le 30 octobre 2006 Auteur Posté(e) le 30 octobre 2006 "On peut faire plein de choses avec une massette....suffit de savoir s'en servir ! " updu 31/10/2006 ... mes parametres persos d'aide au dessin sautent régulièrement depuis que j'utilise le LIPS... est-ce normal? :casstet: je laisse "non résolu" tant que je n'aurais pas trouvé de solution satisfaisante :)Merci encore de ton aide Gile !! :) [Edité le 1/11/2006 par infatalerror]
(gile) Posté(e) le 31 octobre 2006 Posté(e) le 31 octobre 2006 Re, Au vu des remarques, j'ai modifié le code ci-dessus. Premier defaut : les fractions de revolutions ne sont pas acceptées... Vue la méthode utilisée, le produit du nombre de spires par le nombre de points de lissage doit être un entier. Dans la première version, pour simplifier je limitais le nombre de spires à un nombre entier.On peut désormais entrer un nombre réel (ou fraction) pour le nombre de spires. Si le produit nombre de spires par nobre de points de lissage n'est pas un entier, il est arrondi à l'entier le plus proche.Exemple : -nombre de spires = 2.7 points de lissage = 12- > 12*2.4=28.8 arrondi à 29 soit un nombre de spires réel de 29/12=2.41666... Deuxieme défaut : il ne respecte pas le nombre de révolutions donné, en fait il en fais deux fois plus Alors là, vraiment je ne comprends pas ce que tu veux dire. Dans l'exemple ci-dessus, il est demandé 2 spires, et il est réalisé 2 spires. troisième : choix de la rotation Il est désormais possible de choisir entre un pas à droite (défaut) ou un pas à gauche. ca se conduit comme un 35 Tonnes dans une ruelle Je te souhaite d'arriver à faire une bicyclette ;) Pour un peu "alléger" la commande, il est possible de supprimer la dernière invite et de systématiquement effacer le maillage, en remplaçant : (initget "Oui Non") (if (/= "Non" (getkword "\nEffacer la surface de révolution ? [Oui/Non] : " ) ) (entdel surf) ) par (entdel surf) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
infatalerror Posté(e) le 1 novembre 2006 Auteur Posté(e) le 1 novembre 2006 Encore un petit soucis : je sais pas si "code parlant" c'est possible, mais il n'accepte pas les axes courbes... ;) ( casse tête du soir bonsoir !! ) Merci pour tout !! :) [Edité le 3/11/2006 par infatalerror]
(gile) Posté(e) le 1 novembre 2006 Posté(e) le 1 novembre 2006 Salut, mes parametres d'aide au dessin sautent.... Le LISP ne fait que désactiver les accrochages aux objets le temps de dessiner la spline, puis les restaure.C'est peut-être en faisant "ANNULER" ("U"), et en ne remontant pas j'usqu'à annuler la désactivation des accrochages, que tes "parametres d'aide au dessin sautent". Je modifie le LISP pour faire un groupe d'annulation de façon à ce qu'en annulant une seule opération, tout soit annulé. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
infatalerror Posté(e) le 5 novembre 2006 Auteur Posté(e) le 5 novembre 2006 Après un bref surf sur les autres sujet, celui des pénétrations 3D donnerais une solution élégante au fractionnement des courbes... :) Je vais quand même essayer de me mettre correctement à ce language de programation imbuvable qu'est le petit monde des LISP... ;) Je vais mettre résolu avec un pointage vers l'autre sujet ( en attendant de faire mieux ) un grand merci tout de même à Gile , alias la bête d'AutoCAD toutes versions confondues j'immagine... ;) :D http:// http://www.cadxp.com/sujetXForum-12484.htm
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant