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 :

redéfinir en masse des blocs Autocad


Sujet :

Lisp

  1. #1
    Candidat au Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2015
    Messages : 4
    Points : 3
    Points
    3
    Par défaut redéfinir en masse des blocs Autocad
    Bonjour à tous,
    J'ai fait une première ébauche d'un lisp Autocad 2013. Par contre je n'arrive pas à filtrer la liste des modèles avec ceux contenus dans chacun des fichiers du répertoire courant. (2ème partie).
    Actuellement le lisp ci-dessous, après avoir mis à jour le dessin ouvert, en deuxième partie insert tous les blocs de la liste des modèles dans les dessins. Je pense qu'il manque un focus après l'ouverture des fichiers du répertoire pour exécuter des commandes sur chacun des fichiers ouverts successivements. Mis en ( ;;;==== NE MARCHE PAS ) dans le lisp.
    Merci par avance de votre aide.
    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    (vl-load-com)
     
    (defun folderbox1 (message / sh folder result)
        (setq sh (vla-getinterfaceobject (vlax-get-acad-object) "Shell.Application"))
        (setq folder (vlax-invoke-method sh 'browseforfolder 0 message 0))
        (vlax-release-object sh)
        (if folder
          (progn (setq result (vlax-get-property (vlax-get-property folder 'self) 'path))
                 (if (wcmatch result "*\\")
                   result
                   (strcat result "\\")
                 )
          )
        )
      )
     
     
     
    (defun Ouvrir_dessin_dbx1 (dwg / dbx)
    (if (< (atoi (substr (getvar "ACADVER") 1 2)) 16)
    (setq dbx (vlax-create-object "ObjectDBX.AxDbDocument"))
    (setq dbx (vlax-create-object (strcat "ObjectDBX.AxDbDocument." (substr (getvar "ACADVER") 1 2))))
    )
    (vla-open dbx dwg)
    dbx
    )
     
     
     
     
    (defun c:test ( / dir files f b )
    ;;;---diallogbx
      (if (setq dir (folderbox1 "Selectionner un dossier avec des gabarits")
                files (vl-directory-files dir "*.dwg" 1)
          )
     
        (progn
          (foreach f files 
           (if (tblsearch "block" (vl-filename-base f))
    (progn
    (setq fichier (strcat dir "\\" f))
    (setq thisdrawing (vla-get-activedocument (vlax-get-acad-object)))
     
     
    (setq mspace2 (vla-get-modelspace thisdrawing))
     
     
     
    (setq obj2 (vla-InsertBlock
    mspace2
    (vlax-3d-point '(0 0 0))
    fichier
    1
    1
    1
    0
    ))
    ;(tblsearch "block" (setq b (vl-filename-base f)))
    (vla-delete obj2)
    )))
    (princ (strcat "\n...Dessin courant...ok (!) actualiser avec regen"  "\n"))(princ)
    ))
    ;;; (2ème partie)
                        ;;;---liste des dessins du repertoire
                        (setq rep (substr (getvar "dwgprefix") 1 (1- (strlen (getvar "dwgprefix")))))
     
                        (if (setq lst (vl-directory-files rep "*.dwg" 1))
                          (progn
                            (and (eq (strcase rep) (strcase (substr (getvar "dwgprefix") 1 (1- (strlen (getvar "dwgprefix"))))))
                              (setq lst (vl-remove (getvar "dwgname") lst))
                            )
    (progn
                         ;;;---for each liste du dossier courant
                            (foreach fic lst
                                   (princ (strcat "\n...Ouverture sur " fic "...ok \n"))(princ)
                             (if (setq dbx (ouvrir_dessin_dbx1 (strcat rep "\\" fic)))
                                (progn
                                 ;;;---for each du dossier des modèles choisis
                                 (foreach f (vl-directory-files dir "*.dwg" 0)
           ;;;==== NE MARCHE PAS (if (tblsearch "block" (vl-filename-base f))
    (progn                       
     
                                          (setq fichier1 (strcat dir f))
     
    (progn
    (setq sp1 (vla-get-ModelSpace dbx))
     
    (setq obj1 (vla-InsertBlock
    sp1
    (vlax-3d-point '(0 0 0))
    fichier1
    1
    1
    1
    0
    ))
    (vla-delete obj1)
    )
    )
     ) ;;;===== NE MARCHE PAS)
    (princ (strcat "\n...Sauvegarde sur " fic "...ok \n"))(princ)
                             (vla-saveas dbx (strcat rep "\\" fic))
                              (vlax-release-object dbx)
                                  ) 
                                ) 
                             )   
                          )
                            )
                          )
      )

  2. #2
    Candidat au Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2015
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Bonjour, le lisp escompté marche enfin avec mes remerciements pour HMSILVA d'Autodesk community. Le voici en post :
    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
     
    ;***********************************************************
    ;***********************************************************
    ;***************** TEST *************************************
     
    (vl-load-com)
     
    (defun folderbox1 (message / sh folder result)
        (setq sh (vla-getinterfaceobject (vlax-get-acad-object) "Shell.Application"))
        (setq folder (vlax-invoke-method sh 'browseforfolder 0 message 0))
        (vlax-release-object sh)
        (if	folder
          (progn (setq result (vlax-get-property (vlax-get-property folder 'self) 'path))
    	     (if (wcmatch result "*\\")
    	       result
    	       (strcat result "\\")
    	     )
          )
        )
      )
     
     
     
    (defun Ouvrir_dessin_dbx1 (dwg / dbx)
    (if (< (atoi (substr (getvar "ACADVER") 1 2)) 16)
    (setq dbx (vlax-create-object "ObjectDBX.AxDbDocument"))
    (setq dbx (vlax-create-object (strcat "ObjectDBX.AxDbDocument." (substr (getvar "ACADVER") 1 2))))
    )
    (vla-open dbx dwg)
    dbx
    )
     
     
     
     
    (defun c:test ( / dir files f b )
    ;;;---diallogbx
      (if (setq dir (folderbox1 "Selectionner un dossier avec des gabarits")
                files (vl-directory-files dir "*.dwg" 1)
          )
     
        (progn
          (foreach f files 
           (if (tblsearch "block" (setq b (vl-filename-base f)))
    (progn
    (setq fichier2 (strcat dir "\\" f))
    (setq thisdrawing (vla-get-activedocument (vlax-get-acad-object)))
     
     
    (setq mspace2 (vla-get-modelspace thisdrawing))
     
     
     
    (setq obj2 (vla-InsertBlock
    mspace2
    (vlax-3d-point '(0 0 0))
    fichier2
    1
    1
    1
    0
    ))
    (vla-delete obj2)
    )))
    (princ (strcat "\n...Dessin courant...ok (!) actualiser avec regen"  "\n"))(princ)
    ))
                        ;;;---liste des dessins du repertoire
                        (setq rep (substr (getvar "dwgprefix") 1 (1- (strlen (getvar "dwgprefix")))))
     
                        (if (setq lst (vl-directory-files rep "*.dwg" 1))
                          (progn
                            (and (eq (strcase rep) (strcase (substr (getvar "dwgprefix") 1 (1- (strlen (getvar "dwgprefix"))))))
                              (setq lst (vl-remove (getvar "dwgname") lst))
                            )
    (progn
                         ;;;---for each liste du dossier courant
                            (foreach fic lst
     
                                   (princ (strcat "\n...Ouverture sur " fic "...ok \n"))(princ)
    (if (setq dbx (ouvrir_dessin_dbx1 (strcat rep "\\" fic)))
       (progn
    ;;;---for each du dossier des modèles choisis
          (foreach f (vl-directory-files dir "*.dwg" 0)
             (vlax-for blk (vla-get-blocks dbx)
                (if (and (= (vla-get-isxref blk) :vlax-false)
                         (= (vla-get-islayout blk) :vlax-false)
                         (= (vla-get-name blk) (vl-filename-base f))
                    )
    (progn
                                          (setq fichier1 (strcat dir f))
     
    (progn
    (setq sp1 (vla-get-ModelSpace dbx))
     
    (setq obj1 (vla-InsertBlock
    sp1
    (vlax-3d-point '(0 0 0))
    fichier1
    1
    1
    1
    0
    ))
    (vla-delete obj1)
    )
    )
     )))
    (princ (strcat "\n...Sauvegarde sur " fic "...ok \n"))(princ)
                             (vla-saveas dbx (strcat rep "\\" fic))
                              (vlax-release-object dbx)
                                  ) 
                                ) 
                             )   
                          )
                            )
                          )
      )

  3. #3
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 101
    Points : 5 849
    Points
    5 849
    Par défaut
    Ce serait bien (pour toi comme pour ceux qui lisent ton code) que tu apprennes à l'indenter correctement!

    Avec emacs, tu ouvres le fichier dans le bon mode (M-x lisp-mode RET (si pas déjà fait)), tu sélectionnes tout (C-x h) et tu inventes (TAB)

    Avec d'autres éditeurs, il y a souvent une solution (menu > source > indent)

  4. #4
    Candidat au Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2015
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Pour répondre à Jack-ft voici le code avec une meilleur forme :
    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
     
    ;***********************************************************
    ;***********************************************************
    ;***************** TEST ************************************
     
    (vl-load-com)
     
    (defun folderbox1 (message / sh folder result)
    (setq sh (vla-getinterfaceobject (vlax-get-acad-object) "Shell.Application"))
    (setq folder (vlax-invoke-method sh 'browseforfolder 0 message 0))
    (vlax-release-object sh)
        (if folder
            (progn (setq result (vlax-get-property (vlax-get-property folder 'self) 'path))
                (if (wcmatch result "*\\")
                result
                (strcat result "\\")
                )
            )
        )
    )
     
     
    (defun Ouvrir_dessin_dbx1 (dwg / dbx)
        (if (< (atoi (substr (getvar "ACADVER") 1 2)) 16)
            (setq dbx (vlax-create-object "ObjectDBX.AxDbDocument"))
            (setq dbx (vlax-create-object (strcat "ObjectDBX.AxDbDocument." (substr (getvar "ACADVER") 1 2))))
        )
    (vla-open dbx dwg)dbx
    )
     
     
     
    (defun c:test ( / dir files f b )
    ;;;---diallogbx
    (if (setq dir (folderbox1 "Selectionner un dossier avec des gabarits")
                files (vl-directory-files dir "*.dwg" 1)
        )
        (progn
            (foreach f files 
                (if (tblsearch "block" (setq b (vl-filename-base f)))
                    (progn
                        (setq fichier2 (strcat dir "\\" f))
                        (setq thisdrawing (vla-get-activedocument (vlax-get-acad-object)))
                        (setq mspace2 (vla-get-modelspace thisdrawing))
                        (setq obj2 (vla-InsertBlock mspace2 (vlax-3d-point '(0 0 0)) fichier2 1 1 1 0))
                    (vla-delete obj2)
                    )
                )
            )
    (princ (strcat "\n...Dessin courant...ok (!) actualiser avec regen"  "\n"))(princ)
        )
    )
    ;;;---liste des dessins du repertoire
        (setq rep (substr (getvar "dwgprefix") 1 (1- (strlen (getvar "dwgprefix")))))
        (if (setq lst (vl-directory-files rep "*.dwg" 1))
          (progn
            (and (eq (strcase rep) (strcase (substr (getvar "dwgprefix") 1 (1- (strlen (getvar "dwgprefix"))))))
              (setq lst (vl-remove (getvar "dwgname") lst))
            )
                (progn
         ;;;---for each liste du dossier courant
                    (foreach fic lst
                    (princ (strcat "\n...Ouverture sur " fic "...ok \n"))(princ)
                        (if (setq dbx (ouvrir_dessin_dbx1 (strcat rep "\\" fic)))
                             (progn
                             ;;;---for each du dossier des modèles choisis
                                (foreach f (vl-directory-files dir "*.dwg" 0)
                                    (vlax-for blk (vla-get-blocks dbx)
                                        (if (and (= (vla-get-isxref blk) :vlax-false)
                                             (= (vla-get-islayout blk) :vlax-false)
                                            (= (vla-get-name blk) (vl-filename-base f))
                                             )
                                            (progn
                                                (setq fichier1 (strcat dir f))
                                                (progn
                                                    (setq sp1 (vla-get-ModelSpace dbx))
                                                    (setq obj1 (vla-InsertBlock sp1 (vlax-3d-point '(0 0 0)) fichier1 1 1 1 0))
                                                    (vla-delete obj1)
                                                )
                                            )
                                        )
                                    )
                                )
                             (princ (strcat "\n...Sauvegarde sur " fic "...ok \n"))(princ)
                             (vla-saveas dbx (strcat rep "\\" fic))
                             (vlax-release-object dbx)
                            )
                        )
                    )
                )
            )
        )
    )

  5. #5
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Juin 2018
    Messages : 2
    Points : 3
    Points
    3
    Par défaut modification du lisp
    bonjour à tous
    est-il possible de modifier ce code pour ne pas avoir de boite de dialogue mais de renvoyer un un répertoire pour les fichiers gabarit ?
    Cordialement

    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    ;***********************************************************
    ;***********************************************************
    ;***************** TEST ************************************
     
    (vl-load-com)
     
    (defun folderbox1 (message / sh folder result)
    (setq sh (vla-getinterfaceobject (vlax-get-acad-object) "Shell.Application"))
    (setq folder (vlax-invoke-method sh 'browseforfolder 0 message 0))
    (vlax-release-object sh)
        (if folder
            (progn (setq result (vlax-get-property (vlax-get-property folder 'self) 'path))
                (if (wcmatch result "*\\")
                result
                (strcat result "\\")
                )
            )
        )
    )
     
     
    (defun Ouvrir_dessin_dbx1 (dwg / dbx)
        (if (< (atoi (substr (getvar "ACADVER") 1 2)) 16)
            (setq dbx (vlax-create-object "ObjectDBX.AxDbDocument"))
            (setq dbx (vlax-create-object (strcat "ObjectDBX.AxDbDocument." (substr (getvar "ACADVER") 1 2))))
        )
    (vla-open dbx dwg)dbx
    )
     
     
     
    (defun c:test ( / dir files f b )
    ;;;---diallogbx
    (if (setq dir (folderbox1 "Selectionner un dossier avec des gabarits")
                files (vl-directory-files dir "*.dwg" 1)
        )
        (progn
            (foreach f files 
                (if (tblsearch "block" (setq b (vl-filename-base f)))
                    (progn
                        (setq fichier2 (strcat dir "\\" f))
                        (setq thisdrawing (vla-get-activedocument (vlax-get-acad-object)))
                        (setq mspace2 (vla-get-modelspace thisdrawing))
                        (setq obj2 (vla-InsertBlock mspace2 (vlax-3d-point '(0 0 0)) fichier2 1 1 1 0))
                    (vla-delete obj2)
                    )
                )
            )
    (princ (strcat "\n...Dessin courant...ok (!) actualiser avec regen"  "\n"))(princ)
        )
    )
    ;;;---liste des dessins du repertoire
        (setq rep (substr (getvar "dwgprefix") 1 (1- (strlen (getvar "dwgprefix")))))
        (if (setq lst (vl-directory-files rep "*.dwg" 1))
          (progn
            (and (eq (strcase rep) (strcase (substr (getvar "dwgprefix") 1 (1- (strlen (getvar "dwgprefix"))))))
              (setq lst (vl-remove (getvar "dwgname") lst))
            )
                (progn
         ;;;---for each liste du dossier courant
                    (foreach fic lst
                    (princ (strcat "\n...Ouverture sur " fic "...ok \n"))(princ)
                        (if (setq dbx (ouvrir_dessin_dbx1 (strcat rep "\\" fic)))
                             (progn
                             ;;;---for each du dossier des modèles choisis
                                (foreach f (vl-directory-files dir "*.dwg" 0)
                                    (vlax-for blk (vla-get-blocks dbx)
                                        (if (and (= (vla-get-isxref blk) :vlax-false)
                                             (= (vla-get-islayout blk) :vlax-false)
                                            (= (vla-get-name blk) (vl-filename-base f))
                                             )
                                            (progn
                                                (setq fichier1 (strcat dir f))
                                                (progn
                                                    (setq sp1 (vla-get-ModelSpace dbx))
                                                    (setq obj1 (vla-InsertBlock sp1 (vlax-3d-point '(0 0 0)) fichier1 1 1 1 0))
                                                    (vla-delete obj1)
                                                )
                                            )
                                        )
                                    )
                                )
                             (princ (strcat "\n...Sauvegarde sur " fic "...ok \n"))(princ)
                             (vla-saveas dbx (strcat rep "\\" fic))
                             (vlax-release-object dbx)
                            )
                        )
                    )
                )
            )
        )
    )

  6. #6
    Candidat au Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2015
    Messages : 4
    Points : 3
    Points
    3
    Par défaut réponse à Mika
    Bonjour, voici le code modifié pour actualiser les dessins du dossier courant (fichier ouvert) avec un chemin personnalisé sans boite de dialogue :
    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
     
    (vl-load-com)
     
    (defun folderbox1 (message / sh folder result)
    ;remplacer ce chemin de vos gabarits par le votre
    (setq folder "Z:\\Desktop\\Bureau\\Trav\\")
    )
     
    (defun Ouvrir_dessin_dbx1 (dwg / dbx)
        (if (< (atoi (substr (getvar "ACADVER") 1 2)) 16)
            (setq dbx (vlax-create-object "ObjectDBX.AxDbDocument"))
            (setq dbx (vlax-create-object (strcat "ObjectDBX.AxDbDocument." (substr (getvar "ACADVER") 1 2))))
        )
    (vla-open dbx dwg)dbx
    )
     
    (defun c:test ( / dir files f b )
        (if (setq dir (folderbox1 "")
                    files (vl-directory-files dir "*.dwg" 1)
            )
            (progn
            ;application au dessin courant
                (foreach f files 
                    (if (tblsearch "block" (setq b (vl-filename-base f)))
                        (progn
                            (setq fichier2 (strcat dir "\\" f))
                            (setq thisdrawing (vla-get-activedocument (vlax-get-acad-object)))
                            (setq mspace2 (vla-get-modelspace thisdrawing))
                            (setq obj2 (vla-InsertBlock mspace2 (vlax-3d-point '(0 0 0)) fichier2 1 1 1 0))
                        (vla-delete obj2)
                        )
                    )
                )
                (princ (strcat "\n...Dessin courant...ok (!) actualiser avec attsync"  "\n"))(princ)
            )
        )
     
     
    ;liste des dessins du repertoire
        (setq rep (substr (getvar "dwgprefix") 1 (1- (strlen (getvar "dwgprefix")))))
        (if (setq lst (vl-directory-files rep "*.dwg" 1))
          (progn
            (and (eq (strcase rep) (strcase (substr (getvar "dwgprefix") 1 (1- (strlen (getvar "dwgprefix"))))))
              (setq lst (vl-remove (getvar "dwgname") lst))
             )
            (progn
            (setq dir (folderbox1 "Selectionner un dossier avec des gabarits")
                files (vl-directory-files dir "*.dwg" 1)
            )
         ;foreach liste du dossier courant
          (foreach fic lst
                    (princ (strcat "\n...Ouverture sur " fic "...ok \n"))(princ)
                        (if (setq dbx (ouvrir_dessin_dbx1 (strcat rep "\\" fic)))
                             (progn
                             ;foreach du dossier des modèles choisis
                                (foreach f (vl-directory-files dir "*.dwg" 0)
                                    (vlax-for blk (vla-get-blocks dbx)
                                        (if (and (= (vla-get-isxref blk) :vlax-false)
                                             (= (vla-get-islayout blk) :vlax-false)
                                            (= (vla-get-name blk) (vl-filename-base f))
                                             )
                                            (progn
                                                (setq fichier1 (strcat dir f))
                                                (progn
                                                    (setq sp1 (vla-get-ModelSpace dbx))
                                                    (setq obj1 (vla-InsertBlock sp1 (vlax-3d-point '(0 0 0)) fichier1 1 1 1 0))
                                                    (vla-delete obj1)
                                                )
                                            )
                                        )
                                    )
                                )
                             (princ (strcat "\n...Sauvegarde sur " fic "...ok \n"))(princ)
                             (vla-saveas dbx (strcat rep "\\" fic))
                             (vlax-release-object dbx)
                            )
                        )
                    )
                )
            )
        )
    )
    cordialement
    Gandhihp

  7. #7
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Juin 2018
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup
    le code marche nickel
    cordialement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Positionnement des blocs
    Par Manio 54 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 10/08/2005, 18h05
  2. [Info]Coloration des { blocs }
    Par zerovolt dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 23/02/2005, 12h34
  3. Réponses: 13
    Dernier message: 20/01/2005, 12h40
  4. problème pour faire des blocs
    Par tinkye_winkye dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 04/01/2005, 14h13
  5. [Astuce][Thread]Utilisation des blocs synchronized
    Par Pill_S dans le forum Concurrence et multi-thread
    Réponses: 14
    Dernier message: 21/07/2004, 14h14

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