Rechercher dans la communauté
Affichage des résultats pour « challenge » dans sujets.
502 résultats trouvés
-
Bonjour, Tu presente un sacré challenge :o Cela fait quelque temps que j'essaye de trouvé un organigrame valable pour tout les cas. Car a chaque cadastre, le dwg que l'on récupere a une structure légèrement differente. Le nombre de blocs, le nombre calques, le type d'objet..... De plus ce sont des blocs imbriqués 1) Exploser les blocs jusqu'a l'apparition des polylignes 2) les effacées car elle correspondent au cartouche 3)Exploser les blocs jusqu'a l'apparition des polylignes 4)convertir les polylignes 2d en polylignes 5)Les placer dans un calque Limite-Cadastrale 6)Exploser les blocs jusqu'a l'apparition des hachures 7)Les placer dans un calque Construction Deja, a ce niveau c'est prise de tete car les niveaux d'imbrication change a chaque dessin ensuite pour le cartouche par exemple il faut repeter l'operation deux ou trois fois, pareil pour les limites cadastrales. c'est jamais pareil Mais cela est faisable en imbriquant correctement des conditions circonstancielles permetant de dicerner utilisation des objets. c'est pour cela que je parlais d'organigrame. il faut bien prendre sont temps pour analyser les different cas qui se presentent Je sent que vais m'y remettre.......
-
Compter les éléments identiques dans une liste
Patrick_35 a répondu à un(e) sujet de fabcad dans Pour aller plus loin en LISP
Salut Par exemple (setq lst '("titi" "toto" "tata" "titi" "toto" "tata" "titi" "toto" "tata" "titi" "toto" "tata")) (while lst (setq tot (length lst) ele (car lst) lst (vl-remove ele lst) new (cons (cons ele (- tot (length lst))) new) ) ) Il y avait aussi ce challenge @+ [Edité le 30/7/2010 par Patrick_35] -
salut, J'avais oublié ce challenge... Voilà ma fonction d'incrémentation : (defun I+ (s / foo) (defun foo (l1 l2) (cond ((= (car l1) (cadddr l1) (car l2)) (if (cdr l2) (foo (cons (cadr l2) (cdddr l1)) l2) l1 ) ) ((and (= (cadr l1) (cadr l2)) (= (caddr l1) (car l2))) (cons (cadr l2) (cdddr l1)) ) ((and (= (cadr l1) (caddr l2)) (= (caddr l1) (car l2))) (foo (cons (caddr l2) (cdddr l1)) (cddr l2)) ) ((and (= (car l1) (caddr l1) (cadr l2)) (= (cadr l1) (car l2))) (cons (caddr l2) (cons (car l2) (cdddr l1))) ) (T l1) ) ) (vl-list->string (reverse (foo (cons 73 (reverse (vl-string->list s))) '(73 86 88 76 67 68 77)) ) ) )
-
Salut, À mon avis, ce "challenge" n'est pas très difficile et beaucoup ici devraient pouvoir y répondre. C'est tout à fait réalisable en pur AutoLISP sauf pour la raison évoquée ci-dessous. La plus grosse difficulté (voire impossibilité), qui mériterait peut-être une modification des consignes, est de trouver"le milieu du premier segment d'une région ou d'un mpolygon". Les données DXF des régions sont cryptées et celles des mpolygons sont semblables à celles des hachures donc assez complexe pour retrouver le contour (en plus, il peut y avoir des ilots). Un autre point mériterait des précision : que faire quand une entité a plusieurs données pour la même application ?
-
Hello Votre serviteur "LeCrabe Decapodesque" vous propose un nouveau challenge !!! :P Que pensez vous de ce challenge ??? Je commence a avoir un peu trop de dessins ayant des XDATAs que je convertis en Object Data (OD) de MAP/CIVIL puis apres par des requetes de MAP, je peux generer des textes qui representent le contenu des ODs donc en fait des XDATAs ! Donc ca va ... Pour bruler les etapes et surtout pouvoir travailler avec un simple AutoCAD ou Autodesk Architectural Desktop, (car tout le monde n'a pas de MAP ou CIVIL) je desire le programme suivant : 1) selection classique des entites a traiter On ne traitera que les entites suivantes : ligne, arc, cercle, bloc, point, texte, polyligne et si possible Region et svp MPolygon Je ne vois pas l'interet de traiter d'autres objets ! Qu'en pensez vous ? 2) Poser la question : quelle application XDATA registree voulez vous traiter ? ( car un objet peut avoir N applis XDATA registree et pour chacune avoir N infos attributaires ) 3) pour chaque entite selectionnee ayant des XDATAs correpondant a l'Appli XDATA registree generer une entite texte simple "tout simplement" qui reflete son contenu 4) Sur quel calque ? Sur un nom de calque tres precis : NomCalqueEntite__AppliRegistree__TypeEntite__TypeXDATA ce qui donnerait par exemple pour un cercle sur le calque BATIMENT et Appli XDATA registree CADASTRE : BATIMENT__CADASTRE__CIRCLE__INTEGER ou BATIMENT__CADASTRE__CIRCLE__STRING Bon d'accord cela va multiplier les noms de calque, mais on pourra toujours apres rassembler le tout et purger les calques indesirables ! 5) Ou va t-on generer le texte simple ? Bloc, Point, Texte, etc : au point d'insertion Cercle : au centre Ligne, Arc : au milieu Polyligne : grave question, disons au milieu du 1er segment/arc (car le centre de gravite peut etre a l'exterieur ) Region et MPolygon : idem Polyligne Les suggestions / ameliorations sont les bienvenues ! :cool: Merci d'avance pour les Pros qui vont relever ce "petit" defi !! Bon WE a tous, Le Decapode
-
coucou le fun !! Thierry, le FUN !! je comprends que c'est un beau challenge ce lisp de mon côté j'ai fait, à ma sauce, des commandes existantes dans Covadis qui ne gère pas tous les cas qui se présentent à nous quelquefois. pour Rhymone, je n'ai même pas le début d'une réponse, désolé j'ai pas encore vraiment travaillé sur les faces3D. amicalement
-
str2lst est ce que j'ai cherché à faire vendredi. Je ne l'ai pas ici mais mon but était de traiter en récursif et j'y étais arrivé en utilisant Vl-position et substr le résultat était moins concis. Moins classe ! Le reste, je n'ai pas regardé, je snobe les problèmes de liste. Mais j'ai souvent à faire avec les listes en string séparées par des virgules vers des liste Autolisp et inversement. J'ai donc intégré des routines depuis longtemps mais elle datent d'une époque où je connaissais à peine le VLisp. (du coup j'ai pas osé les montrer). Depuis l'autre jour : beuaoucp de boulot, du temps pour ma copine et toute la journée à remettre en état des deudeuches pour une expo + un copain qui monte son local traiteur et qui a fait plein de conneries, faute de plans, comme d'hab ! Au secours Tramber ! Challenge 32 : encore perdu !
-
Zebulon_ Sympa le lisp. Tu utilises une liste par paire. Bien vu J'ai fais autrement en utilisant au max la lecture par caractère (defun in(nb str / lst pos txt val val2 valid) (and (eq (type nb) 'STR) (setq nb (read nb)) ) (setq pos 1) (while (/= (setq val (substr str pos 1)) "") (cond ((eq val ":") (if txt (setq lst (cons "to" (cons (read txt) lst))) (setq lst (cons "to" lst)) ) (setq txt nil) ) ((member val '("0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "." "-")) (if txt (setq txt (strcat txt val)) (setq txt val) ) ) (T (and txt (setq lst (cons (read txt) lst))) (setq txt nil) ) ) (setq pos (1+ pos)) ) (setq lst (reverse (vl-remove '- (if txt (cons (read txt) lst) lst))) pos 0 ) (if (member nb lst) (setq valid T) (while (setq val (nth pos lst)) (and (eq (nth (1+ pos) lst) "to") (setq val2 (nth (+ 2 pos) lst)) (< val nb) (> val2 nb) (setq valid T pos (length lst) ) ) (setq pos (1+ pos)) ) ) valid ) Tramber Il est pas toujours facile de répondre à un challenge, mais c'est oh combien stimulant. Par contre, dès qu'il y a de la 3D, je suis largué Didier Si tu es frustré au dernier degré, ça va, il y a encore de la marge vers le 1er ;) C'est juste une "frustratonnette" :D Il est vrai que j'ai été peu prolixe sur le 1er message, mais on m'a vite fait corriger le tir. Mais cela n'empêche pas de te lancer, même si tu as rien à prouver @+
-
coucou je suis frustré au dernier degré je regarde souvent passer les "challenge" mais si je ne réponds pas, ce n'est pas que je soit une bille en Lisp je n'ai rien à prouver à personne, par ailleurs... mais c'est simplement parce que je ne comprends JAMAIS au grand JAMAIS les énoncés suis-je le seul dans ce cas ? le dernier ne déroge pas à la règle, amicalement désolé
-
Bonjour Une idée de challenge Déterminer si un nombre est dans une plage (in 45 "44-50,55sfs-66,100,800") --> T (in 52 "44-50,55sfs-66,100,800") --> nil (in 50.2 "44-50.5,55sfs-66,100,800") --> T (in 50.6 "44-50.5,55sfs-66,100,800") --> nil (in "58" "44-50.5,55sfs-66,100,800") --> T (in "67.5" "44-50.5,55sfs-66,100,800") --> nil A vos neurones ;) @+
-
Salut merci de vos interventions Mais j'ai jamais dit que le rendu devait etre fait avec autocad voyons... Pourquoi direct se braker ctritique pour en fait ne pas avancer. Je propose un challenge ou le soft de modelisation serait autocad mais pourquoi pas exporter pour le rendu je ne voit pas ou est les soucis car c'est a peu pres le protocole normal. En ce momen tmoi c'est (Autocad+Nova+3D's max). Bon a pres si sa ne vous interesse pas tanpis pour l'autre.
-
Bonjour, pour être moins "dur" que mes collègues, je dirais qu'AutoCAD est un outil formidable pour concevoir en 3d aussi bien en architecture ou en industrie (sauf automobile...)... Mais pour une utilisation technique, pas pour les rendus. Pour le reste, ou pour les personnages, Blender est recommandable! J'ai appris à dessiner en 3d sur A2002, je l'ai fait sur A2006 et maintenant je dessine en 3d sur A2008... Les nouvelles commandes 3d (depuis A2007) sont bien, elles accélèrent le travail, mais on pouvait déjà très bien dessiner avant... Bref un challenge pourquoi pas, mais je pense qu'il y aurait plus de monde si tu lances une idée générale ("dessinez un ... en 3d, les internautes jugeront les plus originaux") qu'en parlant rendu. Chaque dessinateur aura à cœur à vendre sa capacité à utiliser sa version et son imagination créative. Suffit de donner une date butoir et un nombre de coupes et perspectives maximal autorisé, histoire que l'intelligence de la représentation la plus optimale soit prise en compte... Enfin, moi ce que j'en dis... [Edité le 14/4/2010 par Chanoine]
-
Alor moi je propose un challenge du plus bel escalier en 3D ! Ou de la plus belle 2CV. Ca m'arrange :cool:
-
Salut Un challenge :D ; Traduire un nombre romain en décimal (defun romdec(nb / pas pos tbl tot tro) (setq tbl (list (cons "I" 1) (cons "IV" 4) (cons "V" 5) (cons "IX" 9) (cons "X" 10) (cons "XL" 40) (cons "L" 50) (cons "XC" 90) (cons "C" 100) (cons "CD" 400) (cons "D" 500) (cons "CM" 900) (cons "M" 1000) ) ) (setq pos 1 pas 2 tot 0 nb (strcase nb)) (while (and (setq txt (substr nb pos pas)) (<= pos (strlen nb)) (> pas 0) ) (if (setq tro (assoc txt tbl)) (setq tot (+ tot (cdr tro)) pos (+ pos pas) pas 2 ) (setq pas (1- pas)) ) ) tot ) ; Traduire un nombre décimal en romain (defun decrom(nb / eng pas pos str tbl) (setq tbl (list (cons "I" 1) (cons "IV" 4) (cons "V" 5) (cons "IX" 9) (cons "X" 10) (cons "XL" 40) (cons "L" 50) (cons "XC" 90) (cons "C" 100) (cons "CD" 400) (cons "D" 500) (cons "CM" 900) (cons "M" 1000) ) ) (setq pas (1- (length tbl)) str "") (while (/= 0 pos) (setq pos (rem nb (cdr (setq eng (nth pas tbl))))) (repeat (/ nb (cdr eng)) (setq str (strcat str (car eng))) ) (setq nb pos pas (1- pas)) ) str ) ;Faire le calcul (defun calrom(nb1 op nb2) (decrom ((eval op) (romdec nb1) (romdec nb2))) ) (calrom "I" '+ "III") --> "IV" (calrom "I" '+ "XV") --> "XVI" (calrom "I" '+ "CXLIX") --> "CL" (calrom "I" '+ "MMMCMXCIX") --> "MMMM" (calrom "III" '* "CXLIX") --> "CDXLVII" Pour le challenge de bseb67 (defun calrom(op nb) (decrom (apply op (mapcar 'romdec nb))) ) (calrom '+ '("VI" "XV" "CXLIX")) --> "CLXX" @+ [Edité le 14/4/2010 par Patrick_35]
-
réponse qui ne regarde et n'engage que moi... les récents progrès d'autocad en 3d ne concurrence pas des outils gratuits disponible (sketchup et blender). pour faire un challenge, il faut une modellisation complexe et un rendu pointu. deux choses qu'on gagnerai a faire sous un autre soft si on doit le faire de manière professionnelle (perso je fait mes rendu sous blender pour sa facilité de gestion des textures et des lumières.. sans parler des caméras faire une visée sous autocad c'est retour vers le futur.) Maintenant, si c'est pour faire une galerie d'image et faire de la pub pour les version post 2007 et leur progrès fascinant dans le monde de la 3d, qu'autodesk corrige les bugs récurrents, qu'il améliore enfin des commandes dont on se sert tous les jours et qui n'ont pas évoluées depuis la version 12 (cricri rappelle souvent l' archaïsme de mesurer diviser... voir ses post élocants en la matière ) je verrai alors si je reprend une souscription et participe au challenge...
-
Bonjour, Voila depuis peu de plus en plus d'utilisateur utilise autocad pour la 3D, et avec les nouveauté des versions recentes il me semble judicieu de vous proposé en accord avec les utilisateur et le moderateur un challenge 3D. C.A.D decidé ensemble d'un sujet et réalisé un modèle 3D servant à des rendus photoréaliste ainsi noté par les utilisateur de Cad Xp. Merci de vos réponse et dite moi si sa vous interesse
-
Tentant comme challenge et cela peut donner des sous challenges : - décrémenter un nombre - additionner deux nombres (ou plus) - soustraction entre deux nombres (ou plus) - multiplication deux nombres (ou plus) - division deux nombres (ou plus) Mais avec le contexte en ce moment au bureau, je n'ai pas le temps :( je suis blindé pour 2 mois encore...
-
Salut, Ça faisait longtemps, et une demande sur un autre forum m'a donné une idée. Il s'agirait de faire une routine qui incrémente les chiffres romains : (I+ "III") retourne "IV" (I+ "XV") retourne "XVI" (I+ "CXLIX") retourne "CL" (I+ "MMMCMXCIX") retourne "MMMM" Rappel : I = 1 II = 2 III = 3 IV = 4 V = 5 VI = 6 VII = 7 VIII = 8 IX = 9 X = 10 L = 50 C = 100 D = 500 M = 1000
-
Participez avec vos étudiants au Challenge International PTC !
valimdj a posté un sujet dans Creo (ex. Pro/Engineer)
Participez avec vos étudiants au Challenge International PTC ! Pour la quatrième année consécutive, PTC organise un concours de conception international ouvert à tous les étudiants dont l’établissement est membre du Programme Éducation PTC et utilise Pro/ENGINEER. Nous invitons tous les étudiants à participer pour qu'une image de leur réalisation s'affiche dans la fenêtre de l'installateur (ptcsetup) lors du lancement des prochaines versions de Pro/ENGINEER Schools Edition et Pro/ENGINEER Student Edition Wildfire 5.0! Les inscriptions sont ouvertes jusqu’au 16 avril 2010. Prix Décernés L’image du modèle gagnant apparaîtra lors du lancement des prochaines versions de Pro/ENGINEER Schools Edition et Pro/ENGINEER Student Edition Wildfire 5.0 Une licence site Pro/ENGINEER University Plus gratuite pour une année pour l’établissement du gagnant Des prix surprises Les 10 finalistes recevront un exemplaire de Pro/ENGINEER Student Edition, des cadeaux PTC ainsi qu’un certificat. Encore un grand bravo au gagnant du challenge international 2009! Xavier Benoist de l'IUT de Grenoble Évaluation L'évaluation sera basée sur une combinaison de notes sur un total de 50 points prenant en compte les critères suivants : Design Innovateur - 15 points Qualité de l’image - 10 points Complexité de la Conception - 15 points Faisabilité de la solution proposée - 5 points Esthétique/Style - 5 points Comment s'inscrire ? Envoyez l’image de votre modèle avant le 16 Avril 2010 à ptcdesign@ptc.com. Informations complémentaires Pour plus d'informations, rendez-vous sur www.ptc.com/go/challenge ou contactez Evelyne Margheria responsable du Programme Éducation PTC. [Edité le 19/3/2010 par valimdj][Edité le 19/3/2010 par valimdj][Edité le 19/3/2010 par valimdj][Edité le 19/3/2010 par valimdj] [Edité le 19/3/2010 par valimdj] -
Autodesk nous propose ce petit jeu, saurez vous distinguer les vraies des fausses photos?: http://area.autodesk.com/fakeorfoto/challenge
-
Périmètre sur table de nomenclature
Curcis a répondu à un(e) sujet de Curcis dans AutoCAD Architecture
Hi hi hi j'ai lancé mon formateur sur le sujet. Visiblement le challenge va jusqu'aux gars d'Autodesk. J'attends des nouvelles..... Et vous tiens au courant A première vu ce n'est pas possible. On verra bien. Si ça ne marche pas, je continuerai à faire mes métrés pour le carreleur "à la main". A suivre donc -
Moi je trouve ca super pratique quand même :D HS: ca rejoint un peu le fichier xml que je génère comme par exemple ici : http://bseb67.free.fr/cadxp/challenge/30/test.xml en fait, j'avais envoyé un mp assez rapidement, avec le lien, du fait que je voulais laisser du temps aux autres. ;)
-
Bon, je ne sais pas si (gile) a eu mon mp, donc ma première version du code est disponible ici : http://bseb67.free.fr/cadxp/challenge/30/challenge30.lsp edit: j'ai mis un fichier assez léger avec une profondeur de 65: http://bseb67.free.fr/cadxp/challenge/30/Challenge30-sbs-65.dwg pour le faire, c'est un petit lisp à ma sauce qui créer des blocs bidons avec un certain nombre d'entités (hors blocs) et un certain autre nombre de blocs et ainsi de suite jusqu'à n'avoir qu'un seul bloc. [Edité le 2/12/2009 par bseb67]
-
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. @+
-
Salut Un premier exemple qui indique le niveau d'imbrication + les "sous-blocs" du bloc principal. La recherche se fait dans la table des blocs. Il est facile de modifier cette routine afin de sélectionner un bloc pour connaitre ses "sous-blocs". (defun c:lvl(/ doc ele ent lst new nom tot lister nom_bl) (defun nom_bl(bl) (if (vlax-property-available-p bl 'effectivename) (vla-get-effectivename bl) (vla-get-name bl) ) ) (defun lister(ele / new) (or (member (car ele) tab) (setq tab (cons (car ele) tab))) (and (setq new (assoc (car ele) lst)) (lister (cdr new))) (and (setq new (cdr ele)) (lister new)) ) (setq doc (vla-get-activedocument (vlax-get-acad-object)) tot 0 ) (vlax-for bl (vla-get-blocks doc) (or (eq (vla-get-islayout bl) :vlax-true) (eq (vla-get-isxref bl) :vlax-true) (wcmatch (setq nom (nom_bl bl)) "*|*,`**") (vlax-for ent bl (if (eq (vla-get-objectname ent) "AcDbBlockReference") (if (setq ele (assoc nom lst)) (or (member (nom_bl ent) ele) (setq new (append ele (list (nom_bl ent))) lst (subst new ele lst) ) ) (setq lst (cons (list nom (nom_bl ent)) lst)) ) ) ) ) ) (foreach ele lst (princ (strcat "\n\tLe bloc " (car ele))) (lister (cdr ele)) (mapcar '(lambda(x)(princ (strcat " + " x))) tab) (setq tot (max tot (1+ (length tab))) tab nil ) ) (princ (strcat "\n\tNiveau d'imbrication max : " (itoa tot))) (princ) ) Et une autre qui retourne que le niveau d'imbrication (defun lvl(/ doc ele ent lst new nom tot lister nom_bl) (defun nom_bl(bl) (if (vlax-property-available-p bl 'effectivename) (vla-get-effectivename bl) (vla-get-name bl) ) ) (defun lister(ele / new) (or (member (car ele) tab) (setq tab (cons (car ele) tab))) (and (setq new (assoc (car ele) lst)) (lister (cdr new))) (and (setq new (cdr ele)) (lister new)) ) (setq doc (vla-get-activedocument (vlax-get-acad-object)) tot 0 ) (vlax-for bl (vla-get-blocks doc) (or (eq (vla-get-islayout bl) :vlax-true) (eq (vla-get-isxref bl) :vlax-true) (wcmatch (setq nom (nom_bl bl)) "*|*,`**") (vlax-for ent bl (if (eq (vla-get-objectname ent) "AcDbBlockReference") (if (setq ele (assoc nom lst)) (or (member (nom_bl ent) ele) (setq new (append ele (list (nom_bl ent))) lst (subst new ele lst) ) ) (setq lst (cons (list nom (nom_bl ent)) lst)) ) ) ) ) ) (foreach ele lst (lister (cdr ele)) (setq tot (max tot (1+ (length tab))) tab nil ) ) tot ) ElpanovEvgeniy : About Challenge 29, I said list_up1's without double ps : Les blocs anomymes sont écartés. pps : pas le temps de revoir le challenge 29 @+
