Aller au contenu

Bred

Membres
  • Compteur de contenus

    2 764
  • Inscription

  • Dernière visite

Tout ce qui a été posté par Bred

  1. 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 (....
  2. Bred

    Problème d\'échelles

    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...
  3. Bred

    solide _blanc_

    Salut, Règles tes paramètres ombres/lumières.
  4. Ben ce ce que j'explique au dessus : ... puis tu re-zoom molette pour recadre ton image....
  5. 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]
  6. 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 ???
  7. 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.
  8. 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.
  9. 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:
  10. Bred

    selectionner similaire

    ? bonjour ! (c'est trés "frais" comme message !) :exclam:
  11. 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.
  12. 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")
  13. Liste de méthode (exemple): (setq Propriete (vlax-dump-object Files T))
  14. 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]
  15. 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.
  16. 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 ....
  17. Bred

    accrochage objets

    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]
  18. 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...
  19. Bred

    cotes truqué

    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]
  20. Bred

    cotes truqué

    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é).
  21. 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]
  22. Bred

    Lisps de gile

    Salut x-all, afin de ne pas poluer le post de (gile) avec des lisp "exterieurs", je t'ai répondu ici.
  23. 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]
  24. Bred

    polysolide

    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
×
×
  • Créer...

Information importante

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