Pako Posté(e) le 7 mars 2005 Posté(e) le 7 mars 2005 Sub Example_IntersectWith()....'Cet exemple crée une ligne et un cercle et trouve les points auxquels ils se croisent. ....'Crée une ligne....Dim lineObj As AcadLine....Dim startPt(0 To 2) As Double....Dim endPt(0 To 2) As Double ....startPt(0) = 1: startPt(1) = 1: startPt(2) = 0....endPt(0) = 5: endPt(1) = 5: endPt(2) = 0....Set lineObj = ThisDrawing.ModelSpace.AddLine(startPt, endPt) ....'Crée un cercle....Dim circleObj As AcadCircle....Dim centerPt(0 To 2) As Double....Dim radius As Double ....centerPt(0) = 3: centerPt(1) = 3: centerPt(2) = 0....radius = 1....Set circleObj = ThisDrawing.ModelSpace.AddCircle(centerPt, radius)....ZoomAll ....'Trouvez les points d'intersection entre la ligne et le cercle....Dim intPoints As Variant....intPoints = lineObj.IntersectWith(circleObj, acExtendNone) ....'Afficher tous les points d'intersection....Dim I As Integer, j As Integer, k As Integer....Dim str As String....If VarType(intPoints) <> vbEmpty Then........For I = LBound(intPoints) To UBound(intPoints)............str = "Intersection Point[" & k & "] is: " & intPoints(j) & "," & intPoints(j + 1) & ",........................ " & intPoints(j + 2)............MsgBox str, , "IntersectWith Exemple"............str = ""............I = I + 2............j = j + 3............k = k + 1........Next....End If End Sub VBA pour AutoCAD 2005 l'ACADien ! http://img124.exs.cx/img124/7999/start.gif
Tramber Posté(e) le 7 mars 2005 Posté(e) le 7 mars 2005 Et donc ? :casstet: Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
Pako Posté(e) le 7 mars 2005 Auteur Posté(e) le 7 mars 2005 Et donc Mais où es-t-on imagination ? Tramber ! On peux réutiliser ce bout de code pour réaliser un TRIM automatiser.... ou autre ! :exclam: amicalement, l'ACADien ! http://img124.exs.cx/img124/7999/start.gif
Tramber Posté(e) le 7 mars 2005 Posté(e) le 7 mars 2005 Tu as essayé vlax-curve-getpointFirstderiv (s'cuses, c'est du Vlisp, mais c'est une méthode valable en VBA, puisque les Vlispeurs doivent se taper de lire du VBA dans l'aide pour apprendre et progresser :mad: ) ? Ca te donne la dérivé en tout point d'une ligne, tu peux récupérer l'angle et tu as une tangente ! J'ai déjà fait pas mal d'intersectwith et je me suis fabriqué une fonction qui trouve l'intersection la plus proche d'un point en cas de plusieurs points trouvés.Comme ca je peux régler la méthode sur acExtendBoth les yeux presque fermés. Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
didier Posté(e) le 8 mars 2005 Posté(e) le 8 mars 2005 coucou oh ! Dieu que c'est laid :( on est pas là pour dire qui est meilleur que qui, bordel.merci Pako, sympa de filer les sources,merci Tramber aussi, tu nous a aidé aussi. amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Tramber Posté(e) le 8 mars 2005 Posté(e) le 8 mars 2005 J'Chais pas c'est lui qui crâne en copiant l'aide. Moi j'ai rien fait, je m'enfiche, j'chuis bientôt à 2000 messages, la la la la lalère. ;) :cool: [tu m'en veux pas Pako ?, c'est lâche, à l'heure qu'il est il doit faire dodo dans sa cabane au Canada] Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
bonuscad Posté(e) le 8 mars 2005 Posté(e) le 8 mars 2005 Bien que ce ne soit pas du VBA, Kamal a mis en ligne sur le forum de planetar (ex manandmachine)un ARX nommé QBRICK qui ma fois est digne d'intêret pour couper tout entité linéaire entre-elles. Je vous laisse découvrir par vous même et faire vos remarque si vous en avez!! Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
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