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. Salut Bruno, et merci pour cette précision.
  2. DenisHen

    qwerty

    Oops...
  3. DenisHen

    qwerty

    Salut. Eh ben ils t'ont mentis, regarde dans un bon dictionnaire, s'il est bien fait, les mots sont en majuscules accentuées et les définitions en minuscules.
  4. Tu n'en n'as pas, tu en es un... Nuance. ;) Je me doutais bien qu'intervenir sur une liste depuis une autre, tu allais finir par le couple mapcar / lambda... Effectivement, ça me met le pied à l'étrier... Encore un grand merci à toi...
  5. Bonjour. Il me semble qu'elles ne sont pas "éditables", donc, non modifiables.
  6. Que dire... Nickel... J'ai toujours des problèmes dès que je touche aux listes... Ce qui est un comble, je l'avoue, en LISP. :huh: Merci mille fois Maître (gile)... Non, le titre "Maître" n'est pas usurpé... ;)
  7. Merci (gile), c'est ce que je viens de voir dans le message #9. Mais où je me suis trompé dans la construction de ma liste ?
  8. Bonjour (gile), et merci pour ton aide. Mais si je fais ce qui suit, la console me sort une erreur : _$ LstEntete ((35 . "Détection Vidéo") (34 . "Détection Unitaire") ...... (2 . "Bâtiments") 1 . "Aucun") _$ (reverse LstEntete) ; erreur: liste incorrecte: "Aucun" Je viens de voir qu'il manque une parenthèse avant la dernière paire 1 . "Aucun". Tu as une idée ? Car là, je rame... ;)
  9. Salut. Merci Bruno pour ton aide. Mais je n'arrive pas à inverser ma liste par son nom, j'ai essayé plusieurs de trucs : _$ LstEntete ((35 . "Détection Vidéo") (34 . "Détection Unitaire") (33 . "Détection Téléreport") ...... _$ (reverse '(LstEntete)) (LSTENTETE) _$ (reverse (LstEntete)) _$ LstEntete ((35 . "Détection Vidéo") (34 . "Détection Unitaire") (33 . "Détection Téléreport") ...... _$ (reverse (list (LstEntete))) _$ LstEntete ((35 . "Détection Vidéo") (34 . "Détection Unitaire") (33 . "Détection Téléreport") ...... _$ (reverse LstEntete) ; erreur: liste incorrecte: "Aucun" _$ (reverse 'LstEntete) ; erreur: type d'argument incorrect: listp LSTENTETE _$ (reverse (list LstEntete)) (((35 . "Détection Vidéo") (34 . "Détection Unitaire") (33 . "Détection Téléreport")...... _$ LstEntete ((35 . "Détection Vidéo") (34 . "Détection Unitaire") (33 . "Détection Téléreport")...... [/Code] Rien ne fonctionne et je n'ai vraiment pas l'habitude des listes...
  10. Salut Bruno... Mille merci, c'est nickel... A part l'ordre invers, mais je ne pense pas que ça posera problème avec un (assoc... Encore merci à tous...
  11. Salut Vincent, et merci pour ton aide. Ça fonctionne presque ! Le résultat est : Il y a des listes DANS des listes, toutes pointées... Une idée ?
  12. Bonjour à tous. Aujourd'hui, j'essai d'ajouter des paires pointées à une liste de ... paires pointées.. J'ai ça : (setq LstEntete (cons Lst "Aucun")) Qui me donne bien : Mais je n'arrive pas à ajouter des paires pointées à cette liste : (setq LstEntete ((list LstEntete (cons Lst Entete)))) ou j'ai maintenant : Bien sur, Lst est incrémenté quelque-part entre ces lignes... J'ai lu et relu "Introduction_a_AutoLISP" de (gile), mais je crois que je tourne en rond... Si quelqu'un a une astuce, un conseil... Je suis preneur...
  13. DenisHen

    Lisps de gile

    C'était ça... Mille merci (gile)... ;)
  14. Salut bonuscad, et merci pour ton aide, je pense avoir trouvé la solution, voici mon code qui a l'air de fonctionner : (defun c:RemplBlkV4 (/ ss i ent elst BlkNom Resultat indexs NouvBlkNom) (princ "\nDéveloppé par Denis H.") (princ "\nRemplacement des blocs incrémentés...") (setq ss nil i 0 ) ;_ Fin de setq (if (setq ss (ssget "_X" '((0 . "INSERT")))) (progn (while (setq ent (ssname ss i)) (setq i (1+ i) elst (entget ent) BlkNom (cdr (assoc 2 elst)) ) ;_ Fin de setq (setq Resultat (vl-string->list BlkNom)) (if (/= (vl-string-search "_" (vl-list->string (reverse Resultat))) nil) (progn (setq index (- (length Resultat) (vl-string-search "_" (vl-list->string (reverse Resultat))))) (setq NouvBlkNom (if (eq (type (read (substr BlkNom (1+ index)))) 'INT) (substr BlkNom 1 (1- index)) BlkNom ) ;_ Fin de if ) ;_ Fin de setq (princ (strcat "\nAncien bloc: " BlkNom " -> Nouveau bloc: " NouvBlkNom)) (if (/= NouvBlkNom BlkNom) (progn (setq elst (subst (cons 2 NouvBlkNom) (assoc 2 elst) elst)) ; (entmod elst) ) ;_ Fin de progn ) ;_ Fin de if ) ;_ Fin de progn ) ;_ Fin de if ) ;_ Fin de while ) ;_ Fin de progn ) ;_ Fin de if (princ) ) ;_ Fin de defun Encore un grand merci...
  15. Bonjour. J'ai maintenant, ce code : (defun c:RemplBlkV4 (/ ss i ent elst BlkNom Resultat indexs NouvBlkNom) (princ "\nDéveloppé par Denis H.") (princ "\nRemplacement des blocs incrémentés...") (setq ss nil i 0 ) ;_ Fin de setq (if (setq ss (ssget "_X" '((0 . "INSERT")))) (progn (while (setq ent (ssname ss i)) (setq i (1+ i) elst (entget ent) BlkNom (cdr (assoc 2 elst)) ) ;_ Fin de setq (setq Resultat (vl-string->list BlkNom)) (setq index (- (length Resultat) (vl-string-search "_" (vl-list->string (reverse Resultat))))) (setq NouvBlkNom (if (eq (type (read (substr BlkNom (1+ index)))) 'INT) (substr BlkNom 1 (1- index)) BlkNom ) ;_ Fin de if ) ;_ Fin de setq (princ (strcat "\nAncien bloc: " BlkNom " -> Nouveau bloc: " NouvBlkNom)) (if (/= NouvBlkNom BlkNom) (progn (setq elst (subst (cons 2 NouvBlkNom) (assoc 2 elst) elst)) ; (entmod elst) ) ;_ Fin de progn ) ;_ Fin de if ) ;_ Fin de while ) ;_ Fin de progn ) ;_ Fin de if (princ) ) Mais ça ne fonctionne pas et AutoCAD me répond : J'avoue ne pas savoir quoi faire...
  16. DenisHen

    Lisps de gile

    Salut (gile), et merci pour cette réponse. J'ai bien désinstallé RadicalPurge puis installé la dernière version (1.2.1). J'ai RP sur ma version AutoCAD MAP 2017 mais pas sur AutoCAD MAP 2018.
  17. DenisHen

    Lisps de gile

    Bonjour à tous. Suite à ma mise à jour AutoCAD MAP 2017 vers 2018, j'ai maintenant les deux AutoCAD. Problème, RadicalPurge fonctionne très bien sur mon 2017, mais je ne l'ai pas sur mon 2018, ce qui est normal. Mais si je lance l'installation de RP, il me propose une réparation ou une désinstallation, ce qui est aussi normal. Comment avoir RP sur les deux AutoCAD en même temps ?
  18. Mille mercis bonuscad. Je comprend mieux maintenant... ;)
  19. Salut Olivier. Merci pour cette précision, je l'aurais parié... ;)
  20. Bonjour à tous. Je pense que tout est dans le titre. Mon Covadis 15 est-il compatible avec AutoCAD MAP 2018 ?
  21. Salut bonuscad, et merci de ton aide. Mais les (mapcar et les (lambda, j'essai d'éviter, je ne les maîtrise pas encore... Surtout que tu m'en a mis deux paires... Là, tu me surestimes... ;) Et je n'ai pas la liste "exacte" des blocs, ils diffèrent à chaque dessin.
  22. Salut le Décapode. Mille mercis... Denis...
  23. DenisHen

    Rectangle facilité

    Content d'avoir pu t'aider... ;) Relis le fil, je t'ai ajouter une gestion d'erreur. Plutôt que d'utiliser [F3], pourquoi pas un [Ctrl] + clic droit ? Sauf si tu connais l'accroche que tu veux pendant la saisie des distances. Dans ce cas, on peut le paramétrer.
  24. DenisHen

    Rectangle facilité

    Personnellement, je placerais (maintenant que je sais à peu près le faire) une gestion d'erreur. Ce qui te permettra un [Echap] pendant ton code et de retrouver l'accrochage enregistré : (defun c:rct (/ p1 longueur largeur p2 p3 p4) ;;; Gestion des erreurs ******** (setq olderror *error*) (defun *error* (msg) (princ msg) (setvar "osmode" old_osmode) (setq *error* olderror) (princ) ) ;_ Fin de defun (setq old_osmode (getvar "osmode")) (setvar "osmode" 0) (setq p1 (getpoint "\nPoint de Base :")) (setq longueur (getdist p1 "\nLongueur :") largeur (getdist p1 "\nLargeur :") ) ;_ Fin de setq (setq p2 (list (+ (car p1) longueur) (cadr p1)) p3 (list (+ (car p1) longueur) (+ (cadr p2) largeur)) p4 (list (car p1) (+ (cadr p1) largeur)) ) ;_ Fin de setq (command "_pline" p1 p2 p3 p4 "c") (command "_rotate" "d" "" p1 pause "") (setvar "osmode" old_osmode) (princ) )
  25. DenisHen

    Rectangle facilité

    Mais les trois points doivent définir deux droites parfaitement perpendiculaires...
×
×
  • 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é