[ recherche / creation script ] couper des polylines contenues entre deux polylines

  • Auteur de la discussion braabu
  • Date de début
B
braabu
Nouveau
bonjours,
je commence a coder un peu avec cambam, mes souvenirs de basic date de mon TO7 70 ... mais j'ai toute de même réussi a générer un profil en fonction des pièces que je veux usiner pour leu
r donner une forme sur Z. je cherche maintenant a réduire le temps d'usinage , mes polylines générés par mon script étant sur un surface plus grande que la forme que je v découpée.

il faudrait que j'arrive a découper les polylines du calque2 en suivant les polylines du calque 1 et pour finir ne conserver que les polylines utiles entre les deux polylines de découpe.

si l'un de vous a un exemple que je puisse étudier )

merci d'avance

braabu

Voir la pièce jointe test decoupe poly.rar
 
Dernière édition par un modérateur:
dh42
dh42
Compagnon
Salut,

En "manuel", on utiliserais la fonction "edition/couper" (Trim), soit la Cambam.cad.Polyline.PolylineTrim()

Public Shared Function PolylineTrim(ByVal p1 As Polyline, ByVal p2 As Polyline, ByVal tolerance As Double) As Polyline()

au vu des paramètres, on passe 2 polylignes en entrée et on récupère un tableau de polylignes en sortie ... donc il y faut faire une boucle pour gérer une découpe de plusieurs lignes, ensuite il faut déterminer lesquelles garder ... je n'ai pas d'exemple de cette fonction à te donner, jamais utilisé en ce qui me concerne.

++
David
 
dh42
dh42
Compagnon
Bon, j'ai trouvé, c'est une autre fonction ; je te met un exemple que je viens de faire en VB, il trace des polylignes test et les coupe ; attention, il faut que ta polyligne "outil" soit une polyligne fermée pour que ça marche.

++
David

 
B
braabu
Nouveau
c beau !!!! merci je sens que ca va marcher au poil !!

merci !!
 
dh42
dh42
Compagnon
Salut,

Pour que le in/out fonctionne, il est impératif que la polyligne qui sert à couper soit fermée, si c'est 2 lignes séparées comme sur ton premier dessin, ça ne marche pas, ou plutôt, ça ne marche qu'avec le "i" et ça ne supprime pas les polylignes en trop, ça se contente de les couper, d’où l’intérêt d'avoir une polyligne fermée comme outil, car CB supprimera effectivement les extérieurs ou les intérieurs, suivant que tu utilise "i" ou "o". (une polyligne ouverte n'a ni intérieur ni extérieur)

dans ton fichier en PJ, si le but et de ne garder que les lignes horizontales qui sont dans l'anneau, alors il faut s'y prendre en 2x, couper les polylignes avec le petit anneau, réglage sur "i" (intérieur), puis refaire de même avec les polylignes horizontales restantes et le grand anneau, mais cette fois en coupant à l'extérieur "o"

une autre solution, c'est de convertir tes 2 cercles en une région, dans ce cas si la région comprenant les 2 cercles est utilisée comme outil, tu peux faire la découpe en une seule fois et il ne reste rien à "nettoyer".

++
David
 
Dernière édition:
vieuxfraiseur
vieuxfraiseur
Compagnon
bonjour à tous,
intéressant ce post, je regarde cela de prés .

bonne continuation.
A+
 
dh42
dh42
Compagnon
Salut,

J'en ai un peu ch** mais j'ai trouvé comment créer une Region en VBscript.

ce script crée 2 cercles et 2 rectangles concentriques de type polyligne puis crée des regions à partir de ces 4 polylines.

La fonction Region.CreateFromPolylines() prends un tableau de Polylignes comme argument et retourne un tableau de Regions.
Le tableau de polylignes passé à la fonction ne doit pas contenir d'éléments vide, sinon la fonction retournera une erreur.

pour ceux que ça intéresse, je met des bouts de code ici
http://www.cambam.co.uk/forum/index.php?topic=3878.0


++
David
 

Sujets similaires

MegaHertz
Réponses
12
Affichages
560
Doctor_itchy
D
tyio
Réponses
58
Affichages
4 775
big bloc
B
N
Réponses
2
Affichages
539
nicovara
N
B
Réponses
12
Affichages
3 033
jeramenemafraise
J
dh42
Réponses
87
Affichages
21 037
rtlp14
R
E
Réponses
545
Affichages
208 902
Itus
Itus
Haut