Aller au contenu

Insérer un bloc par rapport à une fenêtre en EP


Aleck_Ultimate

Messages recommandés

Bonjour à tous.

 

J'ais en projet d'insérer un bloc réglette étalon en EP qui soit à l’échelle de la fenêtre. J'ais réussit la mise à l'échelle, mais je ne trouve pas comment définir les coordonnée de mon point de base.

 

Dans l'idéal je voudrait qu'il se crée par rapport au coin bas-gauche de la fenêtre, mais je ne trouve pas les coordonnées des points du contour de la fenêtre, et en plus j'ais peur que ce soit une usine à gaz entre fenêtre deux point et fenêtre polylignes.

 

Voila mon code en l'état :

 

;|
Insertion de réglette d'échelle
De Aleck Ultimate
Vertion 0.1
|;

(defun c: ALK_insertion_reglette
 (/ fenetre facteur)

;;; Extraction DXF de la fenêtre
 (setq fenetre (entget (car (entsel))))

;;; Calcule du facteur d'échelle
 (setq	facteur	(/
 		(cdr (assoc 41 fenetre)) ;_ hauteur espace papier
 		(cdr (assoc 45 fenetre)) ;_ hauteur espace objet
	) ;_ fin de /
 ) ;_ fin de setq

;;; Creation du bloc
 (entmake
   '((0 BLOCK) ;_ type d'enité
     (8 <<nom du calque>>) ;_ calque
     (2
       <<chemin d’accès du bloc>>
     ) ;_ nom du bloc
     (10 (cdr (assoc  fenetre)) ;_ x point de base
     (20 (cdr (assoc  fenetre)) ;_ y point de base
     (30 0.0) ;_ z point de base
	) ;_ fin de quote
 ) ;_ fin de entmake
) ;_ fin de defun

Merci.

 

EDIT : Oui, je sais, il manque l’échelle du bloc à mon entmake. Je l'avais oublié et je le cherche encore de mon côté.

Je suis dysorthographique alors lâchez-moi les basques avec ça, je fait déjà de mon mieux.
Membre d'Extinction Rebellion, car pour sauver le monde il n'est jamais trop tard, amour et rage !
Pour écrire un vraie point médian (e·x·e·m·p·l·e) [Alt + 0183] ou ajout d'un raccourci clavier personnalisé (ex. [AltGr + ;])

Utilisateur d'AutoCAD 2021 sous Windows 10

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

je ne trouve pas les coordonnées des points du contour de la fenêtre

Pourquoi a tu besoin de ses coordonnées?

Si tes présentations sont toujours identiques, cela doit être une constante.

 

 <<chemin d’accès du bloc>>

 

et si tu faisais simplement

 

(command "_-insert" ChemBloc Cooordonnée "" "" "") 

 

tu peux aussi mettre l'echelle.

 

ou je n'ai pas compris

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

Je ne vais pas te répondre exactement dans le sens de la question mais je viens te rafraîchir la mémoire pour l'utilisation des champs très utiles pour ce genre de facteurs variables

En effet si tu changes d'échelle ton lisp n'ayant pas de réacteur il est possible que tu délivres une fausse information avec ton "échelle"

Faire un champ en espace papier qui va écrire l'échelle (en métrique)

Tout se fait en EP :

  1. texte multiple
  2. taper Échelle : 1/ à ce moment clic droit (ou CTRL+H) et insérer un champ
  3. choisir Formule et dans la fenêtre de formule en bas à droite taper :
  4. 1000/ à ce moment clic droit (ou CTRL+H) et insérer un champ
  5. choisir Objet et cliquer la FMULT
  6. dans les propriétés choisir Echelle personnalisée et valider

Tu as un champ qui changera de valeur en fonction du zoom/xp (attention à faire REGEN tout de même)(le REGEN se fait automatiquement en cas d'impression)

TRÈS pour les étourdis qui ne verrouillent pas les fenêtres !

 

Amicalement

Lien vers le commentaire
Partager sur d’autres sites

Merci pour vos retours.

 

Cette semaine j'ais du temps à consacrer au codage, mais j'ais aussi plein de petites bricoles à faire à droite à gauche, don il vas peut-être me falloir du temps pour expérimenter.

 

Fraid : j'ais voulu éviter d'utiliser commande parce que je trouvait ça plus usine à gaz que entmake. Vu tout le bugs que j'ais avec entmake, je vais peut-être changer d'avis.

 

EDIT : et justement, dans certains cas avec plusieurs fenêtres par plan, le point change.

 

Didier : c'est une très bonne remarque, mais comme on est que deux à bosser sur AutoCAD dans mon entreprise, je croie que je vais pouvoir éviter les problèmes de collègues incompétent. Pour l'instant. L'idée d'insérer une réglette, c'est pour que les ouvriers puissent juste mettre leur pied à coulisse sur la réglette pour mesurer les distance sur le plans papier sans avoir à sortir la calculette, notamment parce que des plans autres qu'en 1/10 ; 1/100 ; 1/1000 sont très courants, et que c'est un bien plus grand risque d'erreur.

 

Je voulait un truc qui permette une précision suffisante (la demande est rarement plus précise que +- 20cm) et qui puisse s'adapter à n'importe quelle échelle. C'est surement une hérésie pour des pros, mais on me demande de privilégier la taille du dessin plutôt que des échelles cohérentes. Et encore une échelle 1/75 c'est cohérent mais c'est une vraie usine à gaz sur chantier. Donc je fait des zooms étendu dans me fenêtre, et je voulait quelque chose qui puisse s'adapter à une échelle complètement aléatoire tout en restant utilisable sur chantier.

 

Je n'ais jamais rien étudié sur les réacteur, mais j'ais cru comprendre que dans mon cas ça se résumerait en claire à "l'échelle de tel fenêtre à changée, adapter l’échelle du bloc associé". C'est très intéressant, mais je doute que ce soit de mon niveau pour l'instant.

 

 

Bref. Je suis incapable de comprendre quelles donnée prendre dans le DXF de la fenétre pour que mon bloc s’insère dans le coin bas-gauche de la fenêtre.

 

Je cherche toujours à savoir dans quel code DXF mettre cette échelle. J'ais essayé 1042 (pioché dans la liste générale), mais il m'est impossible de tester vue qu'actuellement mon LISP me retourne "erreur : groupe DXF incorrect : (0 BLOCK)" alors que c'est juste la première ligne de la page correspondant : BLOCK (DXF)

 

Je cherche toujours de mon côté.

Je suis dysorthographique alors lâchez-moi les basques avec ça, je fait déjà de mon mieux.
Membre d'Extinction Rebellion, car pour sauver le monde il n'est jamais trop tard, amour et rage !
Pour écrire un vraie point médian (e·x·e·m·p·l·e) [Alt + 0183] ou ajout d'un raccourci clavier personnalisé (ex. [AltGr + ;])

Utilisateur d'AutoCAD 2021 sous Windows 10

Lien vers le commentaire
Partager sur d’autres sites

Salut

 

Pour connaitre les coordonnées d'une fenêtre rectangulaire.

(setq fenetre (vlax-ename->vla-object (car (entsel))))
(vla-getboundingbox fenetre 'basgauche 'hautdroit)
(setq basgauche (vlax-safearray->list basgauche))
(setq hautdroit (vlax-safearray->list hautdroit))

 

@+

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

patrick_35 : Merci. J'ais pas encore exploré le V-LISP, il va bien valoir que je m'y mette un jourlaugh.gif Même si je ne comprend pas pourquoi on ne pourrait pas extraire manuellement ça du DXF. Je suppose que je ne comprend juste pas comment, et que le V-LISP est plus pratique à utiliser que l'autolisp dans ce cas.

 

Didier : Quel conseil ? J'en ais trouvé deux ou trois qui pourraient correspondre à la situation, mais qui donneraient tous un sens très différant à ce que tu voudrait me dire blink.gif

 

Oui, j'ais commencé ce LISP avec (command "_-insert"). Y'a beaucoup de choses que je ne maîtrise pas, mais si je reste maladroit avec je sait relativement bien l'utiliser (du moins je le croie) sauf que :

 

- Je la trouve très usine à gaz tant dans ce cas que de part mes précédentes expériences avec

 

- On dit qu'il faut utiliser les versions anglophone des commandes mais dans l'utilisation que je commençait à en faire il aurait fallu utiliser des options de commande en français ce qui revient au même pour les même raisons

 

- Comme j'avait déjà les mains dans les codes DXF, j'ais trouvé qu'il serait plus propre et mois risqué de directement créer l'objet

 

- On n'a pas besoin que le bloc soit dans le dessin pour utiliser _-insert, le chemin d’accès complet est aussi accepté (et de toute façon le bloc ne sera pas forcément dans le dessin, si il faut l'insérer d’abord mon LISP ne sert plus à rien)

 

Bref. Outre le fait que je n'arrive pas à utiliser ENTMAKE alors que j'ais lue et relue ton cours dessus, je ne comprend pas pourquoi je ne devrait pas l'utiliser présentement.

 

J'ais quand-même progressé :

 

(entmake
   '((0 . "BLOCK") ;_ type d'entité
     (8 . "ACC_EP_Reglettes") ;_ calque
     (2 . 
  	"C:\Users\Utilisateur\Documents\_Bloc\Cartouches\Cartouche_Reglette-a-inserer"
     ) ;_ nom du block
     (10 0.0 0.0 0.0) ;_ point de base
	) ;_ fin de quote
 )

 

Me retourne juste "nil" et rien ne se crée, mais je n'ais plus d'erreurs. Youpi rolleyes.gif

 

EDIT : Merci bonuscad, je décortiquerait ça quant j'aurais un peut plus de temps à y consacrer. Ce que j'espère très bientôt.

Je suis dysorthographique alors lâchez-moi les basques avec ça, je fait déjà de mon mieux.
Membre d'Extinction Rebellion, car pour sauver le monde il n'est jamais trop tard, amour et rage !
Pour écrire un vraie point médian (e·x·e·m·p·l·e) [Alt + 0183] ou ajout d'un raccourci clavier personnalisé (ex. [AltGr + ;])

Utilisateur d'AutoCAD 2021 sous Windows 10

Lien vers le commentaire
Partager sur d’autres sites

Si, tu peux avec les codes dxf, mais il faut calculer.

Code dxf 10 : Centre de la fenêtre

Code dxf 40 : Largeur de la fenêtre

Code dxf 41 : Hauteur de la fenêtre

 

L'avantage du BoundingBox est qu'il fonctionne pour tout type d'objet.

 

Pour ton entmake, il manque

(entmake '((0 . "ENDBLK")))

pour lui indiquer que tu as fini ton bloc, car tu peux lui ajouter des lignes pas exemple.

 

@+

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

Merci Patrick. J'avais pas réussit à comprendre comment marchait ce DXF. C'est de la manipulation de chaines, mais au moins c'est à ma portée.

 

En effet, ENTMAKE demande un peut plus de subtilités que je ne le pensait au début, mais une foi qu'on tient les ficelles...

 

Je vais juste laisser de côté les fenêtres à polylignes qui restent chez moi un cas exceptionnel, je tient trop à garder mes cheveux attachés à mon crâne biggrin.gif

Je suis dysorthographique alors lâchez-moi les basques avec ça, je fait déjà de mon mieux.
Membre d'Extinction Rebellion, car pour sauver le monde il n'est jamais trop tard, amour et rage !
Pour écrire un vraie point médian (e·x·e·m·p·l·e) [Alt + 0183] ou ajout d'un raccourci clavier personnalisé (ex. [AltGr + ;])

Utilisateur d'AutoCAD 2021 sous Windows 10

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

LE conseil :

Ne pas se lancer dans la programmation sans connaître sur le bout des ongles les options, commandes, manières de faire d'AutoCAD...

On peut y arriver bien sûr, mais encore une fois : on n'apprend pas à courir sans savoir marcher

 

Amicalement

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

je revient au debut du post.

'insérer un bloc réglette étalon en EP qui soit à l’échelle de la fenêtre

 

Cela n'a rien a voir avec la question qui porte sur Autolisp, mais cela me contrarie un petit peu.

Ce genre de bloc s’insère en mon sens, dans l'espace objet, puisqu'il sert à contrôler si le plan est à la bonne échelle.

Dans ton cas se n'est valable que si tu ne touche rien après.

Imaginons en exemple,que tu ais oublié de verrouiller ta fenêtre et que tu ais légèrement zoomer, ton bloc seras bien mais pas le plan.

Cordialement

Lien vers le commentaire
Partager sur d’autres sites

Didier : Je fait de mon mieux, mais le LISP c'est un tapis roulant : on ne peut pas juste marcher dessus. Dés qu'on essais de marcher, on se rend compte que y'aura au mieux quatre fois plus de lignes de code à taper. Si on commence pas en courant, on commence jamais. J'ais la chance d'avoir pus passer deux jours plains sur 15 lignes pour apprendre à courir. Je te parle pas de tout mes LISP en embryon qui vont en demander une cinquantaine.

 

Aux première estimations.

 

Fraid : Remarque parfaitement recevable.

 

En effet, c'est ce sur quoi Didier avait mis le doit en parlant de gens qui ne savent pas bosser en EP. Si j'avait 50, voir juste 10 gars sous mes ordres, je trouverait autre chose, mais on est que deux. Et il apprend très vite.

 

Faudra être prudent, mais à cette échelle ça reste faisable, à mon avis.

 

Si j'ais décidé de le mettre en EP c'est pour deux raisons principales. Premièrement, je DÉTESTE quant des truc comme les cartouches sont en EO. Pour moi, le seul truc non plan qu'on peut mettre en EO c'est la rose des vents. Tout le reste est en EP. Ensuit, quant on a plusieurs fenêtres, souvent des doublon entre A1 et A3, des cadrages différents mais qui s’interpénètrent, la seul solution de faire ça propre ce serait de mettre la réglette dans un claque particulier pour chaque fenêtre. Énorme perte de temps en perspective, surtout en sachant que mon collègue bosse sur mon vieux PC avec une 2015, donc sans les états de calques.

 

Je prend bien en compte vos remarque, et elle me serviront à la mise en place de la procédure à appliquer et des habitudes à prendre, mais dans ce cas là je crois que c'est le plus approprié.

Je suis dysorthographique alors lâchez-moi les basques avec ça, je fait déjà de mon mieux.
Membre d'Extinction Rebellion, car pour sauver le monde il n'est jamais trop tard, amour et rage !
Pour écrire un vraie point médian (e·x·e·m·p·l·e) [Alt + 0183] ou ajout d'un raccourci clavier personnalisé (ex. [AltGr + ;])

Utilisateur d'AutoCAD 2021 sous Windows 10

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

Tu fais comme tu veux

Sache que tout ce qui est "cador" sur le site à commencé par tracer des lignes

Toi tu attaques tout de suite par un truc avec des conditions pas toujours claires

Libre à toi

Je me permets de conseiller, tu en fais ce que tu veux

Ton image du tapis roulant est à double tranchant car si tu te vautres sur un tapis roulant tu seras entraîné et tu auras bien du mal à te relever

 

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é