Aller au contenu

dessin objet avec des données d\'une ligne deja existante ?


Messages recommandés

Posté(e)

Bonjour,

 

Je veux dessiner une ligne a la suite d'une autre mais en récupérant par clic au point de départ de la nouvelle ligne le calque utilisé par l'ancienne ligne.

 

J'ai utilisé la propriété getpoint pour commencer la ligne au point voulu ca marche.

 

Pour le calque, j'utilise le layer.value ou un truc dans le style mais cela nécessite 2 saisie successives.

 

La fonction getpoint le retourne pas le calque même si le point est le début ou la fin de la ligne précédente. Je en peux pas me servir de endpoint ou startpoint pck je ne vois pas comment savoir si de la ou la ligne va repartir c'est le end ou le start de l'ancienne.

 

C'est pas très clair je me doute mais c'est pas facile à expliquer.

 

 

Mon code pour déterminer le diametre

Public Sub determination_diametre()

Dim pnt_debut As Variant
Dim pnt_axe As Variant
Dim pnt_fin As Variant

pnt_debut = ThisDrawing.Utility.GetPoint(, "Point d'extrémité de la ligne extérieure ? ")
pnt_axe = ThisDrawing.Utility.GetPoint(, "Point d'extrémité de l'axe ? ")
pnt_fin = ThisDrawing.Utility.GetPoint(, "Point d'extrémité de la ligne inférieure ? ")

End Sub

 

celui qui dessine la gaine si on chois "ga"

Public Sub continuation(diametre_circ, reseau)

Dim saisie As String
'determination_diametre
Dim pnt_debut As Variant
Dim pnt_axe As Variant
Dim pnt_fin As Variant

ZoomAll
ThisDrawing.Utility.Prompt "Pour continuer : COude, TE, GAine, BOuchon, TRansfo, SOrtir => "
saisie = ThisDrawing.Utility.GetString(False, "Choix ?")

Select Case saisie
   Case "so"
       
   Case "ga"
       gaine_circ diametre_circ, reseau
   Case "bo"
       pnt_debut = ThisDrawing.Utility.GetPoint(, "Point d'extrémité de la ligne extérieure ? ")
       pnt_axe = ThisDrawing.Utility.GetPoint(, "Point d'extrémité de l'axe ? ")
       pnt_fin = ThisDrawing.Utility.GetPoint(, "Point d'extrémité de la ligne inférieure ? ")
       bouchon_circ pnt_debut, pnt_axe, pnt_fin, reseau
   Case "tr"
       pnt_debut = ThisDrawing.Utility.GetPoint(, "Point d'extrémité de la ligne extérieure ? ")
       pnt_axe = ThisDrawing.Utility.GetPoint(, "Point d'extrémité de l'axe ? ")
       pnt_fin = ThisDrawing.Utility.GetPoint(, "Point d'extrémité de la ligne inférieure ? ")
       transfo_circ pnt_debut, pnt_axe, pnt_fin, reseau
End Select

End Sub

 

ca vous eclairera peut etre un peu plus sinon n'hésitez pas à me demander plus de précision

 

[Edité le 5/1/2007 par g_barthe]

Vous voulez parler de génie climatique et poser vos questions alors venez par ici : http://le-genie-climatique.positifforum.com

Les loisirs créatifs vous tentent : http://pausebroderie.fr

Posté(e)

Salut,

je ne suis pas assez bon en vba pour te donner une solution, mais pour faire ce que tu veux en une seule manip je ne vois que 2 possibilités (que je pourrais faire en lisp):

 

- Soit tu sélectionne la ligne à prolonger, en cliquant à un endroit sur la ligne le plus près de l'extrémité que tu veux prolonger : ceci te permet donc de récupérer les valeurs de la ligne (donc le calque), de récupérer le point d'extrémité le plus proche d'où tu viens de cliquer, et de commencer à dessiner une ligne à partier de ce point (sur le calque récupérer précédement).

 

- Soit tu selectionnes le point, et tu fait un test pour savoir quel ligne contient ce point.

 

 

 

[Edité le 5/1/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,

 

Si j'ai bien compris, il te faut récupérer les coordonnées du point et le nom du calque ?

En sélectionnant l'objet ligne (getentity) avec l'accrochage extrémité actif et en cliquant sur l'extrémité désirée ça doit marcher.

 

Public Sub recp_calq_et_extremité()
Dim ligne As AcadLine
Dim ptselec As Variant
Dim calq As String
Dim ptdep(0 To 2) As Double

'Sélectionner avec l'option extrémité active
ThisDrawing.Utility.GetEntity ligne, ptselec, "Cliquez avec accrochage l'extrémité de la ligne voulue"
ptdep(0) = ptselec(0): ptdep(1) = ptselec(1): ptdep(2) = ptselec(2)
calq = ligne.Layer
MsgBox calq
MsgBox ptdep(0) & "---" & ptdep(1) & "---" & ptdep(2)
End Sub 

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é