Aller au contenu

inserer bloc via le vba


Messages recommandés

Posté(e)

Bonsoir à tous

 

voilà je suis ultra debuttant en vba et j'aimerais savoir comment peut'on inserer un symbôle dans autocad en cliquant un bouton depuis une userform, quel est le code à mettre ?

merci pour votre aide

A+ :D

Posté(e)

Voici les princiaples lignes pour un bloc sans attribut :

 

Dim objBlockRef As AcadBlockReference

Dim objBlock As AcadBlock

Dim vPointInsert As Variant

Dim dRotationAs Double

 

vPointInsert = ThisDrawing.Utility.GetPoint(, "ENTRER LE POINT D'INSERTION")

dRotation = ThisDrawing.Utility.GetAngle(vPointInsert, "ENTRER L'ANGLE (1 pt.)")

 

On Error Resume Next

Set objBlock = ThisDrawing.Blocks("NomBlock")

 

If Dir(PATH_BLOCK & "NomBlock.dwg") = "" Then

MsgBox "LE BLOCK EST INTROUVABLE!"

Exit Sub

Else

Set objBlockRef = ThisDrawing.ModelSpace.InsertBlock(PointInsert, "NomBlock.dwg", 1#, 1#, 1#, dRotation )

objBlockRef.Update

objBlockRef.Visible = True

End If

 

Chemin de ta bibliothèque de block :

 

Public Sub PATH_BLOCKS()

 

PATH_BLOCK = "C:\......."

 

If Dir(PATH_BLOCK, vbDirectory) = "" Then

MsgBox ("LE RÉPERTOIRE" & PATH_BLOCK & "EST INTROUVABLE OU INEXISTANT, VEUILLEZ AVISER !")

End If

 

End Sub

 

 

Tu peux rajouter du code autour de ces principales lignes.

Exemple appliquer le calque souhaité avec l'insertion et la mode d'accrochage !

 

Bonne Chan !

 

 

 

 

[Edité le 1/10/2004 par Pako]

 

[Edité le 1/10/2004 par Pako]

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

Posté(e)

Bonjour Pako et le forum

 

voilà j'ai essayé et ça marche très bien à condition d'avoir le bloc déjà dans le dessin, mais si on ouvre un dessin qui ne contient aucun bloc puis il faut le chercher dans le disque c:\ par exemple, comme c'est le cas dans le code suivant, alors la macro n'insere rien, la question est porquoi ???? :)

 

CODE :

--------------------------------------------------------------------------

Public Sub PATH_BLOCKS()

 

PATH_BLOCK = "C:\"

 

If Dir(PATH_BLOCK, vbDirectory) = "" Then

MsgBox ("LE RÉPERTOIRE" & PATH_BLOCK & "EST INTROUVABLE OU INEXISTANT, VEUILLEZ AVISER !")

End If

 

End Sub

---------------------------------------------------------------------------

Sub test()

 

Dim objBlockRef As AcadBlockReference

Dim objBlock As AcadBlock

Dim vPointInsert As Variant

Dim dRotation As Double

 

vPointInsert = ThisDrawing.Utility.GetPoint(, "ENTRER LE POINT D'INSERTION")

dRotation = ThisDrawing.Utility.GetAngle(vPointInsert, "ENTRER L'ANGLE (1 pt.)")

 

On Error Resume Next

Set objBlock = ThisDrawing.Blocks("toto")

 

If Dir(PATH_BLOCK & "toto.dwg") = "" Then

MsgBox "LE BLOCK EST INTROUVABLE!"

Exit Sub

Else

Set objBlockRef = ThisDrawing.ModelSpace.InsertBlock(vPointInsert, "toto", 1#, 1#, 1#, dRotation)

objBlockRef.Update

objBlockRef.Visible = True

End If

End Sub

-------------------------------------------------------------------------

Merci A+

 

Posté(e)

Les blocs externes devront être dans un répertoire vu par Autocad.

Vérifie dans les options : File, Support File Search Path y rajouter votre répertoire !

 

 

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

  • 2 ans aprè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 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é