PHILPHIL Posté(e) le 5 octobre 2012 Posté(e) le 5 octobre 2012 hello je ne sais pas si ca existe, soit en lisp sur le net, soit deja dans autocad un petit programme qui permetrait de connaitre les rayons, voir diametre, des arc de cercle qui constitue une polyligne en passant dessus, ou en selectionnant l'arc pour le moment pour connaitre , soit je met une cote, soit je decompose la polyligne a+ phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
Eric Posté(e) le 5 octobre 2012 Posté(e) le 5 octobre 2012 Une solution simple est de sélectionner la polyligne pour afficher les poignées. Puis de placer le curseur de la souris dans une des poignées de l'arc de cercle (sans cliquer) Et là le rayon s'affiche. NB : La saisie dynamique doit être activée pour que cela fonctionne Eric est formateur, revendeur sur AutoCAD LT, DraftSight, ZWCAD, SketchUp et PDF2CAD
VDH-Bruno Posté(e) le 5 octobre 2012 Posté(e) le 5 octobre 2012 Bonsoir, Une solution simple est de sélectionner la polyligne pour afficher les poignées.Puis de placer le curseur de la souris dans une des poignées de l'arc de cercle (sans cliquer)Et là le rayon s'affiche. Bien vue l’astuce Eric, ça me donnera peut être envie d’activer la saisie dynamique.. un petit programme qui permetrait de connaitre les rayons, voir diametre, des arc de cercle qui constitue une polyligne en passant dessus, ou en selectionnant l'arc Sinon comme je n’ai pas souvent eu l’occasion d’utiliser grread et que le défi ne me semblait pas très compliqué, voici un code qui devrait répondre à la demande et qui renvoi le rayon.Au passage j’ai très peu de mérite, j’ai pillé l’essentielle du code chez (gile) dans PolySegments téléchargeable sur cette page :http://cadxp.com/index.php?/topic/14427-les-lisp-de-gile/ Le code principal (defun c:rayon (/ gr ent pl par ray val) (vl-load-com) (prompt "Positionnez le pointeur sur les segments courbes des polylignes...") (while (= 5 (car (setq gr (grread t 13 2)))) (if (and (setq ent (nentselp (cadr gr))) (setq pl (vlax-ename->vla-object (car ent))) (= (vla-get-ObjectName pl) "AcDbPolyline") (setq par (fix (vlax-curve-getParamAtPoint pl (trans (osnap (cadr ent) "_nea") 1 0) ) ) ) (not (zerop (vla-getBulge pl par))) ) (progn (redraw) (HighlightSegment pl par) (setq ray (cadr (polyarc-data (vla-getBulge pl par) (vlax-curve-getPointAtParam pl par) (vlax-curve-getPointAtParam pl (+ par 1)) ) ) ) (cond ((equal ray val 1e-9)) (T (print (setq val ray))) ) ) ) ) (redraw) (princ) ) Les routines associées puisés chez (gile) ;;================================================================;; ;;; Polyarc-data ;;; Retourne la liste des données d'un arc de polyligne (centre rayon angle). (defun polyarc-data (bu p1 p2 / ang rad cen area cg) (setq ang (* 2 (atan bu)) rad (/ (distance p1 p2) (* 2 (sin ang)) ) cen (polar p1 (+ (angle p1 p2) (- (/ pi 2) ang)) rad ) ) (list cen (abs rad) ang) ) ;;================================================================;; ;; HighlightSegment ;; Met un segment de polyligne en surbrillance ;; ;; Arguments ;; pl : la polyligne (vla-object) ;; par : l'indice du segment (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)) (if (zerop (vla-getBulge pl par)) (grvecs (list -255 p1 p2)) (progn (setq n 0) (repeat 100 (setq lst (cons (trans (vlax-curve-getPointAtParam pl (+ n par)) 0 1) lst ) n (+ n 0.01) ) ) (grvecs (cons -255 (apply 'append (mapcar 'list lst (cdr lst)))) ) ) ) ) ) ;;================================================================;; Bon testA+ Apprendre => Prendre => Rendre
PHILPHIL Posté(e) le 6 octobre 2012 Auteur Posté(e) le 6 octobre 2012 hello bruno grand merci ca marche impec a+ phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
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