Avançar para o conteúdo principal

C# - Autocad Plugins

C# - Autocad Plugins

O código de um plugin pode tornar-se bastante complexo, caso se tenham de despistar todas as hipoteses de input do utilizador, e de cálculo.

No plugin que estou a desenvolver, o cálculo teórico para o caso ideal é simples. No entanto para poder prever os casos de inputs do utilizador e as hipoteses de cálculo, adiciona-se um grau de complexidade a todo o programa.


Por agora, e para não dizer muito, se quisermos desenhar um círculo ou arco tangentes a dois segmentos o caso aqui apresentado parece simples:


No entanto se pensarmos que o utilizador pode dar com a geometria acima, os segmentos em sentidos diferentes, temos já um grau de complexidade. Mais o sector onde se deseja realizar o desenho, é mais um grau de complexidade.


Depois nem todos os métodos proporcionados pela API no Autocad servem. Por exemplo se os segmentos não se cruzarem em desenho, alguns métodos do CAd não servem.

Para ter o controlo e despistar mais este caso anteriormente referido, criei vários métodos analiticos para determinar os angulos dos segmentos de recta, das intersecções etc...


Com 600 linhas de código, o DLL continua pequeno como seria de esperar, e o cálculo é imediato.




Comentários

Mensagens populares deste blogue

C# - Viadutos Excel - ISPOL

C# - Viadutos Excel - ISPOL Ler dados do Excel e passar a informação para o ISPOL é um ganho de produtividade e organização. Desta vez, apresento uma utilidade que lê um ficheiro Excel, e transforma os dados para o menu de estruturas do ISPOL. Partindo de um Excel organizado, por pks eixos e espessuras da estrutura etc... como o seguinte: Elaborei um programita em CSharp: Este programa funciona em modo "DOS" não tem uma interface gráfica de janelas: O programa cria os ficheiros necessários, o Excel pode estar organizado por eixos, e o programa guarda um ficheiro para cada eixo: O resultado depois de abrir o ficheiro em ISPOL é o seguinte: Com as alterações ao projecto pode-se manter um ficheiro de apresentação e controlo em Excel.

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...