Aller au contenu

Messages recommandés

Posté(e)

Bonjour a tous,

 

J'ai une coupole en béton à couvrir avec un contreplaqué de 15 mm - format 1.250 x 2.500 m.

J'aimerais connaitre la marche à suivre pour arriver à sortir le contreplaqué (qui sera cintré sur le béton) en développé afin que je puisse usiner les plaques en commande numérique.

 

Je vous joint le fichier afin de mieux saisir https://www.dropbox.com/s/n8e8np1zkbgcuj7/Coupole.dwg

Je vous remercie à tous d’avance

Cordialement

Kévin

Cordialement

 

CICHON Kévin de Archi-plans.com

Posté(e)

Salut,

 

Ta coupole est typiquement ce qu'on appelle une forme non développable.

Tu ne peux pas cintrer le contre plaqué à la fois dans sa longueur et dans sa largeur. Il faut donc choisir d'avoir des facettes soit sur des plans horizontaux, soit sur des plans verticaux.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

tu t'es peut etre un peu compliquer la vie avec un volume...

 

si tu part avec l'outil _revsurf en mettant SURFTAB1=24 SURFTAB2=6

tu te retrouve avec un maillage qui présente toutes les facettes que tu veux il doit y avoir moyen de le déplier, mais ça doit pas etre trop compliquer à recoter une tranche

Posté(e)

J'ai retrouvé un LISP que je m'étais fait pour développer une portion de tronc de cône.

Le problème c'est qu'il fonctionne à partir de deux arcs de cercles d'élévation différentes et que dans ce cas, il faudrait que le développé "remplisse au mieux" la feuille de CP.

Si j'ai le temps, je vais essayer de faire quelque chose.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Je dois recouvrir de contreplaqué toute la coupole, donc obligatoirement je vais avoir de la découpe mais il me faudrait un minimum de chute bien évidemment.

Je pensais avoir un découpage dans la hauteur tous les 1.250 ml et et un découpage dans la longueur tous les 2.500 ml

 

Merci d'avance.

Cordialement

 

CICHON Kévin de Archi-plans.com

Posté(e)

en passant (gile), tu avais pas fait un jour un lisp pour déplier des faces 3d ? il me semblait l'avoir vu passé mais je n'en avais pas l'utilité...

parce que je veux pas inciser, mais le découpage en tranche des facettes devrai pas être une mauvaise approximation

il te faut juste régler SURFTAB1 et 2 pour avoir les valeurs que tu cherches...

 

à la limite, on peu faire une "clef de voute" pour pas avoir à gérer l'intersection de toutes les tranches au sommet, mais ça doit pas poser de pb

Posté(e)

J'ai essayé quelque chose en LISP.

 

La commande COUPOLE demande à l'utilisateur de spécifier la longueur et la largeur maximale pour les développés.

Puis de sélectionner la courbe du profil à développer. En l'état la courbe (ici un arc) doit être plane , contenu dans un plan vertical et se terminer sur l'axe de rotation (CF la courbe extraite du solide sur le fichier joint). Aucun contrôle de validité de cette courbe n'est fait.

Puis il est demandé à l'utilisateur de spécifier un point d'insertion pour les développés.

 

Il faut attendre quelques secondes (le temps des calculs) pour que les développés s'affichent.

 

Pour la longueur, le programme fait une division régulière sur la circonférence pour obtenir la lonqueur inférieure la plus proche de la longueur maximale spécifiée (le nombre de plaques nécessaire est affiché sur chaque développé). La largeur est égale à la largeur maximale spécifiée à un dixième de millimètre près. La dernière série (au sommet) complète le manque (un disque si le diamètre est inférieur à la la largeur maximale).

 

Dans le fichier joint, j'ai décalé la courbe de 7.5 mm vers le haut pour être à l'axe de l'épaisseur du contre plaque (fibre neutre).

 

Le LISP

 

(defun c:coupole (/	      devcone	  insText     maxLength	  maxWidth    profile
	  totalLength curLength	  startPoint  endPoint	  center      radius
	  perimeter   numSections arcAngle    point	  data	      dist
	  insPoint
	 )
 (vl-load-com)

 ;; développé d'une portion de tronc de cône
 (defun devcone (center   radius   startPoint	      perimeter		point	 /	  cen
	  start	   sum	    rad1     rad2     ang      ang/2	ang/4	 chord1	  chord2
	  p1	   p2	    p3	     p4	      bulge
	 )
   (setq cen	 (list (car center) (cadr center) (caddr point))
  start	 (polar cen 0. (distance cen point))
  sum	 (inters center cen startPoint start nil)
  rad1	 (distance sum startPoint)
  rad2	 (distance sum point)
  ang	 (/ perimeter rad1)
  ang/2	 (/ ang 2)
  ang/4	 (/ ang 4)
  chord1 (* 2 rad1 (sin ang/2))
  chord2 (* 2 rad2 (sin ang/2))
  p1	 (polar	'(0. 0. 0.)
		(+ pi ang/4)
		(/ chord1 (* 2 (cos ang/4)))
	 )
  p2	 (polar p1 0.0 chord1)
  p3	 (polar	p2
		(- (* 1.5 pi) ang/2)
		(- rad1 rad2)
	 )
  p4	 (polar p3 pi chord2)
  bulge	 (/ (sin ang/4) (cos ang/4))
   )
   (list p1 p2 p3 p4 bulge (abs (cadr p3)))
 )

 (defun insText ()
   (entmake
     (list
'(0 . "TEXT")
(cons 10 (mapcar '- insPoint (list 0 (/ maxWidth 2.0) 0.0)))
(cons 40 (/ maxWidth 4))
(cons 1 (strcat "X " (itoa numSections)))
(cons 7 (getvar 'textstyle))
(cons 11 (mapcar '- insPoint (list 0 (/ maxWidth 2.0) 0.0)))
'(71 . 0)
'(72 . 1)
'(73 . 2)
     )
   )
 )

 (setq	maxLength
	  (cond
	    ((getdist "\nspécifiez la longueur maximale des développés <2500.0>: "))
	    (2500.0)
	  )
maxWidth
	  (cond
	    ((getdist "\nspécifiez la longueur maximale des développés <1250.0>: "))
	    (1250.0)
	  )
 )

 (if
   (and
     (setq profile (car (entsel "\nSélectionnez la courbe de profil: ")))
     (setq insPoint (getpoint "\nPoint d'insertion: "))
   )
    (progn
      (setq totalLength (vlax-curve-getDistAtparam profile (vlax-curve-getEndParam profile))
     curLength	 0.0
     startPoint	 (vlax-curve-getStartPoint profile)
     endPoint	 (vlax-curve-getendPoint profile)
      )
      (while (< (+ maxWidth curlength) totalLength)
 (setq center	   (list (car endPoint) (cadr endpoint) (caddr startPoint))
       radius	   (distance center startPoint)
       perimeter   (* 2.0 pi radius)
       numSections (1+ (fix (/ perimeter maxLength)))
       perimeter   (/ perimeter numSections)
       arcAngle	   (/ perimeter radius)
       startPoint  (polar center 0.0 radius)
 )

 ;; recherche dichotomique du développé de 1250 de haut à 0.1 près
 (setq dist maxWidth)
 (while
   (and
     (or
       (setq point (vlax-curve-getPointAtDist profile (+ curLength dist)))
       (setq point (vlax-curve-getEndPoint profile))
     )
     (setq data (devcone center radius startPoint perimeter point))
     (not (equal maxWidth (last data) 0.1))
   )
    (setq dist
	   (if (< maxWidth (last data))
	     (- dist (/ dist 2.0))
	     (+ dist (/ dist 2.0))
	   )
    )
 )
 (setq startPoint point
       curLength  (vlax-curve-getDistAtPoint profile point)
 )
 (entmake
   (list
     '(0 . "LWPOLYLINE")
     '(100 . "AcDbEntity")
     '(100 . "AcDbPolyline")
     '(90 . 4)
     '(70 . 1)
     (cons 10 (mapcar '+ insPoint (car data)))
     (cons 42 (- (car (cddddr data))))
     (cons 10 (mapcar '+ insPoint (cadr data)))
     (cons 10 (mapcar '+ insPoint (caddr data)))
     (cons 42 (car (cddddr data)))
     (cons 10 (mapcar '+ insPoint (cadddr data)))
   )
 )
 (insText)
 (setq insPoint (polar insPoint (* pi 1.5) (* 2.0 maxWidth)))
      )
      (setq center	 (list (car endPoint) (cadr endpoint) (caddr startPoint))
     radius	 (distance center startPoint)
     perimeter	 (* 2.0 pi radius)
     numSections (max 3 (1+ (fix (/ perimeter maxLength))))
     perimeter	 (/ perimeter numSections)
     radius	 (distance point endPoint)
     arcAngle	 (/ perimeter radius)
      )
      ((lambda	(/ ang/2 ang/4 chord bulge p1 p2 p3 p4)
  (setq	ang/2 (/ arcAngle 2.0)
	ang/4 (/ arcAngle 4.0)
	chord (* 2 radius (sin ang/2))
	bulge (/ (sin ang/4) (cos ang/4))
	p1    (polar '(0.0 0.0 0.0)
		     (+ pi ang/4)
		     (/ chord (* 2.0 (cos ang/4)))
	      )
	p2    (polar p1 0.0 chord)
	p3    (list 0.0 (- radius) 0.0)
  )
  (entmake
    (list
      '(0 . "LWPOLYLINE")
      '(100 . "AcDbEntity")
      '(100 . "AcDbPolyline")
      '(90 . 3)
      '(70 . 1)
      (cons 10 (mapcar '+ insPoint p1))
      (cons 42 (- bulge))
      (cons 10 (mapcar '+ insPoint p2))
      (cons 10 (mapcar '+ insPoint p3))
    )
  )
)
      )
      (insText)
    )
 )
 (princ)
)

Coupole.zip

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Bonsoir,

 

Merci pour le LISP.

Alors la j'ai quelques bonnes connaissances en dessin DWG et en 3D mais le LISP je ne connaissait pas.

Pourriez vous m'expliquer un peu votre démarche et notamment ce qu'est le LISP, et comment l'utiliser s'il vous plait.

 

Merci en tous cas pour votre travail.

Cordialement

Cordialement

 

CICHON Kévin de Archi-plans.com

Posté(e)

Merci x_all.

 

Archi-plans.com,

 

Le LISP est un langage de programmation.

AutoLISP est un dialecte du LISP dédié et intégré à AutoCAD. Il permet de créer de "commandes" AutoCAD pour automatiser des processus et/ou étendre les possibilités d'AutoCAD.

On trouve sur le net des millers (voire des millions) de routines AutoLISP.

Sans connaitre ce langage, on peut utiliser des routines (à ses propres riques parfois) écrites par d'autres, il suffit de charger la routine dans le dessin et d'appeler les "commandes" qui y sont définies.

Pour charger et utiliser des routines LISP, on peut voir ce sujet.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Hello,

 

Je ne sais pas si c'est ça que tu recherches, mais j'ai pu développer la coupole en 4 parties égales en passant par le programme Rhinoceros. Il a une commande très simple à utiliser qui permet de développer n'importe quelle pièce cintrée en 1 seul clic. De plus, il est très facil d'importer et d'exporter depuis Autocad.

 

PS: je n'arrive pas à envoyer le dwg, mon fichier est trop volumineux

coupole A3.pdf

Posté(e)

Salut estebeniste,

 

À ta place, je me méfierais d'une commande qui semble développer, sans aucun état d'âme, des surfaces non développables.

Auquel cas, les développés générés par Rhinhoceros ne peuvent être que géométriquement faux !

 

Comme je le disais plus haut, une sphère (ou une portion de sphère) est l'exemple le plus simple (et le plus couramment utilisé) de surface non développable (CF les planisphères).

On ne peut faire qu'une approximation du développé d'un sphère en la découpant d'abord (plus le nombre de coupes est grand, meilleure est l'approximation):

- soit suivant des fuseaux (longitude), chaque fuseau étant alors approximé comme une portion de cylindre ;

- soit en la découpant suivant des plans parallèles (latitude), chaque portion de sphère est alors approximé comme un tronc de cône ;

- soit encore suivant des polygônes contigus pour former un polyèdre sphérique (ballons de foot, dômes géodésiques).

 

Dans tout les cas, la demande de Archi-plans.com est de couvrir une coupole de 22 m de diamètre avec des feuilles de contre-plaqué de 25.0 m x 1.25 m, il faut donc découper la surface de la coupole en bien plus de 4 (surtout que, d'après le pdf posté, Rhino n'a découpé la surface qu'en 2).

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

d'accord jai compris, le développer donné par Rhino ne peut être que faux. Donc dans la réalité , il devra créer un moule par éléments afin d'obtenir une coupole sans cassures. C'est un travail très compliqué. D'ailleurs cela me fait penser au Rolex Center de l'EPF de Lausanne, chaque bloc de béton était réalisé sur mesure afin d'obtenir la forme qu'ils désirés obtenir.

post-37206-0-72663500-1397805097_thumb.jpg

post-37206-0-27010600-1397805113_thumb.jpg

  • 4 semaines aprè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 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é