Aller au contenu

Fort en Pline et LWpline ? ?


Messages recommandés

Posté(e)

Bonjour, ou bonsoir, à tous...

 

Voilà, j'essai de sortir l'angle ( ou vertex je pense) d'un segment d'une polyligne en cliquant sur celui-ci... Personne ne peut me répondre ! ! ! Et en VBA ? ! ? ! C'est impossible ? ou je suis trop bête ? ? ?

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Bonsoir.

 

Sélection de la polylige en identifiant le point de sélection.

Copier la polyligne si besoin.

Décomposer la polyligne.

Renvoyer la valeur de l'angle du segment correspondant au point de sélection.

 

Le tout en visual. :)

 

nazemrap

 

[Edité le 21/3/2006 par nazemrap]

Posté(e)

Merci pour la réponse, nazemrap .

Mais :

1. Pourquoi la copier ?

2. Pourquoi la décomposer

3. Comment récupérer le segment choisi (je clique une polyligne ..

4. Comment effacer les segments de lignes ? ?

 

Je sais ça fait beaucoup de question, mais je nage et je n'ai qu'une vague idée de ce développement, je rame souvent longtemp pour une bétise... L'arbre me cache souvent la forêt...

 

Merci ...

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Bonsoir.

 

Je ne suis pas très efficace en programation vb.

Mon soucis est d'arriver à un résultat.

La copie de la polyligne se justifie pour la conserver après avoir décomposer la première, sinon elle n' éxisterait plus.

Elle est décomposée pour récupérer le segment souhaité.

Le segment est identifié par la sélection effectuée qui insère un point.

Attention le mode d'accrochage "proche" ou autre est utilisé pour la sélection, cela garantit que le point est sur le segment

La méthode delete efface les segments.

la valeur de l'angle est renvoyée en degré.

 

Je joins le fichier exemple.

 

'renvoi l'angle d'un segment de polyligne

Public Sub truc()

 

Dim objetselection As AcadEntity

Dim polyligne, copiepolyligne As AcadLWPolyline

Dim pointdeselection As Variant

Dim coordodeselection(0 To 2) As Double

Dim explosepoly As Variant

Dim point As AcadPoint

Dim intpoints As Variant

Dim ligne As AcadLine

 

'NB l'accrochage "proche" doit être utilisé pendant la sélection

'Récupère la polyligne

ThisDrawing.Utility.GetEntity objetselection, pointdeselection, "Sélectionnez la polyligne !"

Set polyligne = objetselection

 

'Récupère les coordonnées du point de sélection

coordodeselection(0) = pointdeselection(0): coordodeselection(1) = pointdeselection(1)

 

'Insère un point

Set point = ThisDrawing.ModelSpace.AddPoint(pointdeselection)

 

'Decompose la polyligne

explosepoly = polyligne.Explode

 

'Boucle sur les objets résultants

Dim I As Integer

For I = 0 To UBound(explosepoly)

If explosepoly(I).ObjectName = "AcDbLine" Then

Set ligne = explosepoly(I)

'Teste l'intersection avec le point

intpoints = ligne.IntersectWith(point, acExtendNone)

If VarType(intpoints) <> vbEmpty Then

If UBound(intpoints) = 2 Then

'renvoi de la valeur de l'angle en degré

MsgBox ligne.Angle * (180 / 3.141589)

End If

End If

End If

Next

ligne.Delete

point.Delete

 

End Sub

Posté(e)

Merci mille fois nazemrap,

 

J'essai tout de suite...

 

Mais je me demande si pour des macros de ce type, je ne devrai pas me mettre au Lisp ou VisualLisp ? ?

Je pense qu'il serait plus judicieux, puisque c'est uniquement pour rester dans AutoCad... Non ?

 

En tous cas... Merci encore...

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Bonjour.

 

Je pense que le Lisp est en effet plus performant.

Mais je ne suis qu'un bricoleur, et j'aime bien le côté 'bout de ficelle" du VBA.

Tu me dis si ça marche !?

 

nazemrap

Posté(e)

Ok, j'ai regarder mais tout plante toujours la première fois. Mais c'est normal, Je dois vérifier si l'entité cliquée est bien une AcadLWPolyline, sinon, la transformée en AcadLWPolyline... Non ?

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Si tu veux te tourner vers une solution en lisp, regardes ce SUJET

 

Et une application construite avec cette dernière ICI

 

On peut en envisagé de toute sorte.

La fonction (near_vertex_arr) dans l'exemple d'application est appelé avec sousmission (valable) d'un objet. Elle retourne une liste de points définissant les sommets les plus proche et le facteur d'arrondi de ce segment

 

ex: (near_vertex_arr (car (entsel))) tu choisis un segment de polyligne et les infos te sont retournées que tu pourras exploiter pour ton développement (angle entre les 2 points retourné par exemple) ;)

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Posté(e)

Grand merci à toi, bonuscad, dont j'utilise déjà les macros inclues dans le MNS du même nom... je pense que je vais me mettre au LISP Mais -> ???????????

 

J'ai tenté une réponse, mais soit disant interdite dans le forum LISP.... Peut-être ne suis-je pas assez foncé dans la couleur de ma ceinture ? ! ? Mais j'expliquai que dans le forum "Discussion sur le LISP" Les exemples étaient bien, mais uniquement pour ce qui connaissait le LISP...

 

Mais BonusCad, Tu me sauve encore...Mais je n'ai pas encore remercié nazemrap pour la macro qu'il m'a filé... De petits bug encore, dû à mon incompétence... Mais celà devrai convenir... Je vais étudier de près le LISP... Et seul, car personne n'est capable d'aidé un "Novice/Novice"........

 

Comme personne n'est capable de dire à quoi servent les parenthèses dans le lisp, ni comment on apelle une fonction ou une macro depuis la ligne de commande AutoCAD ! ! Ou même !! !! !! Quel est le principe de la syntaxe du LISP ! !

 

Je me dirige donc vers la litérature ? ! ? ! ( donc, pourquoi ce super site) et je reviendrai quand j'en saurais plus pour aider mon prochain...

 

Merci encore à BonusCAD et à nazemrap....

 

Denis

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité