Tenha uma nova experiência ao navegar no Fórum pelo computador de forma integrada ao portal principal. Acesse o seguinte link: https://www.autolisp.com.br/board/. Entretanto para dispositivos móveis recomendamos acessar este outro link: https://www.autolisp.com.br/forum/

Novo Desafio - Espiral sobre Espiral

Mais um da série desafios...

Moderador: Moderadores

Avatar do usuário
hugopaulo
Master
Master
Mensagens: 1873
Registrado em: Dom 29 Fev 2004 12:00:00 am

Novo Desafio - Espiral sobre Espiral

Mensagem por hugopaulo » Dom 23 Nov 2008 7:46:28 pm

Amigos

Estou há algum tempo quebrando a cabeça com uma rotina para desenhar uma espiral seguindo o caminho de outra espiral. Como a resistência de alguns chuveiros tais como o Corona e outros.

Como auxílio uma dica. Pode ser usada a rotina 3DSpiral.lsp do Cadalyst

;Tip1745b: 3DSPIRAL.LSP Solid spring Bill Zondlo

;;; 3DSPIRAL.LSP
;;; Copyright (C) 1993 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
;;; Modified by Bill Zondlo 12/30/99 to be used with SOL_SPRING.LSP.
;;; This program now contains 3DSpiral.lsp only.
;;; --------------------------------------------------------------------------;

Não desisti mas confesso que estou quase. Eu ainda não consegui.

Saudações
hugopaulo
AutoLISP Não É LISP ==> VISUAL LISP não é Linguagem

Avatar do usuário
neyton
Master
Master
Mensagens: 1668
Registrado em: Qui 25 Dez 2003 11:00:00 pm
Contato:

Mensagem por neyton » Seg 24 Nov 2008 12:07:51 pm

imagino um corte longitudinal da seção, veriamos algo assim:

000000000
-------------
0000000000

o passo ou deslocamento do eixo da espiral principal é função do angulo e do numero de voltas da espiral principal

então teriamos de relacionar um Delta de angulo desta esperal com o Delta da espiral secundaria

pela construção da coisa, teriamos

Ds = n * Dp

onde
Ds = delta angulo da espiral principal
Dp = delta angulo da espiral secundaria
n = é um numero grande, que é o numero de voltas que a espiral secundaria dá para cada volta da espiral principal

imaginando que a a espiral principal parta do plano XY, poderiamos usar a função polar do autolisp para calcular a posição do eixo central da esperial secundaria:

(setq Cxy ( polar pc delta raio ) )

que nos daria as posições X e Y do centro da espiral secundaria
e uma função que linear que nos dá o Z em função do numero da volta mais o delta corrente:
Z = (volta + delta / (2*pi) )*passo

se imaginarmos a espiral secundária num plano ZX,
para cada Ds, teremos um Cxy, um Z e um Dp

esse Dp nos dá uma posição Pzx do fio da esperial secundaria
esse Pzx relacionado ao "n" e ao "Dp" nos daria um Y

em fim, hehehe daria um nó tremendo na nossa cabeça, hehehe
como que usa o html daqui?
visite o meu blog: http://tbn2.blogspot.com
lisps exclusivas pra download!!

Avatar do usuário
hugopaulo
Master
Master
Mensagens: 1873
Registrado em: Dom 29 Fev 2004 12:00:00 am

Mensagem por hugopaulo » Seg 24 Nov 2008 8:07:33 pm

É isso aí Neyton. Um nó górdio tremendo!

...mas vou ou vamos chegar lá...
hugopaulo
AutoLISP Não É LISP ==> VISUAL LISP não é Linguagem

Avatar do usuário
laudemir
Prata 2/3
Prata 2/3
Mensagens: 532
Registrado em: Qui 29 Mar 2007 12:00:00 am
Contato:

spiral 2

Mensagem por laudemir » Seg 24 Nov 2008 10:08:38 pm

Sim sim sim.....

Realmente trigonometria pura
Cálculos de seno, coseno, polar e equações, porem não podemos esquecer os quadrantes, assim fica mais fácil né.... hehehehehehe............

Tenho uma rotina já postada aki sobre mola 3d
e só adapta-la para esta prova de fogo............ hehehhehe



http://www.autolisp.com.br/autolisp/mod ... ght=mola3d
"As respostas dos problemas, geralmente são mais simples que pensamos"
[email protected]
Veja outros artigos http://lautolisp.blogspot.com/
Estou iniciando em blog, mas ja é um começo....

Avatar do usuário
laudemir
Prata 2/3
Prata 2/3
Mensagens: 532
Registrado em: Qui 29 Mar 2007 12:00:00 am
Contato:

spiral em spiral

Mensagem por laudemir » Seg 24 Nov 2008 10:45:18 pm

Hugo pensei em calculo por quadrantes porem percebi que o AutoLISP calcula sem problemas ângulos maiores que 360°
então ficou mais fácil do que pensava.

Fiz realmente uma adaptação numa rotina minha aki postada anteriormente.

Ai vai...
[lsp]
;;|____________________________________________________________________|")
;;| Autor: Laudemir Reis |Fone: 17-9704-1693 |Programador em AutoLISP |")
;;| E:mail - [email protected] |")
;;| SITE :http://geocities.yahoo.com.br/reis3d |")
;;|____________________________________________________________________|")
;;| Rotina desenha uma mola em 3D com 3dpoly |")
;;| 03/2001 |")
;;| 11/2008 adaptada pra spiral em spiral |")
;;|____________________________________________________________________|")

(defun c:sprl()
(setq dia (getreal "\nDiametro da mola mola Primaria "))
(setq dis (getreal "\nDistancia dos filetes mola Primaria "))
(setq vol (getint "\nQuantidade de voltas mola Primaria "))
(setq diaf (getreal "\nDiametro da mola Secundaria "))
(setq disf (getreal "\nDistancia dos filetes mola Secundaria "))
(setq qtsf (getint "\nQuantidade de seguimentos mola Secundaria <<divisivel por 360 g>> "))
(setq qts (* (* (fix (/ (/ (* dia pi) disf)2) )2) qtsf))
(setq pot (getpoint "\nPonto central") rai (/ dia 2))
(setq fra (/ dis qts) coef 57.2957914331 fa fra)
(setq ang (/ 360.0 qts))
(setq angf (/ 360 qtsf))
(setq agf 0)
(vl-cmdf "3DPOLY")
;---------------------------------------
(repeat vol
(setq ag ang)
;---------------------------------------
(repeat qts
(setq rt (/ ag coef))
(setq pt2 (polar pot rt rai))
(setq listpt (cons (list po2 rt fa ) listpt))
(setq dltx (* (sin (/ agf coef)) (/ diaf 2)))
(setq dlty (* (cos (/ agf coef)) (/ diaf 2)))
(setq pt3 (polar pt2 rt dltx))
(setq po2 (list (car pt3) (cadr pt3) (+ (caddr pt3) (+ fa dlty)) ))
(vl-cmdf po2)
(setq ag (+ ag ang ))
(setq fa (+ fa fra ))
(setq agf (+ agf angf))
) ; <--- qts
); <--- vol
(vl-cmdf "")
;---------------------------------------
)



[/lsp]

Bom usei um desenho: Units em Milímetros, Decimal, direção 0.00 East, sentido anti-horário.
Se não estiver configurado assim não funcionará.
Temos de adaptar a rotina para que configure automaticamente. Porem estou sem tempo
Então como sempre podem dar opiniões sugestões e criticas.

Para testar usei:
Diâmetro da mola mola Primaria : 50
Distancia dos filetes mola Primaria : 20
Quantidade de voltas mola Primaria : 5
Diâmetro da mola Secundaria : 10
Distancia dos filetes mola Secundaria : 3
Quantidade de seguimentos mola Secundaria : 20 (melhor usar números pares)


Daí é só alegria, uma resistência...
Mas neste calor só mesmo um banho de água fria hehehehehehehe


T+ :arrow:
"As respostas dos problemas, geralmente são mais simples que pensamos"
[email protected]
Veja outros artigos http://lautolisp.blogspot.com/
Estou iniciando em blog, mas ja é um começo....

Avatar do usuário
ederson
Prata 1/3
Prata 1/3
Mensagens: 414
Registrado em: Qua 21 Jul 2004 12:00:00 am
Localização: Belo Horizonte

Mensagem por ederson » Ter 25 Nov 2008 7:11:51 am

"Mandou bem..." Laudemir. Estava fazendo uma com lógica de quadrantes, mas tava ficando três vezes maior que essa sua... Testei aqui e ficou legal. Poucos bugs. Parabéns!
Ederson Ambrosio
031 8893-2947
BH-MG

Avatar do usuário
hugopaulo
Master
Master
Mensagens: 1873
Registrado em: Dom 29 Fev 2004 12:00:00 am

Espiral sobre Espiral

Mensagem por hugopaulo » Ter 25 Nov 2008 12:58:40 pm

Laudemir

Parabéns!

"Pauca sed bona !!!" (Pouco mas bom)

Eu estava usando seno e co-seno, vê se pode...

Vc está a 5 minutos de ser um gênio! (ou muito menos).

Sua rotina é muito boa e vamos tentar melhorá-la. Vou preparar um DCL (quadro) inclusive com planas 2D e cônicas3D (de qualquer seção).

Muitas Congratulações.
hugopaulo
AutoLISP Não É LISP ==> VISUAL LISP não é Linguagem

Avatar do usuário
laudemir
Prata 2/3
Prata 2/3
Mensagens: 532
Registrado em: Qui 29 Mar 2007 12:00:00 am
Contato:

Re: Espiral sobre Espiral

Mensagem por laudemir » Ter 25 Nov 2008 9:44:26 pm

hugopaulo escreveu:Laudemir
Parabéns!
"Pauca sed bona !!!" (Pouco mas bom)
Eu estava usando seno e co-seno, vê se pode...
Vc está a 5 minutos de ser um gênio! (ou muito menos).
Sua rotina é muito boa e vamos tentar melhorá-la. Vou preparar um DCL (quadro) inclusive com planas 2D e cônicas3D (de qualquer seção).
Muitas Congratulações.
Obrigado, o que puder ajudar sempre estarei apostos.

Sabendo que o (sin ang) ou (cos ang) de um ângulo do triangulo retângulo é = 0° a 90°
Porem se calcularmos os 360°, nos retorna positivo e negativo a cada quadrante, ou seja já estou usando a forma de quadrante com o próprio SIN e COS de ângulos quaisquer.



A mola é gerada por 3dpoly porem para ficar bem uniforme temos de colocar vários seguimentos
Mas se modificarmos algumas linhas..
[lsp]

(vl-cmdf “3DPOLY” ) para :

(vl-cmdf “SPLINE” )



E modificarmos a linha
(setq qtsf (getint "\nQuantidade de seguimentos mola Secundaria <<divisivel por 360 g>> ")) Para :

(setq qtfs 6)


E a linha (vl-cmdf “”) para :
(vl-cmdf “” “” “” )

[/lsp]

A mola fica bem melhor com Spline, porem fica muito lento o AutoCAD

Qual o motivo?????
"As respostas dos problemas, geralmente são mais simples que pensamos"
[email protected]
Veja outros artigos http://lautolisp.blogspot.com/
Estou iniciando em blog, mas ja é um começo....

Avatar do usuário
laudemir
Prata 2/3
Prata 2/3
Mensagens: 532
Registrado em: Qui 29 Mar 2007 12:00:00 am
Contato:

Mensagem por laudemir » Qui 27 Nov 2008 10:07:30 pm

Aqui vai uma Espiral em espiral cônica

[lsp]

;;|____________________________________________________________________|")
;;| Autor: Laudemir Reis |Fone: 17-9704-1693 |Programador em AutoLISP |")
;;| E:mail - [email protected] |")
;;| SITE :http://geocities.yahoo.com.br/reis3d |")
;;|____________________________________________________________________|")
;;| Rotina desenha uma mola em 3D com 3dpoly |")
;;| 03/2001 |")
;;| 11/2008 Adaptada pra spiral em spiral |")
;;| 26/11/2008 Adaptada spiral em spiral cônica |")
;;|____________________________________________________________________|")
(defun c:spconec()
(setq dia (getreal "\n1° Diametro da mola mola Primaria ")
dia2 (getreal "\n2° Diametro da mola mola Primaria ")
dis (getreal "\nDistancia dos filetes mola Primaria ")
vol (getint "\nQuantidade de voltas mola Primaria ")
diaf (getreal "\nDiametro da mola Secundaria ")
disf (getreal "\nDistancia dos filetes mola Secundaria ")
qtsf (getint "\nQuantidade de seguimentos mola Secundaria <<divisivel por 360 g>> "))
(setq qts (* (* (fix (/ (/ (* dia pi) disf)2) )2) qtsf)
pot (getpoint "\nPonto central") rai (/ dia 2)
fra (/ dis qts) coef 57.2957914331 fa fra difr (/ (/ (/ (- dia dia2) 2) vol) qts)
ang (/ 360.0 qts) angf (/ 360 qtsf) agf 0 raio rai )
(vl-cmdf "3DPOLY")
(repeat vol
(setq ag ang)
(repeat qts
(setq rt (/ ag coef) pt2 (polar pot rt raio)
dltx (* (sin (/ agf coef)) (/ diaf 2))
dlty (* (cos (/ agf coef)) (/ diaf 2)) pt3 (polar pt2 rt dltx)
po2 (list (car pt3) (cadr pt3) (+ (caddr pt3) (+ fa dlty)) ))
(vl-cmdf po2)
(setq raio (- raio difr) ag (+ ag ang ) fa (+ fa fra ) agf (+ agf angf))
)
)
(vl-cmdf "")
)
[/lsp]


t+
"As respostas dos problemas, geralmente são mais simples que pensamos"
[email protected]
Veja outros artigos http://lautolisp.blogspot.com/
Estou iniciando em blog, mas ja é um começo....

Avatar do usuário
neyton
Master
Master
Mensagens: 1668
Registrado em: Qui 25 Dez 2003 11:00:00 pm
Contato:

Mensagem por neyton » Sex 28 Nov 2008 7:42:19 am

laudemir, derepente se usar a função polar, dê pra tirar mais algumas linhas ( tirando os senos e cossenos )
ficaria mais "espartano" o codigo, hehehehe

no mais, totalmente excelente!!
como que usa o html daqui?
visite o meu blog: http://tbn2.blogspot.com
lisps exclusivas pra download!!

Responder