pascal19
Membres-
Compteur de contenus
244 -
Inscription
-
Dernière visite
-
Jours gagnés
1
pascal19 a gagné pour la dernière fois le 2 août 2013
pascal19 a eu le contenu le plus aimé !
Contact Methods
-
Website URL
http://
-
Yahoo
0
pascal19's Achievements
Newbie (1/14)
2
Réputation sur la communauté
-
Merci, je vais tester...
-
GRRR - Hachure --> Hachures separees : la Cata
pascal19 a répondu à un(e) sujet de lecrabe dans AutoCAD 2014
Bonjour, J'ai un LISP qui me permet de faire x hachures solides associatives à partir d'une sélection de x polylignes fermées, mais je ne l'ai jamais testé sur autant d'objet... (defun C:hpol () (setvar "cmdecho" 0) (prompt "\nchoix des polylignes...") (setq grh (ssget)) (setq cont 0) (setq essai (sslength grh)) (setq essai2 (ssname grh cont)) (repeat essai (setvar "HPASSOC" 1) (command "_.BHATCH" "_p" "SOLID" "_s" essai2 "" "") (setq cont(+ 1 cont)) (setq essai2 (ssname grh cont)) ) ) -
Bonjour, Comment peut-on redonner à un attribut sa valeur par défaut quand une autre valeur lui a été affecté ?
-
merci à tous!
-
OK merci J'ai donc récupéré ça: (defun C:BRP (/ *error* el en end head i ss start tail) (or acDoc (setq acDoc (vla-get-activedocument (vlax-get-acad-object))) ) (vla-startundomark acDoc) (defun *error* (m) (and m (not (wcmatch (strcase m) "*CANCEL*,*QUIT*,*EXIT*")) (princ (strcat "\nError: " m)) ) (vla-endundomark acDoc) (princ) ) (if (setq ss (ssget '((0 . "LWPOLYLINE")))) (repeat (setq i (sslength ss)) (setq en (ssname ss (setq i (1- i))) el (entget en) head (vl-remove-if-not '(lambda (x) (vl-position (car x) '(0 100 67 410 8 62 6 370 43 38 39) ) ) el ) head (append head (list '(90 . 2) (cons 70 (logand (cdr (assoc 70 el)) 128)) ) ) tail (member (assoc 10 el) el) start (if (= (logand (cdr (assoc 70 el)) 1) 1) (car tail) ) end (append '((40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0)) (list (assoc 210 el)) ) ) (repeat (1- (cdr (assoc 90 el))) (entmake (append head (mapcar '(lambda (x) (nth x tail)) '(0 1 2 3 4 5)) end ) ) (setq tail (member (assoc 10 (cdr tail)) (cdr tail))) ) (if start (entmake (append head (mapcar '(lambda (x) (nth x tail)) '(0 1 2 3 4)) (list start) end ) ) ) (entdel en) ) ) (vla-endundomark acDoc) (princ) ) C'est preque parfait,il faudrait juste conserver l'échelle de type de ligne de la polyligne source...
-
Bonjour Je cherche à scinder une polyligne en segments de polylignes(pas des lignes)et j'ai fait cette routine avec l'aide de l'historique du forum: (defun C:dpol () (setvar "cmdecho" 0) (setq pld (entsel "\nSélectionnez une polyligne: ")) (setq grh (massoc 10 (entget (car pld)))) (setq lst1 (cdr grh)) (setq pt (car lst1)) (while lst1 (progn (command "coupure" pld "1" pt pt) (setq lst1 (cdr lst1)) (setq pt (car lst1)) (setq pld entlast) ) ) ) (defun massoc (key alst / ret) (foreach p alst (if (= (car p) key) (setq ret (cons (cdr p) ret)) ) ) (reverse ret) ) Mais ça ne marche pas car la commande coupure m'enlève l'entité de départ (pld) , du coup, ça fonctionne que sur le premier sommet. J'ai essayé avec entlast mais comme "coupure" crée 2 entités , ce n'est jamais la bonne...
-
Oui merci, je suis tombé dessus ce matin et j'y ai trouvé ce code (fait par gile évidemment): (defun c:ExplodeMtextInBlocks (/ explodeNestedMtext hasMt) (vl-load-com) (or *acad* (setq *acad* (vlax-get-acad-object))) (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument *acad*))) (or *blocks* (setq *blocks* (vla-get-Blocks *acdoc*))) ;; sous-routine locale (defun explodeNestedMtext (blk / name ref expl lst) (setq name (vla-get-Name blk)) (vla-put-Explodable blk :vlax-true) ;; insérer le bloc en 0,0 (setq ref (vla-InsertBlock (vla-get-ModelSpace *acdoc*) (vlax-3d-point '(0. 0. 0.)) name 1. 1. 1. 0. ) ) ;; décomposer la référence (setq expl (vlax-invoke ref 'Explode)) ;; pour chaque entité résultante, décomposer si c'est un mtext et ajouter le texte à lst (foreach o expl (if (= (vla-get-ObjectName o) "AcDbMText") (progn (vl-cmdf "_.explode" (vlax-vla-object->ename o)) (setq txt (vlax-ename->vla-object (entlast)) expl (cons txt (vl-remove o expl)) lst (cons txt lst) ) ) ) ) ;; supprimer tous les mtextes de la définition (vlax-for o blk (if (= (vla-get-ObjectName o) "AcDbMText") (vla-delete o) ) ) ;; copier les textes dans la définition (vlax-invoke *acdoc* 'CopyObjects lst (vla-Add *blocks* (vlax-3d-point '(0. 0. 0.)) name) ) ;; supprimer la référence et les entités résultant de la décomposition (mapcar 'vla-Delete (cons ref expl)) ) ;; routine principale (vlax-for bloc *blocks* (if (= (vla-get-IsLayout bloc) :vlax-true) ;; traitement des mtextes dans les espaces objet et papier (vlax-for mt bloc (if (= "AcDbMText" (vla-get-ObjectName mt)) (vl-cmdf "_.explode" (vlax-vla-object->ename mt)) ) ) ;; traitement des mtextes dans les blocs (progn (setq hasMt nil) (vlax-for mt bloc (if (= "AcDbMText" (vla-get-ObjectName mt)) (setq hasMt T) ) ) (if hasMt (explodeNestedMtext bloc) ) ) ) ) (princ) ) ça marche mais il semble qu'il y ai un souci de position et d'orientation des textes...
-
C'est ce que je craignais! merci pour votre aide
-
Merci du conseil: (defun c:expmtxt () (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) "AcDbMText") (command "_explode" (vlax-vla-object->ename ent) "") ) ) ) (vla-regen (vla-get-activedocument (vlax-get-acad-object)) acActiveViewport ) ) Mais les textmult dans les blocs restent intacts...
-
Merci mais en faisant: (defun c:expmtxt () (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) "AcDbMText") (setq ent2 (vlax-vla-object->ename ent)) (command "_explode" ent2 "") ) ) ) (vla-regen (vla-get-activedocument (vlax-get-acad-object)) acActiveViewport ) ) cela explose les textmult mais pas ceux contenus dans les blocs, savez-vous pourquoi ?
-
Bonjour Je cherche à exploser les textmult à l'interieur des blocs: (defun c:expmtxt() (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) "AcDbMText") (command "_explode" ent "") ) ) ) (vla-regen (vla-get-activedocument (vlax-get-acad-object)) acActiveViewport) ) J'ai l'erreur suivante: Que faire?
-
Bonjour Changer la police dans le style de texte ne marche pas, mais je pense que tu as raison, la police originale est manquante, elle est replacée à l'ouverture par la police par défaut ce qui génère mon problème... Comment savoir quelle était la police originale ? Comment la charger ?
-
Bonjour Sur des plans issus d'un autre logiciel les caractères contenant un accent et la lettre suivante sont remplacés par un carré Y a-t-il une solution pour remettre les textes comme il faut ? D'autres ont-ils eu le même problème ?
-
ça marche merci beaucoup
-
Au début d'un programme, je voulais charger des types de lignes, j'ai essayé: (if (not (tblsearch "LTYPE" cache2)) (command "-typeligne" "ch" cache2 "Y:/Bibliotheques DAO/applications-autocad/LIN" "" "" "" "" "" "" "" "") ) mais j'ai ce message d'erreur: où est l'erreur ?
