Aller au contenu

salut...


cadpolo

Messages recommandés

creer une double ligne en vba

 

voici un exemple :

 

Sub Exemple_CreerMultiLigne() ' dans le modelspace

 

....Dim objMultiLigne As AcadMLine

....Dim vertexList(0 To 17) As Double

 

....vertexList(0) = 4: vertexList(1) = 7: vertexList(2) = 0

....vertexList(3) = 5: vertexList(4) = 7: vertexList(5) = 0

....vertexList(6) = 6: vertexList(7) = 7: vertexList(8) = 0

....vertexList(9) = 4: vertexList(10) = 6: vertexList(11) = 0

....vertexList(12) = 5: vertexList(13) = 6: vertexList(14) = 0

....vertexList(15) = 6: vertexList(16) = 6: vertexList(17) = 6

 

....Set objMultiLigne = ThisDrawing.ModelSpace.AddMLine(vertexList)

 

....ThisDrawing.Application.ZoomAll

....MsgBox "vive CADxp !."

 

End Sub

 

que veux-tu dire par donation ????

 

:exclam: ........... Voir : ICI

l'ACADien ! http://img124.exs.cx/img124/7999/start.gif

Lien vers le commentaire
Partager sur d’autres sites

effectivement deux lignes paralleles 2D en utilisant Getpoint ...

car la mline est en 3D et ....

ex pour tracer un mur en cliquant sur son axe on a de part et d'autre de cet axe deux lignes paralleles .....

j'ai l'impression qu'autocad ne le permet pas comme la double ligne sur la LT ...

ou il faut ruser

 

 

Lien vers le commentaire
Partager sur d’autres sites

cadpolo, voici un petit cadeau pour la St-Valentin ! :present:

Public Sub DOUBLE_LIGNE()

 

....Dim objLigne As AcadLine

....Dim objNLigne1 As AcadLine

....Dim objNLigne2 As AcadLine

....Dim varPoints As Variant

....Dim varOffset As Variant

 

....dbEpaisseur = (ThisDrawing.Utility.GetInteger("L'ÉPAISSEUR DE : ") / 2)

 

....With ThisDrawing.Utility

.........GetEntity objLigne, varPoints, "SÉLECTIONNER UNE LIGNE :"

............If objLigne Is Nothing Then

................MsgBox "** AUCUN LIGNE SÉLECTIONNÉE! **"

................Exit Sub

............End If

....End With

 

....'Créer la première ligne

....Set objNLigne1 = objLigne.Copy()

....varOffset = objNLigne1.Offset(dbEpaisseur)

 

....'Créer la deuxième ligne

....Set objNLigne2 = objLigne.Copy()

....varOffset = objNLigne2.Offset(-dbEpaisseur)

 

End Sub

 

;)

l'ACADien ! http://img124.exs.cx/img124/7999/start.gif

Lien vers le commentaire
Partager sur d’autres sites

salut ...

j'ai procedé differement en tracant une ligne et ensuite la décalé ....

bon c'est un début .....

mais merci pour ton tes lignes je vaie l' éssayé ..

 

Private Sub CommandButton1_Click()

 

Dim lineObj As AcadLine

Dim sp(0 To 2) As Double

Dim ep(0 To 2) As Double

Dim offsetObj As Variant

Dim di As Double

Dim layerObj As AcadLayer

 

'creer un calque pour y mettre la ligne

Set layerObj = ThisDrawing.Layers.Add("toto")

 

ThisDrawing.ActiveLayer = layerObj

 

 

 

UserForm1.Hide

 

varRet = ThisDrawing.Utility.GetPoint(, " pt dep ")

sp(0) = varRet(0)

sp(1) = varRet(1)

sp(2) = varRet(2)

 

varRet = ThisDrawing.Utility.GetPoint(, " pt fin ")

ep(0) = varRet(0)

ep(1) = varRet(1)

ep(2) = varRet(2)

 

 

Set lineObj = ThisDrawing.ModelSpace.AddLine(sp, ep)

 

di = ThisDrawing.Utility.GetDistance(, "entrer la distance = ")

 

offsetObj = lineObj.Offset(di)

 

 

End Sub

 

 

 

Lien vers le commentaire
Partager sur d’autres sites

effectivement

mais la commande multiligne est limitée ....

on ne pas y ajouter du txt , y mettre des hachures ni la renseigner ...

faire du vba n'est pas seulement dessiner il y a aussi de l'échange avec d'autre soft bd ex ...

ça améliore le boulot qu'on ne fait que ça ...

il y a plusiers d'autres raisons ......

 

et toi cela t'interresse t'il ????

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é