Aller au contenu

DenisHen

Membres
  • Compteur de contenus

    4 029
  • Inscription

  • Dernière visite

  • Jours gagnés

    21

Tout ce qui a été posté par DenisHen

  1. Coucou @Luna, et merci pour tes remarques, je n'avais pas fais attention à mon (vlax-ldata. J'aurais du effectivement demander à l'utilisateur cette valeur et la stocker dans un vlax-ldata. Oui, j'utilise très souvent le stockage de valeur via les vlax-ldata. Déjà parceque c'est la seule méthode que j'ai trouvé entre deux sessions AutoCAD. Mais je vais peut-être t'apprendre quelque chose : (setq EpMur (vlax-ldata-get "DenisH" "EpMur" 20)) Donnera EpMur=20 si il n'y a rien dans le vlax-ldata. Si j'ai raison, je suis super content de te renvoyer la balle, après tout ce que tu m'as appris, et aidé... Bien à toi. Denis...
  2. Bonjour à la communauté. Ce sujet m'a inspiré autre chose en restant dans le sujet. Tracer deux parallèles en dessinant un axe. Voici ce que j'ai écris (grâce à vous bien sur) : ;;; ******************************************************* (defun c:DessMur (/ doc PtA PtB) (setq EpMur (vlax-ldata-get "DenisH" "EpMur" 20)) (princ "\nDessinez l'axe du mur :") (command "_.pline" (while (not (zerop (getvar "cmdactive"))) (command pause))) (DoubleDecalage EpMur) (princ) ) ;_ Fin de defun ;;; ******************************************************* (defun DoubleDecalage (Dist / ent) (setq ent (vlax-ename->vla-object (entlast))) (vla-Offset ent (* 0.5 Dist)) (vla-Offset ent (* -0.5 Dist)) (princ) ) ;_ Fin de defun Bien à toi la communauté. Denis...
  3. Bonjour à tous. @(gile) : tu as raison, il me semble que ce code venait de toi, il y a très longtemps 😉. @bonuscad : je n'avais pas du tout pensé à ce sujet que j'avais presque oublié 😉. Du coup, je me perd dans les centaines de lignes d'aide en anglais, mais je pense avoir trouvé... Merci à vous.
  4. Coucou @Luna. Mille mercis pour ton aide. Denis.
  5. Bonjour à la communauté. Dans un dessin, j'ai créé des propriétés personnelles qui sont parfois vides ou à modifier, mais avec mon code, je n'arrive pas à les mettre à jour. Elles restent vides ou avec l'ancienne valeur. (setq sum (vla-get-summaryinfo (vla-get-activedocument (vlax-get-acad-object)))) (and (vl-catch-all-error-p (vl-catch-all-apply 'vla-addcustominfo (list sum "NomMO" NomMO)))) Quelqu'un saurait ce que j'ai raté ?
  6. Coucou. Oui, tu as de bons souvenirs, le chevauchement c'est deux mailles (ou trois soudures) + l'about (les petites barres qui dépasses). Mais non, je ne tiens pas compte de l'enrobage, car cela signifierait que je connais le nombre de treillis lits (sup et inf) et s'il y en a deux épaisseurs par lit et gérer l'épaisseur de dalle. Je concidère que ce serait trop compliqué, et je laisse aussi au dessinateur le soins de juger, mais tu me donne une idée, donner l'épaisseur du lit dessiné... J'ai tous pioché dans "Le précis du bâtiment".
  7. Aïe... Je viens de modifier mon Lisp. On ne sait jamais... TreillisSoudés.zip
  8. J'ai ça :
  9. Bonjour @didier. Je n'ai pas eu l'occasion de le tester sur d'autres machines. Mais je vais faire quelques testes fin août, quand les postes de mes collègues seront libres.
  10. Bonjour à la communautés. J'ai fais de petites routines pour dessiner des teillies soudés, elles ne sont pas parfaites, je le sais, et qui voudrait les améliorer sera le (la) bienvenu(e). Je me suis limité à un rectangle, je ne sais pas faire autrement. On décrit le rectangle par trois points, et on peut en faire plusieurs (lit inférieur ou supérieur, 1 ou 2, tout est trié par calque. Je livre le bloque, qui sert à la nomenclature. Comptage de bloque par calque, ce qui autorise des treillis "bizzares". Je vous livre le tout "brut", ça fonctionne chez moi, je ne sais pas si ça fonctionnera partout. J'utilise des routines de Maître (gile), et je pense que je n'ai pas assez "factorisé" (sous-routines) mon code, pourtant, j'ai essayé, mais n'ayant pas le temps... Je vous donne ça, vous pouvez en faire ce que vous voulez. Bonne continuation à la communauté. Denis... TreillisSoudés.zip
  11. Ok, je viens de piger, enfin je crois : (setq ListNbTS (gc:SubstAt ele Pos ListNbTS)) Toujours ce problème de parenthèses...
  12. Non, je n'ai pas compris pourquoi je n'y arrivais pas (et ça me désole), mais j'y arrive avec la solution de Bruno.
  13. Bonjour @(gile), je sais pertinemment que ce que tu fais fonctionne parfaitement. Il y a juste que je n'y arrivais pas. Loin de moi l'idée d'incriminer tes codes 😉. Je me sert de pas mal des tes routines et c'est un régal...
  14. Salut @Curlygoth, ça faisait longtemps... 😉 C'est ce que je commence à faire... J'ai maintenant plein de petites "routines" que j'appelle depuis d'autres...
  15. Merci Bruno pour ces précieux conseils. Je les observerais désormais. Mais c'est un exercice que je n'ai pas l'habitude de faire, il est vrai que je code avant d'avoir mon "cahier des charges" ou ma trame à suivre. Denis.
  16. Mille mercis Bruno. Ca fonctionne à merveille ! ! !
  17. J'ai ma liste de base qui est ListNbTS qui ne contient que des 0 (zéro). J'aimerais ajouter 1 à un élément de cette liste à la position Pos. Si Pos=2, ListNbTS sera (0 0 1 0 0 ......) Ensuite, si dans ma boucle je retombe sur Pos=2, j'ajouterais 1 à l'élément à dette position, ListNbTS sera (0 0 2 0 0 ......) Et ainsi de suite...
  18. Rebonjour. Voilà, je tente désespérément d'utiliser gc:SubstAt de Maître (gile). Mais ça me sort une erreur. Voici mon bout de code : (setq Text (str2lst Item ";")) (setq Pos (atoi (nth 0 Text))) (princ "\nPos=") (princ Pos) ;; Pos est un INTEGER (princ "\n(nth Pos ListNbTS)=") (princ (nth Pos ListNbTS)) (setq ele (+ (nth Pos ListNbTS) 1)) ;; ListNbTS est une LIST (princ "\nele=") (princ ele) ;; ele est un INTEGER (princ "\nDrapeau 03") (setq ListNbTS (gc:SubstAt (ele Pos ListNbTS))) (princ "\nDrapeau 04") Et voici le résultat dans ma ligne de commande : Sachant que ListNbTS ne contient, pour l'instant, que des 0, et non des "0".
  19. @VDH-Bruno: merci pour ton aide. @didier : j'avais bien regardé les codes de Maître (gile), mais je ne pensais pas que cette commande me servirait, après ta remarque, j'ai approfondi et fini par trouver. Donc, un grand merci... @Luna : merci pour ton aide.
  20. Merci à vous deux pour votre aide...
  21. Bonjour à la communauté. J'aimerais comptabiliser des entités de mon dessin qui sont dans une liste, mais je ne sais pas comment faire. J'aimerais, en fait, ajouter 1 à un élément d'une liste. Ma liste est : (setq ListNb (list 0 0 0 0 0 0)) Et lorsque je rencontre une entité qui serait en troisième position, il faudrait ajouter 1 au troisième élément de la liste ListNb, ce qui donnera ListNb = 0 0 1 0 0 0
  22. Bonjour Bruno et mille mercis pour ton aide, ça fonctionne parfaitement. Encore merci.
  23. Coucou Luna et merci pour ton aide. J'ai tenté ton code : (setq ListTS (vl-sort ListTS '(lambda (s1 s2 / x1 x2) (if (= (setq x1 (substr s1 5 13)) (setq x2 (substr s2 5 13)) ) ;_ Fin de = (< (substr s1 (- (strlen s1) 5)) (substr s2 (- (strlen s2) 5)) ) ;_ Fin de < (< x1 x2) ) ;_ Fin de if ) ;_ Fin de lambda ) ;_ Fin de vl-sort ) ;_ Fin de setq Mais à la sortie du tri, j'ai "2;ST" "1;ST" "10;ST"... J'aurais peut-être du préciser que les éléments de la liste sont plus long que ça, ils ressembleraient plus à : ("1;ST25C;600;240" "10;ST25C;450;240" "2;ST25;200;240" .....)
  24. Bonjour à la communauté. Je tente de trier une liste par ordre croissant : (setq ListTS (vl-sort ListTS '<)) Dans ma liste, je peut avoir "1;ST" "10;ST" "2;ST"... Le problème est qu'à la sortie du tri, j'ai "10;ST" "1;ST" "2;ST"... Je préfèrerais avoir "1;ST" "2;ST" "10;ST", avec le 10 plus grand que 1 et 2... Si quelqu'un a une astuce, un conseil... Denis.
  25. @Luna, merci à toi, j'ai modifié (polymake) car je ne sais effectivement pas faire autrement. Merci encore à toi. Denis.
×
×
  • 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é