doberman Posté(e) le 5 janvier 2006 Posté(e) le 5 janvier 2006 Bonjour a tous, je vous expose mon souhait, je viens de récuperer un dessin sous autocad 2004, et celui comporte des types de lignes non-ordinaires du genre --EU--EU--, et bien d'autre encore, et je voudrais savoir si il possible d'enregistrer ces types de ligne quelque part (car ca m'eviterais de les recréer) afin que je puisse les réutiliser plus tard sur un autre dessin.Si cela est possible, pouvez vous me dire la marche a suivre svp.D'avance merci
bonuscad Posté(e) le 5 janvier 2006 Posté(e) le 5 janvier 2006 Bonjour, Essaye ce qui suit,Pour que ça fonctionne, le type de ligne doit être assigné à un objet et non au calque. (defun c:model_typline ( / ent ent_dxf nam_tl def_tl prec m_adir m_abas nam_lin def_lin nbr_lin w_line lg_tiret tp_cpx cod_shx ss_ent styl_tl file_shx scal_motif rot_motif x_motif y_motif str_motif) (setvar "cmdecho" 0) (while (not (setq ent (entsel "\nChoix du TypeLigne modèle: ")))) (setq ent_dxf (entget (car ent)) nam_tl (assoc 6 ent_dxf)) (cond ((and (cdr nam_tl) (/= (cdr nam_tl) "ByLayer") (/= (cdr nam_tl) "ByBlock")) (initget 4) (setq def_tl (entget (tblobjname "Ltype" (cdr nam_tl))) prec (getint (strcat "\nPrécision décimale désirée<" (itoa (getvar "LUPREC")) ">: ")) ) (if (not prec) (setq prec (getvar "LUPREC"))) (setq m_adir (getvar "angdir") m_abas (getvar "angbase") nam_lin (strcat "*" (cdr (assoc 2 def_tl))) def_lin (strcat "," (cdr (assoc 3 def_tl))) lg_lin (cdr (assoc 40 def_tl)) nbr_line (cdr (assoc 73 def_tl)) w_line "\nA" ) (setvar "angdir" 0) (setvar "angbase" 0) (textscr) (princ (strcat "\n" nam_lin def_lin)) (princ w_line) (while (/= (caar def_tl) 49) (setq def_tl (cdr def_tl)) ) (while def_tl (cond ((eq 49 (caar def_tl)) (setq lg_tiret (cdar def_tl)) (princ (strcat "," (rtos lg_tiret 2 prec))) ) ((eq 74 (caar def_tl)) (setq tp_cpx (cdar def_tl)) ) ((eq 75 (caar def_tl)) (setq cod_shx (cdar def_tl)) (cond ((zerop cod_shx) (princ (strcat ",[\"" (cdr (assoc 9 def_tl)) "\"")) ) ((eq tp_cpx 4) (princ ",[*") ) ) ) ((eq 340 (caar def_tl)) (setq ss_ent (entget (cdr (assoc 340 def_tl))) styl_tl (cdr (assoc 2 ss_ent)) file_shx (cdr (assoc 3 ss_ent)) ) (if (eq styl_tl "") (princ (strcat (itoa cod_shx) "," file_shx)) (princ (strcat "," styl_tl)) ) ) ((eq 46 (caar def_tl)) (setq scal_motif (cdr (assoc 46 def_tl))) (princ (strcat ",S=" (rtos scal_motif 2 prec))) ) ((eq 50 (caar def_tl)) (setq rot_motif (cdr (assoc 50 def_tl))) (princ (strcat ",R=" (angtos rot_motif 0 prec))) ) ((eq 44 (caar def_tl)) (setq x_motif (cdr (assoc 44 def_tl))) (princ (strcat ",x=" (rtos x_motif 2 prec))) ) ((eq 45 (caar def_tl)) (setq y_motif (cdr (assoc 45 def_tl))) (princ (strcat ",y=" (rtos y_motif 2 prec) "]")) ) ((eq 9 (caar def_tl)) (setq str_motif (cdr (assoc 9 def_tl))) ) ) (setq def_tl (cdr def_tl)) ) (setvar "angdir" m_adir) (setvar "angbase" m_abas) ) (T (princ "\nImpossible de récuperer le type de ligne de l'objet pointé.")) ) (setvar "cmdecho" 1) (prin1) ) Tu fais un copier-coller du résultat de l'écran texte dans un fichier .LIN Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
doberman Posté(e) le 5 janvier 2006 Auteur Posté(e) le 5 janvier 2006 Heuuuuuuuu merci mais comment doit on s'en servir ?
(gile) Posté(e) le 5 janvier 2006 Posté(e) le 5 janvier 2006 Salut, Comme je ne sais pas ce que tu connais ou pas de l'utilisation des LISP je vais expliquer comme si tu étais un débutant complet, ne t'en offusque pas si ce n'est pas le cas. Tu fais un copier/coller du code de Bonuscad dans le bloc note (attention de ne pas oublier une paranthèse !). Tu l'enregistres avec l'extention .lsp (typline.lsp par exemple)Dans le menu outils d'AutoCAD, choisis Charger une application... et charge le fichier que tu viens de créer.À la ligne de commande, tape : model_typline (ce qui écrit après (defun c: dans le code).Puis tu réponds aux invites comme pour les commandes AutoCAD. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
bonuscad Posté(e) le 5 janvier 2006 Posté(e) le 5 janvier 2006 (gile) à répondu avant moi. Je rajouterais juste que tu peux faire aussi le coller directement en ligne de commande Autocad, suivi d'un éventuel "return". C'est pratique quand tu veux juste essayer et pas forcément garder le code dans un fichier. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
doberman Posté(e) le 5 janvier 2006 Auteur Posté(e) le 5 janvier 2006 oki merci a vous 2 mais j'avais deja reussi a faire le copier-coller (<acronym class=dict title=) et a le charger sur autocad, mais c ensuite, de part les questions quil me demande que j'ai du mal a comprendre !!!!Creer, charger, actuel ????? Voila quoi, apres plusieur essaie je n'arrive pas a ce que je voulais faire au départ alors est-ce que je me suis mal exprimé ?????J'ai aussi reussi a obtenir un fichier en .las et un autre en .lin , mais qd je les ouvrent avec un nouveau dessin je n'est pas mon type de ligne du départ ![Edité le 5/1/2006 par doberman] [Edité le 5/1/2006 par doberman]
kallain Posté(e) le 5 janvier 2006 Posté(e) le 5 janvier 2006 Salut, Les lignes du type --EU--EU-- utilisent une certaine police de caratères.Pour pouvoir les utiliser dans un dessin, il faut que la même policesoit déjà présente dans le dessin.
doberman Posté(e) le 5 janvier 2006 Auteur Posté(e) le 5 janvier 2006 Bah alors là je ne sais pas quel police a eté utilisé pour créer ces type de lignes !!Et moi lors de mon essai je sui parti d'un nouveau dessin vierge, donc rien de charger, et je n'est pas reussi a importer le type de ligne !
bonuscad Posté(e) le 5 janvier 2006 Posté(e) le 5 janvier 2006 J'ai aussi reussi a obtenir un fichier en .las et un autre en .lin , mais qd je les ouvrent avec un nouveau dessin je n'est pas mon type de ligne du départ ! Fichier .las ???? .lsp tu veux dire. Voici un exemple de déroulement.Dans ton dessin origine où tu veux récupérer la définition du type de ligne.Dessine une ligne quelconque, en lui affectant le type de ligne qui t'interesse-Tu charges le lisp.Au message commande, tu devrais avoir dans la dernière ligne de l'historique: C:MODEL_TYPLINECommande: Tu tapes alors cette nouvelle commande, exemple: Commande: model_typlineChoix du TypeLigne modèle: Sélection de ta lignePrécision décimale désirée<4>: *GAZ,Gaz ----GAZ----GAZ----GAZ----GAZ----GAZ----GAZ-A,12.7000,-5.0800,["GAZ",Standard,S=2.5400,R=0.0000,x=-2.5400,y=-1.2700],-6.3500 Commande: Tu fais un copier-coller de l'astérisque à la 1ère ligne-vierge dans le bloc-note et tu l'enregistre (ici GAZ.LIN) Dans un nouveau dessin Commande: -typeligne Type de ligne courant: "DuCalque"Entrez une option [?/CRéer/Charger/Actuel]: charger Entrez les types de ligne à charger: gaz (Sélection du fichier LIN à utiliser) Type de ligne "GAZ" chargé. Entrez une option [?/CRéer/Charger/Actuel]: a Spécifiez le nom du type de ligne ou [?] : gaz Entrez une option [?/CRéer/Charger/Actuel]: Commande: Ca va pour les manips ?... Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
kallain Posté(e) le 5 janvier 2006 Posté(e) le 5 janvier 2006 le style de plolice utilisé est là Commande: model_typlineChoix du TypeLigne modèle: Sélection de ta lignePrécision décimale désirée<4>: *GAZ,Gaz ----GAZ----GAZ----GAZ----GAZ----GAZ----GAZ-A,12.7000,-5.0800,["GAZ", [surligneur] Standard[/surligneur],S=2.5400,R=0.0000,x=-2.5400,y=-1.2700],-6 .3500 mais attention tu n'obtiendras pas le même résultat que l'original si le style de police a été renommée.
doberman Posté(e) le 5 janvier 2006 Auteur Posté(e) le 5 janvier 2006 Ok ca yest ca marche presque, ca ne marchais pas car javais mal interpreté : "Tu fais un copier-coller du résultat de l'écran texte dans un fichier .LIN", Donc betement moi j'ai coller le texte(que tu ma donner Bonuscad) ds le bloc note avec l'extension en .lin, ensuite j'ai voulu exporté le calque..... enfin bref (des conneries quoi)!!Là c'est bon j'ai bien coller le texte ds le blos note en .lsp, le lisp se charge correctement, je le lance, je pointe ma ligne concernée et la le verdict : "Impossible de récuperer le type de ligne de l'objet pointé.".Donc .......:casstet: Ps : Non non Bonuscad je voulais bien dire en .LAS et non pas LSP !!!!!!!!! (<acronym class=dict title=) C'est ca d'etre ignorant (je parle pour moi)!
doberman Posté(e) le 5 janvier 2006 Auteur Posté(e) le 5 janvier 2006 HeuuuuuuuuuEn fait ca marche, je c pas pourquoi mais apres plusieur essai sa fonctionne parfaitement.Merci a vous tous.Juste une derniere question pour la route, je ne peu pas modifié directement le fichier AutoCAD.lin au lieu de creer plusieur fichier pour chaque type de ligne que je veu sauvegarder ?
bonuscad Posté(e) le 5 janvier 2006 Posté(e) le 5 janvier 2006 Juste une derniere question pour la route, je ne peu pas modifié directement le fichier AutoCAD.lin au lieu de creer plusieur fichier pour chaque type de ligne que je veu sauvegarder ? Oui, tu peux les rajouter dans AutoCAD.LIN ou ACADISO.LIN , mais je te le déconseille car c'est le meilleur moyen pour perdre ses sources. Il vaut mieux les conserver distinctement tu pourras par exemple les faire migrer plus facilement sur une version ultérieure d'Autocad. enfin bref (des conneries quoi)!! Il n'ai pas toujours facile d'expliquer les choses correctement quand pour nous, ça nous semble évident. Donc faute partagée ;) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
doberman Posté(e) le 5 janvier 2006 Auteur Posté(e) le 5 janvier 2006 Ok en tout cas merci pour votre aide tres tres reactive. Je pense que Bonuscad, je pourrais facilement te surnommer Zorro, celui qui tire, plus vite que son ombre, car pour repondre a un sujet 10min apres sa sortie, là moi je dit qd meme Chapeau !! Encore merci pour tout, à tous !
bonuscad Posté(e) le 5 janvier 2006 Posté(e) le 5 janvier 2006 10 min, c'est plus qu'assez pour faire un copier-coller. ;) J'avais répondu il y a longtemps à cette demande (je ne sais plus où). Moi même j'ai été confronté à ce genre de problème. En remarque: Si le type de ligne contient des formes, dans ce cas, bien que la définition du type de ligne soit correcte, il manquera le fichier de forme SHX. Ceci est beaucoup plus génant que pour une police car aucune substitution approchante ne peut être faite. L'usage de "etransmit" devrait être systématique lors de livraison de fichiers pour ne pas être confronté a ce genre de problèmes. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
doberman Posté(e) le 5 janvier 2006 Auteur Posté(e) le 5 janvier 2006 ok merci, j'ai une autre question sur les Xref mais je vais ouvrir un autre post !
DenisHen Posté(e) le 23 octobre 2006 Posté(e) le 23 octobre 2006 La création d'un type de ligne se déroule comme suit :-typeligneType de ligne courant:"DuCalque"Entrez une option [?/CRéer/CHarger/Actuel]: crEntrez le nom du type de ligne à créer: NomTypeLigne[surligneur]Vérification des types de lignes déjà définis...veuillez patienter SVP... [/surligneur] Texte de description: ---- . ----- . ----Entrez le motif du type de ligne (sur la ligne suivante):---A,1.5,-0.5,0,-0.5,0.5,-0.5,0,-0.5Nouvelle description du type de ligne enregistrée dans le fichier.Entrez une option [?/CRéer/CHarger/Actuel]: ?Types de lignes définis dans le fichier C:\Documents.....\acad.lin: Mais il demande un fichier lin... Mais je ne veux pas lui en donner un... Car je créé mon type à chaque dessin, et s'il le trouve déjà dans un lin... AutoCAD va me chercher des noises ;) Alors comment faire... Je ne voix pas comment je pourrais m'en sortir... J'ai vu un truc avec (vl-add c "clayer"... Mais peut-on faire de même avec un type de ligne ? Car je ne trouve absolument rien dans l'aide sur (vl-add... Je suis en train de réécrire tout mon code (25xx lignes ! !) et j'ai besoin de savoir celà pour le faire correctement. Merci d'avance pour tous conseils ou astuces, Denis... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
(gile) Posté(e) le 23 octobre 2006 Posté(e) le 23 octobre 2006 Salut, Un petit bout de code pour faire une liste de tous les types de ligne du fichier acadiso.lin. (setq f (open (findfile "acadiso.lin") "r")) (while (setq l (read-line f)) (if (= (substr l 1 1) "*") (setq lst (cons (substr l 2 (1- (vl-string-position 44 l))) lst)) ) ) tu peux ensuite évaluer si le nom du style que tu crées est déjà présent dans la liste avec la fonction MEMBER. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Patrick_35 Posté(e) le 23 octobre 2006 Posté(e) le 23 octobre 2006 heu... je crois que l'on va se croiser au vu du nombre de messages déposé par Denis sur ce sujetJ'ai aussi donné une réponse mais je pense que le plus simple serait que Denis fasse un nouveau sujet @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
DenisHen Posté(e) le 24 octobre 2006 Posté(e) le 24 octobre 2006 J'hésite toujours à créer un sujet, je ne veux pas monopoliser le site... Mais si on me le demande. Merci à tous les deux, Denis... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant