formula1 Posté(e) le 29 juin 2007 Posté(e) le 29 juin 2007 Voilà, je cherche a faire une routine qui m'insererais des bloc avec attribut ou non dans mon dessin.Si il y a une ame généreuse pour me conseillé.
winfield Posté(e) le 30 juin 2007 Posté(e) le 30 juin 2007 reexemple 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.
formula1 Posté(e) le 30 juin 2007 Auteur Posté(e) le 30 juin 2007 Désolé, mais c'est ce que j'avais trouvé avec l'aide de autocad, mais après avoir retirer ce qui étais inutile pour mon cas, ben ça ne marche pas
winfield Posté(e) le 30 juin 2007 Posté(e) le 30 juin 2007 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.
nagaouss Posté(e) le 19 mars 2008 Posté(e) le 19 mars 2008 est ce qu'il ya une reponse plus claire que celle la moi j'ai pas compris et j'ai le meme bleme,merci de me répondre autocad 2015, catia V6
formula1 Posté(e) le 19 mars 2008 Auteur Posté(e) le 19 mars 2008 nagaouss, voici un exemple de mon code : Private Sub CmdOut100_Click()Dim BlocObj As AcadBlockReferenceDim 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 tailleBlocObj.Explode'il faut l'effacer car sinon on a 2 blocs superposésBlocObj.Delete'il faut l'effacer car sinon on a 2 blocs superposésUnload FrmOutilsEnd Sub
speedy Posté(e) le 20 mars 2008 Posté(e) le 20 mars 2008 Bonjour à touscomment 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
formula1 Posté(e) le 20 mars 2008 Auteur Posté(e) le 20 mars 2008 Tu vas dans Tools==>Macro==>Visual Basic EditorEnsuite 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 commandeEnsuite 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 FrmOutilsFrmOutils.ShowEnd Sub Et enfin tu enregistre ton projet
lili2006 Posté(e) le 20 mars 2008 Posté(e) le 20 mars 2008 Bonjour à toutes et tous, Jai essayé ce que tu conseilles formula1, voici le message d'erreur (V2008 sous Vista) => <!--url{0}--> Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
sechanbask Posté(e) le 20 mars 2008 Posté(e) le 20 mars 2008 à 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 Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
lili2006 Posté(e) le 20 mars 2008 Posté(e) le 20 mars 2008 Re, Merci sechanbask, je vais tester. Je profite que tu sois là pour te féliciter de ton programme "nettoyeur", c'est tout bonnement [surligneur] génial ![/surligneur] Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
speedy Posté(e) le 21 mars 2008 Posté(e) le 21 mars 2008 Bonjour à tousj'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 AcadBlockReferenceDim pins As Variantpins = 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 tailleBlocObj.Explode'il faut l'effacer car sinon on a 2 blocs superposésBlocObj.DeleteEnd Sub comme ça fonctionne.... @+ Michel a
sechanbask Posté(e) le 21 mars 2008 Posté(e) le 21 mars 2008 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 Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
Messages recommandé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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant