lili2006 Posté(e) le 16 janvier 2008 Posté(e) le 16 janvier 2008 Bonjour à toutes et tous, Voilà mon problème. Mes entités linéaires ne correpondent pas forcément aux longueurs des éléments linéaires que je voudrais métrer. Par contre, une selection de cotes fonctionnerais.Autrement dis, j'aimerai pouvoir définir la somme des longueurs qui m'intéresse en selectionnant les entités cotes correspondantes (celles-ci n'étant jamais "forcées", la ligne de cote correpond au dimension "réelle", je dessine en cm dans l'espace objet et désirerai le résultat en m !). Est-ce réalisable ? Merci d'avance à ceux qui testeront. [Edité le 16/1/2008 par lili2006] Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
Patrick_35 Posté(e) le 16 janvier 2008 Posté(e) le 16 janvier 2008 Salut lili (defun c:tcot(/ sel tot) (vl-load-com) (setq tot 0) (princ "\nVeuillez sélectionner des cotes : " ) (and (ssget (list (cons 0 "DIMENSION"))) (progn (vlax-map-collection (setq sel (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object)))) '(lambda (x) (setq tot (+ tot (vla-get-measurement x)))) ) (vla-delete sel) (princ (strcat "\nCumul des cotes : " (rtos tot))) ) ) (princ) ) ps : pour la conversion des cm en m, je te laisse un peu chercher ;) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
(gile) Posté(e) le 16 janvier 2008 Posté(e) le 16 janvier 2008 Salut, Ou quelque chose comme ça ?Ça tu aurais pu l'écrire toi même... (defun c:addim (/ ss tot) (setq tot 0 n 0 ) (if (setq ss (ssget '((0 . "DIMENSION")))) (while (setq dim (ssname ss n)) (setq tot (+ tot (cdr (assoc 42 (entget dim)))) n (1+ n) ) ) ) (alert (strcat "Distance totale = " (rtos (/ tot 100.0) 2 2) ) ) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 16 janvier 2008 Auteur Posté(e) le 16 janvier 2008 Re, Merci Patrick_35 J'ai essayé de rajouter des trucs derrière la première paranthèse sortante de cette ligne: '(lambda (x) (setq tot (+ tot (vla-get-measurement x)))) , mais marche pas pour le moment ! Merci (gile) Vour répondez tous deux à mon problème et vous en remercie encore. Ça tu aurais pu l'écrire toi même... Tu surestime mes capacités, j'ai toujours pas eu le temps de bosser, hereusement, Matt666 veille,.. Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
Patrick_35 Posté(e) le 17 janvier 2008 Posté(e) le 17 janvier 2008 liliRegarde du coté du rtos. (gile) donne la solution. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
lili2006 Posté(e) le 17 janvier 2008 Auteur Posté(e) le 17 janvier 2008 Bonsoir à toutes et tous, Patrick_35, de ce genre là ? (defun c:tcot(/ sel tot) (vl-load-com) (setq tot 0) (princ "\nVeuillez sélectionner des cotes : " ) (and (ssget (list (cons 0 "DIMENSION"))) (progn (vlax-map-collection (setq sel (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object)))) '(lambda (x) (setq tot (+ tot (vla-get-measurement x)))) ) (vla-delete sel) (princ (strcat "\nCumul des cotes : " (rtos [surligneur] (/ tot 100.0) 2 2)[/surligneur])) ) ) (princ) ) Que veut dire "rtos", exactement et pourquoi "2 2" après (/tot100.0) et pourquoi le .0 après le 100? Bref, j'ai recopié bétement mais ça marche ! Merci encore. [Edité le 17/1/2008 par lili2006] Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
(gile) Posté(e) le 17 janvier 2008 Posté(e) le 17 janvier 2008 Que veut dire "rtos", exactement ? C'est une fonction qui tarduit un nombre réel en chaîne de caractères. Les arguments (optionnels) otutre le nombre réel sont 2 entiers, le premier pour le type d'unités (comme la variable LUNITS) le second le nombre de décimales. rtos est la contraction de Real TO String. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 18 janvier 2008 Auteur Posté(e) le 18 janvier 2008 Bonjour à toutes et tous, Merci (gile) ,au passage, quel effet cette variable "LUNITS" ? Bonne journée. Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
(gile) Posté(e) le 18 janvier 2008 Posté(e) le 18 janvier 2008 La variable systèmee LUNITS gère le type d'unités linéaires Extrait de l'aide : Définit les unités linéaires. 1 Scientifique 2 Décimale 3 Ingénierie 4 Architecture 5 Fractionnaire On accède aussi à ces paramètres par la commande UNITES Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 18 janvier 2008 Auteur Posté(e) le 18 janvier 2008 Bonsoir à toutes et tous, Tout simplement,... Merci encore (gile) Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
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