Rechercher dans la communauté
Affichage des résultats pour « challenge » dans sujets.
-
[Challenge] Dessiner le chemin de sortie
Luna a répondu à un(e) sujet de JPhil dans Programmer en s'amusant
Coucou, Dans le dessin ci-dessus, il n'y a pas d'îlots donc pas de soucis 😉 Ce serait le cas en revanche si aucune cloison n'était reliée au mur au centre du P et que la sortie était justement située sur le mur au centre du P. Mais l'exercice à l'air intéressant ! Peut-être un peu complexe dès le début (gestion des bulges pour les arcs) mais au moins il y a un peu de challenge ^^ Je me pencherais probablement dessus dans les jours à venir, le temps d'étudier une méthode qui me convient bien :3 Faut-il prévoir également prévoir un décalage vis-à-vis des cloisons/murs pour le tracé du chemin de résolution ou bien il se contente de prendre le tracé des cloisons/murs ? Si oui, cela signifie qu'une variante pourrait être étudiée visant à simplifier le tracé du chemin de résolution lorsqu'il fait du backtracking xD (je m'égare un peu trop, désolée...) Bisous, Luna -
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] -
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
-
Bonjour à tous et toutes, Comme promis je désire tous les trimestres, lancer dans le cadre du forum un challenge 3D. Je veux pour cela établir des règles simples et lancé de sujets ouverts à tous. Ayant pour but final d'acquérir de multiples avis et critiques sur son travail final afin de s'améliorer. Trois parties seront notées sur 10: 1. La modélisation 2. Le texturage, la qualité d’adaptation du modèle à son environnement. 3. Le rendu (lumière et qualité de sortie) [surligneur] Les règles : [/surligneur] Soft autorisés pour la modélisation et le rendu (Toutes version d’AutoCAD). Les applicatifs sont autorisés du moment qu’ils sont à l’intérieur d’AutoCAD. Tous types de logiciel image pour la modification du rendu est interdite. Par contre elle est autorisée pour les textures et pour l’environnement. Le but est de progresser, ne l’oublier pas…… [surligneur] Les liens utiles pour poster : [/surligneur] Image : http:// http://imageshack.us/ http:// http://www.upload-perso.net/index.php Model 3D : http://dl.free.fr/ Sujet N°1 (Délais 3mois - Fin 01/01/2011) A paris trouver un monument de son choix, Le modéliser (aucun import ou modèle télécharge n’est accepté). L’intégrer dans un environnement de votre choix : -photographie d’arrière plan -Modélisation -Dessin ou création d’image Précisions : cet environnement ne doit être en aucun cas celui d’origine… retirée du forum car apparement trop compliquée pour certains.... Sujet N°1: Crée un modèle ouvert à la critique ..... A vos modèles, et j’espère que plusieurs d’entre vous ce lancerons ce challenge !!! A bientôt
-
Se serait avec plaisir de participer (de même que le challenge des cercles magiques) mais je manque cruellement de temps en ce moment. Donc je vais devoir passer malheureusement.. Bisous, Luna
-
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
-
une idée de challenge un peu plus qu'intermédiaire pour les fanas des gestions de listes Elle me vient du problème posé par BonusCAD concernant la projection d'une polyligne 2D sur un modèle de terrain à facettes Soit une série de doublets de points correpondant à des segments de polyligne 3D à construire ((P1 P2) (P5 P6) (P9 P10) (P2 P3) (P7 P8) (P4 P5) (P6 P7).(P3 P4)......) il s'agit de les remettre dans l'ordre en faisant correspondre les débuts de doublet et les extrèmités (P1 P2) (P2 P3) (P3 P4) (P4 P5) (P6 P7) (P7 P8) (P8 P9) (P9 P10)...... dans un premier temps on pourra considérer que les doublets ne sont pas à inverser; dans un second temps on pourra imaginer avoir récupéré aussi bien (P5 P6) que (P6 P5) exemple (Sortlist '(((3.0 4.0 0.0) (3.0 6.0 0.0)) ((1.0 2.0 0.0) (1.0 4.0 0.0)) ((1.0 4.0 0.0) (3.0 4.0 0.0)) ((3.0 6.0 0.0) (4.0 7.0 0.0)) ((6.0 7.0 0.0) (6.0 4.0 0.0)) ((6.0 4.0 0.0) (7.0 3.0 0.0)) ((4.0 7.0 0.0) (6.0 7.0 0.0)) ((7.0 3.0 0.0) (9.0 3.0 0.0)) ((9.0 3.0 0.0) (10.0 5.0 0.0)) ((12.0 5.0 0.0) (12.0 3.0 0.0)) ((10.0 5.0 0.0) (12.0 5.0 0.0)) )) donne (((1.0 2.0 0.0) (1.0 4.0 0.0)) ((1.0 4.0 0.0) (3.0 4.0 0.0)) ((3.0 4.0 0.0) (3.0 6.0 0.0)) ((3.0 6.0 0.0) (4.0 7.0 0.0)) ((4.0 7.0 0.0) (6.0 7.0 0.0)) ((6.0 7.0 0.0) (6.0 4.0 0.0)) ((6.0 4.0 0.0) (7.0 3.0 0.0)) ((7.0 3.0 0.0) (9.0 3.0 0.0)) ((9.0 3.0 0.0) (10.0 5.0 0.0)) ((10.0 5.0 0.0) (12.0 5.0 0.0)) ((12.0 5.0 0.0) (12.0 3.0 0.0))) ce sont des points 2D mais çà doit marcher aussi avec les points 3D PS, je n'ai pas encore cherché donc je n'ai pas encore de solution Ps2 : Après réflexion, En fait, c'est assez simple... [Edité le 24/5/2007 par Didier-AD]
-
[Challenge] Les cercles magiques en AutoLISP
Patrick Emin a répondu à un(e) sujet de Patrick Emin dans Programmer en s'amusant
Oui c'est possible, et bien que le challenge porte sur AutoLISP, nous ne serions pas mécontent que tu proposes aussi un autre langage, par exemple un langage connu pour son extrême concision 😉 -
Bienvenue à notre challenge Inventor ! La sphère hélicoïdale qui vous fait tourner la tête ! Saurez-vous la réaliser ?
-
- 1
-
-
Salut à tous! :) Bon tout d'abord désolé patrick_35, mais je n'ai pas eu le temps de faire ton challenge 22. Ayant répondu à un post http:// http://www.cadxp.com/modules.php?op=modload&name=XForum&file=viewthread&tid=20147#pid83953 Je pense que développer un lisp qui permettrai de remplacer des éléments dans un dessin par un bloc serai : - pas facile à faire (d'où super challenge ;) ) - utile je pense Pour l'utilisation, je pense que l'on demande à l"utilisateur de choisir des entités (dans la même sauce que pour les groupes), qu'il donne un nom au bloc, que le lisp remplace donc ces entités sélectionnées par un bloc et puis qu'il recherche dans l'espace objet s'il y a des répétitions de cet ensemble d'entités afin de les remplacer aussi par le bloc nouvellement créé. Bien-sûr, étant donné la difficulté, ce challenge n'est pas à rendre à la fin de la semaine ;) Je posterai avant la fin de semaine en lien un fichier dwg en version 2004 qui servira d'exemple a+
-
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
-
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 ! Bon Patrick_35 a proposé un nouveau challenge à la fin du challenge 14, et je permets d'en faire un nouveau post. C'est encore un challenge de niveau assez facile.... Exemple : Liste de base : (setq lst '((-1 . ) (0 . "LWPOLYLINE") (5 . "33EC") (67 . 0) (8 . "0") (62 . 256) (6 . "ByLayer") (370 . -1) (48 . 1.00000) (60 . 0) (90 . 8) (70 . 1) (38 . 0.000000) (39 . 0.000000) (210 0.000000 0.000000 1.00000) (10 0.000000 0.000000 0.000000) (40 . 0.000000) (41 . 0.000000) (42 . 0.000000) (10 20.0000 0.000000 0.000000) (40 . 0.000000) (41 . 0.000000) (42 . 0.000000) (10 20.0000 16.0000 0.000000) (40 . 0.000000) (41 . 0.000000) (42 . 0.000000) (10 -8.88178E-016 16.0000 0.000000) (40 . 0.000000) (41 . 0.000000) (42 . 0.000000) (10 -1.46953E-015 12.0000 0.000000) (40 . 0.000000) (41 . 0.000000) (42 . 0.000000) (10 8.00000 12.0000 0.000000) (40 . 0.000000) (41 . 0.000000) (42 . 0.000000) (10 8.00000 7.00000 0.000000) (40 . 0.000000) (41 . 0.000000) (42 . 0.000000) (10 -1.77568E-015 7.00000 0.000000) (40 . 0.000000) (41 . 0.000000) (42 . 0.000000))) Fonction : (coor lst) Retourne : ((0.000000 0.000000 0.000000) (20.0000 0.000000 0.000000) (20.0000 16.0000 0.000000) (-8.88178E-016 16.0000 0.000000) (-1.46953E-015 12.0000 0.000000) (8.00000 12.0000 0.000000) (8.00000 7.00000 0.000000) (-1.77568E-015 7.00000 0.000000)) Voilà... Alors, s'il vous plait, faites un peu plaisir à Patrick_35 !!! Pour les pros, on essaie de faire la même en autolisp pur ? (bon je sais c pas très dur...) Allez lili, lovecraft, on ne regarde les codes existants, et on essaie ! Bonne chance. Matt. [Edité le 12/12/2007 par Matt666]
-
Cadeau de noël !!! :) Petit challenge pas très dur, mais intéressant, je trouve... Donc tout le monde sur le pont ! Il s'agit de supprimer des éléments au sein d'une liste (encore un challenge sur les listes !!). Un exemple est toujours plus probant : Une liste : (1 2 3 4 5 6 7 8 9 10 11 12 23) La routine retourne la même liste sans le 7 8 9. Donc : (1 2 3 4 5 6 10 11 12 23) A l'attaque !!! PS : Ce challenge est un peu visé... Lili, lovecraft et consorts, à vous de jouer !! Allez-y tranquillement, et puis si vous avez besoin d'un coup de main, ya qu'à demander :D ! Bon courage.. A bientot ! Matt. [Edité le 4/12/2007 par Matt666]
-
Salut, Encore un petit challenge de manipulation de listes. Il s'agit, dans une liste de faire monter d'un rang les éléments spécifiés dans une liste d'indices triés. Exemples : (setq lst '("a" "b" "c" "d" "e" "f")) (list_up '(2 3) lst) retourne ("a" "c" "d" "b" "e" "f") (list_up '(0 3) lst) retourne ("a" "b" "d" "c" "e" "f") (list_up '(0 1 4 5) lst) retourne ("a" "b" "c" "e" "f" "d") ou avec une liste de chiffres (setq lst '(0 1 2 3 4 5)) (list_up '(1 3) lst) retourne (1 0 3 2 4 5) (list_up '(0 2) lst) retourne (0 2 1 3 4 5) (list_up '(3 4 5) lst) retourne (0 1 3 4 5 2)
-
Il faut le voir comme expliqué là: [challenge] A05 : Find out whether a list is a palindrome (theswamp.org) Bon WE
-
Bon bah comme chat, j'aurais l'occasion de participer un peu sur les forum TheSwamp 😉 Vui évidemment le but principal est de fournir un ensemble de challenges abordables qui font finalement office de "cahier de vacances" si je puis dire donc cela permet de fournir un ensemble d'exercices et on y répond ou pas selon nos envies. Cela permet également d'aborder certains sujets sous un autre angle et pour ceux qui débute, avoir quelques post permet également de voir le nombre différents de possibilité pour un même exercice donc c'est très bien pour eux pour découvrir de nouvelles choses et ensuite leur permettre de l'essayer dans leur coin avec d'autres contraintes. Bref, le principe des mini-challenge permet vraiment d'apprendre mais surtout de comprendre un problème et de voir comment fonctionne notre propre logique. Après tout, très souvent ces challenges peuvent être vu d'un point de vu récursif, ou itératif et la logique derrière est totalement différente, donc propre à chaque cerveau. En tout cas, merci pour ce partage ! Il est vrai que mes seules lecture sur TheSwamp c'est toujours lié à des problèmes complexes et pointilleux donc je ne me balade pas comme je le fais sur CADxp. Bisous, Luna
-
Salut, Ces challenges ne sont pas nouveaux, il existent sur TheSwamp depuis belle lurette et je me souviens m'y être frotté à des pointures de l'époque (ElpanovEvgeniy, Mickael Puckett, Vovka, Tim Willey, Kerry Brown, ...). On y a même vu arriver et progresser le talentueux Lee Mac. Je me suis beaucoup amusé et j'ai énormément appris avec ces exercices ludiques. Le regretté Patrick_35 les avait importé sur CADxp en 2007 (voir ici) et, depuis on a essayé d'en lancer de nouveaux mais avec moins de succès que sur TheSwamp. Une recherche avec "challenge" dans les forums LISP de CADxp donne quand même 3 pages de résultats. Il y a toujours moyen de s'entrainer avec ces sujets si on s'efforce de cherche avant de regarder les solutions...
-
Les challenges sont simples, l'anglais ne devrait pas être un repoussoir (moi même je ne parle toujours pas anglais, je ne le déchiffre que dans les grandes lignes en général je ne fais de proposition que si les exemples me semble clair). Ici aussi il y a beaucoup de challenges certains faciles d'autres un peu moins, même si ils ne sont pas regroupé dans un même fil de discussion avec une petite recherche on arrive à mettre la main dessus. D'une manière général dans un challenge ce qui compte c'est de les chercher, cela permet de mieux comprendre les réponses apportés, les lires sans avoir planché dessus au préalable n'a pas grand intérêt.. Les tenter n'obligent pas forcément à poster une réponse mais permet de s'exercer/réviser. Salutations Bruno
-
[Résolu] Petit lisp pour "sortir" un chiffre d'une chaine.
Luna a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Coucou, J'avais déjà une fonction en stock pour chat 🙂 ; []-----------------------[] Wildcard-trim []-----------------------[] ; ;--- Date of creation > 10/12/2021 ; ;--- Last modification date > 10/12/2021 ; ;--- Author > Luna ; ;--- Version > 1.0.0 ; ;--- Class > "BaStr" ; ;--- Goal and utility of the main function ; ; When used for functions (vl-string-*-trim), lists all the characters corresponding to the specified pattern in the form of a list from the 256 ; ; characters present in the ASCII table. ; ; ; ;--- Declaration of the arguments ; ; The function (Wildcard-trim) have 1 argument(s) : ; ; --• w > correspond to the pattern that each character needs to match ; ; (type w) = 'STR | Ex. : "#", "@", "~#", ".,#", ... ; ; ; ;--- Return ; ; The function (Wildcard-trim) returns a list of characters (1 single character per string) whose characteristics correspond to the wildcard ; ; specified in argument (see wcmatch for the Wild-Card Characters). ; ; Ex. : (Wildcard-trim "#") returns ("0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "²" "³" "¹") ; ; (Wildcard-trim "@") returns ("A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z" ; ; "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z" ; ; "ƒ" "Š" "Œ" "Ž" "š" "œ" "ž" "Ÿ" "ª" "µ" "º" "À" "Á" "Â" "Ã" "Ä" "Å" "Æ" "Ç" "È" "É" "Ê" "Ë" "Ì" "Í" "Î" ; ; "Ï" "Ð" "Ñ" "Ò" "Ó" "Ô" "Õ" "Ö" "Ø" "Ù" "Ú" "Û" "Ü" "Ý" "Þ" "ß" "à" "á" "â" "ã" "ä" "å" "æ" "ç" "è" "é" ; ; "ê" "ë" "ì" "í" "î" "ï" "ð" "ñ" "ò" "ó" "ô" "õ" "ö" "ø" "ù" "ú" "û" "ü" "ý" "þ" "ÿ") ; ; ; ;--- Historic list of the version with their modification status ; ; +------------+----------------------------------------------------------------------------------------------------------------------------------+ ; ; | v1.0.0 | Creation of the function | ; ; +------------+----------------------------------------------------------------------------------------------------------------------------------+ ; ; ; (defun wildcard-trim (w / i lst a) (repeat (setq i 256) (if (wcmatch (setq a (chr (setq i (1- i)))) w) (setq lst (cons a lst)) ) ) lst ) Du coup pour répondre au challenge, je donnerai cette version : (vl-string-trim (apply 'strcat (wildcard-trim "~#")) str) Évidemment, avec la fonction (vl-string-trim) cela permet uniquement de supprimer les caractères en partant de la gauche et de la droite, jusqu'à ce qu'un caractère autorisé soit trouvé. Autrement dit, pour une chaîne de caractère telle que (setq str "ma80cm") ;; ou (setq str "Surface = 42.23m (+NGF)") ;; etc... On obtient respectivement les résultats : "80" ;; ou "42.23" Mais comme le souligne @bonuscad, dans le cas d'un nombre négatif, le moins est supprimé donc il y a une perte d'information dans ce cas-ci. Autre limite : dans le cas où il y a deux valeurs numériques dans une même chaîne de caractères, comme par exemple (setq str "Value = -543.1530054 (equals to 2u)") (vl-string-trim (apply 'strcat (wildcard-trim "~#")) str) returns "543.1530054 (equals to 2" Bref, cela réponds à un problème simple dans les conditions établies, mais cela possède ses propres limites tout de même si l'on étend son utilisation en dehors des conditions actuelles. Par contre, les nombres décimaux sont conservés correctement 😉 Bisous, Luna -
Bonjour Je viens d'avoir une idée de challenge Le but serait dans une liste de conserver que les chiffres. Exemple (1 2 "a" "b" (6.5 7 "z" "r") "f" (3 "q" (3 "r" 0) "d" 8.4) "g" 8 ("dd" ("jj" "nn") "tt") 9 ("zz" ("ww" "ze" (20 25)) "tt"))) donnerai (1 2 (6.5 7) (3 (3 0) 8.4) 8 9 (((20 25)))) Une autre de ramener tous les chiffres sur un seul niveau d'une liste Exemple (1 2 "a" "b" (6.5 7 "z" "r") "f" (3 "q" (3 "r" 0) "d" 8.4) "g" 8 ("dd" ("jj" "nn") "tt") 9 ("zz" ("ww" "ze" (20 25)) "tt"))) donnerai (1 2 6.5 7 3 3 0 8.4 8 9 20 25) A vos neurones ;) @+ ps : je pense que c'est un peu trop facile pour (gile) ;)
-
PTC DesignQuest Challenge - Programme Education
valimdj a posté un sujet dans Creo (ex. Pro/Engineer)
http://img502.imageshack.us/img502/6532/designquestfj2.jpg Pour la troisiè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. Pour être admissibles, les participants (groupe ou individu) doivent être inscrits dans un établissement actuellement membre du Programme Éducation PTC et parrainés par un enseignant. Inscrivez-vous dès maintenant! Pour plus d'informations : http:// www.ptc.com/go/challenge http://www.dcp-canberra.com/files/design/tim-austen01.jpg P.S. : N'oubliez pas de changer la langue en français : http://www.ptc.com / Worldwide Sites / French http://img183.imageshack.us/img183/5008/proengineerwf5simplefs4.jpg [Edité le 19/3/2009 par valimdj] [Edité le 19/3/2009 par valimdj] -
Salut, Très bonne initiative @didier. De mon côté, je suis un indécrottable conservateur (dans ce domaine du moins) et je dois avouer ne pas avoir creusé plus que ça l'utilisation VS Code avec AutoLISP*, j'ai trop d'habitudes avec le VLIDE**, principalement les fonctions de débogage et la possibilité tester des expressions dans la console. À mon sens, la véritable force d'AutoLISP, c'est son étroite intégration à AutoCAD et le fait de devoir charger un fichier .lsp dans VS Code pour pouvoir l'utiliser comme débogueur a été rédhibitoire pour moi. En plus, je ne fais plus vraiment de LISP si ce n'est pour aider sur les forums ou répondre à un challenge et dans ces cas, je n'ai pas envie d'ouvrir VS Code en plus d'AutoCAD. @JPhil, Programmer avec le bloc-note (que ce soit en LISP ou autre) c'est un peu comme faire la cuisine en s'interdisant de gouter ou humer le plat avant qu'il ne soit complètement terminé. J'ai appris ce que je connais en testant, testant et testant encore des bouts de code et c'est tellement plus facile avec AutoLISP qu'avec d'autres environnements que je trouve que se priver d'un IDE, c'est carrément masochiste. * je l'utilise avec F# hors AutoCAD. ** dont je pense qu'il me survivra comme tant chose dont Autodesk a annoncé une fin plus ou moins proche
-
Déterminer si un bloc se trouve à gauche ou à droite d'une polyligne
JPhil a répondu à un(e) sujet de JPhil dans Pour aller plus loin en LISP
@didier, Actuellement, il y a deux blocs qui visuellement sont les mêmes, juste le nom du bloc qui change et la rotation. Donc forcément dans certains coins, il y a le "mauvais" bloc et comme il y a des données qui sont liés avec une base de données externes, c'est difficile de faire un ménage rapide sans mettre le foutoir. Hors, un seul bloc aurait suffit en appliquant la rotation à l'endroit où il faut, avec une gestion de l'évolution plus souple. N'étant pas là au début de ce projet (pas loin de 10 ans), je vois des erreurs de choix qui fait que le besoin en interne a évolué mais pas le programme qui lui n'est plus assez souple pour encaisser tout ça. Donc oui, seulement un seul bloc, l'interroger afin qu'il nous donne sa position. J'ai conscience que sur le papier c'est super facile, mais à structurer c'est une autre paire de manche. Un joli challenge en fait. @Luna, Si je reprends ton exemple de donnée étendue. J'applique ceci sur une polyligne (dont je peux inverser le sens à tout moment parce que ça me fait plaisir) : ((lambda (key value / crv val) (setq crv (car (entsel "\nSelect polyline : "))) (if (null (setq val (vlax-ldata-get crv key))) (setq val (vlax-ldata-put crv key value)) val ) )) Avec 'key' dont la valeur serait "Nom", et 'value' dont la valeur serait "section 1 voie 1". J'applique la même procédure sur un bloc de signalisation : ((lambda (key / crvb value val) (setq crv (car (entsel "\nSelect bloc de signalisation : "))) (setq value (car (entsel "\nSelect polyline de liaison : "))) (if (null (setq val (vlax-ldata-get crv key))) (setq val (vlax-ldata-put crv key value)) val ) )) Avec 'key' dont la valeur serait "Chemin", et 'value' dont la valeur serait le nom de l'entité polyligne afin de permettre de créer une liaison. Donc si j'ai bien compris, même si je renomme "section 1 voie 1" en "truc mumuche", le bloc signalisation sera lié à la polyligne à la condition bien évidement de ne pas supprimer cette dernière. J'ai bon ? -
Et voilà, Mon premier challenge :)! En plus c'était mon numéro de maillot dans mon club de foot. Le but de ce challenge est de faire un petit jeu, on fera 2 parties. La première sera une préparation du terrain. Je vois déjà des :casstet: :o :exclam: . La première est je pense plus difficile que la seconde. Voilà le sujet de la première partie, qui est en fait deux fonctions: 1° (defun genere( nb)) => on doit renvoyé une liste de nb lettres de l'alphabet ex: (genere 3) => '("a" "d" "p") 2° (defun combi( lst min)) => lst est une liste de nb lettres de l'alphabet, et on doit renvoyé toutes les listes possibles de sorte que les éléments de lst soient triés alphabétiquement et que l'on prenne de nb à min lettres. (Je sais pas trop si cela va être clair, alors voici la suite de l'exemple) ex: (combi '("a" "d" "p") 1) => '(("a" "d" "p") ("a" "d") ("a" "p") ("d" "p") ("a") ("d") ("p") ) VOilà. On va attendre ce week-end pour donner des premiers jets. Bonne soirée.
