Ellionel Posté(e) le 23 novembre 2006 Posté(e) le 23 novembre 2006 Re bonjour , Je viens de decouvrir grace à vous les lisp , et cela est bien pratique . Je souhaiterais savoir comment "automatiser le enregistrer sous" en choisisant la version ( 2000 pour ma part ) avec dans l'option dxf le select object activé . Car j'ai des probleme de compatibiliter avec d'autre logiciel ( Romidot) . je souhaiterai placer cela a la suite de cette lisp ( les droits d'auteur reviennent à (gile) ) : --------------------------(defun c:JoinPoly (/ ss)(if (setq ss (ssget '((0 . "ARC,LINE,LWPOLYLINE"))))(if (or (= 1 (getvar "PEDITACCEPT"))(vl-every '(lambda (x) (= "LWPOLYLINE" (cdr (assoc 0 (entget x)))))(vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))))(command "_.pedit" "_m" ss "" "_j" "_j" "_b" pause "_c" "")(command "_.pedit" "_m" ss "" "_y" "_j" "_j" "_b" pause "_c" "")))(princ)) ----------------------- Merci
ASTERIXII Posté(e) le 23 novembre 2006 Posté(e) le 23 novembre 2006 Si j'ai bien compris tu a deja la routinealors lance ta routine avec un icone, ou remplace la commande enregistrer sous par ta commandeEncore plus simple, dans Option\Ouvrir et enregstrer, tu peux enregistrer directementen dxf version 2000 a chaque enregistrement[Edité le 23/11/2006 par ASTERIXII] [Edité le 24/11/2006 par ASTERIXII]
BIM G CO Posté(e) le 23 novembre 2006 Posté(e) le 23 novembre 2006 Quelques lignes à ajouter alors: -------------------------- (defun c:JoinPoly (/ ss) (if (setq ss (ssget '((0 . "ARC,LINE,LWPOLYLINE")))) (if (or (= 1 (getvar "PEDITACCEPT")) (vl-every '(lambda (x) (= "LWPOLYLINE" (cdr (assoc 0 (entget x))))) (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))) ) ) (command "_.pedit" "_m" ss "" "_j" "_j" "_b" pause "_c" "") (command "_.pedit" "_m" ss "" "_y" "_j" "_j" "_b" pause "_c" "") ) ) [b](command "_SAVEAS" "DXF" "VERSION" "2000" "16" "C://MON_DOSSIER//MON_FICHIER.DXF")[/b] (princ) ) ----------------------- Dessinateur AutoCAD, Modeleur BIM, consultant informatique logiciels métier Lenovo ThinkStation P330 i9 9900K 32Gb RAM 512 SSD + 1To GstarCAD, Fisa-CAD, Revit, FisaBIM CVC, Microsoft Office PlaquetteDeplianteMars2024.pdf
Ellionel Posté(e) le 23 novembre 2006 Auteur Posté(e) le 23 novembre 2006 Merci pour cette reponse , Je crois que à la place du "16" , il faut que mettre "0" , je l'ai fait ms la routine ne s'arrete pas , et du coup cela ne marche pas bien . Merci
(gile) Posté(e) le 23 novembre 2006 Posté(e) le 23 novembre 2006 Un peu plus élaboré, il est demandé de spécifier le répertoire où enregistrer le dxf (taper entrer pour le répertoire du dessin par défaut) et le nom du fichier.C'est le jeu de sélection qui est enregistré, pas le dessin entier. (defun c:ss2dxf (/ path file ss) (setq dir "") (while (not (vl-file-directory-p dir)) (if (= "" (setq dir (getstring T (strcat "\nSpécifiez le chemin du répertoire: (getvar "DWGPREFIX") ">: " ) ) ) ) (setq dir (getvar "DWGPREFIX")) ) ) (while (findfile (strcat dir (setq file (getstring T "\nSpécifiez le nom du fichier: ")) ".dxf" ) ) (princ (strcat "\n\"" file "\" existe déjà.")) ) (if (setq ss (ssget)) (command "_saveas" "dxf" "_v" "2000" "_o" ss "" "16" (strcat dir file ".dxf")) ) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Patrick_35 Posté(e) le 23 novembre 2006 Posté(e) le 23 novembre 2006 Encore un peu plus évolué pour rechercher un répertoire (defun getdir( / cdl rep) (setq cdl (vlax-create-object "Shell.Application") rep (vlax-invoke cdl 'browseforfolder 0 "Sélectionnez la branche de répertoires à traiter" 512 "")) (vlax-release-object cdl) (vlax-get-property (vlax-get-property rep 'self) 'path) ) Ou plus directement(getfiled "Fichier de destination" (getvar "dwgprefix") "dxf" (+ 1 16)) @+ nb : tu peux reprendre ce qui a été dit concernant le saveas @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Ellionel Posté(e) le 24 novembre 2006 Auteur Posté(e) le 24 novembre 2006 Bonjour , Merci pour ces reponses .Patrick 35 ta proposition m'interresse beaucoup , je ne suis pas doué pour le frape , mais je ne vois comment comment l'intégrer au code de (gile) . Merci encore .
Patrick_35 Posté(e) le 24 novembre 2006 Posté(e) le 24 novembre 2006 C'est quelle routine qui t'intéresse ? @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Ellionel Posté(e) le 24 novembre 2006 Auteur Posté(e) le 24 novembre 2006 J'aimerais le coller à la siute de la routine " joinpoly" . Ou pourrias je trouver une doc intérressante sur les autolisp , stp ,?J'aimerais m'y intérrésser vraiment ... @+
Ellionel Posté(e) le 15 décembre 2006 Auteur Posté(e) le 15 décembre 2006 re bonjour je souhaiteria faire execter ces 2 lispt l'une dans l'autre donc ds un premier temps la list poly , puis gerer l'enregistrement des fichiers en 2000 ( objet ) en choissisant le repertoire comme indiqué par patrick !!! Merci
Invité eklundh80 Posté(e) le 18 mars 2018 Posté(e) le 18 mars 2018 Bonjour,est-il possible de créer un préfixe afin d'enregistrer dans le même répertoire que le fichierquelque chose comme:getvar dwgname (ajout préfixe) getvar dwgprefixe ?
didier Posté(e) le 18 mars 2018 Posté(e) le 18 mars 2018 Coucou Pour ajouter un préfixe (ou un suffixe) à une chaîne de caractères (string)Voir la fonction STRCATPour faire de l'auto-promo : Explications sur mon siteSi ton fichier est nommé "zaza.dwg"(strcat "prefixe" (getvar "dwgname"))Renvoie "prefixezaza.dwg" Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Invité eklundh80 Posté(e) le 19 mars 2018 Posté(e) le 19 mars 2018 Merci Didier,Je vais voir ça. Je commence à écrire 2-3 lisp et votre site perso est bien détaillé. Par contre je pars de 0 donc le chemin va être long pour moi.Merci aussi à Patric_35.
didier Posté(e) le 19 mars 2018 Posté(e) le 19 mars 2018 Coucou J'ai la faiblesse de penser que mon site s'adresse, entre-autres, aux gens qui partent de 0, voire -1 pour certainsTu peux me contacter par le site et je ferai mon possible pour te dépatouillerSinon, reviens à la charge sur CadXP. Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
DenisHen Posté(e) le 19 mars 2018 Posté(e) le 19 mars 2018 Salut à tous. Je conseillerais aussi, pour bien débuter en Lisp, le formidable "Introduction_a_AutoLISP" de (gile)... Ce document et le site de didier se complètent à merveille... 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)
Invité eklundh80 Posté(e) le 19 mars 2018 Posté(e) le 19 mars 2018 Salut à toi, Je l'ai lu et ça reste chaud à intégrer pour le moment. Il y a tellement de manières de procéder (autolisp, vlisp) que je me perds un peu. Le plus dur reste de trouver la commande ou la variable sur laquelle peut agir le lisp.Merci pour l'aide.
didier Posté(e) le 19 mars 2018 Posté(e) le 19 mars 2018 Coucou Il n'y a pas TELLLEMENT de manière de faireTu verras ça quand tu seras plus costaud en programmationJe me permets de te conseiller de partir avec un "programme" simpleLa question du message originel est quelque peu complexe pour un pur débutantIl faut TOUJOURS commencer petit ...Si tu commences la guitare tu feras des gammes dans ta chambre avant de faire des solos devant 10000 personnes, non ? Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
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