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 :

Autocad changer épaisseur d'un calque


Sujet :

Lisp

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 17
    Points : 8
    Points
    8
    Par défaut Autocad changer épaisseur d'un calque
    Bonjour !

    Je cherche a changer l'épaisseur en lisp d'un calque. (le faire passé a 0.30 mm quand il se crée automatiquement)

    J'ai déjà ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    	(entmake
     
    		(list
     
    			(cons 0  "LAYER")
     
    			(cons 100 "AcDbSymbolTableRecord")
     
    			(cons 100 "AcDbLayerTableRecord")
     
    			(cons 2 nouveaucalque)
     
    			(cons 70 0)
     
    			(cons 62 couleur)
     
    			(cons 370 -3)
     
    			(cons 6 "Continuous")
     
    		)
     
    	)
    Il ne me manque donc qu'un : (cons ? "0.30 mm")

    Mais je ne trouve pas la valeur a mettre à la place du "?"
    J'ai chercher via se site : http://www.teache.info/categorie-11211407.html

    A première vu, ça serait 39 mais ... quand j'essaye, ça ne fonctionne pas ... donc je sèche ...

    Merci d'avance !

  2. #2
    Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 33
    Points : 42
    Points
    42
    Par défaut
    Salut

    Citation Envoyé par Seifko Voir le message
    Bonjour !

    Je cherche a changer l'épaisseur en lisp d'un calque. (le faire passé a 0.30 mm quand il se crée automatiquement)

    J'ai déjà ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    	(entmake
     
    		(list
     
    			(cons 0  "LAYER")
     
    			(cons 100 "AcDbSymbolTableRecord")
     
    			(cons 100 "AcDbLayerTableRecord")
     
    			(cons 2 nouveaucalque)
     
    			(cons 70 0)
     
    			(cons 62 couleur)
     
    			(cons 370 -3)
     
    			(cons 6 "Continuous")
     
    		)
     
    	)
    Il ne me manque donc qu'un : (cons ? "0.30 mm")

    Mais je ne trouve pas la valeur a mettre à la place du "?"
    J'ai chercher via se site : http://www.teache.info/categorie-11211407.html

    A première vu, ça serait 39 mais ... quand j'essaye, ça ne fonctionne pas ... donc je sèche ...

    Merci d'avance !
    @+

  3. #3
    Membre habitué
    Inscrit en
    Juin 2002
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 198
    Points : 139
    Points
    139
    Par défaut
    pour une introduction vers vlisp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    (setq monplant
      (vla-add
      (vlax-get
      (vlax-get
      (vlax-get-acad-object)'activedocument)'layers)"monplant")
    )
    ..
    modifier les valeurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    (vlax-put monplant 'Linetype "hidden")
    (vlax-put monplant 'LineWeight acLnWt030)
    ..
    lineweight
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
    Lineweight
     
    acLineWeight enum; read-write 
     
    acLnWtByLayer 
     
    acLnWtByBlock 
     
    acLnWtByLwDefault 
     
    acLnWt000 
     
    acLnWt005 
     
    acLnWt009 
     
    acLnWt013 
     
    acLnWt015 
     
    acLnWt018 
     
    acLnWt020 
     
    acLnWt025 
     
    acLnWt030 
     
    acLnWt035 
     
    acLnWt040 
     
    acLnWt050 
     
    acLnWt053 
     
    acLnWt060 
     
    acLnWt070 
     
    acLnWt080 
     
    acLnWt090 
     
    acLnWt100 
     
    acLnWt106 
     
    acLnWt120 
     
    acLnWt140 
     
    acLnWt158 
     
    acLnWt200 
     
    acLnWt211

  4. #4
    Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 33
    Points : 42
    Points
    42
    Par défaut
    Citation Envoyé par clovis Voir le message
    pour une introduction vers vlisp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    (setq monplant
      (vla-add
      (vlax-get
      (vlax-get
      (vlax-get-acad-object)'activedocument)'layers)"monplant")
    )
    ..
    modifier les valeurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    (vlax-put monplant 'Linetype "hidden")
    (vlax-put monplant 'LineWeight acLnWt030)
    ..
    lineweight
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
    Lineweight
     
    acLineWeight enum; read-write 
     
    acLnWtByLayer 
     
    acLnWtByBlock 
     
    acLnWtByLwDefault 
     
    acLnWt000 
     
    acLnWt005 
     
    acLnWt009 
     
    acLnWt013 
     
    acLnWt015 
     
    acLnWt018 
     
    acLnWt020 
     
    acLnWt025 
     
    acLnWt030 
     
    acLnWt035 
     
    acLnWt040 
     
    acLnWt050 
     
    acLnWt053 
     
    acLnWt060 
     
    acLnWt070 
     
    acLnWt080 
     
    acLnWt090 
     
    acLnWt100 
     
    acLnWt106 
     
    acLnWt120 
     
    acLnWt140 
     
    acLnWt158 
     
    acLnWt200 
     
    acLnWt211
    Salut

    Je ne pense pas que le vlisp soit le plus indiqué dans ce cas.
    Il faut créer le calque, puis lui changer ses paramètres alors que c'est fait directement grâce à la fonction entmake.

    @+

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 17
    Points : 8
    Points
    8
    Par défaut
    Merci patrick ! C'est bien ça !

    Seifko

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 17
    Points : 8
    Points
    8
    Par défaut
    Encore une petite question qui concerne principalement la même chose, je ne vais peut-être pas recrée un sujet pour ça mais :

    Ok , je sais créer un calque dans autocad en lisp

    Mais ... Comment modifier se calque en lisp ?

    Comme sur les plans qu'on m'a fournie, certains calques ont été crées avec une épaisseur par défaut, je ne peux pas recrée le calque et donc, je dois le modifier ... (pour mettre 30 mm a ses calques ...)

  7. #7
    Membre habitué
    Inscrit en
    Juin 2002
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 198
    Points : 139
    Points
    139
    Par défaut
    Citation Envoyé par Patrick_35 Voir le message
    Salut

    Je ne pense pas que le vlisp soit le plus indiqué dans ce cas.
    Il faut créer le calque, puis lui changer ses paramètres alors que c'est fait directement grâce à la fonction entmake.

    @+
    Au contraire, cela permet de commencer avec Vlisp en douceur

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 17
    Points : 8
    Points
    8
    Par défaut
    bah personnelement Clovis, je comprend strictement rien a tes lignes de commande ...

    Je comprends surement mieux la méthode de patrick puisque je suispassé par le PASCAL aupavent (apprendre le Pascal a l'iut, je me demande encore l'interet néanmoins).

    Toujours est-il que j'ai résolu mon probleme avec entmod ouf je sais m'en servir mintenant.

    Je donne la solution au cas ou n autre débutant tomberais ici :

    (progn
    (setq propriete (entget (tblobjname "LAYER" "NOM DU CALQUE A MODIFIER"))) ; Obtient la liste des propriétés du calque
    (setq epaisseur 30) ; Regle l'épaisseur du calque 0.30mm
    (setq propriete (subst (cons '370 epaisseur) (assoc '370 propriete) propriete)) ; Modifie l'épaisseur du calque pour le rendre conforme au 0.30mm
    (entmod propriete) ; réintégre les données dans autocad
    )

  9. #9
    Membre habitué
    Inscrit en
    Juin 2002
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 198
    Points : 139
    Points
    139
    Par défaut
    J'avoue que commencer avec Vlisp semble incomprehensible.
    Surtout qu'au début il faut aller chercher l'object contenant les plans
    L'avantage est que les modifications d'objets, ultérieurement, deviennent plus simples
    ex. chercher l'object contenant les plans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (setq ObPlans(vlax-get (vlax-get (vlax-get-acad-object)'activedocument)'layers))
    puis y ajouter le plan de ton choix
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (setq monplant  (vla-add ObPlans  "monplant"))
    puis changer ses propriétés
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    (vlax-put monplant 'Linetype "hidden")
    (vlax-put monplant 'LineWeight acLnWt030)
    ..
    Pour obtenir les propriétés que tu peux modifier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (vlax-dump-object monplant t)

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 17
    Points : 8
    Points
    8
    Par défaut
    Clovis, tu aurais un didacticiel pour ton vlisp ...

    Ton exemple me semble assez intéressant donc si je pouvais approfondir ...

    Ah moins que tu me fasse professeur

  11. #11
    Membre habitué
    Inscrit en
    Juin 2002
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 198
    Points : 139
    Points
    139
    Par défaut
    Avant d'utiliser vlisp, j'ai commencé par des macros, puis lisp et bien plus tard lorsque j'ai voulu communiqué avec Excel je me suis mis à vlisp. Bref Comme disais Patrick, il n'est pas toujours nécessaire d'utiliser vlisp.
    Je te conseille d'utiliser vlisp pour des fonctions simples comme modification d'objects (ligne, text...) : apprentissage + facile
    Commence par ces fonctions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    (defun ob()(vlax-ename->vla-object(car(entsel))))
    (defun du(a)(vlax-dump-object a t))
    que tu pourras charger dès le démarrage d'autocad.
    Tu pourras les utiliser dans tes programmes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (setq UneEntite (ob))
    pour avoir un object que tu pourra travailler avec vlisp
    et pour connaitre les propriétés modifiables d'une entitée
    Le + intéressant est de commencer par écrire des fonctions simples.
    NB:Le travail le + difficile est d'apprendre les nouveaux termes.
    -> voir F1 dans autocad ->autolisp,visualLisp->reference->fonctions commençant par vl-

    Pour un cours regarde par ici
    http://www.augi.com/education/archive.asp?page=293#top
    année 2007

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 17
    Points : 8
    Points
    8
    Par défaut
    Merci Clovis, je vais étudier ça avec attention (quand je serais un peu moins surbooké ^^)

    Surtout pour la communication avec excel qui m'interesse vraiment et pourrait me permettre de me dabarraser d'une feuille magouille d'excel pour inserer dans mes fonction lisp

  13. #13
    Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 33
    Points : 42
    Points
    42
    Par défaut
    Citation Envoyé par Seifko Voir le message
    Surtout pour la communication avec excel qui m'interesse vraiment et pourrait me permettre de me dabarraser d'une feuille magouille d'excel pour inserer dans mes fonction lisp
    Salut

    J'ai fait des fonctions pour simplifier les manipulations avec Excel.
    Et comme maintenant, on utilise de plus en plus Open Office, cela fonctionne aussi.

    @+

Discussions similaires

  1. Changer épaisseur des traits pour la couche "ADMINISTRATIVEUNITS.BOUNDARIES"
    Par Guillaume D dans le forum IGN API Géoportail
    Réponses: 3
    Dernier message: 17/11/2010, 23h14
  2. Changer un MovieClip de calque, c'est possible ?
    Par Kicker dans le forum ActionScript 1 & ActionScript 2
    Réponses: 0
    Dernier message: 28/02/2010, 17h30
  3. Réponses: 5
    Dernier message: 20/03/2009, 17h09
  4. [VBA-AUTOCAD] Changer de calque actif
    Par sechanbask dans le forum Général VBA
    Réponses: 3
    Dernier message: 14/12/2006, 22h34
  5. Réponses: 2
    Dernier message: 04/04/2006, 17h03

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