Rechercher dans la communauté
Affichage des résultats pour « challenge » dans sujets.
502 résultats trouvés
-
Salut (gile) : Une petite amélioration possible dans ton lisp pour éviter un not en utilisant un or à la place du and et donc inverser la logique pour le test sur les onglets et les xrefs. On peut aussi éviter le if grâce au and (ou or si le not est supprimé) C'est juste histoire de gratter quelques millisecondes ;) On peut aussi rebondir sur ce challenge pour dénombrer le nombre de bloc A, le nombre de B, etc... Notre King (ElpanovEvgeniy) va pouvoir se creuser un peu plus les méninges ;) Pour la purge, on peux faire un truc très simple (repeat 10 (vla-purgeall (vla-get-activedocument (vlax-get-acad-object))) ) S'il y a + de 10 imbrications, c'est que le dessin est complexe. @+
-
pfoui, dommage que ca marche pas. L'idée de de parcourir les présentations était aussi mon option de secours ;) merci quand même. Pour le challenge 30, j'ai déjà un peu travailler sur ça, si j'ai le temps j'attaquerai à entre midi et deux.
-
Créer son propre type de trait
lili2006 a répondu à un(e) sujet de suli dans Bibliothèques de composants
Bonjour à toutes et tous, Neptune38 avait proposé gracieusement de partager ses persos ici,... Tu peux alors t'inspirer de la syntaxe. Tu peux sinon te rendre dans l'aide AutoCAD dans => Dans la recherche de forum, tu trouveras également plein de posts sur ce sujet,... Un post "challenge" à consulter également,... -
Salut, Ma réponse est la même que celle d'Evgeniy. (defun list_up (ind lst) (cond ((or (null ind) (null lst)) lst) ((= 0 (car ind)) (cons (car lst) (list_up (cdr (mapcar '1- ind)) (cdr lst))) ) ((= 1 (car ind)) (cons (cadr lst) (list_up (cdr (mapcar '1- ind)) (cons (car lst) (cddr lst))) ) ) (T (cons (car lst) (list_up (mapcar '1- ind) (cdr lst)))) ) ) Je l'avais donnée ici. C'est là que j'ai piqué cette idée de challenge. Eh Tramber, tu as eu tout le week-end !...
-
Bonjour, la sous routine dont le code est ci-dessous me permet de sortir une catégorie d'une chaine de caractères, elle fonctionne bien mais pour mettre a jour la liste des prénoms par exemple c'est un peu dur pour des non programmeurs, c'est pourquoi je souhaiterais les mettre dans un bloc notes sous la forme : ("mot1" . "catégorie") ("mot2" . "catégorie") ("mot3" . "catégorie") ........................................ ("motN" . "catégorie") ou alors dans un fichier Excel (Open office Calc) ou mieux dans un fichier mdb d'access via les fonctions ADOLisp. Quelles seraient pour vous le choix le plus judicieux et le plus facile à coder ? C'est une sorte de challenge ! Merci, ;--------------------------------------------------------------- ;;; sous-fonction permettant de vérifier la catégorie d'un mot suivant les listes de contrôle et de renvoyer cette catégorie dans le programme principal (defun verification_mot (mot_a_verifier / outpout_categorie) (setq LISTE_PRENOMS (list "A." "Adam" "Adolphe" "Adrien" "Aimee" ............................ "Yves" "Yvonnick" "Zacharie" "Zenaide" "Hilarion" "E." "Ermangarde")) (setq LISTE_TYPES (list "Allée" "Avenue" "Bosquets" "Boulevard" "Canal" "Carré" ............................ "Terrain" "Villa" "Village")) (setq LISTE_ARTICLES (list "d'" "de" "de" "de" "l'" "de" "la" "des" "du" "l'" "le" "au" "aux")) (setq LISTE_TITRES (list "Abbé" "Abbe" "Amiral" "Capitaine" ............................ "Sous-Lieutenant" "Sous_Lieutenant")) (setq LISTE_PARTICULES (list "D'" "De" "De" "L'" "De" "La" "Des" "Du" "L'" "La" "Le")) (setq LISTE_TEXTES (list "et" "Et" "Dit" "DIT" "dit")) (cond ((vl-position mot_a_verifier LISTE_PRENOMS) (setq outpout_categorie "PRENOM")); fin member dans LISTE_PRENOMS ((vl-position mot_a_verifier LISTE_TYPES) (setq outpout_categorie "TYPE_VOIE")); fin member dans LISTE_TYPE ((vl-position mot_a_verifier LISTE_ARTICLES) (setq outpout_categorie "ARTICLE")); fin member dans LISTE_ARTICLE ((vl-position mot_a_verifier LISTE_TITRES) (setq outpout_categorie "TITRE")); fin member dans LISTE_TITRE ((vl-position mot_a_verifier LISTE_PARTICULES) (setq outpout_categorie "PARTICULE")); fin member dans LISTE_PARTICULE ((vl-position mot_a_verifier LISTE_TEXTES) (setq outpout_categorie "TEXTE")); fin member dans LISTE_TEXTE (T (setq outpout_categorie "INCONNU")) ); fin cond outpout_categorie ) ; fin defun verification_mot [Edité le 12/11/2009 par fabcad]
-
Equivalent en vlisp de dos_strreplace
bonuscad a répondu à un(e) sujet de fabcad dans Pour aller plus loin en LISP
Hello En voilà un challenge! concret en plus. Je vais faire une proposition qui reprend le même principe à ta discussion Je suis sur que ElpanovEvgeniy va faire un truc de ouf en récursivité ;) (defun match_replace (string pattern target / l_str l_pat l_trg n tmp l_rv) (cond ((and (eq (type string) 'STR) (eq (type pattern) 'STR) (eq (type target) 'STR)) (setq l_str (vl-string->list string) l_pat (vl-string->list pattern) l_trg (vl-string->list target) ) (while l_str (repeat (setq n (length l_pat)) (setq tmp (cons (nth (setq n (1- n)) l_str) tmp)) ) (cond ((equal tmp l_pat) (setq l_rv (append (reverse l_trg) l_rv)) (repeat (1- (length l_pat)) (setq l_str (cdr l_str))) ) (T (setq l_rv (cons (car l_str) l_rv)) ) ) (setq l_str (cdr l_str)) (setq tmp nil) ) (vl-list->string (reverse l_rv)) ) ) ) exemple d'usage: (MATCH_REPLACE "\nAvec CadXp, on trouve les réponses,\nCadXp la référence?\nCadXp faites la différence" "CadXp" "FabCad") ou encore (MATCH_REPLACE "\nAvec CadXp, on trouve les réponses,\nCadXp la référence?\nCadXp faites la différence" "\n" "\t ") -
Salut, Le "contrôle du parallélisme" avait été le sujet de ce challenge.
-
Tous les sujets, avec le nom "Challenge" j'appelle pour moi-même comme les leçons et j'apprends... C'est aussi le but :D @+
-
Tous les sujets, avec le nom "Challenge" j'appelle pour moi-même comme les leçons et j'apprends...
-
Il est vrai qu'on en a déjà parlé et évoqué ce genre de solution. L'ennui est qu'on génère 2 entités décalées et surtout ont ne sait plus après coup les extrémités à retenir comme exactes (si celles-ci ont leur importance) Tout cela pour en venir à une idée qui m'ai venue à l'esprit en regardant les PMAILLE. Je me suis posé la question, à savoir si il ne serait pas possible de créer par programmation une PMAILLE (une représentation un peu comme des maillons d'une chaine) et d'affecté (à chaque maillon, qui serait une face à 4 cotés) une couleur précise. J'avais essayé manuellement en lisp (et la commande PMAILLE est vraiment pas évidente) à faire 2 maillons successifs de couleur différente et cela à l'air de pouvoir se faire. Je pense que se serait un bon challenge, surtout pour les champions des fonctions récursives (vous voyez à qui je peux penser ;) ), pour mettre en place ces sommets de PMaille. Une seule entité avec des couleurs propre indépendamment de celle du calque. Par contre cela serait une entité complexe avec beaucoup de point de définition (faudrait pas en abuser sous peine que le dessin prenne une taille pharaonienne) Est ce que le jeu en vaut la chandelle?
-
Salut Sans 2010, difficile de juger, mais je pense qu'il faut faire une sélection pour effacer ces objets. Un challenge pour effacer les textes vides. Pour les lignes vides, regarde la propriété Length. @+
-
Salut, a mon avis net send est surement désactivé. c 'est une des premières choses qu'un admin fait sur un serveur. Nous on utilise atnotes, il permet de mettre des notes, alarmes sur ton pc, et d'envoyer des messages à d'autres pc sur le réseau, il faut activer dans réseau accepter messages entrants. Son seul défaut: prendre la main en pop_up, car il n'a pas d'info bulles d'arriver de message Patrick35=> je sentirai un bon challenge pour développer en lisp par le biais d'un fichier de communication, un mini chat sous totocad. :D Faut pas que j'en parle à ma chef, car elle me trouve déjà parano du lisp :cool:
-
Yahaaaa! Un petit challenge :D . La première version est déjà faite, reste encore la liste sans sous-liste pour le resultat
-
Merci ;-) C'est super, avec les differentes routines posté dans les challenge j'ai trouvé mon bonheur
-
Bon l'eau a coulé sous le pont, mais une discussion d'aujourd'hui me fais contribuer a cet ancien challenge (defun test (lst / el nw_lst) (foreach n lst (if (not (member (setq el (cons n (- (length lst) (length (vl-remove n lst))))) nw_lst)) (setq nw_lst (cons el nw_lst)) ) ) (vl-sort nw_lst '(lambda (e1 e2) (< (car e1) (car e2)))) )
-
Bonjour, J'sais pas si ça répond au challenge, mais à ta question peut être Avec: (setq lst_el '(" Tasseau Longueur 1.23" " Tasseau Longueur 3.25" " Tasseau Longueur 1.23" " Tasseau Longueur 1.23" " Tasseau Longueur 1.23" " Tasseau Longueur 3.25" " Tasseau Longueur 4") nw_lst nil) (foreach n lst_el (if (not (member (setq el (strcat (itoa (- (length lst_el) (length (vl-remove n lst_el)))) n)) nw_lst)) (setq nw_lst (cons el nw_lst)) ) )
-
Salut ! Un petit challenge pour t'aider ?
-
Zoom ou Selection sur Objet avec le Handle
(gile) a répondu à un(e) sujet de lecrabe dans Routines LISP
Salut, Voilà pour la première demande, pour la seconde, ça pourrait faire l'objet d'un "challenge". ;; ZH (gile) ;; Sélectionne les objets présents dans l'espace courant d'après leurs "handle" (defun c:zh (/ space ss obj hlst olst kw i l) (vl-load-com) (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object)))) (setq space (vla-get-Block (vla-get-ActiveLayout *acdoc*)) ss (ssadd) ) (sssetfirst) (initget 1) (setq hlst (getstring "\nEntrez les handles à sélectionner séparés par des virgules: ") hlst (str2lst hlst ",") ) (foreach h hlst (if (and (not (vl-catch-all-error-p (setq obj (vl-catch-all-apply 'vla-HandleToObject (list *acdoc* h) ) ) ) ) (equal (vla-ObjectIdToObject *acdoc* (vla-get-OwnerId obj)) space ) ) (progn (setq olst (cons obj olst)) (ssadd (vlax-vla-object->ename obj) ss) ) ) ) (if ss (progn (sssetfirst) (sssetfirst nil ss) (setq i -1 l (length olst) ) (while (or (initget "Suivant Précédent Tous") (setq kw (getkword "Zoom sur [suivant/Précédent/Tous] <S>: ")) (setq kw "Suivant") ) (if (= kw "Suivant") (setq i (rem (1+ i) l)) (setq i (if (minusp (1- i)) (1- l) (1- i) ) ) ) (if (= kw "Tous") (ZoomObject olst) (ZoomObject (list (nth i olst))) ) ) ) ) (princ) ) ;; ZoomObject Effectue un zoom sur les objets contenus dans la liste ;; ;; Argument ;; objlst : une liste de vla-object ;; ;; Variables ;; dir : normale du plan de la vue courante ;; ang : angle de la vue courante ;; 3x3 : matrice de transformation du SCG vers la vue courante (dimension 3) ;; 4x4 : matrice de transformation du SCG vers la vue courante (dimension 4) ;; ptlst : liste des points minimum et maximum des bounding-boxes des objets sélectionnés (SCG) (defun ZoomObject (objlst / dir ang 3x3 4x4 ptlst) (vl-load-com) (setq dir (trans '(0 0 1) 2 0 T) ang (- (getvar "viewtwist")) 3x3 (mxm (mapcar '(lambda (x) (trans x 0 dir)) '((1 0 0) (0 1 0) (0 0 1)) ) (list (list (cos ang) (- (sin ang)) 0) (list (sin ang) (cos ang) 0) '(0 0 1) ) ) 4x4 (append (mapcar '(lambda (v o) (append v (list o)) ) 3x3 '(0 0 0) ) (list '(0 0 0 1)) ) ) (foreach obj objlst (vla-TransformBy obj (vlax-tmatrix (trp 4x4))) (vla-getBoundingBox obj 'minpt 'maxpt) (vla-TransformBy obj (vlax-tmatrix 4x4)) (setq ptlst (cons (vlax-safearray->list minpt) (cons (vlax-safearray->list maxpt) ptlst) ) ) ) (vla-ZoomWindow (vlax-get-acad-object) (vlax-3d-point (mxv 3x3 (apply 'mapcar (cons 'min ptlst)))) (vlax-3d-point (mxv 3x3 (apply 'mapcar (cons 'max ptlst)))) ) ) ;; str2lst ;; Transforme un chaine avec séparateur en liste de chaines ;; ;; Arguments ;; str : la chaine à transformer en liste ;; sep : le séparateur (defun str2lst (str sep / pos) (if (setq pos (vl-string-search sep str)) (cons (substr str 1 pos) (str2lst (substr str (+ (strlen sep) pos 1)) sep) ) (list str) ) ) ;; transpose une matrice -Doug Wilson- (defun trp (m) (apply 'mapcar (cons 'list m)) ) ;; Applique une matrice de transformation à un vecteur -Vladimir Nesterovsky- (defun mxv (m v) (mapcar '(lambda (r) (apply '+ (mapcar '* r v))) m) ) ;; Multiplie (combine) deux matrices -Vladimir Nesterovsky- (defun mxm (m q) (mapcar '(lambda (r) (mxv (trp q) r)) m) ) -
Re, Sur TheSwamp.org : Le challenge "Triangulation" (C++) Le LISP d'Evgeniy dans un autre sujet sur le forum LISP
-
C'est sur, mais le temps d'exécution reste honorable. D'ailleurs il y a un fichiers test de 100000 point juste avant le code (points en 2D, mais cela ne change pas grand chose je pense). C'est pas immédiat, mais le résultat est au bout. (y a même une barre de progression avec le pourcentage) J'avais eu l'occasion de tester un code de (Danielle Piaza, je crois) mais sont code arrivait a buger, les triangles étaient mal équilibrés (triangle avec des angles en sifflet) et le temps d'exécution rien à voir. Le seul truc qui manque pour que ce code soit parfait, est que l'on ne peut pas appuyer la triangulation sur des lignes de rupture de pente. Mais là c'est un autre challenge... Déjà qu'un code aussi condensé arrive à un aussi bon résultat, m'épate.
-
Salut, Il avait écrit ce code lors d'un "challenge" sur le forum C++ du site TheSwamp (je ne peux pas donner lien, le site est en dérangement) Je me souviens que son code, bien que plus lent que les codes C++ (normal), avait vraiment impressionné les autres "challengers".
-
Polylignes 2D/3D \"presque\" fermees ?
lecrabe a répondu à un(e) sujet de lecrabe dans Routines LISP
Hello Merci les Super Lispeurs ! :) :D :cool: Je vais tester tout ça MAIS petite précision pour Patrick_35 : je ne veux pas les FERMER mais simplement les DETECTER donc une simple sélection des polylignes en sortie est parfaite pour moi ! Ca ressemble à un petit challenge ... :P Le Decapode "détecteur de polylignes presques closes/fermées" -
Fusionner des lignes identiques
barbichette a répondu à un(e) sujet de barbichette dans AutoCAD 2008
Pour être tout à fait honnête.... Je pensait que le ralentissement des opération de copier/coller sur ce fichier étaient dus à ces lignes multiples en partie inutiles... en fait il semblerait que ce soit plutôt un problème avec une multitude d'échelle.... j'ai appliqué la procédure indiquée dans un autre message, et cela marche. J'ai aussi récupéré une utilisation "aisée" du fichier. Tout ça pour dire qu'il n'est pas nécessaire que vous passiez plus de temps à essayer de solutionner mon problème, à moins que vous ne preniez cela comme un challenge perso.... Merci -
Vu ta demande, je ne pense pas que OVERKILL convienne: Il ne supprime que les doublons parfaitement exact et non partiellement superposés comme tu le décrit. J'avais bien vu dans le temps une telle demande sur un forum US avec une proposition en lisp mais de là à remettre la main dessus.... :( De plus je ne sais pas s'il était performant. Quitte à le réécrire je pense qu'il faudrait s'orienter vers un algorithme vectoriel pour tester les segments partiellement superposés/confondus. La demande n'est pas simple. :casstet: Peut être un challenge utile.
-
GRANDE ;-) ça fonctionne a merveille merci Gile encore un fois c'est simple et bien fait ..... il faut que j'etudie ça pour comprendre comme tu a fait ! pour te remercier j'ai plein de script Python pour blender si ca t'interesse ;-) (car j'utilisr autocad pour les plans et blender pour les rendu 3d) merci ancore pour tou ca ;-) PS le vrai challenge impossible le rêve inavoué par contre mais ça mémé toi je ne pense pas qui puisse le faire c'est d'indiquer un volume de projection quelconque, solide cylindre etc et récupérer la grille déformée , mais in faudrait que autocad detecte chaque face du volume et que envoi les rayon seulement ou il le faut [Edité le 29/9/2008 par ingoenius]
