krunch
Membres-
Compteur de contenus
239 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par krunch
-
Propriétés de remplacement des calques
krunch a répondu à un(e) sujet de krunch dans Pour aller plus loin en LISP
Bonjour (gile) J'ai intégré gc-vplayerremoveall et j'ai une 'Erreur: eNotApplicable' dès que je tente de l'appliquer sur la présentation (la Viewport #0), peu importe que le calque ait ou pas des overrides pour la vue. Pas d'erreur avec les fenêtres normales... A noter qu'elle renvoie T même si le calque n'avait pas d'overrides (donc mm si elle ne s'applique pas) mais c'est pas grave.. Sinon je n'ai pas eu de nouvelle erreur avec gc-vplayeroverride, super ! -
Documentation sur les fonctions « acet-* » des expresstools d'Autocad
krunch a répondu à un(e) sujet de GEGEMATIC dans Pour aller plus loin en LISP
Salut J'avais commencé à faire pareil sous la forme d'un tableau mis en ligne ici Si jamais tu es motivé, je pense que le mieux serait de faire un wiki pour ça ? -
Propriétés de remplacement des calques
krunch a répondu à un(e) sujet de krunch dans Pour aller plus loin en LISP
Impeccable, l'erreur a disparu... Merci encore -
Propriétés de remplacement des calques
krunch a répondu à un(e) sujet de krunch dans Pour aller plus loin en LISP
Bonjour (gile) Je reviens à nouveau pour un problème avec gc-vplayeroverride, cette fois ci utilisée depuis un contexte particulier qui est celui de OpenDCL (une image ici). Le problème est qu'elle renvoie souvent une erreur eLockViolation, la description et peut être la solution sont ici .. Au passage je recommande vivement OpenDCL à tous ceux qui veulent fabriquer des interfaces évoluées (niveau VB) tout en restant en Lisp, c'est un très bon outil. -
Propriétes de calques des xrefs
krunch a répondu à un(e) sujet de pingoo666 dans Pour aller plus loin en LISP
Salut Pour la récupération des propriétés de calques d'une XRef il y a une fonction ici : http://www.lee-mac.com/resetxreflayers.html, si ça peut t'aider .. -
Propriétés de remplacement des calques
krunch a répondu à un(e) sujet de krunch dans Pour aller plus loin en LISP
Ok, au temps pour moi car en effet j'ai interprété : j'ai cru que ton lien (Propriétés-Débloquer) concernait uniquement les .dll, et surtout cette manip n'était pas utile dans la version précédente du .chm .. J'ai débloqué le chm et ça marche. Si tu veux bien j'aurais une (dernière) question sur le codage des couleurs. Avec les overrides on obtient uniquement le code 420 (cf cette discussion). Or avec cet entier on obtient le code RVB, et assez facilement le code ACI (si couleur ACI), mais peut-on en déduire le bookname le cas échéant ? -
Propriétés de remplacement des calques
krunch a répondu à un(e) sujet de krunch dans Pour aller plus loin en LISP
Salut Je parlais du fichier d'aide .chm ! qui marchait dans la version précédente .. (mais je garde ce lien car pb avec ton dll ailleurs en réseau) Merci bien je vais chercher ça -
Propriétés de remplacement des calques
krunch a répondu à un(e) sujet de krunch dans Pour aller plus loin en LISP
Bonjour (gile) Chez moi (windows 7) ta dernière version (uniquement) du fichier d'aide n'est pas lu correctement : j'ai une page "Navigation vers la page Web annulée" mauvaise adresse apparemment, même quand je clique sur les rubriques. Autre question : où sont sockées les propriétés gel/degel des calques dans la fenêtre (gérées par gc-vpthaw/gp-vpfreeze), je n'arrive pas à les trouver pour les lire... Elles ne sont pas dans les overrides des calques ni dans l'objet fenêtre ? Merci d'avance -
Merci pour ces nouvelles explications et pour ta patience. Pour moi le point bloquant c'est juste le fait qu'on puisse faire quelque chose (en l'occurrence avec les variants) en 32 mais pas en 64, je croyais qu'à la base c'était une hérésie ... Donc il faut en conclure qu'en fait non, c'est possible ?
-
Oui merci (j'avais pas vu que gc:massoc est une de tes fcts de base) Mais je veux dire : avec vlax-variant-value je peux récupérer un objet dans une XRecord en 32 bits alors que je ne peux pas le faire en 64 ? Ce serait curieux non ?? ---------- Voilà mon exemple .. Chez moi il fonctionne en 32 bits mais pas en 64 (même avec ObjectIDToObject32 ). Il faut d'abord remplacer une couleur du "0" dans une présentation puis appeler (GetColorOverrides "0") (defun GetColorOverrides (layer / doc lays xrec data) (vl-load-com) (setq doc (vla-get-ActiveDocument (vlax-get-acad-object))) (setq lays (vla-get-Layers doc)) (setq layer (vla-item lays layer)) (and (eq (vla-get-HasExtensionDictionary layer) :vlax-true) (setq xrec (vla-item (vla-getExtensionDictionary layer) "ADSK_XREC_LAYER_COLOR_OVR")) (progn (vla-getXRecordData xrec 'cod 'val) (setq data (LM:Variants->DXF cod val)) (print (vla-ObjectIDToObject doc (cadr(assoc 335 data)))) ; <-- vla-ObjectIDToObject32 pour 64 bits )) ) ;;-------------------=={ Variant Value }==--------------------;; ;; ;; ;; Converts a VLA Variant into native AutoLISP data types ;; ;;------------------------------------------------------------;; ;; Author: Lee McDonnell, 2010 ;; ;; ;; ;; Copyright © 2010 by Lee McDonnell, All Rights Reserved. ;; ;; Contact: Lee Mac @ TheSwamp.org, CADTutor.net ;; ;;------------------------------------------------------------;; ;; Arguments: ;; ;; value - VLA Variant to process ;; ;;------------------------------------------------------------;; ;; Returns: Data contained within variant ;; ;;------------------------------------------------------------;; ; (defun LM:VariantValue (value) ;; © Lee Mac 2010 (cond ((eq 'variant (type value)) (LM:VariantValue (vlax-variant-value value)) ) ((eq 'safearray (type value)) (mapcar 'LM:VariantValue (vlax-safearray->list value)) ) (value) ) ) ;;------------------=={ Variants->DXF }==---------------------;; ;; ;; ;; Converts Type and Value Variants to a DXF List ;; ;;------------------------------------------------------------;; ;; Author: Lee McDonnell, 2010 ;; ;; ;; ;; Copyright © 2010 by Lee McDonnell, All Rights Reserved. ;; ;; Contact: Lee Mac @ TheSwamp.org, CADTutor.net ;; ;;------------------------------------------------------------;; ;; Arguments: ;; ;; typ - VLA Variant of Integer type ;; ;; val - VLA Variant of Variant type ;; ;;------------------------------------------------------------;; ;; Returns: DXF List ;; ;;------------------------------------------------------------;; (defun LM:Variants->DXF (typ val) ;; © Lee Mac 2010 (apply 'mapcar (cons 'cons (mapcar 'LM:VariantValue (list typ val)) ) ) )
-
Ok compris (également l'avantage des ename, j'ai tendance à foncer sur les vla- par fainéantise ..) Mais au final qu'est ce que je peux en conclure, sinon que vlax-variant-value traduit "un variant COM en valeur LISP" différemment en 32 bits et en 64, et que cette différence fait que ça ne marche pas en 64 ? Sinon où est le problème dans ce cas ? Pour en revenir à tes fonctions très efficaces, l'argument key de gc:massoc indique les overrides, et on pourrait faire pareil pour les layerstates ??
-
Salut et merci encore Effectivement c'est plus simple, ça évite les Id. Et sinon il y aurait donc un problème avec vlax-variant-value et les entiers ID sous 64bits
-
Propriétés de remplacement des calques
krunch a répondu à un(e) sujet de krunch dans Pour aller plus loin en LISP
Le secrêt de (gile) : rendre le temps extensible ! -
Oui avec vla-ObjectIDToObject ça donne : ; erreur: une exception s'est produite: 0xC0000005 (Violation d'accès)..unwind ignorée erreur inconnue En fait l'Id en question vient du code 335 d'une XRecord, passé par cette routine LM:Variants->DXF : http://www.cadtutor.net/forum/archive/index.php/t-53353.html. Peut être que ça vient de ces routines en 64bits ?
-
Bon, c'est curieux. La ligne qui plante est un vla-ObjectIDToObject32 sur un groupe 335 de XRecord (en fait la suite de mon exemple précédent sur les overrides), et l'id sous 64bits est -5219840 (un entier long positif sous 32bits). Je ne sais pas si c'est un entier valable ..
-
Propriétés de remplacement des calques
krunch a répondu à un(e) sujet de krunch dans Pour aller plus loin en LISP
Oui y a plus important, je disais ça par perfectionisme .. Tombé sur ce post sur ce sujet : http://www.theswamp.org/index.php?topic=35274.0 -
Propriétés de remplacement des calques
krunch a répondu à un(e) sujet de krunch dans Pour aller plus loin en LISP
Bonjour (gile) Encore un dernier détail : avec gc-VpLayerOverride il faudrait pouvoir spécifier la couleur par une paire pour les RVB RAL ... Voir la commande layerstate-addlayers qui utilise ces paramètres .. -
Bonjour J'ai une fonction qui utilise vla-ObjectIDToObject et qui marche très bien sur une version 32bits. Mais en 64bits avec vla-ObjectIDToObject32 elle ne marche pas : ; erreur: Erreur Automation. Aucune description n'a été entrée. ObjectIDToObject32 est bien faite pour ça ou j'ai raté quelquechose ??
-
Propriétés de remplacement des calques
krunch a répondu à un(e) sujet de krunch dans Pour aller plus loin en LISP
Salut, merci pour cette info. Pour le moment j'ai essayé la manip telle quel mais j'ai une erreur : 'caspol.exe' n'est pas reconnu comme une commande interne .. Il s'agit d'un système XP et non pas NT.. je chercherai par la suite, referai un message si je trouve. -
Propriétés de remplacement des calques
krunch a répondu à un(e) sujet de krunch dans Pour aller plus loin en LISP
Oui ok, en CTB le fait qu'il écrive la couleur dans le style semble un comportement normal J'ai fini par trouver un truc... Les styles de tracés ne sont pas explicitement "chargés" par une commande, par contre on peut modifier CPLOTSTYLE avec le nouveau style puis remettre le précédent, ça a l'air de marcher (il y a peut être + simple ?) ... (setq tmp (getvar "CPLOTSTYLE")) (setq new "Style_1") ; le style doit être présent dans la table affectée à la présentation (setvar "CPLOTSTYLE" new) (setvar "CPLOTSTYLE" tmp) (gc-vplayeroverride (car (entsel)) "0" nil nil nil new) Super, et encore merci pour ce boulot Par contre j'ai un problème sur une autre config. dont la particularité est d'aller chercher les fichiers (lisp et autres) sur le réseau : si je charge le dll enregistré en local (NETLOAD) ça marche, mais si je charge le même dll depuis un lecteur réseau j'ai une erreur (message interminable ci-dessous). Le chargement d'un dll ne se fait pas de la même fonction selon l'emplacement ? Commande: (gc-vplayeroverride (car (entsel)) "0" 40) Choix de l'objet: System.Security.SecurityException: Échec de la demande d'autorisation de type 'System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. à System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet) à System.Security.CodeAccessPermission.Demand() à System.Reflection.Assembly.VerifyCodeBaseDiscovery(String codeBase) à System.Reflection.Assembly.GetName(Boolean copiedName) à System.Reflection.Assembly.GetName() à Autodesk.AutoCAD.ApplicationServices.Application.get_Version() à LispVpLayer.VpLayer.VpLayerOverride(ResultBuffer resbuf) à Autodesk.AutoCAD.Runtime.CommandClass.InvokeWorker(MethodInfo mi, Object commandObject, Boolean bLispFunction) à Autodesk.AutoCAD.Runtime.CommandClass.InvokeWorkerWithExceptionFilter(MethodInfo mi, Object commandObject, Boolean bLispFunction) à Autodesk.AutoCAD.Runtime.PerDocumentCommandClass.Invoke(MethodInfo mi, Boolean bLispFunction) à Autodesk.AutoCAD.Runtime.CommandClass.CommandThunk.InvokeLisp() L'action qui a échoué était : Demand Le type de la première autorisation qui a échoué était : System.Security.Permissions.FileIOPermission La première autorisation qui a échoué était : <IPermission class="System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" PathDiscovery="C:\Program Files\AutoCAD 2010\acmgd.DLL"/> La demande était pour : <IPermission class="System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" PathDiscovery="C:\Program Files\AutoCAD 2010\acmgd.DLL"/> Le jeu autorisé de l'assembly défaillant était : <PermissionSet class="System.Security.PermissionSet" version="1"> <IPermission class="System.Security.Permissions.FileDialogPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Access="Open"/> <IPermission class="System.Security.Permissions.IsolatedStorageFilePermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Allowed="ApplicationIsolationByUser" UserQuota="512000"/> <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="Execution"/> <IPermission class="System.Security.Permissions.UIPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Window="SafeTopLevelWindows" Clipboard="OwnClipboard"/> <IPermission class="System.Security.Permissions.UrlIdentityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Url="file:///X:/ACad support/LISP autoload/LispVpLayer.dll"/> <IPermission class="System.Security.Permissions.ZoneIdentityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Zone="Internet"/> <IPermission class="System.Drawing.Printing.PrintingPermission, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" version="1" Level="SafePrinting"/> </PermissionSet> L'assembly ou le AppDomain qui a échoué était : LispVpLayer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null La méthode qui a causé l'échec était : Autodesk.AutoCAD.DatabaseServices.TypedValue VpLayerOverride(Autodesk.AutoCAD.DatabaseServices.ResultBuffer) La zone de l'assembly qui a échoué était : Internet L'URL de l'assembly qui a échoué était : file:///X:/ACad support/LISP autoload/LispVpLayer.dll; erreur: Demande ADS erronée -
Propriétés de remplacement des calques
krunch a répondu à un(e) sujet de krunch dans Pour aller plus loin en LISP
En effet plus d'erreur, par contre toujours sur les styles nommés.. En mode CTB : (gc-vplayeroverride (car (entsel)) "0" 40 nil 35 "Normal") il semble que la couleur du calque soit répliquée dans le style (> "Color_40") même désactivé (par défaut j'ai "Color_7"). En CTB il faudrait plutôt que l'argument style soit ignoré ? En mode STB (présentation) je sélectionne acad.stb dans la fenêtre Propriétés puis : (gc-vplayeroverride (car (entsel)) "0" 40 nil 35 "Style_1") > Erreur: style de tracé incorrect Le style en argument doit être "chargé" ou présent dans la liste déroulante des styles de tracés, sinon j'ai cette erreur. Pour ça il faut affecter "Style_1" au moins 1 fois à un objet quelconque ? Je ne sais pas si j'ai raté un truc là dessus ... Un dernier point : je pensais la mettre dans une boucle (calques), et dans ce cas il faudrait pouvoir faire le Regen à la fin (donc soit une version sans Regen soit selon argument supplémentaire). -
Propriétés de remplacement des calques
krunch a répondu à un(e) sujet de krunch dans Pour aller plus loin en LISP
Bravo, c'est carrément impressionant ! Et merci aussi pour les liens. Du coup j'ai testé celle qui m'intéresse .. J'ai une erreurs si j'essaie de modifier le style de tracé (idem avec un style de tracé de table attachée à la présentation) : (gc-vplayeroverride (car (entsel)) "0" 40 nil 35 "Normal") .. Autodesk.AutoCAD.Runtime.Exception: eNotApplicable à Autodesk.AutoCAD.Runtime.Interop.ThrowExceptionForErrorStatus(Int32 errorStatus) à ... Et une autre erreur si j'essaie la même ligne dans un dessin en ctb (manqerait un test ctb/stb) : Erreur: type d'argument incorrect: stringp Normal Sinon il y a une parenthèse en trop au milieu du code d'exemple de l'aide : (car (entsel))) Merci encore -
Bonjour Je cherche à intervenir sur les propriétés de calques par Viewport. Après pas mal de recherches j'ai trouvé (chez Lee Mac) de quoi lire ces propriétés mais apparemment impossible de les écrire (lisp en dessous) Ensuite j'ai trouvé ça : un dll qui fabrique une fonction .. Donc ça se confirme, c'est loin d'être simple... Pour modifier d'autres propriétés (que couleur et linetype) il faudrait ouvrir le code de Changevpsettings pour refaire un dll à partir du .vb ?.. C'est comme du VBA ?.. Pensez vous que ce soit une solution ?... Ou vaut-il mieux penser à autre chose :blink: Merci d'avance (GetXrecord "0") renvoie props d'épaisseurs de VP du calque0 vla-setXRecordData provoque une erreur (defun GetXrecord (layer / xrec) (vl-load-com) (setq layer (vla-item (vla-get-Layers (vla-get-ActiveDocument (vlax-get-acad-object))) layer)) (if (eq :vlax-true (vla-get-HasExtensionDictionary layer)) (progn (setq xrec (vla-item (vla-getExtensionDictionary layer) "ADSK_XREC_LAYER_LINEWT_OVR")) (vla-getXRecordData xrec 'cod 'val) (print (vlax-safearray->list cod))(print (vlax-safearray->list val))(print) ;; (vla-setXRecordData xrec (vlax-make-variant cod) (vlax-make-variant val)) ; !! ERR!! ;; (LM:Variants->DXF cod val) ) ) )
-
Ok merci gile, en ajoutant un initdia ça marche (par contre "_-hatch" fait la même chose) Arf oui, il semblerait .. (je suis sur la 2010 :huh: )
-
Bonjour à tous Pour Noêl je propose la commande RE qui permet de recréer une entité identique (de même type et propriétés) à une autre : on sélectionne une entité et la commande lance la commande correspondante (au type) après réglage des variables système. Ca permet de "continuer" sur un même calque avec une entité identique. A l'usage elle est plutôt cool .. mais il y a un problème avec les commandes à fenêtre (comme _bhatch) : la fonction command les met en mode ligne de commande. Comment on lance une commande avec fenêtre ? Sinon (si jamais ça inspire quelqu'un ...) - avec ce système il manque sans doute beaucoup de variables - il faudrait une boite de dialogue pour gérer les propriétés (comme _matchprop) Sinon bonnes fêtes à tous, inspirés ou pas ! ; ** ; RE ; ** ; Fabriquer une entité de même type et propriétés qu'un entité de référence ; note : "RE" remplace le raccourci français pour RESEAU ; *keep* T/nil Garder propriétés / restituer courantes ; *env* liste des variables et valeur initiale (defun c:RE (/ ent get typ props var tmp) (vl-load-com) (print) ; Réacteurs de sortie de commande (defun Out (r c / u) (mapcar 'vlr-remove (vl-remove-if-not '(lambda(u) (= (vlr-data u) "RE")) (cdar (vlr-reactors :vlr-editor-reactor)))) ; Restitution variables système (setq u (assoc "DIMSTYLE" *env*)) (if u (progn (setq *env* (append (cdr (member u *env*)) (cdr (member u (reverse *env*))))) ; liste (en désordre) sans 1 élément (setq r (vla-get-ActiveDocument (vlax-get-acad-object))) (vlax-put r "ActiveDimStyle" (vla-item (vlax-get r "DimStyles") (cadr u))) )) (mapcar '(lambda(u) (setvar (car u) (cadr u))) *env*) ) ; Liste des variables (setq props '("CLAYER" "CECOLOR" "CELTYPE" "CELTSCALE" "CELWEIGHT" "CMATERIAL" "THICKNESS" "ELEVATION" "CMLJUST" "CMLSCALE" "CMLSTYLE" "TEXTSTYLE" "TEXTSIZE" "TSPACEFAC" "TSPACETYPE" "CMLEADERSTYLE" "DIMSTYLE" "PLINEWID")) (if (zerop (getvar "PSTYLEMODE")) (setq props (cons "CPLOTSTYLE" props))) ; style de tracé si mode stb ; Sélection (initget "C O N") ; (dans cet ordre ..) (while (not (listp (setq ent (entsel (strcat "Sélectionnez une entité de référence [> propriétés Courantes (" (if *keep* "O" "N") ")] : "))))) (setq *keep* (cond ((= ent "O") T) ((= ent "N") nil) ((= ent "C") (not *keep*)) )) (initget "C O N") ) (if ent (progn (setq ent (car ent) get (entget ent) typ (cdr (assoc 0 get)) *env* nil) (foreach var props (setq *env* (cons (list var (getvar var)) *env*)) (cond ; Propriétés générales ((= var "CLAYER") (setvar var (cdr (assoc 8 get)))) ((= var "CECOLOR") (setvar var (if (setq tmp (assoc 430 get)) (cdr tmp) (if (setq tmp (cdr (assoc 420 get))) (strcat "RGB:" (itoa (lsh (lsh tmp 8) -24)) "," (itoa (lsh (lsh tmp 16) -24)) "," (itoa (lsh (lsh tmp 24) -24))) (if (setq tmp (assoc 62 get)) (itoa (cdr tmp)) "ByLayer"))))) ((= var "CELTYPE") (setvar var (if (setq tmp (cdr (assoc 6 get))) tmp "ByLayer"))) ((= var "CELTSCALE") (setvar var (if (setq tmp (cdr (assoc 48 get))) tmp 1.0))) ((= var "CELWEIGHT") (setvar var (if (setq tmp (cdr (assoc 370 get))) tmp -1))) ((= var "CPLOTSTYLE") (setvar var (if (setq tmp (cdr (assoc 390 get))) (cdadr (member (cons 350 tmp) (reverse (entget (cdr (assoc 330 (entget tmp))))))) "ByLayer"))) ((= var "CMATERIAL") (setvar var (if (setq tmp (assoc 347 get)) (cdr (assoc 1 (entget (cdr tmp)))) "ByLayer"))) ; Propriétés spécifiques ((and (= var "THICKNESS") (member typ '("ARC" "ATTRIB" "ATTDEF" "CIRCLE" "LWPOLYLINE" "LINE" "POINT" "POLYLINE" "SHAPE" "SOLID" "TEXT" "TRACE"))) (setvar var (if (setq tmp (cdr (assoc 39 get))) tmp 0.0))) ((and (= var "ELEVATION") (= typ "LWPOLYLINE")) (setvar var (cdr (assoc 38 get)))) ((and (= var "ELEVATION") (= typ "SECTION")) (setvar var (cdr (assoc 40 get)))) ; vérifier ((and (= var "ELEVATION") (member typ '("POLYLINE" "HATCH"))) (setvar var (last(cdr (assoc 10 get))))) ((and (= var "CMLJUST") (= typ "MLINE")) (setvar var (cdr (assoc 70 get)))) ((and (= var "CMLSCALE") (= typ "MLINE")) (setvar var (cdr (assoc 40 get)))) ((and (= var "CMLSTYLE") (= typ "MLINE")) (setvar var (cdr (assoc 2 get)))) ((and (= var "PLINEWID") (= typ "LWPOLYLINE")) (setvar var (cdr (assoc 43 get)))) ((and (= var "TEXTSTYLE") (member typ '("MTEXT" "TEXT"))) (setvar var (if (setq tmp (assoc 7 get)) (cdr tmp) "Standard"))) ((and (= var "TEXTSIZE") (member typ '("MTEXT" "TEXT" "ATTDEF"))) (setvar var (cdr (assoc 40 get)))) ((and (= var "TSPACEFAC") (= typ "MTEXT")) (setvar var (cdr (assoc 44 get)))) ((and (= var "TSPACETYPE")(= typ "MTEXT")) (setvar var (cdr (assoc 73 get)))) ((and (= var "CMLEADERSTYLE") (= typ "MULTILEADER")) (setvar var (vlax-get (vlax-ename->vla-object ent) "StyleName"))) ; (style introuvable dans le dxf) ; DIMSTYLE passe par ActiveX (lecture seule) ((and (= var "DIMSTYLE") (vl-string-search "DIMENSION" typ)) (setq tmp (vla-get-ActiveDocument (vlax-get-acad-object))) (vlax-put tmp "ActiveDimStyle" (vla-item (vlax-get tmp "DimStyles") (cdr (assoc 3 get))))) ) ) ; Restitution (réacteurs de commande) si option Conserver désactivée (or *keep* (vlr-editor-reactor "RE" (list (cons :vlr-commandEnded 'Out) (cons :vlr-commandCancelled 'Out) (cons :vlr-commandFailed 'Out) ))) ; Commande (setq tmp (cond ((= typ "LWPOLYLINE") "_pline") ((= typ "ARC_DIMENSION") "_dimarc") ((= typ "LARGE_RADIAL_DIMENSION") "_dimjogged") ((= typ "DIMENSION") (nth (rem (cdr (assoc 70 get)) 8) '("_dimlinear" "_dimaligned" "_dimangular" "_dimdiameter" "_dimradius" "_dimangular" "_dimordinate"))) (T (strcat "_" (strcase typ T))) )) (setvar "CMDECHO" 0) (princ (strcat "\n" tmp "\n")) (initdia) (command tmp) (setvar "CMDECHO" 1) (princ) ) (princ "\nSélection vide") ) )
