IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lisp Discussion :

Nomenclature en lisp sous autocad


Sujet :

Lisp

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Avril 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Nomenclature en lisp sous autocad
    Bonjour,
    mon projet de fin d'étude consiste à créer une commande sous autocad qui permet de repérer des pièces et de répertorier leurs caractéristiques dans une nomenclature, cette dernière devant se construire automatiquement au fur et à mesure que l'on repère des pièces sur un plan.
    j'arrive à créer la bulle contenant le repère de la pièce et à renvoyer ce repère et d'autres information dans la première ligne de la nomenclature.
    Mais je ne parviens pas a faire fonctionner la commande pour plusieurs pièces

    voici mon code



    (defun c:nomenclature()
    (setq accro (getvar "osmode"))
    ( setvar "osmode" 0)

    ;insertion du bloc entete

    (setq ptinsertion(getpoint "\Point d'insertion de la nomenclature"))
    (command "-inserer" "ENTETE_NOMENCLATURE" ptinsertion 1 1 0)

    ; lance la bulle de reperage

    (command "-calque" "ch" "ligne de repérage" "")

    (setvar "osmode" 1)
    (setq point1 (getpoint"\point d'insertion du repère:"))
    (setvar "osmode"0)
    (setq point2 (getpoint "\second point de la ligne de repère:"))
    (setq ang1-2 (angle point1 point2))
    (setq centrecercle1 (polar point2 ang1-2 60))
    (setq distp2centre1 (distance point2 centrecercle1))
    (command "ligne" point1 point2 "")
    (command "cercle" centrecercle1 distp2centre1 "")


    ; a mettre dans les nomenclatures

    (setq kelrepère (getstring "\ Quel repère voulez vous attribuer à l'élément ? :"))
    (setq nombre (getstring"\ Nombre ? : ")); demande le nombre de brides
    (setq fonction (getstring "\ Fonction de l'élément ?:"))
    (setq DN (getstring "\ DN ?:"))
    (setq PN (getstring "\ PN ?:"))
    (setq diamext (getstring "\ Diamètre Extérieur tube ?:"))
    (setq eptube (getstring "\ Epaisseur du tube ?:"))
    (setq matière (getstring "\ Matière du tube ?:"))
    (setq typebride (getstring "\Type de bride ?:"))
    (setq dimensions (getstring "\ Dimensions de la bride ?:"))
    (setq matbride (getstring "\ Matière de la bride ?:"))
    (setq raccordement (getstring "\Type de raccordement ?:"))
    (setq nbjoint (getstring "\ Nombre de joints ?:"))
    (setq typejoint (getstring "\Type de joints ?:"))
    (setq norme (getstring "\ Norme ?:"))
    (setq epjoint (getstring "\ Epaisseur du joint ?:"))
    (setq matjoint (getstring "\ Matière du joint ?:"))
    (setq nbbls (getstring "\ Nombre de boulons ?:"))
    (setq desbls (getstring "\ Désignation des boulons ?:"))
    (setq obs (getstring "\ Observations ?:"))











    ; définition des cases point par point



    (setq pt1 (polar ptinsertion 0 70)); début case fonction
    (setq pt2 (polar pt1 (-(/ pi 2)) 6 ))
    (setq pt3 (polar ptinsertion (-(/ pi 2)) 6 )); fin case fonction

    (setq point1 (polar ptinsertion 0 35)); définit le centre de la case fonction
    (setq centre (polar point1 (-(/ pi 2))3));

    (setq pt4 (polar pt1 0 7)); début case nombre
    (setq pt5 (polar pt4 (-(/ pi 2))6)); fin case nombre



    (setq point2 (polar pt1 0 3.5)); définit le centre de la case nombre
    (setq centre1(polar point2 (-(/ pi 2))3));



    (setq pt6 (polar pt5 0 15)); début case repère
    (setq pt7 (polar pt6 (+(/ pi 2))6)); fin case repere

    (setq point3 (polar pt5 0 7.5)); définit le centre de la case repère
    (setq centre2 (polar point3 (/ pi 2)3));

    (setq pt8 (polar pt6 0 10)) ; début case DN
    (setq pt9 (polar pt8 (+(/ pi 2))6)); fin case DN
    (setq point4 (polar pt6 0 5)); définit le centre de la case
    (setq centre3 (polar point4 (+(/ pi 2))3));

    (setq pt10 (polar pt8 0 10)); début case PN
    (setq pt11 (polar pt10 (+(/ pi 2))6)); fin case PN
    (setq point5 (polar pt8 0 5)); définit le centre de la case PN
    (setq centre4 (polar point5 (+(/ pi 2))3));

    (setq pt12 (polar pt10 0 11)); debut case diam ext
    (setq pt13 (polar pt12 (+(/ pi 2))6)); fin case diam ext
    (setq point6(polar pt10 0 5.5)); définit le centre de la case diam ext
    (setq centre5 (polar point6 (+(/ pi 2))3));

    (setq pt14 (polar pt12 0 9)); début case épaisseur
    (setq pt15 (polar pt14 (+(/ pi 2))6)); fin case épaisseur
    (setq point7 (polar pt12 0 4.5)); définit le centre de la case épaisseur
    (setq centre6 (polar point7 (+(/ pi 2))3));

    (setq pt16 (polar pt14 0 24)); début case matière
    (setq pt17 (polar pt16 (+(/ pi 2))6)); fin case matière
    (setq point8 (polar pt14 0 12)); définit le centre de la case matière
    (setq centre7 (polar point8 (+(/ pi 2))3));

    (setq pt18 (polar pt16 0 30.01)); début case type
    (setq pt19 (polar pt18 (+(/ pi 2))6)); fin case type
    (setq point9 (polar pt16 0 15.005)); définit le centre de la case type
    (setq centre8 (polar point9 (+(/ pi 2))3));

    (setq pt20 (polar pt18 0 25)); début de la case dim
    (setq pt21 (polar pt20 (+(/ pi 2))6)); fin de la case dim
    (setq point10 (polar pt18 0 12.5)); définit le centre de la case dim
    (setq centre9 (polar point10 (+(/ pi 2))3));

    (setq pt22 (polar pt20 0 17)); début de la case matière
    (setq pt23 (polar pt22 (+(/ pi 2))6)); fin de la case matière
    (setq point11 (polar pt20 0 8.5));
    (setq centre10 (polar point11(+(/ pi 2))3));

    (setq pt24 (polar pt22 0 39)); début de la case raccordement
    (setq pt25 (polar pt24 (+(/ pi 2))6)); fin de la case raccordement
    (setq point12 (polar pt22 0 19.5));
    (setq centre11 (polar point12 (+(/ pi 2))3));

    (setq pt26 (polar pt24 0 10)); début de la case nombre joint
    (setq pt27 (polar pt26 (+(/ pi 2))6)); début de la case nombre joint
    (setq point13 (polar pt24 0 5));
    (setq centre12 (polar point13 (+(/ pi 2))3));

    (setq pt28 (polar pt26 0 8)); début de la case type joint
    (setq pt29 (polar pt28 (+(/ pi 2))6)); début de la case type joint
    (setq point14 (polar pt26 0 4));
    (setq centre13 (polar point14 (+(/ pi 2))3));

    (setq pt30 (polar pt28 0 8)); début de la case NF
    (setq pt31 (polar pt30 (+(/ pi 2))6)); fin de la case NF
    (setq point15 (polar pt28 0 4));
    (setq centre14 (polar point15 (+(/ pi 2))3));

    (setq pt32 (polar pt30 0 8)); début de la case épaisseur
    (setq pt33 (polar pt32 (+(/ pi 2))6)); fin de la case épaisseur
    (setq point16 (polar pt30 0 4)) ;
    (setq centre15 (polar point16 (+(/ pi 2))3));

    (setq pt34 (polar pt32 0 13)); début de la case matière
    (setq pt35 (polar pt34 (+(/ pi 2))6)); fin de la case matière
    (setq point17 (polar pt32 0 6.5));
    (setq centre16 (polar point17 (+(/ pi 2))3));

    (setq pt36 (polar pt34 0 10)); début de la case nombre de bls
    (setq pt37 (polar pt36 (+(/ pi 2))6)); début de la case nombre de bls
    (setq point18 (polar pt34 0 5));
    (setq centre17 (polar point18 (+(/ pi 2))3));

    (setq pt38 (polar pt36 0 22)); début de la case désignation des bls
    (setq pt39 (polar pt38 (+(/ pi 2))6)); fin de la case désignation des boulons
    (setq point19 (polar pt36 0 11));
    (setq centre18 (polar point19 (+(/ pi 2))3));

    (setq pt40 (polar pt38 0 62)); début de la case observations
    (setq pt41 (polar pt40 (+(/ pi 2))6)); fin de la case observations
    (setq point20 (polar pt38 0 31));
    (setq centre19 (polar point20 (+(/ pi 2))3));



    ;dessin des case

    (command "-calque" "ch" "ligne nomenclature" "")

    (command "polylign" ptinsertion pt1 pt2 pt3 ptinsertion ""); dessin case fonction
    (command "polylign" pt1 pt4 pt5 pt2 pt1 ""); dessin de la case nombre
    (command "polylign" pt5 pt6 pt7 pt4 pt5 ""); dessin de la case repère
    (command "polylign" pt6 pt8 pt9 pt7 pt6 ""); dessin de la case DN
    (command "polylign" pt8 pt10 pt11 pt9 pt8 ""); dessin de la case PN
    (command "polylign" pt10 pt12 pt13 pt11 pt10 ""); dessin de la case diam ext
    (command "polylign" pt12 pt14 pt15 pt13 pt12 ""); dessin de la case epaisseur
    (command "polylign" pt14 pt16 pt17 pt15 pt14 ""); dessin de la case matière
    (command "polylign" pt16 pt18 pt19 pt17 pt16 ""); dessin de la case type
    (command "polylign" pt18 pt20 pt21 pt19 pt18 ""); dessin de la case dimension
    (command "polylign" pt20 pt22 pt23 pt21 pt20 ""); dessin de la case matière
    (command "polylign" pt22 pt24 pt25 pt23 pt22 ""); dessin de la case raccordement
    (command "polylign" pt24 pt26 pt27 pt25 pt24 ""); dessin de la case nbjoint
    (command "polylign" pt26 pt28 pt29 pt27 pt26 ""); dessin de la case type joint
    (command "polylign" pt28 pt30 pt31 pt29 pt28 ""); dessin de la case NF
    (command "polylign" pt30 pt32 pt33 pt31 pt29 ""); dessin de la case épaisseur
    (command "polylign" pt32 pt34 pt35 pt33 pt32 ""); dessin de la case matière
    (command "polylign" pt34 pt36 pt37 pt35 pt34 ""); dessin de la case nbr de boulons
    (command "polylign" pt36 pt38 pt39 pt37 pt36 ""); dessin de la case désignation des boulons
    (command "polylign" pt38 pt40 pt41 pt39 pt38 ""); dessin de la case observation

    ; remplissage des textes dans les cases

    (command "-calque" "ch" "texte nomenclature" "")


    (command "texte" "m" centrecercle1 63 0 kelrepère); renvoie le texte repère dans la bulle
    (command "texte" "m" centre 2.5 0 fonction); renvoie le texte dans la case fonction
    (command "texte" "m" centre1 2.5 0 nombre); renvoie le texte nombre de bride
    (command "texte" "m" centre2 2.5 0 kelrepère); renvoie le texte repère dans la case
    (command "texte" "m" centre3 2.5 0 DN); renvoie le texte DN dans la case
    (command "texte" "m" centre4 2.5 0 PN); renvoie le texte PN dans la case
    (command "texte" "m" centre5 2.5 0 diamext); renvoie le texte diam ext dans la case
    (command "texte" "m" centre6 2.5 0 eptube); renvoie le texte épaisseur dans la case
    (command "texte" "m" centre7 2.5 0 matière); renvoie le texte "épaisseur" dans la case
    (command "texte" "m" centre8 2.5 0 typebride); renvoie le texte type bride dans la case
    (command "texte" "m" centre9 2.5 0 dimensions); renvoie le texte dimensions dans la case
    (command "texte" "m" centre10 2.5 0 matbride); renvoie le texte matière dans la case
    (command "texte" "m" centre11 2.5 0 raccordement); renvoie le texte raccordement dans la case
    (command "texte" "m" centre12 2.5 0 nbjoint); renvoie le texte nb joints dans la case
    (command "texte" "m" centre13 2.5 0 typejoint); renvoie le texte type joint dans la case
    (command "texte" "m" centre14 2.5 0 norme); renvoie le texte norme
    (command "texte" "m" centre15 2.5 0 epjoint); renvoie le texte épaisseur joint
    (command "texte" "m" centre16 2.5 0 matjoint); renvoie le texte matière du joint
    (command "texte" "m" centre17 2.5 0 nbbls); renvoie le texte nombre de bls
    (command "texte" "m" centre18 2.5 0 desbls); renvoie le texte désignation des boulons
    (command "texte" "m" centre19 2.5 0 obs); renvoie le texte observations

    )

  2. #2
    alex_pi
    Invité(e)
    Par défaut
    Comme tu l'as dit si bien, c'est ton projet de fin d'étude. En théorie donc, tu dois prouver que tu es capable de le faire, pas de le faire faire. Si si, la nuance est importante. Donc même si tu cherches un peu d'aide, il serait judicieux de montrer que tu as cherché par toi même avant de venir demander de l'aide.

    De plus, la balise CODE donnera une chance à tes lecteurs de regarder ton code.

  3. #3
    Membre actif
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2008
    Messages
    174
    Détails du profil
    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Février 2008
    Messages : 174
    Points : 220
    Points
    220
    Par défaut
    +1 pour les balises codes
    Vous n'arrivez pas à faire ce que vous voulez avec Linux?
    Read The Fine Manual !==>The Linux Documentation Project

Discussions similaires

  1. Programmer en lisp sur autocad
    Par jakeharper dans le forum Lisp
    Réponses: 4
    Dernier message: 17/07/2017, 14h18
  2. modification d'un lisp pour autocad map 3d
    Par pierricq dans le forum Lisp
    Réponses: 1
    Dernier message: 02/08/2009, 22h09
  3. indentation du lisp sous Emacs?
    Par maissa019 dans le forum Lisp
    Réponses: 2
    Dernier message: 15/04/2008, 10h45
  4. Réponses: 1
    Dernier message: 12/11/2007, 04h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo