Aller au contenu

bonuscad

Membres
  • Compteur de contenus

    5 029
  • Inscription

  • Dernière visite

  • Jours gagnés

    56

Tout ce qui a été posté par bonuscad

  1. Rien, à part une compatibilité avec des versions étrangères. Mais cela me fait penser qu'il y a aussi la commande XPLODE qui présente des options pour la décomposition. Par contre je ne suis pas sur qu'elle soit valable sur une LT. Autrement quand tu fais un LISTE sur l'un de tes XRef, as tu ? Autoriser la décomposition: Oui
  2. Pas besoin de constituer une liste, utilise simplement la fonction (substr) Ex: (substr(getvar "dwgname") 2 1)
  3. Pourtant avec la commande PEDIT et l'option MULTIPLE tu peux facilement les re-transformer en polylignes distinctes.
  4. Bonjour, ?!?! Il n'y a qu'un élément dans la variable (en lecture seule), qui est une chaine de caractère (STRING) pour celle-ci... donc (list (getvar "DWGNAME")) doit suffire...
  5. Bonjour, Et si tu DECOMPOS tout simplement ta polyligne3D! Cela ne te convient pas?
  6. Un espace manquant, (pour ma part, il vaut mieux des points-virgule que des espaces, moins de risque d'erreur) la macro: ^C^C(setq RAY(getreal "rayon :"));\(setq PT(getpoint "point de passage:"));\decaler;!RAY;\!PT;(setq E1(entlast));;cercle;!PT;!RAY;(setq E2(entlast));cercle;int;\!RAY;effacer;!E1;!E2;;^Z
  7. Réessayes en modifiant la variable (non documentée) QAFLAGS temporairement.
  8. bonuscad

    Nostalgie

    :calim: Essayes de convertir avec la routine qui suit. A la fin de l'exécution les objets dont les points de définitions à convertir seront gripés. Tu peux alors choisir de les effacer ou de changer leur propriétés (calque, couleur etc...), ou aussi ne rien faire (ESC pour les dégriper) (defun l-coor2l-pt (lst flag / ) (if lst (cons (list (car lst) (cadr lst) (if flag (caddr lst) 0.0)) (l-coor2l-pt (if flag (cdddr lst) (cddr lst)) flag) ) ) ) (defun c:ptdef2pt3D ( / js dxf_cod n lremov ename l_pt l_pr) (princ "\nChoix d'un objet modèle pour le filtrage: ") (while (null (setq js (ssget "_+.:E:S" (list '(0 . "LINE,MLINE,*POLYLINE,POINT,ARC,CIRCLE,ELLIPSE,INSERT") (cons 67 (if (eq (getvar "CVPORT") 1) 1 0)) (cons 410 (if (eq (getvar "CVPORT") 1) (getvar "CTAB") "Model")) ) ) ) ) (princ "\nCe n'est pas un objet valable pour cette fonction!") ) (vl-load-com) (setq dxf_cod (entget (ssname js 0))) (initget "Unique Multiple _Single Multiple") (if (eq (getkword "\nSélection filtrée [unique/Multiple]: ") "Single") (setq n -1) (setq dxf_cod (entget (ssname js 0)) js (ssget "_X" (foreach m (foreach n dxf_cod (if (not (member (car n) '(0 67 410 8 6 62 48 420 70))) (setq lremov (cons (car n) lremov)))) (setq dxf_cod (vl-remove (assoc m dxf_cod) dxf_cod)) ) ) n -1 ) ) (repeat (sslength js) (setq ename (vlax-ename->vla-object (ssname js (setq n (1+ n)))) l_pt nil) (setq l_pr (list 'StartPoint 'EndPoint 'Center 'InsertionPoint 'Coordinates 'FitPoints)) (foreach n l_pr (if (vlax-property-available-p ename n) (setq l_pt (if (eq n 'Coordinates) (progn (append (if (eq (vla-get-ObjectName ename) "AcDbPolyline") (l-coor2l-pt (vlax-get ename n) nil) (l-coor2l-pt (vlax-get ename n) T) ) l_pt ) ) (cons (vlax-get ename n) l_pt) ) ) ) ) (mapcar '(lambda (x) (entmake (list (cons 0 "POINT") (assoc 8 dxf_cod) (cons 10 x) (assoc 67 dxf_cod) (assoc 410 dxf_cod))) ) l_pt ) ) (sssetfirst nil js) (prin1) )
  9. Bonsoir, J'invite à regarder ce fil ancien Sans avoir essayer à nouveau ce procédé, je pense qu'il est toujours d'actualité et bien utile pour les LT une fois maitrisé.
  10. bonuscad

    Nostalgie

    Bonsoir, T'aurais du faire un up de ton message, ou le rafraichir, car je pense qu'il était passé à la trappe... Soit plus explicite sur ton problème, ton besoin est certainement sur le site. Seulement il y a tellement de manières de faire pour résoudre ton problème suivant ce que tu possède en version d'Autocad, de ce que tu désires obtenir et à partir de quoi ?
  11. Avec Firefox cela arrive assez souvent. Le mode opératoire est alors dans ce cas: Click-droit sur le document joint à télécharger Choisir dans le menu contextuel: "Enregistrer la cible du lien sous..." (supprimer les caractères qui se rajoute en préfixe du nom de fichier)
  12. ??? Tu es le 1er a me rapporter ceci... Je n'ai pas la réponse, je pense que c'est simplement une histoire de police avec une page de code non approprié utilisé avec le navigateur. Avec firefox je suis en encodage de caractères: occidental (iso 8859-1)
  13. Un bout de code que j'avais écris à je ne sais quelle occasion. Il crée un fichier au format CSV qui est facilement lu par Excel. (defun c:text_value2csv ( / js dxf_cod mod_sel n lremov file_name cle f_open ename l_pt l_pr nbs) (princ "\nChoix d'un objet modèle pour le filtrage: ") (while (null (setq js (ssget "_+.:E:S" (list '(0 . "*TEXT") (cons 67 (if (eq (getvar "CVPORT") 1) 1 0)) (cons 410 (if (eq (getvar "CVPORT") 1) (getvar "CTAB") "Model")) ) ) ) ) (princ "\nCe n'est pas un objet valable pour cette fonction!") ) (vl-load-com) (setq dxf_cod (entget (ssname js 0))) (foreach m (foreach n dxf_cod (if (not (member (car n) '(0 67 410 8 6 62 48 420 70))) (setq lremov (cons (car n) lremov)))) (setq dxf_cod (vl-remove (assoc m dxf_cod) dxf_cod)) ) (initget "Unique Tout Manuel _Single All Manual") (if (eq (setq mod_sel (getkword "\nMode de sélection filtrée, choix [unique/Tout/Manuel]: ")) "Single") (setq n -1) (if (eq mod_sel "All") (setq js (ssget "_X" dxf_cod) n -1) (setq js (ssget dxf_cod) n -1) ) ) (setq file_name (getfiled "Nom du fichier a créer ?: " (strcat (substr (getvar "dwgname") 1 (- (strlen (getvar "dwgname")) 3)) "csv") "csv" 37)) (if (null file_name) (exit)) (if (findfile file_name) (progn (prompt "\nFichier éxiste déjà!") (initget "Ajoute Remplace annUler _Add Replace Undo") (setq cle (getkword "\nDonnées dans fichier? [Ajouter/Remplacer/annUler] : ") ) (cond ((eq cle "Add") (setq cle "a") ) ((or (eq cle "Replace") (eq cle ())) (setq cle "w") ) (T (exit)) ) (setq f_open (open file_name cle)) ) (setq f_open (open file_name "w")) ) (repeat (sslength js) (setq ename (vlax-ename->vla-object (ssname js (setq n (1+ n)))) l_pt nil) (setq l_pr (list 'TextString) nbs 0) (foreach n l_pr (if (vlax-property-available-p ename n) (setq l_pt (cons (vlax-get ename n) l_pt) ) ) ) (foreach n l_pt (write-line n f_open) ) (write-line "" f_open) ) (close f_open) (prin1) )
  14. En remettant ce sujet ancien au goût du jour, cela peut être une alternative intéressante pour dessiner de façon structurée et de manière plus polyvalente: un copier-propriétés pour la création en sorte. Il est idéal pour compléter un dessin existant mais on pourrait envisager un DWT contenant une légende près-disponible permettant ainsi l'usage dès le début de commande de dessin clonées. Mettre le code en vla serait-il plus puissant pour cloner des paramètre plus fin?.... c'est fort possible, mais je n'ai pas essayé!
  15. bonuscad

    prob lisp sous Acad 2008

    Il y a quand même l'épaisseur générale des objets qui peut être appliqué. C'est sur que cela n'a rien à voir avec l'épaisseur (largeur) que l'on peut avoir avec une polyligne, mais au traçage cela reste applicable. Et puis les segments restent groupés. Cela facilite la manipulation... Il reste que le code n'est parfait, on peut faire mieux.
  16. Bonjour, Tourne toi vers (wcmatch) Exemple, pour mettre la couleur 254 à tous les xrefs (vlax-for i (vla-get-Layers (vla-get-ActiveDocument (vlax-get-Acad-Object))) (if (wcmatch (vlax-get i 'name) "*|*") (vlax-put i 'color 254) ) )
  17. Et dans l'autre sujet: Bien que la démarche soit similaire voici, un code répondant à la seconde question. Pas tester en profondeur, mais le principe est là. (vl-load-com) (defun c:mirr_point ( / js obj_vla e_name js_pt n l_dxf pt pt_proj pt_new) (princ "\nChoix de la polyligne représentant l'axe mirroir.") (while (null (setq js (ssget "_+.:E:S" '((0 . "LWPOLYLINE"))))) (princ "\nCe n'est pas un objet valable!") ) (setq obj_vla (vlax-ename->vla-object (setq e_name (ssname js 0)))) (redraw e_name 3) (princ "\nChoix des points a reporter symétriquement.") (while (null (setq js_pt (ssget '((0 . "POINT"))))) (princ "\nCe ne sont pas des points!") ) (redraw e_name 4) (repeat (setq n (sslength js_pt)) (setq pt (cdr (assoc 10 (setq l_dxf (entget (ssname js_pt (setq n (1- n))))))) pt_proj (vlax-curve-getClosestPointTo obj_vla pt) pt_new (polar pt (angle pt pt_proj) (* (distance (list (car pt) (cadr pt)) (list (car pt_proj) (cadr pt_proj))) 2.0)) pt_new (list (car pt_new) (cadr pt_new) (caddr pt)) ) (foreach n l_dxf (if (member (car n) '(-1 -2 5 330)) (setq l_dxf (vl-remove n l_dxf)) ) ) (entmake (subst (cons 10 pt_new) (assoc 10 l_dxf) l_dxf)) (grdraw (trans pt 0 1) (trans pt_new 0 1) 3 1) ) (prin1) ) Libre à toi d'agrémenter la procédure...
  18. Bonjour, Personnellement j'ai déjà été confronté quelquefois à ce problème sous d'autres versions et avec d'autres commandes standard. Pour ma part, c'était avec la commande _SAVE où il ne voulait plus sauvegarder car il y avait une commande en cours...??? A part trouver une parade pour sauvegarder mon dessin et ensuite quitter la session d'Autocad pour la relancer ensuite, et là le problème disparaissait. Je n'ai jamais trouvé la raison (pas vraiment cherché). Peut être des réacteurs actifs....
  19. bonuscad

    prob lisp sous Acad 2008

    Tu peux remplacer par exemple les 2 dernières lignes précitées par cette unique ligne: (if (eq first_color 1) (setq first_color 7) (setq first_color 1))
  20. bonuscad

    prob lisp sous Acad 2008

    Un oubli de ma part... généralement je pense à mettre l'instruction (vl-load-com) en tête de fichier. (setq n (length lst_pt) count 1 [surligneur]first_color 1[/surligneur] ) ;..... (setq first_color (rem (1+ first_color) 3)) (if (zerop first_color) (setq first_color 1)) Ici je m'étais simplifié la vie pour générer l'alternance de couleur (numéro de couleur à 1 ou 2) Pour faire d'autres combinaisons revoir la fonction (rem) qui peut te permettre de faire une alternance sur plus de couleurs, mais celles ci doivent se suivre. (3 4 5 6) ou (5 6 7 8 9) etc... Ou alors revoir complétement la génération du numéro de couleur avec une autre technique...
  21. bonuscad

    Ramdisk

    Il y a une petite confusion, les ac$ sont plutôt des fichiers temporaires dont seul autocad peut en faire sa cuisine. En effet bien que la structure interne ressemble au dwg, je n'ai jamais pus (non plus) récupérer ce genre de fichier. L'enregistrement automatique est plutôt de la forme sv$ et celui là, on peut le faire pointer dans un autre dossier (temp par défaut) dans les options d'autocad.
  22. bonuscad

    prob lisp sous Acad 2008

    Bonjour, Une petite rectification, je pense que c'est plutôt lesourd2 . Pour moi, voir cette proposition
  23. bonuscad

    Comment exporter en .eps ?

    Bonjour, Pourtant les réglages sont accessibles... http://www.mabul.org/moe/up/10/10/12/wrc4c3in.png
  24. bonuscad

    Description des calques

    (vlax-for item (vla-get-layers (vla-get-activedocument (vlax-get-acad-object))) (vla-put-Description item ""))
  25. Bonjour ingoenius Regarde ci ceci peut t'inspirer... ((lambda ( / e p1 p2 v1 v2 js_all) (setq e (entsel)) (cond ((and (setq p1 (osnap (cadr e) "_mid") p2 (osnap (cadr e) "_end"))) (setq v1 (getvar "SNAPANG") v2 (getvar "ORTHOMODE")) (setvar "SNAPANG" (angle p1 p2)) (setvar "ORTHOMODE" 1) (setq js_all (ssdel (car e) (ssget "_C" (polar p1 (+ pi (angle p1 p2)) (distance p1 p2)) p2))) (command "_STRETCH" "_crossing" (polar p1 (+ pi (angle p1 p2)) (distance p1 p2)) p2 "_remove" js_all "" p1 pause) (setvar "SNAPANG" v1) (setvar "ORTHOMODE" v2) ) ) ))
×
×
  • 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é