-
Compteur de contenus
6 374 -
Inscription
-
Dernière visite
-
Jours gagnés
30
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par Patrick_35
-
[Résolu] Listing des calques des objets sélectionnés
Patrick_35 a répondu à un(e) sujet de CTZen dans AutoCAD 2018
Non, on appelle directement la fonction, pas une liste En général, tu vois (mapcar '(lambda(x)(print x)) (vl-sort lst '<)) car lambda est une fonction anonyme (defun imprime(doc) (print doc) ) (mapcar 'imprime (vl-sort lst '<)) fonctionne aussi tout comme (mapcar 'print (vl-sort lst '<)) Si tu regardes certaines réponses de Bonus, tu verras qu'il se sert de la fonction lambda pour réaliser une routine Par exemple ps : ici, on pourrait très bien utiliser un foreach car le retour du mapcar importe peu, mais c'est pour économiser les variables. @+ -
[Résolu] Listing des calques des objets sélectionnés
Patrick_35 a répondu à un(e) sujet de CTZen dans AutoCAD 2018
Tu peux reprendre le code, au contraire :D Mais une chose , tu as déjà un filtre qui évite les doublons avec (or (vl-position (vla-get-layer ent) lst)... Traduction avec le or --> Si je n'ai pas la position du calque dans la liste, alors ... Ensuite, on peut aussi faire (mapcar 'print (vl-sort lst '<)) Ce qui évite une variable @+ -
[Résolu] Listing des calques des objets sélectionnés
Patrick_35 a répondu à un(e) sujet de CTZen dans AutoCAD 2018
Salut La même réponse que Denis qui a été le plus rapide. Je donne quand même ma solution. (defun c:lstc(/ ent lst sel) (and (ssget) (progn (vlax-for ent (setq sel (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object)))) (or (vl-position (vla-get-layer ent) lst) (setq lst (cons (vla-get-layer ent) lst)) ) ) (vla-delete sel) (mapcar 'print lst) ) ) (princ) ) @+ -
Challenge récursive 2
Patrick_35 a répondu à un(e) sujet de (gile) dans Pour aller plus loin en LISP
Ben oui, il faut s'habituer à utiliser plus souvent apply. @+ -
Non, pas du tout. Et je viens de me souvenir que j'avais déjà donné cette solution. J'ai confondu avec InputBox. Faut pas vieillir :huh: @+
-
mais sur quel OS suis je?
Patrick_35 a répondu à un(e) sujet de Fraid dans Pour aller plus loin en LISP
Salut Avec (getenv "os") ? @+ -
Les codes 40 et 41 suivent le code 10. Donc tu dois pouvoir t'y retrouver. Sinon, en vlisp sur une poly ouverte (setq poly (vlax-ename->vla-object (car (entsel)))) (setq segs (/ (length (vlax-get poly 'coordinates)) 2)) (setq seg 0) (repeat segs (vla-getwidth poly seg 'deb 'fin) (princ (strcat "\nSegment " (itoa (1+ seg)) " - Début : " (rtos deb) " - Fin : " (rtos fin))) (setq seg (1+ seg)) ) @+
-
Salut Un exemple qui modifie tous les codes 40 et 41 d'une poly (mapcar '(lambda(x) (cond ((eq (car x) 40) (cons 40 0.0) ) ((eq (car x) 41) (cons 41 0.0) ) (T x ) ) ) (entget (car (entsel))) ) Sinon, il reste la commande _.pedit @+
-
Bonjour Je viens de faire une recherche pour afficher une boite de dialogue et j'ai trouvé ceci. Enfin une boite de dialogue avec icone possible sans utiliser vba. Donc traduction en vlisp. (defun msgbox(titre message bouton / wsh) ; Types de bouton ; Valeur Description ; 0 Affiche le bouton OK. ; 1 Affiche les boutons OK et Cancel. ; 2 Affiche les boutons Abort, Retry et Ignore. ; 3 Affiche les boutons Yes, No et Cancel. ; 4 Affiche les boutons Yes et No. ; 5 Affiche les boutons Retry et Cancel. ; Types d'icônes ; Valeur Description ; 16 Affiche l'icône "Stop". ; 32 Affiche l'icône "Point d'interrogation". ; 48 Affiche l'icône "Point d'exclamation". ; 64 Affiche l'icône "Informations". ; Valeurs de retour ; Valeur Description ; 1 Bouton OK ; 2 Bouton Cancel ; 3 Bouton Abort ; 4 Bouton Retry ; 5 Bouton Ignore ; 6 Bouton Yes ; 7 Bouton No (setq wsh (vlax-create-object "WScript.Shell") res (vlax-invoke wsh 'popup message nil titre bouton) ) (vlax-release-object wsh) res ) Pour tester (msgbox "Mon alerte" "Autocad coule..." (+ 2 16)) ps : le timer pour fermer automatiquement la bd n'a pas l'air de fonctionner sur Autocad (remplacer le nil dans la fonction par un chiffre (secondes)). @+
-
Salut Tu as aussi BIBLES, lisp créé pour une v14, cela ne nous rajeunie pas. @+
-
Challenge récursive 2
Patrick_35 a répondu à un(e) sujet de (gile) dans Pour aller plus loin en LISP
Salut Oui, mais avec une récursive, difficile de faire autrement, à moins de créer une fonction comme ma 1ere version. J'ai pensé remettre la liste à plat, et cela revient à la demande initiale. @+ -
Salut Avec la commande insérer --> parcourir. Il te propose de redéfinir le bloc. Si tu souhaites automatiser la tâche, tu peux aussi faire insérer --> Nom_bloc="c:\\patati\\patata\\Nom_bloc.dwg" @+
-
Comment fixer l'échelle d'une fenêtre
Patrick_35 a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Je t'ai indiqué la propriété en vlisp Ou sinon, avec la commande zoom --> ...xp @+ -
Comment fixer l'échelle d'une fenêtre
Patrick_35 a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Oui Toujours extrait de l'aide @+ -
Challenge récursive 2
Patrick_35 a répondu à un(e) sujet de (gile) dans Pour aller plus loin en LISP
Bonjour à tous Ma version (defun rch_che(rep) (cons rep (mapcar '(lambda(x) (rch_che (if (= (substr rep (strlen rep) 1) "\\") (strcat rep x) (strcat rep "\\" x) ) ) ) (if (= (substr rep (strlen rep) 1) "\\") (vl-directory-files rep "*.*" -1) (cddr (vl-directory-files rep "*.*" -1)) ) ) ) ) @+ -
Comment fixer l'échelle d'une fenêtre
Patrick_35 a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Salut En vlisp avec la propriété CustomScale Pour le dxf, extrait de l'aide @+ -
geler des calques dans une fenêtre
Patrick_35 a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Oui Non Une liste suffit Je viens de mette la main dessus. On est tous passé par là ;) Oh, de rien A la vu du nom, je dirais que non, mais avec tout ce que j'ai fait... @+ -
geler des calques dans une fenêtre
Patrick_35 a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Il faut modifier la liste des xdatas. Le principe est simple. Le code dxf 1003 correspond au nom du calque et s'il est présent --> Gel dans la fenêtre. Avec les outils que t'a donné (gile), tu devrais y arriver. ps : il m'avait aussi fait une dll pour GEF --> vplayerlisp.dll, à rechercher sur le site de (gile) @+ -
geler des calques dans une fenêtre
Patrick_35 a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Salut C'est dans les xdatas de la fenêtre. Pour vérifier, tu gèles un calque dans une fenêtre et tu utilises ensuite xdlist des express. @+ -
Challenge récursive 2
Patrick_35 a répondu à un(e) sujet de (gile) dans Pour aller plus loin en LISP
Une piste, une racine a toujours 3 caractères. @+ -
Challenge récursive 2
Patrick_35 a répondu à un(e) sujet de (gile) dans Pour aller plus loin en LISP
Exact, comme avec le strcat @+ -
Challenge récursive 2
Patrick_35 a répondu à un(e) sujet de (gile) dans Pour aller plus loin en LISP
Salut Tu as les répertoires "." et ".." qui apparaissent dans la liste. Pour éviter de les trouver, tu peux utiliser la fonction cdr + cdr = cddr pour le retour de la fonction vl-directory-files. @+ -
Comment modifier "en masse" le chemin de photos insérées ??
Patrick_35 a répondu à un(e) sujet de oran dans AutoCAD 2017
Salut Avec le lisp de ce message ou tout simplement su supprimant le lien pour intégrer la photo dans le dessin (ouverture avec Paint --> Copier dans Paint et coller dans Autocad) @+ -
Challenge récursive 2
Patrick_35 a répondu à un(e) sujet de (gile) dans Pour aller plus loin en LISP
Salut Je suis d'accord, le mapcar n'est pas nécessaire, mais il n'est pas si innocent ;) ps : j'attends demain pour proposer ma solution. @+
