-
Compteur de contenus
2 764 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par Bred
-
oups ! désolé de la perte de temps ... Avec nom du fichier : (setq name (strcat "c:\\"(vl-string-trim ".dwg" (getvar "dwgname")) "_ver_1.jpg")) (setq x 2) (if (findfile name) (while (not (findfile (strcat "c:\\"(vl-string-trim ".dwg" (getvar "dwgname")) "_ver_"(rtos x)".jpg"))) (setq x (+ x 1)))) Et si tu veux rajouter ton fichier non pas sous c mais dans le répertoire ou le plan est enregistré, il faut remplacer "c:\\" par (getvar "DWGPREFIX") ... findifile retourne nil si pas de fichier, ou T si fichier, donc : (if (findfile name)... demande si le fichier version 1 existe ou pas, si il n'exite pas il donne T, donc donne le nom version1, par contre, si il existe, il passe par "while" en recherchant à chaque fois le nom du fichier à l'incrémentant de 1 jusqu'à ce que "While" soit non-T (while (not (findfile (....
-
Salut, j'ai vraiment du mal à comprendre : Réponse : en objet tu le dessines à l'echelle 1 puis quand tu l'as fini tu modifie l'echelle de l'ensemble (_scale) Réponse : tu refais une autre fenêtre à l'echelle corespondante...
-
Salut, Règles tes paramètres ombres/lumières.
-
Ben ce ce que j'explique au dessus : ... puis tu re-zoom molette pour recadre ton image....
-
Salut, rapidement, à approfondir : (setq x 2) (if (findfile "c:\\test_ver_1.jpg")) (while (not (findfile (strcat "c:\\test_ver_" (rtos x) ".jpg"))) (setq x (+ x 1)))) [Edité le 7/5/2007 par Bred]
-
Salut, si tu commence à écrire le nom d'une commande (la première lettre par exemple) et tu tapes plusieurs foir sur "Tab" ? Que ce passe t'il ???
-
Salut, active la fenêtre _3dorbit clicq droit : http://www.hebergement-images.com/05/1178530704_2007-05-07_114013.jpg et tu modifie le point de fuite en zommant/dézoomant en "montant ou descendant" avec la souris.
-
Salut, (gile) m'a montré ici comment "passer en revue" les éléments contituant un bloc. l'exemple ci-dessous est ce à quoi j'arrive en clonant son exemple. (je sais, je n'ai pas de test d'erreur sur l'existence du bloc dans la collection etc..., mais c'est un extrais) taper (test "nom_du_bloc") (defun c:test (/ A ACDOC B BLOCKS LST-B-T NAME-BLOC) (setq lst-B-T nil AcDoc (vla-get-ActiveDocument (vlax-get-acad-object)) Blocks (vla-get-Blocks AcDoc) name-Bloc (getstring T "\n Nom du bloc :")) (defun Recup-Bloc-Imb (name-Bloc) (if (setq a (assoc name-Bloc lst-B-T)) (progn (setq b (cons (car a) (+ (cdr a) 1)) lst-B-T (subst b a lst-B-T)) ) (setq lst-B-T (append (list (cons name-Bloc 1)) lst-B-T)) ) (vlax-for e (vla-item Blocks name-Bloc) (if (= (vla-get-ObjectName e) "AcDbBlockReference") (Recup-Bloc-Imb (vla-get-Name e)))) ) (Recup-Bloc-Imb name-Bloc) lst-B-T ) Mon problème est le suivant : (vlax-for e (vla-item Blocks name-Bloc) .... passe en revue les bloc de la collection... Le but de mon code est au final de récupérer les attributs. J'arrive trés bien à le faire si les attributs sont fixes. Par contre, si les attributs sont variables, vus que je ne passe en revue que la collection, la valeur des attributs récupérer dans le bloc contenant des attributs renseignés est la valeur "par défaut" !!! (bien sûr ce bloc avec attributs renseignés peut constitué un bloc imbriqués à "X" niveaux...) D'où ma question : est t'il possible de "passer en revue" un bloc dans le documents actif, mais ce passage en revue ne récupère pas les blocs de la collection mais les blocs "exactes" contenus dans ce bloc.... (sans l'exploser bien sûr, ça, je sais faire...) J'espère avoir été clair et je vous remercie par avance.
-
Récupérer le chemin \"plot styles\"
Bred a répondu à un(e) sujet de stephan35 dans Pour aller plus loin en LISP
Ah oui, désolé, j'ai tapé ça sans testé, et je suis loin d'être assez compétant pour proposer des choses sans le faire.... :exclam: -
? bonjour ! (c'est trés "frais" comme message !) :exclam:
-
Sélectionner le contenu de calques \"non-purgeables\"
Bred a répondu à un(e) sujet de Azerty dans AutoCAD 2007
merci! -
Sélectionner le contenu de calques \"non-purgeables\"
Bred a répondu à un(e) sujet de Azerty dans AutoCAD 2007
Salut, message pour (gile) : Je suis épaté de la manière dont tu as réussis à faire ça... et je ne le comprends pas : Tu atteinds les entités d'un bloc constituant un bloc imbriqué sans l'exploser.... Pourrais-tu m'éclaircir ça stp ? merci. -
Récupérer le chemin \"plot styles\"
Bred a répondu à un(e) sujet de stephan35 dans Pour aller plus loin en LISP
Je n'ai pas entièremenent répondus à ton message, désolé : (setq pref (vla-get-preferences (vlax-get-acad-object)) Files (vla-get-files pref) chem-plotfiles (vla-get-PrinterStyleSheetPath Files)) modifier : (vla-put-PrinterStyleSheetPath "c:\\mon répertoire") -
Récupérer le chemin \"plot styles\"
Bred a répondu à un(e) sujet de stephan35 dans Pour aller plus loin en LISP
Liste de méthode (exemple): (setq Propriete (vlax-dump-object Files T)) -
Récupérer le chemin \"plot styles\"
Bred a répondu à un(e) sujet de stephan35 dans Pour aller plus loin en LISP
Salut, ceci ? (setq pref (vlax-get-property (vlax-get-acad-object) 'Preferences) Files (vlax-get-property pref 'Files) chem-plotfiles (vlax-get-property Files 'PrinterStyleSheetPath)) chem-plotfiles donnant le chemin actuel pour changer : (vlax-put-property Files 'PrinterStyleSheetPath "c:\\mon répertoire") [Edité le 4/5/2007 par Bred] -
Créer des variables d\'environnement avec SETENV
Bred a répondu à un(e) sujet de (gile) dans Pour aller plus loin en LISP
Salut Patrick_35, je n'arrive pas à reproduire d'erreur (j'ai suprimé des choses existante, mais ça me les supprime correctement, si elle n'existe pas, j'ai nil, et je n'arrive pas à trouver une variable en lecture seule dans ce répertoire). j'imagine que si j'avais un message d'erreur je fairait ceci : (vl-catch-all-error-p (vl-catch-all-apply 'vl-registry-delete (list (strcat "HKEY_CURRENT_USER\\Software\\Autodesk\\AutoCAD\\R"vers"\\"rep"\\FixedProfile\\General\\") var))) ... mais comme je n'ai pas d'erreur je ne peut tester la justesse de ce que je fait ... aurais-tu un nom de variable en lecture sule dans ce repertoire ? merci. -
Salut, en fait c'est normal que tu ais un peu de mal, car le code est écrits en grande partie en "visual Lisp", est c'est un niveau un peu plus ardu que l'"autolisp", base du lisp sur Autocad. mais grâce à l'éditeur que t'as montré (gile), tu peux visualise ce que ce passe plus facilement, et donc tester, corriger, appeler l'aide, etc ... J'utilise beaucoup le "charger la selection" (à côter de "charger la fenêtre d'édition active") dans l'éditeur, pour voir comment réagis mes codes petit à petit... Ainsi, les valeurs des variables peuvent être directement vus dans la "console" (ex: tu surlignes (while (not sel) (setq sel (ssget '((0 . "LWPOLYLINE") (-4 . "&") (70 . 1)))) ) et tu "charge la selection", si tu surlignes maintenant que "sel", tu auras une selection das la varable sel (sous la forme "< Selection set: 64c9 >") puis après si tu surligne et charge que "(sslength sel)", tu auras en retour un nombre te donnant donc le nombre d'objet dans sel. etc ......) utilises souvent l'aide, même si elle peut te paraitre au premier abord confuse, on s'y habitue à force ....
-
Salut, va voir dans l'aide la variable "APERTURE" Raccourci F3 pas trop pénible. Edit. HOP là ! 3 réponses identiques à la minute ! [Edité le 3/5/2007 par Bred]
-
Créer des variables d\'environnement avec SETENV
Bred a répondu à un(e) sujet de (gile) dans Pour aller plus loin en LISP
Salut, Je n'ai pour l'instant pas eu de message d'erreur, que la variable existe ou pas : vl-registry-delete renvois T ou nil (c'est pour la visibilité de la réaction que j'ai fait un (if ... (princ ...., mais c'est inutile dans le principe) C'est même pour moi honteux !!!... je fait trop de faute, et ce forum est un exercice pour moi d'essayer d'en faire moins... -
Re, plus simple que précédent : commande "cot-f" mets toutes les cotes forcées dans un calque "Cotation-forcée" Rouge. (defun c:cot-f (/ ACDOC LST SEL VLA-OB X) (setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object)) lst nil sel (ssget "_X" '((0 . "DIMENSION")))) (if (not (tblobjname "LAYER" "Cotation-forcée")) (vla-add (vla-get-Layers AcDoc) "Cotation-forcée")) (vla-put-Color (vlax-ename->vla-object (tblobjname "LAYER" "Cotation-forcée")) acRed) (repeat (setq x (sslength sel)) (setq vla-ob (vlax-ename->vla-object (ssname sel (setq x (1- x))))) (if (not (equal (vla-get-TextOverride vla-ob) "")) (vla-put-layer vla-ob "Cotation-forcée")) ) (princ) ) [Edité le 2/5/2007 par Bred]
-
Salut, Tu as ce lisp d'usegomme. (en parrallèle tu as ce lisp qui te fait le cumul des cotes selectionnés, non forcé puis forcé).
-
Créer des variables d\'environnement avec SETENV
Bred a répondu à un(e) sujet de (gile) dans Pour aller plus loin en LISP
Salut, à tester : (defun delenv (var / REP VERS) (setq vers (vl-string-subst "" (substr (getvar "ACADVER") 5) (getvar "ACADVER")) rep (car (vl-registry-descendents (strcat "HKEY_CURRENT_USER\\Software\\Autodesk\\AutoCAD\\R"vers"\\")))) (if (vl-registry-delete (strcat "HKEY_CURRENT_USER\\Software\\Autodesk\\AutoCAD\\R"vers"\\"rep"\\FixedProfile\\General\\") var) (princ (strcat "\n Variable "var" supprimée !.")) (princ (strcat "\n Variable "var" non supprimée.")) ) (princ) ) [Edité le 2/5/2007 par Bred] -
Salut x-all, afin de ne pas poluer le post de (gile) avec des lisp "exterieurs", je t'ai répondu ici.
-
Salut, pour répondre à x-all ici, un petit lisp qui retourne la longueur des lignes + polyligne (2D ou 3D) sélectionné : (taper lg-li-pol pour lancer la commande) - Nota : enlever les espaces (-4 . "[surligneur]< OR[/surligneur]") (-4 . "[surligneur]OR >[/surligneur]") (defun c:lg-li-pol (/ LG SEL X) (setq lg 0 sel nil) (while (not sel) (setq sel (ssget (list '(-4 . "< OR") '(0 . "*POLYLINE") '(0 . "LINE") '(-4 . "OR >")))) ) (repeat (setq x (sslength sel)) (setq lg (+ lg (vla-get-Length (vlax-ename->vla-object (ssname sel (setq x (1- x))))))) ) (alert (strcat "Longueur :" (rtos lg) " .")) (princ) ) Edit : Ajout de la possibilitée de sélectionner les polyligne dites "3D". [Edité le 2/5/2007 par Bred]
-
Salut, Comme l'écrit (gile), la notion de "polysolide" (solide réaliser à partir d'une ligne, polyligne, etc...) n'apparait que dans la 2007. Cette commande créés un "solide 3D". Par contre, si tu veux donner une épaisseur à une polyligne, tu peux passer par les propriétés. Mais attention : l'objet reste une polyligne, et les opérations boléenne lui sont impossible !!! http://images1.hiboox.com/images/1807/tkukfjj2.jpg
