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"

sábado, 22 de novembro de 2014

Semana 10 Aula 20

Esta aula serviu para dar continuidade ao exercício da Instalação Sanitária iniciado na aula anterior. 

A aula número 20 foi relativamente simples e, por isso, vai ser descrito de forma algo expedita - fácil de compreender graças à simplicidade.

Criar uma nova layer (azul) denominada de "equipamentos". Abrir o ficheiro da banheira. DIST para medir a distância do centro do ralo ao limite direito da banheira (0.35). Fechar a janela do desenho da banheira e voltar ao deseho da Instalação Sanitária. EXPLODE do perímetro interior da parede. OFFSET de 0.35 da linha interior da parede situada à direita. INSERT > BROWSE > Seleccionar o ficheiro da banheira > Mudar o ângulo (0º para 180º) para ela rodar 180º > OK.



Colocar a banheira no cruzamento da linha auxiliar (anteriormente conseguida pelo offset) com a parede. Eliminar a linha auxiliar.



Executar os mesmos passos para a sanita tendo em conta que: a metade da sanita mede 0.22; esta tem de estar a 0.15 da parede lateral (offset 0.37); o ângulo da sanita se mantém (0º).



Executar os mesmos passos para o lavatório tendo em conta que offset da linha auxiliar é 0.38 e que o ângulo do lavatório é 270º.


Nova layer (vermelha) denominada de "linha de corte". OFFSET de uma linha exterior da parede (sentido vertical) pelo Mid Point da parede (sentido horizontal). Seleccionar o objecto (linha de corte). Seleccionar o ponto azul superior (torna-se vermelho) e esticar, por ex, 0.4 (escrevendo). Fazer o mesmo para o inferior.


LINETYPE - LOAD de "ACAD_ISO04W100" - Long-Dash Dot ou outro semlhante.
Seleccionar e OK.




 Seleccionar o objecto "linha de corte" e PROPS (Properties). Mudar a Linetype Scale para 0.1.




Seleccionar a porta e o arco > PROPS > mudar o linetype para long dash- space




PAG (Page Setup)









LAYOUT

PAG (PageSetup) Modify etc etc

MV (MView) > <Fit>

MV (MView) > Lock > ON > seleccionar a janela > Enter

PAG (Page Setup) - 

Semana 10 Aula 19


Iniciámos um pequeno exercício que tem como objectivo treinar o "fazer" das plantas dos nossos futuros e presentes projectos e tem por base uma simples divisão de uma Instalação Sanitária.

Criamos uma nova layer, amarela, denominada de "paredes" e activamos a mesma.
Começamos com o comando RECTANG para fazer um quadrado - definimos (0,0) como o nosso first/base point e (2,2) como o second point


De seguida, fazemos um Offset do quadro criado de 0.15 para o interior.
Seleccionando o objecto do quadrado exterior, efectuamos o comando EX(Explode) de modo a "explodir" ou, se preferirem, a separar o quadrado em segmentos de recta (no caso do quadrado, em 4 segmentos). Assim podemos conseguir linhas paralelas às paredes através do Offset com mais facilidade.


A seguir, vamos fazer o vão de uma porta. Basta criar duas linhas através do comando Offset com 0.25 e 0.85 da linha horizontal exterior da parede situada mais em baixo do nosso Model Space.


 Estas linhas vão intersectar a nossa parede em dois sítios diferentes. Fazemos um Trim para eliminar as linhas da parede entre as intersecções (para fazer um vão) e outro dois Trims para eliminar os excedentes das linhas anteriormente conseguidas pelo Offset.



O próximo passo é fazer a dita da porta. Primeiro de tudo, vamos ao site do Professor Luís Romão e fazemos o download de 3 ficheiros - banheira, lavatório e sanita - e ainda retiramos o código do ficheiro da "porta". Copiamos esse código para o NotePad++ e guardamos em ficheiro lisp (List Processing Language File). De seguida, no AutoCAD, comando AP(AppLoad) fazemos Load desse mesmo ficheiro de modo a facilitar e a optimizar todo o processo de criar uma porta (com o arco - 90º). Depois de Fazer Load, basta efectuar o comando "porta", seleccionar primeiro o ponto de onde a porta gira, em segundo lugar o ponto onde ela "bate" ou "fecha". Orientando para a esquerda ou para a direita, seguido do clique final ou de um enter, conseguimos a porta!