Aller au contenu

Bred

Membres
  • Compteur de contenus

    2 764
  • Inscription

  • Dernière visite

Tout ce qui a été posté par Bred

  1. Salut, au début (setq var_HPASSOC (getvar "HPASSOC")) (setvar "HPASSOC" 1) .... à la fin (setvar "HPASSOC" var_HPASSOC) la commande "_.draworder", après avoir signaler que objet tu veux traiter, te demandes de "Sélectionnez les objets de référence:" apès l'option "dessu" .... ce que tu ne fais pas.... je choisirais, au lieu des options dessus/dessous Avant ou Arrière .... (en fait tu as déjà choisis arrière, donc change le choix des variables par : (if (= rep "s") (setq ot "avant") (setq ot "arriere") ) (tu n'as pas besoin de "prog" quand tu réalises qu'une action après le if) [Edité le 20/3/2007 par Bred]
  2. Bred

    Texte de SelectionS ....

    Super ! ... 6h43 la réponse... c'et ton heure on dirait ! merci. Pour info, si l'on à d'autre selection à faire après le ssprompt, il faut faire un test sur sel, car sinon si on fait un echap, sel n'est pas nil, (malgé qu'il ne soit rien) : comme ça : (setq sel nil) (while (not sel) (setq sel (ssprompt '((62 . 1)) "\nSélectionnez les objets rouges: ")) ) (if [b](equal (type sel) 'PICKSET)[/b] (progn ................ etc
  3. Bred

    Texte de SelectionS ....

    ... ouh là !... par contre, ne pas faire un test comme ça : (setq sel nil) (while (not sel) (setq sel (ssprompt '((62 . 1)) "\nSélectionnez les objets rouges: ")) ) car si vous n'avez aucun objet '((62 . 1)), la question ne s'arrêtte jamais !!!....
  4. Bred

    Texte de SelectionS ....

    Comme d'habitude, c'est du grand art !!!.... merci une "énième fois" encore (gile) !
  5. Bred

    Texte de SelectionS ....

    ElpanovEvgeniy m'a répondu (setq sel(ssget '((62 . 1)))) mais ce n'est pas ce que je voudrais (merci quand même!) Je voudrais (exemple): (setq sel(ssget '((62 . 1)))[b]"choisissez les objets rouges"[/b] : ) (je sais, c'est faux, mais c'est plus compréhensible je pense...)
  6. Salut, Quand je veux faire demande une selection de plusieurs objets précis, en ce moment je fait ça : (princ "\nChoix des objets rouges :") (setq sel (ssget)) ce qui donne ... ce qui n'est pas terrible... Autriez-vous dans vos archives une routine de selection équivalente à SSGET (avec possibilité de filtre de selection idem), mais dont on peut mettre le texte à loisir ? merci d'avance !
  7. Bred

    Lien Excel : Fermeture...

    Merci Patrick_35... En fait, à tête (et ordi) refroidi, le code que j'ai posté ci-dessus fonctionne (ce qui n'est pas étonnant vu que la fermeture est un coper-coller de ton code.) Merci encore !
  8. Bred

    Lien Excel : Fermeture...

    pfffffffffffffffffff !!!... j'ai fait ça .... (je suis assez content de moi pour la manière de choisir l'onglet .... en gras) ; Lancer une liaison avec Excel - (defun lancer_excel (vis / sel) (setq xl (vlax-get-or-create-object "Excel.Application")) (setq wks (vlax-get xl 'Workbooks)) (vlax-for sel wks (setq liste_fichiers_ouvert (append liste_fichiers_ouvert (list (strcase (vlax-get sel 'fullname))))) ) (if (equal vis 0) (vla-put-visible xl :vlax-False) (vla-put-visible xl :vlax-True) ) ) ;;; Ouverture Excel + Nom de feuille puis 1 = visible, 0 = invisible -> (XL-Ouv-Feuill "chemin fichier" "Nom de feuille") - (defun XL-Ouv-Feuill (Chem-fich Nom_feuil vis) (lancer_excel vis) (setq xl-fichier (vlax-invoke wks 'open Chem-fich)) (setq xl-classeur (vlax-get xl-fichier 'sheets)) [b] (setq x 1) (repeat (vlax-get-property xl-classeur 'Count) (if (equal (strcase (vlax-get (vlax-get-property xl-classeur 'item x) 'name)) (strcase Nom_feuil)) (setq xl-feuille (vlax-get-property xl-classeur 'item x)) (setq x (+ x 1)) )[/b] ) (vlax-invoke-method xl-feuille 'Activate) ) ;;; Choix Cellule dans Excel - Ecriture Texte -> (XL-Put-Txt-Cell "Texte" "C4") - (defun XL-Put-Txt-Cell (Txt Cell) (vlax-put (vlax-get-property xl-feuille 'range Cell)'value2 Txt) ) ;;; Choix de Cellule dans Excel (liste) - Lire Cellule -> (XL-Get-Val-Cell '("B1" "C4")) - ;;; -> Retourne liste résultat - (defun XL-Get-Val-Cell (lst-Cell / x) (setq x 0 lst-val nil) (repeat (length lst-Cell) (setq lst-val (append lst-val (list (vlax-get (vlax-get-property xl-feuille 'range (nth x lst-Cell)) 'value2))) x (+ x 1)) ) lst-val ) ; Fermer la liaison avec Excel (defun XL-Close (/ ok sel) (if (not (member (strcase (vlax-get xl-fichier 'fullname)) liste_fichiers_ouvert)) (vlax-invoke-method xl-fichier 'close :vlax-false) ) (if liste_fichiers_ouvert (vla-put-visible xl :vlax-True) ) (foreach sel (list xl wks xl-fichier xl-classeur xl-feuille) (vlax-release-object sel) ) (setq xl nil wks nil xl-fichier nil xl-classeur nil xl-feuille nil) (gc)(gc) ) ) [Edité le 2/12/2007 par Bred]
  9. Bred

    Rechercher texte

    Salut, Pourquoi n'utilises-tu pas Ton propre Lisp afin d'extraire les attributs et de faire une relation en l'attribut et le bloc le contenant ?
  10. Bred

    Ptite astuce!!

    Pour cela, rien de plus simple. Tu installe l'electricité. Ou avec une lampe de poche. Mais il faut le trouver, car si tu marche dessus, c'est casse-geule ! (ça roule, les tuyaux !)
  11. Bred

    Lien Excel : Fermeture...

    ... et complétement largué !!! :casstet: Je m'étais habitué à "vlax-import-type-library", et je vois que tu est passé par autre part .... j'ai éssayé d'aptater la précedente version que j'ai mis ci-dessus en mettant à la fermeture (foreach n (list xl xl_wks xl_fichier xl_classeur xl_feuille)(vlax-release-object n)) (setq xl nil xl_wks nil xl_fichier nil xl_classeur nil xl_feuille nil) (gc)(gc) ... mais ça ne fonctionne toujours pas (j'ai toujours Excel en processus...) Donc, j'en suis à envoyer un appel à l'aide à qui peu pour que l'on puisse me pondre des routines équivalentes à celles que j'ai mis au dessus (ou que l'on me dirige fortement...) Je cherche à : 1 - Ouvrir Excel avec test si déjà ouvert (avec argument visible (1) ou pas (0)) 2 - Choix d'un fichier existant et pointage sur une feuille (argument fichier et nom de feuille) 3 - Choix d'une cellule et écriture valeur (argument cellulle et valeur) 4 - Choix de cellulles et lecture de cette cellule (avec argument une liste de cellulle) -> retourne une liste de valeur. 5 - Fermeture de la page, voir d'Excel si celui-ci n'était pas déjà ouvert ... .... mon lisp précedent fait tout ça, mais il ne me ferme pas totalement Excel (et je ne suis pas sûr du test si déjà ouvert....) merci d'avance !!!!
  12. Salut et bienvenue, tu as le fabuleux lisp de (gile) ici ! qui te conviendrais je pense...
  13. = polilygne"3D" ... = LW polyligne ... donc ça ne peut pas être ça.....
  14. Bred

    Lien Excel : Fermeture...

    OK ! Récupéré et en train d'être décortiqué. merci ! :P [Edité le 15/3/2007 par Bred]
  15. Bred

    la grande echelle

    Salut, en effet, (setq sset (ssget '((0 . "INSERT")))) Te demandes de faire une selection, mais ne selectionne que des blocs. Pour selectionner TOUS les blocs d'un dessin, il faut rajouter "_X" (setq sset (ssget "_X" '((0 . "INSERT")))) CMDECHO a 0 permet de ne pas faire afficher le cheminement des commandes sur la ligne de commande. POur la selection des textes, au lieu d'avoir "insert" dans SSGET, ce serait "MTEXT" pour les texte multi-ligne, ou "TEXT" pour les texte simple.
  16. Salut, Au vue de l'impossibilité de modifier les plans de délimitations d'une fenêtre de présentation par entmake/mod (là) et de mon doute de trouver des commandes en vl : 1 - Certains dénigre la commande 3dlim, mais je n'en ai pas trouvé d'équivalente et d'aussi performante pour réaliser en mise en plan des sections d'un plan 3D constitué de toutes sorte d'entité... comment faites-vous sans utiliser cette commande ? 2- Comment feriez vous en lisp pour pouvoir bouger ces plans de délimitations ? ... merci d'avance ! [Edité le 15/3/2007 par Bred]
  17. Bred

    Lien Excel : Fermeture...

    mmmmm !... en fait je dois avoir le firewall de mon bureau qui me bloc le téléchargement !... Je verrais ça chez moi ce soir ! désolé.
  18. Bred

    Lien Excel : Fermeture...

    Je viens de télacharger Lxl.zip , mais je n'arrive pas à le lire (zip endommagé ?)
  19. Bred

    Lien Excel : Fermeture...

    Super, merci, je vais regarder ça !
  20. Bred

    Lien Excel : Fermeture...

    Salut, je reviens en ce moment sur la fermeture d'Excel, car j'avais une erreur (fermeture de tout excel, même si celui-ci était déjà ouvert...) Mais un problème subsiste, et ça me fait planter mes routines : Je n'arrive pas à fermer la tâche EXCEl dans les processus, malgré (vlax-release-object Xl)(gc) ... :casstet: Pour info, ci-dessous la routine de Patrick-35 mis en sous-routine à ma sauce. ;;; Ouverture Excel + Nom de feuille puis 1 = visible, 0 = invisible -> (XL-Ouv-Feuill "chemin fichier" "Nom de feuille" 0) (defun XL-Ouv-Feuill(Chem-fich Nom_feuil vis) (if (not (vlax-get-object "Excel.Application")) (setq XL-TestOuvert "N") (setq XL-TestOuvert "O")) (vl-load-com) (Excel_Version) (setq xl (vlax-get-or-create-object "Excel.Application")) (vlax-import-type-library :tlb-filename Chemin_Excel :methods-prefix "xl-" :properties-prefix "xlp-" :constants-prefix "xlc-") (setq xl_wks (vlax-get xl "Workbooks") xl_fichier (xl-open xl_wks Chem-fich) xl_classeur (vlax-get xl_fichier "Sheets") xl_feuille (xlp-get-item xl_classeur Nom_feuil)) (if (equal vis 0) (vla-put-visible xl :vlax-False) (vla-put-visible xl :vlax-True) ) ) ;;; Choix Cellule dans Excel - Ecriture Texte -> (XL-Put-Txt-Cell "Texte" "C4") - (defun XL-Put-Txt-Cell (Txt Cell) (setq DONN (xlp-get-range xl_feuille Cell)) (xlp-put-value2 DONN Txt) ) ;;; Choix Cellule dans Excel (liste) - Lire Cellule -> (XL-Get-Val-Cell '("B1" "C4")) - ;;; -> Retourne liste résultat - (defun XL-Get-Val-Cell (lst-Cell / x) (setq x 0 lst-val nil) (repeat (length lst-Cell) (setq lst-val (append lst-val (list (vlax-variant-value (xlp-get-value (xlp-get-range xl_feuille (nth x lst-Cell)))))) x (+ x 1)) ) lst-val ) ;;; Fermeture de la page ouverte (defun XL-Ferm () (xl-saveas xl_feuille "C:\\XL-Lisp.xls") (vlax-invoke-method (vlax-get-property Xl "ActiveWorkbook") 'Close) (if (equal XL-TestOuvert "N") (progn (vlax-invoke-method Xl 'QUIT) [b](vlax-release-object Xl)(gc)[/b])) (if (findfile "C:\\XL-Lisp.xls") (vl-file-delete "C:\\XL-Lisp.xls")) ) ... je suis le seul dans ce cas ????... c'est quand même bizarre que (gc) ne fonctionne pas.... merci ! [Edité le 15/3/2007 par Bred]
  21. Bred

    Modifier DXF 43 et 44 ?

    Merci, mais ça ne fonctionne pas ....i (il ne me crée pas la fenêtre...) J'ai regardé en vla- mais je ne trouve pas de commandes touchant aux délimitations.... [Edité le 14/3/2007 par Bred]
  22. Salut, je n'arrive pas à modifier les valeurs des délimitation avant et arrière en passant par entmod... c'est-y-normal ??? mon code de travail : (defun c:ttt () (if (= (getvar "TILEMODE") 1) (princ "\n ** Cette commande n'est valable que dans l'espace papier. **") ;Sélection Fenêtre (progn (if (= (getvar "CVPORT") 1) (progn (while (not (and (setq sel (car (entsel "\n Sélectionner une fenêtre :"))) (or (equal (cdr (assoc 0 (entget sel))) "VIEWPORT") (equal (cdr (assoc 0 (entget (cdr (assoc 330 (entget sel)))))) "VIEWPORT") ) ) ) ) (setq sel (entget sel) id_fenetre (cdr (assoc 69 sel))) (if (= id_fenetre nil) (progn (setq sel (entget (cdr (assoc 330 sel))) id_fenetre (cdr (assoc 69 sel))) ) ) (command "_.MSPACE") (setvar "CVPORT" id_fenetre) ) ) ) ) (command "_.PSPACE") [b](setq dxf-AV-43 (cdr (assoc 43 sel))) (setq dxf-AR-44 (cdr (assoc 44 sel))) (setq dec (getreal "Délimitation à décaler de :")) (setq sel (subst (cons 43 (+ dxf-AV-43 dec)) (assoc 43 sel) sel) sel (subst (cons 44 (+ dxf-AR-44 dec)) (assoc 44 sel) sel)) (entmod sel)[/b] (princ) ) ... merci....
  23. Bred

    ObjectDCL 2007 s\'en vient

    Ah... ben j'attendrais un peu, alors, car quand les dépenses seront remboursés se sera gratuits ??? ;) Serieusement : si l'efficacité est au rendez-vous, il n'y a aucune raison de ne pas en profiter (ce sra mérité).... pour un prix raisonable et un SAV qui suit .... :cool: ... et si il est proposé en français .... [Edité le 12/3/2007 par Bred]
  24. Salut, Les fichiers sont des .lsp et se trouvent dans C:\Program Files\AutoCAD xxxx\Express.
  25. Salut, tu as ce Lisp, qui te retourne le fenêtre aussi.
×
×
  • 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é