Aller au contenu

x_all

Membres
  • Compteur de contenus

    3 609
  • Inscription

  • Dernière visite

  • Jours gagnés

    30

Tout ce qui a été posté par x_all

  1. écrit comme ça je comprend.(listp lst) équivaut à (if (/= nil (cdr lst)) en fait on fait pareil.. mais c'est plus joli avec ta tournure..
  2. encore une journée chaude dans le sud... pas le temps d'y renter vraiment... je le garde pour le wiki...
  3. (doublon (cdr lstR)) quand même j'aurai pu la voir celle là... J'ai essayer de comprendre la solution de Gégé, ... ben j'y arrive pas. et puis c'est quoi cette commande (listp dont je n'avais jamais entendu perler... j'ai beau lire l'aide je comprend pas à quoi ça sert. ''Verifies that an item is a list'' mais en lisp tout est liste non? oui je sais je fait mon ronchon il y a les atomes...
  4. x_all

    Question fonction

    Merci à Patrick pour sa petite aspirine. Son exercice m'a délié (explore... j'ai eu droit à mon "sortie normale de Tex!" je vais pouvoir passer à la suite. Mais j'attends de tester un peu. Pour la petite l'histoire, c'était bien de bugs à la cons (il y en a un de dyslexique qui m'a donné du mal) Avec l'exercice de patrick, j'ai compris que le pas à pas marche très bien dans les fonctions récursives juste il faut que la grammaire soit irréprochable. Pour contourner le truc, (car mon orthographe n'est pas catastrophique que sur les forum) j'ai supprimé les appels de (explore a l'exécution, et tester la première branche en remplissant les champs dans le dessin pour passer les tests. je retiens la roulette de fonctions de l'arbre/branches/feuille très pédagogique. Mais si je fait un module de numérotation des blocs, j'aurai besoin d'un vrai parcours d'arbre, j'ai plutôt espoir du coté du challenge 2 la suite bientôt ici... merci pour la patience.
  5. @ (gile)j'arrive tout juste à marcher et tu veux me faire courir... (edit) @patrick merci pour l'exercice, ça m'a décoincé une vertèbre, je vais pouvoir dormir..
  6. le mienne est moins jolie (defun doublon (lstR / rep) (if (and (cdr lstR) (member (car lstR) (cdr lstR))) (setq rep T) (doublon (cdr lstR)) ) rep )
  7. bah! le but n'est pas de résoudre le problème mais le challenge... malheureusement, journée chargée
  8. Punaise les gars... avec votre manie de nous apprendre à pécher plutôt que de nous donner un poisson, vous allez nous filer mal à la tête...
  9. x_all

    Question fonction

    je lis à peu près la même chose, reste à générer la liste des branches... avec les feuilles et sous branche.Pour les feuille c'est facile, pour les branches il me faudra un peu de temps Pas de la tarte.et pas de temps avant qqs jours...
  10. x_all

    Question fonction

    merci pour les encouragements le dimensionnement d'un réseau, c'est ce que je fait régulièrement. les cours d'algo? je viens d'en prendre un. du reste si tu as bien suivi, l’algorithme, (gile) vient de le poser clairement la structure des donnes vient de changer complètement ça demande donc a mûrir un peu avant d’être reformulé... mais j'ai dans l'idée qu'il faut numéroter les feuilles et les branches pour s'en sortir je rappelle que la programmation n'est pas mon métier (et ne devrai pas occuper mes nuits) et que le projet est un peu ambitieux. Il va me faire gagner énormément de temps et en fera gagner à d'autre j'espère.
  11. x_all

    Question fonction

    c'était parti un peu vite, mais je croyais avoir le temps d'éditer te supposant couché ;)
  12. x_all

    Question fonction

    les mots me manques. c'est comment dire ... renversant. un petit aparté "technique" mon collègue ingé psvc me signale de les thermes ne sont pas ceux usuels pour les bouches on parle due Qd pour le diffuseur et du Qa pour axial, le débit à l'avancement. et pour les T de jonction Qa , Qt transversal pour la branche Mais une foi de plus tu me savonnes la planche, si je comprend bien a peut près comment je peut accéder au données et même ou je pourrai mettre des test avec un truc comme ça (defun traiterdebit (feuille) (princ (strcat "feuille débit Qdiffuseur Qd: " ( (read (Vb-Val-att (handent handle_feuille) "Qd"))))) (princ (strcat "feuille débit Qaxial Qa : " ( (read (Vb-Val-att (handent handle_feuille) "Qa"))))) );fd (defun traiterjonction (feuille) (princ (strcat "feuille jonction Qaxial: " ( (read (Vb-Val-att (handent handle_feuille) "Qa"))))) (print "maj Qtransversal a 100") (Vb-Mod-att (handent handle_feuille) "Qt" (rtos 100)) (princ (strcat "feuille jonction Qtransversal Qt : " ( (read (Vb-Val-att (handent handle_feuille) "Qt"))))) );fd j'ai plus de mal à formuler la structure des données en entrée suis je sur la bonne piste ? setq arbre (liste des branches) setq branche (liste des points de poly) setq feuille ( nom point handle ) Si je lit bien le squelette,j'ai hâte de le faire tourner on a quand même changé de niveau là... j'en suis presque à dire... et pourtant, ... elle tourne... car j'ai du mal à comprendre d'ou va émerger la hiérarchie du réseau de cette moulinette. ça reprend complètement le projet, mais ça devrai avancer vite..
  13. x_all

    Question fonction

    Je comprend ou est la nuance. C'est vrai que dans la conception le la création de la liste je n'ai pas choisi cette option. Du reste que j'ai du mal à l'imaginer écrite en lisp. ça donne quoi le (print d'un arbre?) et encore plus à pondre la moulinette pour l’extraire d'un dessin. Et puis si ma branche ne contient pas de branche, elle contient des jonctions qui sont les départ de branche on retombe sur nos pattes non? Si j'ai besoin de la branche fille du nœud N je peu aller le chercher en trouvant le point commun avec les autres listes. Pour le fun, quand j'en aurai fini avec ça, je veux bien m'y pencher... ça me sera sans doute tip top si je veux faire une numérotation automatique des bouches du réseau ou une notion de profondeur de branche me serai utile. Il n'en reste pas moins que en l'espèce comme disent les avocats, une fonction récursive me parait efficace pour sortir de cette impasse. Malgré la structure de ma liste de branche il n'y a pas de raison pour que ça marche pas. Et comment faire pour obtenir le même résultat sans récursif? A ce jour le réseau n'est pas hiérarchisé. il faudrait commencer par ordonner la liste? Depuis le début, quand je parle d'arbre, c'est pour décrire à quoi ressemble physiquement un réseau. Dans mon code je ne parle que d'une liste de branche qui est suffisante à résoudre le problème posé mais pas plus. Je me creuse un peu mais sans rire je ne voie pas comment on peu faire sans.
  14. x_all

    Effet de bord

    bizarre ? je teste ton truc il m'arrive ça MON_LISP Résultat : 12 Commande: Commande: (vl-remove-if '(lambda(x)(vl-position x mes_variables)) (atoms-family 1)) ("C:MON_LISP" "MES_VARIABLES") je m'attendais à trouver a b c
  15. C'est beau comme du Ronsard. on en rediscutera peut être dans l'autre post, mais j'ai eu un gros doute sur ce genre de truc pour la sortie de (explore à la fin du code. Du coup j'ai tout explicité pour être sur du résultat.
  16. Pas mal !! (gile) je crois l'avait fait en lisp. Bon pour un CadLtien, ça arrange pas les affaires. C'est vrai qu'un forum DRAFTSIGHT serai pas mal. je ne l'utilise pas personnellement, mais il est sur les postes des économiste chez nous et quand il y a un pb ou une question c'est pour ma pomme... et je suis souvent pommé. Mais je commence à l'apprécier aussi.
  17. x_all

    échelle de fenêtre

    j'ai fait un truc il y a un bail... ça date un peu mais ça à l'avantage de marcher à tous les coups (mais je ne parle pas de styles adaptatifs que je n'utilise pas.) http://joch04.free.fr/achtml/howto.htm il y a d'autre méthodes ou on renseigne le champ 6 de l'image en fonction de l'unité du dessin.et de l’échelle souhaitée. Mais avec le tableau de valeur pour z Xp qu'on fini par connaitre par coeur ça va tellement plus vite. Quand on change d'échelle il faut avoir la main sur le pan direct passer par une boite de dialogue fait perdre quelque clics...
  18. x_all

    Question fonction

    parce que c'est la règle du jeu voir ici pour rappel http://cadxp.com/top...post__p__266131 après même sans être des "spécialiste" un réseau de ventil, c'est une source qui aspire dans un réseau ramifié. le débit se cumule de bouche en bouche dans la branche et les branches dans le collecteur.avez vous observé le dessin? Quand tu parles de feuille c'est moi qui ai du mal car j'ai 2 types de feuilles (non interchangeable) donc ce concept n'est à mon avis pas pertinent. pour cumuler la valeur qui arrive d'une branche fille, il est indispensable que cette fille ait été déja calculée. Une des règle du jeux, c'est que je réinitialise le Qa avant traitement de la liste des branches donc j'en reviens à si tous les Qa des bloc de la branche (sauf le dernier) sont différent de 0 la branche est calculable. Mais bon encore une fois, peu importe le pourquoi et le comment j'en arrive là. Ce qui me bloque partant de cette interface de test, c'est de trouver une coquille sans débuguer.En sortant le test j'espère m'en sortir...
  19. x_all

    Question fonction

    .... bizarre que tu n'ai pas compris après 10 messages d'explication la condition pour qu'une branche soit calculable c'est que toute les sous branches aient été calculées une branche terminale n'a pas de sous branche, elle est donc toujours valide pour un traitement. (le traitement est traçable par Qa sur la branche mère car le bloc "jonction" est commun aux deux branches) la branche mère que je repasse au début de la liste sera re testée et sera valide quand sa (ou ses branches filles) auront été calculées (et donc sorties de la liste) Peu importe l'ordre des branches dans la liste de départ. C'est un peu pour ça que j'ai fait la liste de branche en itératif. Il se peu que la branche tronc (celle à la racine) passe plusieurs fois par le test mais peu importe quand tous les blocs "jonction" auront fini par être renseignés elle sera logiquement la dernière a sortir à cause de son retour au début à chaque fois quelle échoue au test je persiste à croire que mon bug est grammatical une variable de type inadéquat, ou un appel mal orthographier un parantèse mal placée......bref rien que je ne sache corriger sans le pas à pas. En simplifiant (explore et en sortant (testebranche) je devrai pouvoir mieux m'en sortir... typiquement un gros réseau c'est 10 ou 15 branches... pas de quoi être pénalisant en temps de calcul (sauf si on le fait à la main)
  20. x_all

    Question fonction

    ben non, on va finir par tomber une une branche terminale qui sera calculable (car pas de jonction intermédiaire non calculés)
  21. x_all

    Question fonction

    oui la fonction (explore doit pouvoir s'écrire (explore lstbranche branche (car lstbranche) (testebranche branche) si non valide passe le 1er élément à la fin et (explore lstbranche) si valide (traitebranche branche si on est pas sur le dernier élément lstbranche (cdr lstbranche) (explore lstbranche) Sortie de (explore) Je vais faire (testebranche en dehors comme j'ai fait pour (traitebranche car a mon avis c'est là que j'ai un bug de voir la sortie de Sum je me dit que mon test de sortie pour explore est peut être pas top, mais ça se verra au débogage s'il me manque une itération... Sur le principe j'avais bien compris. Quand à la structure de la liste de branche à la longueur près toutes les branches sont identique dans la forme. Je comprend mal comment on pourrai faire une liste récursive. Dans tes exemple tu n'a pas besoin d'ordre dans tes calculs et je n'arrive pas à imaginer une structure de liste qui serai "auto ordonnée" pour qu'un simple (cdr me garantisse un calcul hiérarchisée. Si on s’attaque à ça ça revient à changer le code du programme principal, ce qui n'était pas le but de la question. Et pourquoi se faire suer cet algo devrai marcher...
  22. Je m'incruste aussi ( and (setq ..) (= (getpropertyvalue pline "LocalizedName") "Polyligne") le setq je comprend encore que, mais le =, que vient il faire là? Je dis encore que pour le setq car setq renvoie nil s'il échoue mais s'il réussi il renvoie la valeur de la variable (?) que vient faire une valeur de variable dans un test booléen?
  23. x_all

    Question fonction

    (trace ? je ne connais pas je regarde... la structure? lsbrrecur à bien la forme ( (branche 1) (branche 2) ...) branche ( (nom_du_bloc 1 position 1 handle1) (nom_du_bloc 2 position 2 handle2) ...) à mon avis il n'y a pas besoin de plus cette liste (lsbrrecu) n'est valable que pour le dessin debit-ventil3.dwg car elle a été générée en amont pour ce test . Ce n'est pas grave pour des test, mais pour générer cette liste, en cas de changement de graphe il faut le programme complet (qui reste hors sujet) pour le calcul des conditions de sortie, j'ai essayer de le détailler, mais il est un peu moins trivial que le fonctionnement que tu décris Les variables sont caché dans les attributs des blocs (dynamiques) . J’aurai effectivement pu dérouler l'itération d'une branche avec une fonction récursive, mais bon, comme on ne parcours la branche qu'une seule foi et que je réinitialise le compteur, il n'y a pas de raison pour que ça marche pas. Dans le code de (explore il y a un commentaire "par ici la sortie". C'est vrai que je ne l'ai pas signalé à la fin de mon algorithme, mais avec un garçon comme toi, je croyais que ce serai implicite. On sort quand on ne peu plus faire de (cdr dans la liste lsbrrecur car il n'y a plus qu'un n'a plus qu'un seul élément.
  24. x_all

    Question fonction

    c'est vrai... il y a des branches sur un arbre. (et je vois pas trop comment le modéliser autrement qu'avec une liste de sous liste en lisp) mais comme je l'ai expliqué peut etre trop longuement, je ne peut calculer une branche parent si la branche fille (voire la fille de la fille..) n'a pas été calculée Si tu as un algorithme itératif pour faire ça, je suis preneur...
  25. perso, pour contourner le pb, j'utilise aussi beaucoup "éditer le bloc dans le dessin " (_refedit et _refclose) on l'a avec un clic droite... mais c'est vrai que pour le coté dynamique c'est pas possible... reste le dwg extérieur? ça foire aussi le dynamique on peut peut etre contourner avec les contraintes ?...
×
×
  • 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é