-
Compteur de contenus
2 160 -
Inscription
-
Dernière visite
-
Jours gagnés
16
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par bryce
-
N'existe pas sur LT... ;)
-
Bonjour, En rajoutant cette ligne dans le pgp puis en relançant AutoCAD, ça devrait fonctionner : F, *-FENETRES Je ne sais pas pourquoi, mais les commandes anglaises ne fonctionnent pas dans le pgp. :unsure:
-
Tout dépend de ce que toi tu appelles une biblio, car dans AutoCAD ça n'existe pas, et il y a plusieurs façons de gérer une collection de blocs. Quand tu parles de biblio, est-ce que tu parles d'une palette d'outils ? d'un fichier qui contient tous tes blocs ? d'un dossier qui contient tous tes blocs sous forme de fichiers séparés ? Je crée mon bloc dans un fichier, ensuite je prend mon bloc et je l'insére dans ma biblio Concrètement, quelles sont exactement les opérations que tu effectues ?
-
Ok, je viens de voir ce qui pose problème... Dans le fichier test que tu as posté par exemple, tu as des blocs imbriqués : quand on décompose par exemple le bloc COUDE PVC Ø200 22°FF (sans attributs), on obtient un bloc COUDE Ø200 22°FF avec attributs... <_< L'extraction ne prend pas en compte les blocs imbriqués. Comment insères-tu tes blocs ? Si tu as une bibliothèque sous forme de fichiers individuels (un fichier = un bloc), ces fichiers ne doivent pas eux-même contenir un bloc.
-
Certains de tes blocs ne comportent aucun attribut, et donc ne seront pas extraits. Je ne sais pas quoi te dire de plus... :unsure:
-
Le dessin que tu as posté contient 2 références de blocs (CULOTTE Y Ø200, et COUDE PVC Ø200 22°FF), qui ne comportent aucun attribut, et ne seront donc pas extraits... Dans la boîte de dialogue "Insérer" par contre, on trouve 2 blocs avec des noms légèrement différents (CULOTTE Y Ø 200, et COUDE Ø200 22°FF), qui eux comportent des attributs, mais qui ne sont pas insérés dans le dessin. ;)
-
Bonjour, L'extraction d'attributs sur LT ne prend en compte que les blocs avec attributs, ça vient peut-être de là ? Je te suggère d'essayer avec ScanDXF. :)
-
Bonjour, Il est tout à fait possible d'obtenir un profil à partir d'un MNT en utilisant des commandes standard AutoCAD, même si c'est sans doute un peu plus fastidieux qu'avec un applicatif spécialisé. Un exemple de solution en partant d'un MNT constitués de Faces 3D : - convertir les faces en surfaces (commande CONVENSURFACE) - mettre en place un plan de coupe (commande PLANDECOUPE) - générer une coupe 2D à partir du plan de coupe (commande PLANCOUPEVSBLOC, dans les paramètres n'afficher que les limites d'intersection). Sinon ça doit aussi exister en Lisp je suppose... :unsure:
-
Bonjour, Vas-y, envoie ! :P (brice chez creao point fr si tu ne veux pas le poster publiquement)
-
Bonjour, Voici un lien vers une réponse à une question similaire, qui t'aidera peut-être un peu : http://cadxp.com/index.php?/topic/30038-creation-de-macros/page__view__findpost__p__162722 Si tu veux creuser le sujet, une formation pourrait être profitable. ;)
-
Bonjour, Je n'ai pas regardé le code en détail, mais n'oublie pas que les XLINE ont une longueur infinie. Utiliser des fonctions comme (vlax-curve-getEndParam) sur ce type d'objet n'est probablement pas une bonne idée... ;)
-
faire des métrés ou mesurer un groupe de polylignes
bryce a répondu à un(e) sujet de gvillain dans AutoCAD LT 2012
Bonjour, Je ne connais pas Mensura, mais avec AutoCAD LT seul, tu ne pourras pas faire grand chose. Tout au plus une macro qui te donne une longueur cumulée après avoir cliqué sur tous les objets un par un (fais une recherche dans la section concernée). Je te suggère de tester ScanDXF. ;) -
Bonjour, A ma connaissance, la seule différence entre accrochages 2D et 3D est que les accrochages 3D ne fonctionnent que sur des objets 3D (solides, surfaces...). Les accrochages standards eux, fonctionnent sur tous les objets (y compris 3D).
-
Bonjour, Tu peux essayer avec le Lisp ci-dessous, que j'avais écrit en réponse à une autre demande sur le forum. Ça me semble correspondre à ce que tu as besoin de faire. Il nécessite un fichier txt contenant sur chaque ligne le nom d'un bloc à remplacer et le nom du bloc de remplacement, séparés par un point-virgule. ancienbloc;nouveaubloc old;new aaa;bbb ccc;ddd Tu pourras créer ce fichier depuis Excel assez facilement je pense. Évidemment, les nouveaux blocs devront soit exister dans le dessin, soit se trouver dans un chemin de recherche d'AutoCAD. (defun c:SWAPBLOCKS ( / acdoc ms *error* plist sep f l flst i ob nb ss vlnb ) ; Caractère de séparation entre l'ancien bloc et le nouveau dans le fichier texte: (setq sep ";") ; Liste des propriétés de l'ancien bloc à appliquer au bloc de remplacement ; (l'échelle en X, Y et Z et l'angle de rotation sont récupérés d'office): (setq plist '("Layer" "TrueColor" "Linetype" "LinetypeScale" "LineWeight")) (vl-load-com) (setq acdoc (vla-get-activedocument (vlax-get-acad-object)) ms (vla-get-modelspace acdoc)) (defun *error* (msg) (and msg (or (member (strcase msg) '("FUNCTION CANCELLED" "QUIT / EXIT ABORT" "FONCTION ANNULEE" "QUITTER / SORTIR ABANDON")) (princ (strcat "\nErreur : " msg)) ) ) (if ss (setq ss nil)) (vla-endundomark acdoc) (princ) ) (vla-startundomark acdoc) (setq flst '() f (getfiled "" "" "txt;csv;prn" 4)) (if (and f (setq f (open f "r"))) (progn (while (setq l (read-line f)) (setq flst (cons l flst)) ) (close f) (setq flst (reverse flst)) ) ) (foreach l flst (setq i (vl-string-search sep l) ob (substr l 1 i) nb (substr l (+ i 2))) (princ (strcat "\n\nRemplacement de " ob " par " nb ":")) (setq ss (ssget "_X" (list (cons 0 "INSERT")(cons 2 ob)(cons 410 "Model") ))) (if ss (if (or (tblsearch "BLOCK" nb) (setq nb (findfile (strcat nb ".dwg")))) (progn (setq i 0) (repeat (sslength ss) (setq ob (vlax-ename->vla-object (ssname ss i))) (setq vlnb (vla-insertblock ms (vla-get-InsertionPoint ob) nb (vla-get-XScaleFactor ob) (vla-get-YScaleFactor ob) (vla-get-ZScaleFactor ob) (vla-get-Rotation ob))) (foreach p plist (eval (read (strcat "(vla-put-" p " vlnb (vla-get-" p " ob))"))) ) (vla-delete ob) (setq i (+ 1 i)) );repeat (setq ss nil) (princ (strcat "\n" (itoa i) " blocs remplacés.")) );progn (princ (strcat "\nBloc " nb " non trouvé, remplacement non effectué.")) );if (princ (strcat "\nAucun bloc " ob " à remplacer.")) );if ss );foreach (*error* nil) )
-
Bonjour, Nouvelle version dispo. Beta 12 - correction d'un bug lors de l'export en CSV de textes multilignes contenant des sauts de ligne - correction d'un bug : dernière rangée de l'onglet Entités manquante lors de l'export en CSV/Excel - les coordonnées X, Y et Z des textes correspondent au point d'alignement (point de justification) au lieu du point d'insertion - ajout d'une colonne pour le facteur de largeur des textes.
-
Le but du Lisp était justement d'effacer les blocs insérés dans le dessin. ;)
-
Bonjour, Oui, "test" n'était pas un choix très judicieux comme nom, désolé... :P Par contre en renommant la fonction comme tu l'as fait et en rechargeant le Lisp, il n'y a pas de raison qu'il te réponde "commande inconnue". :blink: Tu n'aurais pas enlevé le c: devant le nom par hasard ? Pourrais-tu réessayer avec le code ci-dessous ? (defun c:TESTPURGE( / ss i b bl ) (if (setq ss (ssget '((0 . "INSERT")))) (progn (setq i 0) (repeat (sslength ss) (setq b (ssname ss i) bl (entget B)) (if (= "*X" (substr (cdr (assoc 2 bl)) 1 2) ) (entdel B) ) (setq i (1+ i)) ) ) ) (princ) )
-
Pareil que Tramber, pour moi "rien/le néant" est forcément inférieur à "quelque chose". <_<
-
Bonjour, Les blocs dont le nom commence par * sont des blocs anonymes, c'est normal qu'ils n'apparaissent pas dans la boîte de dialogue "Insérer". Peut-être qu'un petit Lisp t'aidera à te débarrasser de tes blocs *Xn (des hachures a priori) : defun c:test( / ss i b bl ) (if (setq ss (ssget '((0 . "INSERT")))) (progn (setq i 0) (repeat (sslength ss) (setq bl (entget (setq b (ssname ss i)))) (if (= "*X" (substr (cdr (assoc 2 bl)) 1 2) ) (entdel B) ) (setq i (1+ i)) ) ) ) (princ) )
-
Bonjour, Ca prête un peu à confusion en effet... A priori le but est simplement de créer une boucle infinie, afin que les commandes _dimordinate et _ddedit se répètent indéfiniment. En effet, c:nu sera toujours évalué comme "non nil". Ce serait peut-être plus clair comme ça : (while T (command "_dimordinate" pause pause) (command "_ddedit" "_l" "") ) T (true) étant toujours vrai, la boucle while ne sera jamais interrompue (sauf avec Echap bien sûr).
-
Bonjour, C'est effectivement une "nouveauté" très énervante d'AutoCAD 2013... :angry: Je l'avais d'ailleurs signalé en tant que bug lors de la phase Beta, mais bon... <_< La seule "solution" que j'ai trouvée, c'est de détacher la ligne de commande (la rendre flottante), dans ce cas le texte passe bien à la ligne quand on fait F2 (mais pas avec Ctrl+F2).
-
Bonjour, Alors ça doit être celui-ci: http://www.creao.fr/uploads/lisp/majZ.lsp ;)
-
Bonjour, Le zoom Tout affiche la zone correspondant aux limites du dessin (Format > Limites du dessin), sauf quand le dessin s'étend au-delà des limites. Dans ce cas, il fait la même chose que le zoom Etendu.
-
Bonjour, Eric, tu as quelles versions de Windows et d'Excel ? Christian, merci pour le retour, je vais regarder tout ça de plus près.
-
Si cette variable existe, je ne la connais pas... :unsure:
