micc Posté(e) le 30 septembre 2004 Posté(e) le 30 septembre 2004 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 aideA+ :D
Pako Posté(e) le 1 octobre 2004 Posté(e) le 1 octobre 2004 Voici les princiaples lignes pour un bloc sans attribut : Dim objBlockRef As AcadBlockReferenceDim objBlock As AcadBlockDim vPointInsert As VariantDim 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) = "" ThenMsgBox ("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
micc Posté(e) le 4 octobre 2004 Auteur Posté(e) le 4 octobre 2004 merci Pako je vais essayer de mettre cela en pratique A+
micc Posté(e) le 4 octobre 2004 Auteur Posté(e) le 4 octobre 2004 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) = "" ThenMsgBox ("LE RÉPERTOIRE" & PATH_BLOCK & "EST INTROUVABLE OU INEXISTANT, VEUILLEZ AVISER !")End If End Sub---------------------------------------------------------------------------Sub test() Dim objBlockRef As AcadBlockReferenceDim objBlock As AcadBlockDim vPointInsert As VariantDim 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 NextSet objBlock = ThisDrawing.Blocks("toto") If Dir(PATH_BLOCK & "toto.dwg") = "" ThenMsgBox "LE BLOCK EST INTROUVABLE!"Exit SubElseSet objBlockRef = ThisDrawing.ModelSpace.InsertBlock(vPointInsert, "toto", 1#, 1#, 1#, dRotation)objBlockRef.UpdateobjBlockRef.Visible = TrueEnd IfEnd Sub-------------------------------------------------------------------------Merci A+
Pako Posté(e) le 4 octobre 2004 Posté(e) le 4 octobre 2004 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
formula1 Posté(e) le 1 juillet 2007 Posté(e) le 1 juillet 2007 Pako, Chez moi, il m'indique une erreur a ce niveauvPointInsert = ThisDrawing.Utility.GetPoint(, "ENTRER LE POINT D'INSERTION")
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