Bigteddy Posté(e) le 5 avril 2004 Posté(e) le 5 avril 2004 Bonjour à tous ... Un petit renseignement qui me serais fort utile.... Est-il possible d'extruder en 3d sans passer par une polyligne 3d mais par une spline ??? Merci d'avance :)
Tramber Posté(e) le 5 avril 2004 Posté(e) le 5 avril 2004 Oui. La spline doit être absolument contenue dans un seul plan.Et le départ doit être vraiment tangent. Avec Ces 2 conditions, on peut extruder selon une spline. Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
Bigteddy Posté(e) le 5 avril 2004 Auteur Posté(e) le 5 avril 2004 Donc dans le cas d'une main courante d'escalier avec un quart tournant en arrondi ,ce n'est pas possible .... :casstet:
Tramber Posté(e) le 5 avril 2004 Posté(e) le 5 avril 2004 Eh non, Il te faut d'autres logiciels. Ou alors te résoudre à la poly3D, mais ca peut-être pas mal qd même, ca va dépendre de ta précision. Il faut faire un prog ou + simplement un script pour faire une bonne poly 3D. Ou alors faire une spirale en surfaces et il y de nombreuses routines sur Internet et un peu sur CADXP. Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
Tramber Posté(e) le 5 avril 2004 Posté(e) le 5 avril 2004 Deux liens: 1 2 Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
Bigteddy Posté(e) le 5 avril 2004 Auteur Posté(e) le 5 avril 2004 :D Merci bcp pour cette aide, je vais recherche sur le net pour des routines, et encore merci pour les liens !!!!
lecrabe Posté(e) le 5 avril 2004 Posté(e) le 5 avril 2004 Chers amis Pour les trucs en "spirale" 2D ou 3D (main courante par exemple), j'utilise la routine ci-après ... Ce n'est pas une routine d'extrusion !!! Cela me sert aussi de trame en spirale pour les batiments et espaces verts. Pourquoi ne pas utiliser cette routine AutoLisp (provenance Autodesk) qui fonctionne parfaitement :- SPIRAL = Génération d'une polyligne traditionnelle (que l'on SPLINE après)- 3DSPIRAL = Génération d'une 3DPOLY (idem) Pourquoi se casser la tête, quand on a tout ce qui faut ... On peut même faire un DIVISER/MESURER d'un bloc / symbole 2D/3D ultérieurement !!! Allez au boulot, Bye ;;; --------------------------------------------------------------------------;;;; SPIRAL.LSP;;; Copyright © 1992 by Autodesk, Inc.;;;;;; Permission to use, copy, modify, and distribute this software ;;; for any purpose and without fee is hereby granted, provided ;;; that the above copyright notice appears in all copies and that ;;; both that copyright notice and this permission notice appear in ;;; all supporting documentation.;;;;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED;;; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR;;; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.;;; --------------------------------------------------------------------------;;;;;;; DESCRIPTION;;; -----------;;;;;; This is a programming example.;;;;;; Designed and implemented by Kelvin R. Throop in January 1985;;;;;; This program constructs a spiral. It can be loaded and called ;;; by typing either "spiral", "3dspiral" or the following:;;; (cspiral ;;; ;;; ).;;;;;; --------------------------------------------------------------------------; (defun myerror (s) ; If an error (such as CTRL-C) occurs ; while this command is active... (if (/= s "Function cancelled") (princ (strcat "\nErreur : " s)) ) (setvar "cmdecho" ocmd) ; Restore saved modes (setvar "blipmode" oblp) (setq *error* olderr) ; Restore old *error* handler (princ)) (defun cspiral (ntimes bpoint hfac lppass strad vfac / ang dist tp ainc dhinc dvinc circle dv) (setvar "blipmode" 0) ; turn blipmode off (setvar "cmdecho" 0) ; turn cmdecho off (setq circle (* 3.141596235 2)) (setq ainc (/ circle lppass)) (setq dhinc (/ hfac lppass)) (if vfac (setq dvinc (/ vfac lppass))) (setq ang 0.0) (if vfac (setq dist strad dv 0.0) (setq dist 0.0) ) (if vfac (command "_3dpoly") ; start spiral ... (command "_pline" bpoint) ; start spiral from base point and... ) (repeat ntimes (repeat lppass (setq tp (polar bpoint (setq ang (+ ang ainc)) (setq dist (+ dist dhinc)) ) ) (if vfac (setq tp (list (car tp) (cadr tp) (+ dv (caddr tp))) dv (+ dv dvinc) ) ) (command tp) ; continue to the next point... ) ) (command "") ; until done. (princ)) ;;;;;; Interactive spiral generation;;; (defun C:SPIRAL (/ olderr ocmd oblp nt bp cf lp) (setq olderr *error* *error* myerror) (setq ocmd (getvar "cmdecho")) (setq oblp (getvar "blipmode")) (setvar "cmdecho" 0) (initget 1) ; bp must not be null (setq bp (getpoint "\nCentre de la spirale : ")) (initget 7) ; nt must not be zero, neg, or null (setq nt (getint "\nNombre de rotations : ")) (initget 3) ; cf must not be zero, or null (setq cf (getdist "\nCroissance par tour : ")) (initget 6) ; lp must not be zero or neg (setq lp (getint "\nNombre de Points par tour : ")) (cond ((null lp) (setq lp 30))) (cspiral nt bp cf lp nil nil) (setvar "cmdecho" ocmd) (setvar "blipmode" oblp) (setq *error* olderr) ; Restore old *error* handler (princ) ) ;;;;;; Interactive spiral generation;;; (defun C:3DSPIRAL (/ olderr ocmd oblp nt bp hg vg sr lp) (setq olderr *error* *error* myerror) (setq ocmd (getvar "cmdecho")) (setq oblp (getvar "blipmode")) (setvar "cmdecho" 0) (initget 1) ; bp must not be null (setq bp (getpoint "\nCentre de la spirale : ")) (initget 7) ; nt must not be zero, neg, or null (setq nt (getint "\nNombre de rotations : ")) (initget 7) ; sr must not be zero, neg, or null (setq sr (getdist bp "\nRayon de depart : ")) (initget 1) ; cf must not be zero, or null (setq hg (getdist "\nCroissance horizontale par tour : ")) (initget 3) ; cf must not be zero, or null (setq vg (getdist "\nCroissance verticale par tour : ")) (initget 6) ; lp must not be zero or neg (setq lp (getint "\nNombre de Points par rotation : ")) (cond ((null lp) (setq lp 30))) (cspiral nt bp hg lp sr vg) (setvar "cmdecho" ocmd) (setvar "blipmode" oblp) (setq *error* olderr) ; Restore old *error* handler (princ) ) ;;; --------------------------------------------------------------------------;(princ "\n\tC:SPIRAL et C:3DSPIRAL chargees. ")(princ "\n\tPour executer, taper : SPIRAL ou 3DSPIRAL.")(princ) Autodesk Expert Elite Team
Tramber Posté(e) le 5 avril 2004 Posté(e) le 5 avril 2004 Euh, gloups, j'aurais du dire HELICE et pas SPIRAL :casstet: Banane ! Ceci dit, ce lisp est super. Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
lecrabe Posté(e) le 5 avril 2004 Posté(e) le 5 avril 2004 ReBonjour Mr Tramber Idée d'utilisation FUN de cette routine SPIRAL / 3DSPIRAL ... 3DSPIRAL va créer une 3DPOLY (Spirale 3D) que l'on va Spliner ... En fait le parcours généré s'appuie sur la surface d'un cone ou tronc de cone : OK ! Donc on fait un DIVISER / MESURER d'un bloc / symbole 3D, une sphère par exemple et l'on obtient les boules d'un sapin de Noël placées certes "régulièrement" mais bon rien n'empêche qq "Effacer / Déplacer" ... Si vous avez des idées, n'hésitez pas à en faire profiter la communauté CADXPienne !!! Bye PS: N'oublions pas une EXTRUSION qui suit le parcours de la spirale 2D ou 3D !!! Autodesk Expert Elite Team
didier Posté(e) le 5 avril 2004 Posté(e) le 5 avril 2004 hello, je salue tout le mondemerci beaucoup, à toi LeCrabeje n'avais gardé qu'un version 2D du lispçà me donne des idées ...ciaoencore merci. Éternel débutant... Mon site perso : Programmer dans AutoCAD
Tramber Posté(e) le 6 avril 2004 Posté(e) le 6 avril 2004 Pauvre Bigteddy qui voulait une rampe d'escalier va avoir un escargot et un sapin de Noel Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
Bigteddy Posté(e) le 7 avril 2004 Auteur Posté(e) le 7 avril 2004 :D Ce n'est pas grave, toute chose est bonne à prendre, apprendre et à découvrir.Encore merci pour toutes ces choses. Sinon, je voulais quand même vous tenir au courant de ce que j'ai découvert:- J'ai réalisé une spline, - je l'ai divisé en un grand nombre de segment afin d'avoir un bon lissage de mon élément,- J'ai tracé une polyligne 3d passant par tous mes points,- J'ai créé ma section de rampe,- et je l'ai extruder en suivant le chemin de la polyligne 3d :) J'éspère que c'est compréhensible.... pour le moment j'en suis resté là..... Encore merci @ tous
culnuteurdebase Posté(e) le 3 avril 2006 Posté(e) le 3 avril 2006 Comment t'as fais avec ta ploy 3D? Normalement on ne peut extruder qu'une poly D ... Y a un truc ?
(gile) Posté(e) le 3 avril 2006 Posté(e) le 3 avril 2006 On peut extruder en utilisant une polyligne 3D comme chemin, c'est avec une spline 3D que çà ne marche pas. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
culnuteurdebase Posté(e) le 4 avril 2006 Posté(e) le 4 avril 2006 Pas bête du tout ... Ca pourrait me servir ca ... à parler sans savoir ... Forcement on dit des conneries ... Désolé ;) Comment on peut faire alors pour affiner une polyline 3D sans avoir recour à une spline ? Moi je voudrais avoir beaucoup plus de points comme pour les poly 2D avec l'option PEDIT-> Lissage.Mon prog ne peut me donner plus de points il faut que je me debrouille avec les moyens du bord
bonuscad Posté(e) le 4 avril 2006 Posté(e) le 4 avril 2006 Un truc vite fait mais pas forcément bien fait. Tu "Spline" ta polyligne 3D, après t'essayes la routine. Celle ci va mesurer la Spline 3d selon une distance de résolution que tu fournira, recupérer les point de mesures et les effacer. Puis avec cette liste de point reconstruire une polyligne 3d avec de nombreux sommets mais PAS spliné qui sera proche de la précédente.Avec celle-ci tu devrais pouvoir faire une extrusion. On pourra affiner les controles de la routine pour qu'elle s"execute le mieux possible (accroche objet , etc...) ((lambda ( / ) (setq js (ssget "_:S" '((0 . "POLYLINE")))) (setq last_e (entlast)) (setq x (getdist "\nLongueur de résolution: ")) (command "_measure" (ssname js 0) x) (setq dxf_ent (entget (setq ent (entnext borne))) l_pt '()) (while (and (= (cdr (assoc 0 (setq dxf_ent (entget (entlast))))) "POINT") (not (equal (entlast) last_e)) ) (setq l_pt (cons (cdr (assoc 10 dxf_ent)) l_pt)) (entdel (entlast)) ) (command "_.3dpoly") (foreach n l_pt (command n)) (command) )) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
culnuteurdebase Posté(e) le 8 avril 2006 Posté(e) le 8 avril 2006 Je travail en VBA alors ton lisp j'y comprend rien mais merci tout de même j'ai utilisé à peux pres la meme approche que toi en VB et c'est vrai que ca marche bien mais pour mon appli (Commande Numérique) je doit avoir une quantité de points assez faible alors ca merde un peu. :cool: je contourne le problème (enfin j'essaye) en utilisant une forme aprochée de ma courbe avec une poly3D d'ordre cubique. :casstet: Y a encore du boulot mais ca progresse La je bloque sur un probleme tout bête : quand je copy un objet et que je veux placer cette copie à un autre endroit, je copie également les Xdata et ca me dérange je voudrais supprimer ses XData. Comment faire ?
culnuteurdebase Posté(e) le 22 avril 2006 Posté(e) le 22 avril 2006 Je retire ma question c'est tout con ..... :cool:
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