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. Bonjour, Il y a la variable ATTDIA (comme initialisé dans ton bout de code), mais il faut aussi regarder la variable ATTREQ. Je pense que si ces 2 variables sont réglées à la même valeur sur les 2 versions, cela devrait fonctionner à l'identique.
  2. Merci à vous pour les compliments. Je l'ai écrite vraiment rapidement depuis le SCG sans beaucoup de tests. Je n'ai même pas essayé dans et depuis des SCU particulier ou depuis des points de vues, voir si le comportement était bon. C'est en cela que j'ai évoqué le terme de peaufiner. (si besoin est!...) Il y a aussi peut être la justification de texte fixé (forcée sur 2 points) qui pourrait poser problème, et accessoirement l'état de calque verrouillé et j'en oubli peut être encore.
  3. Alors voici le corps principal de la fonction, je te laisse peaufiner si besoin est. Tu en es capable, je sais que tu manie en tant soit peu le lisp. (defun c:dispach_text ( / js_mt nb_text inc_ang pt_or nb key ang ent dxf_ent pt_ins offset) (setq js_mt (ssget '((0 . "*TEXT")))) (cond (js_mt (cond ((> (setq nb_text (sslength js_mt)) 1) (setq inc_ang (/ (* 2 pi) nb_text) pt_or (cdr (assoc 10 (entget (ssname js_mt 0)))) nb nb_text ) (while (and (setq key (grread T 4 0)) (/= (car key) 3)) (setq ang (angle pt_or (cadr key))) (repeat nb (setq ent (ssname js_mt (setq nb (1- nb))) dxf_ent (entget ent) pt_ins (cdr (assoc 10 dxf_ent)) offset (distance pt_or (cadr key)) ) (entmod (subst (cons 10 (polar pt_or ang offset)) (assoc 10 dxf_ent) dxf_ent)) (setq ang (+ ang inc_ang)) ) (setq nb nb_text) ) ) ) ) ) (prin1) )
  4. Désolé, j'ai beau être imaginatif, je n'ai rien compris. Un petite illustration ?... Ça, à priori, je pense avoir compris, il suffit de rajouter (après (entmod) ) (entmod (subst (cons 50 ang) (assoc 50 dxf_ent) dxf_ent))
  5. Bonjour, Un embryon de code écrit rapidement, voir si cela convient ! ((lambda ( / js_mt nb_text inc_ang ang ent obj_vlax dxf_ent mnpt mxpt mintpt maxpt offset) (setq js_mt (ssget '((0 . "MTEXT")))) (cond (js_mt (cond ((> (setq nb_text (sslength js_mt)) 1) (setq inc_ang (/ (* 2 pi) nb_text) ang 0.0) (repeat nb_text (setq ent (ssname js_mt (setq nb_text (1- nb_text))) obj_vlax (vlax-ename->vla-object ent) dxf_ent (entget ent) pt_ins (cdr (assoc 10 dxf_ent)) ) (vla-GetBoundingBox obj_vlax 'mnpt 'mxpt) (setq minpt (trans (safearray-value mnpt) 0 1) maxpt (trans (safearray-value mxpt) 0 1) ) (setq offset (* (distance minpt maxpt) 2.0)) (entmod (subst (cons 10 (polar pt_ins ang offset)) (assoc 10 dxf_ent) dxf_ent)) (setq ang (+ ang inc_ang)) ) ) ) ) ) ))
  6. bonuscad

    Points + Z

    Bonjour, A affiner si besoin (on ne sait pas si il y a d'autres attributs présent, si le Z d'insertion doit rester à zéro) ((lambda ( / pt alti) (cond ((tblsearch "BLOCK" "point_topo") (setvar "cmdecho" 0) (setvar "ATTDIA" 0) (while (setq pt (getpoint "\nPoint d'insertion: ")) (initget 1) (setq alti (getreal "\nAltitude du point: ")) (command "_.-insert" "point_topo" pt "" "" "" alti) ) (setvar "ATTDIA" 1) (setvar "cmdecho" 1) ) (T (princ "\nLe bloc point_topo n'existe pas!") ) ) (prin1) ))
  7. Rien à voir avec son ancienneté ?!?! Il a été écrit sous une version Anglaise, si on l'adapte comme il faut, il fonctionne... Cependant il n'est pas bien écrit, ou tout du moins très succinct. Les entrées utilisateurs ne sont pas contrôlées, pas de gestion d'erreur ET SURTOUT la variable OSMODE n'est pas surveillée (le dessin risque d'être surprenant si les accroches objet sont actif) Donc en gardant le code brut (sans mes observations), voici la correction: ;REID REAGAN 1-25-95 ;PROGRAM FOR DOOR WITH TRIM AND KNOB (DEFUN C:porte( / HOR VER TR KNOB CL SP P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12 P13) (SETVAR "CMDECHO" 0) (SETQ HOR (GETDIST "\nHORIZONTAL DISTANCE:")) (SETQ VER (GETDIST "\nVERTICAL DISTANCE:")) (SETQ TR (GETDIST "\nTRIM WIDTH:")) (SETQ KNOB (GETDIST "\nENTER DOOR KNOB RADIUS:")) (SETQ CL (GETVAR "CLAYER")) (SETQ SP (GETPOINT "\nPICK LOWER LEFT CORNER OF OPENING:")) (SETQ P2 (POLAR SP (DTR 0) HOR)) (SETQ P3 (POLAR SP (DTR 180) TR)) (SETQ P4 (POLAR P2 (DTR 0) TR)) (SETQ P5 (POLAR P4 (DTR 90) (+ TR VER))) (SETQ P6 (POLAR P5 (DTR 270) TR)) (SETQ P7 (POLAR P6 (DTR 180) TR)) (SETQ P8 (POLAR P7 (DTR 180) HOR)) (SETQ P9 (POLAR P8 (DTR 180) TR)) (SETQ P10 (POLAR P9 (DTR 90) TR)) (SETQ P11 (POLAR P10 (DTR 270) (+ TR VER))) (COMMAND "_.-LAYER" "_MAKE" "DOOR" "_COLOR" "_YELLOW" "" "") (COMMAND "_.LINE" SP P8 P7 P2 P3 P10 P8 P10 P5 P7 P5 P4 P2 "_CLOSE") (SETQ P12 (POLAR SP (DTR 90) 36)) (SETQ P13 (POLAR P12 (DTR 0) 3)) (COMMAND "_.-LAYER" "_MAKE" "KNOB" "_COLOR" "_GREEN" "" "") (COMMAND "_.CIRCLE" P13 KNOB) (SETVAR "CLAYER" CL) ) (DEFUN DTR (a / ) (* Pi (/ a 180.0))) (PRINC)
  8. Bonjour à tous, Juste une infographie qui recense tous les points d'activité sismique de l'année 2011. Le plus impressionnant ce situe vers 1.52 qui montre l'intensité du tremblement de terre au Japon. Avec une telle intensité on est pas surpris de voir les désastres que cela a occasionné. Sur l'ensemble de la vidéo on peu constater que la principale activité se situe sur la partie Ouest du Pacifique (pas si pacifique que ça !...)
  9. Bonjour, Il faut bien penser à définir ton style de texte avec le nom WINGDINGS utilisant la même fonte, AVANT d'essayer de charger ce type de ligne.
  10. bonuscad

    hachures personalisées

    Je t'ai modifié rapidement le code pour essayer de répondre à ton besoin. Cela m'a permis de remarquer une chose lors de test avec MAP (car cela ne fonctionnait pas correctement), il faut IMPÉRATIVEMENT utiliser le mode degré dans le sans trigo et origine au Nord (pas de grade sens horaire et origine à l'Est; DDUNITS) avant d'utiliser la routine. Malgré la correction pouvant être apporté sur des modèle provenant d'un système en pouce, l’aperçu n'est toujours pas visible, je ne saurais pas expliquer pourquoi. En espérant que cela te simplifiera la tâche (defun ex_xform (xpt matrix v / ex ey ez m1 m2 m3 m4 wx wy wz) (setq ex (car xpt) ey (cadr xpt) ez (caddr xpt) m1 (nth 0 matrix) m2 (nth 1 matrix) m3 (nth 2 matrix) wx (+ (* (car m1) ex) (* (car m2) ey) (* (car m3) ez) ) wy (+ (* (cadr m1) ex) (* (cadr m2) ey) (* (cadr m3) ez) ) wz (+ (* (caddr m1) ex) (* (caddr m2) ey) (* (caddr m3) ez) ) ) (if (not v) (setq m4 (nth 3 matrix) wx (+ wx (car m4)) wy (+ wy (cadr m4)) wz (+ wz (caddr m4)) ) ) (list wx wy wz) ) (defun transpts (apt matrix / ) (mapcar '(lambda (arg / ) (+ (apply '+ (mapcar '* (mapcar (eval (quote arg)) matrix) apt)) (cadddr ((eval arg) matrix)) ) ) '(car cadr caddr) ) ) (defun v_matr (dpt alphax alphay alphaz echx echy echz / ) (list (list (* echx (cos alphaz) (cos alphay)) (- (sin alphaz)) (sin alphay) (car dpt) ) (list (sin alphaz) (* echy (cos alphaz) (cos alphax)) (- (sin alphax)) (cadr dpt) ) (list (- (sin alphay)) (sin alphax) (* echz (cos alphax) (cos alphay)) (caddr dpt) ) (list 0.0 0.0 0.0 1.0) ) ) (defun c:model_hatch ( / zindim dec_prec conv_u ent ent_dxf file_name f_open nam_pat user_angle user_scale nbr_line dxf_line ang_motif n first_op transform pt_trans dlt_x dlt_y) (setvar "cmdecho" 0) (while (not (setq ent (entsel "\nChoix de la Hachure modèle: ")))) (initget 4) (setq dec_prec (getint "\nNombres de décimales a afficher ?<3>: ") ent_dxf (entget (car ent)) zindim (getvar "dimzin")) (if (not dec_prec) (setq dec_prec 3)) (initget "Pouce Metre _Inch Meter") (if (eq (getkword "\nAppliquer la conversion depuis système en [Pouce/Metre]<M>: ") "Inch") (setq conv_u 25.4) (setq conv_u 1.0) ) (setvar "dimzin" 12) (cond ((eq (cdr (assoc 0 ent_dxf)) "HATCH") (setq nam_pat (strcat "*" (cdr (assoc 2 ent_dxf))) user_angle (cdr (assoc 52 ent_dxf)) user_scale (cdr (assoc 41 ent_dxf)) nbr_line (cdr (assoc 78 ent_dxf)) dxf_line '() first_op T ) (setq file_name (getfiled "Nom du fichier a créer ?: " (strcat (getvar "DWGPREFIX") (cdr (assoc 2 ent_dxf))) "pat" 32)) (if (null file_name) (exit)) (while (/= (caar ent_dxf) 53) (setq ent_dxf (cdr ent_dxf)) ) (setq f_open (open file_name "w")) (textscr) (princ (strcat "\n" nam_pat)) (princ nam_pat f_open) (repeat nbr_line (repeat 5 (setq dxf_line (cons (cdar ent_dxf) dxf_line) ent_dxf (cdr ent_dxf)) (if (eq (caar ent_dxf) 79) (progn (setq n (cdar ent_dxf) ent_dxf (cdr ent_dxf) dxf_line (cons nil dxf_line)) (repeat n (setq dxf_line (cons (* (/ 1.0 user_scale) (cdar ent_dxf)) dxf_line) ent_dxf (cdr ent_dxf)) ) ) ) ) (setq dxf_line (reverse dxf_line) ang_motif (car dxf_line) dxf_line (cdr dxf_line)) (princ (strcat "\n" (angtos (- ang_motif user_angle) 0 dec_prec))) (princ (strcat "\n" (angtos (- ang_motif user_angle) 0 dec_prec)) f_open) (repeat (- (length dxf_line) (1+ n)) (cond ((not (car dxf_line)) (setq dxf_line (cdr dxf_line)) (while dxf_line (princ (strcat "," (rtos (* conv_u (car dxf_line)) 2 dec_prec))) (princ (strcat "," (rtos (* conv_u (car dxf_line)) 2 dec_prec)) f_open) (setq dxf_line (cdr dxf_line)) ) ) (T (if first_op (setq transform (v_matr '(0.0 0.0 0.0) 0.0 0.0 user_angle 1.0 1.0 1.0) first_op nil) (setq transform (v_matr '(0.0 0.0 0.0) 0.0 0.0 ang_motif 1.0 1.0 1.0)) ) (setq pt_trans (transpts (list (* (/ 1.0 user_scale) (car dxf_line)) (* (/ 1.0 user_scale) (cadr dxf_line)) 0.0) transform) dlt_x (car pt_trans) dlt_y (cadr pt_trans) dxf_line (cons dlt_x (cons dlt_y (cddr dxf_line))) ) (princ (strcat "," (rtos (* conv_u (car dxf_line)) 2 dec_prec) "," (rtos (* conv_u (cadr dxf_line)) 2 dec_prec))) (princ (strcat "," (rtos (* conv_u (car dxf_line)) 2 dec_prec) "," (rtos (* conv_u (cadr dxf_line)) 2 dec_prec)) f_open) (setq dxf_line (cddr dxf_line)) ) ) ) (setq dxf_line '() first_op T) ) (princ "\n" f_open) (close f_open) ) (T (prompt "\nEntité n'est pas une hachure.")) ) (setvar "dimzin" zindim) (setvar "cmdecho" 1) (prin1) )
  11. bonuscad

    hachures personalisées

    Bon, je viens d'essayer de faire les 10 premiers motifs. C'est bien ce que je pensais, les motifs ont été conçus avec le pouce comme unité. On peut les utiliser avec un acadiso.dwt, mais il faut utiliser une échelle de 25 pour qu'elles ne soient pas trop serrées. (C'est d'ailleurs ce qui explique que tu ne vois rien dans ton aperçu, car cela est tellement serré que cela fait comme un motif "Solid"/plein) J'ai une explication pour Cela vient que tu prends trop de décimales pour la précision, et comme la définition est complexe pour certain motif (nombreux segments) La ligne de définition est trop longue. Je ne sais pas exactement à quelle longueur de caractères on est limité, mais si tu baisse la précision la ligne sera plus courte et le motif n'aura plus d'erreur. Pour moi les 10 premier motifs fonctionnent, au boulot... ! Si tu t'en sens l'âme, le lisp pourrait être modifié afin d'apporté la conversion au système métrique (appliquer un facteur multiplicatif de 25.4)
  12. J'utilise les deux. Je trouve que j'ai plus de "fidélité" avec PDFCreator (surtout avec l'épaisseur des traits, notamment avec les textes). Cependant DWGtoPDF à un gros avantage: il génère des PDF Multi-couches. On retrouve donc notre hiérarchie de calque (sauf ceux gelés lors de l'impression) dans le PDF, l’utilisateur peut donc à loisir désactiver ou activer les calques pour générer ces sortie comme il l'entend. (Ceux qui n'ont pas Autocad trouve cela super!) Pour les formats papier, il y a les fichiers PMP associé au périphérique qui sont bien pratique pour personnalisé ses formats, on peut filtrer que les format qu'on utilise.
  13. bonuscad

    hachures personalisées

    Faire très attention qu'il n'y ait pas une retour de ligne supplémentaire en fin du fichier de définition. Se contenter simplement d'un retour à la fin de la dernière ligne de la définition. Un problème d'échelle, soit l'échelle courante lors de la création de la hachure ou l'échelle adoptée lors de la définition originale; un mélange de définition entre des modèles en impériales (pouces) et en ISO. (là je reconnais que ça devient un peu casse tête) Je n'ais pas de temps en ce moment pour t'aider plus.
  14. bonuscad

    hachures personalisées

    As tu redémarré ta session entre temps? De souvenir il me semble qu'il est indispensable de redémarrer Autocad pour que les nouveaux fichiers créés soient pris en considération, autrement tu fonctionne toujours avec les anciennes définitions chargés au démarrage; dans ton cas aucune définition!
  15. bonuscad

    hachures personalisées

    Salut, Lecrabe à raison, il faut que le fichier de définition du modèle PAT soit présent sur ton DD et dans un dossier déclaré. Si tu as la patience, tu peux t'aider de model_hatch.lsp pour recréer ces fichiers un par un. Tu as aussi la version remaniée par (gile) de Model-hatch.lsp NB: Si tu fais des fihiers dissociés (ce que je conseille, au lieu de cumuler dans ACADISO.PAT ou AutoCAD.PAT), il faut que les nom des fichiers soit identique au nom du modèle déclaré dans le fichier lui-même.
  16. Si ton bloc utilise des champs dynamique où la précision a été forcée, pas de solution magique. Par contre s'il utilise la précision courante, il suffit de modifier ta précision avec la commande "_UNITS" et un REGEN mettra à jour tes champs.
  17. bonuscad

    type de ligne

    bonjour, Placer les fichiers au bon endroit sur ton disque dur. haie.lin haie.shx et le source du SHX pour modification si voulue: haie.shp
  18. Ce n'est pas simplement la variable DRAGMODE qu'il faudrait remettre à 2 ? (valeur par defaut)
  19. bonuscad

    nommer des polylignes

    La réponse de Fraid n'est accessible que par programmation... Donc tu es tout à fait excusé de n'être pas doué... En utilisation standard, as tu essayé d'utiliser des groupes ? Cela peut faciliter les sélections ultérieures... <Ctrl+H> de permet de basculer rapidement le mode groupe actif ou inactif, pour retourner à une sélection simple, par exemple pour sélectionner une seule polyligne qui ferait partie d'un groupe.
  20. bonuscad

    Autocad et le RGF93

    Moi je confirme ce souci (d'ailleurs déjà évoqué sur le forum). On le rencontre souvent avec des objets arrondi, par ex: un cercle construit avec TTR, il arrive souvent que l'on ne puisse plus l'ajuster. La commande Raccord pose aussi parfois des problèmes. La solution de Didier est viable. Si l'on à pas envie de passer par un fichier intermédiaire avec des copier-coller, on peut enchainer ces lisp pour automatiser un peu. (écrit rapidement) (defun c:before_command ( / ) (princ "\nSélectionner les objets concernés par la commande récalcitrante: ") (setq js (ssget)) (cond (js (setq pt_or (getvar "VIEWCTR")) (command "_.move" js "" "_none" pt_or "_none" '(0 0 0)) (command "_.pan" "_none" '(0 0 0) "_none" pt_or) ) ) (princ "\nExecuter votre commande problèmatique, puis la commande 'after_command' pour retourner à l'état initial") (prin1) ) (defun c:after_command ( / nw_js) (cond ((and js pt_or) (princ "\nSélectionner de nouveau vos objets modifiés : ") (setq nw_js (ssget)) (cond (nw_js (command "_.move" nw_js "" "_none" '(0 0 0) "_none" pt_or) (command "_.pan" "_none" pt_or "_none" '(0 0 0)) (setq js nil pt_or nil) ) ) ) (T (princ "\nLa commande 'before_command' doit être utilisé d'abord.")) ) (prin1) )
  21. (gile) à écrit une fonction, elle ne peut s'appeler en ligne de commande qu'avec des parenthèses, en plus celle-ci exige un argument pat qui a priori est une chaine de caractères. Exemple présumé d'appel en ligne de commande (sans avoir testé): (gc:PurgeBlock "Nombloc") ou (gc:PurgeBlock "*") ou encore par exemple (gc:PurgeBlock "Nom????") pour des nom de bloc commencant par nom et complété par 4 caractères quelconque.
  22. Bonjour, ??? La dernière postée en 11 est complète. Tu ne pourrais pas joindre un exemple pour bien comprendre ton souci/souhait?
  23. bonuscad

    Poignées des cercles

    Peut être une astuce pour contourner ce comportement. Convertir tes cercle en polyligne en demi-arc clos. (il doit y avoir de souvenir ce qu'il faut sur CadXp, faire une recherche) Tu n'aura plus les grips de quadrants mais ceux d'extrémité d'arc et leur milieu, qui eux suivent le SCU de conception...
  24. bonuscad

    L\'omerta sur Fukishima

    Une grande inquiétude sur l'unité n°4 Des fissures importantes sont apparues Vous me direz, où est le problème, ce n'est pas le réacteur qui se fissure... Certe, mais sachez que derrière le haut de ce pan de mur se cache la fameuse piscine à combustible usagé. Pour mieux comprendre le problème il y a cette avec une interview du Dr Koide. On sent que les journalistes Japonais ont le sang glacé à cette annonce. Je ne comprends toujours pas pourquoi cette catastrophe soit seulement de la responsabilité du Japon, il faudrait que les moyens et les possibles solutions à mettre en œuvre soit mondial. On peut faire appel à différents pays pour faire la guerre à la Libye ou à l'Iran, mais face à une catastrophe industrielle majeure RIEN de bien concret: de l'appareillage de décontamination de l'eau qui pour l'instant à juste traité du "pipi de chat", pas efficace, souvent en panne... bref l'option Pacifique à été plus simple. On attends quoi! l'inéluctable?...
  25. Bonjour, Suite à une demande sur le forum Autodesk, je me suis amusé à essayé d'écrire une fonction pour réaliser cela. Si celle-ci fonctionne bien (quelque soit le SCU) sur des textes simples, j'aurais trouvé intéressant de l'étendre aux textes multi-lignes. Mais je ne vois pas comment appréhender ceux-ci..., un challenge ? Voici déjà le code pour les textes simples (vl-load-com) (defun transpts (apt matrix / ) (list (+ (* (car (nth 0 matrix)) (car apt)) (* (car (nth 1 matrix)) (cadr apt)) (* (car (nth 2 matrix)) (caddr apt)) (cadddr (nth 0 matrix)) ) (+ (* (cadr (nth 0 matrix)) (car apt)) (* (cadr (nth 1 matrix)) (cadr apt)) (* (cadr (nth 2 matrix)) (caddr apt)) (cadddr (nth 1 matrix)) ) (+ (* (caddr (nth 0 matrix)) (car apt)) (* (caddr (nth 1 matrix)) (cadr apt)) (* (caddr (nth 2 matrix)) (caddr apt)) (cadddr (nth 2 matrix)) ) ) ) (defun c:stabilo ( / js dxf_ent dxf_210 dxf_10 dxf_50 txt_box mat entline PathObj EndDist StartPoint EndPoint tmp tmp0 e_last dxf_last) (setq js (ssget "_+.:E:S" '((0 . "TEXT")))) (cond (js (setq dxf_ent (entget (ssname js 0)) dxf_210 (cdr (assoc 210 dxf_ent)) dxf_10 (trans (cdr (assoc 10 dxf_ent)) dxf_210 0) dxf_50 (cdr (assoc 50 dxf_ent)) txt_box (textbox dxf_ent) mat (mapcar '(lambda (n x d / ) (append n (list x) (list d)) ) (mapcar '(lambda (v) (trans v dxf_210 0)) '((1 0 0) (0 1 0) (0 0 1))) dxf_10 '(0 0 0 1) ) ) (entmake (list '(0 . "LINE") '(100 . "AcDbEntity") (assoc 67 dxf_ent) (assoc 410 dxf_ent) (assoc 8 dxf_ent) '(100 . "AcDbLine") (cons 10 (transpts (car txt_box) mat)) (cons 11 (transpts (polar (car txt_box) dxf_50 (- (caadr txt_box) (caar txt_box))) mat)) '(39 . 0) '(60 . 1) (assoc 210 dxf_ent) ) ) (setq entline (entlast) PathObj (vlax-ename->vla-object entline) EndDist (vlax-curve-getDistAtParam PathObj (vlax-curve-getEndParam PathObj)) StartPoint nil EndPoint nil ) (princ "\nDonnez le debut du surlignage du texte") (while (= 5 (car (setq tmp (grread t 5 1)))) (cond ((= 5 (car tmp)) (if StartPoint (grdraw (trans StartPoint 0 1) (trans tmp0 0 1) -1)) (setq StartPoint (vlax-curve-getClosestPointTo PathObj (trans (cadr tmp) 1 0)) tmp0 (polar (trans StartPoint 0 dxf_210) (+ (* 0.5 pi) dxf_50) (- (cadadr txt_box) (cadar txt_box))) ) (grdraw (trans StartPoint 0 1) (trans tmp0 dxf_210 1) -1) ) (T (princ "\nArrêt anormal de la commande ")) ) ) (entmake (list '(0 . "SOLID") '(100 . "AcDbEntity") (assoc 67 dxf_ent) (assoc 410 dxf_ent) (assoc 8 dxf_ent) '(62 . 2) '(100 . "AcDbTrace") (cons 10 (trans StartPoint 0 dxf_210)) (cons 11 (trans StartPoint 0 dxf_210)) (cons 12 tmp0) (cons 13 tmp0) '(39 . 0) (assoc 210 dxf_ent) ) ) (setq e_last (entlast) dxf_last (entget e_last) ) (princ "\nDonnez la fin du sulignage du texte") (while (= 5 (car (setq tmp (grread t 5 1)))) (cond ((= 5 (car tmp)) (setq EndPoint (vlax-curve-getClosestPointTo PathObj (trans (cadr tmp) 1 0)) tmp0 (polar (trans EndPoint 0 dxf_210) (+ (* 0.5 pi) dxf_50) (- (cadadr txt_box) (cadar txt_box))) ) (setq dxf_last (subst (cons 11 (trans EndPoint 0 dxf_210)) (assoc 11 dxf_last) dxf_last) dxf_last (subst (cons 13 tmp0) (assoc 13 dxf_last) dxf_last) ) (entmod dxf_last) ) (T (princ "\nArrêt anormal de la commande ")) ) ) (entdel entline) (sssetfirst nil js) (ai_draworder "_front") ) ) (prin1) )
×
×
  • 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é