Aller au contenu

>>NicoM

Membres
  • Compteur de contenus

    95
  • Inscription

  • Dernière visite

  • Jours gagnés

    6

Tout ce qui a été posté par >>NicoM

  1. En essayant de trouver une solution je suis parti la dessus : (cond ((= nb_x_int 1) (setq px1 (list (+ (car p12) esp_x) (cadr p12)))) ((= nb_x_int 2) (setq px1 (list (+ (car p12) esp_x) (cadr p12)) px2 (list (+ (car px1) esp_x) (cadr p12)))) ((= nb_x_int 3) (setq px1 (list (+ (car p12) esp_x) (cadr p12)) px2 (list (+ (car px1) esp_x) (cadr p12)) px3 (list (+ (car px2) esp_x) (cadr p12)))) ((= nb_x_int 4) (setq px1 (list (+ (car p12) esp_x) (cadr p12)) px2 (list (+ (car px1) esp_x) (cadr p12)) px3 (list (+ (car px2) esp_x) (cadr p12)) px4 (list (+ (car px3) esp_x) (cadr p12)))) ((= nb_x_int 5) (setq px1 (list (+ (car p12) esp_x) (cadr p12)) px2 (list (+ (car px1) esp_x) (cadr p12)) px3 (list (+ (car px2) esp_x) (cadr p12)) px4 (list (+ (car px3) esp_x) (cadr p12)) px5 (list (+ (car px4) esp_x) (cadr p12)))) ((= nb_x_int 6) (setq px1 (list (+ (car p12) esp_x) (cadr p12)) px2 (list (+ (car px1) esp_x) (cadr p12)) px3 (list (+ (car px2) esp_x) (cadr p12)) px4 (list (+ (car px3) esp_x) (cadr p12)) px5 (list (+ (car px4) esp_x) (cadr p12)) px6 (list (+ (car px5) esp_x) (cadr p12)))) ) Ca fonctionne mais niveau programmation je pense que c'est vraiment pas terrible comme façon de faire !
  2. Bonjour, Je travail actuellement sur mon tout premier LISP qui me sert d'exercice en quelque sorte. Voici le code actuel : ;mémorisation puis désactivation des accrochages objet (setq old-osmode (getvar "osmode")) (setvar "osmode" 0) ; définition des variables de base à saisir par l'utilisateur (initget (+ 1 2 4)) (setq dim_x (getint "\nLongueur du poteau (X) ?\n") dim_y (getint "\nLargeur du poteau (Y) ?\n") ) (initget "Forcé Automatique") (setq choix (getkword "\nNombre d'aciers sur la longueur (X) ? [Forcé/Automatique] : <Automatique>\n")) (cond ((= choix "F") (setq nb_x (getint "\nNombre d'aciers forcé (X) ?\n"))) (T (setq nb_x (/ dim_x 10))) ) (setq choix (getkword "\nNombre d'aciers sur la largeur (Y) ? [Forcé/Automatique] : <Automatique>\n")) (cond ((= choix "F") (setq nb_y (getint "\nNombre d'aciers forcé (Y) ?\n"))) (T (setq nb_y (/ dim_y 10))) ) (initget "6 8 10 12 14 16 20 25 32 40") (setq choix (getkword "\nSection des aciers verticaux ? [6/8/10/12/14/16/20/25/32/40] : <14>\n")) (cond ((= choix "6") (setq Sv 6 Svr 7 Rmv 3.0)) ((= choix "8") (setq Sv 8 Svr 9 Rmv 4.0)) ((= choix "10") (setq Sv 10 Svr 11 Rmv 5.0)) ((= choix "12") (setq Sv 12 Svr 13 Rmv 6.0)) ((= choix "16") (setq Sv 16 Svr 18 Rmv 8.0)) ((= choix "20") (setq Sv 20 Svr 22 Rmv 10.0)) ((= choix "25") (setq Sv 25 Svr 28 Rmv 12.0)) ((= choix "32") (setq Sv 32 Svr 35 Rmv 16.0)) ((= choix "40") (setq Sv 40 Svr 45 Rmv 20.0)) (T (setq Sv 14 Svr 15 Rmv 7.0)) ) (setq choix (getkword "\nSection des aciers transversaux ? [6/8/10/12/14/16/20/25/32/40] : <8>\n")) (cond ((= choix "6") (setq St 6 Str 7 Rmt 1.5)) ((= choix "10") (setq St 10 Str 11 Rmt 2.5)) ((= choix "12") (setq St 12 Str 13 Rmt 3.0)) ((= choix "14") (setq St 12 Str 13 Rmt 3.5)) ((= choix "16") (setq St 16 Str 18 Rmt 4.0)) ((= choix "20") (setq St 20 Str 22 Rmt 5.0)) ((= choix "25") (setq St 25 Str 28 Rmt 6.0)) ((= choix "32") (setq St 32 Str 35 Rmt 8.0)) ((= choix "40") (setq St 40 Str 45 Rmt 10.0)) (T (setq St 8 Str 9 Rmt 2.0)) ) (initget (+ 1 2 4)) (setq esp_1 (getint "\nEspacement des cadres ?\n") ) (initget 0) ; définition des coordonées des points de construction du poteau (setq p10 (getpoint "\Point de base du poteau ?\n") p11 (list (+ (car p10) ev) (+ (cadr p10) ev)) p12 (list (+ (car p11) Rmt) (+ (cadr p11) Rmt)) p20 (list (car p10) (+ (cadr p10) dim_y)) p21 (list (+ (car p20) ev) (- (cadr p20) ev)) p22 (list (+ (car p21) Rmt) (- (cadr p21) Rmt)) p30 (list (+ (car p10) dim_x) (+ (cadr p10) dim_y)) p31 (list (- (car p30) ev) (- (cadr p30) ev)) p32 (list (- (car p31) Rmt) (- (cadr p31) Rmt)) p40 (list (+ (car p10) dim_x) (cadr p10)) p41 (list (- (car p40) ev) (+ (cadr p40) ev)) p42 (list (- (car p41) Rmt) (+ (cadr p41) Rmt)) ) ; dessin des rectangles (command "_rectang" p10 p30 "") (command "_rectang" p11 p31 "") (command "_rectang" p12 p32 "") ; calcul des points intermédiaires (setq d1242 (- (car p42) (car p12)) esp_x (/ d1242 (- nb_x 1)) nb_x_int (- nb_x 2)) (repeat nb_x_int ;...??? ; remise en état initial des accrochages objet (setvar "osmode" old-osmode) J'ai un point de blocage sur la fonction repeat... je ne sais pas du tout comment l'écrire. Mon but est le suivant: J'aimerais calculer et extraire les coordonnées d'un nombre de point variable et espacés régulièrement. Voici un exemple ci-dessous: Comment faire pour définir le bon nombre de variable (p101 p102 p10x ...) en incrémentant leur nom ? Comment faire pour repartir des coordonnées du point précédemment calculé pour y ajouter la valeur "esp_x" ? La fonction repeat est-elle la bonne solution ? Je suis sur que vous avez une solution magique dans votre sac ! :D
  3. >>NicoM

    Filtre inactif

    De ce que je comprend, il ne s'agit pas d'une histoire de priorité. De manière générale le remplacements de graphisme par filtres du bas de la liste sont appliqués en premier puis remplacés par les suivant en allant vers le haut. Dans le cas d'un filtre type oui/non, si un filtre du bas la liste est désactivé, les éléments seront masqués, si un autre filtre placé plus haut vient afficher ces même objets, il va essayé d'afficher des éléments qui sont déjà masqués. Même si le filtre du bas est activé mais pas celui du haut, le résultat sera le même. Ce sont bien 2 paramétres différents qui s'appliquent sur les mêmes objets, si l'un deux est désactivé, ils ne s'afficheront pas, peut importe leur ordre dans la liste. En gros il suffit simplement de supprimer l'un de ces 2 paramètres...
  4. Merci pour ces partages. J'ai déjà lu l'introduction à AutoLISP de (gile) mais je ne connaissais pas le site Didier qui semble parfait pour commencer ! :D
  5. Je me doute bien que ce genre de lisp n'est pas simple et au vu de mes difficultés à appréhender le sujet, je vais commencer par essayer de comprendre le fonctionnement de lisp simple. As-tu quelque lisp basique en tête qui pourrais m'aider à apprendre comment faire pour commencer à marcher ? :P
  6. Effectivement, dire que j'exagère avec les imbrications de champs (et de blocs dynamiques...) est peu dire! J'ai vraiment poussé au bout de ce que je pouvais faire sans les LISP que je ne maitrise pas du tout. C'est bien pour ça que je commence à m'y intéresser sérieusement mais j'ai un gros chantier sur les bras qui m'oblige à repousser un peu mon apprentissage :( C'est un peu dommage que ces lisp ne soient pas adaptés à mon utilisation, je vais continuer à faire mon "clic droit, insérer un champ, objet, selection du texte, index, +, etc..." même si quand il y en a une trentaine c'est un peu long... L'écriture de ce lisp sera un bon exercice et je ferais probablement appel à vos services pour m'aider un peu.
  7. Merci beaucoup c'est effectivement ce que je cherchais! J'ai instaler la deuxième version mais je ne suis pas sur de bien m'en servir. Quand je tape "Addfield" ça me propose bien de sélectionner les champs, mais les autres types de textes ne sont pas sélectionnables. Je ne comprends pas vraiment pourquoi.. peut être le gap entre la version Autocad 2009 et la 2020 que j'utilise ? Dans mon cas, ce n'est pas bien grave car les textes que je veux sélectionner sont des champs de toute façon. Ces champs sont presque tous composés de formules imbriquées les unes dans les autres qui peuvent aller chercher des paramètres personnalisés du document ou des index d'autres champs. (Je dois faire regen 4 ou 5 fois pour être sûr d'avoir les bonnes valeurs a l'écran...) La 2e version du lisp ne reconnais pas ces champs imbriqué, toutes les references ont été perdu et les valeurs apparaissent avec des #### . Que-ce que je fais de mal ?
  8. Bonjour à tous. Je suis tombé sur un vieux sujet qui parle d'addition des champs, mais le lien vers un lisp qui permet d'additionner les index de texte n'est plus valide. J'utilise énormément les formules des champs et j'aimerais pouvoir faire de simple additions de plusieurs objets avec une sélection multiple. L'idéale serait que ce lisp fonctionne pour additionner les index de texte ou multi-texte et les longueurs des lignes ou polyligne. Si quelqu'un sait ou je peut trouver ce saint graal je suis vraiment preneur !!
  9. >>NicoM

    Addition de champ

    le sujet est un peu vieux, mais lien vers le lisp de gile permettant de faire une addition de champs par sélection de texte renvois vers l'accueil du forum. Ou puis-je retrouver ce lisp magique ? Il me permettrais de gagner un temps fou !
  10. >>NicoM

    plan 3d

    Je pense que ce que tu cherche c'est une étiquette d'élèvation. Les côtes de coordonnées ne sont pas faite pour l'altimétrie.
  11. >>NicoM

    Mon premier LISP

    Merci (gile) pour la démonstration de la méthode permettant l'écriture des ligne command simplifié. Ça me sera très utile. Didier j'ai été voir ton site, il a l'air super pour les débutant comme moi ! Je vais m'en servir de bible :D
  12. >>NicoM

    Mon premier LISP

    Merci ! Evidemment, il suffisait de rajouter le "entrée" ! Je vais m'habituer petit à petit, ça à l'air assez simple quand on lit le PDF de gile, mais en fait non... :blink: Je vais continuer à faire mes essais pour arriver a l'objectif décrit plus haut. Je suis déjà content que la commande fonctionne :D
  13. >>NicoM

    Mon premier LISP

    Voila, maintenant j'en suis là, je n'arrive pas à définir le pt2. La commande "_pline" se lance bien mais quand je la valide le bloc2 ne s'insère pas. (defun c:test02 () (setq pt1 (getpoint)) (command "_-insert" "Coche" pt1 100 "" 0 ) (setq pt2 (getpoint)) (command "_pline" pt1 pt2) (command "_-insert" "Bulle" pt2 100 "" 0) )
  14. >>NicoM

    Mon premier LISP

    Merci ! En effet avec les parenthèses, j'ai au moins la première étape ! :D
  15. >>NicoM

    Présentation

    Oui il m'as semblé voir que DYNAMO n'était pas vraiment populaire sur ce Forum. D'ailleurs très peu de sujets figurent sur les forums FR. C'est dommages, il y a énormément de possibilité en développement. Je rêve utopiquement d'un modèle Revit exporté via Dynamo sur Excel et importé sur Autocad via la langage LISP. Tout un programme... En tout cas je suis heureux de rejoindre la communauté !
  16. Bonjour, Après avoir lu et relu l'introduction à AutoLISP de Gile et éprouvant quelques difficultés à tenter d'écrire un LISP tout bête, je viens vous demander un peu d'aide... L'objectif est très simple : - Insérer le bloc1 au point1 (avec le facteur d'échelle et la rotation sur les valeurs par défaut) - Dessiner une polyligne depuis le point1, saisir quelques points éventuelles et terminer sur le point2 - Insérer le bloc2 au point2. Dans un deuxième temps je voudrais incrémenter l'attribut du bloc2 (+1 à chaque occurrences) en ayant la possibilité de choisir le numéro initial. ça peut paraître tout bête pour vous mais quand on est pas du tout familier avec l'univers de la programmation ce n'est pas évident. Pour le moment j'en suis là: (defun c:test02 () (command "_-insert" "Coche" getpoint 100 "" 0) ) Je ne comprend pas pourquoi à l'insertion du bloc1, il me demande toujours les facteurs d'échelle en X, en Y et la rotation. J'ai l'intention de développer un bon nombre de code, mais la phase de démarrage est vraiment délicate... (command "HELP_PLZ")
  17. Salut, En complement de la réponse de alek ultimate, si le problème consiste a passer d'une forme géométrique simple à une autre, les paramétres de visibilité peuvent aussi t'être très utiles. Chaque forme contenue dans les états de visibilité peut être calculé indépendamment mais toujours à partir du même pararametre : "l'air" ????
  18. Bonjour à tous ! C'est avec plaisir que je fais ma présentation sur ce forum :D Je suis un projeteur béton armé de 32ans dans un BET du Sud de la France. Du haut de mes 5 ans d'expérience et quelques chantiers d'envergure, j'ai acquis une belle expérience sur AutoCAD et Revit (depuis 2016). Je cherche constamment à améliorer les méthodes de travail et je commence à arriver au stade ou je n'ai plus le choix, la programmation devient incontournable... Les blocs dynamiques et les champs autocad ne me suffisent plus, les familles paramétriques et leurs étiquettes non plus... Deux sujets sont alors au gout du jours : le langage LISP (merci Gile) et DYNAMO pour Revit. Ce forum m'a énormément aidé jusqu'ici et c'est avec plaisir que je pourrais partagé à mon tour les connaissances acquises ;) . Au plaisir de vous retrouver dans un des nombreux sujet !
  19. Les forums CADxp m'ont déjà apportés beaucoup d'aide mais je viens tout juste de m'inscrire sur CADxp. En activant le suivi sur les sujets qui m'intéresse, je me suis rendu compte qu'il n'y avait aucun forum dédié à la programmation visuelle pour Revit, à savoir DYNAMO. Pourtant les sujets ne manque pas et les voies de développement de cet outils sont énormes... Qu'en pensez vous ?
  20. >>NicoM

    Fonction boole

    J'arrive bien après la bataille mais je commence tout juste à m'intéresser à la programmation AutoCAD et j'ai bloqué exactement au même point que mateus. Merci beaucoup pour ces explications, le concept du code binaire n'est pas intuitif du tout au première abord...
×
×
  • 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é