Pular para o conteúdo principal

Postagens

Mostrando postagens de setembro, 2014

Polyline2d, Polyline e Polyline3d - O que está errado?

Esses dias, como já venho escrevendo em alguns post's esse mês estou fazendo um projeto de um Plug-in para criação de nuvem de pontos no PLS-CADD a partir de curvas de nível em AutoCAD e outras indicações da topografia. Nessas minhas idas e voltas me deparei com um problema inusitado: Qual a diferença entre Polyline2d, Polyline e Polyline3d ? Bom isso eu fiz porque, mal sabia eu que existia sim uma diferença, não foi difícil encontrar informação sobre o assunto, no AutoCAD DevBlog tinha um artigo até ensinando como converter um Polyline2d para um Polyline. De fato é que originalmente o Polyline2d era constituído por uma lista de vértices 2D, ou seja, a estrutura básica do objeto erá feita dessa forma, e com o passar do tempo eles mudaram para um Array de pontos 2D. Essa informação está mais detalhada no cadpanacea.com  e no Blog do Kean . Não consegui descobrir bem o porque dessa coisa de mudança de formato, então resolvi fazer um teste. Um documento com Polyline2d  e Pol

Utilizando os múltiplos núcleos do computador - Usando Parallel.For

Estes dias estive remodelando algumas aplicações que já tinha feito, Especialmente meu plug-in para exportação de pontos do AutoCAD para o Google Earth e PLS-CADD. O problema que vinha sendo enfrentado era quando a quantidade de pontos era muito elevada o programa acabava por demorar muito tempo para realizar a coleta de pontos. Isso isso acontece porque desde o inicio dos computadores todos os códigos e loop's foram estruturados para executar ações sequencialmente. Se você observar quando o computador executa cálculos complexos seja no AutoCAD ou qualquer outro programa como PLS-CADD, Excel, etc... apenas um núcleo é utilizado para processamento, ou seja, se o seu computador é Dual Core 50% da capacidade em utilização, Quad-core 25% e assim por diante... O fato é que temos uma geração de aplicativos que está adaptada para uma geração atrás de Computadores e é natural que certas atividades as vezes acabam por demandar muito mais tempo e subaproveitar o computador. Eu realme

Porque é importante definir um template

A muito tempo eu trabalho em empresas de projeto de engenharia e eu sempre vejo a mesma coisa: falta de padronização e horas e horas de revisões para compatibilização dos documentos. O que é mais incrivel é que isso não é só em CAD, é em tudo, Word, Excel, Power Point. O setor de "Qualidade" é quase um limbo negro escuro aqui no Brasil. Esses dias vi um projeto para Colômbia em que o cliente enviou um série de modelos de documentos que deveriam ser seguidos e dizem respeito a padronização deles. Colômbia  1000 anos luz a frente do Brasil.... O fato é que os padrões fazem com que se otimize muito tempo na hora de elaborar documentos. Imagine a situação: você inciou um trabalho de qualquer jeito, fez um template de A1 com textos soltos e tudo explodido com linhas, inicialmente você teria que fazer 10 documentos então você indicou na revisão "Emissão inicial" e assim replicou em todos os documentos e os emitiu. Logo depois disso você percebeu algo importante,

Usando a pré-seleção do AutoCAD - "Pickfirst"

Muitos comandos do AutoCAD que o trabalham em conjuntos de entidades ou seja, você pode selecionar um conjunto de objetos e aplicar um comando. Isso basicamente significa que se o usuário tem pré-selecionado um conjunto de entidades e, em seguida, lança comando e será necessário solicitar que o usuário selecioná-los novamente, isso é pratico é útil. Isto é possível usando algo chamado PICKFIRST que está definido dentro de AutoCAD. Para aproveitar esse recurso dentro de seus comandos, a primeira coisa a fazer é usar uma CommandFlag  especial chamada "UsePickSet": isto diz o editor do AutoCAD não para limpar o conjunto PICKFIRST quando o comando é invocado. Em seguida, a implementação do comando usará o método SelectImplied () no objeto editor para recuperar o conjunto PICKFIRST, deve estar disponível. Nesta fase também é boa prática para limpar o PICKFIRST definido com SetImpliedSelection (). O problema é que ele pode não ter selecionado nada e ai como se faz? O exem