Aller au contenu

raccord polyligne


x_all

Messages recommandés

la commande raccord d'autocad est fort peu pratique avec les polylignes

 

peut etre qq1 saurai faire un lisp pour y remédier... je ne vise personne ...(mais je pense à qq1)

 

mes griefs...(a compléter peut etre?)

 

1- on ne peu pas fermer une polyligne avec cette commande. Alors ça ça me gonfle !! le dernier coin est a faire avec prolonger/ajuster, si on a le bol que les 2 segments ne sont pas a prolonger...

 

2- on ne peu faire un raccord qu'entre 2 segments avec un seul sommets intermédiaire... et si justement je veux supprimer ces sommets ou ces arc entre deux? (ça oblige aussi a faire un raccord r=0 puis le bon rayon quand on veux changer un rayon de courbure par exemple)

 

3- quand je fait une nappe de réseau, j'aimerai bien faire en 2 clic des raccord concentrique...

ç a dire, l'ai une série de polylignes décalées qui se raccordent par un angle, j'aimerai donner le rayon du raccord intérieur, les autres rayon serai calculés en ft de l'écart (variable bien sur) entre les polilygnes...

 

bon, autant le 1 et le 2 ça doit pas etre super difficile, autant le 3, je me dis que c'est peut etre un peu beaucoup.... pourtant ça serai bien cool peut etre l'objet d'une nouvelle fonction ou d'un chalange?

 

en tout cas, si qq1 a une routine qui traine sur son disque il a ma reconnaissance éternelle s'il la partage :)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

je ne vais pas répondre dans le sens du lisp mais dans le sens du DESSIN

 

je déconseille, mais je n'ai pas la science infuse, de travailler en polyligne,

je m'explique,

dans le temps, eh oui !!! on travaillait en deux étapes

et je le perpétue aujourd'hui

 

une première étape était le dessin au crayon, avec tous les essais-erreurs qui vont avec

et ce n'est que cette étape terminée qu'on passait à l'encre

 

en info, je travaille en objet simples, lignes, arcs, raccords classiques

et ce n'est qu'une fois mon périmètre figé que je passe le tout,

très facilement, en polyligne que je prends le soin de clore

 

je ne réponds pas à tes désidératas

mais je pense qu'il ne faut pas tout demander à l'info

le A de DAO c'est ASSISTE, mais quand même ...

 

 

amicalement

Lien vers le commentaire
Partager sur d’autres sites

hé oui.. moi aussi j'ai commencé au 2h avant le rotring (hou lala ça faisait longtemps que j'avais plus écrit ce mot )

 

mais je trace des réseaux VRD... sur un plan qui représente 3 Km de voirie, il y a plutôt intérêt à avoir des polylignes pour être sur qu'un bout et l'autre arrivent au bon endroit...(je ne clos pas à tous les coups ^^)

 

je comprend bien que cet outil (poly ou wpoly) n'est pas adapté à tout, mais il a aussi ses domaines réservé...

domaine dans les quels il me faudrait bien un petit coup de convivialité... :)

Lien vers le commentaire
Partager sur d’autres sites

je ne connaissait pas ce lisp, et il me sera surement utile mais pour autre chose :)

 

 

alors pourquoi le pts 1 est il gênant pour moi

la situation de départ:j'ai déja fini une polygone, mail il y a une modif... je trace une épure pour définir ma modif

 

http://img404.imageshack.us/img404/2595/pressepapiers1dl8.jpg

 

 

je fait ma coupure avec ajuster

 

http://img507.imageshack.us/img507/5210/pressepapiers2ek1.jpg

 

et avec raccord je ferme presque tout...

 

http://img507.imageshack.us/img507/1738/pressepapiers3jb2.jpg

 

 

 

en 2

 

http://img252.imageshack.us/img252/5217/pressepapiers4uz9.jpg

 

 

ben voila, ce serai bien de pouvoir en 2 clic de modifier l'AEP pour quelle suive EDF

la il m'en faut 6.. 4 pour transformer en angle sans raccor (avec shift) des deux arondi du pan coupé en un pour faire le coin a 90° mais bon 2 ou 6... de toute façon on en fait 5000 par jour... c'est finalement juste agassant ce message quand il vous saute au yeux... c'est de la gestion des erreur poussé a son paroxisme... il est ou le pb si c'est pas conssécutif? et puis c'est toujours le même message ...

 

 

 

 

pour le 3 c'est pluc compliqué

 

à la conception, je trace les réseaux avec des polylignes triée dans leurs calques avec des angles vif c plus facile a manipuler. mais il arrive un mnt ou les rayon de courbure des fourreaux doivent etre symbolisé

http://img525.imageshack.us/img525/5632/pressepapiers5rp9.jpg

et alors là, si ya un moyen de l'automatiser ce serai trop top en donant le rayon mini distribuer un rayon en fonction de l'écart entre les polyligne... le top

http://img525.imageshack.us/img525/6215/pressepapiers6jb8.jpg

bref une commande qui pourrai évoluer pour nous faciliter la vie au lieux de réagir comme avec autocad 12

Lien vers le commentaire
Partager sur d’autres sites

Un peu de patience x_all...

 

Voilà une routine qui, j'espère répond aux points 1 et 2

 

Elle fonctionne comme la commande RACCORD sur des polylignes uniquement (en mode Ajuster, sans les options Polyligne et Multiple).

Par rapport à la commande RACCORD, il est possible de faire des raccords sur des segments séparés par plusieurs autres segments et de clore une polyligne ouverte en prolongeant les segments sélectionnés.

Les largeurs (même non constantes) sont conservées. Le raccord adopte la largeur de fin du segment qui le précède et la largeur de départ de celui qui le suit.

 

PS : pour didier, ça nous fait une lame à gratter l'encre de bien plus de 6 lignes !!!

 

 

EDIT 1 : Ajout d'une option Multiple

 

EDIT 2 : Réparation d'un dysfonctionnement avec un rayon de 0

 

;;; PolyFillet -Gilles Chanteau- 23/10/2008
;;; Crée un raccord sur les polylignes
;;; Permet de raccorder des segments séparés par plusieurs segments
;;; Permet de clore en prolongeant les segments sélectionnés

(defun c:PolyFillet (/		 *error*     HighlightSegment
	     PolyFillet	 mult	     rad	 seg1
	     pline	 par1
	    )




 (vl-load-com)

;;;*************************************************************;;;

 (defun *error* (msg)
   (or	(= msg "Fonction annulée")
(princ (strcat "Erreur : " msg))
   )
   (vla-EndUndoMark
     (vla-get-ActiveDocument (vlax-get-acad-object))
   )
   (redraw)
   (princ)
 )

;;;*************************************************************;;;

 (defun HighlightSegment (pl par / p1 p2 n lst)
   (and
     (setq p1 (vlax-curve-getPointAtParam pl par))
     (setq p1 (trans p1 0 1))
     (setq p2 (vlax-curve-getPointAtParam pl (+ par 1)))
     (setq p2 (trans p2 0 1))
     (grvecs (list -255 p1 p2))
   )
 )

;;;*************************************************************;;;

 (defun PolyFillet (/	   seg1	 plst  n     sw	   ew	 swlst ewlst
	     blst  nlst	 seg2  par2  tmp   closed      a
	     b	   c	 d     s     cw	   ang	 dist  na
	     nb	   nc	 nd
	    )
   (setq plst (2d-coord->pt-lst (vlax-get pline 'Coordinates)))
   (setq n (1- (length plst)))
   (while (      (vla-getWidth pline n 'sw 'ew)
     (setq blst  (cons (vla-GetBulge pline n) blst)
    swlst (cons sw swlst)
    ewlst (cons ew ewlst)
    n	  (1- n)
     )
   )
   (and (= (vla-get-Closed pline) :vlax-true)
 (setq closed T)
 (setq plst (append plst (list (car plst))))
   )
   (if	(zerop (nth par1 blst))
     (progn
(HighlightSegment pline par1)
(if
  (and
    (setq seg2
	   (entsel "\nSélectionnez le second segment: ")
    )
    (equal pline (vlax-ename->vla-object (car seg2)))
    (setq par2 (fix (vlax-curve-getParamAtPoint
		      pline
		      (trans (osnap (cadr seg2) "_nea") 1 0)
		    )
	       )
    )
    (/= par1 par2)
  )
   (if (zerop (nth par2 blst))
     (progn
       (redraw)
       (vla-StartUndoMark
	 (vla-get-ActiveDocument (vlax-get-acad-object))
       )
       (and (		    (setq tmp  par1
		  par1 par2
		  par2 tmp
	    )
       )
       (setq a (nth par1 plst)
	     b (nth (1+ par1) plst)
	     c (nth par2 plst)
	     d (nth (1+ par2) plst)
       )
       (if (setq s (inters a b c d nil))
	 (progn
	   (cond
	     ((and (equal (vec1 a b) (vec1 a s) 1e-9)
		   (equal (vec1 d c) (vec1 d s) 1e-9)
	      )
	      (setq cw	  (clockwise-p a s d)
		    ang	  (/ (ang				       (if cw
				 (- (angle d c) (angle a b))
				 (- (angle a b) (angle d c))
			       )
			     )
			     2.0
			  )
		    dist  (/ (* rad (cos ang)) (sin ang))
		    nb	  (polar s (angle b a) dist)
		    nc	  (polar s (angle c d) dist)
		    plst  (append (sublist plst 0 (1+ par1))
				  (list nb nc)
				  (sublist plst (1+ par2) nil)
			  )
		    swlst (append (sublist swlst 0 (1+ par1))
				  (list (nth par1 ewlst))
				  (sublist swlst par2 nil)
			  )
		    ewlst (append (sublist ewlst 0 (1+ par1))
				  (list (nth (+ 2 par1) swlst))
				  (sublist ewlst par2 nil)
			  )
		    ang	  (/ (- (/ pi 2) ang) 2.0)
		    blst  (append
			    (sublist blst 0 (1+ par1))
			    (list
			      (if cw
				(- (/ (sin ang) (cos ang))
				)
				(/ (sin ang) (cos ang))
			      )
			    )
			    (sublist blst par2 nil)
			  )
	      )
	      (and closed
		   (setq plst (reverse (cdr (reverse plst))))
	      )
	      (vlax-put	pline
			'Coordinates
			(apply 'append plst)
	      )
	      (setq n 0)
	      (mapcar
		(function
		  (lambda (x1 x2 x3)
		    (vla-setBulge pline n x1)
		    (vla-setWidth pline n x2 x3)
		    (setq n (1+ n))
		  )
		)
		blst
		swlst
		ewlst
	      )
	      (vla-update pline)
	     )
	     ((and (equal (vec1 b a) (vec1 b s) 1e-9)
		   (equal (vec1 c d) (vec1 c s) 1e-9)
	      )
	      (setq cw	  (clockwise-p c s b)
		    ang	  (/ (ang				       (if cw
				 (- (angle b a) (angle c d))
				 (- (angle c d) (angle b a))
			       )
			     )
			     2.0
			  )
		    dist  (/ (* rad (cos ang)) (sin ang))
		    na	  (polar s (angle a b) dist)
		    nd	  (polar s (angle d c) dist)
		    plst  (append
			    (list na)
			    (sublist plst
				     (1+ par1)
				     (- par2 par1)
			    )
			    (list nd)
			  )
		    swlst (append
			    (sublist swlst
				     par1
				     (if closed
				       (- par2 par1 -2)
				       (- par2 par1 -1)
				     )
			    )
			    (list (nth par2 ewlst))
			  )
		    ewlst (append
			    (sublist ewlst
				     par1
				     (if closed
				       (- par2 par1 -2)
				       (- par2 par1 -1)
				     )
			    )
			    (list (car swlst))
			  )
		    ang	  (/ (- (/ pi 2) ang) 2.0)
		    blst  (append
			    (sublist blst par1 (- par2 par1 -1))
			    (list
			      (if cw
				(- (/ (sin ang) (cos ang))
				)
				(/ (sin ang) (cos ang))
			      )
			    )
			  )
	      )
	      (vlax-put	pline
			'Coordinates
			(apply 'append plst)
	      )
	      (vla-put-Closed pline :vlax-true)
	      (setq n 0)
	      (mapcar
		(function
		  (lambda (x1 x2 x3)
		    (vla-setBulge pline n x1)
		    (vla-setWidth pline n x2 x3)
		    (setq n (1+ n))
		  )
		)
		blst
		swlst
		ewlst
	      )
	      (vla-update pline)
	     )
	     (T (princ "\nSegments divergents"))
	   )
	 )
	 (princ "\nSegments parallèles")
       )
       (vla-EndUndoMark
	 (vla-get-ActiveDocument (vlax-get-acad-object))
       )
     )
     (princ "\nSegment non rectiligne.")
   )
  (progn
    (redraw)
    (princ "\nSélection non valide.")
  )
)
     )
     (princ "\nSegment non rectiligne.")
   )
   (if	mult
     (if
(setq seg1
       (entsel
	 "\nSélectionnez un premier segment de polyligne: "
       )
)
 (if
   (not
     (and
       (equal pline (vlax-ename->vla-object (car seg1)))
       (setq par1 (fix (vlax-curve-getParamAtPoint
			 pline
			 (trans (osnap (cadr seg1) "_nea") 1 0)
		       )
		  )
       )
     )
   )
   (princ "\nSélection non valide.")
 )
     )
   )
 )

;;;*************************************************************;;;

 (setq rad (getvar "FILLETRAD"))
 (princ (strcat "\nParamètre courant\tRayon = " (rtos rad)))
 (while (not (vl-consp seg1))
   (initget 1 "Multiple Rayon")
   (setq seg1
   (entsel
     "\nSélectionnez un premier segment de polyligne ou [Multiple/Rayon]: "
   )
   )
   (cond
     ((= seg1 "Multiple") (setq mult T))
     ((= seg1 "Rayon")
      (if (setq
     rad (getdist (strcat "\nSpécifiez le rayon du raccord 				  (rtos rad)
			  ">: "
		  )
	 )
   )
 (setvar "FILLETRAD" rad)
 (setq rad (getvar "FILLETRAD"))
      )
     )
   )
 )
 (if
   (and
     (setq pline (vlax-ename->vla-object (car seg1)))
     (= (vla-get-ObjectName pline) "AcDbPolyline")
     (setq par1 (fix (vlax-curve-getParamAtPoint
		pline
		(trans (osnap (cadr seg1) "_nea") 1 0)
	      )
	 )
     )
   )
    (if mult
      (progn
 (setvar "ERRNO" 0)
 (while (/= (Getvar "ERRNO") 52) (PolyFillet))
      )
      (PolyFillet)
    )
    (princ "\nSélection non valide.")
 )
 (princ)
)

;;;********************** SOUS ROUTINES ************************;;;

;;; 2d-coord->pt-lst
;;; Convertit une liste de coordonnées 2D en liste de points 2D
;;; (2d-coord->pt-lst '(1.0 2.0 3.0 4.0)) -> ((1.0 2.0) (3.0 4.0))

(defun 2d-coord->pt-lst	(lst)
 (if lst
   (cons (list (car lst) (cadr lst))
  (2d-coord->pt-lst (cddr lst))
   )
 )
)

;;;*************************************************************;;;

;;; VEC1
;;; Retourne le vecteur normé (1 unité) de sens p1 p2
;;;
;;; Arguments : deux points

(defun vec1 (p1 p2)
 ((lambda (d)
    (if (not (zerop d))
      (mapcar (function (lambda (x1 x2) (/ (- x2 x1) d))) p1 p2)
    )
  )
   (distance p1 p2)
 )
)

;;;*************************************************************;;;

;;; Clockwise-p
;;; Retourne T si les points p1 p2 et p3 tournent dans le sens horaire

(defun clockwise-p (p1 p2 p3)
 ()

;;;*************************************************************;;;

;;; Ang;;; Retourne l'angle, à 2*k*pi près, compris entre 0 et 2*pi

(defun ang  (if (and (    ang
   (ang  )
)

;;;*************************************************************;;;

;;; SUBLIST
;;; Retourne une sous-liste
;;;
;;; Arguments
;;; lst : une liste
;;; start : l'index de départ de la sous liste (premier élément = 0)
;;; leng : la longueur (nombre d'éléments) de la sous-liste (ou nil)
;;;
;;; Exemples :
;;; (sublist '(1 2 3 4 5 6) 2 2) -> (3 4)
;;; (sublist '(1 2 3 4 5 6) 2 nil) -> (3 4 5 6)

(defun sublist (lst start leng / n r)
 (if (or (not leng) (    (setq leng (- (length lst) start))
 )
 (setq n (+ start leng))
 (while (    (setq r (cons (nth (setq n (1- n)) lst) r))
 )
) 

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Avec l'ancienne version de PolyFillet, quand on faisait un raccord de rayon 0 (pour clore une polyligne ou supprimer des segments intermédiaires, la demande de x_all) la routine superposait 2 sommets (vertex) sur le "coin" créé.

Ça ne se voit pas (à moins de "scanner" les sommets dans la fenêtre de propriété) mais c'est pas très "propre".

C'est réparé ;)

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

PWA !!!!!

 

je m'éloigne du forum le temps d'une charrette "permis de construire" et que vois je à mon retour?

 

superbe extra méga top !!!!!

je vais faire un bouton... mieux, je vais changer la définition de l'icône raccord !!!

 

les superlatifs me manque pour exprimer les crises de nerf que je vais m'éviter grâce à toi...

encore une fois, comment te remercier?

 

bon si tu passe un jour par mes alpages haut provençaux ça se règlera au restau !!!

 

mais avec les services que tu rends à tlm ici, tu va te payer un tour de France à pas cher toi :)

 

 

Lien vers le commentaire
Partager sur d’autres sites

Un premier jet pour des raccords concentriques.

 

On sélectionne les polylignes par trajet à partir d'un point à l'intérieur du coin.

Les segments doivent être parallèles à ceux de la polyligne la plus à l'intérieur (référence).

 

;;; CONCENTRIC (gile)
;;; Crée des raccords concentriques sur des segments de polylignes parallèles

(defun c:concentric (/	     *error* HighlightSegment	     getSegment
	     rad     p1	     p2	     ss1     vdir    lst1
	     p3	     ss2     lst1    seg1    seg2    a
	     b	     c	     d	     s	     ang     cen
	    )
 (vl-load-com)

 (setq rad (getvar "FILLETRAD"))

;;;*************************************************************;;;

 (defun *error* (msg)
   (or	(= msg "Fonction annulée")
(princ (strcat "Erreur : " msg))
   )
   (setvar "FILLETRAD" rad)
   (redraw)
   (princ)
 )

;;;*************************************************************;;;

 (defun HighlightSegment (pl par / p1 p2 n lst)
   (and
     (setq p1 (vlax-curve-getPointAtParam pl par))
     (setq p1 (trans p1 0 1))
     (setq p2 (vlax-curve-getPointAtParam pl (+ par 1)))
     (setq p2 (trans p2 0 1))
     (grvecs (list -255 p1 p2))
   )
 )

;;;*************************************************************;;;

 (defun getSegment (pl pt / pa p1 p2)
   (if
     (and
(setq pa (fix (vlax-curve-getParamAtPoint pl pt)))
(setq p1 (vlax-curve-getPointAtParam pl pa))
(setq p2 (vlax-curve-getPointAtParam pl (1+ pa)))
     )
      (list p1 p2)
   )
 )

;;;*************************************************************;;;

 (princ (strcat "\nParamètre courant\tRayon = " (rtos rad)))
 (while (not (vl-consp p1))
   (initget 1 "Rayon")
   (setq
     p1 (getpoint
   "\nCliquez un point à l'intérieur du coude ou [Rayon]: "
 )
   )
   (if	(= p1 "Rayon")
     (if (setq
    rad	(getdist (strcat "\nSpécifiez le rayon du raccord 				 (rtos rad)
			 ">: "
		 )
	)
  )
(setvar "FILLETRAD" rad)
(setq rad (getvar "FILLETRAD"))
     )
   )
 )
 (if
   (and
     (setq p2 (getpoint p1 "\nSélectionnez une branche (Trajet): "))
     (setq ss1 (ssget "_F" (list p1 p2) '((0 . "LWPOLYLINE"))))
   )
    (progn
      (setq vdir (getvar "VIEWDIR"))
      (setq lst1
      (mapcar
	(function
	  (lambda (x)
	    (list (cadr x)
		  (vlax-curve-getClosestPointToProjection
		    (cadr x)
		    (cadr (cadddr x))
		    vdir
		  )
	    )
	  )
	)
	(ssnamex ss1)
      )
      )
      (foreach	n lst1
 (HighlightSegment
   (car n)
   (fix (vlax-curve-getParamAtPoint (car n) (cadr n)))
 )
      )
      (if
 (and
   (setq p3
	  (getpoint p1 "\nSélectionnez l'autre branche (Trajet): ")
   )
   (setq ss2 (ssget "_F" (list p1 p3) '((0 . "LWPOLYLINE"))))
   (setq vdir (getvar "VIEWDIR"))
   (setq lst2
	  (mapcar
	    (function
	      (lambda (x)
		(list (cadr x)
		      (vlax-curve-getClosestPointToProjection
			(cadr x)
			(cadr (cadddr x))
			vdir
		      )
		)
	      )
	    )
	    (ssnamex ss2)
	  )
   )
   (setq lst1 (vl-remove-if-not
		(function
		  (lambda (x)
		    (assoc (car x) lst2)
		  )
		)
		lst1
	      )
   )
 )
  (progn
    (redraw)
    (setq seg1 (getsegment (caar lst1) (cadar lst1))
	  seg2 (getsegment (caar lst2) (cadar lst2))
    )
    (mapcar
      (function (lambda (s v) (set s v)))
      '(a b c d)
      (append seg1 seg2)
    )
    (if	(setq s (inters a b c d nil))
      (progn
	(setq ang (/ (ang			       (if (clockwise-p a s d)
			 (- (angle d c) (angle a b))
			 (- (angle a b) (angle d c))
		       )
		     )
		     2.0
		  )
	      cen (polar s
			 (/ (+ (angle s a) (angle s d)) 2.0)
			 (/ rad (sin ang))
		  )
	)
	(vl-cmdf "_.fillet"
		 "_nea"
		 (trans (cadar lst1) 0 1)
		 "_nea"
		 (trans (cadar lst2) 0 1)
	)
	(foreach n (cdr lst1)
	  (if
	    (and
	      (apply 'parallel-p
		     (append (getSegment (car n) (cadr n))
			     seg1
		     )
	      )
	      (apply 'parallel-p
		     (append (getSegment
			       (car n)
			       (cadr (assoc (car n) lst2))
			     )
			     seg2
		     )
	      )
	    )
	     (progn
	       (setvar
		 "FILLETRAD"
		 (distance
		   cen
		   (vlax-curve-getClosestPointTo (car n) cen)
		 )
	       )
	       (vl-cmdf
		 "_.fillet"
		 "_nea"
		 (trans (cadr n) 0 1)
		 "_nea"
		 (trans (cadr (assoc (car n) lst2)) 0 1)
	       )
	     )
	  )
	)
	(setvar "FILLETRAD" rad)
      )
      (princ "\nSegments parallèles.")
    )
  )
      )
    )
    (princ "\nAucune polyligne sélectionnée.")
 )
 (princ)
)

;;;********************** SOUS ROUTINES ************************;;;

;; PARALLELP
;; Retourne T si les segments p1 p2 et p3 p4 sont parallèles
;;
;; Arguments : quatre points

(defun parallel-p (p1 p2 p3 p4)
 (equal '(0 0 0)
 (v^v (mapcar '- p1 p2) (mapcar '- p3 p4))
 1e-9
 )
)

;;;*************************************************************;;;

;; V^V
;; Retourne le produit vectoriel (vecteur) de deux vecteurs
;;
;; Arguments : deux vecteurs

(defun v^v (v1 v2)
 (list	(- (* (cadr v1) (caddr v2)) (* (caddr v1) (cadr v2)))
(- (* (caddr v1) (car v2)) (* (car v1) (caddr v2)))
(- (* (car v1) (cadr v2)) (* (cadr v1) (car v2)))
 )
)

;;;*************************************************************;;;

;;; Clockwise-p
;;; Retourne T si les points p1 p2 et p3 tournent dans le sens horaire

(defun clockwise-p (p1 p2 p3)
 ()

;;;*************************************************************;;;

;;; Ang;;; Retourne l'angle, à 2*k*pi près, compris entre 0 et 2*pi

(defun ang  (if (and (    ang
   (ang  )
) 

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

YES !!!!!!!

 

concentric est au top !!!

je suis en train d'essayer de lire le code pour comprendre comment ça marche car ça marche super trop bien :)

 

pour polyfilet, je suis moins enthousiaste... effectivement, çe n'est pas la panacée universelle... ma commande raccord ne va pas disparaitre du jour au lendemain... mais c'est deja super cool de supprimer les rayons intermédiaires quand il sont au milieux ... je conserve mon 'ctrl R' pour raccord, et je met polyfilet en 'shift ctrl R' comme ça j'ai les deux sous la main :)

 

merci ... merci ... merci ...merci ...merci ...merci ...merci ...merci ...merci ...merci ...merci ...merci ...merci ...merci ...merci ...merci ...merci ...merci ...merci ...merci ...merci ...merci ...merci ...merci ...merci ...merci ...

 

(ça change les PASCONTANT de cricri :) )

 

 

 

 

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

bonjour,

quelques soucis à utiliser concentric.

 

"On sélectionne les polylignes par trajet à partir d'un point à l'intérieur du coin.

Les segments doivent être parallèles à ceux de la polyligne la plus à l'intérieur (référence)."

j'ai du mal avec la procedure.( la fatigue peut etre...)

 

merci d'avance

 

Lien vers le commentaire
Partager sur d’autres sites

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é