danb
Membres-
Compteur de contenus
26 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par danb
-
Bonjour Merci pour ces précisions ! Pour info et pour ceux que cela interesse, Lee Mac a actualisé son site avec cette correction.
-
Bonjour (Gile) Suite aux premiers tests l'erreur ne se produit plus ! Je t'en remercie beaucoup !! :) N'etant malheureusement qu'un "bricoleur", je n'aurai pas su régler ce bug seul... Ce bug vient-il du fait qu'il veut, à la base, conserver la position des items selectionnés avant le changement et que si le nombre d'éléments n'etait pas suffisant il y avait, alors, plantage ??? Ta solution reinitialise la position à O a chaque fois, si j'ai bien compris ... Si d'autres solutions me parviennent je les partagerai ici, encore merci !
-
Bonjour Merci de votre réponse. :) effectivement une demande auprès de l'auteur est déjà en cours et comme conseillé sur le site Lee Mac j'ai posté sur Cadtutor où un post sur ces mêmes lisp était déjà ouvert. Ensuite je pensais plus à une correction qu'à une amélioraion, raison pour laquelle je poste également ici au cas où quelqu'un aurait déja eu un problème similaire Cdlt,
-
Bonjour Il y a quelques temps j'ai testé un lisp utilisant des listes dépendantes ( "ListTileDependencyV1-0.lsp" et "ListTileDependencyDemo.lsp" de Lee Mac). Lors du test j'ai remarqué que cette démo contenait un bug dans son fonctionnement. exemple sur la fonction AA: si vous selectionnez "C, C3, C3a, C3aa" puis que vous revenez sur votre choix et que vous voulez selectionner "A" le lisp s'arrete ... Je mets les 2 lisp et l'analyse rétrospective à la fin de ce message J'ai cherché une solution à ce problème...sans succès jusqu'a présent. On peut contourner le problème en insérant des éléments "fantôme" (vides) dans les listes mais j'aimerai quand même savoir corriger cela "dans les règle de l'art". Avez vous une idée pour résoudre cette erreur? d'avance, merci beaucoup ! Dan nota: edit du 25/04 , dans un soucis de lecture, simplification des listes. ;; DCL List-Tile Dependency - Lee Mac ;; Configures action_tile statements for the list of keys to enabled dependency between the DCL tiles. ;; key - [lst] List of DCL tile keys in order of dependency ;; lst-sym - [sym] Quoted variable containing list data ;; rtn-sym - [sym] Quoted variable containing initial selection indexes (defun LM:dcld:action ( key lst-sym rtn-sym ) (defun LM:dcld:addlist ( key lst ) (start_list key) (foreach itm lst (add_list itm)) (end_list) ) (defun LM:dcld:getlists ( idx lst ) (if (cdr idx) (cons (mapcar 'car lst) (LM:dcld:getlists (cdr idx) (cdr (nth (car idx) lst)))) lst ) ) (defun LM:substnth ( itm idx lst ) (if lst (if (zerop idx) (cons itm (cdr lst)) (cons (car lst) (LM:substnth itm (1- idx) (cdr lst))) ) ) ) (defun LM:dcld:actions ( key lst-sym rtn-sym lvl / fun ) (setq fun (if (cdr key) (list 'lambda '( val lst / tmp ) (list 'setq rtn-sym (list 'LM:substnth '(atoi val) lvl rtn-sym) 'tmp (list 'LM:dcld:getlists rtn-sym 'lst) ) (list 'LM:dcld:addlist (cadr key) (list 'nth (1+ lvl) 'tmp)) (list 'if (list '<= (list 'length (list 'nth (1+ lvl) 'tmp)) (list 'nth (1+ lvl) rtn-sym)) (list 'setq rtn-sym (list 'LM:substnth 0 (1+ lvl) rtn-sym)) ) (list (LM:dcld:actions (cdr key) lst-sym rtn-sym (1+ lvl)) (list 'set_tile (cadr key) (list 'itoa (list 'nth (1+ lvl) rtn-sym))) 'lst ) ) (list 'lambda '( val lst ) (list 'setq rtn-sym (list 'LM:substnth '(atoi val) lvl rtn-sym)) ) ) ) (action_tile (car key) (vl-prin1-to-string (list fun '$value lst-sym))) fun ) (mapcar 'LM:dcld:addlist key (LM:dcld:getlists (eval rtn-sym) (eval lst-sym))) ( (eval (LM:dcld:actions key lst-sym rtn-sym 0)) (set_tile (car key) (itoa (car (eval rtn-sym)))) (eval lst-sym) ) (princ) ) ;; DCL List-Tile Dependency - Get Items - Lee Mac ;; Returns a list of the items selected from each dependent list tile. ;; idx - [lst] List of selection indexes ;; lst - [lst] List data (defun LM:dcld:getitems ( idx lst / tmp ) (if (cdr idx) (cons (car (setq tmp (nth (car idx) lst))) (LM:dcld:getitems (cdr idx) (cdr tmp))) (list (nth (car idx) (car lst))) ) ) ;; Five List Tile Dependency Example - Lee Mac ;; Requires ListTileDependency.lsp to be loaded. (defun c:aa ( / *error* dch dcl des lst rtn ) (defun *error* ( msg ) (if (= 'file (type des)) (close des) ) (if (< 0 dch) (unload_dialog dch) ) (if (and (= 'str (type dcl)) (findfile dcl)) (vl-file-delete dcl) ) (if (and msg (not (wcmatch (strcase msg t) "*break,*cancel*,*exit*"))) (princ (strcat "\nError: " msg)) ) (vl-bt) (princ) ) (setq lst '( ("A" ("A1" ("A1a" ("A1aa")) ("A1b" ("---"))) ("A2" ("A2a" ("A2aa")) )) ("C" ("C1" ("C1a" ("")) ) ("C2" ("C2a" ("C2aa")) ("C2c" ("C2ca" "C2cb" "C2cc" "C2cd"))) ("C3" ("C3a" ("C3aa "))) ) )) (if (and (setq dcl (vl-filename-mktemp "tmp.dcl")) (setq des (open dcl "w")) (foreach str '( "lbx : list_box" "{" " alignment = centered;" " fixed_width = true;" " fixed_height = true;" " width = 20;" " height = 15;" "}" "test : dialog" "{" " label = \"List Box Dependency Example\";" " spacer;" " : row" " {" " : lbx { key = \"lb0\"; label = \"List Box 1\"; }" " : lbx { key = \"lb1\"; label = \"List Box 2\"; }" " : lbx { key = \"lb2\"; label = \"List Box 3\"; }" " : lbx { key = \"lb3\"; label = \"List Box 4\"; }" " }" " spacer;" " ok_cancel;" "}" ) (write-line str des) ) (not (setq des (close des))) (< 0 (setq dch (load_dialog dcl))) (new_dialog "test" dch) ) (progn (setq rtn '(0 0 0 0 )) (LM:dcld:action '("lb0" "lb1" "lb2" "lb3") 'lst 'rtn) (if (= 1 (start_dialog)) (princ (strcat "\nThe user selected:" (substr (apply 'strcat (mapcar '(lambda ( x ) (strcat ", " x)) (LM:dcld:getitems rtn lst) ) ) 2 ) ) ) (princ "\n*Cancel*") ) ) ) (*error* nil) (princ) ) et voici l'analyse: Commande: AA Error: type d'argument incorrect: consp nil Analyse rétrospective: [0.124] (VL-BT) [1.120] (*ERROR* "type d'argument incorrect: consp nil") LAP+252 [2.114] (_call-err-hook #<USUBR @000000004f688340 *ERROR*> "type d'argument incorrect: consp nil") [3.108] (sys-error "type d'argument incorrect: consp nil") :ERROR-BREAK.103 "type d'argument incorrect: consp nil" [4.100] (NTH 0 nil) [5.94] (LM:DCLD:GETLISTS (0 0) nil) LAP+68 [6.87] (LM:DCLD:GETLISTS (2 0 0) (("A1" ("A1a" ("A1aa")) ("A1b" ("---"))) ("A2" ("A2a" ("A2aa"))))) LAP+82 [7.80] (LM:DCLD:GETLISTS (0 2 0 0) (("A" ("A1" ("A1a" ("A1aa")) ("A1b" ("---"))) ("A2" ("A2a" ("A2aa")))) ("C" ("C1" ("C1a" (""))) ("C2" ("C2a" ("C2aa")) ("C2c" ("C2ca" "C2cb" "C2cc" "C2cd"))) ("C3" ("C3a" ("C3aa ")))))) LAP+82 [8.73] (#<USUBR @000000004f7fa1b0 -lambda-> "0" (("A" ("A1" ("A1a" ("A1aa")) ("A1b" ("---"))) ("A2" ("A2a" ("A2aa")))) ("C" ("C1" ("C1a" (""))) ("C2" ("C2a" ("C2aa")) ("C2c" ("C2ca" "C2cb" "C2cc" "C2cd"))) ("C3" ("C3a" ("C3aa ")))))) LAP+43 [9.67] (#<USUBR @000000004f7fa1d8 -lambda-> "lb0" "0" "" 1 81 8) LAP+15 [10.57] (#<SUBR @000000004e11f480 -application-envelope->) :ENTRY-NAMESPACE.54 (:ENTRY-NAMESPACE) [11.51] (#<SUBR @000000004e11f4d0 -unwind-protect->) [12.48] (_lisplet-apply #<Document-LISPLET> #<SUBR @000000004e11f480 -application-envelope-> nil nil) [13.40] (_lisplet-app-apply #<Document-LISPLET> #<USUBR @000000004f7fa1d8 -lambda-> ("lb0" "0" "" 1 81 8)) [14.33] (dcl-call-back ("lb0" "0" "" 1 81 8) T) :DCL-ACTION.27 (((:DCL-ACTION "test" "lb0" 1))) [15.24] (START_DIALOG) [16.20] (C:AA) LAP+323 [17.15] (#<SUBR @000000004fadae30 -rts_top->) [18.12] (#<SUBR @000000004e118700 veval-str-body> "(C:AA)" T #<FILE internal>) :CALLBACK-ENTRY.6 (:CALLBACK-ENTRY) :ARQ-SUBR-CALLBACK.3 (nil 0)
-
Bonjour j'ai pris contact avec le support autodesk. Je poste les pistes qu'ils m'ont fournit. La mise a jour des drivers de la CG n'ont rien changé. seconde proposition qui a rendu le problème beaucoup plus intermittent mais qui ne l'a pas supprimé: danb
-
Bonjour lorsque je manipule des blocs dynamiques j'obtiens une erreur fatale d'autocad. Au maximum je peux faire un ou deux etirements mais au final ca crashe .. cela quelque soit le bloc... voici le message: [surligneur] [ERREUR INTERNE: !scandr.cpp@1526: eWasOpenForWrite /b] [/surligneur] quelqu'un a t il deja ce genre d'erreur? si oui avez vous trouvez une solution? merci
-
Bonjour lorsque je manipule des blocs dynamiques j'obtiens une erreur fatale d'autocad. Au maximum je peux faire un ou deux etirements mais au final ca crashe .. cela quelque soit le bloc... voici le message: [surligneur] [ERREUR INTERNE: !scandr.cpp@1526: eWasOpenForWrite /b] [/surligneur] quelqu'un a t il deja ce genre d'erreur? si oui avez vous trouvez une solution? merci
-
Bonjour dans le gestonnaire de calques, comment garder un filtre de calques comme filtre par défaut à l'ouverture d'un dessin??? En effet j'ai des dessins incluant des Xref. Quand j'ouvre le dessin le filtre de calques se remet automatiquement sur XREF alors que j'ai fermé et enregistré le dessin avec le filtre Xref et INVERSE coché. merci
-
bonjour alors effectivement la mise à jour "architecture" passe sans probleme !!!! :) quant a aux drivers pour la carte j'ai installé la 6..14.11.9178 ...elle s'installe sans problème.....
-
merci A priori il n'y pas d'update pour architecture.. je pensais que cet update pouvait être installer quand mémé car j'ai a la fois autocad et architecture d'installer sur la machine et ce qui est bizarre c'est que l'installation des drivers ne passe pas non plus....
-
Bonjour je viens de changer de config PC et j'ai réinstallé AUTOCAD ARCHITECTURE 2010. Je rencontre par contre 2 problèmes qui doivent avoir la même origine: Quand je veux installer l' autocad2010update1.exe j'obtiens le message suivant: http://xs.to/image-811D_4B87D7FC.jpg Et quand je veux installer le pilote spécial Autocad de ma carte (obtenu par 3Dconfig) (Quadro FX1700) il me retourne le message suivant. http://xs.to/image-3FF4_4B87D7FC.jpg Quelqu'un a t il deja rencontré ce problème ou a tout simplement un avis sur le problème ?? Merci d'avance dan
-
merci ! petit a petit ça éclairci.... merci pour les explications
-
bonjour,, j'ai jeté un oeil sur mat et pat puis je suis parti du code ci dessus pour obtenir ceci: ; erreur: Le serveur ActiveX a renvoyé l'erreur: nom inconnu: PromptString je ne trouve pas pourquoi.???? :casstet: :casstet: (defun modif_inv (nom invlst / at bl nom invLst neweti oldeti) (vl-load-com) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (if (ssget "_X" (list (cons 0 "INSERT") (cons 2 nom))) (progn (setq ss (vla-get-activeselectionset doc)) (vlax-for bl ss (foreach at (vlax-invoke bl 'getAttributes) (and (setq oldeti (assoc (vla-get-promptstring at) invlst)) (progn (vla-put-promptstring at (setq neweti (cadr (assoc (vla-get-promptstring at) invlst))) ) ;_ Fin de vla-put-promptstring (or evi (vlax-for at (vla-item (vla-get-blocks doc) nom) (and (eq (vla-get-objectname at) "AcDbAttributeDefinition") (eq (vla-get-promptstring at) (car oldeti)) (vla-put-promptstring at neweti) ) ;_ Fin de and ) ;_ Fin de vlax-for ) ;_ Fin de or ) ;_ Fin de progn ) ;_ Fin de and ) ;_ Fin de foreach (setq evi T) ) ;_ Fin de vlax-for (vla-delete ss) ) ;_ Fin de progn ) ;_ Fin de if (princ) ) ;_ Fin de defun (defun c:CH1 () (modif_inv "BLOC A" '( ;"Old Tag" "New Tag" ("o" "nouvelo") ("p" "nouveaup") ) ) ;_ Fin de modif_inv ) ;_ Fin de defun ;|«Visual LISP© Format Options» (150 2 1 2 T "Fin de " 80 9 0 0 1 T nil T T) ;*** NE PAS AJOUTER de texte au-dessous du commentaire! ***|;
-
effectivement la chaine n'etait pas cassée...j'avais fait une mauvaise manip auparavant :mad2: en ce qui concerne le changement d'invite, je "bricole" (vu mon niveau) a partir de tes conseil avec vla-get-promptstring mais rien a faire ..j'ai un mal fou avec le vlisp à piger.... :casstet: Pourrais tu m'aiguiller??? merci
-
et bien déjà merci a vous pour ces réponses rapides (et pour toutes vos autres contrinutions qui me sont souvent utiles !!!!!). J'ai testé rapidement les deux... Il y a une chose que je n'avais pas signalé dans le message initial: mes blocs sont liés entre eux par un attribut (dont l'étiquette, elle, n'est pas modifiée) qui s'incrémente automatiquement grâce au lisp LATT de patrick .... Malheureusement cette liaison est cassée lorsque j'applique les lisps de changement de nom d'étiquette... Y a t il une solution pour conserver cette liaison intacte? Autre petite question qui ne m'est pas forcement utile à moi mais qui peut etre utile pour d'autre: comment répercuter le changement de nom d'étiquette dans l' INVITE de l'attribut???? merci
-
Bonjour j'ai récupéré le code ci dessous sur un site anglais dans le but de renommer automatiquement les étiquettes de mes attributs de blocs. (defun changeTags (/ BLK DOC I TAGLST SS) (vl-load-com) (setq blk "demo_block") (setq tagLst '( ;"Old Tag" "New Tag" ("a" "anew") ("b" "bnew") ("c" "cnew") ) i -1 doc (vla-get-activedocument (vlax-get-acad-object)) ) (if (ssget "_X" (list (cons 0 "INSERT")(cons 2 blk))) (vlax-for bl (setq ss (vla-get-activeselectionset doc)) (foreach att (vlax-invoke bl 'getAttributes) (If (assoc (vla-get-tagstring att) tagLst) (vla-put-tagstring att (cadr (assoc (vla-get-tagstring att) tagLst))) ))) (princ "\nNo Selection Set Found.")) (princ)) ;; Run program manually with this: (defun c:demo_chgtag () (changeTags)) ;; Uncomment this to run when lisp loaded ;(changeTags) A première vue il fonctionne très bien mais je me suis aperçu qu'il y avait un soucis .....les changements ne sont pas pris en compte lorsque j'exécute Battman ou encore Attsync ....ni dans la définition du bloc Par contre si j'évite la synchro...les nouvelles etiquettes sont bien prise en compte lors de l'extraction d'attributs.... Comment résoudre ce problème????? (problème sous autocad 2008 et 2010) merci !!! voici qques impression d'écran.... etat initial http://img709.imageshack.us/img709/4364/etatinitial.jpg etat final apres avoir executer "demo_chgtag" http://img8.imageshack.us/img8/7915/etatfinal.jpg http://img519.imageshack.us/img519/3434/editeurapreslisp.jpg
-
j'ai pris la seconde....elle marche nickel !!! elle deja bien assez performante mille mercis !!!
-
Bonjour J'ai plusieurs hachures liés à une polyligne. J' ai récupérer les caractéristiques de la polyligne et mon but est de sélectionner à partir de ces caractéristiques toutes les hachures liées puis de les supprimer...mais je bloque complètement et tout cela en lisp.... Suivant les cas le nombres de hachures diffère. merci dan voici les caractéristiques (hachures en jaune) ((-1 . ) (0 . "LWPOLYLINE") (5 . "CD0") (102 . "{ACAD_REACTORS")[surligneur] (330 .) (330 .d'entité: 73f042d0>) (330 .) (330 .73f042e0>)[/surligneur] (102 . "}") (330 .) (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "ATTRIBUTION") (62 . 78) (100 . "AcDbPolyline") (90 . 4) (70 . 1) (43 . 0.0) (38 . 0.0) (39 . 0.0) (10 115.831 235.088) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10 117.732 235.088) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10 117.732 236.429) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10 115.831 236.429) (40 . 0.0) (41 . 0.0) (42 . 0.0) (210 0.0 0.0 1.0)) [Edité le 9/4/2009 par danb]
-
Bonjour, mille mercis Brend, ca marche impec.... :) Pour lili: je n'utilise pas Covadis Qu'est ce exactement ??? :casstet:
-
non malheureusement le texte n'est pas toujours a la meme distance... ce serait l'ideal... mais j'aimerais au moins automatiser meme si je dois selectionner chaque "couple" a la fois...
-
Bonjour, Je cherche une solution pour automatiser ceci: J'ai un dessin ou il y a: *des textes (en bleu sur le dessin ci dessous) * des bloc avec un attribut 'altitude" mon souhait serait de copier la valeur du texte dans l'attribut 'altitude" puis effacer le texte et cela de façon automatique car j'ai un grand nombre de bloc a traiter. J'ai tenté avec un script mais ca ne va pas merci http://frozentime2.free.fr/cad.jpg
-
effectivement je suis vraiment vraiment debutant en programmation :( ....mais ca doit etre super utile de s'y connaitre !!!!!!!!!
-
Bonjour J'ai une polyligne qui represente un bureau. pour chaque polyligne j'insere un bloc "Donnees" constitué uniquement d'attributs tel que: "N° de bureau, superficie, service occupant.....) Les hachures ne font pas parties du blocs. Dans ce cas la superficie est lié a la polyligne (insertion d'un champ) .qd je modifie ma polyligne la superficie s'actualise automatiquement. Mon but: Creer automatiquement des hachures d'une certaine couleur en fonction de la valeur de l'attribut SERVICE_OCCUPANT ou changer la couleur si la hachure existe par exemple: si SERVICE_OCCUPANT= DRH alors il se creer automatiquement des hachure rouge qd les hachure n'existe pas ET si elle existe il n'y a qu'a changer la couleur. qq'un peut il m'aider? merci dan
-
j'ai deja effectuer qques recherches j'ai bien trouvé qques pistes...mais c assez vague effectivement je pense me tourner vers la prog (VBA????) mais je suis novice dans ce domaine....
-
Les hachures ne font pas parties du blocs. Le bloc n'est constitués que d'attributs. J'explique plus en détail: J'ai une polyligne qui represente un bureau. pour chaque polyligne j'insere un bloc "Donnees" constitué d'attribut tel que: "N° de bureau, superficie, service occupant.....) Dans ce cas la superficie est lié a la polyligne (insertion d'un champ) .qd je modifie ma polyligne la superficie s'actualise automatiquement. Mon but: Creer automatiquement des hachures d'une certaine couleur en fonction de la valeur de l'attribut SERVICE_OCCUPANT par exemple: si SERVICE_OCCUPANT= DRH alors il se creer automatiquement des hachure rouge qd les hachure n'existe pas ET si elle existe il n'y a qu'a changer la couleur. dan
