Aller au contenu

Messages recommandés

Posté(e)

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]

Posté(e)

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

Posté(e)

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

Posté(e)

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... ;)

Posté(e)

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

Posté(e)

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 !! :)

Posté(e)
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]

Posté(e)

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

Posté(e)

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 !! :)

Posté(e)

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

Posté(e)

"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]

Posté(e)

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

Posté(e)

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]

Posté(e)

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

Posté(e)

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

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité