Aller au contenu

fonction vba pour une coupure


Messages recommandés

Posté(e)

Bonjour,

Malgré mes rechers, je ne trouve pas la commande vba qui permet de faire la meme chose que la fonction coupure sur autocad. Avec l'option des 2 points.

 

J'ai bien les points d'intersection avec les objets mais pas possibilité de couper sans faire une usine à gaz.

 

Confirmer vous l'utilisation de l'usine à gaz obligatoire (reperer les poitns d'intersection, spécifier le endpoint, le nouveau startpoint...)

 

Merci @vous

Vous voulez parler de génie climatique et poser vos questions alors venez par ici : http://le-genie-climatique.positifforum.com

Les loisirs créatifs vous tentent : http://pausebroderie.fr

Posté(e)

La méthode se nomme BREAK et si tu veux faire une coupure sur 1 seul point, il faut spécifier 2 fois le même.

 

En retour, tu obtiens les 2 entités.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

Merci de la reponse. Par contre je n'ai rien trouver sur cette methode dans l'aide vba.

 

Alors j'ai concocté ce truc un peu lourd mais bon

 

 
'Dessin cercle de la gaine
centerPoint(0) = coord_point(0): centerPoint(1) = coord_point(1): centerPoint(2) = coord_point(2)
radius = dist / 2#
Set cercle_1(0) = ThisDrawing.ModelSpace.AddCircle(centerPoint, radius)
cercle_1(0).Layer = reseau
cercle_1(0).Move centerPoint, coord_point_ccf
cercle_1(0).Rotate coord_point_bis, angle
cercle_1(0).Move coord_point_bis, pnt_axe

'Dessin de la diagonale 1
centerPoint(0) = d1: centerPoint(1) = coord_point(1): centerPoint(2) = coord_point(2)
coord_point(0) = 0
coord_point(1) = d1
coord_point(2) = 0
Set diag_1 = ThisDrawing.ModelSpace.AddLine(coord_point, centerPoint)
diag_1.Layer = reseau & "-mat"
diag_1.Rotate coord_point_bis, angle
diag_1.Move coord_point_bis, pnt_axe

'Tracé des 2 demi diagonales 1
intPoints = diag_1.IntersectWith(cercle_1(0), acExtendNone)
centerPoint(0) = intPoints(0): centerPoint(1) = intPoints(1): centerPoint(2) = intPoints(2)
point_diag = diag_1.StartPoint
Set diag_3 = ThisDrawing.ModelSpace.AddLine(point_diag, centerPoint)
diag_3.Layer = reseau & "-mat"
centerPoint(0) = intPoints(3): centerPoint(1) = intPoints(4): centerPoint(2) = intPoints(5)
point_diag = diag_1.EndPoint
Set diag_4 = ThisDrawing.ModelSpace.AddLine(point_diag, centerPoint)
diag_4.Layer = reseau & "-mat"
diag_1.Delete

 

En fait je dessine mon cercle, une diagonale et je récupère les points d'intersection et je redessine 2 droites avec les point de départ de la diag et point d'arrivé le pt d'intersection et pareil pour l'autre avec le point d'arrivé et l'autre point d'intersection et je fini par effacer la diagonale d'origine.

 

C'est un peu barbare mais ca marche.

 

Mais si la méthod ebreak peut etre plus rapide je veux bien essayer avec si possible un exemple.

Vous voulez parler de génie climatique et poser vos questions alors venez par ici : http://le-genie-climatique.positifforum.com

Les loisirs créatifs vous tentent : http://pausebroderie.fr

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é