DenisHen Posté(e) le 12 avril 2016 Partager Posté(e) le 12 avril 2016 Bonjour à la communauté. Voilà, je pense l'avoir déjà croisé, mais je ne la retrouve plus. Il s'agit d'une routine qui cote les polylignes et écrit sa longueur le long de celle-ci ou au centre. J'ai plusieurs polylignes qui se suivent sur 11km, j'aimerais écrire leurs différentes longueurs au milieu... Si quelqu'un l'a ou sait où elle se trouve, ça m'aiderait beaucoup... Denis... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Tramber Posté(e) le 12 avril 2016 Partager Posté(e) le 12 avril 2016 Il faut créer un champ !Le hic étant qu'à la copie et quand on change d'objet surveillé par le CHAMP, il faut saisir à nouveau sa demande de calcul dans les unités......déplorable.Bref, on peut aussi programmer l'installation du champ je pense. Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.) Lien vers le commentaire Partager sur d’autres sites More sharing options...
DenisHen Posté(e) le 12 avril 2016 Auteur Partager Posté(e) le 12 avril 2016 Bonjour Tramber, et merci de me répondre. Mon problème est que j'ai, juste pour ce dessin, une suite de 162 polylignes. Je me vois mal positionner les 162 champs à la main... J'étais sûr qu'une routine existait. Et je ne vois pas comment programmer ça. Peut-être qu'en m'inspirant de "TotalPerim" de (gile) pour me coller un gros texte au milieu des polylignes En tous cas, merci... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi) Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 12 avril 2016 Partager Posté(e) le 12 avril 2016 Salut, Un petit truc vite fait. Pour placer un texte avec la longueur au milieu de l'entité curviligne (tout type sauf droites et demi-droite bien sûr).Tu peux modifier les valeurs DXF du texte créé (ici, hauteur courante, style "standard" et justification MC) (defun printCurveLength (curve / l p) (setq l (vlax-curve-getDistAtParam curve (vlax-curve-getEndParam curve) ) p (vlax-curve-getPointAtDist curve (/ l 2.)) ) (entmake (list '(0 . "TEXT") (cons 10 p) ; premier point d'alignement (cons 40 (getvar 'textsize)) ; hauteur de texte (cons 11 p) ; deuxième point d'alignement (cons 1 (rtos l 2 2)) ; longueur avec 2 décimales '(7 . "Standard") ; style de texte '(72 . 1) ; justification horizontale '(73 . 2) ; justification verticale ) ) ) Appelle la fonction ci-dessus pour toutes les polylignes 3d sélectionnées(defun c:cmd (/ s i) (if (setq s (ssget '((0 . "POLYLINE") (-4 . "&") (70 . 8)))) (repeat (setq i (sslength s)) (printCurveLength (ssname s (setq i (1- i)))) ) ) ) 1 Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 12 avril 2016 Partager Posté(e) le 12 avril 2016 La même avec un champ dynamique (defun lengthField (curve / l p) (setq l (vlax-curve-getDistAtParam curve (vlax-curve-getEndParam curve) ) p (vlax-curve-getPointAtDist curve (/ l 2.)) ) (entmake (list '(0 . "TEXT") (cons 10 p) ; premier point d'alignement (cons 40 (getvar 'textsize)) ; hauteur de texte (cons 11 p) ; deuxième point d'alignement (cons 1 ; valeur de texte (champ dynamique) (strcat "%<\\AcObjProp Object(%<\\_ObjId " (vla-getObjectIdString (vla-get-Utility (vla-get-ActiveDocument (vlax-get-acad-object)) ) (if (= (type curve) 'VLA-OBJECT) curve (vlax-ename->vla-object curve) ) :vlax-false ) ">%).Length \\f \"%lu2%pr2\">%" ) ) '(7 . "Standard") ; style de texte '(72 . 1) ; justification horizontale '(73 . 2) ; justification verticale ) ) (command-s "_UPDATEFIELD" (entlast) "") ) (defun c:cmd (/ s i) (if (setq s (ssget '((0 . "POLYLINE") (-4 . "&") (70 . 8)))) (repeat (setq i (sslength s)) (lengthField (ssname s (setq i (1- i)))) ) ) ) 1 Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 12 avril 2016 Partager Posté(e) le 12 avril 2016 La même en 'Visual LISP' (pour ceux qui préfèrent). (defun lengthField (curve / text) (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object))) ) (if (= (type curve) 'ENAME) (setq curve (vlax-ename->vla-object curve)) ) (setq text (vla-AddText (vla-ObjectIDToObject *acdoc* (vla-get-OwnerId curve)) (strcat "%<\\AcObjProp Object(%<\\_ObjId " (vla-getObjectIdString (vla-get-Utility *acdoc*) curve :vlax-false ) ">%).Length \\f \"%lu2%pr2\">%" ) (vlax-3d-point '(0. 0. 0.)) (getvar 'textsize) ) ) (vla-put-Alignment text acAlignmentMiddleCenter) (vla-put-TextAlignmentPoint text (vlax-3d-point (vlax-curve-getPointAtDist curve (/ (vlax-curve-getDistAtParam curve (vlax-curve-getEndParam curve) ) 2. ) ) ) ) (command-s "_UPDATEFIELD" (entlast) "") ) 1 Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
DenisHen Posté(e) le 12 avril 2016 Auteur Partager Posté(e) le 12 avril 2016 Salut (gile) Et merci pour tous ces codes ! ! ! C'est vraiment top... Denis... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi) Lien vers le commentaire Partager sur d’autres sites More sharing options...
DenisHen Posté(e) le 13 avril 2016 Auteur Partager Posté(e) le 13 avril 2016 Bonjour à tous. (gile), je ne comprend pas trop, j'ai testé le premier code (celui qui m'intéresse le plus, mais lorsque je choisi mes polylignes et AutoCAD me répond (J'ai renommé la commande, c'est maintenant CotLongPoly) : Commande:CotLongPolyChoix des objets: Spécifiez le coin opposé: 0 trouvé(s)Choix des objets: Spécifiez le coin opposé: 0 trouvé(s), 0 au totalChoix des objets:nilCommande:Je joins à ce poste un exemple de fichier. Merci encore pour votre aide. Denis... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi) Lien vers le commentaire Partager sur d’autres sites More sharing options...
-Olivier- Posté(e) le 13 avril 2016 Partager Posté(e) le 13 avril 2016 Bonjour DenisH, Tu as utilisé des polylignes légères alors que (gile) à fait un code pour de la polyligne 3d (ce qui parait plus logique en topo) Pour obtenir un texte.(defun c:cmd (/ s i) (if (setq s (ssget '((0 . "LWPOLYLINE")))) (repeat (setq i (sslength s)) (printCurveLength (ssname s (setq i (1- i)))) ) ) ) Pour obtenir un champs.(defun c:cmd (/ s i) (if (setq s (ssget '((0 . "LWPOLYLINE")))) (repeat (setq i (sslength s)) (lengthField (ssname s (setq i (1- i)))) ) ) ) Pour le dernier code, je maitrise pas bien le VLISP donc je préfère laissé quelqu'un de plus compétent regarder. Olivier 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
DenisHen Posté(e) le 13 avril 2016 Auteur Partager Posté(e) le 13 avril 2016 Bonjour Olivier. Et mille mercis... Ça fonctionne nickel. Denis... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi) Lien vers le commentaire Partager sur d’autres sites More sharing options...
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