phil_vsd Posté(e) le 26 janvier 2009 Posté(e) le 26 janvier 2009 Bonjour tous, Voilà je cale... Comment on fait pour ouvrir un DWG en lisp ? J'voudrais tapper "tralala" et que ça m'ouvre le dwg "c\coucou\dodo\tralala.dwg" J'ai pas capté le fait de déclarer le fichier en variable... (setq VA (open "tralala.dwg" "w")) J'ai vu aussi qu'il y avait de possibilité en VLAX... :( "La ligne droite est le plus court chemin entre deux points, à condition que les deux points soient bien en face l'un de l'autre" P. Desproges.
philouie Posté(e) le 26 janvier 2009 Posté(e) le 26 janvier 2009 Bonjour tous, Voilà je cale... Comment on fait pour ouvrir un DWG en lisp ? J'voudrais tapper "tralala" et que ça m'ouvre le dwg "c\coucou\dodo\tralala.dwg" J'ai pas capté le fait de déclarer le fichier en variable... (setq VA (open "tralala.dwg" "w")) J'ai vu aussi qu'il y avait de possibilité en VLAX... :( Bonjour, La f onction "open" permet d'ouvrir un fichier texte pour y lire ou écrire. (la variable servira à identifier le fichier lors des opérations en écriture ou en lecture) Pour ouvrir un dwg, il faut un truc qui ressemble à :(command "_open" "tralala") phil
Patrick_35 Posté(e) le 26 janvier 2009 Posté(e) le 26 janvier 2009 Bonjour Si tu te sers d'un (command "_open" "tralala"), il faudra associer un script avec le dessin pour pouvoir le modifier.En effet, dès que tu ouvres un dessin, le lisp continue sur le dessin actuel, pas sur celui qui vient d'être ouvert.Pour éviter cela, il reste de visual lisp ou les scripts, tout dépend de ton niveau en lisp/vlisp Avec un script --> SuperAutoscript pas exemple. Rien n'interdit à un script de lancer un lisp En vlisp (et uniquement vlisp, car à ce niveau, autolisp est largué)Ouverture d'un dessin dans autocad(setq des (vla-open (vla-get-documents (vlax-get-acad-object)) "tralala")) Une autre manière de faire, celui d'accéder au dessin sans l'ouvrir directement dans Autocad (gain de temps car plus besoin de le faire afficher)(defun Ouvrir_dessin_dbx(dwg / dbx) (if (< (atoi (substr (getvar "ACADVER") 1 2)) 16) (setq dbx (vlax-create-object "ObjectDBX.AxDbDocument")) (setq dbx (vlax-create-object (strcat "ObjectDBX.AxDbDocument." (substr (getvar "ACADVER") 1 2)))) ) (vla-open dbx dwg) dbx ) (setq des (Ouvrir_dessin_dbx "tralala")) Il reste plus qu'à travailler avec la variable desBon courage @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
phil_vsd Posté(e) le 27 janvier 2009 Auteur Posté(e) le 27 janvier 2009 bonjour, Merci pour ces infos. J'ai encore une question svp : Quand mon fichier est sur une racine comme par exemple "p:tralala.dwg" tout va bien avec ce code : (setq des (vla-open (vla-get-documents (vlax-get-acad-object)) "p:tralala")) Mais quand il y a des sous répertoires j'ai le message d'erreur : Erreur Automation nom de fichier incorrect Voilà le code : (setq des (vla-open (vla-get-documents (vlax-get-acad-object)) "p:\DAO\Exemples\tralala")) Le fait de mettre des anti slash créé un problème ? BOnne journée ! "La ligne droite est le plus court chemin entre deux points, à condition que les deux points soient bien en face l'un de l'autre" P. Desproges.
(gile) Posté(e) le 27 janvier 2009 Posté(e) le 27 janvier 2009 Salut, En LISP (comme dans d'autres langages de programmation), l'anti slash (\) est un caractère d'échappement (utilisé pour changer la fonction du caractère suivant) : \n : saut de ligne\t : tabulation...Un caractère d'échappement sert aussi à afficher certains caractères dans une chaîne (dont lui même) :pour afficher des guillemets dans une chaîne :"Il a dit \"bizarre\""pour afficher des anti slashes dans une chaine :"C:\\DAO\\Exemples\\tralala" Pour les chemins de fichiers, on peut aussi utiliser le slash (/)"C:/DAO/Exemples/tralala" Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour 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