[LISP] Les LISP de Patrick_35

patrick.emin
Alumni

[LISP] Les LISP de Patrick_35

patrick.emin
Alumni
Alumni

Bonjour,

 

Les routines LISP de cette archive ZIP, dont vous trouverez la liste ci-dessous,  ont été créées par Patrick Dewevre, connu également sous le pseudo de Patrick_35
Patrick nous a quitté en mars 2019.
En accord avec sa famille, la dernière version de son travail est mis ici à disposition de la communauté Autodesk.

Vous pouvez me contacter à ce sujet mais sachez que je ne suis pas chargé de la maintenance et de l'évolution de ces programmes

Vous pouvez utiliser ce fil de discussion pour échanger au sujet de ces LISP et les faire vivre.

 

Patrick EMIN
animateur de la communauté Autodesk francophone
patrick.emin@autodesk.com

 

AST                     Afficher le dessin selon le style de tracé.

CAT                     Recopier les valeurs d’attributs d’un bloc vers un/des autres bloc(s), même si on n’a pas le même nombre d’attributs entre les blocs.

CHAT                  Créer un champ dynamique à un attribut pour lui indiquer la hauteur Z de l’objet.

COUP                  Couper des intersections de lignes par une distance donnée.

CPL                     Importer des calques depuis un dessin Autocad pas forcement ouvert.

CPS                     Importer des styles de côtes depuis un dessin Autocad pas forcement ouvert.

CPSCU                Importer des scu depuis un dessin Autocad pas forcement ouvert.

DEF                     Définir comme paramètres par défaut selon les caractéristiques d’un objet sélectionné (calque, couleur, épaisseur, etc…)

DUC                    Mettre tous objets de tous les dessins d’un répertoire complet en couleur ducalque.

EPO                     Geler des calques apparents dans les fenêtres de présentations et plus en espace objet.

EXL v1.11          Exporter les présentations d’un dessin.
L’idée est de créer un nouveau dwg par onglet mais en ne conservant que ce qui est affiché dans la présentation.
Le dessin exporté se nomme en reprenant le nom du dessin actuel et en y ajoutant le nom de l’onglet.

Fonctionne avec une seule fenêtre par présentations

EXL V3.00          Exporter les présentations d’un dessin.
L’idée est de créer un nouveau dwg par onglet mais en ne conservant que ce qui est affiché dans la présentation.
Le dessin exporté se nomme en reprenant le nom du dessin actuel et en y ajoutant le nom de l’onglet.

Fonctionne avec plusieurs fenêtres par présentations.

Nécessite d’utiliser GEXL (fournit avec EXL) pour geler les calques dans les fenêtres des présentations exportées.

EXP                     Décomposer complètement une sélection, même les objets imbriqués.

FOG                     Changer facilement et rapidement de présentation.

Quand on a plusieurs présentations, rien de plus fastidieux que de faire un clic sur le bouton de défilement et plusieurs fois de suite tout en faisant une petite pause afin que l’onglet suivant s’affiche.

On choisit directement sa présentation.

GEF                     Gérer les différents calques dans les différentes fenêtres des présentations.

Par exemple, si on a ajouté un calque dans notre dessin et que l’on ne souhaite pas le voir apparaître dans plusieurs présentations sur plusieurs fenêtres, GEF le gèle facilement.

GRF                     Importer plusieurs folios (fichiers) depuis un répertoire dans un dessin unique. Ces folios seront insérés dans les présentations.

IAT                      Incrémenter des attributs.

Permet d’avoir une chaine de caractères avec une numérotation qui se suit.

Par exemple : B008-006, B008-007,B008-008

Par exemple : 001AA, 001AB, 001AC

INC                      Incrémenter des textes. Un tri est possible avec les coordonnées des textes afin d’obtenir une suite logique.

IND                     Incrémenter les indices des cartouches.

INSEDIT             InsEdit (gile)

Redéfinir le point d'insertion des blocs.

IXL                      Insérer des blocs dans Autocad depuis une feuille Excel.

JAV                     Nettoyer un dessin en profondeur, des objets difficilement effaçables autrement qu’en programmation.

JSD                      Créer un jeu de sélection de ce qui a été dupliqué.

LATT simplifié Lier des attributs de manière croissante. Les attributs de mettent à jour de manière dynamiques. Par exemple, si on efface un attribut lié, alors les autres se renumérotent
afin que la suite logique reste la même.

LATT                  Lier des attributs de manière Identique, Croissante ou encore de faire une Somme. Les attributs de mettent à jour de manière dynamiques. Par exemple, si on efface un attribut lié, alors les autres se renumérotent afin que la suite logique reste la même.

LSTATT             Décompte des blocs, mêmes les dynamiques avec la possibilité de distinguer les blocs avec attributs (sur autant d’attributs possible).

Possibilité aussi d’exporter les résultats dans un fichier texte.

Ce fichier, s’il est renommé en .xls sera ouvert sans problème avec Excel.

LXL                     Lier des Attributs, Textes, Mtexts ou des Rtexts avec Excel.

Le principe est de lier à une cellule Excel une valeur.

Les données peuvent être transmises depuis Autocad vers Excel, ou dans le sens inverse.

On peut travailler avec plusieurs fichiers, feuilles Excel dans plusieurs dessins Autocad

Le lisp inclus :

EXPLXL : Exporter des données de LXL dans un fichier texte afin de conserver une sauvegarde de ses données créé avec LXL.

IMPLXL : Récupérer la sauvegarde préalable de Explxl pour remettre à jour ses données.

XL->ATT: Mise à jour pour les scripts, d'Excel vers Autocad

ATT->XL: Mise à jour pour les scripts, d'Autocad vers Excel.

MAT                    Propager la valeur d'un attribut.

MES                    Mesurer en continu et avec cumul des distances directement dans le dessin.

MIM                    En cas de changement d’imprimante réseau ou tout simplement parce que le service                     informatique à redéfinit ses serveurs, MIM permet de réaffecter une nouvelle imprimante pour toutes les présentations choisies tout en conservant les paramètres d’impression.

MPL                    On configure correctement la mise en page d’une présentation. MPL permet la recopie de cette mise en page sur les présentations choisies.

ONG                    Gérer ses présentations. Reprends tous ce qui est sous le clic droit mais d’une manière plus ergonomique.

OOG                    Réorganiser les onglets d'une manière simple.

OU                       Localiser facilement des blocs. Quand on a un grand dessin et qu'on arrive pas à localiser ses blocs, OU dessine un trait de 0,0 au point d'insertion du bloc, ce qui permet d'enfin le localiser.

OUA                    La même chose que le lisp Ou, sauf qu'on peut différencier les blocs avec une valeur d'attribut.

PAT                     Changer la valeur d'un attribut dans plusieurs fichiers. Même principe de fonctionnement que MAT.

RA                       Faire un raccord sans joindre.

RB                       Refait tous les blocs de la couleur dubloc et sur le calque 0. (gile) à fait un super lisp avec edit_bloc, mais ayant déjà celui-là et qu'il ne pose pas de question...

RBLOC               Remplacer un/des bloc(s) par un autre en conservant ou pas ses attributs, son échelle, ses propriétés dynamiques.

RECD                  Rechercher des blocs superposés.

RET                     Renommer des étiquettes des blocs.

RINS                   Redéfinir le point d'insertion d'un bloc simplement.

RON                    Renuméroter les onglets de 01 à ..

ROT_0                Laisser l'angle constamment à 0 de tous les attributs.

ROT                    Laisser l'angle de rotation constamment à 0 de certains attributs définit dans ces deux variables (setq Nom_bloc "UN_BLOC" Eti_Bloc '("ETI1" "ETI2" "ETI3")).

RXR                    Remplacer un xref en déchargeant l'ancien et en conservant les calques qui étaient gelés auparavant.

RXREF                Donner un chemin relatif aux xrefs par rapport au dessin courant (s'ils sont sur le même lecteur).

SCRIPTOR          Lisp qui créé et lance un script ou un lisp (depuis un lisp/script source) pour traiter tous les fichiers d'un répertoire et de ses sous-répertoires.

STRIPMTEXT    Lisp de Steve Doman et Joe Burke.

Permet d'enlever au choix, les formats d'un texte.

SYN                     Synchroniser les attributs tout en conservant (ou pas), la valeur, position, angle et style de texte.

TOT                     Affiche le résultat du cumul de différentes longueurs (lignes, polylignes, arc, etc…)

UNVERR            Déverrouiller toutes les fenêtres des présentations.

VERR                  Verrouiller toutes les fenêtres de toutes les présentations.


Patrick Emin animateur de la communauté francophone


Vous avez trouvé un message utile? Alors donnez un "J'aime" à ce message!
Votre question a eu une réponse satisfaisante? Voulez vous avoir l'amabilité de cliquer sur le bouton
 APPROUVER LA SOLUTION  en bas de la réponse qui apporte une solution?
Signez notre Livre d'Or
Répondre
29 849 Visites
31 Réponses
Replies (31)

braudpat
Mentor
Mentor

Hello

MERCI pour cette excellente Initiative qui rend hommage a Patrick_35 !

SVP ne pas oublier la Cagnotte pour la femme de Patrick_35 ... (note du modérateur, cagnotte désormais désactivée)
http://cadxp.com/topic/46868-cagnotte-pour-patrick-35/

Regards, Patrice

Patrice ( Supporting Troops ) - Autodesk Expert Elite
If you are happy with my answer please mark "Accept as Solution" and if very happy please give me a Kudos (Felicitations) - Thanks

Patrice BRAUD

EESignature


henry_cremieux
Advocate
Advocate

Bonjour,
désolé pour Patrick et encore plus pour son épouse.... condoléances!
Euh j'ai cliqué sur le lien pour la cagnotte mais ça mouline et ça s'ouvre pas, je sais pas si le lien est mort ou en panne, mais je voulais juste vous tenir au courant...

Autocad 2025 & REVIT 2023 à 25 sur PC de bureau avec Windows 11 pro 24H2 64 bits CPU AMD RYZEN PRO 5945WX GPU Nvidia RTX A2000 12Gb DIRECTX 12 RAM 128G Corsair DDR5
0 J'aime

henry_cremieux
Advocate
Advocate

Bonjour Patrick aussi....

puisque vous n'êtes pas en charge du suivi des LISP de votre homonyme si talentueux, sauriez vous qui en a la charge, et vers qui je peux me tourner lorsque ces derniers ne veulent pas fonctionner..... en fait plus aucune routine LISP ne consent à fonctionner depuis que je suis passé en 2020.... auriez vous une idée???...

Autocad 2025 & REVIT 2023 à 25 sur PC de bureau avec Windows 11 pro 24H2 64 bits CPU AMD RYZEN PRO 5945WX GPU Nvidia RTX A2000 12Gb DIRECTX 12 RAM 128G Corsair DDR5
0 J'aime

patrick.emin
Alumni
Alumni

Bonjour @henry_cremieux personne en particulier n'est en charge de ces LISP. C’est à la communauté, c'est à dire nous tous de les faire vivre. Pour ce qui concerne la cagnotte, elle fonctionne, pas de problème.


Patrick Emin animateur de la communauté francophone


Vous avez trouvé un message utile? Alors donnez un "J'aime" à ce message!
Votre question a eu une réponse satisfaisante? Voulez vous avoir l'amabilité de cliquer sur le bouton
 APPROUVER LA SOLUTION  en bas de la réponse qui apporte une solution?
Signez notre Livre d'Or
0 J'aime

braudpat
Mentor
Mentor

Hello 

 

RAPPEL: les routines LSP de Patrick_35 que des milliers de gens utilisent représentent N centaines d heures d investissement personnel et CE BENEVOLEMENT ! Encore MERCI Patrick !!

 

J utilise qq routines de Patrick sur ACAD MAP 2020 sans souci... 

 

A propos SVP quelles routines par exemple ne fonctionnent pas sur ACAD 2020 ?

 

Regards, Patrice "triste" 

Patrice ( Supporting Troops ) - Autodesk Expert Elite
If you are happy with my answer please mark "Accept as Solution" and if very happy please give me a Kudos (Felicitations) - Thanks

Patrice BRAUD

EESignature


Anonymous
Non applicable

Bonjour.

Les LISP du regretté Maître Patrick_35 sont aussi disponibles sur une communauté très active : CadXP.com 

Denis...

jmgisbert
Explorer
Explorer

Je viens de créer un fichier "PRJ" sur mon PC dont je joins le code ci-dessous.

Celui-ce permet de complier un fichier nommé "Patrick_35.FAS" dans le VisuaLISP intégré à AutoCAD.


Pour ceux qui sont intéressés un copier collé dans un bloc note et en changeant les répertoires où sont stockés les LISP pour la compilation.

 

Je pense ajouter un Lisp pour générer un TXT pour l'aide de chacune des fonctions en me servant de celle qui est déjà fournie et en ajoutant quelques notes.

-------------

;;; VLisp project file [V2.0] Patrick35 saved to:[C:/Temp] at:[12/12/20]
(VLISP-PROJECT-LIST
:NAME
Patrick_35
:OWN-LIST
("C:/Temp/les_LISP_de_Patrick_35/Api_xls"
"C:/Temp/les_LISP_de_Patrick_35/Ast"
"C:/Temp/les_LISP_de_Patrick_35/Benchmark"
"C:/Temp/les_LISP_de_Patrick_35/Cat"
"C:/Temp/les_LISP_de_Patrick_35/Chat"
"C:/Temp/les_LISP_de_Patrick_35/Coup"
"C:/Temp/les_LISP_de_Patrick_35/Cpl"
"C:/Temp/les_LISP_de_Patrick_35/Cps"
"C:/Temp/les_LISP_de_Patrick_35/Def"
"C:/Temp/les_LISP_de_Patrick_35/Duc"
"C:/Temp/les_LISP_de_Patrick_35/Epo"
"C:/Temp/les_LISP_de_Patrick_35/Exl"
"C:/Temp/les_LISP_de_Patrick_35/Exp"
"C:/Temp/les_LISP_de_Patrick_35/Explxl"
"C:/Temp/les_LISP_de_Patrick_35/Fog"
"C:/Temp/les_LISP_de_Patrick_35/Gef"
"C:/Temp/les_LISP_de_Patrick_35/Gexl"
"C:/Temp/les_LISP_de_Patrick_35/Grf"
"C:/Temp/les_LISP_de_Patrick_35/Iat"
"C:/Temp/les_LISP_de_Patrick_35/Impl"
"C:/Temp/les_LISP_de_Patrick_35/Implxl"
"C:/Temp/les_LISP_de_Patrick_35/Inc"
"C:/Temp/les_LISP_de_Patrick_35/Ind"
"C:/Temp/les_LISP_de_Patrick_35/InsEdit"
"C:/Temp/les_LISP_de_Patrick_35/Ixl"
"C:/Temp/les_LISP_de_Patrick_35/Jav"
"C:/Temp/les_LISP_de_Patrick_35/Jsd"
"C:/Temp/les_LISP_de_Patrick_35/Latt"
"C:/Temp/les_LISP_de_Patrick_35/Lstatt"
"C:/Temp/les_LISP_de_Patrick_35/Lxl"
"C:/Temp/les_LISP_de_Patrick_35/Mat"
"C:/Temp/les_LISP_de_Patrick_35/Mes"
"C:/Temp/les_LISP_de_Patrick_35/Mim"
"C:/Temp/les_LISP_de_Patrick_35/Mpl"
"C:/Temp/les_LISP_de_Patrick_35/Ong"
"C:/Temp/les_LISP_de_Patrick_35/Oog"
"C:/Temp/les_LISP_de_Patrick_35/Oua"
"C:/Temp/les_LISP_de_Patrick_35/Pat"
"C:/Temp/les_LISP_de_Patrick_35/Pre"
"C:/Temp/les_LISP_de_Patrick_35/Ra"
"C:/Temp/les_LISP_de_Patrick_35/Rb"
"C:/Temp/les_LISP_de_Patrick_35/Rbloc"
"C:/Temp/les_LISP_de_Patrick_35/Recd"
"C:/Temp/les_LISP_de_Patrick_35/Red"
"C:/Temp/les_LISP_de_Patrick_35/Ret"
"C:/Temp/les_LISP_de_Patrick_35/Rins"
"C:/Temp/les_LISP_de_Patrick_35/Ron"
"C:/Temp/les_LISP_de_Patrick_35/Rot"
"C:/Temp/les_LISP_de_Patrick_35/Rot_0"
"C:/Temp/les_LISP_de_Patrick_35/Rxr"
"C:/Temp/les_LISP_de_Patrick_35/Rxref"
"C:/Temp/les_LISP_de_Patrick_35/Scriptor"
"C:/Temp/les_LISP_de_Patrick_35/StripMtext"
"C:/Temp/les_LISP_de_Patrick_35/Syn"
"C:/Temp/les_LISP_de_Patrick_35/Tot"
"C:/Temp/les_LISP_de_Patrick_35/UnVerr"
"C:/Temp/les_LISP_de_Patrick_35/Verr")
:FAS-DIRECTORY
"C:\\Temp"
:TMP-DIRECTORY
"C:\\TEMP"
:PROJECT-KEYS
(:BUILD (:OPTIMIZE) :MERGED T :SAFE-MODE T :MSGLEVEL 1)
:CONTEXT-ID
:AUTOLISP
)
;;; EOF

-------------

0 J'aime

F.JAUME
Contributor
Contributor

Bonjour à tous,

J'ai appris à la mi-août 2019 le décès de Patrick.

Personne avec lequel j'ai pu échanger par mail pour faire le "bêta testeur" de sa routine LXL.

Ce génialissime monsieur était incroyable et d'une réactivité sans faille. Je ne le connaissais pas personnellement mais je garde un très bon souvenir de nos échanges.

 

Concernant cette routine LXL, quelqu'un aurait-il repris le flambeau ou la possibilité de faire des modifications ?

En effet depuis peu je ne dispose plus d'excel et donc plus possible de "rapatrier" mes données sur mes tableurs.

Y aurait-il une version de LXL qui puisse faire le lien entre Google Sheet et AutoCad?

 

Merci par avance.

Fabrice

jmgisbert
Explorer
Explorer

Voici un Lisp que j'ai déjà distribué à mes collègues. Ce lisp je l'ai nommé : "Help_Patrick35.lsp"

Avec le menu qui est en place dans la société où je travaille, j'ai pu ajouté une ligne concernant l'usage des lisp du défunt Patrick_35 .

 

pmxcad
Participant
Participant

Bon après-midi,
J'utilise le SYN.LSP V1.50 de patrick_35 depuis un certain temps maintenant.
Fonctionne bien, mais est-il également possible de conserver la justification de l'attribut ?

Cordialement,
Jaap Marchal.
Ce message a été créé avec google translate, il peut donc contenir des erreurs.

;;;=================================================================
;;;
;;; SYN.LSP V1.50
;;;
;;; Synchroniser en conservant ou pas la valeur, la position
;;; et l'angle des attributs.
;;;
;;; Copyright (C) Patrick_35
;;;
;;;=================================================================

(defun patrick:synchro_att(cmd / att blo boite_dialogue choix def doc ent lst lstbl msg nombl
				 ecr_att oui-non question rep s sel str *errret*)

  (defun *errret* (msg)
    (or (member (strcase msg) '("FUNCTION CANCELLED" ""QUIT / EXIT ABORT"" "FONCTION ANNULEE" "QUITTER / SORTIR ABANDON"))
      (princ (strcat "\nErreur : " msg))
    )
    (vla-endundomark doc)
    (setq *error* s)
    (princ)
  )

  (defun nombl(bl)
    (if (vlax-property-available-p bl 'effectivename)
      (vla-get-effectivename bl)
      (vla-get-name bl)
    )
  )

  (defun msg(js)
    (if js
      (princ (strcat "\nSélection actuel : " js))
      (princ "\nSélection actuel : Tout")
    )
  )

  (defun bits(var bit)
    (boole 6 var bit)
  )

  (defun choix(chx cmd / bl js lst nom sel)
    (princ "\nSélectionnez le(s) bloc(s) : ")
    (and (ssget (list (cons 0 "insert") (cons 66 1)))
      (progn
	(vlax-for bl (setq sel (vla-get-activeselectionset doc))
	  (or (member (setq nom (nombl bl)) lst)
	    (setq lst (cons nom lst))
	  )
	  (redraw (vlax-vla-object->ename bl) 4)
	)
	(foreach nom lst
	  (and (eq (vla-get-isxref (vla-item (vla-get-blocks doc) nom)) :vlax-false)
	    (if js
	      (setq js (strcat js "," nom))
	      (setq js nom)
	    )
	  )
	)
	(vla-delete sel)
      )
    )
    (or js (setq js chx))
    (and cmd (msg js))
    js
  )

  (defun boite_dialogue(titre / blo choix_aucun choix_lst choix_tout chx dcl fil js liste_bl
				loc rech rep res sel str tmp vao)

    (defun choix_lst(val / pos lst)
      (while (setq pos (read val))
	(if lst
	  (setq lst (strcat lst "," (nth pos liste_bl)))
	  (setq lst (nth pos liste_bl))
	)
	(setq val (substr val (+ 2 (strlen (itoa pos)))))
      )
      (setq js lst
	    chx "Nom"
      )
    )

    (defun choix_tout(/ pos val str)
      (setq pos 0)
      (while (setq val (nth pos liste_bl))
	(if str
	  (setq str (strcat str " " (itoa pos)))
	  (setq str (itoa pos))
	)
	(setq pos (1+ pos))
      )
      (setq js nil
	    chx "Tout"
	    sel str
      )
      (set_tile "lst" sel)
    )

    (defun choix_aucun()
      (setq js nil
	    chx nil
	    sel ""
      )
      (set_tile "lst" sel)
    )

    (defun rech()
      (and (member (substr str 1 loc) liste_bl)
	   (setq vao (itoa (- (length liste_bl) (length (member (substr str 1 loc) liste_bl)))))
	(if sel
	  (setq sel (strcat sel " " vao))
	  (setq sel vao)
	)
      )
    )

    (setq tmp (vl-filename-mktemp "ret" nil ".dcl")
	  fil (open tmp "w")
    )
    (foreach txt '(	"ret : dialog {"
			"  key = titre;"
			"  is_cancel = true;"
			"  fixed_width = true;"
			"  alignment = centered;"
			"  : list_box {label = \"Blocs\"; key = \"lst\"; multiple_select = true; width = 40; height = 20;}"
			"  : boxed_column {"
			"    label = \"Conserver dans les attributs\";"
			"    : row {"
			"      : column {"
			"	: toggle {label = \"Les valeurs\";   key = \"val\";}"
			"	: toggle {label = \"Les styles\";    key = \"sty\";}"
			"      }"
			"      : column {"
			"	: toggle {label = \"Les positions\"; key = \"pos\";}"
			"	: toggle {label = \"Les angles\";    key = \"ang\";}"
			"      }"
			"    }"
			"    spacer;"
			"  }"
			"  spacer;"
			"  : row {"
			"    : button {label = \"Tout\";  key = \"tout\";}"
			"    : button {label = \"Aucun\"; key = \"aucun\";}"
			"    : button {label = \">>\";    key = \"sel\";}"
			"    ok_cancel;"
			"  }"
			"}"
		 )
      (write-line txt fil)
    )
    (close fil)
    (vlax-for blo (vla-get-blocks doc)
      (or (wcmatch (vla-get-name blo) "`**,*|*")
	  (eq (vla-get-isxref blo) :vlax-true)
	(vlax-for ent blo
	  (and	(eq (vla-get-objectname ent) "AcDbAttributeDefinition")
		(not (member (vla-get-name blo) liste_bl))
	    (setq liste_bl (cons (vla-get-name blo) liste_bl))
	  )
	)
      )
    )
    (setq liste_bl (acad_strlsort liste_bl)
	  dcl (load_dialog tmp)
	  sel ""
    )
    (while (not (member res '(0 1)))
      (new_dialog "ret" dcl "")
      (start_list "lst")
        (mapcar 'add_list liste_bl)
      (end_list)
      (set_tile "titre" titre)
      (set_tile "lst" sel)
      (and (eq (logand val 2) 2)
        (set_tile "val" "1")
      )
      (and (eq (logand val 4) 4)
        (set_tile "pos" "1")
      )
      (and (eq (logand val 😎 8)
        (set_tile "ang" "1")
      )
      (and (eq (logand val 16) 16)
        (set_tile "sty" "1")
      )
      (action_tile "lst"    "(choix_lst $value)")
      (action_tile "tout"   "(choix_tout)")
      (action_tile "aucun"  "(choix_aucun)")
      (action_tile "val"    "(setq val (bits val 2))")
      (action_tile "pos"    "(setq val (bits val 4))")
      (action_tile "ang"    "(setq val (bits val 8))")
      (action_tile "sty"    "(setq val (bits val 16))")
      (action_tile "sel"    "(done_dialog 2)")
      (action_tile "accept" "(done_dialog 1)")
      (action_tile "cancel" "(done_dialog 0)")
      (setq res (start_dialog))
      (cond
	((eq res 1)
	  (setq rep (list chx js val))
	)
	((eq res 2)
	  (and (setq js (choix js nil))
	    (progn
	      (setq str js
		    sel nil
		    chx "Nom"
	      )
	      (while (setq loc (vl-string-search "," str))
		(rech)
		(setq str (substr str (+ 2 loc)))
	      )
	      (rech)
	      (or sel (setq sel ""))
	    )
	  )
	)
	(T
	  (setq rep (list nil nil val))
	)
      )
    )
    (unload_dialog dcl)
    (vl-file-delete tmp)
    rep
  )

  (defun question(/ choixbl lst rep sel)

    (defun choixbl(chx / js nom pos sel)
      (defun nom(txt / str)
	(setq txt (vl-string-left-trim  " " txt)
	      txt (vl-string-right-trim " " txt)
	)
	(if (tblsearch "block" txt)
	  (setq str txt)
	  (princ (strcat "\nLe bloc \"" txt "\" n'existe pas."))
	)
	(and str
	  (if (and js (wcmatch (strcase js) (strcase (strcat str "," str "`,*" ",*`," str "`,*,*`," str))))
	    (princ (strcat "\nLe bloc \"" str "\" est déjà selectionné."))
	    (if js
	      (setq js (strcat js "," str))
	      (setq js str)
	    )
	  )
	)
      )

      (setq js chx)
      (while (/= (setq sel (getstring t "\nIndiquez le(s) nom(s) du/des bloc(s) : ")) "")
	(while (setq pos (vl-string-search "," sel))
	  (nom (substr sel 1 pos))
	  (setq sel (substr sel (+ 2 pos)))
	)
	(nom sel)
	(msg js)
      )
      (and (eq js chx) (msg js))
      js
    )

    (setq sel "Tout" rep sel)
    (while (/= sel "Fin")
      (initget "Tout Sélection Nom Fin")
      (or (setq sel (getkword (strcat "\nChoix des blocs [Tout/Sélection/Nom/Fin] <" sel "> : ")))
	(progn
	  (setq sel rep)
	  (and (eq rep "Tout")
	    (setq sel "Fin")
	  )
	)
      )
      (cond
	((eq sel "Tout")
	  (setq rep sel)
	)
	((eq sel "Sélection")
	  (setq rep sel
		lst (choix lst T) 
	  )
	)
	((eq sel "Nom")
	  (setq rep sel
		lst (choixbl lst) 
	  )
	)
      )
    )
    (list rep lst)
  )

  (defun oui-non(que o-n / rep)
    (initget "Oui Non")
    (setq rep (getkword (strcat "\n" que " [Oui/Non] <" (if (eq (logand val o-n) o-n) "Oui" "Non") "> : ")))
    (cond
      ((eq rep "Oui")
	(or (eq (logand val o-n) o-n)
	  (setq val (boole 6 val o-n))
	)
      )
      ((eq rep "Non")
	(and (eq (logand val o-n) o-n)
	  (setq val (boole 6 val o-n))
	)
      )
    )
    T
  )

  (defun ecr_att(a b c d)
    (and (vl-catch-all-error-p (vl-catch-all-apply 'vlax-put (list b d c)))
      (vl-catch-all-apply 'vlax-put (list a d c))
    )
  )

  (vl-load-com)
  (setq doc (vla-get-activedocument (vlax-get-acad-object))
	s *error*
	*error* *errret*
  )
  (vla-startundomark doc)
  (if (setq val (getenv "Patrick_35_syn"))
    (setq val (atoi val))
    (setq val 0)
  )
  (if (and (or
	     (and (eq cmd 0)
		  (setq rep (boite_dialogue "SYN V1.50")
			val (nth 2 rep)
			rep (list (nth 0 rep) (nth 1 rep))
		  )
	     )
	     (and (eq cmd 1)
		  (setq rep (question))
		  (oui-non "Conserver la valeur des attributs"   2)
		  (oui-non "Conserver la position des attributs" 4)
		  (oui-non "Conserver l'angle des attributs"     8)
		  (oui-non "Conserver le style des attributs"    16)
	     )
	   )
	   (car rep)
      )
    (progn
      (or (eq (car rep) "Tout")
	  (cadr rep)
	(setq rep (list "Tout" nil))
      )
      (and 
	(if (cadr rep)
	  (ssget "_x" (list (cons 0 "insert") (cons 2 (strcat "`**," (cadr rep))) (cons 66 1)))
	  (ssget "_x" (list (cons 0 "insert") (cons 66 1)))
	)
	(progn
	  (vlax-for blo (setq sel (vla-get-activeselectionset doc))
	    (setq str (nombl blo)
		  att nil
	    )
	    (and (or (eq (car rep) "Tout")
		     (and
		       (cadr rep)
		       (wcmatch (strcase (cadr rep)) (strcase (strcat str "," str "`,*" ",*`," str "`,*,*`," str)))
		     )
		 )
	      (progn
		(foreach ent (vlax-invoke blo 'getattributes)
		  (setq att (cons (list ent
					(vlax-get ent 'textstring)
					(vlax-get ent 'insertionpoint)
					(vlax-get ent 'textalignmentpoint)
					(vlax-get ent 'alignment)
					(vlax-get ent 'rotation)
					(vlax-get ent 'stylename)
					(vlax-get ent 'height)
					(vlax-get ent 'scalefactor)
					(vlax-get ent 'obliqueangle)
				  )
				  att
			    )
		  )
		)
		(setq lst (cons (cons blo att) lst))
		(or (member (nombl blo) lstbl)
		  (setq lstbl (cons (nombl blo) lstbl))
		)
	      )
	    )
	  )
	  (vla-delete sel)
	  (and lst
	    (progn
	      (setq def (getvar "cmdecho"))
	      (setvar "cmdecho" 0)
	      (vlax-for blo (vla-get-blocks doc)
		(and (eq (vla-get-islayout blo) :vlax-false)
		     (setq str (vla-get-name blo))
		     (member str lstbl)
		  (progn
		    (vl-cmdf "_.attsync" "_name" str)
		    (princ (strcat (chr 😎 " pour le bloc " str "."))
		  )
	        )
	      )
	      (setvar "cmdecho" def)
	      (or (zerop val)
		(foreach blo lst
		  (mapcar '(lambda(a b)
			    (and (eq (logand val 2) 2)
			      (vl-catch-all-apply 'vlax-put (list a 'textstring (nth 1 b)))
;			      (ecr_att a (nth 0 b) (nth 1 b) 'textstring)
			    )
			    (and (eq (logand val 16) 16)
			      (progn
				(vl-catch-all-apply 'vlax-put (list a 'stylename    (nth 6 b)))
				(vl-catch-all-apply 'vlax-put (list a 'height       (nth 7 b)))
				(vl-catch-all-apply 'vlax-put (list a 'scalefactor  (nth 8 b)))
				(vl-catch-all-apply 'vlax-put (list a 'obliqueangle (nth 9 b)))
;				(ecr_att a (nth 0 b) (nth 6 b) 'stylename)
;				(ecr_att a (nth 0 b) (nth 7 b) 'height)
;				(ecr_att a (nth 0 b) (nth 8 b) 'scalefactor)
;				(ecr_att a (nth 0 b) (nth 9 b) 'obliqueangle)
			      )
			    )
			    (and (eq (logand val 4) 4)
			      (vl-catch-all-apply 'vla-move (list a (vla-get-insertionpoint a) (vlax-3d-point (nth 2 b))))
;			      (ecr_att a (nth 0 b) (nth 2 b) 'insertionpoint)
			    )
			    (and (eq (logand val 😎 8)
			      (vl-catch-all-apply 'vlax-put (list a 'rotation (nth 5 b)))
;			      (ecr_att a (nth 0 b) (nth 5 b) 'rotation)
			    )
			  )
			  (vlax-invoke (car blo) 'getattributes)
			  (reverse (cdr blo))
		  )
		)
	      )
	      (setenv "Patrick_35_syn" (itoa val))
	    )
	  )
	)
      )
    )
  )
  (vla-endundomark doc)
  (setq *error* s)
  (princ)
)

(defun c:syn()
  (if (zerop (getvar "cmdactive"))
    (patrick:synchro_att 0)
    (patrick:synchro_att 1)
  )
)

(defun c:-syn()
  (patrick:synchro_att 1)
)

(setq nom_lisp "SYN")
(if app
  (if (= (strcase (substr app (1+ (- (strlen app) (strlen nom_lisp))) (strlen nom_lisp))) nom_lisp)
    (princ (strcat "..." nom_lisp " chargé."))
    (princ (strcat "\n" nom_lisp ".LSP Chargé.....Tapez " nom_lisp " pour l'éxecuter.")))
  (princ (strcat "\n" nom_lisp ".LSP Chargé......Tapez " nom_lisp " pour l'éxecuter.")))
(setq nom_lisp nil)
(princ)

 

0 J'aime

Vincent_CAVUOTO
Advocate
Advocate

Bonjour,

Je ne connaissais pas Patrick mais je souhaiterais faire connaître son œuvre au travers d'une vidéo test de quelques lisp de ce génie d'autocad, est-ce que cela pourrait se faire histoire de ramener quelques fans d'autocad ici ?

À bientôt, 

Vincent

patrick.emin
Alumni
Alumni

Bonjour @Vincent_CAVUOTO , oui c'est toujours possible, cela permettrait aux gens qui sont plutôt débutants dans l'AutoLISP de savoir ne serait-ce que comment charger et lancer un programme. Et puis de donner quelques exemples de ce qu'il a réalisé effectivement.


Patrick Emin animateur de la communauté francophone


Vous avez trouvé un message utile? Alors donnez un "J'aime" à ce message!
Votre question a eu une réponse satisfaisante? Voulez vous avoir l'amabilité de cliquer sur le bouton
 APPROUVER LA SOLUTION  en bas de la réponse qui apporte une solution?
Signez notre Livre d'Or
0 J'aime

henry_cremieux
Advocate
Advocate

Salut à toutes et à tous....
Bien qu'actuellement occupé "pour le moins" à tenter de REVTER, je n'en reste pas moins comme bon nombre d'entre nous, un fan absolu du si regretté Patrick_35... Du coup si je peux filer u coup de main ce sera avec plaisir, sinon visionner votre "œuvre" le sera certainement aussi!!!... C'est juste la meilleure idée de l'année!!!...
Un grand BRAVO @Vincent_CAVUOTO pour cette initiative géniale.

Autocad 2025 & REVIT 2023 à 25 sur PC de bureau avec Windows 11 pro 24H2 64 bits CPU AMD RYZEN PRO 5945WX GPU Nvidia RTX A2000 12Gb DIRECTX 12 RAM 128G Corsair DDR5

Vincent_CAVUOTO
Advocate
Advocate

Merci à vous, très sympa de votre part 👌

Ce sera avec plaisir, je suis passionné d'Autocad et c'est juste la reconnaissance méritée pour notre ami Patrick 👍

Ravi de participer à cette belle communauté Autodesk sur laquelle je n'avais pas pris le temps de suivre les sujets.

Au plaisir de vous lire souvent maintenant 😉

Je mettrai le lien de la vidéo dès que ce sera bon.

À bientôt, 

Vincent

0 J'aime

Vincent_CAVUOTO
Advocate
Advocate

Bonjour,

Voici donc la vidéo pour faire connaître le travail fabuleux de Patrick_35.

J'espère que cette vidéo vous plaira et qu'elle permettra d'aider un maximum de personnes 😉

La vidéo est ici :

👉 Les Lisp de Patrick_35 pour AutoCAD 

 

A bientôt,

 

Vincent

braudpat
Mentor
Mentor

Hello @Vincent_CAVUOTO , @patrick.emin 

 

MERCI pour la Video et voici un vieux (2009) Trombinoscope de cadxp.com ...

 

Au fait est ce toi Christian @rebcao qui a realise cette image ?

 

La Sante, Bye, Patrice (The Old French EE Froggy)

Patrice ( Supporting Troops ) - Autodesk Expert Elite
If you are happy with my answer please mark "Accept as Solution" and if very happy please give me a Kudos (Felicitations) - Thanks

Patrice BRAUD

EESignature


Y.AUBRY
Advisor
Advisor

Magnifique trombinoscope... 😎😋

Yoan AUBRY

EESignature

-didier-
Advisor
Advisor

Coucou

Je me souviens de cette image, à l'époque, je sévissais dans l'océan Indien, putain ce qu'on y est bien !
Mayotte, Madagascar... et les températures (et les gens) m'allaient bien mieux que ce que je dois subir aujourd'hui.

Les images ont ce don de nous transporter dans le temps en ravivant les souvenirs, merci de cette mise à jour de mémoire.

Amicalement

Éternel débutant.. my site for learning : Programmer dans AutoCAD

DA

EESignature

0 J'aime

Ali_Amine
Enthusiast
Enthusiast

Bonjour, la cagnotte envoie sur un lien paypal qui n existe plus. 

Merci !

0 J'aime

Saisir un nom de produit

______
icon-svg-close-thick

Cookie preferences

Your privacy is important to us and so is an optimal experience. To help us customize information and build applications, we collect data about your use of this site.

May we collect and use your data?

Learn more about the Third Party Services we use and our Privacy Statement.

Strictly necessary – required for our site to work and to provide services to you

These cookies allow us to record your preferences or login information, respond to your requests or fulfill items in your shopping cart.

Improve your experience – allows us to show you what is relevant to you

These cookies enable us to provide enhanced functionality and personalization. They may be set by us or by third party providers whose services we use to deliver information and experiences tailored to you. If you do not allow these cookies, some or all of these services may not be available for you.

Customize your advertising – permits us to offer targeted advertising to you

These cookies collect data about you based on your activities and interests in order to show you relevant ads and to track effectiveness. By collecting this data, the ads you see will be more tailored to your interests. If you do not allow these cookies, you will experience less targeted advertising.

icon-svg-close-thick

THIRD PARTY SERVICES

Learn more about the Third-Party Services we use in each category, and how we use the data we collect from you online.

icon-svg-hide-thick

icon-svg-show-thick

Strictly necessary – required for our site to work and to provide services to you

Qualtrics
We use Qualtrics to let you give us feedback via surveys or online forms. You may be randomly selected to participate in a survey, or you can actively decide to give us feedback. We collect data to better understand what actions you took before filling out a survey. This helps us troubleshoot issues you may have experienced. Qualtrics Privacy Policy
Akamai mPulse
We use Akamai mPulse to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Akamai mPulse Privacy Policy
Digital River
We use Digital River to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Digital River Privacy Policy
Dynatrace
We use Dynatrace to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Dynatrace Privacy Policy
Khoros
We use Khoros to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Khoros Privacy Policy
Launch Darkly
We use Launch Darkly to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Launch Darkly Privacy Policy
New Relic
We use New Relic to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. New Relic Privacy Policy
Salesforce Live Agent
We use Salesforce Live Agent to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Salesforce Live Agent Privacy Policy
Wistia
We use Wistia to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Wistia Privacy Policy
Tealium
We use Tealium to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Tealium Privacy Policy
Upsellit
We use Upsellit to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Upsellit Privacy Policy
CJ Affiliates
We use CJ Affiliates to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. CJ Affiliates Privacy Policy
Commission Factory
We use Commission Factory to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Commission Factory Privacy Policy
Google Analytics (Strictly Necessary)
We use Google Analytics (Strictly Necessary) to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Google Analytics (Strictly Necessary) Privacy Policy
Typepad Stats
We use Typepad Stats to collect data about your behaviour on our sites. This may include pages you’ve visited. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our platform to provide the most relevant content. This allows us to enhance your overall user experience. Typepad Stats Privacy Policy
Geo Targetly
We use Geo Targetly to direct website visitors to the most appropriate web page and/or serve tailored content based on their location. Geo Targetly uses the IP address of a website visitor to determine the approximate location of the visitor’s device. This helps ensure that the visitor views content in their (most likely) local language.Geo Targetly Privacy Policy
SpeedCurve
We use SpeedCurve to monitor and measure the performance of your website experience by measuring web page load times as well as the responsiveness of subsequent elements such as images, scripts, and text.SpeedCurve Privacy Policy
Qualified
Qualified is the Autodesk Live Chat agent platform. This platform provides services to allow our customers to communicate in real-time with Autodesk support. We may collect unique ID for specific browser sessions during a chat. Qualified Privacy Policy

icon-svg-hide-thick

icon-svg-show-thick

Improve your experience – allows us to show you what is relevant to you

Google Optimize
We use Google Optimize to test new features on our sites and customize your experience of these features. To do this, we collect behavioral data while you’re on our sites. This data may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, your Autodesk ID, and others. You may experience a different version of our sites based on feature testing, or view personalized content based on your visitor attributes. Google Optimize Privacy Policy
ClickTale
We use ClickTale to better understand where you may encounter difficulties with our sites. We use session recording to help us see how you interact with our sites, including any elements on our pages. Your Personally Identifiable Information is masked and is not collected. ClickTale Privacy Policy
OneSignal
We use OneSignal to deploy digital advertising on sites supported by OneSignal. Ads are based on both OneSignal data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that OneSignal has collected from you. We use the data that we provide to OneSignal to better customize your digital advertising experience and present you with more relevant ads. OneSignal Privacy Policy
Optimizely
We use Optimizely to test new features on our sites and customize your experience of these features. To do this, we collect behavioral data while you’re on our sites. This data may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, your Autodesk ID, and others. You may experience a different version of our sites based on feature testing, or view personalized content based on your visitor attributes. Optimizely Privacy Policy
Amplitude
We use Amplitude to test new features on our sites and customize your experience of these features. To do this, we collect behavioral data while you’re on our sites. This data may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, your Autodesk ID, and others. You may experience a different version of our sites based on feature testing, or view personalized content based on your visitor attributes. Amplitude Privacy Policy
Snowplow
We use Snowplow to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Snowplow Privacy Policy
UserVoice
We use UserVoice to collect data about your behaviour on our sites. This may include pages you’ve visited. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our platform to provide the most relevant content. This allows us to enhance your overall user experience. UserVoice Privacy Policy
Clearbit
Clearbit allows real-time data enrichment to provide a personalized and relevant experience to our customers. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID.Clearbit Privacy Policy
YouTube
YouTube is a video sharing platform which allows users to view and share embedded videos on our websites. YouTube provides viewership metrics on video performance. YouTube Privacy Policy

icon-svg-hide-thick

icon-svg-show-thick

Customize your advertising – permits us to offer targeted advertising to you

Adobe Analytics
We use Adobe Analytics to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Adobe Analytics Privacy Policy
Google Analytics (Web Analytics)
We use Google Analytics (Web Analytics) to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Google Analytics (Web Analytics) Privacy Policy
AdWords
We use AdWords to deploy digital advertising on sites supported by AdWords. Ads are based on both AdWords data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that AdWords has collected from you. We use the data that we provide to AdWords to better customize your digital advertising experience and present you with more relevant ads. AdWords Privacy Policy
Marketo
We use Marketo to send you more timely and relevant email content. To do this, we collect data about your online behavior and your interaction with the emails we send. Data collected may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, email open rates, links clicked, and others. We may combine this data with data collected from other sources to offer you improved sales or customer service experiences, as well as more relevant content based on advanced analytics processing. Marketo Privacy Policy
Doubleclick
We use Doubleclick to deploy digital advertising on sites supported by Doubleclick. Ads are based on both Doubleclick data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Doubleclick has collected from you. We use the data that we provide to Doubleclick to better customize your digital advertising experience and present you with more relevant ads. Doubleclick Privacy Policy
HubSpot
We use HubSpot to send you more timely and relevant email content. To do this, we collect data about your online behavior and your interaction with the emails we send. Data collected may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, email open rates, links clicked, and others. HubSpot Privacy Policy
Twitter
We use Twitter to deploy digital advertising on sites supported by Twitter. Ads are based on both Twitter data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Twitter has collected from you. We use the data that we provide to Twitter to better customize your digital advertising experience and present you with more relevant ads. Twitter Privacy Policy
Facebook
We use Facebook to deploy digital advertising on sites supported by Facebook. Ads are based on both Facebook data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Facebook has collected from you. We use the data that we provide to Facebook to better customize your digital advertising experience and present you with more relevant ads. Facebook Privacy Policy
LinkedIn
We use LinkedIn to deploy digital advertising on sites supported by LinkedIn. Ads are based on both LinkedIn data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that LinkedIn has collected from you. We use the data that we provide to LinkedIn to better customize your digital advertising experience and present you with more relevant ads. LinkedIn Privacy Policy
Yahoo! Japan
We use Yahoo! Japan to deploy digital advertising on sites supported by Yahoo! Japan. Ads are based on both Yahoo! Japan data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Yahoo! Japan has collected from you. We use the data that we provide to Yahoo! Japan to better customize your digital advertising experience and present you with more relevant ads. Yahoo! Japan Privacy Policy
Naver
We use Naver to deploy digital advertising on sites supported by Naver. Ads are based on both Naver data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Naver has collected from you. We use the data that we provide to Naver to better customize your digital advertising experience and present you with more relevant ads. Naver Privacy Policy
Quantcast
We use Quantcast to deploy digital advertising on sites supported by Quantcast. Ads are based on both Quantcast data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Quantcast has collected from you. We use the data that we provide to Quantcast to better customize your digital advertising experience and present you with more relevant ads. Quantcast Privacy Policy
Call Tracking
We use Call Tracking to provide customized phone numbers for our campaigns. This gives you faster access to our agents and helps us more accurately evaluate our performance. We may collect data about your behavior on our sites based on the phone number provided. Call Tracking Privacy Policy
Wunderkind
We use Wunderkind to deploy digital advertising on sites supported by Wunderkind. Ads are based on both Wunderkind data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Wunderkind has collected from you. We use the data that we provide to Wunderkind to better customize your digital advertising experience and present you with more relevant ads. Wunderkind Privacy Policy
ADC Media
We use ADC Media to deploy digital advertising on sites supported by ADC Media. Ads are based on both ADC Media data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that ADC Media has collected from you. We use the data that we provide to ADC Media to better customize your digital advertising experience and present you with more relevant ads. ADC Media Privacy Policy
AgrantSEM
We use AgrantSEM to deploy digital advertising on sites supported by AgrantSEM. Ads are based on both AgrantSEM data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that AgrantSEM has collected from you. We use the data that we provide to AgrantSEM to better customize your digital advertising experience and present you with more relevant ads. AgrantSEM Privacy Policy
Bidtellect
We use Bidtellect to deploy digital advertising on sites supported by Bidtellect. Ads are based on both Bidtellect data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Bidtellect has collected from you. We use the data that we provide to Bidtellect to better customize your digital advertising experience and present you with more relevant ads. Bidtellect Privacy Policy
Bing
We use Bing to deploy digital advertising on sites supported by Bing. Ads are based on both Bing data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Bing has collected from you. We use the data that we provide to Bing to better customize your digital advertising experience and present you with more relevant ads. Bing Privacy Policy
G2Crowd
We use G2Crowd to deploy digital advertising on sites supported by G2Crowd. Ads are based on both G2Crowd data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that G2Crowd has collected from you. We use the data that we provide to G2Crowd to better customize your digital advertising experience and present you with more relevant ads. G2Crowd Privacy Policy
NMPI Display
We use NMPI Display to deploy digital advertising on sites supported by NMPI Display. Ads are based on both NMPI Display data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that NMPI Display has collected from you. We use the data that we provide to NMPI Display to better customize your digital advertising experience and present you with more relevant ads. NMPI Display Privacy Policy
VK
We use VK to deploy digital advertising on sites supported by VK. Ads are based on both VK data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that VK has collected from you. We use the data that we provide to VK to better customize your digital advertising experience and present you with more relevant ads. VK Privacy Policy
Adobe Target
We use Adobe Target to test new features on our sites and customize your experience of these features. To do this, we collect behavioral data while you’re on our sites. This data may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, your Autodesk ID, and others. You may experience a different version of our sites based on feature testing, or view personalized content based on your visitor attributes. Adobe Target Privacy Policy
Google Analytics (Advertising)
We use Google Analytics (Advertising) to deploy digital advertising on sites supported by Google Analytics (Advertising). Ads are based on both Google Analytics (Advertising) data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Google Analytics (Advertising) has collected from you. We use the data that we provide to Google Analytics (Advertising) to better customize your digital advertising experience and present you with more relevant ads. Google Analytics (Advertising) Privacy Policy
Trendkite
We use Trendkite to deploy digital advertising on sites supported by Trendkite. Ads are based on both Trendkite data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Trendkite has collected from you. We use the data that we provide to Trendkite to better customize your digital advertising experience and present you with more relevant ads. Trendkite Privacy Policy
Hotjar
We use Hotjar to deploy digital advertising on sites supported by Hotjar. Ads are based on both Hotjar data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Hotjar has collected from you. We use the data that we provide to Hotjar to better customize your digital advertising experience and present you with more relevant ads. Hotjar Privacy Policy
6 Sense
We use 6 Sense to deploy digital advertising on sites supported by 6 Sense. Ads are based on both 6 Sense data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that 6 Sense has collected from you. We use the data that we provide to 6 Sense to better customize your digital advertising experience and present you with more relevant ads. 6 Sense Privacy Policy
Terminus
We use Terminus to deploy digital advertising on sites supported by Terminus. Ads are based on both Terminus data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Terminus has collected from you. We use the data that we provide to Terminus to better customize your digital advertising experience and present you with more relevant ads. Terminus Privacy Policy
StackAdapt
We use StackAdapt to deploy digital advertising on sites supported by StackAdapt. Ads are based on both StackAdapt data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that StackAdapt has collected from you. We use the data that we provide to StackAdapt to better customize your digital advertising experience and present you with more relevant ads. StackAdapt Privacy Policy
The Trade Desk
We use The Trade Desk to deploy digital advertising on sites supported by The Trade Desk. Ads are based on both The Trade Desk data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that The Trade Desk has collected from you. We use the data that we provide to The Trade Desk to better customize your digital advertising experience and present you with more relevant ads. The Trade Desk Privacy Policy
RollWorks
We use RollWorks to deploy digital advertising on sites supported by RollWorks. Ads are based on both RollWorks data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that RollWorks has collected from you. We use the data that we provide to RollWorks to better customize your digital advertising experience and present you with more relevant ads. RollWorks Privacy Policy

Are you sure you want a less customized experience?

We can access your data only if you select "yes" for the categories on the previous screen. This lets us tailor our marketing so that it's more relevant for you. You can change your settings at any time by visiting our privacy statement

Your experience. Your choice.

We care about your privacy. The data we collect helps us understand how you use our products, what information you might be interested in, and what we can improve to make your engagement with Autodesk more rewarding.

May we collect and use your data to tailor your experience?

Explore the benefits of a customized experience by managing your privacy settings for this site or visit our Privacy Statement to learn more about your options.