Aller au contenu

3dspiral LISP / section diverse


Messages recommandés

Posté(e)

salut tout le monde,

 

voici mon pb,

je souhaite realiser une spire, a section non circulaire (comme un ressort)

mais plutot avec des aretes vives...

 

g telechargé le LISP 3dspiral sur ce site, merci bcp d'ailleurs...

 

g donc crée une poly3D, de ce coté la, no soucy,

g extrudé ma section sur le profil poly3D

 

mais le pb c'est que la section ne garde pas la normale constante a ma poly3D

du coup, je me retrouve avec un genre de ressort dont la section varie...

au lieu que ma section tourne autour de mon profil, la section reste toujours horizontale, et de ce fait, ca ne repond pas vraiment a ce que je veux faire.

 

voyez vous ce que je veux dire ??

 

merci de m'aider, je galere depuis 2 jours avec cette routine, mais j'y suis presque

MERCI !!!!

Thomas

Posté(e)

Pas tout saisi :(

 

Je te propose de regarder à l'adresse suivante (en anglais) voir si ca rejoint ton problème.

http://cadtutorforum.net/forum/viewtopic.php?t=477

 

Si c'est bien cela, et que tu veux récuper le code, il faudra corriger quelques oublis d'othographe international (underscore) devant les options des commandes utilisées.

 

Correction faite, il à l'air de fonctionner (j'ai fait un test rapide).

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Posté(e)

Salut,

 

Je voudrais realiser une rampe d'escalier helicoidale, est ce que ce lisp peut le faire?

 

Si oui,

je viens de le charger, pourriez vous m'expliquer comment il fonctionne. Je le lance et la je suis un peu perdu sur son fonctionnement.

J'ai mon profil de rampe rectangulaire, et mon chemin d'extrusion en spline.

Par ou je commence.

Posté(e)

Bon déjà le code corrigé avec messages traduit, on ne sait jamais ;)

;    SPIRAL EXTRUSION     ; 
;  mfuccaro@hotmail.com    ; 
;;;;;;;;- 17.05.2003 -;;;;; 
(defun c:spirex( / m3 m4 plist pts nwpt nwpts rad ang dist 
     i mm pln ax ang1 s ss h1 pt) 
 (defun m3(a b c / p1 p2 p3 m1 m2 m3) 
   (setq p1 (* (car a) (cadr b) (caddr c)) 
    p2 (* (car b) (cadr c) (caddr a)) 
    p3 (* (car c) (cadr a) (caddr b)) 
    m1 (* (car c) (cadr b) (caddr a)) 
    m2 (* (car a) (cadr c) (caddr b)) 
    m3 (* (car b) (cadr a) (caddr c))) 
   (- (+ p1 p2 p3) (+ m1 m2 m3))) 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
 (defun m4(x a b c / arg1 arg2 arg3) 
   (setq arg1 (list (cadr a) (caddr a) 1) 
    arg2 (list (cadr b) (caddr b) 1) 
    arg3 (list (cadr c) (caddr c) 1) 
    p (* (car x) (m3 arg1 arg2 arg3)) 
    arg1 (list (car a) (caddr a) 1) 
    arg2 (list (car b) (caddr b) 1) 
    arg3 (list (car c) (caddr c) 1) 
    p (- p (* (cadr x) (m3 arg1 arg2 arg3))) 
    arg1 (list (car a) (cadr a) 1) 
    arg2 (list (car b) (cadr b) 1) 
    arg3 (list (car c) (cadr c) 1) 
    p (+ p (* (caddr x) (m3 arg1 arg2 arg3))) 
    p (- p (m3 a b c)))) 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
 (setq pln (car (entsel "\n Sélectionner la forme à extruder: ")) 
  ax (getpoint " Point origine des axes?") 
  ang1 (/ (* pi (getreal "\nAngle de rotation (degrés): ")) 180.0) 
  h1 (getdist " Hauteur: ") 
  s (max 5 (getint " Nombre de segments: ")) 
  ang1 (/ ang1 s) 
  h1 (/ h1 s) 
  ss (ssadd)) 
 (setq plist (entget pln) 
  pts nil nwpts nil i 0 rad 0) 
 (repeat (length plist) 
   (if (= (car (nth i plist)) 10) 
     (setq pt (cdr (nth i plist)) 
      pts (cons (list (car pt) (cadr pt) 0) pts) 
      dist (distance pt ax) 
      rad (max rad dist) 
      ang (+ ang1 (atan (- (cadr pt) (cadr ax)) (- (car pt) (car ax)))) 
      nwpt (polar ax ang dist) 
      rad (max rad (distance ax nwpt)) 
      nwpts (cons (list (car nwpt) (cadr nwpt) h1) nwpts))) 
   (setq i (1+ i))) 
 (setq rad (* 1.5 rad)   old (getvar "osmode")) 
 (setvar "cmdecho" 0) 
 (setvar "osmode" 0) 
 (command "._undo" "_begin") 
 (command "._sphere" (list (car ax) (cadr ax) 0) rad) 
 (command "._zoom" "_w" (list (+ (car ax) rad) (+ (cadr ax) rad)) 
     (list (- (car ax) rad) (- (cadr ax) rad))) 
 (command "._plan" "") 
 (command "._slice" "_l" "" (car pts) (cadr pts) (caddr pts) (car nwpts)) 
 (command "._slice" "_l" "" (car nwpts) (cadr nwpts) (caddr nwpts) (car pts)) 
 (setq mm (1- (length pts)) i 0) 
 (repeat (1+ mm) 
   (setq j (1+ i)) 
   (if (> j mm) (setq j 0)) 
   (setq k (1- i)) 
   (if (< k 0) (setq k mm)) 
 (if (minusp (* (m4 (nth j nwpts) (nth i pts) (nth j pts) (nth i nwpts)) 
         (m4 (nth k pts) (nth i pts) (nth j pts) (nth i nwpts)))) 
   (progn 
     (command "._slice" "_l" "" (nth i pts) (nth j pts) (nth j nwpts) (nth k pts)) 
     (command "._slice" "_l" "" (nth i nwpts) (nth j nwpts) (nth i pts) (nth k pts))) 
   (progn 
     (command "._slice" "_l" "" (nth i pts) (nth j pts) (nth i nwpts) (nth k pts)) 
     (command "._slice" "_l" "" (nth i nwpts) (nth j nwpts) (nth j pts) (nth k pts)))) 
   (setq i (1+ i))) 
 (setq ss (ssadd (entlast) ss)) 
 (repeat (1- s) 
   (command "._copy" "_l" "" (list 0 0 0) (list 0 0 h1)) 
   (command "._rotate" "_l" "" ax (/ (* ang1 180.0) PI)) 
   (setq ss (ssadd (entlast) ss))) 
 (command "._union" ss "") 
 (setvar "osmode" old) 
 (command "._undo" "_end") 
 (setvar "cmdecho" 1) 
 (princ) 
) 
(princ "\nProgramme EXTRUSION en SPIRALE chargé.") 
(princ "\tTaper SPIREX pour execution.") 
(princ)

 

Une fois chargé et executé, tu auras le message

Sélectionner la forme à extruder:

Choisir alors la section de ta rampe (un rectangle par exemple)

Point origine des axes?

point de rotation de ton escalier en colimacon (devrait être a environ 1.0m de ta section)

Angle de rotation (degrés):

Donne la révolution de ta rampe (exemple 360° pour un tour complet

Hauteur:

Donne la hauteur verticale que va parcourir ta rampe (exemple 4.50)

Nombre de segments:

Donne le nombre facettes que tu veux obtenir en final (exemple 64)

Plus ce nombre sera élevé, plus la représentation sera fine.

 

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Posté(e)

Rendons a César ce qui est à César

 

C'est nickel MFUCCARO

 

Pour la traduc et les corrections mineures, c'était pas bien dur. :P

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

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é