formula1 Posté(e) le 1 juillet 2007 Posté(e) le 1 juillet 2007 Bonjours a tous,Je suis dessinateur en construction et j'aimerai me faire une macro qui dessine des polyline.Mais je dois définir son épaisseur, sa distance par rapport a un objet et lui faire un filet dont je défini le rayon.Si quelqu'un peu m'aider, ce serai super.
sechanbask Posté(e) le 1 juillet 2007 Posté(e) le 1 juillet 2007 Tu souhaites faire un polyligne avec des demande à l'utilisateur? ex. "sélectionner le premier point : "? Si c'est une polyligne créée par VBA sans demande à l'utilisateur : Sub Example_LinetypeGeneration() ' This example creates a polyline in model space and ' queries and changes the linetype generation for ' the polyline. ' To see the effect of changing the linetype generation, set ' the linetype of the polyline to something other than continuous, ' ByBlock, or ByLayer. Dim plineObj As AcadPolyline Dim points(0 To 14) As Double ' Define the 2D polyline points points(0) = 1: points(1) = 1: points(2) = 0 points(3) = 1: points(4) = 2: points(5) = 0 points(6) = 2: points(7) = 2: points(8) = 0 points(9) = 3: points(10) = 2: points(11) = 0 points(12) = 4: points(13) = 4: points(14) = 0 ' Create a lightweight Polyline object in model space Set plineObj = ThisDrawing.ModelSpace.AddPolyline(points) End Sub 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
formula1 Posté(e) le 1 juillet 2007 Auteur Posté(e) le 1 juillet 2007 oui, c'est bien une polyline avec demande utilisateur.En fait, je travail dans le dommaine des armatures.et ça me fait ?????????? de devoir faire plusieur commandes pour dessiner une barre avec plusieur plis (en polyline)
sechanbask Posté(e) le 1 juillet 2007 Posté(e) le 1 juillet 2007 Je comprends bien ton désarroi... Si je fait du VBA, c'est pour gagner du temps (non en fait pour ne pas en perdre) et peu pour le plaisir de créer.Je ne connais pas du tout ton domaine, je travaille dans un BE fluides, d'ailleurs, généralement on aime pas (par convention collective) les personnes qui font la structure car ils nous mettent des poutres et des poteaux partout, mais le pire dans tout ça c'est les dalles précontraintes dans lesquelles on doit donner toutes les réservations même pour les tout petits trous...Afin d'enterrer la hache de guerre : je te donne ce que j'ai fait grâce à Winfield Sub rec() Dim PTA As Variant Dim PTB As Variant Dim pt1(1) As Double Dim pt2(1) As Double Dim pt3(1) As Double Dim pt4(1) As Double Dim Obj_Decal As AcadLWPolyline Dim points(0 To 15) As Double 'Dim StrCalqueCourantH As String Dim newlayer1 As AcadLayer Dim newlayer2 As AcadLayer INSAUTO.CalqueCourant 'MsgBox StrCalqueCourantH Set newlayer1 = ThisDrawing.Layers.Add("16--") ThisDrawing.ActiveLayer = ThisDrawing.Layers("16--") PTA = ThisDrawing.Utility.GetPoint(, "Indiquez le premier coin.") PTB = ThisDrawing.Utility.GetCorner(PTA, vbLf & "Indiquez le second coin.") 'PTA = ThisDrawing.Utility.TranslateCoordinates(PTA, acUCS, acWorld, False) 'PTB = ThisDrawing.Utility.TranslateCoordinates(PTB, acUCS, acWorld, False) pt1(0) = PTA(0): pt1(1) = PTA(1) pt2(0) = PTB(0): pt2(1) = PTB(1) pt3(0) = pt2(0): pt3(1) = pt1(1) pt4(0) = pt1(0): pt4(1) = pt2(1) points(0) = pt1(0): points(1) = pt1(1) points(2) = pt3(0): points(3) = pt3(1) points(4) = pt2(0): points(5) = pt2(1) points(6) = pt4(0): points(7) = pt4(1) points(8) = pt1(0): points(9) = pt1(1) points(10) = pt2(0): points(11) = pt2(1) points(12) = pt3(0): points(13) = pt3(1) points(14) = pt4(0): points(15) = pt4(1) Set Obj_Decal = ThisDrawing.ModelSpace.AddLightWeightPolyline(points) With Obj_Decal .Closed = True .Update End With 'Set newlayer2 = ThisDrawing.Layers.Add("16--COT") 'ThisDrawing.ActiveLayer = ThisDrawing.Layers("16--COT") 'ThisDrawing.Application.Update ThisDrawing.SendCommand "_qdim" & vbCr 'ThisDrawing.Application.Update ThisDrawing.ActiveLayer = ThisDrawing.Layers(StrCalqueCourantH) End Sub 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
formula1 Posté(e) le 1 juillet 2007 Auteur Posté(e) le 1 juillet 2007 J'ai tester ton code, mais ce n'est pas vraiment ce que je cherche.En fait, je te donne d'autre indications:J'ai une élévation de poutre par exemple et je dois dessiner des polyline en forme de U ou de L suivant les instructions de l'ingénieur (ATTENTION, la forme de barre ne se limite pas au U ni au L) et cette barre dois se trouver a une distance du bord de ma poutre que je défini, elle doit avoir une épaisseur suivant son diametre (par exemple je veu un diametre 20 alors la polyline dois avoir 2 d'épaisseur) et enfin elle dois avoir un fillet que l'on appelle un rayon de courbure déterminer en fonction du diametre.En fait, je veu créer une feuille avec un menu déroulant qui me permetrai de selectioner le diametre (donc l'épaisseur de ma barre) et en fonction d'une certaine regle en armature pour le rayon de courbure (a savoir 5x le diametre) pouvoir faire la commande fillet.Et ensuite sur cette feuille serai ajouter un bouton me permettant de dessiner cette polyline.Et aussi un textebox qui me donnerai la distance pour décaler la barre du bord de ma poutre.
sechanbask Posté(e) le 1 juillet 2007 Posté(e) le 1 juillet 2007 Tu travailles avec quel logiciel? si autocad, quelle version? car si tu as une version supérieure ou égale à 2006, je pense que le plus simple sera de faire des demandes dynamiques (à l'écran comme les commandes autocad). 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
sechanbask Posté(e) le 1 juillet 2007 Posté(e) le 1 juillet 2007 Ce pas un problème t'en fais pas.C'est un peu moins pratique car une fois que ta userform est apparue, tu ne peux plus voir une partie de ton plan et tu ne peux pas te déplacer sur ton plan pour voir un truc que t'as pas vérifié avant de lancer la commande. Alors commençons par le début, pour faire un menu déroulant sur une feuille c'est avec combobox. combobox = Zone de liste modifiable appelons la "combobox" combox2 sur la userform "Parametres" dans ton module ou useform qui lance la combobox2 With Parametres.ComboBox2 .Clear 'impératif sinon à chaque fois que tu lances ton application, ça te rajoutera des item en plus .AddItem "texte" .AddItem "débit" .AddItem "diamètre" .AddItem "espace" End With bon je vais manger, et cette après midi, je ne suis pas là alors bon courage et à bientôt 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
sechanbask Posté(e) le 8 juillet 2007 Posté(e) le 8 juillet 2007 tu as réussi à faire tes polylignes programmables ? J'arrive à rien pour les styles de textes pour l'instant... 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
formula1 Posté(e) le 8 juillet 2007 Auteur Posté(e) le 8 juillet 2007 Pour les polyline, je n'ai encore rien trouvé
sechanbask Posté(e) le 9 juillet 2007 Posté(e) le 9 juillet 2007 Tu as un début de code pour que je te donne un coup de main, où tu n'arrive pas à débuter? 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
formula1 Posté(e) le 9 juillet 2007 Auteur Posté(e) le 9 juillet 2007 Malheureusement, je n'arrive pas a débuter car comme tu le sais, je débute avec le vba.
sechanbask Posté(e) le 9 juillet 2007 Posté(e) le 9 juillet 2007 redécrit-moi ton algorithme :ce que tu veux faire avec l'ordre précis... dit-moi si je me trompe:-faire apparaitre une form avec une liste avec des plusieurs choix sélectionnables,-récupérer le choix de l'utilisateur pour connaitre la taille de la polyligne à tracer et connaitre le décalage de la polyligne par rapport à un bord de poutre et faire une sortie pour informer l'utilisateur,-lancer la commande pour tracer la polyligne avec les éléments précédents. J'ai commencé un truc en suivant l'algorithme que j'ai décrit ci-dessus, s'il manque quelque chose prévient-moi car ça peut parfois changer pas mal de mécanismes. J'ai faire une userform dont le nom est : "ParaPolyligne" ne pas mettre les guillemets.je lui ai fait une combobox dont le nom est "combobox1"dans le code d'un module j'ai mis : Sub file() 'charge la userform dans la mémoire du PC Load ParaPolyligne 'décrit la combobox1 en insérant la liste de choix With ParaPolyligne.ComboBox1 .Clear 'impératif sinon à chaque fois que tu lances ton application, ça te rajoutera des item en plus .AddItem "10" .AddItem "20" .AddItem "30" .AddItem "40" End With 'provoque l'affichage de la userform ParaPolyligne.Show End Sub et dans le code de la userform, j'ai mis :Private Sub CommandButton1_Click() Dim sngElement As Single 'initialise la variable pour qu'elle reçoive le choix que l'utilisateur fait sngElement = ParaPolyligne.ComboBox1.List(ParaPolyligne.ComboBox1.ListIndex) MsgBox sngElement End Sub dit-moi si je suis bon dans le départ... après le reste suivra avec un peu d'aide de ta part pour que tu améliores ton niveau. [Edité le 9/7/2007 par sechanbask] 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
formula1 Posté(e) le 10 juillet 2007 Auteur Posté(e) le 10 juillet 2007 J'ai testé ton code, il bug à la partie surligner Private Sub CommandButton1_Click()Dim sngElement As Single'initialise la variable pour qu'elle reçoive le choix que l'utilisateur fait [surligneur] sngElement = ParaPolyligne.ComboBox1.List(ParaPolyligne.ComboBox1.ListIndex)[/surligneur]MsgBox sngElementEnd Sub
sechanbask Posté(e) le 12 juillet 2007 Posté(e) le 12 juillet 2007 il faut que tu me donnes le type d'erreur car je ne l'ai pas chez moi... 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
formula1 Posté(e) le 12 juillet 2007 Auteur Posté(e) le 12 juillet 2007 Le code de l'erreur est : Run time error '424':object required
sechanbask Posté(e) le 12 juillet 2007 Posté(e) le 12 juillet 2007 tu as fait une form? Son caption c'est quoi? son (name) c'est quoi? 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
formula1 Posté(e) le 12 juillet 2007 Auteur Posté(e) le 12 juillet 2007 Je lui ai mis en caption ParaPolyline et j'ai laisser userform1
sechanbask Posté(e) le 16 juillet 2007 Posté(e) le 16 juillet 2007 Salut, Le caption d'une userform ça ne sert qu'à mettre le titre (dans la barre bleue). Le (name) sert à nommé la userform pour qu'elle ne s'appelle plus "Userform". C'est important car si tu as dans ton projet plusieurs userform tu auras du mal à les distinguer puisqu'elles s'appelleront userform1, userform2, etc. Donc pour que le projet marche, il faut que tu mettes dans le (name) : ParaPolyligne. Pour ce qui est du caption met ce que tu veux... 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
formula1 Posté(e) le 19 août 2007 Auteur Posté(e) le 19 août 2007 Bonjours, Voilà je suis de retour après qlq jours de vacances.J'ai fais ce que tu as dis, mais quand je clique sur le bouton rien ne se passe.
lili2006 Posté(e) le 22 août 2007 Posté(e) le 22 août 2007 Bonjour à tous, Moi aussi je dessine régulièrement des plans d'armatures, au final, vous en êtes ou ?? Merci d'avance de la réponse. [Edité le 22/8/2007 par lili2006] Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
formula1 Posté(e) le 22 août 2007 Auteur Posté(e) le 22 août 2007 tu veus bien présiser ta question?au final?
sechanbask Posté(e) le 23 août 2007 Posté(e) le 23 août 2007 Bon je vous envoie un bout du code directement sur le .dvb ici présent : http://cjoint.com/?ixwL6xmEAN ce n'est que le début mais il faut bien un début... 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
formula1 Posté(e) le 24 août 2007 Auteur Posté(e) le 24 août 2007 Merci SACHENBASK, je vais essayer ça ce soir
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