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 :

Faire un repeat sur tous les textes sans les sélectionner manuellement


Sujet :

Lisp

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2019
    Messages : 9
    Points : 10
    Points
    10
    Par défaut Faire un repeat sur tous les textes sans les sélectionner manuellement
    Bonjour

    je pars d'une base trouvé sur internet qui permet de convertir un texte simple en bloc + attribut.
    Mon but et que automatiquement, tous les texte qui remplisse une condition se transforment seul sans avoir besoin de les selectionné 1 à 1.

    Actuellement, j'ai le code que j'ai copier ci-dessous auquel j'ai rajouter mes conditions. Ca fonctionne mais je suis donc obligé de cliquer sur chaque texte ... ca vérifie la condition et l'effectue si ok ...
    Comment faire pour les bloc se selectionne seul ? :/
    Un truc genre : prendre le 1er bloc test ... le tester .... passé au suivant .... Merci d'avance si vous pouvez m'aider ...

    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
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    defun c:txt2blk (/ blkName tagName lyrName ss index el txtHt
                         txtStyl txtHorJust txtVertJust txtLyr blkPt
                         blkHt attStr blkRot alignPt en
                      )
     
    (setq
    	ss (ssget '((0 . "text")))
    	index 0
    	testrenvoi "0"
    	testrenvoi (entget (ssname ss index))
    	texte (cdr (assoc 1 testrenvoi))
    	)
    (setq testrenvoi (substr texte 1 5))
              (if
               (or
                (= testrenvoi "test1.")
                (= testrenvoi "test2")
            )
     
                (progn
     
    texte (cdr (assoc 1 el))
    (write-line texte)
     
       (setq
         blkName "a"
         tagName "b"
         lyrName "c"
       )
       (cond
         ((not ss)
          (prompt "\nNo text selected.\n")
         )
         ('T
          (setq
            index 0
            el (entget (ssname ss index))
    texte (cdr (assoc 1 el))
            txtHt (cdr (assoc 40 el))
            txtStyl (cdr (assoc 7 el))
            txtHorJust (cdr (assoc 72 el))
            txtVertJust (cdr (assoc 73 el))
    	  flarg (cdr (assoc 41 el))
          )
    (write-line texte)
    (setq texte2 (substr texte 1 4))
    (write-line texte2)
          (entmake
            (list
              (cons 0 "block")
              (cons 2 blkName)
              (cons 70 2)
              (cons 10 '(0.0 0.0 0.0))
            )
          )
          (entmake
            (list
              (cons 0 "attdef")
              (cons 8 lyrName)
              (cons 10 '(0.0 0.0 0.0))
              (cons 40 txtHt)
              (cons 1 "")
              (cons 3 "Enter a value")
              (cons 2 tagName)
              (cons 70 0)
              (cons 7 txtStyl)
              (cons 72 txtHorJust)
              (cons 74 txtVertJust)
            )
          )
          (entmake '((0 . "endblk")))
     
          (repeat (sslength ss)
            (setq
              en (ssname ss index)
              el (entget en)
              txtLyr lyrName
              blkPt (cdr (assoc 10 el))
              blkHt (cdr (assoc 40 el))
              attStr (cdr (assoc 1 el))
              blkRot (cdr (assoc 50 el))
              txtStyl (cdr (assoc 7 el))
              txtHorJust (cdr (assoc 72 el))
              txtVertJust (cdr (assoc 73 el))
              alignPt (cdr (assoc 11 el))
              index (1+ index)
            )
            (entmake
              (list
                (cons 0 "insert")
                (cons 2 blkName)
                (cons 8 txtLyr)
                (cons 10 blkPt)
                (cons 41 (/ blkHt txtHt))
                (cons 42 (/ blkHt txtHt))
                (cons 43 (/ blkHt txtHt))
                (cons 50 blkRot)
                (cons 66 1)
              )
            )
            (entmake
              (list
                (cons 0 "attrib")
                (cons 8 txtLyr)
                (cons 10 blkPt)
                (cons 40 blkHt)
    		(cons 41 flarg)
                (cons 1 attStr)
                (cons 2 tagName)
                (cons 70 0)
                (cons 50 blkRot)
                (cons 7 txtStyl)
                (cons 72 txtHorJust)
                (cons 74 txtVertJust)
                (cons 11 alignPt)
              )
            )
            (entmake
              (list
               (cons 0 "seqend")
               (cons 8 txtLyr)
              )
            )
            (entdel en)
          )
          (redraw)
         )
       )
       (princ)
     )
    ))
     (princ "\n\nType 'TXT2BLK' to run program.")
     (princ)

  2. #2
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2019
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    J'ai résolu mon probleme avec le ssget tel que ci-dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    (setq
         blkName "a"
         tagName "b"
         ss      (ssget "_X" '((0 . "text") (-4 . "<OR") (1 . "test.*")  (1 . "test1.*") (-4 . "OR>")))
       )
       (cond
         ((not ss)
          (prompt "\nNo text selected.\n")
         )

Discussions similaires

  1. Boucle sur tous les mots contenus dans un fichier texte
    Par medmaysais dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 12/03/2016, 09h56
  2. Réponses: 0
    Dernier message: 06/03/2016, 05h29
  3. Faire un UPDATE sur tous les champs ?
    Par pasc06 dans le forum Langage
    Réponses: 8
    Dernier message: 03/12/2008, 10h28
  4. [MySQL] Faire une recherche sur tous les champ commencant par ..
    Par bullrot dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 31/10/2008, 11h45
  5. Réponses: 18
    Dernier message: 22/06/2006, 17h55

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