Aller au contenu

MAC

Membres
  • Compteur de contenus

    58
  • Inscription

  • Dernière visite

Tout ce qui a été posté par MAC

  1. Merci Tramber! J' essaie quand j'ai un moment.
  2. un petit retour sur l'exportation de données vers excel 10. Fonctionne sur autocad 2004. Totalement repris de : http://www.cadxp.com/sujetXForum-4272.htm Merci Patrick_35. Chemin excel: http://www.cadxp.com/modules.phpop=modload&name=XForum&file=viewthread&tid=4827 Re Merci Patrick_35. ;;;Pour activer les fonctions visual-lisp (vl-load-com) ;;;Lancer Excel (setq xl (vlax-get-or-create-object "Excel.Application")) (vlax-import-type-library ;;;excel :tlb-filename "c:/program files/Microsoft Office/Office10/Excel.exe";utiliser ici le lisp chemin excel en remplaçant par un (car (liaison_excel)) re re merci Patrick_35 :methods-prefix "xl-" :properties-prefix "xlp-" :constants-prefix "xlc-") (setq xl_wks (vlax-get xl "Workbooks")) ;;;Ouvrir le fichier "".xls dans le dossier (setq xl_fichier (xl-open xl_wks "C:\\Prototype.xls")) ;;;Choisir la feuille feuille1du classeur (setq xl_classeur (vlax-get xl_fichier "Sheets")) (setq xl_feuille (xlp-get-item xl_classeur "feuil1")) ;Choisir la cellule sélectionnée de la feuille ex: "B9" (setq celluleselectionnee (xlp-get-range xl_feuille cellule-excel)) ;Ecrire une variable dans la cellule sélectionnée précedement (xlp-put-value2 cellule-excel valeur-ecrire) ;;;Sauvegarder le fichier (xl-saveas xl_feuille nomFichier) ;;;rendre visible excel (vla-put-visible xl 1) ;;;Fermer le fichier (xl-close xl_wks) Pas essayé la lecture dans une cellule. Difficulté pour fermer excel totalement, je lance le gestionnaire des taches windows XP et termine le processus. Ensuite je ferme et relance Autocad afin de pouvoir réutiliser les fonctions excel. [Edité le 30/3/2006 par MAC]
  3. MAC

    Typeligne vers fichier Lin

    Merci! Kallain j'ai pas assuré sur ce coup, j'aurai pu faire une recherche avant. Ce lisp va sérieusement me depanner. A+
  4. Bonjour à tous! Je veux exporter mes types de ligne de mon fichier gabarit vers un fichier *.lin. Est-ce possible? Merci!
  5. MAC

    lisp vers exel 10

    il faut remplacer la fonction "xlp-put-value" par "xlp-put-value2" ce qui donne: ;Ecrire une variable dans la cellule sélectionnée (xlp-put-value2 rng "valeur") beaucoup de choses sur http://www.ikozmos.com Merci a tous et bon week! De Rennes aussi, je rentre maintenant de st nazaire. Faut eviter les poulets . rrrh! rrh! rh!
  6. MAC

    lisp vers exel 10

    merci Tramber de quoi bosser ce weeck end. Tres riche! merci Patrick_35 j'ai lancé la routine le chemin etait bon (j'avais vérifié) mais c'est le "xp" qui m'inquiete. Est-ce qu'il a de l'importance? "C:\\Program Files\\Microsoft Office\\Office10\\Excel.exe" "XP" je fais le retour si réponse trouvée. Patrick_35 de Rennes?
  7. Bonjour à tous! j'essai d'exporter des donnees avec exel 10 ('10.0.2614.0') et un message d'erreur du type: "Erreur Automation. Aucune description n'a été entrée." Apparait. avec excel 9 je réussis la manip avec succes. Porqué? merci d'avance. Le code: (vl-load-com) (setq xl (vlax-get-or-create-object "Excel.Application")) (vlax-import-type-library ;excel 10 :tlb-filename "C:/Program Files/Microsoft Office/Office10/Excel.exe" :methods-prefix "xl-" :properties-prefix "xlp-" :constants-prefix "xlc-") (setq xl_wks (vlax-get xl "Workbooks")) ;Ouvrir le fichier "".xls dans le dossier (setq xl_fichier (xl-open xl_wks "D:/Acad_/Prototype.xls")) ;Choisir la feuille metre1 du classeur (setq xl_classeur (vlax-get xl_fichier "Sheets")) (setq xl_feuille (xlp-get-item xl_classeur "metre1")) ;Choisir la cellule sélectionnée de la feuille (setq vcel (xlp-get-range xl_feuille "A10")) ;Ecrire une variable dans la cellule sélectionnée précedement (xlp-put-value vcel "valeur");ici "Erreur Automation. Aucune description n'a été entrée." ;Sauvegarder le fichier (xl-saveas xl_feuille "D:/Acad_/Prototype_modif.xls") (xl-close xl_wks)
  8. Merci, CADarome
  9. je m'en doutais un peu. il existe des explications en francais du fonctionnement de visual lisp ?... les bases quoi ! vl_machin, vla_truc,... je vois pas. Merci pour ta réponse et le lien riche en infos.
  10. Bonjour! Avec le lisp suivant (repris ici) on peut créer et enregistrer dans un fichier .xls une valeur. Mais est ce qu'on peut Choisir la cellule ou enregistrer la valeur. le tout en lisp (pas visual lisp, moi connais rien). ____________________________________________________ (setq file (open (getfiled "Créez ou sélectionnez un fichier" "" "xls" 33) "a" ) ) (princ descr file) (close file) _____________________________________________________ Merci!
  11. MAC

    bonjour à tous

    Juste mes amitiés, à ceux qui animent et font vivre ce site et qui m'ont déja rendu de grands services grace à leurs avis eclairés. A+ (trop de travail en ce moment et pas le temps de participer)
  12. MAC

    liste supprimer element double

    OUI! puissantes ces fonctions "recursives", et à developper. J'avais pas vu la fonction "WCMATCH" mais en effet elle fonctionne que sur les listes caracteres, et à priori la seule qui prenne les caracteres generiques. Merci à tous. A+
  13. MAC

    liste supprimer element double

    Merci! Donc, si j'ai bien compris pas de caracteres generiques en lisp? dommage! mais ceci fera très bien l'affaire et d'ailleurs j'aurai pu faire un petit effort de reflexion sur le sujet !. Grace à vous,je me coucherai plus tot ce soir. Fonction "recursive"? c'est nouveau ça! je teste et essaie de comprendre.(fonction dans la fonction?) A+ Cordialement.
  14. Bonjour à tous! soit la liste de point suivant: ((163.873 98.5) (10.5 20.5)(10.5 20.5) (454.535 185.5) (481.596 102.5)) quel fonction me permettrait de tester la liste et d'oter le point en double "(10.5 20.5)" et en général de supprimer tout element en double dans une liste? Voici le point d'insertion d'une entité en x y z: (10 20.50 20.50 1.0) Est-ce que je peux utiliser des caracteres generiques pour ne modifier que l'altitude z d'un element d'une liste dxf d'entité? Ce qui donnerait: (setq entlist(entget (car (entsel "Objet:")))) (setq Entlist (append Entlist (list (cons 10 * * 0.0)))) (entmod Entlist) Mais le symbole " * " ne fonctionne pas bien sur! Bon Week!
  15. MAC

    autocad 2002 xp familiale

    merci Eric, c'est génial! .J'essaie ça dès que possible. A+
  16. après une install d'autocad 2002 sur un portable avec xp familiale impossible de démarrer celui-ci. Est-ce que quelqu'un à une solution? je n'ai pas trouvé de mise à jour. Merci.
  17. MAC

    double décalage

    oui! je pense que c'est plus prudent de mettre "osmode" à 0. Je vais voir maintenant la modif avec pt0 . les autres modifs fonctionnent. merci pour tous ces conseils. A+
  18. MAC

    commande décaler

    j'utilise souvent une macro qui me permet ce genre d'opération repetitive toujours vers le meme calque . ^C^Cdc;\\\;changer;D;;p;CA;nom_calque_destination;; je sais! c'est ridicule comparé aux lisp donné plus haut. mais bon je voulais participer.
  19. MAC

    double décalage

    bonuscad: ta routine c'est de la balle!.fonctionne avec tous les objets. Pour l'exercice je termine ce que j'ai commencé.(c'est bon pour les neurones!) _j'ai supprimé tous les "progn". (bien vu gile! maintenant c'est plus léger) _j'ai inclu la possibilité de ne pas entrer la valeur a chaque appel de la commande. (comment fait'on pour afficher la valeur courante "offsetdist" sur le message de la ligne de commande qui demande de saisir la distance.) _la selection de l'entité se fait par son nom dans la commande "_offset". à voir: _afficher la valeur par défault d' "offsetdist" au moment de la saisie de la distance.comment? _je peut intégrer l'effacement de l'objet source. _voir ce que je peut faire avec "cond" afin de décaler tous les types d'objets. ____________________________________________________________________________ (defun c:dcllpp (/ vdist entite1 pt1 pt2 entitepoints anglepl PtGauche PtDroite) (if (setq Vdist (getdist "\n Distance de décalage ou valider la précédente ?:")) (setvar "offsetdist" Vdist) (setq Vdist (getvar "offsetdist")) ) (setq entité1 (entget (car (setq select-ent (entsel "Selectionner la ligne ou la polyligne:"))) ) ) (if (eq (cdr (assoc 0 entite1)) "LINE");;; determine si l'objet est ligne ou polyligne (Setq pt1 (cdr (assoc 10 entite1)) pt2 (cdr (assoc 11 entite1))) (setq entitepoints (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) entité1) ) pt1 (car entitepoints) pt2 (cadr entitepoints)) ) (setq anglepl (angle Pt1 Pt2)) (setq PtGauche (polar Pt1 (+ anglepl (/ pi 2)) vdist)) (setq PtDroite (polar Pt1 (- anglepl (/ pi 2)) vdist)) (command "_offset" "" select-ent PtGauche "" ) (command "_offset" "" select-ent PtDroite "" ) (princ) ) ___________________________________________________________________________
  20. MAC

    double décalage

    Bien vu! c'est la taille d 'ouverture de la cible de selection qui est responsable de mon problème. Si la cible est plus large que la distance totale apparente des 2 lignes décalées = bug. Donc selection de l'entité par son nom pour les petits décalages vus des étoiles. Bonuscad: ta routine est en effet plus compacte mais elle m échappe un peut . J'ai encore des progrets à faire car je ne connais pas encore activeX dans le cadre d'autolisp. Merci à tous pour vos conseils. On progresse...
  21. MAC

    double décalage

    Y'a toujours de l'activité sur ce forum.c'est formidable! Didier: ça fait un moment que je désire commencer en VBA mais je dois déja glaner de la doc pour débuter et ce concenter sur une seule chose permet de progresser plus vite et le lisp me parait plus facile a comprendre. Est ce que le VBA est plus puissant? Ton exemple est parlant et faut que je vois ça. Gile: "osmode" a 0 n'a pas corrigé le probleme. "cond" ? voilà une nouvelle fonction à découvrir et comprendre. A+
  22. MAC

    double décalage

    désolé!, la mise en forme a sautés.
  23. MAC

    double décalage

    Bonjour! voici un petit lisp (qui m'as donné beaucoup de peine) qui me permet un double décalage (de chaque coté) sur une ligne ou polyligne. _Est-ce qu'il y a un moyen de faire mieux et plus simple(moins d'appel a "progn" dans la fonction "IF")? _Sinon j'ai un probleme lors de l'utilisation de ce lisp : si le zoom dans la fenetre est trop eloigné le double décalage s'effectue mal, le dernier décalage se fait en superposition de la ligne selectionnée.L'autre est bon. si je zoom suffisament sur l'objet à décaler le résultat est bon. merci aux cadxpiens de la branche lispienne! (defun c:dcllpp (/ Vdist entité1 pt1 pt2 entitépoints anglepl PtGauche PtDroite) (setq Vdist (getdist "\n distance de decalage?:")) (setq entité1 (entget (car (entsel "Selectionner la ligne ou la polyligne:")) ) ) (if (eq (cdr (assoc 0 entité1)) "LINE");;; determine si l'objet est ligne ou polyligne (progn (Setq pt1 (cdr (assoc 10 entité1))) (setq pt2 (cdr (assoc 11 entité1))) ) (progn (setq entitépoints (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) entité1) ) ) (progn (progn (setq pt1 (car entitépoints))) (progn (setq pt2 (cadr entitépoints))) ) ) ) (setq anglepl (angle Pt1 Pt2)) (setq PtGauche (polar pt1 (+ anglepl (/ pi 2)) vdist)) (setq PtDroite (polar Pt1 (- anglepl (/ pi 2)) vdist)) (command "_offset" Vdist pt1 PtGauche "" ) (command "_offset" Vdist Pt1 PtDroite "" ) (princ) )
  24. MAC

    sommets d\'une polyligne 3d

    Merci encore,Tramber! Sans ce cite et le dévouement des personnes ici qui prennent le temps de répondre à d'illustres inconnus comme moi je m'arracherais les cheveux à essayer de comprendre le lisp et autres subtilités d'autocad et je n'ai jamais autant progressé et eu envie de progresser depuis que je fréquente les "lieux". A charge de revanche!
  25. MAC

    sommets d\'une polyligne 3d

    merci pour tes lumieres ça fonctionne comme je voulais. Ceci amène une nouvelle question: comment dans une boucle avec while je peux stocker la valeur de chaque boucle pour obtenir au final une liste de la forme: ((x y z) (x y z) (x y z) ...etc)? j'ai essayé avec CONS,mais cela ne semble pas etre la bonne solution.
×
×
  • 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é