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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 17
    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 confirmé
    Inscrit en
    Juillet 2010
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 33
    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 confirmé
    Inscrit en
    Juin 2002
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 198
    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 confirmé
    Inscrit en
    Juillet 2010
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 33
    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
    Membre confirmé
    Inscrit en
    Juin 2002
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 198
    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

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 17
    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
    )

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

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

    Seifko

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 17
    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 ...)

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