Avançar para o conteúdo principal

JavaScript - Autocad Uma alternativa ao C#

JavaScript - Autocad Uma alternativa ao C#

Na exploração de alternativas para a programação em Autocad, o JavaScript pode em alguns casos ser um caminho viável.

Menu Pavimentos
Exemplo para um Menu de Pavimentos

No exercício que estou a fazer, a ideia é montar um programa para desenhar secções tipo, ou pelo menos os componentes de uma secção tipo. Fazemos muitos reaproveitamentos de secções tipo, e nem sempre estas secções estão exactas, ou falha um milímetro ou a pendente não é a correcta, coisas assim. Além disso poderia ser uma forma de uniformizar e claro de poupar tempo no desenho e montagem de uma secção tipo.

Para já a ideia está na fase de verificar a viabilidade da mesma. O caminho poderia ser um programa fora do Autocad, ou dentro do Autocad. Dentro do CAD o tradicional caminho é o do CSharp. Com o CSharp para que tenha menus, tem de se ir sempre ao Visual Studio, o que acrescenta mais um passo de complexidade. Depois há ainda que escolher de que tipo são as janelas do Menu... há três tipos, mas o que está preferido pelo CAD são as Palettes.

Com a ideia de simplificar, resolvi ver o caminho do JavaScript. O Autocad permite criar uns scripts (scripts no sentido de operações trabalhos etc...) com JS, mas sem menus. Tem algumas limitações, não sendo tão potente como o C#. Para alguns casos é suficiente, e se fosse necessário poderiam ser extendidas as suas capacidades...

O JS tem o defeito de, em conjunto com o HTML para gerar um menu tipo Palette de deixar o código fonte acessível. Mas se for para consumo interno não há problema. tem a vantagem de não usar o Visual Studio e de ser realizado numa tecnologia quase conhecida.

Tem de estar ligado à Net, pois funciona com recurso a uma API. Mas o próprio Autocad hoje em dia tem de estar ligado por temas de licenças.


Para o projecto são necessários pelo menos dois ficheiros, um JS que indica que +e um menu Palette e carrega o HTML.


Dentro do HTML está todo o layout do programa e as suas funções.

Por exemplo, o conteúdo do HTML pode ser:
Neste HTML faz-se o link ao API.

https://df-prod.autocad360.com/jsapi/v3/GettingStart/index.html




O ficheiro JS apenas faz a ligação ao HTML e indica que é um menu de Palette:


O carregamento deste programa é feito pelo comando WEBLOAD e depois indica-se o caminho para o ficheiro JS:
Ainda estou a ver como se pode abreviar o processo de carregamento.

Pode-se ver que abre o menu, em forma de Palette, típica de vários menus de CAD como por exemplo o das propriedades de uma linha... apenas não tem (por agora) uma formatação familiar.


Nesta fase inicial do projecto, tenho apenas duas opções, sem muita complexidade, para ir verificando a viabilidade do projecto.


Este seria o Menu de Pavimentos e à direita um desenho inicial, de duas linha que representa o topo e o fundo de uma camada de pavimento, com a pendente (fixa ainda) e espessura desejada.
Estou a trabalhar na separação de layers e hatch etc...




Comentários

Mensagens populares deste blogue

ISPOL - Representação de Gabaris

ISPOL - Representação de Gabaris No ISPOL podemos representar ao longo do traçado um contorno e até realizar variações. A representação de um contorno ou gabari pode ser realizada no ISPOL de um modo simples, usando por exemplo um Símbolo (bloco) da biblioteca, ou um ou vários criados à medida para atender aos casos necessários. Na imagem abaixo um exemplo da biblioteca do ISPOL, representado no perfil transversal. Estas secções são constituídas por símbolos/blocos: Podem-se desenhar ao longo do eixo proporcionando a vista típica destas situações, uma espécie de sólido que enche o traçado. Além desta representação "simples" o ISPOL permite realizar transições entre símbolos diferentes, por exemplo para representar os diferentes gabaris em recta e curva. Ou outras situações que se achem necessárias. Permite ainda condicionar a representação destes símbolos por valores de raio. Isto é para um determinado raio. Pode ser usado para indicar de forma automática ao programa que em r...

Python - Automatização em ISPOL

Python - Automatização em ISPOL Com o uso de PyAutoGui podemos automatizar tarefas repetitivas no ISPOL ISTRAM. No trabalho actual, é necessário converter mais de 300 ficheiros. Já houve um trabalho prévio de ler e transformar dados de directrizes em Excel para ficheiros compatíveis com a conversão presente. Este trabalho prévio foi também feito com programação. Tendo os muitos ficheiros com formato TXT que o ISPOL pode ler e converter para CEJ, é necessário ir ao menu de Conversores do ISTRAM e digitar os dados para ler a localização dos ficheiros, número de eixo etc... um trabalho repetitivo. Sendo repetitivo uma hipótese que deve surgir é se existe forma de automatizar / programar. O ISTRAM ISPOL não permite o uso de plugins (como o CAD), por tanto a via seria pela automatização dos movimentos. O pacote PyAutoGUI para Python permite esta simulação de movimentos. https://pyautogui.readthedocs.io/en/latest/ Basicamente "guiamos" o cursor para onde deve clicar e o que introdu...

Kinematic Envelope - Vários exemplos

Kinematic Envelope - Vários exemplos Adiciono uma pequena lista de desenvolvimentos sobre o assunto de Gabaritos ferroviários. Para mais informação veja outros posts. AECOM Desenvolvimento no Civil 3D ao que parece, com dynamo. Não se percebe com que norma. https://youtu.be/BdRDICErJJ8?si=0MD8xGx_W1PCG5dP Mehdi Taheri Plataforma independente, não se conhece sobre que normativa. https://www.youtube.com/watch?v=LXUusfK25bs 12D Provavelmente é algo similar à AREMA, 12D é uma empresa da Austrália, creio https://www.youtube.com/watch?v=OQnaDt7IOXw