Aller au contenu

zebulon_

Membres
  • Compteur de contenus

    1 489
  • Inscription

  • Dernière visite

  • Jours gagnés

    19

Tout ce qui a été posté par zebulon_

  1. Bonjour, sans utiliser lisp, je ferais de la manière suivante : - insérer le bloc-futur dans le fichier avec le même nom que le bloc-initial à modifier. Ainsi, je redéfinis le bloc-initial par le bloc-futur. - un coup de battman pour établir les nouveaux attributs dans l'ensemble des occurrences du bloc dans le fichier en question Amitiés, Vincent
  2. Bonjour, C'est surement un poil plus lent que de laisser les textes dans le code, mais je ne me rends compte d'aucun ralentissement notable. Amitiés Vincent
  3. ensuite, je commence par charger ce fichier et je le transforme en liste. (setq GLOBAL_MSG (read_listfersystem_file "fr.cfg")) ;; français ou une autre langue ;;; avec cette fonction (defun read_listfersystem_file (cfgfilename / FACIER F LIGNE L) (setq FACIER (findfile cfgfilename)) (setq F (open FACIER "r")) (while (setq LIGNE (read-line F)) (setq L (cons (read LIGNE) L)) ) (close F) (reverse L) ) ;; puis je peux me servir de chaque texte en le retrouvant facilement avec l'index (setq PTB1 (getpoint (strcat "\n" (get_MSG 6)))) ;; qui utilise cette fonction (defun get_MSG (NUMSG) (cdr (assoc NUMSG GLOBAL_MSG)) ) Le setq GLOBAL_MSG peut évidemment être conditionné par la valeur de la variable LOCALE et on peut faire prendre "fr.fcg" ou "en.cfg" ou tout autre langue selon les circonstances. Compte tenu que les textes sont tous regroupés à l'extérieur du code, dans un fichier texte, c'est facile de corriger et/ou de créer un nouveau fichier pour une autre langue. Amitiés Vincent
  4. tous les messages sont regroupés dans un fichier texte externe qui se présente de la manière suivante : (1 . "Saisir<") (2 . "Acier : ") (3 . "Enrobage : ") (4 . "Nb brins : ") (5 . "Retour : ") (6 . "Premier point : ") (7 . "Deuxième point : ") (8 . "Troisième point : ") (9 . "Quatrième point : ") (10 . ("Crochet norm. 135°" "Equerre norm. 90°" "Retour norm. 180°")) (11 . ("Crochet norm. 135°" "Equerre norm. 90°"))
  5. puis j'ouvre la boite de dialogue, je la ferme et j'efface le dcl ;ouverture de la boîte de dialogue (setq fnamedcl (create_dialog_cadfer)) (setq dcl_id (load_dialog fnamedcl)) (setq what_next 5) (while (< 2 what_next) (if (not (new_dialog "temp" dcl_id)) (exit)) blablabla ) (unload_dialog dcl_id) (vl-file-delete fnamedcl)
  6. Bonjour, Ceux de notre génération qui se sont intéressés au sujet sont tous allés s'abreuver à la même source. Pour moi, c'était donc pareil et j'ai toujours scindé le fichier lsp et le fichier dcl. Après, quand on n'est pas dogmatique, on se laisse aussi influencer par quelques écrits apocryphes et j'ai constaté que le dcl, intégré au fichier lsp était beaucoup plus souple d'utilisation. J'avais peur que ce soit indigeste au niveau de la lecture du dcl dans le lsp, mais on peut faire en sorte que ce soit plus ou moins pareil que le dcl pur et dur. La seule chose à laquelle il faut veiller, c'est la longueur de la chaine de caractères. Si elle devient trop longue, il faut faire deux ou trois write-line. Mais sinon, on peut présenter de la même manière que dans le fichier dcl. Amitiés Vincent (defun create_dialog_cadfer (/ fndcl) (setq fnamedcl (vl-filename-mktemp "dcl.dcl")) (setq fndcl (open fnamedcl "w")) (write-line (strcat "temp : dialog { key = label_cadfer; : row { : column { : button { label = \"" (get_MSG 1) "\"; fixed_width = true; key = pick_cadfer; } : image { width = 20; aspect_ratio = 1.3; color = 0; key = image_cadfer; } : popup_list { key = form_cadfer; } : popup_list { key = ferm_cadfer; } : popup_list { key = ins_cadfer; } } spacer_1; spacer_1; " ) fndcl ) (write-line (strcat ": column { fixed_height = true; alignment = top; : popup_list { label = \"" (get_MSG 2) "\"; key = acier_cadfer; } : text { key = type_cadfer; } : text { key = phiext_cadfer; } : text { key = mandrin_cadfer; } : edit_box { label = \"" (get_MSG 3) "\"; key = enrob_cadfer; } spacer_1; : edit_box { label = \"" (get_MSG 4) "\"; key = brins_cadfer; } spacer_1; : row { : edit_box { label = \"" (get_MSG 5) "\"; key = reteq_cadfer; } : text { label = \"" (chr 248) "\"; } } } } spacer_1; ok_cancel_help; } " ) fndcl ) (close fndcl) fnamedcl );defun
  7. Bonjour Le principe que j'ai retenu est de faire créer le dcl par le lisp comme décrit ci dessus. Ensuite, tout mes textes ou liste de texte sont regroupés dans un fichier texte. Le lisp va lire ce fichier et en extrait les textes nécessaires à la boîte de dialogue ou questions et affichages du lisp. En fonction de la langue, ça prend tel ou tel fichier texte. Ainsi, sans changer de programmation, j'ai plusieurs versions disponibles. Par ailleurs, si la traduction n'est pas géniale, chacun pourra aller dans le fichier texte correspondant et corriger. On peut aussi traduire dans la langue qu'on veut en rajoutant le fichier texte qui lui correspond Amitiés Vincent
  8. ça fonctionne comme j'espérais. ça marche bien ainsi et je vais pouvoir changer le contenu du dcl selon les paramètres que je veux, le tout à l'intérieur du lisp. Merci Amitiés Vincent
  9. Merci Je vais donc m'orienter vers la création des fichiers DCL via (vl-filename-mktemp). Tout sera dans le lisp et sera plus facilement paramétrable. Pour l'instant, j'ai toujours un fichier lisp et un fichier dcl du même nom. Je compile les deux pour créer un vlx qui est le seul fichier distribué à des tiers. Si on crée le dcl "à la volée", via le runtime, je pense qu'au moment de le compilation, on n'a plus besoin d'indiquer un fichier de ressources dcl pour créer le vlx ? Le vlx ouvrira le dcl temporaire comme le ferait un lsp, enfin je pense, c'est ce qui me semble dans la logique des choses. J'essaierai ! Amitiés Vincent
  10. Bonjour, lorsqu'on exploite un dcl, on dispose des fonctions set_tile et get_tile pour affecter des valeurs a des éléments de boite de dialogue, respectivement pour les récupérer. Par contre, je n'ai rien trouvé de simple pour définir le label à partir du lisp. par exemple, j'ai dans mon dcl la séquence suivante : popup_list { label = "Mandrin"; key = tmandrin_anc2fer; list = "Ancrage\nCadre"; } la "list" est facilement paramétrable dans le lisp, mais pas le label. Si je veux que ce soit "Mandrin" pour une version française et "Mandrel" pour une version anglaise, je suis soit : - obligé d'avoir 2 fichiers dcl. Le lisp en choisit un ou l'autre en fonction du paramètre de la langue - ne plus avoir de fichier dcl et le faire créer de façon temporaire par le lisp lui-même comme ici. Ainsi on peut paramétrer ce qu'on veut. Est-ce que vous voyez un autre moyen simple ? Merci Amitiés Vincent
  11. zebulon_

    pb de trigo

    Bonjour, oui, dans ce cas, le fait de négliger f^2 conduit à une erreur puisque f est relativement grand par rapport à la demi-corde x et donc f^2 n'est plus négligeable. il faut donc continuer le raisonnement à partir de l'équation 0 = x^2 - 2Rf + f^2 sans négliger f^2 on a f^2 - 2Rf + x^2 = 0 un polynôme du 2ème degré en f dont on cherche la racine et on obtient ce que (gile) indiquait plus haut soit f=R - sqrt (R^2 - x^2) ce qui dans ton cas te donnera le bon résultat. En tracé routier, mettons que j'aie un rayon de 5000m et que je veuille calculer la flèche à 10m du point haut ou bas f=10^2/(2x5000)=0.010 (approximation) f=5000-sqrt(5000^2-10^2)=0.01000001 (résultat exact) ça va ! si par contre j'ai un rayon de 1m et je veux calculer la flèche à 0.50m du point haut ou bas f=0.50^2/(2x1)=0.125 (approximation) f=1-sqrt(1^2-0.50^2)=0.133974596 (résultat exact) là, l'approximation devient trop approximative ! Amitiés Vincent
  12. zebulon_

    pb de trigo

    Bonjour, en tracé routier et donc en conception des ouvrages d'art, on utilisait couramment une approximation pour le calcul d'une flèche d'un profil en long. la formule approximative est la suivante f=x^2/(2*R) où x est la distance au point haut et R le rayon. Cela fonctionne si la flèche est très petite pour des rayons très grands, ce qui est le cas en tracé routier. En fait, on néglige le carré de la flèche. Si la flèche est petite, le carré de la flèche devient négligeable et on dispose d'une formule facile à retenir et dont le calcul est aisé, mais ça reste une approximation ! On applique pythagore, avec f la flèche, x la distance au point haut (ou bas) et R le rayon R^2=x^2 + (R-f)^2 R^2=x^2 + R^2 - 2Rf + f^2 on simplifie 0 = x^2 - 2Rf + f^2 on néglige f^2, seulement possible si f est petit. Attention, je répète que c'est une approximation ! 0 = x^2 - 2Rf f=x^2/2R formule qui devient très fausse avec des rayons petits et des flèches relativement grandes. Mais en tracé routier, le f^2 négligé représente le plus souvent moins d'un millimètre. On n'en est pas là ! Au début, quand je traçais encore sur la planche, je ne faisais mes calculs de nivellement de coffrage qu'avec cette formule. Maintenant, bien sûr, la CAO calcule le bon 1/10ème ou 1/100ème de mm. Amitiés Vincent
  13. Bonjour, oui, je représentais souvent, quand je considérais que c'était nécessaire, l'acier par un petit schéma à côté de la bulle de repère métré, afin de rendre la lecture du plan plus facile. Maintenant, ça génère le schéma tout le temps et automatiquement. Amitiés Vincent
  14. Bonjour j'ai rajouté un module qui dessine le schéma de l'acier à côté de la bulle de repère métré Vous avez ici la vidéo correspondante Amitiés Vincent
  15. zebulon_

    Ferraillage 3D

    et quand ça marche pour un façonnage complexe, ça marche aussi pour un façonnage simple. Amitiés Vincent
  16. zebulon_

    Ferraillage 3D

    Certainement ! Mais quand j'ai commencé à m'intéresser au ferraillage, le bloc dynamique n'existait pas. Donc, mon choix s'est porté à l'époque sur la polyligne et la xdata. Comme je fais du ferraillage d'ouvrages d'art, on rencontre souvent des façonnages avec des formes complexes, pour lesquels les blocs seraient inadaptés. Amitiés Vincent
  17. zebulon_

    Ferraillage 3D

    Un wan so àlt wersch wie a küh leersch emmer noch ebs dezü Me disait toujours ma grand-mère pour me signifier qu'il n'est jamais trop tard pour apprendre. Et elle avait bien raison. Amitiés Vincent
  18. zebulon_

    Ferraillage 3D

    Bonjour, Dorénavant j'utiliserai le Décéaile. Merci de me corriger, compte tenu que le français est pour moi une langue étrangère, au sens linguistique. Mais bon, pour quelqu'un qui a appris le français à l'école, ça va ! Quand je me regarde je me désole, quand je me compare je me console. Amitiés Vincent
  19. zebulon_

    Ferraillage 3D

    Ni la mienne ! Oui, le DCL est un acronyme que tu as un jour très justement détourné en Dramatique Comme Langage, de mémoire, ou quelque chose d'approchant. Amitiés Vincent
  20. zebulon_

    Ferraillage 3D

    Merde, je suis grillé ! Une partie, c'est du DCL, ce qui revient au même finalement ! Trip garanti ! Amitiés Vincent
  21. zebulon_

    Ferraillage 3D

    pour avoir ce genre de solide, qui correspond assez bien à l'acier tel qu'il est façonné Amitiés Vincent
  22. zebulon_

    Ferraillage 3D

    c'est excessif de dire cela. Faire la 3D c'est plus de travail, mais une fois que la 2D est faite, la 3D est assez simple. Puis c'est toujours la même chose, donc le lisp s'impose aussi dans mon cas. L'acier 2D est une polyligne dont l'épaisseur correspond au diamètre, ce n'est pas bien compliqué d'extruder la polyligne en se basant sur un cercle dont le diamètre est l'épaisseur de ladite polyligne. Ensuite une rotation 3D pour placer au bon endroit et puis une répartition dans le sens perpendiculaire, avec un réseau si les espacements sont constants. La difficulté ce sont les aciers comme les cadres qui sont des polylignes qui se retournent sur elles-mêmes, qu'on ne peut pas extruder. Je m'en sors en supprimant les deux crochets à chaque extrémité. J'obtiens donc une polyligne qu'on peut extruder. Ce n'est pas 100% exact, mais on peut imaginer un lisp qui transforme l'acier cadre 2D en cadre 3D avec les crochets d'about qu'il faut décaler d'un diamètre, finalement, comme l'acier qui est livré sur le chantier. Amitiés Vincent
  23. zebulon_

    Ferraillage 3D

    Bonjour, au niveau du ferraillage, j'y vois un intérêt pour le chantier, puisque c'est pour le chantier qu'on les fait les plans d'exécution. La difficulté pour le ferrailleur sur le chantier est d'identifier l'endroit où il doit mettre en place tel ou tel acier. L'idée est de visualiser le modèle 3D sur un pc du chantier avec dwg trueview, qui a l'avantage d'être gratuit, et qui permet de gérer la visibilité des calques de la même manière qu'AutoCAD. Le modèle permettra au ferrailleur de visualiser rapidement où se situe l'acier de numéro de repère n dans tout le paquet de nouilles. Sur un plan 2D papier, il faut reconnaitre que c'est toujours un peu la chasse au trésor pour trouver où se situe tel ou tel numéro. Amitiés Vincent
  24. zebulon_

    Ferraillage 3D

    Bonjour, c'est justement là que je bloque au niveau de ma façon de concevoir mes ouvrages. En fait, la 3D que je fais c'est une extrusion de la 2D. Forcément, dans ces conditions, je dois d'abord faire la 2D, au moins partiellement, pour pouvoir en extruder la 3D. En fait, dans ma façon de procéder, ma 2D est faite avant que j'en fasse une 3D, qui en définitive ne sert que d'illustration à mon propos en 2D. Par ailleurs, quand on ferraille en 2D, on peut aussi assez bien voir où les aciers se croisent, si on fait les coupes aux bons endroits. La première chose qui m'a été enseignée lorsque j'ai commencé à ferrailler des ouvrages : "Ne sois pas avare de coupes" Amitiés Vincent
  25. zebulon_

    Ferraillage 3D

    Bonjour, J'ai réalisé un ferraillage en 3D ici. Il s'agit de la structure ba d'une gare de remontée mécanique. Je ne suis pas convaincu de l'intérêt de la 3D pour le ferraillage. Très rapidement, ça devient tellement dense qu'on n'y voit plus rien. Mais je suis curieux d'entendre vos avis quant à cela. Amitiés Vincent
×
×
  • 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é