Aller au contenu

Messages recommandés

Posté(e)

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 :)

Posté(e)

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

 

./__\.
(.°=°.)
Posté(e)

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

 

./__\.
(.°=°.)
Posté(e)

 

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

Posté(e)

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

 

./__\.
(.°=°.)
Posté(e)

 

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

Posté(e)

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

 

./__\.
(.°=°.)
Posté(e)

: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

  • 1 an après...
Posté(e)

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

Posté(e)

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

Posté(e)

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 ?

 

 

 

  • 2 semaines aprè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 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é