brunomu Posté(e) le 23 mars 2015 Posté(e) le 23 mars 2015 Bonjour le Forum ! Je cherche une commande ou un LISP qui permette de scinder en 2 une cote.Par exemple, j'ai coté les hauteurs de dalle à dalle d'un bâtiment. Je veux détailler cette ligne de cotes en précisant l'épaisseur d'un plancher.Aujourd'hui, je ne sais que créer une nouvelle cote, ou raccourcir une cote existante et créer une cote qui la prolonge. Je préfèrerais : 1/ lancer une commande ou un LISP2/ cliquer sur la cote à scinder3/ cliquer sur un point à coter qui déterminera où couper la cote4/ obtenir 2 cotes au lieu de la cote initiale Quelqu'un sait-il comment faire ? Merci !
bonuscad Posté(e) le 23 mars 2015 Posté(e) le 23 mars 2015 Bonjour, Pas testé en profondeur... (defun c:cut_dim ( / js n ent_dim dxf_ent lremov dxf_cod pt_break p1 p2 p_nw1 p_nw2) (setq js (ssget "_+.:E:S" (list (cons 0 "DIMENSION") (cons 67 (if (eq (getvar "CVPORT") 2) 0 1)) (cons 410 (if (eq (getvar "CVPORT") 2) "Model" (getvar "CTAB"))) ) ) ) (cond (js (setq ent_dim (ssname js 0) dxf_ent (entget ent_dim) lremov nil dxf_cod dxf_ent ) (cond ((or (zerop (rem (cdr (assoc 70 dxf_ent)) 32)) (eq (rem (cdr (assoc 70 dxf_ent)) 32) 1)) (foreach n dxf_cod (if (member (car n) '(2 5 330 -1)) (setq lremov (cons (car n) lremov)))) (foreach m lremov (setq dxf_cod (vl-remove (assoc m dxf_cod) dxf_cod)) ) (entmake dxf_cod) (setq dxf_cod (entget (entlast))) (initget 1) (setq pt_break (trans (getpoint "\nDonnez le point de coupure: ") 1 0) p1 (cdr (assoc 13 dxf_ent)) p2 (cdr (assoc 14 dxf_ent)) p_nw2 (polar p2 (angle p2 pt_break) (distance p2 pt_break)) dxf_ent (subst (cons 14 p_nw2) (assoc 14 dxf_ent) dxf_ent) ) (entmod dxf_ent) (setq p_nw1 (polar p1 (angle p1 pt_break) (distance p1 pt_break)) dxf_cod (subst (cons 13 p_nw1) (assoc 13 dxf_cod) dxf_cod) ) (entmod dxf_cod) ) (T (princ "\nN'est pas une côte alignée, pivotée, horizontale ou verticale.") ) ) ) ) (prin1) ) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
brunomu Posté(e) le 23 mars 2015 Auteur Posté(e) le 23 mars 2015 En 1ère approche, ça marche parfaitement, merci beaucoup !!!
Steven Posté(e) le 24 mars 2015 Posté(e) le 24 mars 2015 Salut bonuscad, Génial, ton lisp :) Par contre, serait-il possible de faire, aussi, le sens inverse; pouvoir sélectionner plusieurs cotes sur la même ligne et n'en faire qu'une seule? Steven________________________________________ Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD. Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD. En rêve; AutoCAD sous Linux.
PHILPHIL Posté(e) le 24 mars 2015 Posté(e) le 24 mars 2015 hello sur EXCHANGE AUTODESK il y a les deux programmes qui existent pour 6 dollarsils fonctionnent tres bien et c'est pas le perou a+ phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
bonuscad Posté(e) le 24 mars 2015 Posté(e) le 24 mars 2015 Par contre, serait-il possible de faire, aussi, le sens inverse; pouvoir sélectionner plusieurs cotes sur la même ligne et n'en faire qu'une seule? De façon très sommaire, car je pense que les controles devrait être beaucoup plus approfondis.Donc bien faire une sélection des cotes seulement concernées par le regroupement. Si quelqu'un veux fiabiliser le code ne vous genez pas... (defun c:join_dim ( / js l_p1 l_p2 n ent_dim dxf_ent) (setq js (ssget (list (cons 0 "DIMENSION") (cons 67 (if (eq (getvar "CVPORT") 2) 0 1)) (cons 410 (if (eq (getvar "CVPORT") 2) "Model" (getvar "CTAB"))) ) ) l_p1 nil l_p2 nil ) (cond (js (repeat (setq n (sslength js)) (setq ent_dim (ssname js (setq n (1- n))) dxf_ent (entget ent_dim) ) (cond ((or (zerop (rem (cdr (assoc 70 dxf_ent)) 32)) (eq (rem (cdr (assoc 70 dxf_ent)) 32) 1)) (setq l_p1 (cons (cdr (assoc 13 dxf_ent)) l_p1) l_p2 (cons (cdr (assoc 14 dxf_ent)) l_p2) ) ) (T (princ "\nN'est pas une côte alignée, pivotée, horizontale ou verticale.") ) ) ) (cond ((and l_p1 l_p2) (foreach el l_p1 (if (and (member el l_p1) (member el l_p2)) (setq l_p1 (vl-remove el l_p1) l_p2 (vl-remove el l_p2)) ) ) (setq dxf_ent (subst (cons 13 (car l_p1)) (assoc 13 dxf_ent) dxf_ent)) (setq dxf_ent (subst (cons 14 (car l_p2)) (assoc 14 dxf_ent) dxf_ent)) (entmod dxf_ent) ) ) (repeat (setq n (sslength js)) (setq ent_dim (ssname js (setq n (1- n)))) (if (not (eq ent_dim (cdar dxf_ent))) (entdel ent_dim)) ) ) ) (prin1) ) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Steven Posté(e) le 24 mars 2015 Posté(e) le 24 mars 2015 Bonuscad, Nickel le lisp :) hello sur EXCHANGE AUTODESK il y a les deux programmes qui existent pour 6 dollarsils fonctionnent tres bien et c'est pas le perou a+ phil Salut Phiphil, Soit, mais si on part sur le principe, on peut presque, pour ne pas dire tout trouver sur Autodesk Exchange Apps.Toutefois, celà peut poser soucis à ceux qui n'y ont pas accès par manque de souscription car tout le monde n'est pas encore sous souscription ou manque de droits administrateur pour installer l'appli, voire blocage du firewall de l'entreprise et on sait très bien que demandé un petit truc au SI de sa boîte peut prendre parfois être décourageant. il est donc quand même cool de pouvoir trouver des lisps développés par la communauté de Cadxp ou autre.Quant au prix des applications dont tu parles (2.95 $ chacune), il est vrai que ça n'ai pas la mer à boire. J'ai déjà acheté des applications sur Autodesk Exchange Apps mais dans le cas présent, du fait que Bonuscad a développé et offert un lisp qui scinde des cotes, je me suis demandé si le fait de pouvoir scinder des cotes, on ne pouvait pas en joindre et maintenant que ces deux lisps sont à disposition, ils pourront toujours servir à qui le souhaite. Bonne journée ;) Steven________________________________________ Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD. Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD. En rêve; AutoCAD sous Linux.
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant