juju_30 Posté(e) le 4 avril 2011 Posté(e) le 4 avril 2011 bonjour, je souhaite simplement ouvrir un fichier DWG type dans lequel j'insere un Gabarit (avec d'autres dessins ouverts).j'ai piqué quelques infos sur les commandes NEW,OPEN ainsi que sur les variables SDI et FILEDIA mais la fin du programme les deux variables ne se remettent pas a 0 pour SDI et 1 pour FILEDIA ??? (setvar "sdi" 1) (setvar "filedia" 0) (command "_new" "o" "CVI.dwt") (command "_open" "o" "c:\\DocumentsandSettings\Maxime\Bureau\MENU-julien\CVI.dwg") (command "inserer" "CVI.dwt" 0,0,0 1 1 0) (setvar "sdi" 0) (setvar "filedia" 1) Une autre petite question: Pourquoi je ne peux avoir qu'un seul dessin d'ouvert et si j'en est deux la variable SDI a 1 est rejeté
Patrick_35 Posté(e) le 4 avril 2011 Posté(e) le 4 avril 2011 Salut Pour "piloter" un dwg, tu raisonnes comme pour un script.La variable SDI n'est changeable que si un seul dessin est ouvert, ce qui est logique car si SDI = 1, cela veut dire que l'on peut ouvrir qu'un seul dessin à la fois.Deux dessin ouverts --> Variable impossible à changer.Tu peux regarder dans Scriptor qui semble correspondre à tes besoins. Maintenant, comme on est dans la section "Pour aller plus loin en LISP", tu peux aussi ouvrir le dessin par le vla, en utilisant cette méthode(setq dessin (vla-open (vla-get-documents (vlax-get-acad-object)) "Mon_Dessin.dwg"))Et ensuite faire tes insertions comme par exemple(vla-insertblock espace_papier/objet (vlax-3d-point '(0.0 0.0 0.0)) "Mon_bloc" 1 1 1 0) Et pour pousser encore plus loin, tu as ensuite la méthode ObjectDxb, qui permet d'accèder au dessin sans l'ouvrir. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
(gile) Posté(e) le 4 avril 2011 Posté(e) le 4 avril 2011 Salut, Tout d'abord, il faut comprendre que quand tu lances un LISP dans un document, il ne peux pas continuer à s'exécuter dans un autre document. Ensuite, quelques remarques, tu ne devrais pas avoir besoin de mettre FILEDIA à 0, la fonction command appelle toujours la version 'ligne de commande' de la commande (si elle existe).Quand tu donnes un chemin de fichier, il faut doubler toutes les barres obliques inversée (anti-slashes) ou les remplacer par des barres obliques (slashes). PS : je déplacerais ton sujet vers le forum "Débuter en LISP" où il sera plus à sa place. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
juju_30 Posté(e) le 4 avril 2011 Auteur Posté(e) le 4 avril 2011 Merci à vous pour vos explications, bonne fin d'aprés midi
rebcao Posté(e) le 4 avril 2011 Posté(e) le 4 avril 2011 Bonjour, Attention en LISP le séparateur entre les dossiers et soit le [surligneur] / [/surligneur]soit le double \ - [surligneur] \\[/surligneur] Christian Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
Fraid Posté(e) le 4 avril 2011 Posté(e) le 4 avril 2011 Bonjour, une petite question a Patrick35 (vla-insertblock espace_papier/objet (vlax-3d-point '(0.0 0.0 0.0)) "Mon_bloc" 1 1 1 0) a quoi correspond espace_papier/objet ? car cela devrai etre (vla-get-paperspace (vla-get-activedocument (vlax-get-acad-object))) [Edité le 4/4/2011 par Fraid] https://github.com/Fraiddd
Patrick_35 Posté(e) le 6 avril 2011 Posté(e) le 6 avril 2011 (vla-get-paperspace (vla-get-activedocument (vlax-get-acad-object))) Salut Tu as une partie de la réponse.Remplace paperspace par modelspace ps : avec un vla-open, ce n'est plus (vla-get-activedocument (vlax-get-acad-object)) mais (vla-item (vla-get-documents (vlax-get-acad-object)) "Mon_Dessin.dwg") ou la variable dessin du vla-open. Idem avec ObjectDbx @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Fraid Posté(e) le 6 avril 2011 Posté(e) le 6 avril 2011 Oula!? Encore une question que j'ai bien fait de poser J'etais encore a coté de la plaque.... Merci, car mes tentative d'action sur des dessins avec ObjectDbx ce solde par des echecs lamentables. je n'y arrive qu'en repiquant vos codes.... pas façile..... :P https://github.com/Fraiddd
Patrick_35 Posté(e) le 6 avril 2011 Posté(e) le 6 avril 2011 Merci, car mes tentative d'action sur des dessins avec ObjectDbx ce solde par des echecs lamentables.C'est par l'erreur que l'on apprend ;)je n'y arrive qu'en repiquant vos codes....Ils peuvent servir de guide, pour comprendre comment cela fonctionne et ou rechercher l'instruction ps : Les américains/anglais ne se prennent pas la tête avec les instructions. il suffit en général de traduire pour comprendrevla-get --> obtenir des informationspaperspace --> espace papieractivedocument --> document actif (donc le dessin sur lequel je travail)vlax-get-acad-object --> l'objet AutocadTaduction : Les valeurs de l'espace papier du document actif d'Autocad @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
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