Aller au contenu

Patrick_35

Membres
  • Compteur de contenus

    6 374
  • Inscription

  • Dernière visite

  • Jours gagnés

    30

Tout ce qui a été posté par Patrick_35

  1. Je te laisse méditer (vlax-ldata-put "DenisH" "EtiqPTRL_Cste" (atof (nth 7 *ConfigPTRL@))) avec (rtos (vlax-ldata-get "DenisH" "EtiqPTRL_Prof_Cste") 2 2) Et plus tard, tu auras une autre erreur avec (setq Edit1$ (vlax-ldata-get "DenisH" "EtiqPTRL_Cste")) ... (set_tile "Edit1" Edit1$) @+
  2. Salut Maintenant que tu as gouté au DCL, je pense que tu vas persévérer dans cette voie :D @+
  3. Salut Une autre manière de faire (defun onglets(/ lst) (vlax-for lay (vla-get-layouts (vla-get-activedocument (vlax-get-acad-object))) (or (eq (vla-get-name lay) "Model") (setq lst (cons (cons (vla-get-taborder lay) (vla-get-name lay)) lst)) ) ) (mapcar 'cdr (vl-sort lst '(lambda(a B)(< (car a)(car B))))) ) @+
  4. Je viens de voir ta réponse après avec posté mon code. L'erreur vient que tu ne remplis pas la liste avec add_list Continue d'abord avec ton dcl avant de regarder ce que j'ai fait. @+
  5. Allez, c'est mon jour La routine (defun bda(titre / dcl ele fil lay lst nom pos tmp res txt val) (vlax-for ele (vla-get-layers doc) (or (wcmatch (setq nom (vla-get-name ele)) "*|*") (setq lay (cons nom lay)) ) ) (setq tmp (vl-filename-mktemp "bda" nil ".dcl") fil (open tmp "w") lay (acad_strlsort lay) ) (foreach txt '( "bda : dialog {" " key = \"titre\";" " alignment = centered;" " is_cancel = true;" " allow_accept = true;" " : list_box {label = \"Calques\"; key=\"lay\"; height = 30; width = 100; multiple_select=true;}" " spacer;" " ok_cancel;" "}" ) (write-line txt fil) ) (close fil) (setq dcl (load_dialog tmp) pos "0" ) (new_dialog "bda" dcl "") (start_list "lay") (mapcar 'add_list lay) (end_list) (set_tile "titre" titre) (set_tile "lay" "0") (action_tile "lay" "(setq pos $value)") (action_tile "cancel" "(done_dialog 0)") (action_tile "accept" "(done_dialog 1)") (setq res (start_dialog)) (unload_dialog dcl) (vl-file-delete tmp) (and (eq res 1) (while (not (eq pos "")) (setq val (read pos) lst (cons (nth val lay) lst) pos (substr pos (+ 2 (strlen (itoa val))) (strlen pos)) ) ) ) (reverse lst) ) Et pour appeler la fonction (setq doc (vla-get-activedocument (vlax-get-acad-object))) (setq mes_calques (bda "Ma liste de calques by DenisH")) @+
  6. Ben, le problème est la structure de ton fichier .lst C'est toi qui l'a fait, donc le copier/coller est facile pour toi. Avec une liste et sélection multiple comme dans ONG, GEF, SYN, EXL, etc... Un exemple avec MyMultiLists @+
  7. Salut Merci pour le partage :D Tu pourrais aussi avoir un lisp qui créé le fichier .lst un dessin existant (avec une sélection des calques). @+
  8. Salut J'ai du mal à comprendre ton besoin Un exemple qui renvoi sur ce sujet avec un navigateur (startapp "explorer" "http://cadxp.com/topic/42804-creer-un-hyperlien-dynamique-a-partir-dun-numero-qui-change/page__pid__243388#entry243388") Pour récupérer la valeur d'un texte (setq ent (entget (car (entsel)))) (cdr (assoc 1 ent)) Ou (setq ent (vlax-ename->vla-object (car (entsel)))) (vla-get-textstring ent) @+
  9. Salut En "ObjectARX/DBX, C++, .NET, RealDWG" je ne saurais te répondre, mais en vlisp, tu peux surveiller les variables (CTAB en l'occurence) pour indiquer le changement de présentation avec les réacteurs (vlr-sysvar-reactor) @+
  10. Salut Tu peux voir cette réponse. @+
  11. Salut Je pense comme (gile), c'est dommage. Mais je ne m'inquiète pas trop car on a des moments professionnels plus calmes et c'est là qu'on se perfectionne et qu'on développe des outils qui étaient en attente. Au plaisir de te relire. @+
  12. Salut Tu fais un (setq der (entlast)) avant la commande copier afin de connaitre le dernier objet. Tu fais tes commandes et ensuite, les entnext depuis la variable mémorisé (der) indiquent les objets ajoutés @+
  13. Salut +1 avec Goldorak44. Tu peux aussi le faire avec le nom des présentations (variable ctab) si tu as plusieurs plans par fichier. @+
  14. Salut Pour le filtre (ssget "_X" (list (cons 0 "TEXT,MTEXT") (cons 7 "MONOTXT"))) La boucle sur un jeu de sélection, tu sais faire. Pour changer le style de texte en Arial (entmod (subst (cons 7 "Arial") (assoc 7 ent) ent)) @+
  15. Salut J'ai du mal à comprendre. Tu indiques que (gile) à répondu à ta demande (ce qui est le principal), mais ni Tramber et moi. Pourtant, si tu regardes les réponses, les résultats sont les mêmes que ceux de (gile) ? @+
  16. Salut Pour regrouper les listes (apply 'append (list '(1 0 7) '(2 8 3) '(5 9 6))) Reste plus qu'a sortir la valeur max (apply 'max (apply 'append (list '(1 0 7) '(2 8 3) '(5 9 6)))) Ou pour répondre comme Tramber (mapcar '(lambda(x)(apply 'max x)) (list '(1 0 7) '(2 8 3) '(5 9 6))) @+
  17. Salut Tout est là (vlax-dump-object (vla-get-files (vla-get-preferences (vlax-get-acad-object)))) Par exemple, pour ajouter un répertoire dans les chemins de recherche. (setq pref (vla-get-files (vla-get-preferences (vlax-get-acad-object))) supp (vla-get-supportpath pref) ) (or (vl-string-search (strcase "Mon_répertoire") (strcase supp)) (vla-put-supportpath pref (strcat "Mon_répertoire;" supp) ) @+
  18. Salut Des pros, pas forcement mais des passionnés, sûrement. Je pense que tu dois avoir un variable qui récupère le résultat de la boite de dialogue (type done_dialog 0) et qui n'a pas été déclarée en local. Mets cette variable à nil pour voir @+
  19. Salut patrick Bonne chance pour tes nouvelles fonctions. @+
  20. Salut Remplace le foreach par while car un foreach parcours une liste. Pour tester si un calque existe, et bien dans la table des calques (tblsearch "layer" ...) Pour la boucle tu es à l'amende d'une bière ;) @+ Edit : Olivier a été le plus rapide
  21. Patrick_35

    Lier les attributs

    Salut Tu recopies un bloc avec des attributs liés. Ensuite, tu lances LATT, tu tapes R pour retirer et tu choisis l'attribut à enlever de la chaine. @+
  22. Salut Xrefs transforme les chemins absolue des xrefs et des images en chemin relatif. Si le dessin est sur le réseau et ton image sur ton disque dur, cela ne fonctionnera pas. Si tu souhaites donner un nouveau chemin, tu peux utiliser la commande xref et attribuer un nouveau chemin ou en lisp (command "_.xref" "_path" "Mon_Xref" "Mon_Nouveau_Chemin\\Mon_Xref") @+
  23. J'ai testé sur plusieurs dessins et je n'ai pas ce message. Si tu pouvais donner un exemple qui reproduit le problème @+
  24. Rien, tu fermes la fenêtre et tu télécharges @+
  25. Salut Avec Rxef @+
×
×
  • 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é