-
Compteur de contenus
6 374 -
Inscription
-
Dernière visite
-
Jours gagnés
30
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par Patrick_35
-
A mon avis, il doit manquer une parenthèse Le lisp modifié J'ai ajouté la commande colorp qui utilise la couleur 7 @+
-
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. @+
-
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 @+
-
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 @+
-
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. @+
-
Salut Tu as regardé la commande _find ? Tu peux même remplacer du texte des des attributs @+
-
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 ) @+
-
Salut (setvar "SNAPUNIT" '(20 20)) Une astuce pour trouver la syntaxe, pense à getvar @+
-
Mise a l\'echelle non uniforme avec référence
Patrick_35 a répondu à un(e) sujet de Fraid dans AutoCAD 2010
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. @+ -
Mise a l\'echelle non uniforme avec référence
Patrick_35 a répondu à un(e) sujet de Fraid dans AutoCAD 2010
Salut Tu as tout ce qu'il faut dans la commande echelle ? @+ -
Dans la commande -reseau (moins + reseau), tu trouves l'angle où ? @+
-
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 @+
-
Est-ce pour les mêmes raisons ? Merci encore, Cela est probable. Il faudrait refaire la manip. @+
-
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. @+
-
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 @+
-
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. @+
-
Souligner un texte en cliquant dessus
Patrick_35 a répondu à un(e) sujet de brunomu dans AutoCAD 2010
Si tu passes, je veux bien payer la bolée :D @+ -
Souligner un texte en cliquant dessus
Patrick_35 a répondu à un(e) sujet de brunomu dans AutoCAD 2010
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. @+ -
Salut Tu peux aussi utiliser comme justification de texte --> aligné @+
-
Salut (menucmd "M=$(edtime,$(getvar,date),DD/MO/YY)") @+
-
J'y vois plus clair avec des exemples Donc, le lisp modifié @+
-
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) ) ) ) @+
-
problème de gèle de claque dans présentation
Patrick_35 a répondu à un(e) sujet de magalie dans AutoCAD 2006
Salut Ou encore GEF @+ -
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 ;) @+
-
lisp ou commande pour detacher xref
Patrick_35 a répondu à un(e) sujet de naito073 dans AutoCAD 2010
Salut -xref ? @+
