Aller au contenu

Patrick_35

Membres
  • Compteur de contenus

    6 374
  • Inscription

  • Dernière visite

  • Jours gagnés

    30

Tout ce qui a été posté par Patrick_35

  1. Salut, je pense que je vais faire ton bonheur Voici un lisp qui te donne les infos que tu souhaites Un (vla-put-LayoutShowPlotSetup Mod_Lay :vlax-false) te décoche l'affichage de la config des tracés dans les options, alors qu'un (vla-put-LayoutShowPlotSetup Mod_Lay :vlax-true) fait le contraire (idem en ce qui concerne le LayoutCreateViewport) @+ (vl-load-com) (setq Mod_Lay (vla-get-display (vla-get-preferences (vlax-get-acad-object)))) (if (= (vla-get-LayoutCreateViewport Mod_Lay) :vlax-true) (princ "\nCréer une fenêtre dans les nouvelles présentations") (princ "\nNe pas créer une fenêtre dans les nouvelles présentations") ) (if (= (vla-get-LayoutShowPlotSetup Mod_Lay) :vlax-true) (princ "\nAfficher Config de tracé des nouvelles présentation") (princ "\nNe pas afficher Config de tracé des nouvelles présentation") ) (princ)
  2. Oui, enfin Microsoft à de la marge dans les entreprises. Les services info ne sont pas encore prêt à mon avis, de lâcher un logiciel qui fonctionne bien et qui a fait ses preuves, sur lequel le personnel a été formé et qui de plus, est très répandu, facilement portable d’une entreprise à une autre @+
  3. Pas à ma connaissance, et pour répondre à ta question en ce qui concerne le chargement, il faut que les fichiers soient dans les chemins de recherche d'Autocad, et ensuite, avec _autoload, (load "machin.lsp") ou encore un drag&drop @+ Nb : Encore un qui force un peu sur le café ;) (on reste soft)
  4. Patrick_35

    Geler l\'écran

    La solution en lisp est avec la fonction entupd et d'eviter de passer par des appels à des (command _.toto ... ...), donc que du lisp, voir du vlisp @+
  5. Salut, C’est très généreux de ta part de nous faire partager tes symboles, mais, il aurait à mon sens plus simple de faire un bloc par fichier plutôt que deux fichiers qui regroupent le tout, ceci afin de personnaliser (via des menus, le design center, par bibles, etc...) ou encore de récupérer juste un symbole qui nous intéresse @+
  6. Super, c'est une très bonne nouvelle Juste une question. Pour les sujets qui sont déjà résolus, c'est Patrick qui fait la manip (et il y a un gros paquet de sujets) ou alors il faut que ce soit les auteurs qui s'y collent ? @+
  7. J'ai fais un bat pour qu'à chaque fois que j'allume le pc, tous mes répertoires temporaires soient vidés Avantage, pas trop de nettoyage à faire Inconvénient. Si la bécane plante, impossible de récupérer un dessin temporaire, à moins de redéfinir un chemin dans autocad Le fichier bat à placer dans le démarrage de Windows if exist %temp% echo o|del %temp% if exist %tmp% echo o|del %tmp% @+
  8. Patrick_35

    moulinette XYZ

    Salut Bonus, c’était juste une remarque en passant et l’occasion de se lancer dans vlisp avec des liaisons sur Excel, mais si l’envie n’est pas là, inutile d’insister. J’ai remarqué qu’il était de plus en plus demandé un lisp comme ton TOPO.LSP mais avec une saisie directement depuis Excel, ce qui est à mon sens plus simple pour un utilisateur lambda qu’un fichier txt qui peut poser des problèmes. Mais comme je le dis un peu avant, si l’envie n’est pas là. Un jour peut-être ;) @+
  9. Salut Ca n'a pas été simple pour le mettre au point mais j'ai reussi avec juste un incrément sur le texte de +1. J'ai regardé pour faire un incrément au choix (de +2, +3 ou autres), mais je n'ai pas encore réussi ex : (inc_txt "AAB") retourne "AAC" ex : (inc_txt "AAZ") retourne "ABA" ex : (inc_txt "AZZ") retourne "BAA" ex : (inc_txt "YZZ") retourne "ZAA" ex : (inc_txt "ZZZ") retourne "AAAA" @+ (defun inc_txt(Txt / Boucle Decalage Val_Txt) (setq Boucle 1 Val_txt "") (while (<= Boucle (strlen Txt)) (setq Ascii_Txt (vl-string-elt Txt (- (strlen Txt) Boucle))) (if (not Decalage) (setq Ascii_Txt (1+ Ascii_Txt)) ) (if (= Ascii_Txt 91) (setq Ascii_Txt 65 Decalage nil) (setq Decalage T) ) (setq Val_Txt (strcat (chr Ascii_Txt) Val_Txt)) (setq Boucle (1+ Boucle)) ) (if (not Decalage) (setq Val_Txt (strcat "A" Val_Txt)) ) Val_Txt )
  10. Salut Ah Exact, en faisant une recherche rapide, j'ai trouvé ces classes AcDbDimension AcDbAlignedDimension AcDb3PointAngularDimension AcDbOrdinateDimension AcDbRotatedDimension AcDbRadialDimension AcDbDiametricDimension AcDb...Dimension ? Donc pour simplifier, il suffit de remplacer (if (= (vla-get-objectname ent) "AcDbRotatedDimension") par (if (vl-string-search "Dimension" (vla-get-objectname ent)) et à la limite, pour plus de sécurité, par (if (and (vl-string-search "AcDb" (vla-get-objectname ent))(vl-string-search "Dimension" (vla-get-objectname ent))) @+
  11. Oups, désolé Tramber. Il va falloir que je les change http://smileys.smileycentral.com/cat/12/12_1_117.gif Comme quoi, ce lien est vraiment utile ;) @+
  12. Un lien intérressant sur la FAT32 et le NTFS et aussi comment faire la convertion Erbe, à mon avis, ton disque d'occasion n'a aucune incidence Logiquement, il a été monté en esclave sur ton pc et tu as du faire une détection automatique par le bios ? @+
  13. Ce lien pour le lisp et celui-ci pour le dxf, mais j'ai l'impression que ça n'a pas évolué depuis la version 14. C'est quand même mieux que rien @+
  14. Patrick_35

    moulinette XYZ

    Salut Bonus Tu n’as jamais pensé à améliorer ton lisp afin de lire directement dans Excel et non plus dans un fichier txt ? @+
  15. Il me semble entendre des bulles pétiller ;) Plus sérieusement, je pense que ça devrait te convenir (vl-load-com) (setq a (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))) (vlax-for bl a (vlax-for ent bl (if (= (vla-get-objectname ent) "AcDbRotatedDimension") (vla-delete ent) ) ) ) (vla-regen (vla-get-activedocument (vlax-get-acad-object)) acActiveViewport) @+
  16. Je ne me risquerai pas sur les fichiers DAT, alors que pour les LOG, sans soucis @+
  17. Eviter les "command" permet de ne pas toucher aux variables d'autocad, comme les accroch obj, le modemacro, attreq&attdia pour les blocs, etc... Ca fait un peu plus "Lispien" et si jamais le prog plante, ça évite à l’utilisateur final de refaire ses variables. Combien de fois on voit sur le forum, j’ai perdu ceci ou encore cela, et lorsque la variable est remise comme on le souhaite, on entend dire, mais je n’ai rien touché, je ne vois pas pourquoi elle a changée. Pour trouver les _ , je me sers tout simplement du menu, toutes les commandes sont en anglais. Pour ce qui est des options, un peu de logique permet de retrouver la bonne syntaxe @+
  18. Génial, c'est super, bravo J'aurai, si tu le permets, juste deux remarques à formuler A la lecture de ton lisp, il est tout à fait possible de supprimer les deux "command" auquel tu fais appel avec en voix de conséquence, la possibilité de supprimer l'appel aux variables d'Autocad Pour purger, tu peux passer par (vla-purgeall (vla-get-activedocument (vlax-get-acad-object))) Pour le rename, je regarde ça la semaine prochaine et toujours pour les command, écris les en anglais, il faut penser à nos amis d'outre atlantique ou à ceux qui n'ont pas une version française @+
  19. Comme promis, le prog est fait. Il ne reste plus qu'à faire un script pour traiter tous tes fichiers @+ (defun c:TxtExc(/ Old_Error) (defun *errtxt* (msg) (if (/= msg "Function cancelled") (if (= msg "quit / exit abort") (princ) (princ (strcat "\nErreur : " msg)) ) (princ) ) (setq *error* Old_Error) (vla-endundomark (vla-get-activedocument (vlax-get-acad-object))) (princ) ) (defun Liaison_Excel(/ Chemin_Excel Environ Version_Excel) (if (setq Chemin_Excel (vl-registry-read "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\Excel.EXE" "Path")) (progn (foreach Environ (list "SYSTEMROOT" "WINDIR" "WINBOOTDIR" "SYSTEMDRIVE" "USERNAME" "COMPUTERNAME" "HOMEDRIVE" "HOMEPATH" "PROGRAMFILES") (if (vl-string-search (strcat "%" Environ "%") Chemin_Excel) (setq Chemin_Excel (vl-string-subst (strcase (getenv Environ)) (strcat "%" Environ "%") Chemin_Excel)) ) ) (if (= (vl-string-elt Chemin_Excel (1- (strlen Chemin_Excel))) 92) (setq Chemin_Excel (strcat Chemin_Excel "Excel.exe")) (setq Chemin_Excel (strcat Chemin_Excel "\\Excel.exe")) ) (cond ((findfile (vl-string-subst "Excel8.olb" "Excel.exe" Chemin_Excel)) (setq Chemin_Excel (vl-string-subst "Excel8.olb" "Excel.exe" Chemin_Excel)) ) ((findfile (vl-string-subst "Excel9.olb" "Excel.exe" Chemin_Excel)) (setq Chemin_Excel (vl-string-subst "Excel9.olb" "Excel.exe" Chemin_Excel)) ) ((findfile (vl-string-subst "Excel10.olb" "Excel.exe" Chemin_Excel)) (setq Chemin_Excel (vl-string-subst "Excel10.olb" "Excel.exe" Chemin_Excel)) ) ) (cond ((= (strcase (vl-filename-base (vl-filename-directory Chemin_Excel))) "OFFICE11") (setq Version_Excel "2003") ) ((= (strcase (vl-filename-base (vl-filename-directory Chemin_Excel))) "OFFICE10") (setq Version_Excel "XP") ) ((= (strcase (vl-filename-base Chemin_Excel)) "EXCEL8") (setq Version_Excel "97") ) ((= (strcase (vl-filename-base Chemin_Excel)) "EXCEL9") (setq Version_Excel "2000") ) ) (if (not Version_Excel) (setq Chemin_Excel nil) ) ) ) (list Chemin_Excel Version_Excel) ) (defun Txt->Excel(/ Boucle Ent Excel_Lance Js Objet_Excel Rng Xl Xl_Classeur Xl_Feuilles Xl_Feuille_Active) (if (car (setq Objet_Excel (Liaison_Excel))) (progn (princ (strcat "\nConnexion avec Excel " (cadr Objet_Excel))) (princ) (if (setq Xl (vlax-get-object "Excel.Application")) (setq Excel_Lance T) (setq Xl (vlax-create-object "Excel.Application")) ) (if Xl (progn (if (null Xl-open) (vlax-import-type-library :tlb-filename (car Objet_Excel) :methods-prefix "Xl-" :properties-prefix "Xlp-" :constants-prefix "Xlc-") ) (if (not Excel_Lance) (vlax-invoke-method (vlax-get-property Xl 'WorkBooks) 'Add) ) (setq Xl_Classeur (vlax-get-property XL "ActiveWorkbook")) (setq Xl_Feuilles (vlax-get Xl_Classeur "Sheets")) (setq Boucle 1) (while (<= Boucle (xlp-get-count Xl_Feuilles)) (if (= (xlp-get-name (xlp-get-item Xl_Feuilles Boucle))(getvar "dwgname")) (progn (setq Xl_Feuille_Active (xlp-get-item Xl_Feuilles Boucle)) (xl-activate Xl_Feuille_Active) ) ) (setq Boucle (1+ Boucle)) ) (if (not Xl_Feuille_Active) (progn (setq Xl_Feuille_Active (xl-add (vlax-get Xl_Classeur "Sheets"))) (xlp-put-name Xl_Feuille_Active (getvar "dwgname")) ) ) (princ (strcat "\nTravail dans le " (xlp-get-fullname Xl_Classeur) " ,Feuille " (xlp-get-name Xl_Feuille_Active))) (princ) (vla-put-visible Xl 1) (setq Boucle 0) (setq Js (ssget "x" (list (cons 0 "*MTEXT,TEXT")))) (while (ssname Js Boucle) (setq Ent (entget (ssname Js Boucle))) (setq Rng (xlp-get-range Xl_Feuille_Active (strcat "A" (itoa (1+ Boucle))))) (xlp-put-value Rng (cdr (assoc 1 Ent))) (setq Boucle (1+ Boucle)) ) (vla-put-visible (vlax-get-acad-object) 1) (princ (strcat ", Exportation de " (itoa Boucle) " texte(s)")) ) ) ) (princ "\nVersion d'excel inconnue ou non installée") ) ) (vl-load-com) (vla-startundomark (vla-get-activedocument (vlax-get-acad-object))) (setq Old_Error *error* *error* *errtxt*) (Txt->Excel) (setq *error* Old_Error) (vla-endundomark (vla-get-activedocument (vlax-get-acad-object))) (princ) ) (princ "\nExportation de Textes vers Excel chargé....Tapez TXTEXC") (princ)
  20. En cachant les détails et comme toutes fenêtres Windows, avec les flèches @+
  21. Patrick_35

    xRef

    Et pour corser le tout, avec des chemins relatifs de manière à ce que soit facilement portable vers le client @+
  22. Patrick_35

    sens du décalage

    J’ai juste tracé une poly dans un sens et une autre dans le sens inverse et fait le comparatif avec un offset à +1 et un à -1. Il apparaît que l'angle détermine le coté où la poly se décale (on peut donc logiquement raisonner avec des orhto 0->90, 90->180, 180-270 et 270->0). Maintenant, ça dépend de ce que tu veux faire exactement Pour ce qui est du "smaller", on peut raisonner sur un cercle et se dire que le décalage négatif se fait sur le plus petit, donc logiquement à l’intérieur du cercle. Il est logique de raisonner de la même manière sur une poly fermée pour ce décalage (et quel que soit l’angle du premier vecteur) Plus c'est court et mieux c'est, enfin, c'est mon avis Je ne l'ai jamais vu, mais je veux bien le croire, pourquoi pas ! Oui, mais techniquement, il doit y avoir une différence ? (plus rapide, ou autre chose encore) @+
  23. Patrick_35

    sens du décalage

    Juste une question J'ai vu qu'on pouvait faire aussi un (vla-offset obj valeur) au lieu d'un (vlax-invoke-method obj "Offset" valeur) Quelle est la méthode la mieux appropriée entre les deux et pourquoi ? (ps : pour Tramber, il me semble t'avoir donné une réponse pour justement en prog, voir le sens de ta poly,)
  24. Peut-être avec 013 ou \r @+
  25. Patrick_35

    Date automatique

    Avec rtext des express tools et en diesel, extrait de l'aide @+
×
×
  • 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é