Aller au contenu

INSERT BLOCK EN VBA


Messages recommandés

Posté(e)

re

exemple de l'aide

 Sub Example_InsertBlock()
   ' This example creates a block containing a circle.
   ' It then inserts the block.

   ' Create the block
   Dim blockObj As AcadBlock
   Dim insertionPnt(0 To 2) As Double
   insertionPnt(0) = 0#: insertionPnt(1) = 0#: insertionPnt(2) = 0#
   Set blockObj = ThisDrawing.Blocks.Add(insertionPnt, "CircleBlock")
   
   ' Add a circle to the block
   Dim circleObj As AcadCircle
   Dim center(0 To 2) As Double
   Dim radius As Double
   center(0) = 0: center(1) = 0: center(2) = 0
   radius = 1
   Set circleObj = blockObj.AddCircle(center, radius)
  
   ' Insert the block
   Dim blockRefObj As AcadBlockReference
   insertionPnt(0) = 2#: insertionPnt(1) = 2#: insertionPnt(2) = 0
   Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock(insertionPnt, "CircleBlock", 1#, 1#, 1#, 0)
   
   ZoomAll
   
End Sub
 

en vba, tu insères le bloc et ensuite, regarder s'il a un attribut et indiquer la valeur si nécessaire.

Ce n'est pas tout à fait la même façon que quand on insère manuellement.

 

 ' Move the attribute tags and values into a string to be displayed in a Msgbox
   Dim strAttributes As String
   Dim I As Integer
   For I = LBound(varAttributes) To UBound(varAttributes)
       strAttributes = strAttributes & "  Tag: " & varAttributes(I).TagString & _
                       "   Value: " & varAttributes(I).textString & "    "
   Next
   MsgBox "The attributes for blockReference " & blockRefObj.name & " are: " & strAttributes, , "GetAttributes Example"
   
   ' Change the value of the attribute
   ' Note: There is no SetAttributes. Once you have the variant array, you have the objects.
   ' Changing them changes the objects in the drawing.
   varAttributes(0).textString = "NEW VALUE!"

Nous n’ héritons pas de la terre de nos ancêtres.Nous l’empruntons à nos enfants.

Posté(e)

t'en a peut-être trop enlevé, ou pas assez :casstet:

Parfois une petite touche personnelle arrive à décoincer.

Nous n’ héritons pas de la terre de nos ancêtres.Nous l’empruntons à nos enfants.

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

nagaouss, voici un exemple de mon code :

 

Private Sub CmdOut100_Click()

Dim BlocObj As AcadBlockReference

Dim pins As Variant

 

FrmOutils.Hide

 

pins = ThisDrawing.Utility.GetPoint(, "Veuillez choisir un point : ")

 

Set BlocObj = ThisDrawing.ModelSpace.InsertBlock(pins, "OUTILS100.dwg", 1#, 1#, 1#, 0)

BlocObj.Update

'on explose les blocs pour que le texte des cotations soient de meme taille

BlocObj.Explode

'il faut l'effacer car sinon on a 2 blocs superposés

BlocObj.Delete

'il faut l'effacer car sinon on a 2 blocs superposés

Unload FrmOutils

End Sub

Posté(e)

Bonjour à tous

comment créer un bouton de la commande vba dans autocad ou de quelle manière faut il procéder pour exécuter ce code qui utilise une Useform....

 

merci de votre explication...

 

@+

 

Michel a

 

 

Posté(e)

Tu vas dans Tools==>Macro==>Visual Basic Editor

Ensuite tu fais un clik droit dans la première fenetre en haut a gauche et tu clik sur Insert==>UserForm puis tu lui ajoute un bouton de commande et tu met le code dans le bouton de commande

Ensuite tu fais un clik droit dans la première fenetre en haut a gauche et tu clik sur Insert==>Module et tu y met le code suivant

 

Option Explicit

 

Sub OUTILS()

Load FrmOutils

FrmOutils.Show

End Sub

 

Et enfin tu enregistre ton projet

Posté(e)

à mon avis lili2006, tu n'a pas crée la userform qui va avec le programme de formula1...

 

il faut que tu crées une userform qui porte le nom (pas caption, mais name) "FrmOutils"

bon courage

 

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)

Bonjour à tous

j'ai chargé mon programme, mais comment créer le bouton dans autocad (comme avec excel) pour éxécuter mon useform ......pour répondre à lili2006 j'ai eu la même erreur à FrmOutils je l'ai chunté mettant '

avant.....

Public Sub INSERTBLOCK()

Dim BlocObj As AcadBlockReference

Dim pins As Variant

pins = ThisDrawing.Utility.GetPoint(, "Veuillez choisir un point : ")

Set BlocObj = ThisDrawing.ModelSpace.INSERTBLOCK(pins, "le_bloc_a_inserer.dwg", 1#, 1#, 1#, 0)

BlocObj.Update

'on explose les blocs pour que le texte des cotations soient de meme taille

BlocObj.Explode

'il faut l'effacer car sinon on a 2 blocs superposés

BlocObj.Delete

End Sub

 

comme ça fonctionne....

 

@+

 

Michel a

 

 

Posté(e)

le bonton pour lancer le programme ce fait soit dans le cui si tu as une version supérieure ou = à 2006. sinon il faut éditer un fichier .mnr je crois mais j'en suis pas sur.

 

une fois que tu as crée ton bonton, il faut que tu le renseigne pour lui donner le nom du projet, le nom du module et enfin le nom de la fonction ou du sub que tu souhaites lancer... je regarde ce midi la syntaxe... car maintenant, je ne dessine plus avec les icone, j'utilise que les allias (ou presque) et donc je lance plus mes programmes comme ça.

 

Je les lances via un allias qui lance un LISP, puis le LISP lance le VBA. Tu mes diras certainement mais B*** pourquoi passes-tu par le lisp? c'est pour pouvoir relancer la commande en faisant un clic droit rapide ou ENTRER ou ESPACE....

 

là aussi je t'envoie la syntaxe dans le WE...

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é