Aller au contenu

Messages recommandés

Posté(e)

Bonsoir à toutes et tous,

 

La seule remarque que je pourrait formuler c'est que tu pourrait utiliser la même variable car celles que tu as donné ne servent qu'une fois

 

Ah, une autre, tu ne verifies pas si un point d'insertion n'a pas été saisi (style faire entrée invonlontairement lors de la question)

 

Patrick_35, cela te dérangerais de développer un peu ?

 

Merci d'avance.

Civil 3D 2025 - COVADIS_18.3b

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

Posté(e)

Par exemple

 

(setq p3 (getpoint "\pt d'insertion nomenclature : "))
(command "_.insert"" nom barre droite " p3 1 1 "")
(command "_.explode" "d")

(setq p2 (getpoint "\pt d'insertion bloc : "))
(command "_.insert"" ha barre droite " p2 1 1"")

(setq p4 (getpoint "\pt d'insertion repere acier : "))
(command "_.insert"" rep acier barre " p4 1 1 "")

 

pourrait être

(setq p3 (getpoint "\pt d'insertion nomenclature : "))
(command "_.insert"" nom barre droite " p3 1 1 "")
(command "_.explode" "d")

(setq p3 (getpoint "\pt d'insertion bloc : "))
(command "_.insert"" ha barre droite " p3 1 1"")

(setq p3 (getpoint "\pt d'insertion repere acier : "))
(command "_.insert"" rep acier barre " p3 1 1 "")

 

et pour tester la saisie

(setq p3 (getpoint "\pt d'insertion nomenclature : "))
(command "_.insert"" nom barre droite " p3 1 1 "")
(command "_.explode" "d")

 

pourrait être

(if (setq p3 (getpoint "\pt d'insertion nomenclature : "))
(progn
(command "_.insert"" nom barre droite " p3 1 1 "")
(command "_.explode" "d")
)
)

 

@+

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

Posté(e)

Bonjour à toutes et tous,

 

J'ai bien réussi à faire les modifs proposées par Patrick_35. J'ai maintenant, sous le même modèle une quarantaine de fichiers Lisps concernant le ferraillage MAIS, je n'arrive pas à regrouper l'ensemble sur un seul fichier,ce qui serait moins lourd et éviterai surement des doublons en écriture, non ?

 

Quelqu'un peut-il m'aiguiller ?

 

Merci d'avance et bon dimanche.

Civil 3D 2025 - COVADIS_18.3b

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

Posté(e)

Salut,

 

Je n'ai pas regardé dans le détail, mais il semble que tes 2 LISP font la même chose exepté les blocs inséré.

 

Tu peux donc faire choisir le type de blocs par l'utilisateur (il suffit d'entre b ou c):

 

(Initget 1 "Barre Crochet")
(setq opt (getkword "\nChoix du type de bloc [barre/Crochet]: "))
(if (= opt "Barre")
(setq bloc1 " nom barre droite " bloc2 " ha barre droite ")
(setq bloc1 " NOM BD4545 " bloc2 " HA crochet double 45° 45° ")
)

 

et ensuite :

 

(setq p3 (getpoint "\pt d'insertion nomenclature : "))
(command "_.insert" bloc1 p3 1 1 "")
(command "_.explode" "d")

(setq p2 (getpoint "\pt d'insertion bloc : "))
(command "_.insert" bloc2 p2 1 1"") 

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

Posté(e)

Re,

 

Oui (gile), chacun des Lisps est destiné à insérer la ligne de nomenclature correspondante au blocs dynamique à utiliser dans la zone de dessin. Je pense que l'idée de choisir le bloc à insérer est la bonne, par contre, j'ai fait une barre d'outils pour choisir le bloc utile, est-ce que ce que tu proposes ci-dessus permet cette utilisation ?

 

Visualisons :

 

1er ETAPE : Je choisi sur la barre d'outils l'éléments de ferraillage et viens ensuite remplir la ligne de la nomenclature :

 

<!--url{0}-->

 

2ème ETAPE : Je positionne mon bloc dynamique dans la zone de dessin :

 

<!--url{1}-->

 

3ème ETAPE : Je choisi un point sur le bloc pour mettre le symbole du repère de l'acier :

 

<!--url{2}-->

 

4ème ETAPE : je choisi l'endroit de positionnement de mon N° de repère. La routine se termine là et je n'ai plus qu'à utiliser les fonctions dynamiques de mon bloc conformément à mes besoins :

 

<!--url{3}-->

 

Voilà l'idée de ce travail. Pour le moment, j'ai une quarantaine de Lisp (la barre d'outils n'est pas terminé,..),c'est à dire un par fonction MAIS le fonctionnement est identique (on retrouve les étapes ci-dessus) pour chacun.

 

Que veux-tu dire (gile) par :

(il suffit d'entre b ou c):

 

Merci d'avance et bon dimanche.

Civil 3D 2025 - COVADIS_18.3b

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

Posté(e)

Salut lili

 

L'appel au lisp dans ta barre d'outils peut contenir le nom du bloc

 

par exemple, dans la barre d'outil

^C^C(mon_lisp mon_symbole)

 

Et le lisp

(defun mon_lisp (bloc)
le lisp
)

 

@+

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

Posté(e)

Re,

 

Merci Patrick_35 , donc, je peux copier les uns aprés les autres sur le même fichier les différents lisps juste en lui donnant comme nom en début :

 

(defun mon_lisp (bloc)

le lisp

)

 

Exemple pour les deux premiers :

 

; *******************************************************************
;                      ARMATURES.LSP
;

  

  ;(modes '("CMDECHO" "ATTDIA" "ATTREQ" "GRIDMODE" "UCSFOLLOW"))
  ;(setvar "cmdecho" 0)               ; turn cmdecho off
  ;(setvar "attdia" 0)                ; turn attdia off
  ;(setvar "attreq" 1)                ; turn attreq on
  ;(setvar "gridmode" 0)              ; turn gridmode off
  ;(setvar "ucsfollow" 0)             ; turn ucsfollow off

(defun bdh (bloc)
le lisp
)

(setq p3 (getpoint "\pt d'insertion  nomenclature : "))
(command "_.insert"" nom barre droite " p3 1 1 "")
(command "_.explode" "d")

(setq p2 (getpoint "\pt d'insertion bloc : "))
(command "_.insert"" ha barre droite " p2 1 1"")

(setq p4 (getpoint "\pt d'insertion  repere acier : "))
(command "_.insert"" rep acier barre " p4 1 1 "")


(setq p5 (getpoint "\pt intermediere de ligne de repere : "))

(command "_.pline" p4 p5 "")
(command "CHANGER" "d" "" "p" "ca" "BAC FERRAILLAGE REPERE PLAN" "")
(setq p6 (getpoint "\pt insertion numero de repere : "))
(command "_.pline" p5 p6 "")
(command "CHANGER" "d" "" "p" "ca" "BAC FERRAILLAGE REPERE PLAN" "")
(command "_.insert"" numerorepere " p6 1 1 "")
(command "_.explode" "d"))

(defun bcs45d (bloc)
le lisp
)

(setq p3 (getpoint "\pt d'insertion  nomenclature : "))
(command "_.insert"" nombcd45 " p3 1 1 "")
(command "_.explode" "d")

(setq p2 (getpoint "\pt d'insertion bloc : "))
(command "_.insert"" ha crochet simple 45°d " p2 1 1"")

(setq p4 (getpoint "\pt d'insertion  repere acier : "))
(command "_.insert"" rep acier barre " p4 1 1 "")

(setq p5 (getpoint "\pt intermediere de ligne de repere : "))

(command "_.pline" p4 p5 "")
(command "CHANGER" "d" "" "p" "ca" "BAC FERRAILLAGE REPERE PLAN" "")
(setq p6 (getpoint "\pt insertion numero de repere : "))
(command "_.pline" p5 p6 "")
(command "CHANGER" "d" "" "p" "ca" "BAC FERRAILLAGE REPERE PLAN" "")
(command "_.insert"" numerorepere " p6 1 1 "")
(command "_.explode" "d")) 

 

Même principe pour les suivants ? Ou pui-je encore raccourcir les écritures identiques ?

 

PS : Je n'ai pas encore remis à jour ces fichiers en fonction de tes remarques et celles de (gile), j'attend d'être sûr du principe à adopter.

 

Merci encore.

 

Civil 3D 2025 - COVADIS_18.3b

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

Posté(e)

Salut,

 

Comme tout tes LISPs font la même chose, seuls les noms des blocs insérés diffèrent.

 

Tu fais une seule routine avec 2 arguments (les noms des blocs) :

 

(defun insert-feraillage ([b]bloc1 bloc2[/b] / p3 p4 p5 p6)
(setq p3 (getpoint "\pt d'insertion nomenclature : "))
(command "_.insert" [b]bloc1[/b] p3 1 1 "")
(command "_.explode" "d")

(setq p2 (getpoint "\pt d'insertion bloc : "))
(command "_.insert" [b]bloc2[/b] p2 1 1"")

(setq p4 (getpoint "\pt d'insertion repere acier : "))
(command "_.insert"" rep acier barre " p4 1 1 "")


(setq p5 (getpoint "\pt intermediere de ligne de repere : "))

(command "_.pline" p4 p5 "")
(command "_.chprop" "_l" "" "_la" "BAC FERRAILLAGE REPERE PLAN" "")
(setq p6 (getpoint "\pt insertion numero de repere : "))
(command "_.pline" p5 p6 "")
(command "_.chprop" "_l" "" "_la" "BAC FERRAILLAGE REPERE PLAN" "")
(command "_.insert"" numerorepere " p6 1 1 "")
(command "_.explode" "d")
)

 

tu peux ensuite faire comme dit Patrick_35, appeler la routine depuis les macros en rensignant les arguments :

^C^C(insert-ferraillage " nom barre droite " " ha barre droite ");

^C^C(insert-ferraillage " nombcd45 " p3 1 1 " " ha crochet simple 45°d " p2 1 1")

 

ou encore, définir en LISP autant de commandes que tu as de "couples" de bloc qui chacune appelle la routine insert-ferraillage :

 

(defun c:barre_droite ()
(insert-ferraillage " nom barre droite " " ha barre droite ")
(princ)
)

(defun c:crochet ()
(insert-ferraillage " nombcd45 " p3 1 1 " " ha crochet simple 45°d " p2 1 1")
(princ)
)

 

tu pourras appeler ces commandes directement à la ligne de commande et les mettre dans tes macros :

 

^C^Cbarre_droite;

^C^Ccrochet;

 

EDIT : j'ai "internationnalisé" la commande de changement de calque et utilise la commande _CHPROP (CHPROP) au lieu de CHANGER (_CHANGE).

 

[Edité le 21/10/2007 par (gile)]

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

  • 2 semaines après...
Posté(e)

Bonsoir à toutes et tous,

 

Je n'ai malheuresement pas encore eu le temps de me pencher sérieusement sur vos dernières réponses car je pense que je peux encore aboutir la démarche. Je m'explique : Aujourd'hui, la nomenclature est un texte ainsi que le N° de repérage. C'est balot, il suffit de dire, eh, mais moi, je veux que la nomenclature soit en champs et qu'elle se renseigne lorsque le blocs dyn est en place avec ces dimensions réelles et avec le choix du diamètre grace à l'état de visibilité, bref, toutes les infos pour qu'elles se remplissent toutes seules et surtout, surtout, conformément à la représentation réelle, puisque à l'échelle un. Je ne sais pas si il y à moyen de s'en sortir sans la programmation, qu'en pensez-vous ?

 

Ci-dessous, l'état actuel (du texte dans la nomenclature et pas d'incrémentation pour les N° de repère, bref, trés pauvre, MAIS, fonctionnel,....

 

<!--url{0}-->

 

Ci-dessous, renseignement du diamètre, la longueur dynamique étant définie.(Exemple sur un autre type d'acier).

 

<!--url{1}-->

 

Bonne fin de soirée.

Civil 3D 2025 - COVADIS_18.3b

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

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é