kohen.g Posté(e) le 16 juillet 2008 Posté(e) le 16 juillet 2008 Bonsoirj'ai ce LISPet j'aimerais rajouter une donnée en plus l'ep du calo comment faire ci dessous:Ce lisp me sert à habiller un axe et de lui donner un DN et Ep en 3D j'aimerais l'amélioré en y incluant l'eP DU CALO ;;; CURVE2PIPE -Gilles Chanteau- (gile) 07/04/07;;; Extrude un anneau (région) suivant le(s) chemin(s) spécifié(s).;;; (arc, cercle, ellipse, ligne, polyligne 2D 3D ou lw, spline plane);;; Spécifier les diamètres extérieurs et intérieurs et sélectionner le(s) chemin(s);;; Si la variable DELOBJ est supérieure à 0 les chemins sont supprimés.;;;;;; Révision 20/12/07;;; conservation des dernières valeurs entrées dans le dessin;;; ajout d'un raccourci : C2P (defun c:curve2pipe (/ Space ext_rad int_rad ss obj start ext_circ int_circ ext_reg int_reg norm ) (vl-load-com) (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object))) ) (or (vlax-ldata-get "Curve2Pipe" "dia") (vlax-ldata-put "Curve2Pipe" "dia" 50.0) ) (or (vlax-ldata-get "Curve2Pipe" "ep") (vlax-ldata-put "Curve2Pipe" "ep" 2.0) ) (setq Space (if (= 1 (getvar "CVPORT")) (vla-get-PaperSpace *acdoc*) (vla-get-ModelSpace *acdoc*) ) ) (if (setq ext_rad (getdist (strcat "\nDiamètre extérieur <" (rtos (vlax-ldata-get "Curve2Pipe" "dia")) ">: " ) ) ) (vlax-ldata-put "Curve2Pipe" "dia" ext-rad) (setq ext_rad (vlax-ldata-get "Curve2Pipe" "dia")) ) (setq ext_rad (/ ext_rad 2.0) int_rad ext_rad ) (while (<= ext_rad int_rad) (if (setq int_rad (getdist (strcat "\nÉpaisseur <" (rtos (vlax-ldata-get "Curve2Pipe" "ep")) ">: " ) ) ) (vlax-ldata-put "Curve2Pipe" "ep" int_rad) (setq int_rad (vlax-ldata-get "Curve2Pipe" "ep")) ) ) (if (setq ss (ssget '((-4 . " (0 . "ARC,CIRCLE,ELLIPSE,LINE,LWPOLYLINE") (-4 . " (0 . "POLYLINE") (-4 . " (-4 . "&") (70 . 112) (-4 . "NOT>") (-4 . "AND>") (-4 . " (0 . "SPLINE") (-4 . "&") (70 . 8) (-4 . "AND>") (-4 . "OR>") ) ) ) (progn (vla-StartUndoMark *acdoc*) (foreach path (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))) (setq obj (vlax-ename->vla-object path)) (setq start (vlax-curve-getPointAtParam obj (vlax-curve-getStartParam obj) ) ) (setq ext_circ (vla-addCircle Space (vlax-3d-Point start) ext_rad ) ) (setq int_circ (vla-addCircle Space (vlax-3d-Point start) (- ext_rad int_rad) ) ) (setq norm (vunit (vlax-curve-getFirstDeriv obj (vlax-curve-getStartParam obj) ) ) ) (vla-put-Normal ext_circ (vlax-3d-point norm)) (vla-put-Normal int_circ (vlax-3d-point norm)) (setq ext_reg (car (vlax-invoke Space 'addRegion (list ext_circ))) ) (setq int_reg (car (vlax-invoke Space 'addRegion (list int_circ))) ) (vla-Boolean ext_reg acSubtraction int_reg) (vla-addExtrudedSolidAlongPath Space ext_reg obj) (mapcar 'vla-delete (list ext_circ int_circ ext_reg)) (if (< 0 (getvar "DELOBJ")) (vla-delete obj) ) ) (vla-EndUndoMark *acdoc*) ) (princ "\nEntrée non valide.") ) (princ))
(gile) Posté(e) le 17 juillet 2008 Posté(e) le 17 juillet 2008 Salut, Je n'aurais pas le temps avant ce soir, en attendant tu peux toujours faire 2 fois la manip sur le même axe (variable DELOBJ à 0), ca permet de changer de calque entre les 2. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
(gile) Posté(e) le 24 juillet 2008 Posté(e) le 24 juillet 2008 Voilà ;;; CURVE2PIPE -Gilles Chanteau- (gile) 07/04/07 ;;; Extrude un anneau (région) suivant le(s) chemin(s) spécifié(s). ;;; (arc, cercle, ellipse, ligne, polyligne 2D 3D ou lw, spline plane) ;;; Spécifier les diamètres extérieurs et intérieurs et sélectionner le(s) chemin(s) ;;; Si la variable DELOBJ est supérieure à 0 les chemins sont supprimés. ;;; ;;; Révision 20/12/07 ;;; conservation des dernières valeurs entrées dans le dessin ;;; ajout d'un raccourci : C2P ;;; ;;; Révision 17/07/08 ;;; possibilité d'ajouter un isolant autour du tube (defun c:curve2pipe (/ Space ext_rad int_rad cal_rad ss obj start ext_circ int_circ cal_circ ext_reg int_reg cal_reg norm ) (vl-load-com) (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object))) ) (or (vlax-ldata-get "Curve2Pipe" "dia") (vlax-ldata-put "Curve2Pipe" "dia" 50.0) ) (or (vlax-ldata-get "Curve2Pipe" "ep") (vlax-ldata-put "Curve2Pipe" "ep" 2.0) ) (or (vlax-ldata-get "Curve2Pipe" "ca") (vlax-ldata-put "Curve2Pipe" "ca" 10.0) ) (setq Space (if (= 1 (getvar "CVPORT")) (vla-get-PaperSpace *acdoc*) (vla-get-ModelSpace *acdoc*) ) ) (if (setq ext_rad (getdist (strcat "\nDiamètre extérieur (rtos (vlax-ldata-get "Curve2Pipe" "dia")) ">: " ) ) ) (vlax-ldata-put "Curve2Pipe" "dia" ext-rad) (setq ext_rad (vlax-ldata-get "Curve2Pipe" "dia")) ) (setq ext_rad (/ ext_rad 2.0) int_rad ext_rad ) (while ( (if (setq int_rad (getdist (strcat "\nÉpaisseur (rtos (vlax-ldata-get "Curve2Pipe" "ep")) ">: " ) ) ) (vlax-ldata-put "Curve2Pipe" "ep" int_rad) (setq int_rad (vlax-ldata-get "Curve2Pipe" "ep")) ) ) (initget 4) (if (setq cal_rad (getdist (strcat "\nÉpaisseur de l'isolant (0 pour aucun) (rtos (vlax-ldata-get "Curve2Pipe" "ca")) ">: " ) ) ) (vlax-ldata-put "Curve2Pipe" "ca" cal_rad) (setq cal_rad (vlax-ldata-get "Curve2Pipe" "ca")) ) (if (ssget '((-4 . "[b] (0 . "ARC,CIRCLE,ELLIPSE,LINE,LWPOLYLINE") (-4 . "[b] (0 . "POLYLINE") (-4 . "[b] (-4 . "&") (70 . 112) (-4 . "NOT>") (-4 . "AND>") (-4 . "[b] (0 . "SPLINE") (-4 . "&") (70 . 8) (-4 . "AND>") (-4 . "OR>") ) ) (progn (vla-StartUndoMark *acdoc*) (vlax-for obj (setq ss (vla-get-activeSelectionSet *acdoc*)) (setq start (vlax-curve-getPointAtParam obj (vlax-curve-getStartParam obj) ) ) (setq ext_circ (vla-addCircle Space (vlax-3d-Point start) ext_rad ) ) (setq int_circ (vla-addCircle Space (vlax-3d-Point start) (- ext_rad int_rad) ) ) (setq cal_circ (vla-addCircle Space (vlax-3d-Point start) (+ ext_rad cal_rad) ) ) (setq norm (vunit (vlax-curve-getFirstDeriv obj (vlax-curve-getStartParam obj) ) ) ) (vla-put-Normal ext_circ (vlax-3d-point norm)) (vla-put-Normal int_circ (vlax-3d-point norm)) (vla-put-Normal cal_circ (vlax-3d-point norm)) (setq ext_reg (car (vlax-invoke Space 'addRegion (list ext_circ))) ) (setq int_reg (car (vlax-invoke Space 'addRegion (list int_circ))) ) (or (zerop cal_rad) (setq cal_reg (car (vlax-invoke Space 'addRegion (list cal_circ))) ) ) (if cal_reg (progn (vla-Boolean cal_reg acSubtraction (vla-copy ext_reg)) (vla-addExtrudedSolidAlongPath Space cal_reg obj) ) ) (vla-Boolean ext_reg acSubtraction int_reg) (vla-addExtrudedSolidAlongPath Space ext_reg obj) (mapcar 'vla-delete (list ext_circ int_circ cal_circ ext_reg) ) (and cal-reg (vla-delete cal_reg)) (if ( (vla-delete obj) ) ) (vla-delete ss) (vla-EndUndoMark *acdoc*) ) (princ "\nEntrée non valide.") ) (princ) ) (defun c:c2p () (c:curve2pipe)) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
kohen.g Posté(e) le 30 juillet 2008 Auteur Posté(e) le 30 juillet 2008 La modification de ce Pgm ne fonctionne pas il ne suit pas le chemin tu peux regarder stp
(gile) Posté(e) le 30 juillet 2008 Posté(e) le 30 juillet 2008 La modification de ce Pgm ne fonctionne pas il ne suit pas le chemin tu peux regarder stp :casstet: :casstet: :casstet: :casstet: :casstet: :casstet: :casstet: :casstet: Ça fonctionne très bien, es-tu sûr de l'avoir bien copié ? Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
kohen.g Posté(e) le 30 juillet 2008 Auteur Posté(e) le 30 juillet 2008 j'ai tout copier, il me demande le DN l'ep puis l'ep de l'isolant puis il me fait 3cercle c'est toutje comprends pas , je dois etre mauvais
kohen.g Posté(e) le 30 juillet 2008 Auteur Posté(e) le 30 juillet 2008 cela ne fonctionne toujour pas peux tu m'aider
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