-
Compteur de contenus
1 489 -
Inscription
-
Dernière visite
-
Jours gagnés
19
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par zebulon_
-
Commande GROUP Petit casse tête
zebulon_ a répondu à un(e) sujet de nakapuf dans AutoCAD 2000 à 2002
Bienvenu au club ;) de la même manière qu'on demande le nouveau préfixe, avec la fonction getstring Au lieu d'aller parcourir la table des "BLOCK", il faudra parcourir la table des "LAYER". Sinon, le principe est le même. Amicalement Vincent -
Echelle de type de ligne et présentation
zebulon_ a répondu à un(e) sujet de zebulon_ dans Routines LISP
Bonjour, au sujet des regen : ne fait un regen que de l'espace papier et pas des fenêtres de l'espace papier. Ne faudrait-il pas remplacer acActiveViewport par acAllViewports dans la fonction ltscaleCallback ? Par ailleurs, il y a une inversion pour l'initialisation des variables. Au départ, j'avais mis LTSCALEP à 5 et LTSCALEM à 0.5. Depuis quelques jours, je ne pense plus aux ECHLTP. C'est les vacances ! ;) Salutations Vincent -
Bonjour, Dessiner des aciers avec des blocs dynamiques est une idée qui est intéressante. Elle a des avantages (compatible LT ...) mais aussi des inconvénients que je trouve majeurs. C'est pour cela que j'ai abandonné cette idée (sauf pour les treillis soudés et les boites d'attentes). En fait, avec un bloc dynamique, il est quasiment impossible de définir un acier avec un façonnage hors standard. Malheureusement, j'ai besoin de faire très souvent des façonnages un peu "acrobatiques" compte tenu des coffrages qu'on peut rencontrer en ouvrage d'art. Mais pour des ferraillages de poteaux, poutres, semelles de bâtiment ces blocs peuvent correspondre parfaitement aux besoins. On en a déjà parlé et il est évident qu'il y a encore beaucoup de monde qui dessine les armatures "comme à la main". En gros, Autocad remplace le Rotring, c'est tout et c'est bien dommage. Des blocs comme tu les imagines sont donc un progrès considérable pour toute cette population. Et encore, il a des dessinateurs qui sont tellement "réactionnaires" qu'il s te diront que c'est mieux comme ils font, point barre (d'acier bien sûr). Comme tu as pu le constater, personnellement, j'utilise le lisp pour dessiner mes aciers, repères, nomenclatures et récapitulations. Les aciers sont des polylignes qui contiennent des xdatas. Les repères, nomenclatures et récapitulations sont des blocs avec des paramètres. Les inconvénients de ma méthode, c'est qu'il faut connaitre le lisp (la gestion des polylignes 2D n'a presque plus de secret pour moi, la gestion des xdata ...) et que cela n'intéressera pas les LTsiens. L'avantage le plus important du lisp, hormis la possibilité de dessiner des aciers hors standard, est l'automatisation beaucoup plus aboutie de la nomenclature et de la récapitulation. C'est ce qui réduit de beaucoup le temps dans la réalisation des plans d'armatures et c'est ce qui est important en "production". Amicalement Vincent
-
J'y pense : ce genre de logiciel permet le plus souvent d'extraire la récap. au format cvs, facile à importer sur excel. Il faudrait demander ce fichier en parallèle du plan, ce qui éviterait une grosse partie de saisie. Amicalement Vincent
-
Bonjour, Afin de bien comprendre ton besoin, Noro, il s'agit bien de plans que tu reçois et que tu ne fais pas toi même ? En l'occurence, le plan dwg-calculer1.dwg a été "fabriqué" avec un logiciel qui s'appelle ARMACAD. Pour s'en convaincre, il suffit de regarder les xdatas stockées dans les barres d'acier ou les repères (avec Express/Tools/list object Xdata) et on voit que c'est signé ARMACAD. La récapitulation d'aciers, pour ce genre de logiciels, est automatisée. Et tu nous dis qu'elle est très souvent fausse, c'est donc qu'ARMACAD ne fonctionne pas bien. Son éditeur ne va pas être d'accord avec ça ;) Si effectivement tu reçois des plans que tu ne fais pas toi même (parce que tu dois dépouiller les nomenclatures pour fabriquer les aciers correspondants), c'est que tu peux recevoir des fichiers provenant d'ARMACAD, AD-FER, ou autres logiciels, ou fabriqués sans aucun logiciel spécifique (comme à la main, mais dessiné avec Autocad). Donc, tu vas avoir autant de présentations que de logiciels, voire de clients. Ce sera donc très difficile d'automatiser quelque chose d'aussi varié. Si tu nous dis : "les fichiers viennent tous du même et c'est toujours ARMACAD", alors il faut l'acheter. Amicalement Vincent
-
Echelle de type de ligne et présentation
zebulon_ a répondu à un(e) sujet de zebulon_ dans Routines LISP
Oui, d'ailleurs lorsqu'on utilise la commande ECHLTP, elle provoque une régénération. Alors que, si on change la variable LTSCALE, il n'y a pas de régénération. Amicalement Vincent [Edité le 14/1/2010 par zebulon_] -
Echelle de type de ligne et présentation
zebulon_ a répondu à un(e) sujet de zebulon_ dans Routines LISP
Cela me rassure définitivement ;) Magnifique. J'avais pensé à la même chose mais en faisant de simples (setq LTSCALEM 5) et (setq LTSCALEP 0.5), ce qui en aurait fait des variables non enregistrées. Mais c'est mieux de les sauvegarder avec vlax-ldata, de manière à ce que cela deviennent des variables enregistrées dans le dessin (par ailleurs, je préfère que les variables soient enregistrées dans le fichier plutôt que dans le registre). Et en prime, on a 2 commandes supplémentaires pour les modifier. Le choix du réacteur vlr-miscellaneous-reactor est, sans aucun doute, plus judicieux puisqu'il réagit à l'action "changer de présentation", quelle que soit la manière (en changeant la valeur de la variable TILEMODE par exemple). vlr-command-reactor ne réagit qu'à la commande LAYOUT_CONTROL. Si la communauté adopte cette façon de procéder, peut-être qu'un jour on trouvera ces variables dans autocad ? Merci pour cette contribution Amicalement Vincent -
Cherche lisp pour changer la couleur de plusieurs textes multiligness dont la couleur a été forcée
zebulon_ a répondu à un(e) sujet de autospeed dans Routines LISP
Bonjour, un sujet très intéressant. D'autant plus "sensible" depuis que je suis passé à la version 2010. Depuis cette version (ou sur 2009 que je n'ai pas utilisé), les justifications des textes multiples définies avec les boutons de l'éditeur n'agissent plus sur les propriétés "Justifier" qui restent toujours "Haut Gauche", mais rajoutent un formatage du genre \pxqc; D'un côté, c'est mieux puisque chaque ligne du texte multiple peut être justifié autrement que ses petites copines. Mais c'est quand même rare de devoir écrire des mahousses textes qui justifierait presque l'utilisation de Word. Finalement, on fait du dessin pas de la prose. Et, agir sur une propriété est tellement plus simple que de devoir modifier un formatage à l'intérieur même du texte. Donc, je ne trouve pas que ce soit vraiment un progrès. Amicalement Vincent [Edité le 14/1/2010 par zebulon_] -
Echelle de type de ligne et présentation
zebulon_ a répondu à un(e) sujet de zebulon_ dans Routines LISP
Bonjour, Je me demandais s'il était possible pour Autodesk de prévoir 2 variables LTSCALE pour ses versions futures, l'une agissant sur l'espace papier, l'autre sur l'espace objet. Ce qui éviterait de devoir "bricoler" comme je le fais. Amicalement Vincent [Edité le 14/1/2010 par zebulon_] -
Echelle de type de ligne et présentation
zebulon_ a répondu à un(e) sujet de zebulon_ dans Routines LISP
Bonjour, Je commençais à m'inquiéter. Je me suis dit : "je suis le seul à travailler comme ça : c'est donc que c'est une mauvaise manière". C'est rare d'être seul à avoir raison. Il s'agit d'un réacteur qui réagit à la commande "LAYOUT_CONTROL" qui s'exécute lorsqu'on clique sur les onglets "Objet", "Présentation1", "Présentation2" etc... et qu'on souhaite passer de l'espace objet à l'espace papier, ou d'un présentation à une autre. Personnellement, mon PSLTSCALE est toujours à 1 pour les raisons évoquées plus haut. Je ne fais varier que la variable LTSCALE (qui correspond à ECHLTP) suivant qu'on est en espace objet ou en espace papier. Et je ne fais surtout pas varier les échelles de type de ligne de chaque objet (cette propriété est toujours à 1 pour tous les objets dans mes fichiers), comme je vois souvent. Les valeurs que j'applique (5 en espace papier et 0.5 en espace objet) fonctionne bien chez moi, mais dépendent de beaucoup de paramètres (unités de travail, fichier AutoCAD.lin ou acadiso.lin, echelle moyenne utilisée etc) et sont obtenues de façon assez empirique. Personnellement, je mets ces lisp dans "Charger/Décharger les applications" / "Au démarrage". Tu vois, la petite valise en bas à droite de la boite de dialogue ? Amicalement Vincent PS : en passant, je trouve que ce serait pas mal d'avoir un LTSCALE pour l'espace papier et un autre pour l'espace objet. Genre LTSCALEM et LTSCALEP. -
Cherche lisp pour changer la couleur de plusieurs textes multiligness dont la couleur a été forcée
zebulon_ a répondu à un(e) sujet de autospeed dans Routines LISP
_qselect permet de sélectionner des textmult. Une fois qu'ils sont sélectionnés selon les critères que tu auras choisis, il suffit de faire un clic à droite, choisir propriétés et changer la propriété COULEUR en DUCALQUE. Il est vrai qu'avec la commande FILTER, on ne trouve que TEXTE dans la liste. Mais, ce terme désigne également les textmult. Il est vrai que cela ne fonctionne que sur les propriétés des mtext et pas sur leur formatage. Amicalement Vincent [Edité le 12/1/2010 par zebulon_] -
Cherche lisp pour changer la couleur de plusieurs textes multiligness dont la couleur a été forcée
zebulon_ a répondu à un(e) sujet de autospeed dans Routines LISP
Comme le dit didier, il est facile de filtrer des textes avec la sélection rapide (menu contextuel ou _qselect), sinon en lisp cela pourrait, sauf erreur parce que je n'ai pas testé, s'écrire comme ça (setq ss (ssget "_X" '((0 . "*TEXT")))) (if ss (command "_chprop" ss "" "_c" "DUCALQUE" "") ) Amicalement Vincent -
Bonjour, La question de l'affichage des types de lignes selon qu'on est en objet ou en présentation revient très souvent. Aussi, la réponse donnée le plus souvent est de changer la variable PSLTSCALE à la valeur 0, afin d'avoir des affichages qui ne tiennent pas compte des échelles des fenêtres FMULT. Personnellement, cette réponse ne me satisfait pas, parce que je fais fréquemment des fenêtres à des échelles très différentes sur le même plan (une au 1:10ème, l'autre au 1:200ème par exemple) et je souhaite que les tirets aient le même aspect sur toutes les fenêtres quelle que soit l'échelle de la fenêtre. Mon PSLTSCALE est donc toujours à 1 pour cette raison. Mon problème est, lorsque PSLTSCALE est à 1, qu'il est très difficile d'avoir un ECHLTP (LTSCALE) qui permet d'avoir quelque chose d'exploitable à la fois en espace papier et en espace objet. Afin d'y voir clair, je suis toujours obligé de changer la valeur de l'ECHLTP selon que je sois en espace papier ou en espace objet. Et ça me fatigue de changer et je voudrais que ça se fasse tout seul. Il y a très longtemps, lorsque Autocad n'avait encore qu'un seul espace papier, j'avais fais un simple bouton qui servait à changer d'espace et qui changeait à la fois la variable TILEMODE et la variable LTSCALE. Maintenant qu'il y a plusieurs espaces papiers, ce n'est évidemment plus suffisant. J'ai pensé que les réacteurs seraient un bon moyen pour me permettre d'avoir un ECHLTP différent selon l'espace de travail. ;;; Lisp à charger uniquement ... ne pas exécuter !!! (vl-load-com) (vlr-command-reactor "change layout" '((:vlr-commandEnded . EndChangeLayout))) (defun EndChangeLayout (calling-reactor endcommandInfo / thecommandend) (setq thecommandend (nth 0 endcommandInfo)) (if (= thecommandend "LAYOUT_CONTROL") (if (zerop (getvar "TILEMODE")) (setvar "LTSCALE" 5) ;; espace papier (setvar "LTSCALE" 0.5) ;; espace objet ) ) ) Amicalement Vincent [Edité le 12/1/2010 par zebulon_]
-
Un autre apôtre du raccourci clavier ;) qui a aussi l'avantage de "dégager" l'écran de tout ces artifices encombrants et permet d'afficher le maximum de ce qui est intéressant : le dessin. Amicalement Vincent
-
Bonjour, Ma carte de Voeu, réalisée grâce au concours de l'IGN et du Géoportail. http://img689.imageshack.us/img689/450/voeu.jpg Bonne Année à tous Amicalement Vincent
-
Le Père Noël ? J'ai essayé le lisp et il dessine des gaines très jolies. Mais c'est graphiquement très compliqué, donc très lent, le fichier devient hyper lourd assez rapidement et c'est impossible à modifier (s'il y a modification, on efface tout et on recommence) Question : ça vaut la peine de dessiner les gaines avec un tel niveau de précision ? La climatisation, ce n'est pas mon métier, mais j'imagine qu'une gaine de 200 représentée au 1:50ème sera pareil si on met les petits bourrelets ou non. Donc, ce serait plus simple de ne pas les mettre. Il y a eu une demande pour un chemin de câble ici, qui est graphiquement plus simple, plus rapide et qui donne des objets plus faciles à manipuler et des fichiers moins lourds. On peut l'adapter (enlever les hachures, rajouter un congé de raccordement ...) Amicalement Vincent
-
cela ne marche pas toujours à l'affichage (en général un regen affiche les grips, si sssetfirst ne le fait pas tout de suite). Quoi qu'il en soit, les objets sont bien sélectionnés. Un bug de sssetfirst ? Il y a déjà eu des discussions concernant ce problème ici Amicalement Vincent
-
Bonjour, (defun addleader (ss / sst I e a ls) (setq sst ss) (setq I 0) (repeat (sslength ss) (setq e (ssname ss I)) (setq a (entget e)) (setq ls (cadr (member '(102 . "{ACAD_REACTORS") a))) (if (= (car ls) 330) (setq sst (ssadd (cdr ls) sst)) ) (setq I (+ I 1)) ) sst ) (defun c:selrep (/ ss) (setq ss (ssget '((0 . "MTEXT") (102 . "{ACAD_REACTORS")))) (setq ss (addleader ss)) (sssetfirst nil ss) ) Amicalement Vincent
-
Bonjour, (setq ss (ssget '((-4 . " (-4 . " (0 . "MTEXT") (102 . "{ACAD_REACTORS") (-4 . "AND>") (0 . "LEADER") (-4 . "OR>")) ) ) Sinon, il y a aussi l'utilisation des LIGNEDEREPMULT pour lesquels la flèche et le texte ne font qu'un seul objet de type MLEADER (mais ce n'est disponible qu'à partir de la version 2008) Amicalement Vincent
-
Bonjour, Je ne connais pas de variable qui stocke cette information. Mais, il en existe tellement et je ne le connais pas toutes. Par contre, il y a une expression lisp qui te donne la liste des onglets présents : (layoutlist) et pour avoir le nombre, il suffit de regarder la longueur de cette liste (length (layoutlist)) Amicalement Vincent
-
Bonjour, Qu'est ce que ces "attributs" doivent contenir ? S'il s'agit de la longueur de la polyligne, par exemple, l'utilisation d'un CHAMP est peut-être plus simple qu'un bloc dynamique. Amicalement Vincent
-
Bonjour, _Mleader se nomme LIGNEDEREPMULT (voir l'aide correspondante) _leader se nomme LREPERE (dans l'aide, on nous explique qu'il n'y a que la ligne de commande) et il y a aussi _qleader, qui se nomme LREPERERAP avec quoi on obtient quelque chose qui est du même tonneau que LREPERE (à savoir 2 objets distincts mais associés). Il est clair que dans l'aide, on pousse à la roue pour l'utilisation des lignes de repères multiples. Il est vrai qu'elles ont des avantages et je les ai personnellement adoptées (depuis la version 2010). Il faut retenir qu'elles n'ont plus rien à voir avec des cotes (le style de cote n'influe en aucune manière sur leur aspect), elles ont un style qui leur est propre (commande _mleaderstyle), ainsi qu'un sous-menu Autocad/Ligne de repère multiple. Pour ceux qui veulent pousser plus loin leurs investigations concernant les MLEADER, il faut retenir que les informations concernant les styles de repères multiples ne sont pas stockées dans un table (comme les styles de cotes, les calques, les blocs etc...) il faut rechercher dans le dictionnaire "ACAD_MLEADERSTYLE" Amicalement Vincent
-
Bonjour, question intéressante. Je dirais qu'il suffit d'essayer. ;) J'ai attaché un bloc dynamique à un multileader et je n'ai pas trouvé comment modifier les propriétés dynamiques du bloc. Le bloc est en quelque sorte "encapsulé" dans la multileader et ne forme qu'un seul objet de type multileader avec la flèche de repère. Dans les propriétés de la multileader, on a juste la possibilité de modifier l'échelle du bloc. Par contre, un bloc attaché à un leader conserve ses propriétés dynamiques. Dans ce cas, le bloc dynamique reste de type bloc, qui est simplement "lié" à la flèche de repère qui est une cote. Donc, avec un leader, flèche et bloc restent 2 objets distincts. Voilà. il y a peut être quelqu'un qui sait faire avec les multileader mais cela ne m'a pas l'air évident. Amicalement Vincent
-
Bonjour, je me posais les mêmes questions. J'ai fait quelque chose qui laisse la main à l'utilisateur pour les insérer où il veux. J'ai fixé l'échelle à 1 et l'angle de rotation à 0. (defun insmul_err (msg) (command "_.undo" "_end") (setvar "ATTREQ" oldattreq) (alert (strcat "Erreur : " msg)) (setq *error* m:err ;; restaurer *error* m:err nil ) (princ) ) (defun c:insmul (/ nomf oldattreq f l blocname) (vl-load-com) (setq m:err *error* ;;sauvegarder *error* *error* insmul_err ;;redéfinir *error* ) ;; trouver le fichier qui contient les noms de blocs (setq nomf (getfiled "Sélectionner un fichier" "" "txt" 0)) (if nomf ;; si un fichier a été sélectionné (progn (setvar "CMDECHO" 0) ;; n'affiche pas le détail des commandes (command "_.undo" "_begin") (setq oldattreq (getvar "ATTREQ")) ;; mettre de côté la valeur courante de ATTREQ (setvar "ATTREQ" 0) ;; s'il y a des attributs, prendre les valeurs par défaut (setq f (open nomf "r")) ;; ouvrir le fichier nomf en lecture (while (setq l (read-line f)) ;; lire chaque ligne l de f (setq blocname (vl-filename-base l)) ;; extraire le nom du bloc (if (tblsearch "BLOCK" blocname) ;; vérifier s'il est déjà inséré dans le fichier (setq l blocname) ;; dans ce cas on insère le bloc déjà présent (if (not (findfile l)) ;; sinon on vérifie si le fichier existe (progn (alert (strcat l "\nnon trouvé")) ;; faut croire qu'il n'existe pas (setq l nil) ;; et on met l à nil pour éviter d'insérer un bloc inexistant ) ) ) (if l ;; le bloc existe soit dans la table de bloc, soit dans le répertoire spécifié (command "_insert" ;; on lance la commande INSERER l ;; du bloc l pause ;; on attend que l'utilisateur donne le point d'insertion 1 ;; echelle x fixée à 1 1 ;; echelle y fixée à 1 0 ;; angle de rotation fixée à 0 ) ) ) ;; while (close f) ;; fermer le fichier f (setvar "ATTREQ" oldattreq) ;; remettre ATTREQ à sa valeur initiale (command "_.undo" "_end") ) ) (princ) ) S'il s'agit d'ajouter les blocs à la collection sans les insérer, on sait faire sans lisp avec designcenter Amicalement Vincent [Edité le 7/12/2009 par zebulon_]
-
Bonjour, En V à 180°, comment est-ce possible ? J'étais, il y a de cela quelques années, le fier propriétaire d'une Dyane 6 (celle qui devait succéder à la légendaire 2CV, mais qui a été produite moins longtemps qu'elle) et on m'a expliqué, à l'époque, qu'il s'agissait d'un moteur à plat avec 2 cylindres horizontaux opposés (flat-twin ou boxer). Sans vouloir te froisser, Tramber, on peut donc difficilement parler d'un V. Amicalement Vincent [Edité le 4/12/2009 par zebulon_]
