Aller au contenu

Création de lignes complexes


cmaire

Messages recommandés

Bonjour,

 

Nouvelle inscrite dans ce forum, je me réjouis par avance de trouver quelques solutions à mes petits probèmes... :)

 

Dans un 1er temps, je voudrais créér 3 types de lignes complexes qui ressemblent à ça :

http://img454.imageshack.us/my.php?image=typeligne6nt.jpg

 

Le problème, en créant des formes différentes, c'est que j'arrive à plus de 128 caractères dans ma définition du type de lignes et donc ça ne marche pas.

 

Quelqu'un aurait-il une solution à mon pb?

Merci d'avance

CMaire

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Et merci pour cette aide mais je n'y arrive toujours pas. J'arrive bien à créer mes formes et à les utiliser mais mon type de ligne que je veux créer reste long en définition (succession de tirets-espace-tiret-espace...puis 1 forme puis espace-tiret-espace puis une autre forme.....et ainsi de suite.)

J'ai trouvé dans la doc Autocad le paragraphe suivant :

 

"Vous pouvez entrer jusqu'à 12 longueurs de tiret par type de ligne, à condition que celles‑ci puissent être toutes contenues sur une ligne de 80 caractères dans le fichier LIN".

 

Je suis donc apparremment bloqué. Je dis apparemment car j'espère pouvoir trouver un solution...

 

Merci

CMaire

 

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

A mon avis c'est pas possible.... facilement. :P

 

Je pensais faire cela les doigts dans l'nez du style

*EDF,Ligne EDF -->-->-->-->--

A,0.1,-5,["---<------>---",standard,S=0.5,R=0,x=-5,y=-.25] ,-1

mais ça marche pas pour x raisons.

- outre la difficulté de régler les différents paramètres (2h et j'ai pas réussi)

- surtout ceux du texte suivant le dessin

-au départ de la ligne, il y a toujours un segment de longueur variable suivant la longueur de la ligne

- le code TEXTE est trop long ce qui entraîne qu'il peut dépasser de la fin de la ligne et en cas de polyligne , c'est affreux.

 

PS : L'applicatif COVADIS (et c'est des forts) contourne ce problème en intercalant des symboles entre les segments de ligne ; mais c'est un type de ligne + des symboles. (qui peuvent être dans des calques différents)

 

Qui relève le défi ? ;)

 

Lien vers le commentaire
Partager sur d’autres sites

et bien oui, tout le problème est là...et en effet, le texte ou la forme ne pas être trop long sinon, il dépasse en extrémité.

Actuellement, on utilise l'habillage de lignes avec des blocs par Covadis mais les utilisateurs en ont un peu marre de refair l'habillage chaque fois qu'ils modifient un sommet...

Qui se penche sur mon pb???

 

 

Lien vers le commentaire
Partager sur d’autres sites

  • 4 mois après...

Peut être une solution en utilisant 2 type de lignes dont le 1er s'appuierais sur le modele "CACHE2" de AcadIso.lin et en supposant l'echelle à 1 par défaut.

 

Tu crées un fichier "Ligne EDF.lin" dans un dossier de recherche et tu places ce qui suit dedans:

*BT,Basse Tension ---<----->----

A,0,-15,["<",Standard,s=10,y=-5],-35,[">",Standard,s=10,y=-5],-20,0

*MT,Moyenne Tension --|-<----->-|---

A,0,-10,["|",Standard,s=10,y=-5],-5,["<",Standard,s=10,y=-5],-35,[">",Standard,s=10,y=-5],-10,["|",Standard,s=10,y=-5],-15,0

*HT,Haute Tension --<-<----->->---

A,0,-10,["<",Standard,s=10,y=-5],-5,["<",Standard,s=10,y=-5],-35,[">",Standard,s=10,y=-5],-5,[">",Standard,s=10,y=-5],-15,0

 

Après ce que tu peux faire, est de tracer un objet quelconque; ligne, arc, polylignes .....

et d'utiliser la routine suivante:

 

(defun c:line_EDF ( / js e_edf e_typ dxf_ent dxf_last)
(princ "\nSélectionner l'objet à tranformer en ligne EDF: ")
(while
	(not
		(setq js
			(ssget "_+.:E:S" 
				(list
					(cons 0 "*POLYLINE,LINE,ARC,CIRCLE,ELLIPSE,SPLINE")
					(cons 67 (if (eq (getvar "CVPORT") 2) 0 1))
					(cons 410 (if (eq (getvar "CVPORT") 2) "Model" (getvar "CTAB")))
					(cons -4 "< NOT")
						(cons -4 "&") (cons 70 112)
					(cons -4 "NOT>")
				)
			)
		)
	)
)
(redraw (setq e_edf (ssname js 0)) 3)
(setq e_typ (cdr (assoc 0 (setq dxf_ent (entget e_edf)))))
(if (null (tblsearch "LTYPE" "CACHE2"))
	(command "_.-linetype" "_load" "cache2" "AcadIso.lin" "")
)
(if (null (tblsearch "LTYPE" "BT"))
	(command "_.-linetype" "_load" "bt,mt,ht" "Ligne EDF.lin" "")
)
(if (or (eq e_typ "LWPOLYLINE") (eq e_typ "POLYLINE"))
	(setq dxf_ent (entmod (subst (cons 70 (+ (rem (cdr (assoc 70 dxf_ent)) 128) 128)) (assoc 70 dxf_ent) dxf_ent)))
)
(if (null (assoc 6 dxf_ent))
	(setq dxf_ent (append dxf_ent (list (cons 6 "CACHE2"))))
	(setq dxf_ent (subst (cons 6 "CACHE2") (assoc 6 dxf_ent) dxf_ent))
)
(entmod dxf_ent)
(if (/= e_typ "POLYLINE")
	(entmake (cdr dxf_ent))
	(command "_.copy" js "" "_none" "*0,0,0" "_none" "*0,0,0")
)
(setq dxf_last (entget (entlast)))
(initget 1 "BT MT HT")
(entmod (subst (cons 6 (getkword "\nLigne EDF [bT/MT/HT]?: ")) (assoc 6 dxf_last) dxf_last))
(prin1)
)

NB: Enlever l'espace dans "< NOT"

On pourrait envisager de "grouper" de façon anonyme les 2 objets ainsi modifiés dans la routine.

 

[Edité le 20/7/2006 par bonuscad]

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

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é