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. A mon avis, il doit manquer une parenthèse Le lisp modifié J'ai ajouté la commande colorp qui utilise la couleur 7 @+
  2. Tu as posté une routine contenant les lisps COLORX COLORXREF COLORXL COLORXREFL mip:layer-status-restore mip:layer-status-save ChangeXrefAllObjectsColor ChangeAllObjectsColor Il suffit de charger ces routines. @+
  3. Alors, au plus simple (defun C:COLORX (/ doc col) (vl-load-com) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (mip:layer-status-save) (if (setq col [surligneur][b]Ma_Couleur[/b][/surligneur]) (ChangeAllObjectsColor doc col) ;_ col — color number ) ;_ end of if (mip:layer-status-restore) (vla-endundomark doc) (princ) ) N'oublie pas de faire une sauvegarde du lisp auparavant @+
  4. Salut Si tu fais (ChangeAllObjectsColor (vla-get-activedocument (vlax-get-acad-object)) 7) avec SAS, cela devrait fonctionner. ps : pas de calques verrouillés et couleur 7 utilisée nb : il est possible d'utiliser ObjectDbx, a toi de voir @+
  5. Patrick_35

    Lisps de Patrick_35

    Ah oui, je n'avais pas vu Si tu lances le lisp, tout fonctionne correctement. C'est dans mes manips/debug du lisp que j'ai dû me planter quelque part. @+
  6. Salut Tu as regardé la commande _find ? Tu peux même remplacer du texte des des attributs @+
  7. Salut Pour compléter la réponse de (gile), si tu ne veuc pas de retour, tu ajoutes un silence en fin de lisp --> princ Exemple (defun une_fonction() (defun ma_fonction() 1 ) (setq ma_variable (ma_fonction)) (princ) ; silence ) @+
  8. Salut (setvar "SNAPUNIT" '(20 20)) Une astuce pour trouver la syntaxe, pense à getvar @+
  9. Ah oui, tu as raison Sinon, avec la calculatrice depuis les propriétés (x,y ou z). Tu peux cliquer "distance entre deux points" pour obtenir une distance que tu divises ensuite par ta valeur pour obtenir ton coef que tu appliques ensuite. Ton facteur d'échelle x, y ou z est alors modifié En lisp, c'est les codes dxf 41,42 ou 43 (x,y,z) qu'il faut modifier. @+
  10. Salut Tu as tout ce qu'il faut dans la commande echelle ? @+
  11. Patrick_35

    reseau avec un angle

    Dans la commande -reseau (moins + reseau), tu trouves l'angle où ? @+
  12. Patrick_35

    reseau avec un angle

    Salut C'est exacte, tu n'as pas l'angle, même en vlisp (setq ent (vlax-ename->vla-object (car (entsel)))) (vla-arrayrectangular ent 3 3 1 3.0 3.0 0.0) Il va falloir calculer chaque point par exemple avec la fonction polar @+
  13. Patrick_35

    Lisps de Patrick_35

    Est-ce pour les mêmes raisons ? Merci encore, Cela est probable. Il faudrait refaire la manip. @+
  14. Patrick_35

    Lisps de Patrick_35

    Hello everybody ludo07 Tu as de bonnes habitudes. Il y a bien un problème avec ton dernier fichier d'essai. Je ne comprends pas d'où vient le problème. Du coup, j'ai fais mon propre fichier de test, et tout fonctionne correctement, même en utilisant ta manière de travailler Lili Tu as par exemple un fichier bloc que l'on appelle lili2006.dwg Tu insères ce bloc en tant que xref dans un fichier nommé lui aussi lili2006 (mais pas au même emplacement que le fichier inséré, histoire de varier les plaisirs) Tu as une référence circulaire. @+
  15. Patrick_35

    Lisps de Patrick_35

    Salut Une référence circulaire est une formule qui fait appel à son propre résultat. Ce qui veut donc dire que tu as un bloc dans le dessin qui se réfère à lui-même et provoque donc une erreur Pas plus que ça ;) Je suis si raleur que ça ? :cool: , donc un bon français :D @+
  16. Patrick_35

    Lisps de Patrick_35

    Grumf J'ai donc revu la partie de l'analyse du gabarit (que j'ai optimisé, car on évolue dans les techniques) et cela ne devrait plus poser de problèmes. Donc, la nouvelle version. @+
  17. Si tu passes, je veux bien payer la bolée :D @+
  18. Salut J'ai essayé de faire quelque chose (defun c:soul(/ ent pos txt) (while (setq ent (entsel)) (setq ent (entget (car ent))) (and (member (cdr (assoc 0 ent)) '("TEXT" "MTEXT")) (progn (setq txt (cdr (assoc 1 ent))) (cond ((eq (cdr (assoc 0 ent)) "TEXT") (if (vl-string-search "%%U" (strcase txt)) (progn (while (vl-string-search "%%U" txt) (setq txt (vl-string-subst "" "%%U" txt)) ) (while (vl-string-search "%%u" txt) (setq txt (vl-string-subst "" "%%u" txt)) ) ) (setq txt (strcat "%%U" txt "%%U")) ) ) (T (if (vl-string-search "\\L" (strcase txt)) (progn (while (setq pos (vl-string-search "{\\L" txt)) (setq txt (vl-string-subst "" "{\\L" txt) txt (vl-string-subst "" "}" txt pos) ) ) (while (setq pos (vl-string-search "\\L" txt)) (setq txt (vl-string-subst "" "\\L" txt)) ) (while (setq pos (vl-string-search "\\l" txt)) (setq txt (vl-string-subst "" "\\l" txt)) ) ) (progn (while (vl-string-search "{" txt) (setq txt (vl-string-subst "" "{" txt)) ) (while (vl-string-search "}" txt) (setq txt (vl-string-subst "" "}" txt)) ) (setq txt (strcat "{\\L" txt "}")) ) ) ) ) (setq ent (subst (cons 1 txt) (assoc 1 ent) ent)) (entmod ent) ) ) ) (princ) ) Nb : Si un texte est déjà souligné (même partiellement), le soulignement disparaît d'abord. @+
  19. Salut Tu peux aussi utiliser comme justification de texte --> aligné @+
  20. Patrick_35

    date -> cdate

    Salut (menucmd "M=$(edtime,$(getvar,date),DD/MO/YY)") @+
  21. Patrick_35

    Lisps de Patrick_35

    J'y vois plus clair avec des exemples Donc, le lisp modifié @+
  22. Pas de chance, pour rester compréhensible, pas de vla ;) Donc, en vla (vla-getxdata (vlax-ename->vla-object (car (entsel))) "" 'code 'lst) (mapcar '(lambda(x) (vlax-variant-value (cdr x)) ) (vl-remove-if-not '(lambda(x) (eq (car x) 1003) ) (mapcar 'cons (vlax-safearray->list code) (vlax-safearray->list lst) ) ) ) @+
  23. Salut Ou encore GEF @+
  24. Ah oui, on va reprendre dès le début. On va rechercher la liste des calques, qu'importe que l'on soit en EO ou EP Pour afficher la liste des calques (xref compris) (defun liste_calques(/ lay lst) (setq lay (tblnext "layer" T)) (while lay (setq lst (cons (cdr (assoc 2 lay)) lst) lay (tblnext "layer") ) ) (reverse lst) ) Pour afficher la liste des calques sans les xrefs (defun liste_calques(/ lay lst) (setq lay (tblnext "layer" T)) (while lay (if (zerop (logand (cdr (assoc 70 lay)) 16)) (setq lst (cons (cdr (assoc 2 lay)) lst)) ) (setq lay (tblnext "layer")) ) (reverse lst) ) Cette ligne de code est pour déterminer les calques qui sont gelés dans une fenêtre de présentation (d'où la sélection pour l'exemple) (mapcar '(lambda(x)(cdr (assoc 2 (entget (cdr x))))) (vl-remove-if-not '(lambda(x)(eq (car x) 331)) (entget (car (entsel))))) Je vais faire la traduction de la ligne de code On sélectionne une fenêtre (setq sel (entget (car (entsel)))) L'instruction suivante (setq lst (vl-remove-if-not '(lambda(x)(eq (car x) 331)) sel)) Pourrait se traduire (foreach ent sel (if (eq (car ent) 331) (setq lst (cons ent lst)) ) ) Et celle-ci (mapcar '(lambda(x)(cdr (assoc 2 (entget (cdr x))))) lst) Pourrait se traduire (foreach ent lst (setq tab (cons (cdr (assoc 2 (entget (cdr ent)))) tab)) ) ps : Bonus vient de passer ;) @+
  25. Salut -xref ? @+
×
×
  • 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é