Aller au contenu

BLOC ET PROPRIETES DYNAMIQUE


Messages recommandés

Posté(e)

bonsoir

 

j'ai mis a jour le LISP et je le met a disposition

 

ca affiche dans la boite de dialogue ce que l on va réellement copier par rapport a un parametre

 

 

 

a+

 

Phil

FREELANCE

Autodesk Architecture 2025 sous windows 11 64

REVIT

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Posté(e)

Salut,

 

 

Super je testerais dès que possible ... j'adore ce lisp ! wink.gif

 

Je suis persuadé qu'il sera un jour implémenté nativement dans autocad

Raph.

Celui qui pose une question est bête 5 minutes, celui qui n'en pose pas l'est toute sa vie !

Posté(e)

bonsoir

 

j'ai mis a jour le LISP et je le met a disposition

 

ca affiche dans la boite de dialogue ce que l on va réellement copier par rapport a un parametre

 

 

 

a+

 

Phil

 

salut philphil,

je ne comprends pas ce que fait ton lisp, est ce possible d'avoir un exemple stp ?

Je pensais qu'il permettait de copier les paramètres bloc dynamique d'un bloc A vers B , j'ai essayé mais rien est copié ?? c'est pour cela que j'aimerais bien une démo si possible.

Encore merci du partage.

Meilleures salutations AHBV

Posté(e)

hello

 

oui c'est le but

 

d'un bloc dynamique A vers un bloc dynamique A1 ou A2

 

mais pas vers un bloc B1 ou B2 ...

 

il faut que ce soit des blocs dynamique de meme nom, donc avec des nom de parametre identiques

 

met en place 10 fois le meme blocs

modifie manuellement le premier

passe le LISP sur le 1iere bloc vers les 9 autres

et ils seront identique suivant le(s) parametre(s) que tu auras coché

 

faut pas que la couche sur laquelle est implanté le bloc soit verrouillé, ni que l'échelle Z du bloc soit modifie sinon ca donne une multiplication suivant la valeur de Z bizarrement

 

en esperant que ca fonctionne chez toi

 

il y en a t'il d'autre ou cela ne fonctionne pas ?

 

a+

 

phil

FREELANCE

Autodesk Architecture 2025 sous windows 11 64

REVIT

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Posté(e)

idem pour moi, cette version ne fait aucune modification

Raph.

Celui qui pose une question est bête 5 minutes, celui qui n'en pose pas l'est toute sa vie !

Posté(e)

bonjour

 

 

j'ai retiré des lignes parasites, ou des demandes de variables qui ne sont trouvées que chez moi mais pas ailleurs

 

en esperant que ca marche cette fois

 

appel de fonction : MDP2

 

MDP 2.01.LSP

 

a+

 

Phil

FREELANCE

Autodesk Architecture 2025 sous windows 11 64

REVIT

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Posté(e)

bonjour

 

j'ai un autre LISP qui force les propriétés dynamiques d'un bloc

 

mais je ne comprend pas pourquoi ca ne fonctionne pas avec les états d'inversion

en mettant 0 ou 1

 

en changeant les parametres numeriques type "longueur" "largeur" ca fonctionnent pourtant

 

j'ai cette erreur

 

TOTO 10 :; erreur: Erreur Automation Entrée incorrecte

 

d'apres la liste PRO2 il faut bien entrer un nombre entier et non une chaine de caractere

 

donc mystere

 

merci pour ceux qui savent

 

Phil

 

 

(defun c:cpnf (/
;;;               propdynnom2
             )
 (setvar "cmdecho" 0)
 (setq osm (getvar "osmode"))
 (prompt "\nSELECTIONNER LES BLOCS PARAMETRIQUE A MODIFIER :")
 (setq selinsert (ssget (list '(0 . "INSERT"))))
 (setq com (sslength selinsert))
 (setq compt 0
       propdynnom2 nil
       pop2 nil
       pro2 nil
 )
 (while (< compt com)
   (progn (foreach att (vlax-invoke (vlax-ename->vla-object (cdr (assoc -1 (entget (ssname selinsert compt)))))
                                    'getdynamicblockproperties
                       )
            (if (/= (vlax-variant-type (vla-get-value att)) 8197)
              (setq propdynnom2 (cons (vla-get-propertyname att) propdynnom2)
                    pro2        (cons (list (vla-get-propertyname att)
                                            (vla-get-unitstype att)
                                            (vlax-variant-type (vla-get-value att))
                                            (vlax-variant-value (vla-get-value att))
                                      )
                                      pro2
                                )
              )
            )
          )
          (setq compt (1+ compt))
   )
 )
 (setq propdynnom (remove_doubles (vl-sort propdynnom2 '<)))
 (boitepropdyn2)
 (setq compt 0)
 (setq com (sslength selinsert))
 (while (< compt com)
   (foreach don ret
     (setq test14 don)
     (foreach att (vlax-invoke (vlax-ename->vla-object (cdr (assoc -1 (entget (ssname selinsert compt)))))
                               'getdynamicblockproperties
                  )
       (progn (setq test20 att)
              (if (= (vla-get-propertyname att) (car don))
                (progn (if (and (= (vla-get-unitstype att) 0) (= (vlax-variant-type (vla-get-value att)) 2))
                         (progn (prompt "\nTOTO 10 :")
                                (setq test10 (cdr don))
                                (setq test100 (atoi (cdr don)))
                                (vla-put-value att (atoi (cdr don)))
                         )
                       )
                       (if (and (= (vla-get-unitstype att) 1) (= (vlax-variant-type (vla-get-value att)) 5))
                         (progn (prompt "\nTOTO 11 :")
                                (setq test11 (cdr don))
                                (vla-put-value att (* (atof (cdr don)) (/ pi 180)))
                         )
                       )
                       (if (and (= (vla-get-unitstype att) 2) (= (vlax-variant-type (vla-get-value att)) 5))
                         (progn (prompt "\nTOTO 12 :")
                           (setq test12 (cdr don))
                           (vla-put-value att (atof (cdr don))))
                       )
                )
              )
       )
     )
   )
   (setq compt (1+ compt))
 )
 (setvar "osmode" osm)
 (princ)
)

(defun boitepropdyn2 (/ tmp file fuzz
;;;                     ret
                     pn av dcl_id val)
 (setq tmp  (vl-filename-mktemp "Tmp.dcl")
       file (open tmp "w")
       ret  nil
 )
 (write-line (strcat "DynBlkProps:dialog{label=\"Blocs dynamiques\";"
                     "
             :text{label=\"Nom du bloc : \""
                     (vl-prin1-to-string "Tous les blocs")
                     " ;}
             :text{label=\"Nombre de bloc : "
                     (itoa com)
                     "\"; }

             spacer;:boxed_column{label=\"Propriétés dynamiques\";"
             )
             file
 )
 (foreach pn propdynnom
   (write-line (strcat ":row{:edit_box{label="
                       (vl-prin1-to-string pn)
                       ";key="
                       (vl-prin1-to-string pn)
                       ";edit_width=20;allow_accept=true;}
                      
      
	       }"
               )
               file
   )
 )
 (write-line "}spacer;ok_cancel;}" file)
 (close file)
 (setq dcl_id (load_dialog tmp))
 (if (not (new_dialog "DynBlkProps" dcl_id))
   (exit)
 )
 (foreach p pop2 (start_list (car p)) (mapcar 'add_list (cdr p)) (end_list))
 (action_tile
   "accept"
   "(foreach p propdynnom
(if (assoc p POP2)
(setq val (nth (atoi (get_tile p)) (cdr (assoc p POP2))))
(setq val (get_tile p)))
(if (and val (/= val \"\"))
(setq ret (cons (cons p val) ret))))
(and (not ret) (setq ret T))
(setq sel (get_tile \"selset\"))
(done_dialog)"
 )
 (action_tile "cancel" "(setq ret nil)")
 (start_dialog)
 (unload_dialog dcl_id)
 (vl-file-delete tmp)
)

;;; REMOVE_DOUBLES - Suprime tous les doublons d'une liste

(defun remove_doubles (lst)
 (if lst
   (cons (car lst) (remove_doubles (vl-remove (car lst) lst)))
 )
)

FREELANCE

Autodesk Architecture 2025 sous windows 11 64

REVIT

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité