Aller au contenu

arcuce

Membres
  • Compteur de contenus

    34
  • Inscription

  • Dernière visite

Tout ce qui a été posté par arcuce

  1. ho j'ai une idée je vais tester ca tous de suite
  2. donc je ne peut pas enregistré les plans sous un autre nom car j'ai tester avec (command "_saveas" "" (strcat (getvar "dwgprefix") newName ".dwg") ) (command "SAUVENOM" "" (strcat (getvar "dwgprefix") newName ".dwg") ) (logique puisque ce n'est que la traduction de la fonction) et en vla-saveas le mieux c'est que je note les modif dans un document et que je crée un autre logiciel pour que de ce fichier je modifie tous mes nom de fichier.dwg
  3. désolé c'est mieux là ? j'ai simplifier le lisp pour ce concentrer sur le problème donc j'ai mon fichier test.scr qui m'applique a plusieurs plans le lisp contenu dans le fichier monlisp.lsp quand la dernière ligne de mon lisp est présente Autocad ne lance pas le fichier dwg suivant quand elle n' est pas présente autocad le lance PS :le lisp a été tester indépendamment du fichier scr et fonctionne très bien [Edité le 16/6/2011 par arcuce]
  4. bonjour a tous , j'ai un problème (encore) j'ai un script qui en générale fonctionne très bien exemple -=FICHIERS SCRIPTE =- [test.src] FERMER OUVRIR "C:\Users\utilisateur\Desktop\test\source\test1.dwg" ZOOM ET (load "C:\\Users\\utilisateur\\Desktop\\test\\monlisp.lsp") (ROUTINE) FERMER N OUVRIR "C:\Users\utilisateur\Desktop\test\source\test2.dwg" ZOOM ET (load "C:\\Users\\utilisateur\\Desktop\\test\\monlisp.lsp") (ROUTINE) FERMER N OUVRIR "C:\Users\utilisateur\Desktop\test\test3.dwg" ZOOM ET (load "C:\\Users\\utilisateur\\Desktop\\test\\monlisp.lsp") (ROUTINE) QUITTER N ce scripte exécute une fonction lisp " ROUTINE " pour plusieurs plans qui les renome avec des information contenu dans le cartouche -= FICHIER LISP =- [monlisp.lsp] (defun routine () ;Creation du nouveau nom (setq newName (strcat (getvar "dwgname") ".tst")) ;recuperation du dessin (setq thisdrawing (vla-get-activedocument (vlax-get-acad-object))) ;sauvegarde sous ... (vla-saveas thisdrawing (strcat (getvar "dwgprefix") newName ".dwg") acNative) ) -= MON PROBLEME =- quand la ligne : (vla-saveas thisdrawing (strcat (getvar "dwgprefix") newName ".dwg") acNative) est presente le script s'arrete au premier FERMER du fichier "test.src" et quand cette ligne est absente le sripte sexecute jusqu'a la fin une idée ?[Edité le 16/6/2011 par arcuce][Edité le 16/6/2011 par arcuce][Edité le 16/6/2011 par arcuce] [Edité le 16/6/2011 par arcuce]
  5. non pas encore mais merci de mis faire penser , :)
  6. bonjour , je souhaiterais ajouter a chaqueauverture d'autocad un petit lispqui celon le plan m'execute diver choses bon , j'ai un plan "tartampion.dwg" je peu grace a APPLOAD charger un sript qui me l'identifie mais je voudais quand ce fichier est identifié desactiver la fonction quitter pour la remplacer par un lisp de ma conception et finalement quitter le logiciel, en fait ajouter une etape a la fermeture d'autocad est ce possible ? :exclam:
  7. ok merci je vais voir se que je peut en faire
  8. bonjour je souhaiterais recuperer un bloc dont la valeur d'un de c'est attribut est 12 j'ai par exemple x block avec dans chaq'un un attribut "numero" qui est differant block 1 no = "1" block 2 no = "2" block 3 no = "3" block 4 no = "4" block ... no = ... block 12 no = "12" est ce que je peut recuperer mon bloc 12 en faisant quelque chose comme (setq ssblock (ssget "_X" '((0 . "ATTRIBUT") (2 . "no") (1 . "12")))) car je voudrais recuperer le numero de maintient
  9. merci beaucoup ca faitsexactement ce que je devais faire encore une fois merci
  10. pour le moment je fais ca : (defun getdiam (ent) (setq entComp (entget ent) p1 (cdr (assoc 10 entComp)) p2 (cdr (assoc 11 entComp)) ) (setq objects (ssget "_F" (list p1 p2))) ) mais il me retourne l'erreur suivante : "erreur: liste de points incorrecte" mes variables contienent: ent = entComp = ((-1 . ) (0 . "LWPOLYLINE") (5 . "3F0A") (102 . "{ACAD_XDICTIONARY") (360 . ) (102 . "}") (330 . ) (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 . "AcDbPolyline") (90 . 2) (70 . 128) (43 . 0.0) (38 . 0.0) (39 . 0.0) ( 10 874899.0 160848.0) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 874863.0 160867.0) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (210 0.0 0.0 1.0)) p1 = (874863.0 160867.0) p2 = nil edit :oups je vien de voir pourquoi : p2 (cdr (assoc 11 entComp)) mais alors commend recuperer le (10 874863.0 160867.0) [Edité le 21/10/2010 par arcuce]
  11. bonjour , j'ai comme presenté dans l'image ci-dessous une polyligne et deux blocs un qui represente une fleche l'autre qui me donne le diametre ce que je voudrais c'est parcourir la polyligne pour trouver "si il y est" le bloc qui me donne le diametre, l'autre bloc n'est pas important http://nsa23.casimages.com/img/2010/10/21/101021081953320121.png
  12. bon je vien de trouver une partie de mon probleme donc je vous le poste pour la creation de gabarit de lien (defun CreateLT() (vl-load-com) (setq pDBObj (vla-getinterfaceobject (vlax-get-acad-object) "CAO.DbConnect.16")) (setq pDoc (vla-get-ActiveDocument (vlax-get-acad-object))) (setq pLTs(vlax-invoke-method pDBObj "GetLinkTemplates" pDoc)) (setq pKeyDescs (vla-GetInterfaceObject (vlax-get-acad-object) "CAO.KeyDescriptions.16")) (vlax-invoke-method pKeyDescs "ADD" "NOM_DU_CHAMP_DE_LA_TABLE_A_LIER" 3 nil nil) ; (vlax-invoke-method pLTs "ADD" "NOM_DE_LA_CONNEXION" "NOM_DE_LA_BASE_DE_DONNEE" "dbo" "NOM_DE_LA_TABLE" "NOM_DU_GABARIT_DE_LIENS" pKeyDescs) ) voila il me reste plus qu'a relier mes bloc avec mon gabarit si je trouve je posterais ce que j'ai [Edité le 15/10/2010 par arcuce]
  13. bonjour, j'ai besoin de creer des gabarit de lien pour mes bloc et generer les lien ver une base externe sous autocad map je dois le faire en lisp pour rendre la procedure transparante j'ai trouver une doc en pdf de toutes les fonction propre a autocad map mais elle fait plus de 200 pages et toutes en anglais je suis entraint de la lire mais je demande votre aide pour accelerer mes recherches merci
  14. arcuce

    OPENDCL sous autocadmap 2011

    c'est bon j'ai trouvé, j'etais en opendcl 5.x et a partir de 2011 il faut opendcl 6.x [Edité le 14/10/2010 par arcuce]
  15. Bonjour, j'ai un probleme et je ne sais pas d'où il vient, en fait quand j'execute (command "OPENDCL") sous autocad 2010 jai comme retour OPENDCL mais quand je l'execute sous autocad map 2011 en retour j'ai OPENDCL Commande inconnue "OPENDCL". Appuyez sur F1 pour obtenir de l'aide. donc la lib de opendcl ne se charge pas et donc mes commande dcl ne sont pas reconnues Est ce qu'il y a une commande differente entre les version 2010 et 2011 ou entre autocad et map ? merci
  16. Bonjour, j'ai un gros probleme il ce peut que vous puissiez y remediez donc: j'ai un fichier creer sou autocad 2010 ce fichier ce le retrograde a une version enterieur (testé avec 2007 et 2004) ce fichier que j'ouvre avec autocad 2009 a un probleme un des type de blocs donc en fait mon bloc "TRUC" est renomer en *U2 qaund je test avec: 2011 mon bloc est TRUC 2010 mon bloc est TRUC 2009 mon bloc est *U2 2004 mon bloc est *U2 ce qui est etrange c'est que d'autre blocs ne sont pas renomer et que *U2 n'apparait pas dans la liste des blocs dispo par contre quand je clique dessus c'est bien un bloc qui apparait
  17. merci gile pour ta reponse pour ce que je dois faire je suis obligé de me connecter a un sql server
  18. bonjour, je cherche un bon tuto ou de bonne adresse où sont referencés les fonctions pour acceder a une base de données SQL Server (la version 2008 ) en lisp merci
  19. ha merci j'y suis depuis 9h ce matin ca marche nikel
  20. Bonjour, vous allez me trouver lourd a la fin mais bon ... donc voila mon probleme j'ai plusieurs types de bloc qui porte chacun un nom A, B, C ou D par exemple dans 2 de c'est bloc A et C par exemple j'ai un attribut "toto" certain de mes bloc A et C on deja toto de renseigné je voudrai inserer une valeur dans l'attribut toto dans les bloc A et C ou la l'attribut toto n'est pas renseigné j'ai deja ma valeur de base qui vas s'incremanter au fur et a mesure de l'insertion dans l'attribut de mes bloc je dispose aussi d'un jeu de selection (selection set) des element du dessin je sais parcourir mon jeu de selection et lire les valeur a l'interrieur je voudrai juste modifier l'attribut quand il est vide (repeat (sslength ss) (setq l (entget (setq e (ssname ss (setq i (1+ i)))))) (setq a (entnext e)) (while (= "ATTRIB" (cdr (assoc 0 (setq l (entget (setq e (entnext e))))))) (if (AND (= (cdr (assoc 1 l)) "") (= (cdr (assoc 2 l)) "toto")) (progn (setq AttribMax (+ AttribMax 1)) ;C'est LA que je veux metre AttribMax dans toto ) ) ) ) il me semble que apres avoir modifier mon jeu de selection je mettre a jour le dessin avec ce jeu merci
  21. merci je suis sauvé
  22. bonjour, j'ai un chtit probleme j'ai des fonctions qui me renvoi des chose par exemple: des chaines de carracteres ou encore des test vrai/faux j'ai commencer a retourner les valeurs avec la fonction (princ) exemple : (defun mafonction () (princ 1) ) _$ (setq mavariable mafonction) donc : mavariable = 1 ca fait ce que je veux mais ca affiche aussi dans la console le 1 alors ce n'est pas genant pour quelque petits test mais si on a des boucle qui tourne 5000 fois ca prend du temp quand ca affiche dans le debug donc ma question est la suivante y a t'il une fonction en lisp qui ne ferait que me renvoyer le resultat sans l'afficher comme le ferait par exemple un return en C/C++ merci
  23. ca y est merci jai pu recupperer ce que je voulais
  24. voila je met a jour car grace a toi j'ai trouver un indice de ce que je cherche ((-1 . ) (0 . ATTRIB) (330 . ) (5 . 9FA5) (100 . AcDbEntity) (67 . 0) (410 . Model) (8 . 0) (62 . 0) (100 . AcDbText) (10 874799.0 160071.0 0.0) (40 . 0.8) (1 . 0) (50 . 2.81776) (41 . 0.9) (51 . 0.0) (7 . TXT_ROMANS) (71 . 0) (72 . 0) (11 0.0 0.0 0.0) (210 0.0 0.0 1.0) (100 . AcDbAttribute) (280 . 0) (2 . DIG_LIENS) (70 . 1) (73 . 0) (74 . 0) (280 . 0)) jai trouver le nom d'un des attribut que je cherche DIG_LIENS me manque plus qu 'a reciperer sa valeur
  25. merci pour ta reponse je vais essayer de me diriger dans cette direction
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité