-
Compteur de contenus
2 764 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par Bred
-
en créant un "Wbloc" de ta partie à "coller", l'origine (d'insertion) est là où tu le désirs.
-
... où tu créés un "Wbloc".
-
Salut, Je n'ai jamais testé, mais je ne vois pas pourquoi ça ne fonctionnerais pas (à la version d'Autocad près). Par contre il faut aussi charger les .fas
-
Salut, Tu es sous 2005, tu ne pourras donc pas faire de véritable surface "gauche". Mais tu peux chercher dans les lisps et messages de (gile) tu trouveras plus que ton bonheur !!!!
-
il faut juste changer ce qu'il y a en gras : (defun c:x10 (/ COORDZ1 COORDZ1+ I LA LB LST LST-P LST-VLA-SEL LSTCOORD SEL) (setq sel (ssget '((0 . "[b]POINT[/b]")))) (foreach n (vl-remove-if 'listp (mapcar 'cadr (ssnamex sel))) (setq lst-vla-sel (append (list (vlax-ename->vla-object n)) lst-vla-sel)) ) (repeat (setq i (length lst-vla-sel)) (setq lstcoord (vlax-safearray->list (vlax-variant-value (vla-get-Coordinates (nth (setq i (1- i)) lst-vla-sel)))) coordz1 (nth 2 lstcoord) coordz1+ (* 10 coordz1) la (reverse (cdr (member coordz1 (reverse lstcoord)))) lb (cdr (member coordz1 lstcoord)) lst-p (append la (list coordz1+) lb) lst (vla-put-Coordinates (nth i lst-vla-sel) (vlax-make-variant (vlax-SafeArray-fill (vlax-make-SafeArray vlax-vbDouble (cons 0 (1- (length lst-p)))) lst-p))) ) ) (princ (strcat "\n" (rtos (length lst-vla-sel)) " Polyligne(s) traité(s)")) (princ) ) Attention : pour ces 2 lisp, si les coordonnées Z = 0, ben 0 x 10 = 0 !!! [Edité le 31/5/2007 par Bred]
-
Jai édité mon message précédent en surlignant le multiplicateur qui permet de x10 la valeur coordonnées z du point. modifie ce chiffre si tu rencontres le même problème mais avec une valeur différente...
-
Salut, (j'attends toujour ma Guiness moi...) test ça : (fait rapidement, peut-être simplifié) (defun c:x10 (/ COORDZ1 COORDZ1+ I LA LB LST LST-P LST-VLA-SEL LSTCOORD SEL) (setq sel (ssget '((0 . "POLYLINE")))) (foreach n (vl-remove-if 'listp (mapcar 'cadr (ssnamex sel))) (setq lst-vla-sel (append (list (vlax-ename->vla-object n)) lst-vla-sel)) ) (repeat (setq i (length lst-vla-sel)) (setq lstcoord (vlax-safearray->list (vlax-variant-value (vla-get-Coordinates (nth (setq i (1- i)) lst-vla-sel)))) coordz1 (nth 2 lstcoord) coordz1+ (* [surligneur]10 [/surligneur]coordz1) la (reverse (cdr (member coordz1 (reverse lstcoord)))) lb (cdr (member coordz1 lstcoord)) lst-p (append la (list coordz1+) lb) lst (vla-put-Coordinates (nth i lst-vla-sel) (vlax-make-variant (vlax-SafeArray-fill (vlax-make-SafeArray vlax-vbDouble (cons 0 (1- (length lst-p)))) lst-p))) ) ) (princ (strcat "\n" (rtos (length lst-vla-sel)) " Polyligne(s) traité(s)")) (princ) ) [Edité le 31/5/2007 par Bred]
-
(gile) est venu.... (gile) à écris ... (gile) m'a vaincu !!!! merci ! Donc, déjà, pour le rectangle : (écartement de 20% / hauteur du texte) (defun c:rectxt (/ ACDOC FACT HAUT I LARG LAY LST-P PLINE PT PTS SEL) (if (= (getvar "CVPORT") 1) (setq AcDoc (vla-get-PaperSpace (vla-get-ActiveDocument (vlax-get-acad-object)))) (setq AcDoc (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object)))) ) (setq sel (ssget '((0 . "MTEXT")))) (repeat (setq i (sslength sel)) (setq pt (cdr (assoc 10 (entget (ssname sel (setq i (1- i)))))) larg (cdr (assoc 42 (entget (ssname sel i)))) haut (cdr (assoc 43 (entget (ssname sel i)))) lay (cdr (assoc 8 (entget (ssname sel i)))) fact (* (cdr (assoc 40 (entget (ssname sel i)))) 0.20) lst-p (list (- (car pt) fact)(+ (cadr pt) fact)(caddr pt) (+ (+ (car pt) larg) fact) (+ (cadr pt) fact) (caddr pt) (+ (+ (car pt) larg) fact) (- (- (cadr pt) haut) fact) (caddr pt) (- (car pt) fact) (- (- (cadr pt) haut) fact) (caddr pt)) pts (vlax-make-variant (vlax-SafeArray-fill (vlax-make-SafeArray vlax-vbDouble (cons 0 (1- (length lst-p))))lst-p)) pline (vla-add3DPoly AcDoc pts)) (vla-put-closed pline :vlax-true) (vla-put-layer pline lay) ) ) ... et merci à Bonuscad,... je n'ai pas assez approfondis sa proposition ! [Edité le 30/5/2007 par Bred]
-
Une chose agaçante : on perd beaucoup de chose en 3D de 2008/2007 à anterieur.. Exemple : - Perspective - Rendus - Lumière ....
-
(désolé, je polue un peu le post, mais je tente en parrallèlle de créer une routine pourvant se passer des express-tool...) Je me suis emballer trop vite : textbox ne fonctionne que pour des types "simplex..." ... pffff....
-
Bonuscad : textbox !!!! Vu ! merci ! (je ne connaissais pas !)
-
donc sans griffes (je ne savais pas que ça s'appelait comme ça), En fait le nom exact est "poignées", c'est par (mauvaise) habitude que j'appel "griffes".... Bonne remarque !
-
Pour récupérer l'emcombrement "net" du texte : J'explose le Mtext et je récupère le GetBoundingBox du texte simple. Car le GetBoundingBox d'un Mtext est le rectangle formé par les griffes du Mtext, et qui n'est pas forcément l'emprise du Mtext... et vla-explode ne fonctionne pas sur du mtext .... ... c'est clair ? :casstet: :(
-
Salut, Alors je suis un peu dubitatif, car c'est plus compliqué que je n'aurais pensé... Les express-tool utilise une commande qui leur est propre pour extraire "l'emcombrement" du texte... acet-geom-textbox est c'est là difficulté : je n'arrive pas à la reproduire facilement .... Donc, j'ai bidouillé un truc pour faire un rectangle "propre" avec une marge de 10% de la hauteur du texte... Mais je suis obligé de passer par un (command "_explode" ...), et si le Mtext est sur plusieur ligne, ça ne prends que la dernière ligne .... :mad: c'est pas simple .... je vais approfondir le truc ... (la mise sur le calque est le plus simple) (defun c:rectxt (/ A ACDOC B FACT I LAY LST-P LST-VLA-SEL MAXPOINT MINPOINT PLINE PTS SEL TXT) (setq sel (ssget '((0 . "MTEXT"))) lst-vla-sel nil lst-p nil) (if (= (getvar "CVPORT") 1) (setq AcDoc (vla-get-PaperSpace (vla-get-ActiveDocument (vlax-get-acad-object)))) (setq AcDoc (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object)))) ) (foreach n (vl-remove-if 'listp (mapcar 'cadr (ssnamex sel))) (setq lst-vla-sel (append (list (vlax-ename->vla-object n)) lst-vla-sel)) ) (repeat (setq i (length lst-vla-sel)) (setq txt (vla-copy (nth (setq i (1- i)) lst-vla-sel))) (command "_explode" (vlax-vla-object->ename txt)) (setq txt (vlax-ename->vla-object (entlast)) fact (* (vla-get-Height txt) 0.1) lay (vla-get-layer txt)) (vla-GetBoundingBox txt 'minpoint 'maxpoint) (setq a (vlax-safearray->list minpoint) b (vlax-safearray->list maxpoint)) (vla-delete txt) (setq lst-p (append (list (- (car a) fact)(- (cadr a) fact)(caddr a)) (list (+ (car b) fact) (- (cadr a) fact) (caddr a)) (list (+ (car b) fact)(+ (cadr b) fact)(caddr b)) (list (- (car a) fact)(+ (cadr b) fact)(caddr a)) ) ) (setq pts (vlax-make-variant (vlax-SafeArray-fill (vlax-make-SafeArray vlax-vbDouble (cons 0 (1- (length lst-p))))lst-p)) pline (vla-add3DPoly AcDoc pts)) (vla-put-closed pline :vlax-true) (vla-put-layer pline lay) ) )
-
Le 5, il a la main où ??? :exclam: En tous cas, ça la fait rigoler ! Et ceux qui sont deriière elle ?
-
Salut, Si tu as ça c'est que tu les a déssiné comme ça. donc il faut déjà au départ désiné juste, car même si ça peut être négligeable pour 1 distance, avec les cumuls tu risques de te retrouver avec n'importe quoi ! Il faut malheuresement revoir tout ton dessin...
-
Peut être... mais j'ai été incapable de créer un gabarit comme les anciennes versions : en spécifiant l'extration d'attibuts fixe, ok, mais dès que les attributs sont modifiable, il faut modifier ce gababrit et allez les chercher "à la main !!!" à chaque nouvel entrée... ce qui est vraiment une perte de temps....
-
J'ai l'impression qu'il y a un quiprocos : en fait tu ne veux pas inserer un bloc à partir d'une ibliothèque, tu veux aller chercher un bloc contenus dans un plan : ça, tu peux le faire avec le design-center... et ce n'est pas possible (que je sache) en passant par "inserer", sauf si tu n'as pas de bibliothèque, que tu veux inserer un fichier contenant ce bloc afin qu'il soit dans la collection du nouveau, effacer le fichier précédemet inserer, et inserer le bloc ... c'est tordus.... Pour ton problème de fermeture, ça ne m'est jamais arrivé. As-tu le SP2 ?
-
Je ne vois pas ce que tu veus faire avec la boite de dialogue que tu ne peux faire (si tu veux en automatique) avec la console.... ou fait des pauses ....
-
Ah oui, tiens... à force de faire du vlisp on en oublis l'autolisp... désolé !... j'ai vraiment répondu de travers ! :calim:
-
ou vla-insertblock ?
-
J'avoue avoir du mal à comprendre : Si tu veux insérer un bloc en lisp sans boite de dialogue, c'est -inserer. Si tu veux le mettre à jour, il faut mettre un "=" à la fin du nom du bloc.
-
Salut, Comme beacoup de commande Autocad, pour ne pas avoir de boite de dialogue, il faut mettre un "-" devant la commande : -inserer
-
Salut _vports ou dans la barre d'outils "fenêtres".
-
Blocs dynamiques sur des objets 3D
Bred a répondu à un(e) sujet de jeanpoco dans Pour aller plus loin en LISP
non... p'têtre un jour ...
