Worms69
Membres-
Compteur de contenus
26 -
Inscription
-
Dernière visite
Contact Methods
-
Website URL
http://
Worms69's Achievements
Newbie (1/14)
0
Réputation sur la communauté
-
types de lignes avec des carrés pleins et des cercles pleins
Worms69 a répondu à un(e) sujet de Worms69 dans AutoCAD 2008
Ca marche :D !!! fallait y penser à celle-là... Tu es impressionnant (gile). Merci -
types de lignes avec des carrés pleins et des cercles pleins
Worms69 a répondu à un(e) sujet de Worms69 dans AutoCAD 2008
Salut, En fait, la solution que tu proposes joue sur l'épaisseur de la ligne et non pas sur l'épaisseur du shape qui constitue cette ligne. Donc le trait qui est entre les ronds s'élargit, mais pas le rond. Après avoir lu la doc autocad en anglais http://docs.autodesk.com/ACD/2011/ENU/filesACG/WS73099cc142f4875513fb5cd10c4aa30d6b-7f2e.htm , je cherche à créer un shape qui soit plein, ce qui est difficile puisqu'un shape, il me semble, est un objet vectoriel. - j'ai essayé'de créer plein de cercles en décalant à chaque fois de 0.01 mon trait, de manière à avoir quelque chose de plein ou presque ; ca ne me fait figurer toujours qu'un seul cercle - j'ai essayé en faisant un anneau, ca ne marche pas non plus. Mon soucis est d'arriver à dessiner un shape plein... -
types de lignes avec des carrés pleins et des cercles pleins
Worms69 a posté un sujet dans AutoCAD 2008
Bonjour à tous, Je cherche à avoir les deux symboliques linéaires suivantes : - cercle plein (et j'insiste sur le plein), espace, cercle plein, espace - carré plein, espace, carré plein, espace Or j'ai crée, à partir de types de lignes existants les deux symboliques. Mais je n'arrive pas à avoir les formes pleines. Quelqu'un a-t-il une idée? J'ai trifouillé dans les fichiers ltypeshp.shx et ltypeshp.shp, (objet CIRC1 et BOX) mais rien n'y fait, je na'rrive à mettre ces formes pleines. Merci de votre aide -
Mercid e votre aide! Je vais essayer de comprendre les simplifications du filtre. [Edité le 23/8/2010 par Worms69]
-
En fait, je voulais juste changer l'inclinaison des textes et la couleur. Et après avoir lu diverses contributions sur _style ici et là, j'en déduis que c'est plus rentable de le faire à la main. A priori, je n'ai qu'une inclinaison pour tous mes textes... Par contre, je voudrais bien pouvoir changer avec command la couleur et mettre une couleur RGB, si possible. Je vais continuer à chercher Merci de votre aide
-
Je comptais faire avec command mais c'est parce que je connais que ca pour l'instant. ( defun c:convline () ;affecter la bon type et la bonne couleur aux textes (setq t70_et_t100 (ssget "X" '( (-4 . " (-4 . " (0 . "TEXT,MTEXT") (62 . 70) (-4 . "and>") (-4 . " (0 . "TEXT,MTEXT") (62 . 100) (-4 . "and>") (-4 . "or>") );pour sélectionner les textes et mtextes qui ont 70 ou 100 comme couleur ) ) (sssetfirst nil t70_et_t100) (command "_modtext" t70_et_t100 "" "co" "150")) Sachant qu'ensuite, je souhaite modifier le style de texte et éventuellement la hauteur. [Edité le 20/8/2010 par Worms69]
-
Bonjour, Pour les lignes, il est possible de modifier les couleurs par des types RGB. Pour les textes, est-il possible de faire la même chose? Cela ne semble pas être le cas à première vue. Faut-il que j'affecte ces textes, en type du calque, dans un calque qui lui aura une couleur de type RGB? Merci de votre aide
-
C'est bon, à force de réfléchir et d'essayer, j'ai trouvé. (command "chprop" a "" "co" "u" "46,139,87" "") Pardon pour le doublon ; j'essaie de le supprimer, mais ca ne marche pas. [Edité le 19/8/2010 par Worms69]
-
Bonjour à tous, Je débute en Lisp et je voudrais faire un petit programme, dont voici le début. Je voudrais sélectionner des lignes pour ensuite modifier la couleur. ( defun c:convline () (setq a (ssget "X" '((0 . "ARC,LINE,POLYLINE,LWPOLYLINE") (62 . 34)))) ; sélectionner tous les ARCS, LIGNES, POLYLIGNES qui ont la couleur 34 (command "chprop" a "" "co" "u" "" 46,139,87 "") ) J'ai un problème de syntaxe avec command, l'erreur renvoyée quand j'utilise le programme est Commande: convline chprop Choix des objets: 81 trouvé(s) Choix des objets: Entrez la propriété à modifier [COuleur/CAlque/Tligne/EChltl/EPaisseurl/Hauteur/Matériau/Annotatif]: co Nouvelle couleur [coUleursvraies/CArnet de couleurs] <34>: u Rouge,Vert,Bleu: Couleur non valide. Entrez trois valeurs comprises entre 0 et 255, séparées par une virgule. Merci de votre aide
-
.... s'l vous plaït, un peu d'aide? merci
-
(bonne année à tous!) effectivement, la solution de zebulon est efficace et évite toute programmation dés lors que l'on veut ajouter un préfixe (ou suffixe) à un nom de couche ; néanmoins, toujours dans le but de m'améliorer, j'ai un lisp pour renommer des couches qui se présente de la manière suivante : ; 3 possibilités dans le renommage (3 sous-parties) ; si je veux changer tous les noms, 1è sous-partie ; si je veux changer le nom au cas par cas, 2è sous-partie ; si je veux ajouter un préfixe, 3è sous-partie (defun c:layc (/ x y lay1 lay2 lay3 calque) (prompt "Bonjour, choisissez ce que vous voulez faire :") (initget 1 "1 2 3") (setq x (getkword "\n Renommage total (1) ou Renommage couche par couche (2) ou Ajouter un préfixe (3) ? (1 ou 2 ou 3) ")) ; 1ère sous-partie ; change le nom des couches ; tout se fait automatiquement, pas de pause, pas d'entrée clavier, pas de choix dans le renommage, ; un remplacement basic (if (= x "1") (princ "Bienvenue dans le programme qui permet de renommer en 1 coup le nom des couches ") (setq lay1 (tblnext "LAYER" T)) (while lay1 (if (member (cdr (assoc 2 lay1)) '("FGT")) (command "_rename" "_layer" "FGT" "Relief") "") (if (member (cdr (assoc 2 lay1)) '("FA1")) (command "_rename" "_layer" "FA1" "Batiments") "") ; j'ai sucré le reste des lignes concernant les autres couches, car y'en a 50 (setq lay1 (tblnext "LAYER")) ) (princ "\n Traitement n°1 terminé. Ne pas tenir compte du message d'erreur qui va suivre ") (princ) (exit) ; 2è sous-partie ; change le nom des couches ; parcourt 1 à 1 la liste des couches ; affiche le nom de la couche ; demande si on veut changer son nom ; demande le nom de remplacement ; => un remplacement plus "évolué" avec intervention de l'utilisateur à chaque nom de couche (if (= x "2") (princ "Bienvenue dans le programme qui permet de renommer 1 à 1 le nom des couches ")) (setq lay2 (tblnext "LAYER" T)) ;parcourir le tableau (while lay2 ; tant que y'a une couche (setq calque (cdr (assoc 2 lay2))) ; on affecte à "calque" le nom de la couche (princ "\n Le nom de la couche est ") (princ calque) (princ "\n ") (initget 1 "Oui Non") (setq y (getkword "\n Voulez-vous renommer cette couche? (Oui ou Non) ")) (if (= y "Oui") (command "_rename" "_layer" calque (getstring "\n Entrez le nouveau nom pour la couche ") ) ) (setq lay2 (tblnext "LAYER")) ; passe à la couche suivante ) (princ "\n Traitement n°2 terminé. Ne pas tenir compte du message d'erreur qui va suivre ") (princ) (exit) ; 3è sous-partie ; change le nom des couches en rajoutant un préfixe à toutes les couches ; => un rajout de préfix basic devant chaque nom de couche (if (= x "3") (princ "Bienvenue dans le programme qui permet de rajouter un préfixe à tous les noms de couches ")) (setq lay3 (tblnext "LAYER" T)) ;parcourir le tableau (while lay3 ; tant que y'a une couche (setq calque (cdr (assoc 2 lay3))) ; on affecte à "calque" le nom de la couche (princ "\n Le nom de la couche est ") (princ calque) (princ "\n ") ;(initget 1 "Oui Non") ;(setq y (getkword "\n Voulez-vous renommer cette couche? (Oui ou Non) ")) ;(if (= y "Oui") (setq prefixe (getstring "\n Entrez le préfixe que vous voulez ajouter ")) (command "_rename" "_layer" calque (strcat "calque" "prefixe")) ; concaténation ) (setq lay3 (tblnext "LAYER")) ; passe à la couche suivante (princ "\n Traitement n°3 terminé. Ne pas tenir compte du message d'erreur qui va suivre ") (princ) (exit) ) les trois sous-parties marchent séparement (c'est-à-dire dans trois fichiers différentes) mais pas lorsque je les mets ensemble, pour avoir le choix du traitement ; j'ai un soucis : quelque soit ma réponse à la question, je n'arrive pas à lui faire faire la 2è sous-partie, ni la 3è, seule la 1ère marche. J'ai un problème avec le choix dans la question posée au départ : il me faudrait un GOTO, mais j'ai cru comprendre que ca n'existait pas en Autolisp. J'ai trop d'arguments pour pouvoir imbriquer tout. je ne sais plus trop comment faire : j'ai pensé à faire 3 sous-fonctions, et a imbriquer les fonctions de la manière suivante, après le choix au tout début : (if (= x 1) sous_fonction1 (if (= x 2) sous_fonction2 (if (= x 3) sous_fonction3))) mais je sais pas si ca marcherait. il se pose le soucis aussi de la gestion des messages d'erreur, que je ne préfère pour l'instant pas trop aborder ; je souhaite garder la 3è sous-partie, pour l'améliorer ensuite et travailler sur les chaînes de caractères pour par exemple si on rajoute un préfixe, se débrouiller pour que le nouveau ne contienne qu'une majuscule en début de nom (et pas 2 en conservant celle de l'ancien nom...), des trucs dans le genre... je vais chercher en espérant avoir été clair Merci de votre aide
-
Merci à vous trois pour les conseils, je vais chercher! [Edité le 19/12/2006 par Worms69]
-
en fait, j'avais oublié des "" autour de FGT dans (if (member (cdr (assoc 2 lay)) '(FGT)) ... et du coup, ca marche :D
-
le but à terme : parcourir toute la table des noms de couche et ajouter un préfixe à chaque nom. Je pensais qu'au départ, fallait d'abord apprendre à changer le nom d'une couche car changer le nom d'une couche n'est pas très éloignée de rajouter un préfixe à une couche non?? ensuite, une fois qu'on sait comment changer le nom d'une couche, il reste plus qu'à ajouter un préfixe au lieu de modifier... je n'ai surement pas la bonne logique, mais c'est comme ca que je le voyais...
-
Merci à toi. effectivement, je suis tombé sur cette commande dans l'aide si je fais (hors d'une boucle): (command "_rename" "_layer" "FGT" "Toto23" "") ca marche impeccable par contre si je le mets dans une boucle : (defun C:LAYCHANGE () (setq lay (tblnext "LAYER" T)) (while lay (if (member (cdr (assoc 2 lay)) '(FGT)) (command "_rename" "_layer" "FGT" "Toto23" "") ) (setq lay (tblnext "LAYER")) ) ) ca marche pas... je dois avoir un problème au niveau de : (if (member (cdr (assoc 2 lay)) '(FGT))
