Aller au contenu

Messages recommandés

Posté(e)

Salut

 

Il me semble que les blocs dynamiques ne fonctionnent pas pour les blocs en 3D.

 

Par contre un cylindre en 3D, créé par la barre d'outil "Modélisation" est étirable. Il suffit de se servir de la flèche lorsque l'on a sélectionné l'objet.

Excalibur

Posté(e)

Tu peut aussi étirer ton cylindre avec la combinaison de touches CTRL+ALT ensuite tu cliques sur la face a étirer.

Bon parfois la saisie peut être un peu coton! Mais ça marche

Posté(e)

Si tu as choisi la solution du bloc donné par Christian, il est facile d'avoir la longueur/hauteur puisque c'est l'échelle en Z.

 

Ceci te retournera la valeur d'insertion en Z du bloc de ton cylindre sélectionné:

(cdr (assoc 43 (entget (car (entsel)))))

 

En poussant un peu, ont peu faire un filtre et cumuler ces valeurs pour l'ensemble du dessin de façon à avoir en retour le total des longueurs.

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

Posté(e)

Si l'option des blocs t'attire, pas besoin d'attribut.

Voici le type de métré que tu pourrais faire (en fonction du diamètre et du calque)

 

(defun c:metre_cyl ( / ent dxf_ent diam js n lg_blk lst_lg)
 (while (null (setq ent (entsel "\nChoix du bloc Modèle: "))))
 (cond
   (ent
     (setq dxf_ent (entget (car ent)))
     (cond
       ((eq (cdr (assoc 0 dxf_ent)) "INSERT")
         (setq diam (cdr (assoc 41 dxf_ent)) q_calqu (cdr (assoc 8 dxf_ent)))
         (setq js (ssget "_X" (foreach n '(-1 330 5 10 43 50 210 70 71 44 45) (setq dxf_ent (vl-remove (assoc n dxf_ent) dxf_ent)))))
         (cond
           (js
             (setq n -1)
             (repeat (sslength js)
               (setq lg_blk (cdr (assoc 43 (entget (ssname js (setq n (1+ n)))))))
               (setq lst_lg (cons lg_blk lst_lg))
             )
             (textscr)
             (princ (strcat "\n" (itoa (1+ n)) " objet(s) trouvé(s) de diamètre " (rtos diam) " sur le calque " q_calqu))
             (princ "\nDe longueur individuel :")
             (foreach n (mapcar 'rtos lst_lg) (print n))
             (princ (strcat "\nSoit une longueur totale de : " (rtos (apply '+ lst_lg))))
           )
           (T (princ "\nAucun objet correspondant trouvé!"))
         )
       )
       (T (princ "\nN'est pas un bloc!"))
     )
   )
   (T (princ "\nSélection vide!"))
 )
 (prin1)
)

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

Posté(e)

merci a vous,

 

mais pour moi le LISP et le VBA sont des choses qui me sont totalement étrangères !

j'ai bien regardé les commandes mais je n'y comprend rien !

je ne sait même pas rentrer un programme tout fait !

 

Y-a t-il des tutoriels ?

 

je vais tenter un peu de freestyle avec le code donné par Bonuscad.

 

merki again et a+

 

« J'ai claqué beaucoup d'argent dans l'alcool, les filles et les voitures de sport - le reste, je l'ai gaspillé »

http://www.appac-caen.com

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é