quinta-feira, 25 de fevereiro de 2016

Aula 2 Semana 2 - Parábola

Na aula 2 da semana 2, fizemos revisões do desenho 2D em AutoCAD:

Depois de desenhar duas X-lines a intersectarem se na origem, uma vertical e outra horizontal, desenhamos, através do comando P (Point), o ponto (0,1) que vai ser o nosso focus.

Ao fazer este ponto, não parece haver qualquer alteração pois o ponto não se mostra a não ser que mudamos as suas características (point style) através do comando DDPT (DDPType). 

Depois de ter o focus, vamos encontrar o vertex que é o ponto de viragem da parábola. Se tivermos o Object snap ligado (on) com a opção MidPoint seleccionada, facilmente criamos uma circunferência (auxiliar) C (Circle) no MidPoint (ponto do meio) entre o focus e a origem do sistema cartesiano.


Esta circunferência vai-nos servir apenas para fazermos um novo ponto P(Point) no centro do mesmo (no MidPoint anterior). De notar que existem inúmeros processo para chegar a um mesmo resultado. 

Aprendemos também que, facilmente, através do comando REGE (Regen), podemos corrigir quaisquer situações com os styles atribuídos aos pontos.
Agora com dois pontos, o Focus e o Vertex, podemos começar a encontrar os restantes pontos da parábola. O procedimento feito na aula foi o seguinte:

Criámos uma linha paralela à X-Line horizontal através do novo comando introduzido O (Offset). Primeiro especificamos a distância a que queremos que a recta paralela esteja da primeira, no nosso caso introduzimos 0.8, e depois seleccionamos o objecto ao qual queremos fazer o paralelismo, isto é, o próprio do offset. Para terminar o comando, clicamos num dos lados do objecto, neste caso, em cima da X-line horizontal. 

Depois de criar a recta horizontal, criamos um círculo auxiliar C(circle) de raio 0.8 a partir do focus pois assim vamos garantir que os pontos que encontrarmos vão ter a mesma distância do ponto ao focus do que do ponto à X-Line, garantido assim, uma parábola. Através do P(Point) criamos dois pontos nos locais de intersecção do círculo auxiliar com a recta horizontal também auxiliar.


Para calcular outros dois pontos da nossa parábola, repetimos o processo do O (offset) com 0.8 de distância à 1ª recta auxiliar ou, evidentemente, 1.6 de distância à X-line horizontal inicial, desde que se opte por fazer uma linha imediatamente acima da primeira.



 O processo é novamente repetido de forma a ter 7 pontos da nossa parábola, incluindo o vertex


Tendo já pontos suficientemente explícitos para fazer uma parábola, criámos uma circunferência C (Circle) no primeiro ponto da parábola (da esquerda) e desenhamos uma linha através do comando L(line) ou Pl (Polyline) desde o focus a esse primeiro ponto e desde este ponto, perpendicularmente, até à X-line horizontal.


A Sara introduziu-nos também o comando do TR (Trim) que funciona da seguinte maneira: 1º Seleccionar os objectos que vão funcionar, digamos, como "objectos de corte"; 2º Seleccionar os objectos a ser eliminados ou, melhor, cortados (trimmed) pelos anteriores.






Ficamos então com um ângulo aparente ao qual vamos proceder à sua bissectriz. L(line) a partir do ponto da parábolo (e centro do arco) até ao MidPoint do arco da circunferência anterior. Introduzindo um outro comando, o EX (Extend), procedemos à extensão do mesmo da seguinte forma: 1º efectuar o comando EX (Extend); 2º seleccionar um objecto (auxiliar ou não) que delimite o crescimento ou extensão do objecto que quermos aumentar; Enter 3º seleccionar o próprio do objecto a aumentar. Neste caso utilizámos a X-line vertical para o primeiro Extend e um círculo com centro no ponto em questão da parábola, com raio indefinido, para um segundo Extend.



Apagando todos os traços auxiliares, ficamos apenas com a linha, que será tangente à parábola e, ainda, com os ditos pontos da parábola. Através de um outro novo comando, o MI (Mirror), podemos facilmente "espelhar" a nossa linha através de um eixo de simetria. O processo é o seguinte: 1º Efectuar o comando MI (Mirror); 2º seleccionar os objectos a espelhar (a linha anteriormente feita); 3º seleccionar um ponto do eixo de simetria (na x-line vertical, ex:[0,0]); 4º Seleccionar outro ponto do eixo de simetria (na x-line vertical, ex:focus ou vertex).


Agora, de modo a compreender dois métodos de fazer parábolas, criámos duas layers de cores diferentes, neste caso, o layer da "parábola 1" a azul e o layer da "parábola 2" a verde. O comando para fazer a dita parábola é o SPL (SPLine) mas existem dois métodos diferentes: o CV e o Fit.

A parábola 1 contempla o método do CV e os procedimentos são os seguintes: 1º efectuar o comando SPL (SPLine); 2º Escrever M ou seleccionar Method; 3º Escrever C ou seleccionar CV; 4º Indicar o primeiro ponto da parábola (superior esquerdo por ex); 5º Indicar atraction point para onde a parábola se tende a "atrair"; 6º Finalmente, o end point, onde a parábola acaba (inferior esquerdo, por ex). Enter.


Para este processo (do Fit) podemos ainda corrigir quaisquer erros da SPLine através do comando SPLINED (SPLineEdit) > Fit Data > Tangents seguido da selecção das respectivas tangentes, indicando o ponto inicial e endpoint das mesmas. 


Ainda que com a correção feita na aula através do SPLineEdit existe sempre uma discrepância entre o método do CV e do Fit, sendo o CV o mais rigoroso dos dois.


Já no final da aula, copiámos a nossa parábola 1, apartir de um eixo vertical (X-line vertical) através do CO (Copy) ou do M (Move). 
Fizemos um trim para ficar com metade da parábola. Para isso, escrevemo TR (Trim), selecionamos o objecto a funcionar como objecto de corte (neste casa a X-line vertical), enter, e, por fim, seleccionamos o objecto a ser cortado (parte direita da parábola).



Depois, como não poderíamos usar o eixo vertical da X-line para o REVS (REVSURF) , fizemos outro trim com um círculo (de raio indefinido) qualquer que englobou a meia parábola de modo a obter apenas um segmento da linha vertical anterior. 


REVSURF > seleccionamos o objecto para a dita superfície (a parábola) > seleccionamos o eixo de formação da superfície (o segmento vertical) > indicamos o ângulo de partida (0º) > finalmente, o ângulo a incluir (360º). 


 
O objecto é agora uma superfície tridimensional. Para visualizar a simulação 3D, escrever o comando 3D (3DOrbit).


Para sair do wireframe e observar a superfície propriamente dita, escrever o comando SHA (ShadeMode) e seleccionar a opção Shaded.


quarta-feira, 17 de dezembro de 2014

Entrega

Entrega:

MACRO das escadas

Pormenor Construtivo em PDF
                              em DWG
                              em JPEG
                                         (base de trabalho/original em JPEG)

terça-feira, 16 de dezembro de 2014

Macro

No último exercício da disciplina de Sistemas de Representação Digital em Arquitectura fizemos uma Macro, que pretende optimizar e, por seguinte, acelerar o processo do desenho, havendo inúmeras possibilidades para o fazer.

Para isso, como já foi referido e ensinado anteriormente no presente blogue, editamos o nosso "código" no NotePad++, guardamos em ficheiro auto lisp (.lsp) e depois de fazermos o Load 
do ficheiro no AutoCAD com o APPLOAD, basta escrever o nome (ou parte) da função! 

Decidi que a minha macro iria facilitar todo o proceso de desenhar uma simples escada em Corte. Posto isto, pensei em várias formas de o fazer, isto é, quais as variáveis a ter em conta e definiu que a grande prioridade era ser simples, não dar erros e principalmente, ser versátil. Então, a macro que acabei por seguir consiste em dar, simplesmente, dois pontos (o ponto de arranque e o ponto de fecho das escadas) e o número de degraus a ter nas escadas. 

Isto permite fazer escadas em todas as escalas e com todos os cobertores e espelhos possíveis. Enfim, não tem qualquer obstrução e é muito fácil de usar! Assim, o processo de passar as ideias in mente ou mesmo do papel para o Model Space fica mais acelerado e mais simples!
Inclusive não dá erros de linhas fora do sitio como outras soluções de macros para escada poderiam dar. O que a macro não garante é a confortabilidade da escada mas que é facilmente prevista de antemão ou igualmente fácil, de se verificar após se ter usado a mesma.

Aqui está o tal "código" das ESCADAS:

(para usar, copiar para o NotePad ++; guardar em ficheiro auto lisp (.lsp); fazer o Load do ficheiro no AutoCAD com o APPLOAD, escrever "ESCADAS" na barra de comandos)


;Macro que permite desenhar EM CORTE umas escadas simples
;Macro realizada pelo aluno Luís Norton do Reis, da turma B do 2 ano
;Mestrado Integrado em Arquitetura - Faculdade de Arquitetura - FAUL
;Sistemas de Representacao Digital em Arquitetura - Professor Luis Romão

(defun c:escadas ()

;definir as variáveis e as perguntas a fazer (o utilizador escolhe)

(setq e1 (getpoint "Qual o ponto de arranque das escadas?"))
(setq e2 (getpoint "Qual o ponto final das escadas?"))
(setq e3 (getreal "Quantos degraus tem a escada?"))

;definir outras duas variáveis, o cobertor e o espelho das escadas, consequentes das escolhas do utilizador.

(setq p3 (list (car e1) (+ (cadr e1) (/ (- (cadr e2) (cadr e1)) e3))))
(setq p4 (list (+ (car e1) (/ (- (car e2) (car e1)) (- e3 1))) (cadr p3)))
(setq p5 (list (car e2) (- (cadr e2) (/ (- (cadr e2) (cadr e1)) e3))))

;definir os comandos do AutoCAD (polyline, copy e line)

(command "pline" e1 p3 p4 "")
(command "copy" e1 "" e1 "array" (fix (- e3 1)) p4 "")
(command "line" e2 p5 "")
)


Exemplos:











Pormenor Construtivo

A partir dos links abaixo pode fazer download do ficheiro PDF e DWG para conferir o exercício do Pormenor Construtivo presente nas páginas 46/47 do volume 11 de Architect's Working Details.

Pormenor Construtivo (Versão PDF) 
Pormenor Construtivo (Versão DWG)

Aspecto do Model Space



Aspecto do Paper Space (layout)




Aspecto da Impressão


Original






sexta-feira, 5 de dezembro de 2014

Semana 12 Aula 24

Nesta aula fizemos uma MACRO que permite desenhar um símbolo indicador do Norte que automatiza todo o processo:

Começamos por definir a função, as variáveis e os comandos iniciais e ficamos com esta expressão:

(defun c:norte ()

(setq c1 (getpoint "Qual o centro do símbolo?"))
(setq d1 (getpoint "Qual a direcção do Norte?"))

(command "circle" c1 (* (distance c1 d1) 0.9))
(command "circle" c1 (* (distance c1 d1) 0.7))
)

NotePad++ > Guardar em ficheiro .lsp> APPLOAD (AutoCAD) >Load do ficheiro

Verificamos se está tudo nos seus conformes e prosseguimos. O comando é o NORTE.

Mais à frente definimos mais comandos para desenhar o resto do traçado do símbolo:


(defun c:norte ()



(setq c1 (getpoint "Qual o centro do simbolo?"))
(setq c2 (getpoint "Qual a direcção do Norte?"))



(command "circle" c1 (* (distance c1 c2) 0.9))
(command "circle" c1 (* (distance c1 c2) 0.7))

(command "pline" c2 "width" (* (distance c1 c2) 0.01) (* (distance c1 c2) 0.01) 
"arc"
"ce"
c1
"angle"
"359"
"")

(command "pline" c1 
"width"
(* (distance c1 c2) 0.05)
(* (distance c1 c2) 0.05)
(polar c1 (angle c1 c2) (* (distance c1 c2) 1.1))
"")
(command "line" c2 (polar c1 (angle c2 c1) (distance c1 c2))"")
(command "rotate" "last" "" c1 "c" "90")
)

quarta-feira, 3 de dezembro de 2014

Semana 12 Aula 23

Nesta aula, o professor lançou um novo desafio/exercício - o de criar uma MACROO desenvolvimento da aula baseou-se então na aprendizagem com base no exercício das Macros. O criar de uma Macro pretende optimizar os comandos de modo a acelerar o processo do Desenho.


Para fazer uma macro que nos desenhe 1 quadrado basta definir duas variáveis: (qual é) o ponto inicial e (qual é) o lado, definindo assim um quadrado. 



Usamos o SETQ para associar uma variável, neste caso p1, ao nome do parâmetro, que é "qual é o ponto inicial". Aqui usamos o GETPOINT porque se trata de um ponto mas no a seguir como se trata de um comprimento usamos o GETREAL.



Primeiro ponto (p1) x=0 , y=0

Segundo ponto (p2) x=la , y=0 (lado pretendido)
e assim sucessivamente... até ter quatro pontos definidos:


(setq p1 (list 0 0)

(setq p2 (list la 0)
(setq p3 (list la la)
(setq p4 (list 0 la)


Para fechar  a figura geométrica, usamos o "c" no fim do comando:



(command "line" p1 p2 p3 p4 "c")



Agora ficamos com a seguinte expressão (NotePad++ >.lsp>AppLoad>Quadrado.lsp):



(defun c:quadrado()

;(setq p1 (getpoint "Qual o ponto inicial?"))
(setq la (getreal "Qual a medida do lado?"))


(setq p1 (list 0 0))

(setq p2 (list la 0))
(setq p3 (list la la))
(setq p4 (list 0 la))

(setq bla (getvar "osmode"))

(setvar "osmode" 0)
(command "line" p1 p2 p3 p4 "c")
(setvar "osmode" bla)




NOTA: Neste caso o ponto inicial está definido para ser (0,0) e indicamos o SETQ do p1 unica e exclusivamente para fins informativos (e para mais tarde a ativar), usando o ";" antes da expressão.

NOTA(2)usamos GETVAR para ler o "osmode" actual (afim de poder voltar às configurações antigas a seguir ao comando) e utilizamos o SETVAR (estabelece uma variável) para desligar o snap mode ("osmode"). O código para 0 configurações é o "0". (F1 > Help > Search > osmode)


Depois, de modo a podermos escolher o ponto inicial, fazemos a seguinte expressão usando as aprendizagens anteriores:

(defun c:quadrado()

(setq p1 (getpoint "Qual o ponto inicial?"))
(setq la (getreal "Qual a medida do lado?"))


;(setq p1 (list 0 0))

(setq p2 (list (+ (car p1) la) (cadr p1)))
(setq p3 (list (car p2) (+ (cadr p2) la)))
(setq p4 (list (car p1) (cadr p3)))


(setq bla (getvar "osmode"))

(setvar "osmode" 0)
(command "line" p1 p2 p3 p4 "c")
(setvar "osmode" bla)




Nesta expressão, do DEFUN e do SETQ usámos o CAR e o CADR para seleccionar apenas a coordenada (das duas - x ou y) pretendida de pontos anteriormente estabelecidos.



Usámos também o GETVAR para ler o "osmode" (configurações do snapmode) actual e memorizar as suas configurações (para mais tarde voltarmos a elas)e utilizámos também o SETVAR, que estabelece uma variável, para desligar todas as configurações snap mode ("osmode")



terça-feira, 2 de dezembro de 2014

Semana 11 Aula 22

No final desta semana, na aula 22, demos início à aula com uma ficheiro de desenho (AutoCAD) novo para aprendermos uma ferramenta muito útil que acelera o processo do Desenho Assistido por Computador quando, por exemplo, temos de desenhar vários elementos iguais repetidos.


Então para agrupar (fazer  block) uma série de linhas e formas basta fazer comando BLO (Block), seleccionar todos os objectos pretendidos a agrupar e ENTER. Na aula criámos três figuras geométricas aleatórias (triângulo, circulo e rectângulo, e.g.) e agrupámo-las com o comando BLOCK. 





Fazemos uma cópia (Ctrl+C ; Ctrl+V) e inserimo-la no desenho ao lado do grupo inicial, ficando agora com dois grupos. 

De seguida, e agora é que vem a parte mais útil, clicamos duas vezes num dos objectos de um dos nossos "grupos" e abre-se uma janela. Basta premir OK e entramos no Block Editor. Aqui, podemos editar o nosso "grupo" e todas as alterações que fizermos e guardarmos no Save Block, irão ser feitas para todas as cópias que fizemos ou que fizermos desse mesmo grupo dando espaço de manobra para eventuais erros e devidas correcções que queiramos fazer.


---------

Na segunda parte da Aula aprendemos melhor a mexer com funções no Auto CAD e ainda a criar e a inserir funções novas no mesmo.



Função que verifica se é Verdadeira ou Falsa a expressão inserida:

(IF (> 5 0 ) "POSITIVO" "NEGATIVO") = POSITIVO porque 5 é maior que 0

(IF (= 5 0 ) "POSITIVO" "NEGATIVO") = NEGATIVO porque 5 não é igual a 5
(exemplo que pretende mostrar que a palavra é arbitrária)
(IF (= 5 0 ) "OLA" "ADEUS") = ADEUS porque a palavra não interessa


O comando ou função para definir funções é  o DEFUN:

(DEFUN [espaço] {Nome} [espaço] {argumentos ou variáveis} [espaço] {expressão})



Para inserir determinada função, basta escrevê-la na barra de comandos ou guardar no NotePad++ em ficheiro autolisp (.lsp) para depois inserir ou fazer load (através do APPLOAD) no AutoCAD.
Na aula criámos a seguinte função:

(DEFUN MIGA (numero)(* numero 9))


"MIGA" foi o nome que demos à função, "número" é o numero que o utilizador vai inserir para, utilizando a função, multiplicar (*) o número desejado por 9 (e.g.).
Na imagem seguinte mostra como eu inseri a função e o computador reconheceu-a pelo nome (e comando) de "MIGA".


Exemplo: (MIGA 2) = 18


Criámos também outra:

(DEFUN MIGA2 (numero numero2)(+ (* numero 9) numero2))

Aqui o utilizador tem de inserir dois número para que o computador efectue duas operações, primeiro uma de multiplicar (por 9) com o 1º "número" inserido e outra de adicionar o resultado anterior a um 2º "numero2".

Exemplo: (MIGA2 2 3) = (2*9) +3 = 21



Aprendemos também os Inputs do utilizador como:

(GETPOINT "Qual o ponto?")




(GETREAL "Qual é o numero?")


Com intuito sempre de aprender mais de modo a melhorar o desempenho quer a nível de rigor, quer a nível de economias de tempo e esforço, aprendemos a fazer funções ou macros (como preferirem) que optimizam o processo do Desenho. Na próxima função vamos precisar de variáveis e para definir variáveis usámos a expressão SET1Q.

(SETQ x 9)

(DEFUN C:MIGA ()
(SETQ (GETREAL "Qual é o numero?"))
(SETQ (GETREAL "Qual é o segundo numero?")))

Como a expressão da função vai aumentando e porque normalmente surge um ou dois erros no texto, vamos passar para o NotePad onde podemos editar melhor. Escrevemos e guardamos como All types. com o nome MIGA.lsp no NotePAD ++ o seguinte :


(defun C:MIGA ()
(setq numero (getreal "Qual é o numero?"))
(setq numero2 (getreal "Qual é o segundo numero?"))
(+ (* numero 9) numero2))
)



No AutoCAD fazemos AP (AppLoad) e fazemos Load do nosso ficheiro em autolisp. Podemos verificar se a função está a funcionar e seguimos em frente.


Aprendemos também a inserir comandos que, de certa forma, optimizam e aceleram o processo do Desenho (especificando à partida as coordenadas iniciais, raios comprimentos, larguras diâmetros, coordenadas finais, etc etc):


(Command "Line" "0,0" "2,2" "")

(Command "Circle" "0,0" "1")


E juntámos as aprendizagens anteriores com a mais recente em relação aos comandos:


(defun C:MIGA ()
(setq numero(getreal "Qual é o numero?"))
(setq numero2 (getreal "Qual é o segundo numero?"))
(Command "line" "0,0" "2,2" "")
(Command "circle" "0,0" "1")
(+ (* numero 9) numero2))
)



Assim conseguimos criar uma função ou uma macro que à partida parece complicar o processo (nesta problema elementar) mas a longo prazo e com trabalhos mais pesados, repetitivos e complexos vai simplificar e acelerar todo o processo! 

quinta-feira, 27 de novembro de 2014

Semana 11 Aula 21

Nesta aula continuámos o exercício da aula anterior que visa preparar os alunos para desenharem o seu projecto e prepararem-no para a Impressão, o da Instalação Sanitária

Como sabem, o desenho técnico da Planta é efectivamente um Corte feito através de um plano horizontal, normalmente entre a cota 1 a 1,2 metros.
Para representar e dar a devida expressão de um corte, diferenciando as partes em corte das partes em vista, normalmente representamos as paredes seccionadas a uma linha mais "carregada" ou mais larga (com mais peso) ou preenchemos a paredes com uma região sombreada.



Antes de fazer a dita região, verificamos se temos a layer "paredes" amarela seleccionada e, uma vez que a nossa região não esteja correctamente delineada, teremos de juntar as linhas delimitadoras da região (as paredes) através do comando PEDIT. Este comando é relativamente simples, junta as linhas que pretendermos num só linha - polyline. Só depois fazemos o HATCH.

Para preencher uma região - as paredes seccionadas neste caso - fazemos o comando HATCH > Pick Internal Point e escolhemos um ponto dentro dos limites da região ou regiões pretendidas. 



Agora vamos fazer uma nova região que, ao contrário da região seccionada, não vai ser sólida (solid), e vamos seleccionar um padrão ao qual queremos associar o nosso pavimento da casa de banho. Primeiro, vamos desenhar com LINE a linha que separa o pavimento da casa de banho e o exterior da Instalação Sanitária no vão da porta pelo MidPoint da Parede. Assim temos a nossa região do pavimento, totalmente delimitada. 


Para desenhar o pavimento fazemos então HATCH da região, escolhemos o padrão a ser usado e alteramos a escala do pavimento para 0.1.




No layout, fazemos comando PLOT, configuramos e observamos se tudo está nos seus conformes (senão estiver, alteramos as configurações no Page Setup SAVE PDF



NOTA: O traçado todo a preto e branco; linha de corte e arco da porta com traçados diferenciados e escalas devidas; região das paredes e região de pavimento bem delimitada e à escala; Equipamentos bem situados/colocados.

---------------------------

Nova aprendizagem

Primeiro vamos buscar o ficheiro "Norte" ao site do Professor Luís Romão na secção de "Ficheiros de Apoio em Autolisp.
(http://home.fa.utl.pt/~lromao/2014_15/docencia_201415.html)

Abrimos ficheiro no Notepad++ e guardamos como ficheiro (lisp.).
No AutoCAD fazemos APPLOAD e fazemos Load do ficheiro guardado anteriormente.

O comando é o 'Norte' e cria facilmente um símbolo de orientação Norte.

-------------------------

OPERAÇÕES

(Nome[espaço]Argumento)

(+[ espaço]1[ espaço]2[espaço]3)
(- .......)
(*.......)
(/........)

(+_1(/_3_2)) = "2"
(+_1(/_3.0_2)) = 2.5

(Sin "45º") ------- (Sin (/ pi 4 ))
(Cos "30º") -------(Cos (/ pi 3))
(Cos pi)
(ATAN 2 3) "Cotangente"

(list 1 2 3) = (1,2,3)
(Car (List 1 2 3)) = (1) só o primeiro
(Cdr (list 1 2 3)) = (2,3) o conjunto sem o primeiro
(Cadr (list 1 2 3)) = (2) o primeiro do conjunto sem o primeiro
                          = (Car (Cdr (list 1 2 3)))

donload do ficheiro explicativo do Lisp  -- Macro no site do prof "autodesk" e "N.Franca"