nicoping28 Posté(e) le 2 avril 2008 Posté(e) le 2 avril 2008 Bonjour, j'aimerais savoir s'il est possible de créer un rectangle de longueur variable, contenant deux rangées de perçages espacées de 32mm en X et 256mm en Y. Il faudrait que ce groupe de perçages augmente en fonction de la longueur et qu'il reste centré, avec une cote mini du bord du rectangle. Voilà ce que je souhaite réaliser( pour le moment mon problème est le centrage de la batterie de trous) http://images.imagehotel.net/?oevhjpgnhn.jpg Cordialement: Nicolas. [Edité le 2/4/2008 par nicoping28]
nicoping28 Posté(e) le 8 avril 2008 Auteur Posté(e) le 8 avril 2008 Bon, je récapitule, je souhaite faire un réseau dynamique, dans un rectangle dynamique, et que le réseau soit centré dans la longueur du rectangle. ps:(si quelqu'un sait comment lier une fonction mathématique à une commande) Par avance merci, Nicolas.
nazemrap Posté(e) le 8 avril 2008 Posté(e) le 8 avril 2008 Bonjour, je viens de tester un petit vba à la place d' un bloc dyn, est-ce que cela t 'intéresse ?
nicoping28 Posté(e) le 8 avril 2008 Auteur Posté(e) le 8 avril 2008 Bien sur, que je suis intéressé . Merci, nazemrap
nazemrap Posté(e) le 8 avril 2008 Posté(e) le 8 avril 2008 Re, voici le code.Il n utilise que des "inputbox" pour les paramètres, mais cela peut_être mis dans un formulaire.Il positionne le panneau horizontalement en mm depuis le point 0,0Je suis peut-être passé à côté de ton besoin.Il est perfectible suivant nécessité.Retours et remarques souhaitées ici. 'NAZEMRAP '8 Avril 2004 'perçage de panneaux Dim longueur As Double Dim largeur As Double Dim poshb As Double Dim pospar As Double Dim ecart As Double Dim rec As AcadLWPolyline Dim pt_rec(0 To 7) As Double Dim trou As AcadCircle Dim rayon As Double Dim centre(0 To 2) As Double Dim posdep As Double Dim nbcol As Integer Dim reseau As Variant Public Sub perçage_panneau() longueur = InputBox("Longueur du panneau") largeur = InputBox("largeur du panneau") poshb = InputBox("Distance minimum à respecter en haut et en bas du panneau") pospar = InputBox("Distance du perçage par rapport au bord de référence") rayon = InputBox("Rayon du perçage ") ecart = 256 pt_rec(0) = 0: pt_rec(1) = 0 pt_rec(2) = longueur: pt_rec(3) = 0 pt_rec(4) = longueur: pt_rec(5) = largeur pt_rec(6) = 0: pt_rec(7) = largeur Set rec = ThisDrawing.ModelSpace.AddLightWeightPolyline(pt_rec) rec.Closed = True 'calcule la position de départ posdep = (longueur - (2 * poshb)) nbcol = Int(posdep / 32) posdep = ((longueur) - (nbcol * 32)) / 2 centre(0) = posdep: centre(1) = pospar: centre(2) = 0 Set trou = ThisDrawing.ModelSpace.AddCircle(centre, rayon) reseau = trou.ArrayRectangular(2, nbcol + 1, 1, ecart, 32, 1) End Sub
nicoping28 Posté(e) le 8 avril 2008 Auteur Posté(e) le 8 avril 2008 Merci, c'est tout à fait ça. Seulement je préfère le bloc dynamique, pour ensuite extraire les attributs et établir ma fiche de débit. Voilà le pourquoi du comment, mais je trouve dommage qu'Acad2009 soit si beau ,mais que l'on ait toujours pas la possibilité ,(sans être programmeur) d'appliquer une simple division ou soustraction en fonction d'une longueur. A moins que j'ai manqué un épisode. Encore merci à toi nazemrap .
LUCCIBEL Posté(e) le 8 avril 2008 Posté(e) le 8 avril 2008 et d'ajouter une action déplacer avec un facteur de 0.50 à la place de 1.00 çà ne te va pas?
nicoping28 Posté(e) le 8 avril 2008 Auteur Posté(e) le 8 avril 2008 Soit je ne l'ai pas bien fais, soit ça n'a pas fonctionné. C'est peut être dû au fait que la longueur est inconnue.Pourquoi, tu as réussi ? Bon, je vais m'y remettre ce soir. Merci à vous
nicoping28 Posté(e) le 15 juillet 2008 Auteur Posté(e) le 15 juillet 2008 Bonjour, je reviens vers vous pour ce problème. Voilà, je me demandais s'il est possible de créer un bloc pour le réseau, et de centrer celui ci dans un autre bloc ?(l'autre bloc étant étirable suivant x et y) Merci à vous.
(gile) Posté(e) le 15 juillet 2008 Posté(e) le 15 juillet 2008 Salut, Tu peux centrer un objet dans un autre cet autre étant étirable sur X et Y, si tu mets des actions de déplacement sur les paramètres linéaires, et des actions de déplacement avec des variateurs de distance de 0.5 en sélectionnant l'objet centre, celui ci restera centré quand tu étireras l'autre. Mais si tu imbriques un bloc dynamique dans un autre bloc dynamique, le premier perdra ses propriétés dynamiques. [Edité le 15/7/2008 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
nicoping28 Posté(e) le 15 juillet 2008 Auteur Posté(e) le 15 juillet 2008 Merci (gile), voilà qui n'est pas une très bonne nouvelle.Les machines à commandes numériques que j'utilise, fonctionnent sous windows 95, et il est possible de faire un réseau centré dans un rectangle étirable, avec aux extrémités une cote mini. Je trouve dommage que la version 2008 ainsi que la 2009 d'autocad ne disposent pas de tels outils.Mais peut être que ce type de fonction, est trop proche des softs de meca ? Merci.
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