Aller au contenu

DISTANCES PAR SELEC COTES


lili2006

Messages recommandés

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/

Lien vers le commentaire
Partager sur d’autres sites

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 Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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/

Lien vers le commentaire
Partager sur d’autres sites

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/

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité