sechanbask Posté(e) le 31 mai 2007 Auteur Posté(e) le 31 mai 2007 Merci à tous pour vos efforts. Mais comme je suis très chiant:-le code de Bread : (defun c:rectxt etc... ne marche pas sur des Mtextes penchés (rotation différentes de 0) et pas sur des textes -le code de zebulon_: (defun c:mytcircle etc... ne donne l'erreur suivante : "Creating Rectangles...; erreur: type d'argument incorrect: lselsetp nil" (gile) je suis assez tordu comme garçon... En espérant ne pas vous froisser après tous vos efforts. Merci d'avance. P.S. Maximilien tu as changer des fonction sur fisacad 7.0 pour le rendre utilisable ??? ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
BIM G CO Posté(e) le 1 juin 2007 Posté(e) le 1 juin 2007 1) Le Premier gros problème de Fisacad c'est que premièerement il utilise des virux blocs qui ne tiennent pas compte de l'unité! Avoir une section de Ø125 mm de 125 mètres quelque soit le plan c'est très génant. Il y a 325 fichiers DWG à mettre les bonnes valeurs de -INSUNITS,-INSNITSDEFSOURCE,-INSUNITSDEFTARGET,-MEASUREMENT,MEASUREINITsuivant la famille de blocs cela change! voir l'aide d'AutoCAD pour comprendre le principe des ces valeurs. 2) Le second c'est son INIT.LSP et param.ini qui modifie les couleurs des calques modifie le styles de cote mettre das point-virgules devant les fonction à inhiber. Le premier fichier est dans le dossier fisacad7 et le second se promène dans les %userprofile% 3) Leur lisp etant purement graphique, selon le zoom, on a pas le même résultat! (c'est réellement du délire lorsqu'on a 200 de réseau linéaire il faut penser à zoomer pour finir l'antenne de réseau sinon catastrophe) 4) La non gestion d'erreur quand la commande s'arrete d'elle provoque une fermeture sans sauvegarde si on a le malheur de faire "_undo". principalement pour les coudes circulaires(commande "COUDEC") 5) A chaque mise à jour (trimestriellement environ) les blocs qu'on a patiemment sont écrasés sans prévenir l'utilisateur (je m'en suis douté..... j'avais sauvegardémais je préviens) tout comme le INIT.LSP et Param.ini 6) Cela fait depuis 2003 que beaucoup de ces problème récurrent existent. Malgré de nombreuses lettre, accusé de réceptio de mise en demeure, pas de correctif. d'ailleurs c'est pour cela que suis donateur ici! pour en finr. 7) On est obligé d'attendre leur certification du fonctionnement de FISA CAD sur la version suivante d'autocad pour la déployer (environ 4 à 5 mois). Conclusion plus çà va moins on utilise FISA CAD! On réalise nous même nos blocs coudes, gaines, casses, té équerre, croix, clapet coupe-feu,... suivant les documentations Aldes, France Air, Schako etc... On les rend dynamique pour les rendre applicaquable à chaque diamètre. Le programme lisp gérant tous ces blocs du même style que leur commande "GAINECIR" (à la volée) est d'ailleurs en cours de création. [Edité le 1/6/2007 par Maximilien] Dessinateur AutoCAD, Modeleur BIM, consultant informatique logiciels métier Lenovo ThinkStation P330 i9 9900K 32Gb RAM 512 SSD + 1To GstarCAD, Fisa-CAD, Revit, FisaBIM CVC, Microsoft Office PlaquetteDeplianteMars2024.pdf
sechanbask Posté(e) le 1 juin 2007 Auteur Posté(e) le 1 juin 2007 Ce n'est pas le lieu (vu que ça ne fait pas avancer le sujet que j'ai lancé) mais je te file ce que j'ai fait pour le fichier INIT.LSP, comme ça plus de zoom tout, plus de limite de dessin, plus de calque chiant. (command "cmdecho" 1) (command "_AutoSnap" 47) (command "_pickbox" 4) (setvar "PSLTSCALE" 0) (Command "_.FileDia" 1 ) (setvar "BLIPMODE" 0) ;(command "_.limits" "0,0" "5000,5000" ) ;(command "_.Zoom" "_All" ) (setq diadn 100) (setq cdiadn "100") (setq pos_tn "0") (Setq pos_cu "0") (Setq pos_font "0") (Setq pos_pvc "0") (Setq pos_peh "0") (Setq pos_gaine "0") (setq No_Fig 1) (setq nTaille_Rep 1) (setq nNum_Rep (fix 1)) ;(setq Echelle 1) ;================== ; sauve environement-----------------------------------------init (setq OSMODE_OLD_0 (getvar "OSMODE")) (setq CMDECHO_OLD_0 (getvar "CMDECHO")) (setq PICKBOX_OLD_0 (getvar "PICKBOX")) (setq ORTHOMODE_OLD_0 (getvar "orthomode")) (If (= "15" (substr (GetVar "AcadVer") 1 2)) (progn (setq ShortCutMenu_Old_0 (GetVar "SHORTCUTMENU")) (SetVar "SHORTCUTMENU" 10) ) ) ;------------------------------------------ (Defun Unit_mm() (setq Coef_Unit 1) ;(command "_.limits" "0,0" "5000,5000" ) ;(command "_.Zoom" "_All" ) (command "_regen") (PrinC "\n") (PrinC (strcat "\n" cVersion " - Initialisation en [millimètre] OK")) (PrinC) ) ;---------------------------------- (Defun Unit_Cm() (setq Coef_Unit 0.1) ;(command "_.limits" "0,0" "500,500" ) ;(command "_.Zoom" "_All" ) (command "_regen") (PrinC "\n") (PrinC (strcat "\n" cVersion " - Initialisation en [centimètre] OK")) (PrinC) ) ;---------------------------------- (Defun Unit_m() (setq Coef_Unit 0.001) ;(command "_.limits" "0,0" "5,5" ) ;(command "_.Zoom" "_All" ) (command "_regen") (PrinC "\n") (PrinC (strcat "\n" cVersion " - Initialisation en [mètre] OK"))(PrinC) ) ;====================================================== (if (not C:gainec) (load "fisacad")) ;(INITCOTE) ;(INITCALQUE) ;(Command "_.style" "FisaText" "" ht_txt "" "" "" "" "") ;=================================================================== (menucmd "p10=+FISA_CAD.BIBLIO") ;(command "_.TextScr") (PrinC "\n") (PrinC "\n") (command "_.GraphScr") (if (= unites "MM") (Unit_mm) ) (if (= unites "CM") (Unit_cm) ) (if (= unites "M") (Unit_m) ) (If (or (= "16" (substr (GetVar "AcadVer") 1 2)) (= "17" (substr (GetVar "AcadVer") 1 2))) (PrinC) (progn (Alert "Désolé Fisa-CAD7 ne fonctionne pas avec une version inférieure à AutoCAD 2006") (command "_.QUIT" "O") ) ) (princ) ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
Bred Posté(e) le 4 juin 2007 Posté(e) le 4 juin 2007 -le code de Bread :casstet: : (defun c:rectxt etc... ne marche pas sur des Mtextes penchés (rotation différentes de 0) et pas sur des textes Alors, après ce morceau de Pain, fonctionne pour texte+mtexte, fonctionne pour la rotation des Mtext ... (defun c:rectxt (/ ACDOC E FACT HAUT I LARG LAY LST-P PLINE PMAXI PMINI PT SEL ROT) (if (= (getvar "CVPORT") 1) (setq AcDoc (vla-get-PaperSpace (vla-get-ActiveDocument (vlax-get-acad-object)))) (setq AcDoc (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object)))) ) (setq sel (ssget '((0 . "*TEXT")))) (repeat (setq i (sslength sel)) (setq e (ssname sel (setq i (1- i))) pt (cdr (assoc 10 (entget e))) lay (cdr (assoc 8 (entget e))) fact (* (cdr (assoc 40 (entget e))) 0.20) rot (cdr (assoc 50 (entget e)))) (if (equal (cdr (assoc 0 (entget e))) "MTEXT") (progn (setq larg (cdr (assoc 42 (entget e))) haut (cdr (assoc 43 (entget e))))) (progn (vla-GetBoundingBox (vlax-ename->vla-object e) 'pmini 'pmaxi) (setq pt (list (car (vlax-safearray->list pmini)) (cadr (vlax-safearray->list pmaxi))(caddr (vlax-safearray->list pmini))) larg (- (car (vlax-safearray->list pmaxi)) (car (vlax-safearray->list pmini))) haut (- (cadr (vlax-safearray->list pmaxi)) (cadr (vlax-safearray->list pmini))))) ) (setq lst-p (list (- (car pt) fact)(+ (cadr pt) fact)(caddr pt) (+ (+ (car pt) larg) fact) (+ (cadr pt) fact) (caddr pt) (+ (+ (car pt) larg) fact) (- (- (cadr pt) haut) fact) (caddr pt) (- (car pt) fact) (- (- (cadr pt) haut) fact) (caddr pt)) pline (vlax-invoke AcDoc 'add3DPoly lst-p)) (vla-put-closed pline :vlax-true) (vla-put-layer pline lay) (vla-rotate pline (vlax-3D-point pt) rot) ) ) [Edité le 4/6/2007 par Bred] Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
Bred Posté(e) le 4 juin 2007 Posté(e) le 4 juin 2007 Re,j'ai édité le code ci-dessus, il fonctionne pour la rotation.... des Mtext (pour les texte "simple", il fonctionne si il sont horizontal....)je continus à chercher .... Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
(gile) Posté(e) le 5 juin 2007 Posté(e) le 5 juin 2007 Salut Bred, Pourquoi ne pas faire le rectangle comme précédemment (et avec textbox pour les textes simples) puis lui faire faire une rotation ? Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Bred Posté(e) le 5 juin 2007 Posté(e) le 5 juin 2007 Pourquoi ne pas faire le rectangle comme précédemment (et avec textbox pour les textes simples) puis lui faire faire une rotation ?... parceque je ne savais pas comment négocier le changement de point d'insertion simplement... et la trigo est venu à moi ... Donc, pour encadrer ou encercler des textes ou des Mtextes sur le même calque que le texte sans passer par les express : ; [b]rectxt[/b] : encadre texte (defun c:rectxt () (round-txt "R")) ; [b]circtxt[/b] : encercle texte (defun c:circtxt () (round-txt "C")) (defun round-txt (m / ACDOC E FACT HAUT I LARG LAY LST-P P1 P2 PLINE PT PTC ROT SEL) (if (= (getvar "CVPORT") 1) (setq AcDoc (vla-get-PaperSpace (vla-get-ActiveDocument (vlax-get-acad-object)))) (setq AcDoc (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object)))) ) (setq sel (ssget '((0 . "*TEXT")))) (repeat (setq i (sslength sel)) (setq e (entget (ssname sel (setq i (1- i)))) pt (cdr (assoc 10 e)) lay (cdr (assoc 8 e)) fact (* (cdr (assoc 40 e)) [surligneur][b]0.20[/b][/surligneur]) rot (cdr (assoc 50 e))) (if (equal (cdr (assoc 0 e)) "MTEXT") (progn (setq larg (cdr (assoc 42 e)) haut (cdr (assoc 43 e)))) (progn (setq p1 (car (textbox e)) p2 (cadr (textbox e)) larg (- (car p2) (car p1)) haut (- (cadr p2) (cadr p1)) pt (list (- (car pt) (* (sin rot) haut)) (+ (cadr pt) (* (cos rot) haut)) (caddr pt)))) ) (if (equal m "R") (progn (setq lst-p (list (- (car pt) fact)(+ (cadr pt) fact)(caddr pt) (+ (+ (car pt) larg) fact) (+ (cadr pt) fact) (caddr pt) (+ (+ (car pt) larg) fact) (- (- (cadr pt) haut) fact) (caddr pt) (- (car pt) fact) (- (- (cadr pt) haut) fact) (caddr pt)) pline (vlax-invoke AcDoc 'add3DPoly lst-p)) (vla-put-closed pline :vlax-true)) (progn (setq ptc (list (+ (car pt)(/ larg 2)) (- (cadr pt)(/ haut 2)) (caddr pt)) pline (vlax-invoke AcDoc 'addcircle ptc (/ (+ larg fact) 2)))) ) (vla-rotate pline (vlax-3D-point pt) rot) (vla-put-layer pline lay) ) )[Edité le 5/6/2007 par Bred] [Edité le 25/6/2007 par Bred] Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
zebulon_ Posté(e) le 6 juin 2007 Posté(e) le 6 juin 2007 Bonjour, -le code de zebulon_: (defun c:mytcircle etc... ne donne l'erreur suivante : "Creating Rectangles...; erreur: type d'argument incorrect: lselsetp nil" c'est parce que PS 1 : il faut enlever l'espace entre "< et OR, sinon ça ne marche pas. Donc, dans la ligne où tu trouves ssget, tu enlèves l'espace superflu. On est obligé de mettre cet espace pour éditer le code sur cadxp, sinon l'éditeur de cadxp supprime les caractères au delà du <. AmicalementZebulon_ C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
sechanbask Posté(e) le 14 juin 2007 Auteur Posté(e) le 14 juin 2007 zebulon_:Ton code (excuse-moi j'avais pas compris pour l'espace en trop, je suis lourding des fois) fonctionne à merveille sauf qu'il encadre le texte dans le calque courant et non pas dans le calque du texte... et Bred... sujet résolu sauf pour les textes avec rotation... Il encadre à coté (ex: rotation =125) ou le cadre ne suit pas le décalage (ex: rotation = 345 ) [Edité le 14/6/2007 par sechanbask] ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
zebulon_ Posté(e) le 15 juin 2007 Posté(e) le 15 juin 2007 sauf qu'il encadre le texte dans le calque courant et non pas dans le calque du texte... Le premier oui, mais pas le deuxième que j'ai posté. Je te le remets ci-dessous. (defun c:mytcircle (/ ss e I a lay lrect rect lastent) (setq ss (ssget '((-4 . "< OR") (0 . "TEXT") (0 . "ATTDEF") (0 . "MTEXT") (-4 . "OR>"))) ) ;; charger la fonction si elle ne l'est pas (if (not bns_tcircle) (load "acettxt.lsp")) (setq lastent (entlast)) (bns_tcircle SS "Variable" "Rectangles" nil 0.5) (setq lrect nil) (while (setq lastent (entnext lastent)) (setq lrect (cons lastent lrect)) ) (setq lrect (reverse lrect)) (setq I 0) (repeat (sslength ss) (setq e (ssname ss I)) (setq rect (nth I lrect)) (setq I (+ I 1)) (setq a (entget e)) (setq lay (cdr (assoc 8 a))) (command "_change" rect "" "_p" "_la" LAY "") ) (princ) ) Il faut toujours enlever l'espace, ça ne change pas. ;) AmicalementZebulon_ C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
sechanbask Posté(e) le 23 juin 2007 Auteur Posté(e) le 23 juin 2007 Je n'ai pas pris le temps de vous remercier jusqu'à présent, mais pour votre aide, un grand merci s'impose. C'est dingue comment ce site (et surtout les gens qui se cache derrière les pseudo) a changé mes méthodes de travail ...Avant je dessinais, maintenant je cherche comment dessiner le moins possible... mdr ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
Patrick_35 Posté(e) le 23 juin 2007 Posté(e) le 23 juin 2007 maintenant je cherche comment dessiner le moins possible C'est comme cela que l'on commence réellement à bien utiliser Autocad ;) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Bred Posté(e) le 23 juin 2007 Posté(e) le 23 juin 2007 Salut,je délaisse beaucoup ce forum actuellement (contre ma avolonté...) et je n'avais pas vus ton messageet Bred... sujet résolu sauf pour les textes avec rotation... Il encadre à coté (ex: rotation =125) ou le cadre ne suit pas le décalage (ex: rotation = 345 )J'ai fait les test avec les rotations que tu indiques, et chez moi ça fonctionne, pour text ou mtext... si d'autre pouvais me confirmer cette erreur, merci. Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
zebulon_ Posté(e) le 25 juin 2007 Posté(e) le 25 juin 2007 Avant je dessinais, maintenant je cherche comment dessiner le moins possible... mdr On est tous des paresseux et on essaye d'être des paresseux intelligents. AmicalementZebulon_ C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
sechanbask Posté(e) le 25 juin 2007 Auteur Posté(e) le 25 juin 2007 Bred, je ne sais pas ce que j'avais fait, j'avais pas dû mettre à jour ta lisp car elle marche très bien, en plus pas besoin des express... donc elle me va bien... Comme je suis nul, tu peux m'indiquer où on change le décalage (offset?) MERCI beaucoup ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
Bred Posté(e) le 25 juin 2007 Posté(e) le 25 juin 2007 tu peux m'indiquer où on change le décalage Salut,j'ai mis un décalage "fixe" que j'ai surligner dans dans le lisp.(il correspond à 20% de la hauteur.) Tu peut donc le modifier directement dans le lisp. Ou, si vraiment tu en as besoin, on peut te créer un décalage à la demande .... Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
sechanbask Posté(e) le 26 juin 2007 Auteur Posté(e) le 26 juin 2007 J'ai un problème avec les Mtextes justifiés milieu gauche, le cadre est décalé vers le bas ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
Bred Posté(e) le 26 juin 2007 Posté(e) le 26 juin 2007 J'ai un problème avec les Mtextes justifiés milieu gauche, le cadre est décalé vers le basJ'avoue ne m'être pas du tout soucié de la justification ...faut que je regarde ça (laisse moi le temps). Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
sechanbask Posté(e) le 26 juin 2007 Auteur Posté(e) le 26 juin 2007 ce n'est pas URGENT comme ce sujet : http://www.cadxp.com/sujetXForum-15774.htm Merci par anticipation.. Car Bred ce que tu fais, ça m'aide tu peux pas savoir... ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
Bred Posté(e) le 26 juin 2007 Posté(e) le 26 juin 2007 pfffffff...j'ai un peu regerdé le sandwchih dans la main, et comme l'expliques (gile), ça devient trés tordus dès qu'l y a justification (car on rentre dans beaucoups de paramètres différents...)même les express ne s'occupe pas des justifications....Mais je ne perds pas espoir... il faut peut-être revoir la base de la création du cadre.... Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
bonuscad Posté(e) le 26 juin 2007 Posté(e) le 26 juin 2007 Bon, au vu des remarques, je vois que personnes n'a regardé mon lien :( Bien que celui-ci faisait des solides, il fonctionnait bien avec toute sortes de justifications, tant que l'on reste dans des SCU parallèles. Voici donc à peu près le même pour faire soit des Boite/Cercle/Ellipse. (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 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:arround_text ( / js n key keyf dxf_ent ins_point ht_txt lg_box ht_box ang_box pt_just lst_box transform diag_box) (princ "\nChoix des MultiTEXTE ou TEXTE: ") (setq js (ssget '((0 . "*TEXT") (-4 . "=") (210 0.0 0.0 1.0))) n -1) (cond (js (initget "Boite Disque _Box Disc") (setq key (getkword "\nForme? [boite/Disque][b]<[/b]Boite>: ")) (if (not key) (setq key "Box") (if (eq key "Disc") (progn (initget "Ellipse Rond _Ellipse Round") (setq keyf (getkword "\nDisque en [Ellipse/Rond][b]<[/b]Rond>: ")) (if (eq keyf "Ellipse") (setq keyf T) (setq keyf nil)) ) ) ) (repeat (sslength js) (setq dxf_ent (entget (ssname js (setq n (1+ n))))) (cond ((eq (cdr (assoc 0 dxf_ent)) "MTEXT") (setq ins_point (cdr (assoc 10 dxf_ent)) ht_txt (* (cdr (assoc 40 dxf_ent)) 0.5) lg_box (cdr (assoc 42 dxf_ent)) ht_box (cdr (assoc 43 dxf_ent)) ang_box (atan (/ (caddr (assoc 11 dxf_ent)) (cadr (assoc 11 dxf_ent)))) pt_just (cdr (assoc 71 dxf_ent)) ) (setq lst_box (list (list (- ht_txt) ht_txt 0.0) (list (+ lg_box ht_txt) ht_txt 0.0) (list (+ lg_box ht_txt) (- 0.0 ht_box ht_txt) 0.0) (list (- ht_txt) (- 0.0 ht_box ht_txt) 0.0) ) ) (cond ((eq pt_just 1) (setq transform (v_matr (list 0.0 0.0 0.0) 0.0 0.0 0.0 1.0 1.0 1.0)) ) ((eq pt_just 2) (setq transform (v_matr (list (- (/ lg_box 2.0)) 0.0 0.0) 0.0 0.0 0.0 1.0 1.0 1.0)) ) ((eq pt_just 3) (setq transform (v_matr (list (- lg_box) 0.0 0.0) 0.0 0.0 0.0 1.0 1.0 1.0)) ) ((eq pt_just 4) (setq transform (v_matr (list 0.0 (+ (/ ht_box 2.0)) 0.0) 0.0 0.0 0.0 1.0 1.0 1.0)) ) ((eq pt_just 5) (setq transform (v_matr (list (- (/ lg_box 2.0)) (/ ht_box 2.0) 0.0) 0.0 0.0 0.0 1.0 1.0 1.0)) ) ((eq pt_just 6) (setq transform (v_matr (list (- lg_box) (/ ht_box 2.0) 0.0) 0.0 0.0 0.0 1.0 1.0 1.0)) ) ((eq pt_just 7) (setq transform (v_matr (list 0.0 ht_box 0.0) 0.0 0.0 0.0 1.0 1.0 1.0)) ) ((eq pt_just 8) (setq transform (v_matr (list (- (/ lg_box 2.0)) ht_box 0.0) 0.0 0.0 0.0 1.0 1.0 1.0)) ) ((eq pt_just 9) (setq transform (v_matr (list (- lg_box) ht_box 0.0) 0.0 0.0 0.0 1.0 1.0 1.0)) ) ) (setq lst_box (mapcar '(lambda (x) (transpts x transform)) lst_box)) (setq transform (v_matr ins_point 0.0 0.0 (- ang_box) 1.0 1.0 1.0)) (setq lst_box (mapcar '(lambda (x) (transpts x transform)) lst_box)) ) ((eq (cdr (assoc 0 dxf_ent)) "TEXT") (setq diag_box (textbox dxf_ent) ins_point (cdr (assoc 10 dxf_ent)) ht_txt (/ (cdr (assoc 40 dxf_ent)) 5.0) ang_box (cdr (assoc 50 dxf_ent)) ) (setq lst_box (list (list (- (caar diag_box) ht_txt) (- (cadar diag_box) ht_txt) 0.0) (list (+ (caadr diag_box) ht_txt) (- (cadar diag_box) ht_txt) 0.0) (list (+ (caadr diag_box) ht_txt) (+ (cadadr diag_box) ht_txt) 0.0) (list (- (caar diag_box) ht_txt) (+ (cadadr diag_box) ht_txt) 0.0) ) ) (setq transform (v_matr ins_point 0.0 0.0 (- ang_box) 1.0 1.0 1.0)) (setq lst_box (mapcar '(lambda (x) (transpts x transform)) lst_box)) ) (T (setq lst_box nil)) ) (cond (lst_box (setq toto lst_box) (cond ((eq key "Disc") (entmake (list (cons 0 "ELLIPSE") (cons 100 "AcDbEntity") (assoc 67 dxf_ent) (assoc 410 dxf_ent) (assoc 8 dxf_ent) (if (assoc 62 dxf_ent) (assoc 62 dxf_ent) (cons 62 256)) (if (assoc 6 dxf_ent) (assoc 6 dxf_ent) (cons 6 "BYLAYER")) (if (assoc 370 dxf_ent) (assoc 370 dxf_ent) (cons 370 -1)) (cons 100 "AcDbEllipse") (cons 10 (mapcar '* (mapcar '+ (car lst_box) (caddr lst_box)) '(0.5 0.5 0.5))) (cons 11 (list (* (- (distance (car lst_box) (cadr lst_box))) 0.5 (cos ang_box)) (* (- (distance (car lst_box) (cadr lst_box))) 0.5 (sin ang_box)) 0.0)) (cons 40 (if keyf 0.5 1.0)) (cons 41 0.0) (cons 42 (* 2 pi)) '(210 0.0 0.0 1.0) ) ) ) (T (entmake (append (list (cons 0 "LWPOLYLINE") (cons 100 "AcDbEntity") (assoc 67 dxf_ent) (assoc 410 dxf_ent) (assoc 8 dxf_ent) (if (assoc 62 dxf_ent) (assoc 62 dxf_ent) (cons 62 256)) (if (assoc 6 dxf_ent) (assoc 6 dxf_ent) (cons 6 "BYLAYER")) (if (assoc 370 dxf_ent) (assoc 370 dxf_ent) (cons 370 -1)) (cons 100 "AcDbPolyline") (cons 90 4) (cons 70 1) ) (apply 'append (mapcar '(lambda (x10) (list (list 10 (car x10) (cadr x10)) '(42 . 0)) ) lst_box ) ) '((210 0.0 0.0 1.0)) ) ) ) ) ) ) ) ) ) (princ) ) [Edité le 9/11/2007 par bonuscad] Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
sechanbask Posté(e) le 27 juin 2007 Auteur Posté(e) le 27 juin 2007 >Bred:Pour moi, les express marche avec toutes les justifications... Y'a pas moyen de copier le code des express et d'inclure les changements de calque ?Car le code des express ne me gène pas, seulement le fait qui doivent être charger pour lancer une partie de code... je ne sais pas si je suis clair pour tout le monde. > bonuscad:je n'arrive pas lancer cette lisp, le chemin est pourtant chargé, et j'ai chargé la lisp mais "commande inconnue" [Edité le 27/6/2007 par sechanbask] ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
bonuscad Posté(e) le 30 octobre 2007 Posté(e) le 30 octobre 2007 > bonuscad:je n'arrive pas lancer cette lisp, le chemin est pourtant chargé, et j'ai chargé la lisp mais "commande inconnue" Je n'avais jamais vue cette question, désolé :( Je viens de tester en copiant directement en ligne de commande, et je n'ai pas de soucis.La commande est "ARROUND_TEXT" Comme il n'y a pas de DCL ou autres fichiers de support, le chemin n'a donc pas d'importance.Comme le Vlisp n'est pas utilisé, il devrait y avoir moins de problème entre les versions d'autocad. En tout cas pour moi entre 2000 à 2005, cela fonctionne, au delà, je ne sais pas. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
sechanbask Posté(e) le 30 octobre 2007 Auteur Posté(e) le 30 octobre 2007 je vais retenter lorsque mon PC remarchera... les déboires d'une installation raté de Linux zenwalk...Mais heureusement aucune donnée perdue !! [Edité le 30/10/2007 par sechanbask] ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
sechanbask Posté(e) le 1 novembre 2007 Auteur Posté(e) le 1 novembre 2007 merci bonuscad ça marche comme je le souhaitais...sauf que : je ne comprends pas grand chose en lisp et ta fonction ne résout pas tous mes problème car la boite n'est pas dans le même calque que l'objet qu'elle entoure : peut être qu'avec un mix avec le code de Bred qui ne gérait pas les différentes justification du texte mais qui entourer dans le bon calque... De plus, j'aimerais que tu m'expliques comme faire pour changer l'écartement (offset) : je veux du 0.4- comment faire pour que la fonction ne fasse que des boites- comment gérer les attributs et les attributs qui sont dans les blocs... Si j'ai l'air exigent, je m'en excuse mais j'ai l'impression que je passe ma vie pour faire ces P***** de boites... Alors si quelqu'un pouvait me faire gagner du temps sur ce problème que j'arriverais pas à résoudre en VBA...J'apprécie déjà la rotation de boite que l'on soit dans SCG, SCU non nommé, ou SCU nomé, et quelque soit la vue !! Merci par avance. ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant