Aller au contenu

Lisp Cotation Pb


kohen.g

Messages recommandés

Bonsoir,

Ce lisp ne fonctione pas comme il devrait pouvez vous me le modifier merci

 

Cela devrait etre une addition de cote puis l'extraction

 

(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)

)

Lien vers le commentaire
Partager sur d’autres sites

Ce lisp ne fonctione pas comme il devrait pouvez vous me le modifier merci

 

Cela devrait etre une addition de cote puis l'extraction

 

Non, ce LISP ne fonctionne pas comme tu voudrais.

 

Ce LISP additionne les valeurs des cotes sélectionnées et retourne la somme sur la ligne de commande : il fonctionne très bien !*

 

* et je ne pense pas en être l'auteur.

 

 

 

 

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Propose l'enregistrement dans un fichier Excel

(defun c:tcot (/ sel tot descr)
 (vl-load-com)
 (setq tot 0)
 (princ "\nVeuillez sélectionner des cotes : ")
 (if (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)
     (setq descr (strcat "Longueur totale\t" (rtos tot)))
     (textscr)
     (princ descr)
     (initget "Oui Non")
     (if (= (getkword
       "\nEnregistrer dans un fichier ? [Oui/Non] : "
     )
     "Oui"
  )
(progn
  (setq
    file
     (open
       (getfiled "Créez ou sélectionnez un fichier" "" "xls" 33)
       "a"
     )
  )
  (princ descr file)
  (close file)
)
     )
     (graphscr)
   )
 )
 (princ)
)

 

Tu peux aussi voir avec TotalPerimqui utilise un bloc dont la valeur d'un attribut "dynamique" correspond à la longueur des objets (lignes polylignes etc...) qui lui sont liés (lis le fichier txt contenu dans le ZIP).

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

  • 3 mois après...

Bonsoir,

J'ai testeé ce lisp et cela ne marche pas pour ma demande

je m'explique je cote des plans de tuyauteries cela se nomme plan isometrique

en gros c'est de la fausse 3D les dimmensions ne sont pas à l'echelle

 

et j'aimerais que ton pgm additionne la valeur de ma cotation qui elle est forcée

 

en résumé je peux avoir un trait qui fait 2cm et qui en réalité est de plusieurs mètres

 

Merci

 

 

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

A peu près la même chose, SAUF QUE SI la cote est forcée, c'est cette valeur qui est prise en compte.

 

Bien sur seule les cotes Pivoté, horizontal ou vertical et Aligné sont prise en compte.

 

Ecrit rapidement sans test approfondis..., donc à tester

(vl-load-com)
((lambda ( / js l_cumul n ename)
 (princ "\nChoix des cotations [forcées incluses]...")
 (cond
   (
     (setq js
       (ssget
         '(
           (0 . "DIMENSION")
             (-4 . "                (-4 . "=") (70 . 0)
               (-4 . "=") (70 . 1)
               (-4 . "=") (70 . 32)
               (-4 . "=") (70 . 33)
             (-4 . "OR>")
         )
       )
     )
     (setq l_cumul 0.0)
     (repeat (setq n (sslength js))
       (setq ename (vlax-ename->vla-object (ssname js (setq n (1- n)))))
       (if (eq (vlax-get ename 'TextOverride) "")
         (setq l_cumul (+ (vlax-get ename 'Measurement) l_cumul))
         (setq l_cumul (+ (atof (vlax-get ename 'TextOverride)) l_cumul))
       )
     )
     (princ (strcat "\nLongueur cumulée des cotes alignées, pivotées, horizontales ou verticales.: " (rtos l_cumul)))
   )
   (T (princ "\nAucune cote alignée, pivotée, horizontale ou verticale. trouvées..."))
 )
 (prin1)
))

 

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

cela ne fonctionne pas

 

Ha, un peu surpris... :exclam:

 

Peut être quand faisant la même chose en lisp classique.

 

Rappel: il faut copier-coller le code pour chaque essai en ligne de commande. Si ça te convient tu pourras convertir en (defun c:CEQUITECONVIENT ....) à la place de ((lambda ...))

 

NB: Pour les cotes forcées la fonction (atof) converti en réel la valeur texte. Si le texte commence par de l'alphabétique 0.0 est retourné. ATTENTION aussi au séparateur décimal employé dans les cotes forcées .Si c'est une virgule (suivant config windows), seule la partie entière risque d'être retourné.

 

((lambda ( / js l_cumul n dxf_ent)
 (princ "\nChoix des cotations [forcées incluses]...")
 (cond
   (
     (setq js
       (ssget
         '(
           (0 . "DIMENSION")
             (-4 . "                (-4 . "=") (70 . 0)
               (-4 . "=") (70 . 1)
               (-4 . "=") (70 . 32)
               (-4 . "=") (70 . 33)
             (-4 . "OR>")
         )
       )
     )
     (setq l_cumul 0.0)
     (repeat (setq n (sslength js))
       (setq dxf_ent (entget (ssname js (setq n (1- n)))))
       (if (eq (cdr (assoc 1 dxf_ent)) "")
         (setq l_cumul (+ (cdr (assoc 42 dxf_ent)) l_cumul))
         (setq l_cumul (+ (atof (cdr (assoc 1 dxf_ent))) l_cumul))
       )
     )
     (princ (strcat "\nLongueur cumulée des cotes alignées, pivotées, horizontales ou verticales.: " (rtos l_cumul)))
   )
   (T (princ "\nAucune cote alignée, pivotée, horizontale ou verticale. trouvées..."))
 )
 (prin1)
))

 

D'autre peuvent vérifier? Car pour moi les 2 versions fonctionnent...

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir à toutes et tous,

 

Salut bonuscad,

 

Pour le 1er code (réponse N° 8) =>

 

Choix des cotations [forcées incluses]...

Choix des objets: Spécifiez le coin opposé: 3 trouvé(s)

Choix des objets:

Longueur cumulée des cotes alignées, pivotées, horizontales ou verticales.:

152.669

 

2 cotes forcées, l'autre non, résultat exact !

 

Pour le second code =>

 

Choix des cotations [forcées incluses]...

Choix des objets: Spécifiez le coin opposé: 3 trouvé(s)

Choix des objets:

Longueur cumulée des cotes alignées, pivotées, horizontales ou verticales.:

152.669

 

Toujours pas de soucis chez moi (V2008 pleine),..

Civil 3D 2024 - COVADIS_18.2

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

Merci de ton test lili2006 ;)

 

Me voici quelque peu rassuré... :P

 

Peut être que les cotations d'etude0 sont dans un xref ?! ou encore que celle-ci soient décomposées... (A ce moment là on pourra faire le code approprié avec du TEXT)

 

[Edité le 21/5/2009 par bonuscad]

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

Bonjour lili2006,

 

Mais, j'ai toujours pas compris l'intérêt de ne pas dessiner en vrai grandeur

 

Je ne sais pas quelle est l'activité exacte d'etude0, mais je peux concevoir ce genre de plan/schéma.

 

Il n'est peut être d'aucun intérêt de représenter un grand linéaire d'un réseau quelconque; électricité, canalisations, quand on veut simplement faire apparaitre les points essentiels de raccordement/branchement, là où se situe la complexité technique.

 

Il est courant de voir des plans de montage montrant en détails ces points de jonctions raccordés par une symbolique (souvent coupé d'une double ligne brisée pour faire comprendre un linéaire de grande longueur). Ainsi le plan contient les informations essentielles pour un montage du réseau sans avoir un "drap de lit" qui ne serait pas plus explicite.

 

La manière de dessiner avec autocad est discutable, il pourrait (c'est vrai !) travailler en longueur réelle (pour faire ses métrés) et faire une présentation à l'aide de multiples fenêtres pour "shunter"/raccourcir les linéaires de grandes longueur.

 

Mais comme tu dis:

 

Bof, c'est un autre problème,...

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

Salut bonuscad,

 

travailler en longueur réelle (pour faire ses métrés) et faire une présentation à l'aide de multiples fenêtres pour "shunter"/raccourcir les linéaires de grandes longueur.

 

Exactement !

 

C'est bien ce que l'on fait en route, nous par exemple,... :P

 

Et du coup, plus besoin de "forcer" les cotes,...Pour moi, c'est le début des problèmes,...

 

Mais bon, chaque corps de métier à ses spécificités et c'est aussi pour cela que ce forum est riche,.... ;)

 

 

 

@+,

Civil 3D 2024 - COVADIS_18.2

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

Bonjour , Etude0 n'étant pas trés fort pour les explications , je vais essayer de faire un peu mieux. Un isométrique de tuyauterie est un document pour la réalisation en atelier d'une tuyauterie et pour la compréhension du tuyauteur , le tuyau est dessiné en fausse perspective de manière à avoir une représentation qui ressemble à de la 3d ,mais en unifilaire.

c'est pour cela que l'on ne peut pas avoir de cotation en vraie grandeur d'autant que l'on s'arrange comme on peut pour faire rentrer le tuyau dans la feuille.

Personnellement , je les fais encore le plus souvent au crayon et j'use de la gomme car ça reste plus rapide qu'autocad même si je me suis fait une palette d'outils spécialement pour cet usage.

Il existe bien sûr des logiciels spécialisés qui, à partir de la 3d produisent les isométriques automatiquement .

 

[Edité le 22/5/2009 par usegomme]

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

tu vas sans dire que je chipote mais le vocabulaire diantre !

 

Pour moi, un plan, c'est toujours dessiné à l'échelle !!!

 

dans Autocad on ne dessine pas à l'échelle

 

on dessine en grandeur réelle, on ne choisira l'échelle

qu'au moment de tracer !!

 

amicalement

Lien vers le commentaire
Partager sur d’autres sites

Coucou

est ce que le mode ISOMETR te serait utile

Dans le temps le mode ISOMETR était indispensable, mais aujourd'hui avec le mode polaire on s'en passe très bien .

L'isometrique de tuyauterie a des règles de dessin et de cotation qui sont bien définies.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Le lisp ne fonctionne pas , je le charge il me demande de choisir les objets je clique sur mes 2 objet (cotation) et la rien ne se passe

 

Autres quiz , comment je peut fair pour que mes cote aligné soit // à mon axe de tuyauterie

 

Méthode: Aller sur Accroche objet onglet puis paramètre puis l'onglet accrochage isometrique

 

Puis déssiner un trait en ayant coché le mode ortho

 

cela fera un trai à 30 /90°ou 120° , puis coter celle ci à l'aide de cotation aligné et la vous remarqueré que la cotation ne suit pas mon trait d'axe

 

Encore une fois cette manip c'est pour des plans de tuyauteries dit ISO Sans respect de l'echelle

 

Merci

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Le lisp ne fonctionne pas

 

Il serait bien que tu mettes un extrait (un WBLOCK) d'une partie (si confidentiel) de quelques éléments de ton dessin, que je puisse comprendre pourquoi cela ne fonctionne pas.

Autrement il me sera difficile de t'aider...

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

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é