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. Patrick_35

    gestion d'erreur

    C'est comme la langue française. Quand tu regardes un contrat d'assurance par exemple, ce n'est pas pour autant que tu as remarqué tel ou tel article, même si tu l'as lu. @+
  2. Voici un version IXL_béta @+ Ixl LeCrabe.lsp
  3. Patrick_35

    gestion d'erreur

    Salut Tu créés ton calque (si besoin) lors de la création du texte, pas avant. Pour ton problème de SCU, regarde la fonction lisp TRANS @+
  4. Salut Lecrabe 22000 lignes :o Quand tu fais les choses, ce n'est pas à moitié. J'ai regardé le lisp et je me pose la question s'il est nécessaire de mémoriser les blocs insérés dans le plan avec IXL. @+
  5. Salut Je viens de regarder vite fait AUtocad 2014 avec Excel 2010 et ça bug. Dès que j'ai un moment, je regarde ça @+
  6. Ah oui, effectivement. Alors, la seule solution est d'utiliser le réacteur proposé par Bruno. C'est lors de l'activation de ma présentation que je mets à jour les attributs. @+
  7. Par exemple (defun StartPlot (calling-reactor StartCommandInfo) (and (member (car StartCommandInfo) '("PLOT" "PUBLISH")) (alert "début PLOT/PUBLISH") ) ) ps : Affecte une variable à ton réacteur si tu as besoin de le supprimer ou pour vérifier qu'il n'est pas déjà actif. @+
  8. Salut Bruno J'avais songé à ce réacteur, mais dans le cas de création/suppression d'onglets ? @+
  9. C'est comme toutes les langues, il faut bien commencer un jour ;) @+
  10. Salut Le réacteur me parait bien lourd (pour répondre quand même à la question, avec vlr-acdb-reactor par exemple) Avec les exemples fournis, tu peux faire une routine qui numérote l'attribut en fonction de la position de l'onglet (vla-get-taborder ...) ps : pour Fundream Dommage d'utiliser (layoutlist) pour déterminer le nombre d'onglets alors que l'on à l'info dans (vla-get-count (vla-get-layouts adoc)) @+
  11. Patrick_35

    bloc alti

    Je viens de faire un petit truc vite fait (defun c:xall(/ blo ele new pos pt1 tbl) (vl-load-com) (and (setq ele (entsel)) (setq ele (vlax-ename->vla-object (car ele))) (setq pos (vlax-get ele 'insertionpoint)) (while (setq pt1 (getpoint "\nNouveau point : ")) (setq blo (vla-copy ele) new (mapcar '- pt1 pos) tbl (vlax-invoke ele 'getdynamicblockproperties) ) (vlax-put (car tbl) 'value (car new)) (vlax-put (cadr tbl) 'value (cadr new)) ) ) (princ) ) Tu positionnes le premier bloc, tu lances le lisp et choisis le bloc positionné. Il n'y a plus qu'à. @+
  12. Patrick_35

    bloc alti

    Je la connais depuis au moins la version 10 d'Autocad. Je n'avais pas encore de cheveux blanc ;) Tu édites ton attribut --> Insérer un champ --> Formule --> Dans la zone formule, clic droit --> Insérer un champ et la suite tu connais. ps : Elev me reppel la commande mainlev. @+
  13. Patrick_35

    bloc alti

    Salut Un exemple en jouant avec la variable ELEV @+ Test Alti.zip
  14. Salut Dans ce cas là, pour éviter de refaire mes présentations, je procède de cette manière. J'importe le nouveau xref tout en conservant l'ancien. Je déplace, fait tourner au besoin le nouveau xref. Je décharge (et non détache) l'ancien xref. L'avantage de cette méthode est de pouvoir retracer les évolutions des archis depuis le même plan. @+
  15. Ah oui, exact Tu ajoutes, dans le entmake (cons 7 (getvar "textstyle")) @+
  16. Salut Merci de partager ton travail. Juste une chose, il manque la variable rot pour que le lisp fonctionne correctement. Je me suis permis de regarder ce que tu as fait pour te proposer la même chose écrite différemment. (defun c:BlexXYpoly(/ ename) (and (setq ename (car (entsel "\nSelectionnez la polyligne: "))) (mapcar '(lambda(x) (entmake (list (cons 0 "MTEXT") (cons 100 "AcDbEntity") (cons 100 "AcDbMText") (cons 10 (cdr x)) (cons 1 (strcat "X=" (rtos (cadr x) 2 2) "\n" "Y=" (rtos (caddr x) 2 2) ) ) (cons 71 7) (cons 72 5) ) ) ) (vl-remove-if-not '(lambda(x)(eq (car x) 10)) (entget ename)) ) ) ) @+
  17. Salut J'ai un lisp qui répond exactement à ta demande. Pouvoir indicer plusieurs plans dans un fichier tout en ayant des indices différents par plan. J'avais dans l'idée de l'adapter pour qu'il puisse fonctionner sur n'importe quel type de cartouche. Mais c'est comme ma présence sur le forum, le temps me manque. Donc, si tu me mets à disposition ton cartouche, j'adapte le lisp. Si ce n'est pas possible, je peux le mettre à disposition, mais à toi de l'adapter. ps : En cas de dépassement d'indice, style je ne peux aller que jusqu'a D, c'est l'indice n°2 qui est écrasé et ainsi de suite. Le premier est toujours conservé. pps : Le lisp ne gére que les indices 0, A, B, C, etc... @+
  18. Patrick_35

    vla-put-

    Salut Olivier a raison. Pour changer les points d'un arc, cela se calcul. Tu as le centre (Center), l'angle de départ (StartAngle), l'angle d'arrivée ou de fin (EndAngle) et son rayon (Radius). Si tu tests StartPoint ou EndPoint de la même manière que le centre de l'arc mais sur une ligne, tu verras que cela fonctionne. @+
  19. Patrick_35

    vla-put-

    Salut Deux exemples pour changer le centre d'un arc de cercle. Selection de l'arc de cercle (setq ent (vlax-ename->vla-object (car (entsel)))) Changer son centre en cliquant à l'écran Méthode 1 --> Avec une liste simple de coordonnées (vlax-put ent 'center (getpoint)) Méthode 2 --> En transformant la liste de coordonnées en vla (vla-put-center ent (vlax-3d-point (getpoint))) @+
  20. Salut Patrick m'a tout donné pour que je puisse tout remettre en ordre. Comme en ce moment, je suis beaucoup en déplacement, le temps me manque. Mais c'est promis, dès que je peux, je remets tout en ligne. @+
  21. Salut Déjà avec COND (cond ((eq (vla-get-TagString att) "ITEM") (vla-put-TextString att item_final)) ) ((eq (vla-get-TagString att) "NB") (vla-put-TextString att "1")) ) ((eq (vla-get-TagString att) "DN") (vla-put-TextString att dn_final)) ) ((eq (vla-get-TagString att) "LONG.") (vla-put-TextString att longueur_final)) ) ((eq (vla-get-TagString att) "PN") (vla-put-TextString att pn_final)) ) ((eq (vla-get-TagString att) "TYPE") (vla-put-TextString att type_final)) ) ((eq (vla-get-TagString att) "FACE") (vla-put-TextString att face_final)) ) ((eq (vla-get-TagString att) "ELEVATION") (vla-put-TextString att elev_final)) ) ((eq (vla-get-TagString att) "DESIGNATION") (vla-put-TextString att design_final)) ) ((eq (vla-get-TagString att) "OBSERVATION") (vla-put-TextString att obs_final)) ) ) Avec une liste (setq lst (list (cons "ITEM" item_final) (cons "NB" "1") (cons "DN" dn_final) (cons "LONG" longueur_final) (cons "PN" pn_final) (cons "TYPE" type_final) (cons "FACE" face_final) (cons "ELEVATION" elev_final) (cons "DESIGNATION" design_final) (cons "OBSERVATION" obs_final) ) ) (and (setq ele (assoc (vla-get-TagString att) lst)) (vla-put-TextString att (cdr ele)) ) En plus subtile en jouant avec les variables Les Tag de tes attributs doivent avoir le même nom que les variables (setq ITEM 0 NB 1 DN 2 LONG 3 PN 4) (eval (read (vla-get-TagString att))) Un exemple si le TAG = "NB", la valeur retournée est 1 ps : gile à été plus rapide, mais comme il y a d'autres solutions ;) @+
  22. Patrick_35

    DISPARITION D'IMAGE

    Salut Si ça se trouve, c'est un problème de mémoire. Quand Autocad n'a plus assez de mémoire, la première chose qui disparait c'est les images. @+
  23. Patrick_35

    Fonction erreur

    Salut Un exemple de code qui interdit l'utilisation de la touche ESC mais qui permet de sortir du lisp en tapant "COMMAND" @+
  24. Salut D'après ce que je lis, dans la routine, tu as le 1er argument pour définir le dessin dans lequel tu récupères tes infos et le 2em est une liste qui indique la table + les éléments de la tables à importer Un exemple pour importer des calques 001&002 ainsi que les blocs "Bloc_001"&"Bloc_002" du dessin Mon_Dessin.dwg du répertoire C:\rep_1 (Steal "C:\\rep_1\\Mon_Dessin.dwg" '(("Layers" ("001" "002")) ("Blocks" ("Bloc_001" "Bloc_002")))) ps : non testé, j'ai juste regardé les explications. @+
  25. Salut Tu peux jouer avec la variable SDI @+
×
×
  • 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é