Aller au contenu

Messages recommandés

Posté(e)

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 Fluides

http://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.png

Exécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffrage

www.ategie.fr

  • Réponses 63
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans ce sujet

Meilleurs contributeurs dans ce sujet

Posté(e)

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,

MEASUREINIT

suivant 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

Posté(e)

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 Fluides

http://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.png

Exécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffrage

www.ategie.fr

Posté(e)
-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...

Posté(e)

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

Posté(e)

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

Posté(e)
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...

Posté(e)

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

 

Amicalement

Zebulon_

 

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)

  • 2 semaines après...
Posté(e)

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 Fluides

http://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.png

Exécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffrage

www.ategie.fr

Posté(e)

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. ;)

 

Amicalement

Zebulon_

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)

  • 2 semaines après...
Posté(e)

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 Fluides

http://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.png

Exécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffrage

www.ategie.fr

Posté(e)

Salut,

je délaisse beaucoup ce forum actuellement (contre ma avolonté...) et je n'avais pas vus ton message

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 )

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

Posté(e)

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.

 

Amicalement

Zebulon_

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)

Posté(e)

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 Fluides

http://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.png

Exécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffrage

www.ategie.fr

Posté(e)
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...

Posté(e)

J'ai un problème avec les Mtextes justifiés milieu gauche, le cadre est décalé vers le bas

ATEGIE - Bureau d'Études Fluides

http://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.png

Exécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffrage

www.ategie.fr

Posté(e)
J'ai un problème avec les Mtextes justifiés milieu gauche, le cadre est décalé vers le bas

J'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...

Posté(e)

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

Posté(e)

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

Posté(e)

>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 Fluides

http://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.png

Exécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffrage

www.ategie.fr

  • 4 mois après...
Posté(e)

> 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

Posté(e)

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 Fluides

http://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.png

Exécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffrage

www.ategie.fr

Posté(e)

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 Fluides

http://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.png

Exécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffrage

www.ategie.fr

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant



×
×
  • 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é