Aller au contenu

Lisp Automatisation de cotation


myj94

Messages recommandés

Bonjour Le Forum,

Travaillant dans les énergies renouvelables, je passe l'essentiel de mon temps de travail à créer des maquettes de parc solaire.

Dans ce cadre, j'effectue des tâches récurrentes dont la cotation de certains équipements et distances à chaque création de maquette.

En effet, je crée pour chaque maquette les cotations suivantes
1 - Distance Unité foncière / Tables 
2 - Distance Unité foncière / Poste
3 - Distance Clôture / Tables
4 - Distance Clôture / Poste
5 - Distance Poste / Table 
6 - Longueur de rangées de Tables

 

Dans ce contexte, je souhaite créer/trouver un LISP qui puisse m'aider à parvenir à l'automatisation de ces cotations, ce qui me ferait gagner un temps conséquent.

J'ai déjà réalisé des tests avec le LISP DimPl2Pl__BeekeeCZ___ mais résultat convenant.

A savoir que la cotation, par exemple Unité foncière / Tables, doit être perpendiculaire à la ligne (Unité foncière dans ce cas, ou clôture sinon).

Je sollicite votre aide et vous remercie par avance.

 

PS: le fichier Exemple1 est le fichier où on peut "tester", le fichier Exemple1_done est le fichier des résultats voulues 

 

Exemple1.dwg Exemple1_done.dwg

DimPl2Pl_v2___BeekeeCZ____.lsp

Lien vers le commentaire
Partager sur d’autres sites

Coucou,
Il sera beaucoup plus rapide de réaliser cette tâche à la main que de trouver une méthodologie fonctionnelle pour tous tes projets. Les cotations en rose et/ou vert ne suivent pas vraiment de règles strictes et facilement identifiable. Tout va dépendre d'à quel point il est nécessaire d'automatiser les choses. Ne serait-ce que pour connaître à partir de quel sommet du bloc il faut partir pour créer la cotation. Du point de vue de l'humain c'est facilement identifiable mais du point de vue d'un programme, la tâche est bien plus complexe qu'il n'y paraît.

Admettons que l'on soit toujours en SCG, que tu n'implantes pas tes tables PV par rapport à un relevé topo ni même avec un azimuth différent de 0°, alors dans ce cas on pourrait concevoir quelque chose, mais si l'une de ces hypothèses n'est pas vraie, alors le programme fera faux obligatoirement (donc reprise manuelle). Bref, si les conditions sont toujours vraies pour toi, alors on peut essayer de voir ce qu'il est possible de faire, mais autrement, je pense sincèrement que c'est bien plus rapide de le faire à la main.

Bisous,
Luna

  • Like 1
Lien vers le commentaire
Partager sur d’autres sites

Bonjour @myj94

Je ne sais pas trop ce qu'il faut choisir, le dessin exemple est-il réalisé avec les bonnes positions de cotations ?
J'aurais tendance à croire qu'il faut indiquer le plus petite distance, mais dans le cas fourni ce n'est pas le cas. Que faire ?
Par exemple, la cote valeur 21 est celle écrite sur l'exemple alors que j'imagine qu'il eût fallu écrire la valeur 19, non ? Que faire ?

Une fois que je saurai les vraies règles non négociables, je pourrai réfléchir comment automatiser, je n'aime pas travailler dans le flou.

Amicalement

Snag_ef0fb5.png.1e71737aa629dab0b302751eec80302d.png

  • Like 1
Lien vers le commentaire
Partager sur d’autres sites

Bonjour @myj94,

On peut déjà optimiser les manip. avec une simple MACRO à placer derrière un Bouton de barre d'outils :

*^C^C_dimaligned;\_PER;\@;

La même MACRO plus adaptée derrière un Outil dans une PALETTE D'OUTILS :

^C^C_dimaligned;\_PER;\@;executetool;

Le 1er point est libre (avec les accrochages actifs), et le 2e s'accroche d'office PERPENDICULAIRE... et la commande fonctionne en boucle...

Précision, tes dessins contiennent des éléments en 3D, donc y a du Z qui se balade qui empêche d'obtenir facilement de bons accrochages....

Christian

  • Like 1

Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...

cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Tout d'abord, merci à tous les trois pour vos réponses des plus rapides et votre temps. 🙂


@Luna

Merci pour tes explications, en effet la tâche s'avère plus dure que ce que je ne pouvais le penser. Pour automatisation me permettrait un gain de temps journalier afin de pouvoir travailler sur d'autres tâches sur lesquels je ne peux me pencher par manque de temps (mais tout aussi importante). L'exemple que je vous ai transmis représente un très "petit" parc, la plupart de mes projets concernent des sites avec une superficie bien plus vaste. De plus, le programme risque de retourner faux régulièrement si nous prenons en compte les "tables" telles quelles, avec leur altitude.

Pour rebondir sur ça, suite aux propos concernant la dimension Z de certains blocs (des tables PV), j'ai réfléchi à une solution qui permettrait de supprimer le facteur Z du dessin : la création du contour des tables sous forme de polygone ou de lignes. Cela peut éventuellement rendre moins complexe la réalisation de l'automatisation des cotations.

 

@didier

Désolé pour les quelques erreurs qui se sont glissées dans mon dessin d'exemple, je l'ai rectifié et le mets en pièce jointe. Vous avez totalement raison, c'est bien cette tendance là qui est à suivre, à savoir indiquer la plus petite distance. C'est la seule règle (hors le fait qu'il faille que la côte sois perpendiculaire à la clôture/unité foncière). Il est toujours mieux de travailler dans la clarté en effet, je vous comprends. Merci par avance pour votre réflexion

 

 

@rebcao

Merci Christian pour cette MACRO, je vais tester ça de ce pas. En effet, du Z se balade sur mon dessin et j'espère pouvoir passer outre grâce à la couche "Tables_contour" qui est le contour des tables (sans le Z normalement). Peut-être plus facile pour avoir de bons accrochages, je l'espère.

 

 

Je joins ici les deux fichiers d'exemples modifiés dont le premier avec la couche "Tables_contour".

Amicalement

Exemple2.dwg Exemple2_done.dwg

Lien vers le commentaire
Partager sur d’autres sites

il y a une heure, Luna a dit :

Coucou,
Pour l'accrochage 3D, mettre OSNAPZ à 1, comme chat tu auras moins de problèmes je pense.

Bisous,
Luna

Je vais tester ça, ça peut être d'une grande aide : Merci beaucoup Luna

Lien vers le commentaire
Partager sur d’autres sites

Coucou,
Je suis curieuse de comment tu génères ta polyligne "Tables_contour" pour le coup ?
En suivant ton .dwg d'exemple, pourquoi indiquer la cotation de 19 alors que 2 rangées plus haut, les tables PV sont plus proches de la clôture/unité foncière ? Indiques-tu des cotations à des endroits purement arbitraires ou bien faut-il les indiquer à chaque sommet ?
Pour être franche, je pense que l'automatisation est plus aisée en ayant des objets séparés (donc les contours des tables individuellement) et laisser à l'utilisateur cliquer sur les objets manuellement (ainsi l'utilisateur garde le contrôle sur la position des cotations qu'il juge nécessaire, tout comme la quantité).

Si jamais tu veux une astuce pour obtenir le contour de chaque table en 2D à partir de PVcase, voici les manips que je réalise :
  1. Sélectionner l'ensemble des tables PV
  2. COPIER les tables sélectionnée à l'écart du projet (avec un décalage connu pour pouvoir ensuite re-décaler les tables par la suite par-dessus le projet initial)
  3. Afficher uniquement le contour des tables (cocher "Optimized Frames" dans "Layout Generation Settings")
  4. DECOMPOSER les tables copiées
  5. Si tu as AutoCAD Civil 3D, tu peux utiliser l'outil natif de conversion des Polylignes 3D en Polylignes 2D. Sinon il faut passer par un LISP
  6. Mettre les polylignes 2D dans le calque de ton choix et les DEPLACER au-dessus du projet initial
  7. Remettre l'affichage des modules PV (décocher "Optimized Frames" dans "Layout Generation Settings")
  8. Faire un REGEN, et supprimer les modules qui viennent d'apparaître à l'emplacement des tables décomposées
Tu pourras ainsi avoir l'affichage des contours de tables indépendamment des objets 3D de PVcase (il te suffira de mettre 0 en élévation de tes polylignes 2D)

Bisous,
Luna

  • Like 1
Lien vers le commentaire
Partager sur d’autres sites

Bonjour @Luna

Pour ma génération de ma polyligne "Tables_contour", j'ai procédé hors autocad, je m'explique :
1. J'ai exporté la couche des tables au format shape.
2. Je l'ai importé dans QGIS
3. J'ai réalisé une zone tampon avec comme distance l'inter-rang entre les tables (2.5m ici) (en regroupant les polygones se chevauchant)
4. J'ai fais à nouveau une zone tampon mais inversé avec la même distance 
5. J'ai ensuite enregistré cette couche et l'ai importé dans mon dessin autocad

Pour répondre à tes questions, la cotation 19 a été mise ici à titre indicatif car tu as raison : en temps normal la côte aurait été placée 2 rangs plus haut afin de mettre en avant la distance minimale. Les cotations ne sont pas indiquées à des endroits purements arbitraires et en effet dans l'idéal cela pourrait être de les indiquer à chaque sommet (quitte à en retirer par la suite, si c'est plus facile de procéder ainsi).

Merci beaucoup pour l'astuce afin d'obtenir le contour de chaque table à partir de PVcase, cela va sans aucun doute beaucoup m'aider. Ayant accès à AutoCAD Civil 3D c'est d'ores et déjà plus pratique.

Lien vers le commentaire
Partager sur d’autres sites

Maintenant qu'il n'y a plus de Z dans le dessin, seulement des polylignes et sommets dans le dessin, est-il possible de créer un lisp avec ces éléments ci ?

@didier est-ce qu'il faut plus de paramètres à prendre en compte ? as tu des idées de comment pouvoir faire cela ?

@Luna Selon toi, est-il possible d'automatiser la cotation de la longueur des panneaux ?

Merci.

Amicalement

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é