jalna Posté(e) le 2 avril 2009 Posté(e) le 2 avril 2009 Bonjour, Je pense que cela existe Je voudrais importer une liste de calques depuis un fichier texte, excel, word....... MerciEt comme dirais le patron de sfr+2p-2n Il est trop fort :D :( :cool: "Je suis fasciné par l'air. Si on enlevait l'air du ciel, tous les oiseaux tomberaient par terre... Et les avions aussi... En même temps l'air tu peux pas le toucher... Ca existe et ça existe pas... Ca nourrit l'homme sans qu'il ait faim... It's magic ! L'air c'est beau en même temps tu peux pas le voir, c'est doux et tu peux pas le toucher... L'air, c'est un peu comme mon cerveau..."J-C Van DammeMon forum : http://plexus.forumactif.org/
Tramber Posté(e) le 2 avril 2009 Posté(e) le 2 avril 2009 Plusieurs façons de faire.Si tu sais CONCATENER sous Excel, crée une liste du genre :calque1, calque2, calque3,...(espaces tolérés !) et lance : -calque N calque1, calque2, calque3,... en script ou en copier-coller dans la fenêtre de texte. Easy ?! Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
jalna Posté(e) le 2 avril 2009 Auteur Posté(e) le 2 avril 2009 Merci,As tu un exemple de concatenage (ce n'est pas mon truc)Quelles sont les autres façons sinonJ'aimerais régler les couleurs ect...... "Je suis fasciné par l'air. Si on enlevait l'air du ciel, tous les oiseaux tomberaient par terre... Et les avions aussi... En même temps l'air tu peux pas le toucher... Ca existe et ça existe pas... Ca nourrit l'homme sans qu'il ait faim... It's magic ! L'air c'est beau en même temps tu peux pas le voir, c'est doux et tu peux pas le toucher... L'air, c'est un peu comme mon cerveau..."J-C Van DammeMon forum : http://plexus.forumactif.org/
Tramber Posté(e) le 2 avril 2009 Posté(e) le 2 avril 2009 Doucement !On vient de Word ou de Excel ? CONCATENER c'est pour Excel. Voir mon tuto Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
lili2006 Posté(e) le 2 avril 2009 Posté(e) le 2 avril 2009 Bonsoir à toutes et tous, Un truc comme ça ? Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
Chrisfs Posté(e) le 2 avril 2009 Posté(e) le 2 avril 2009 Salut, J'ai fait une petite routine lisp qui permet d'importer d'un fichier texte, une liste de calque vers autoCAD. ça se décompose en 1 fichier lisp : ; PathCC => chemin d'acces au dossier racine des routines (setq PathCC "C:/ACADLISP/") ; PathLT => chemin d'acces au Dossier des Fichiers .LIN (setq pathLT "C:/ACADLISP/") (princ "\nTapez cr_cal pour creer les calques.") (defun charge_linetype () ; Routine pour charger les types de lignes (setq pathfiltl (strcat PathCC "linetype.ini")) (setq fic2 (open pathfiltl "r")) (while (setq tl1 (read-line fic2)) (setq tl2 (read-line fic2)) (if (= (tblsearch "ltype" tl1) nil) (command "_linetype" "_l" tl1 (strcat pathLT tl2) "")) ) (close fic2) (terpri) ) (defun C:cr_cal (/ Dcl_Id% Return#) ; Routine de creation des calques (charge_linetype) (setq Dcl_Id% (load_dialog (strcat PathCC "chriscad2009.dcl"))) (new_dialog "CreationLayer" Dcl_Id%) (action_tile "Edit1" "(setq preflay $value)") (action_tile "Radio1" "(setq typlay $value)") (action_tile "accept" "(done_dialog 1)(creation_layer preflay typlay)") (action_tile "cancel" "(done_dialog 0)") (setq Return# (start_dialog)) (unload_dialog Dcl_Id%) ) (defun creation_layer (preflay typlay) (vl-load-com) (setq acadobject (vlax-get-Acad-Object)) (setq activedocument (vla-get-activedocument acadobject)) (setq LayerTable (vla-get-layers activedocument)) (setq pathfilay (strcat PathCC "layer.ini")) (setq fic (open pathfilay "r")) (while (setq t1 (read-line fic)); t1 Nom du calque (setq t2 (read-line fic)); t2 Couleur du calque (setq t3 (read-line fic)); t3 Type de plan AutoCAD : PL TT ou DET (setq t4 (read-line fic)); t4 Type de ligne (setq t5 (read-line fic)); t5 Epaisseur du calque (setq t6 (read-line fic)); t6 si calque imprimé ou non (if (= preflay "") (setq layername t1)) (if (/= preflay "") (setq layername (strcat preflay "-" t1))) (if (= t3 "TT") (progn (setq anewlayer (vla-add LayerTable layername)) (vla-put-color anewlayer t2) (vla-put-linetype anewlayer t4) (vla-put-lineweight anewlayer t5) ) ) (if (= t3 typlay) (progn (setq anewlayer (vla-add LayerTable layername)) (vla-put-color anewlayer t2) (vla-put-linetype anewlayer t4) (vla-put-lineweight anewlayer t5) ) ) (if (/= t6 "X") (vla-put-plottable anewlayer :vlax-false) ) ) (close fic) (terpri) ) puis le fichier CHRISCAD2009.DCL pour la petite boite de dialogue (ou un autre nom, suffit de le renommer et de modifier la ligne concernée dans le lisp) : CreationLayer : dialog { key = "Title"; label = "Création de calques";//Title$ from lsp file initial_focus = "Edit1"; spacer; : row { : column { width = 5.09; fixed_width = true; spacer; : text { key = "Prompt"; label = "Préfixe des Calques :";//Prompt from lsp file } } : edit_box { key = "Edit1";//Edit1$ from lsp file edit_width = 26.42; fixed_width = true; } } spacer; : boxed_radio_column { key = "Radio1"; label = "Type de Document AutoCAD :"; : radio_button { key = "PL"; label = "Plan de Repérage"; } : radio_button { key = "DET"; label = "Carnet de détails"; } } spacer; : row { fixed_width = true; alignment = centered; : ok_button { width = 11; } : cancel_button { width = 11; } } }//CreationLayer ensuite il faut créer 2 fichiers a mettre dans le même dossier que le lisp (ou ailleurs en bidouillant un peu le lisp) : linetype.ini qui comportera la liste des type de ligne a chargerlayer.ini qui comportera la liste des calques avec leurs reglages chaque fichier doit être formater dans ce sens : linetype.ini : nom du type de ligne fichier .lin par exemple : AXES ACADISO.LIN CACHE ACADISO.LIN BORDURE ACADISO.LIN DIVISE ACADISO.LIN FANTOME ACADISO.LIN INTERROMPU ACADISO.LIN POINTILLE ACADISO.LIN TIRETPT ACADISO.LIN pour le fichier layer.ini : Nom du calque Code couleur Type de calque => ça c'est par rapport a ma boite de dialogue soit TT, DE ou PL (TT ça apparait quelque soit le cas) Type de ligne Épaisseur du calque (faut multiplier par 100x la valeur indiqué sur AutoCAD pour que ça passe en vlisp) Imprimer ou pas => X= calque imprimé vide=calque non imprimé exemple de fichier layer.ini : AXES 1 DET AXES 9 X COTATION 3 TT CONTINUOUS 9 X HACHURE 8 TT CONTINUOUS 9 X TEXTE 5 DET CONTINUOUS 9 X FEN 9 TT CONTINUOUS 20 JD 150 PL AXES 20 X Pour l'instant j'ai pas encore eu le temps d'optimiser le principe de la routine, mais ça me suffit pour mon taf. petit fichier zip avec les 4 fichiers Fichier routine creation calque.zip pensez à modifier les 2 lignes PathCC et PathLT, indiquez le dossier où sont les routines et les fichier .LIN Voila ma petite contribution
Tramber Posté(e) le 3 avril 2009 Posté(e) le 3 avril 2009 Oh ben oui !Pourquoi faire simple ? :cool: Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
jalna Posté(e) le 3 avril 2009 Auteur Posté(e) le 3 avril 2009 Salut! Voila, super Chrisfs je vais l'adapter!!Merci à tousBon WE "Je suis fasciné par l'air. Si on enlevait l'air du ciel, tous les oiseaux tomberaient par terre... Et les avions aussi... En même temps l'air tu peux pas le toucher... Ca existe et ça existe pas... Ca nourrit l'homme sans qu'il ait faim... It's magic ! L'air c'est beau en même temps tu peux pas le voir, c'est doux et tu peux pas le toucher... L'air, c'est un peu comme mon cerveau..."J-C Van DammeMon forum : http://plexus.forumactif.org/
Chrisfs Posté(e) le 3 avril 2009 Posté(e) le 3 avril 2009 Oh ben oui !Pourquoi faire simple ? :cool: Oui, c'est vrai que c'est un peu complexe, mais bon, j'aime bien me prendre la tête :P et c'est adaptable suivant les chartes graphiques demandées sur les differents chantiers.
eryk Posté(e) le 14 avril 2009 Posté(e) le 14 avril 2009 salut Chrisfs Cool ton script pour les calques, je cherchais cela depuis un bout de temps. Par contre, dans ton script, je voudrais savoir comment insérer une valeur pour que je puisse attribuer dans ton fichier layer.ini l'épaisseur par defaut pour les calques. Car ma configuration de plumes est indépendantes à l'épaisseur de mes calques. Merci et beau travail pour ton script. a+
Chrisfs Posté(e) le 15 avril 2009 Posté(e) le 15 avril 2009 oui, j'avais pas pensé à ce cas :( . Voici les valeurs a mettre : -3 = "ParDefaut" -2 = "DuBloc" -1 = "DuCalque" ensuite les épaisseurs : 0, 5, 9, 13, 15, 18, 20, 25, 30, 35, 40, 50, 53, 60, 70, 80, 90, 100, 106, 120, 140, 158, 200, 211 merci pour le compliment, le plus dur a été de le convertir en lisp, car à la base je suis plus fan du VBA, mais, je suis en train de passer toutes mes routines VBA en Lisp, et c'est pas simple de se replonger dans le code...
eryk Posté(e) le 15 avril 2009 Posté(e) le 15 avril 2009 Pas de quoi !!C'est en partageant comme tu fais que l'on peut tout améliorer.Merci pour l'info, je vais pouvoir finaliser tout cela. Une autre idée en passant, ça serait de pouvoir intégrer aussi la création d'une ligne en même temps sur les calques crées pour éviter une purge fatale du dessin ;) A+
Chrisfs Posté(e) le 15 avril 2009 Posté(e) le 15 avril 2009 oui, on en rêve, lisp le fait... en cas de purge, je relance la routine, c'est plus simple :) et ça remets tous d'équerre si quelqu'un à bidouillé les propriétés des calques. quand j'aurais un peu de temps, je rajouterai quelques fonctions lisp qui puisse m'alléger le taf de mettre les plans conforme au centaines de chartes graphique qu'il puisse exister (comme mettre les cotes dans le calques "cotation", les textes dans "texte", remettre tout en "ducalque" etc...), mais le boulot me prends trop de temps pour l'instant !!!
eryk Posté(e) le 15 avril 2009 Posté(e) le 15 avril 2009 :D C'est ce que je pensais <acronym class=dict title= C'étais pour juste de données des idées, c'est sûr que tu ne peux pas faire un script par demande personnelle ;) Et pour la purge, c'est justement ce que je fais, je relance le script. En même temps, j'ai crée un bouton pour y accéder plus rapidement.
Arcasdk Posté(e) le 16 avril 2009 Posté(e) le 16 avril 2009 Moi j'ai fait un ptit truc simple.... Peut être pas aussi complet que vous mais ca marche bien. Voici le code Lisp (defun c:clq (/ fichier f data ligne nom coul typline epline) (command "-purger" "tout" "tout" "o") (if (not (tblsearch "LTYPE" "AXES")) (command "-TYPELIGNE" "CH" "AXES" "acadiso.lin" "") ) (if (not (tblsearch "LTYPE" "FANTOME")) (command "-TYPELIGNE" "CH" "FANTOME" "acadiso.lin" "") ) (if (not (tblsearch "LTYPE" "CACHE")) (command "-TYPELIGNE" "CH" "CACHE" "acadiso.lin" "") ) (command "-calque" "n" "0,AXE,CACHE,CADRE,COTATION,COTATION-ANG,Defpoints,DESSIN,DESSIN FIN,EPURE,FENETRE PAPIER,HACHURE,INDICE A,INDICE B,MODIFICATION,REFRACTAIRE,SOUDURE,TEXTE,TEXTE-ANG,TEXTE CARTOUCHE,TITRE,TITRE-ANG,TRAIT FIN CARTOUCHE" "") ;DEFINIR LA DESTINATION D'ENREGISTREMENT (if (eq dirclq nil) (setq dirclq "D:\\Lisp\\Calque SGG\\Calque SGG.data") ) (setenv "mem" dirclq) (if (or (EQ "P" (setq dirclq (getstring (strcat "\nIndiquer l'emplacement du fichier de lecture des calques ou [Parcourir] <"(getenv "mem")">: ")))) (EQ "p" dirclq)) (progn (if (not (setq dirclq (getfiled "Selectionner le fichier texte..." "C:\\Documents and Settings\\F6134717\\Desktop\\" "data" 8))) (progn (setq dirclq (getenv "mem"))))) (setq dirclq (getenv "mem")) ) (princ dirclq) ;DEFINIR LA DESTINATION D'ENREGISTREMENT (FIN) (setq f (open dirclq "r")) (while (setq data (read-line f)) (setq ligne (read (strcat "(" data ")"))) (setq nom (nth 0 ligne)) (setq coul (nth 1 ligne)) (setq typline (nth 2 ligne)) (setq epline (nth 3 ligne)) (setq trac (nth 4 ligne)) (command "-calque" "CO" coul nom "TL" typline nom "EP" epline nom "T" trac nom "") (princ "\n") (princ ligne) (princ "\n")) (close f)) et voici le fichier comprenant les propriétés de calque (Calque SGG.data) "0" 7 "CONTINUOUS" "0.13" "T" "AXE" 1 "AXES" "0.15" "T" "CACHE" 2 "CACHE" "0.2" "T" "CADRE" 1 "CONTINUOUS" "0.15" "T" "COTATION" 1 "CONTINUOUS" "0.15" "T" "COTATION-ANG" 1 "CONTINUOUS" "0.15" "T" "Defpoints" 7 "CONTINUOUS" "0.13" "A" "DESSIN" 3 "CONTINUOUS" "0.5" "T" "DESSIN FIN" 1 "CONTINUOUS" "0.15" "T" "EPURE" 4 "CONTINUOUS" "0.15" "A" "FENETRE PAPIER" 7 "CONTINUOUS" "0.13" "A" "HACHURE" 6 "CONTINUOUS" "0.15" "T" "INDICE A" 1 "CONTINUOUS" "0.15" "T" "INDICE B" 1 "CONTINUOUS" "0.15" "T" "MODIFICATION" 5 "CONTINUOUS" "0.15" "A" "REFRACTAIRE" 4 "FANTOME" "0.15" "T" "SOUDURE" 6 "CONTINUOUS" "0.15" "T" "TEXTE" 2 "CONTINUOUS" "0.35" "T" "TEXTE-ANG" 2 "CONTINUOUS" "0.35" "T" "TEXTE CARTOUCHE" 1 "CONTINUOUS" "0.15" "T" "TITRE" 50 "CONTINUOUS" "0.6" "T" "TITRE-ANG" 50 "CONTINUOUS" "0.6" "T" "TRAIT FIN CARTOUCHE" 2 "CONTINUOUS" "0.15" "T" Fred <IMG SRC=http://peronfrederic.free.fr/banniere.jpg></IMG> <a href=www.formu-lan.net>www.FormuLan.net</a>
Chrisfs Posté(e) le 16 avril 2009 Posté(e) le 16 avril 2009 oui, y a plein de méthodes pour arriver au même résultat. Dans mon taf, j'ai des type de ligne personnalisés dans différents fichiers .lin (donc faut toutes les charger avant). Par contre, je vais regarder ton lisp pour la partie concernant le "formatage" de tes fichiers de réglages de calques (1 ligne par calque, c'est mieux que moi).
sechanbask Posté(e) le 9 juillet 2013 Posté(e) le 9 juillet 2013 Bonjour, est-ce que quelqu'un utilise la méthode de Arcadsk elle semble me convenir, mais le fichier SGG.data semble être mal formaté. J'ai besoin de mettre rapidment près de 200 calques avec nom, couleur, type de ligne description. J'ai essayé plusieurs methodes avec excel mais la description et le type de ligne ne marche pas... ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
philsogood Posté(e) le 9 juillet 2013 Posté(e) le 9 juillet 2013 helloperso en faisant un petit script (et en passant par excel au préalable) tout marche très bienci-joint un exemplePhilCalques.zip Projeteur Revit Indépendant - traitement des eaux/CVC
bryce Posté(e) le 9 juillet 2013 Posté(e) le 9 juillet 2013 (modifié) Bonjour, Si tu as une version complète, voici un petit Lisp qui devrait faire l'affaire:Oups, j'avais mal compris... :unsure:Tu peux essayer avec ce fichier Excel, les types de lignes doivent être chargés dans le dessin avant d'y coller le script. Modifié le 9 juillet 2013 par bryce Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
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