-
Compteur de contenus
2 523 -
Inscription
-
Dernière visite
-
Jours gagnés
23
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par Fraid
-
Je vois que tu as compris l'un des rôles des attributs. sinon pour le lisp que je t'ai écrit, tu as juste à copier coller l'intégralité, puis taper RenameDwgByTxt
-
Bonjour, En gardant le même principe, avec des popup_list ;;;multicheck ;;;Check liste adaptatif ;;;Arg :name, String nom et titre de la boite de dialogue ;;; linp, liste de liste ;;;Retour : Liste des valeurs choisies ou nil ;;;Exemple (multicheck "Fourreaux" '(("Nombre :" ("1" "2" "3")) ("Type :" ("P.E.H.D." "P.V.C.")) ("Diametre :"("28/32" "42/45")))) (defun multicheck (name linp / tdcl n dcltmp odcl tfct vals vdef acts fct ofct l ret) ;Ecriture du DCL (setq tdcl (strcat name " :dialog {label = \"" name "\"; :boxed_column { ") n 0) (foreach inp linp (setq tdcl (strcat tdcl ":popup_list { key = \"pop" (itoa (setq n (1+ n))) "\"; label = \"" (car inp) "\"; edit_width = 20;}" ) ) ) (setq tdcl (strcat tdcl "} spacer; ok_cancel; }") dcltmp (vl-filename-mktemp "tmp.dcl") odcl (open dcltmp "w") ) (write-line tdcl odcl) (close odcl) ;Ecriture de la fonction d'appel (setq tfct (strcat "(defun fcttmp (dcl name li / dcl_id done ") n 0 star "" acts "" vals "" vdef "") (foreach inp linp (setq vals (strcat vals " val" (itoa (setq n (1+ n)))) vdef (strcat vdef " val" (itoa n) " \"" (caadr inp)"\"") star (strcat star "(start_list \"pop" (itoa n) "\") (mapcar 'add_list (cadr (nth "(itoa (1- n))" li))) (end_list)" ) acts (strcat acts "(action_tile \"pop" (itoa n) "\" \"(setq val" (itoa n) " (nth (atoi $value) (cadr (nth "(itoa (1- n))" li))))\")") ) ) (setq tfct (strcat tfct vals ")(if (new_dialog \"" name "\" (setq dcl_id (load_dialog dcl)))(progn (setq " vdef ")" star acts "(action_tile \"cancel\" \"(done_dialog 0)\") (action_tile \"accept\" \"(done_dialog 1)\") (setq done (start_dialog)) (unload_dialog dcl_id) (if (= done 1)(list " vals ") nil ) )))" ) fct (vl-filename-mktemp "fct.lsp") ofct (open fct "w") ) (write-line tfct ofct) (close ofct) ;Chargement de la fonction (load fct) ;Execution (setq ret (fcttmp dcltmp name linp)) ;Effacement des fichiers temp (vl-file-delete dcltmp) (vl-file-delete fct) ;Liste en retour ret ) le test donne ceci on peut donc imaginer des combinaisons, mais c'est la liste d'entrée qui devient difficile à construire. Sinon, je voulais aborder le sujet d'écrire des fonctions en lisp qui s'adaptent aux circonstances. Il me semble que c'est se rapprocher de l'Intelligence Artificielle. Certain disent qu'elle commence avec l'utilisation du if , ce n'est encore qu'une abstraction, un concept qui reste à définir. En tout cas, c'est une chose que ne peuvent pas faire tout les langages, c'est l'avantage de ceux qui ne sont pas compilé ils peuvent s'auto-écrire.
-
Bonjour, Pour répondre à mes besoin, j'ai du trouver une solution au problème qu'une boite de dialogue au contenu incertain peut poser. Je partage donc mon expérience qui, après recherche, n'est pas courante. Ici, avec un formulaire qui s'adapte au contenu d'une liste. ;;;multinput ;;;Formulaire adaptatif ;;;Arg :name, String nom et titre de la boite de dialogue ;;; linp, liste des champs ;;;Retour : Liste des valeurs des champs ou nil ;;;Exemple (multinput "Test" '("Nom :" "Prénom :" "Adresse :" "Age :")) (defun multinput (name linp / tdcl n dcltmp odcl tfct vals vdef acts fct ofct ret) ;Ecriture du DCL (setq tdcl (strcat name " :dialog {label = \"" name "\"; :boxed_column { ") n 0) (foreach inp linp (setq tdcl (strcat tdcl ":edit_box { key = \"input" (itoa (setq n (1+ n))) "\"; label = \"" inp "\"; edit_width = 20; }" ) ) ) (setq tdcl (strcat tdcl "} spacer; ok_cancel; }") dcltmp (vl-filename-mktemp "tmp.dcl") odcl (open dcltmp "w") ) (write-line tdcl odcl) (close odcl) ;Ecriture de la fonction d'appel (setq tfct (strcat "(defun fcttmp (dcl name / dcl_id done") n 0 acts "" vals "" vdef "") (foreach inp linp (setq vals (strcat vals " val" (itoa (setq n (1+ n)))) vdef (strcat vdef " val" (itoa n) " \"\"") acts (strcat acts "(action_tile \"input" (itoa n) "\" \"(setq val"(itoa n)" $value)\")") ) ) (setq tfct (strcat tfct vals ")(if (new_dialog \"" name "\" (setq dcl_id (load_dialog dcl)))(progn (setq " vdef ")" acts "(action_tile \"cancel\" \"(done_dialog 0)\") (action_tile \"accept\" \"(done_dialog 1)\") (setq done (start_dialog)) (unload_dialog dcl_id) (if (= done 1)(list " vals ") nil ))))" ) fct (vl-filename-mktemp "fct.lsp") ofct (open fct "w") ) (write-line tfct ofct) (close ofct) ;Chargement de la fonction (load fct) ;Execution (setq ret (fcttmp dcltmp name)) ;Effacement des fichiers temp (vl-file-delete dcltmp) (vl-file-delete fct) ;Liste en retour ret ) Le test donne ceci à bientôt
-
Sinon, Je teste les sites avec un smartphone, si c'est ok, tout roule sur un pc. bon, c'est vrais je n'ais pas de site et ce n'est pas mon métier. mais j'en fait pour les amis exemple et surtout en interne et cela m'a toujours intéressé. depuis les années 95 j'ai du me faire cinq ou six sites que je n'ai jamais publier (j'ai trop d'idées qui se percutent). <je vois que tu utilise Wordpress Personnellement je préfère connaitre chaque lignes de mon html, css, javascript (hors API). C'est plus facile à maintenir. C'est un choix que je conçois parfaitement vu l’ampleur que prend le développement web Merci à toi de prendre du temps pour les autres, c'est devenu rare.
-
Yop pas de soucis, je suis sans fibre (un comble ...=)
-
Variable hauteur de texte par défault
Fraid a répondu à un(e) sujet de Curlygoth dans Débuter en LISP
"Je s'appelle Groot" -
je viens de recevoir les billes de mon chantier, je m'y remettrai ce soir, mais en regardant vite fait vos codes, je me dit que suis passé à coté de quelque chose... déjà que l'indice d'un segment peut être un réel comme 0.5 ....je pensais que c'étais forcement un entier. Sinon Didier, tu ne calcul pas le p3 sur ta page Bulge. Cordialement
-
Variable hauteur de texte par défault
Fraid a répondu à un(e) sujet de Curlygoth dans Débuter en LISP
Salut n’hésite pas à aller voir l'aide, c'est en VLA et VBA -
Merci, j'irais jeté un coup d’œil si je n'y arrive pas. pour l'instant j'en suis à tester ma fonction doit ressembler à cela (getptarc pt1 pt2 param) je sais récupérer les points du segment je cherche quel paramètre je doit utiliser pour mon calcul je cherche un maximum par moi même sinon cela ne vas jamais rentrer.
-
Bonjour, J'utilise le code suivant pour calculer la position de p3, que j'ai écrit grâce au site Afralisp aussi. (defun getptarc (pt1 pt2 bulg / cord ang fle mil mia) (if (/= bulg 0) (setq cord (/ (distance pt1 pt2) 2.0) ang (angle pt1 pt2) fle (* cord (abs bulg)) mil (polar pt1 ang cord) mia (if (> bulg 0) (polar mil (- ang (/ pi 2.0)) fle) (polar mil (+ ang (/ pi 2.0)) fle) ) ) ) mia ) Plusieurs fois, par pure curiosité, j'ai voulu utiliser les fonctions vlax-curve.. à la place du bulge. Je n'y suis jamais arrivé. Bon, comme cela fait déjà un bon bout de temps, j'ai un peux de temps aujourd'hui peut être que cette fois seras la bonne.
-
Je revient sur ce détail. Vous avez tout les deux raisons. Ce qui fait que les fonctions de test "Close" ne sont pas valables puisque qu'une polyligne peut être fermée sans avoir la propriété "closed". Pour savoir si une polyligne est fermée (close ou pas) (if (vl-every '= (vlax-curve-getStartPoint obj)(vlax-curve-getEndPoint obj)) ... Cela vient essentiellement d'une erreur du dessinateur. Quand on finis une polyligne censée être fermée, on a tendance à cliquer sur le derniers point et echap -> polyligne fermée non close. plutôt que faire C puis entrée après l'avant derniers point -> polyligne fermée close. Pour "réparer" les polylignes fermées non closes (defun closepolclose nil (vlax-for obj (vla-get-modelspace(vla-get-activedocument (vlax-get-acad-object))) (and (= (vla-get-ObjectName obj) "AcDbPolyline") (vl-every '= (vlax-curve-getStartPoint obj)(vlax-curve-getEndPoint obj)) (vla-put-Closed obj :vlax-true) ) ) )
-
Bonjour, Une alternative pour le sport. (vl-load-com) (defun c:hcoul (/ coul adcol sel) (setq coul '((131 . 221) (221 . 131) (31 . 91) (91 . 31) (181 . 11) (11 . 181) ) ) (if (ssget) (progn (vlax-for obj (setq sel (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object)))) (and (= (vla-get-ObjectName obj) "AcDbHatch") (setq adcol (cdr (assoc (vla-get-color obj) coul))) (vla-put-color obj adcol) ) ) (vla-delete sel) ) ) (princ) )
-
oui, ou dans le filtre d'un ssget, mais c'est incorporé dans une routine en vla alors je fait l'effort de chercher et puis c'est aussi, à chaque fois un hommage à Patrick ... le truc poilu nous manque
-
j'ai finis par trouver une solution VLA, par la méthode vla-GetLoopAt avec laquelle je crée la liste des objets associés à une hachure (defun get-obj-assh (acdc / ret loop) (vlax-for obj (vla-get-modelspace acdc) (if (= (vla-get-ObjectName obj) "AcDbHatch") (progn (vla-GetLoopAt obj 0 'loop) (if (= (type loop) 'safearray)(setq ret (append ret (vlax-safearray->list loop)))) ) ) ) ret ) puis j'ai juste à vérifier si ma polyligne figure dans cette liste d'objetVLA Si ça peut intéresser quelqu’un un jour...
-
Humour on Sinon tu vas dans une salle de sport.
-
cela dépend effectivement de ce qu'on veut en faire de cette liste. si on à pas besoin des courbures cela ne sert à rien d'avoir le 1er point en derniers. il suffit de la clore. par contre avec les courbures, il faut le derniers segment. Gile vient de me devancer de quelque secondes et aussi des fonctions qui traite la liste en aval. si il faut une autre fonction pour formater la liste, c'est qu'on c'est trompé de méthode pour construire cette dernière.
-
pas tout à fait, tu as encapsulé ta fonction, cela fait une petite différence. 😄
-
Bonjour, (vl-load-com) (defun c:hsolid ( / acdc) (setq acdc (vla-get-activedocument (vlax-get-acad-object))) (vlax-for obj (vla-get-modelspace acdc) (if (= (vla-get-ObjectName obj) "AcDbHatch") (progn (vla-SetPattern obj acHatchPatternTypePreDefined "SOLID") (vla-Evaluate obj) ) ) ) (vla-Regen acdc :vlax-true) (princ) )
-
Merci je vais m'acheter un décodeur DXF ^^
-
merci, je vais m'acheter un décodeur dxf, ^^
-
Bonjour, Je voudrais savoir si une polyligne est un contour de hachure associative. sans pour autant comparer les coordonnées (cela peut être très lourd) Je n'ai pas trouvé de propriété correspondante ou de code dxf pour la polyligne. Si je regarde les hachures je peux savoir si elles sont associatives, mais je ne trouve pas de référence à la polyligne associée. ai je raté encore quelque chose? Merci
-
Bah, c'est bien ce que j'ai vu, il ne parle pas de supprimer la sélection
-
Cela me rappelle le nombre de plans que j'arrive à ouvrir et fermer avant "plantage" est ce lié? Une vrais pierre de Rosette cette page. J'en ai profité pour allez voir l'aide sur activeselectionset, il n'en parle pas...encore un oublie ou est ce volontaire de leur part? on commence à se poser des questions de conspirationniste
-
Merci Gile Il y a tellement de possibilités, qu'il est difficile de voir les plus pratique selon les cas. et la suppression de la sélection est une découverte...
-
Je veux bien voir un exemple en C#, si tu veux bien ...😂
