Aluguel de licenças

0 milhões de comentários
Bom dia pessoal!!!

Ano quase acabando então feliz ano novo!!!

Ah, não esqueça da promoção de natal, está bombando!!!

Este post é para perguntar a vocês sobre os plugins que disponibilizo. Bem, atualmente eu vendo as licenças deles e muita gente pensa que eles são um tanto "caros". Bem, não vou entrar nesta discussão, as vezes eu mesmo acho isso. Então estou estudando com oferecer assinaturas dos mesmos, por valores bem aceitáveis.

Por exemplo, na enquete que está aí do lado direito da página, você pode escolher as opções que você aceitaria para usar o EXPGE, que exporta/importa o desenho do AutoCAD para o Google Earth.

Muitas pessoas usam ele demostrativo, com limitação e isso é o suficiente, mas as vezes a pessoa precisa dele uma única vez para exportar muitas coisas de uma vez só, mas já usou a sua licença demo e não tem outra saída a não ser comprar...

Já pensou se você pudesse usar essa única vez por um precinho bem camarada, tal como esses da enquete?

Então, se você gostou da idéia, vote!!! Preciso saber o que pensam disso, se quiserem, podem comentar neste post com sugestões ou críticas, ok?


Programinha - Mover label de pontos em polilinhas

0 milhões de comentários
Bom dia!!!

Hoje vou postar um pequeno programa que me quebra um baita galho!!!

É o seguinte, em poligonais onde queremos mostrar os vértices numerados no civil 3d, normalmente usamos o comando CREATEPTPLYLNCTRVERTAUTO, que cria os pontos automaticamente nos vértices da polilinha.

Até aí tudo bem, veja como fica:
Percebe que a label do ponto fica por cima da linha?

Bem, dá pra criar um estilo que põe o texto mais pra fora, mas isso nem sempre fica bom. E você acaba "estrechando" manualmente a label. Mas e se tiver uns 200 pontos? Aí a coisa começa a ficar chata e você manda o desenhista fazer... hehehehe

Bom, é para isso que este programinha serve, veja:

Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.EditorInput
Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.DatabaseServices
Imports Autodesk.AutoCAD.Geometry
Imports Autodesk.Civil.DatabaseServices

Public Class MovePtlabels
    'pra facilitar em muitos comandos:
    Public Function ED() As Editor
        Return DOC.Editor
    End Function

    'devolve o documento atual
    Public Function DOC() As Document
        Return Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument
    End Function

    'move as labels dos pontos pela bissetriz das arestas
    <commandmethod commandflags.nopaperspace="" ovecogolabels="">
    Public Sub MoveCogoLabels()

        'selecione uma polilinha ou ecerra o comando:
        Dim peo As New PromptEntityOptions(vbNewLine & "Selecione a polilinha")
        peo.SetRejectMessage("Somente Polilinh")
        peo.AddAllowedClass(GetType(Polyline), True)
        Dim per As PromptEntityResult = ED.GetEntity(peo)
        If per.Status <> PromptStatus.OK Then Exit Sub

        'informe uma distância ou encerra o comando:
        Dim pdo As New PromptDistanceOptions(vbNewLine & "Indique a distância a afastar")
        Dim pdr As PromptDoubleResult = ED.GetDistance(pdo)
        If pdr.Status <> PromptStatus.OK Then Exit Sub

        'inicia a transação
        Using tr = DOC.TransactionManager.StartTransaction
            Try

                'obtem a polilinha selecionada
                Dim pl As Polyline = per.ObjectId.GetObject(OpenMode.ForRead)

                'determina se a polilinha está em sentido horário ou antihorário
                Dim s As Double = 0
                For i = 0 To pl.NumberOfVertices - 1
                    Dim pa = pl.GetPoint3dAt(i Mod pl.NumberOfVertices)
                    Dim pb = pl.GetPoint3dAt((i + 1) Mod pl.NumberOfVertices)
                    s += pa.X * pb.Y - pb.X * pa.Y
                Next

                'módulo do vetor entre a coordenada do vértice e a coordenada final da label
                'leva em conta o sentido da polilinha, para sempre mover para fora dela
                Dim f = If(s > 0, -1, 1) * pdr.Value

                'itera nos vértices:
                For i = 0 To pl.NumberOfVertices - 1
                    Dim pt As Point3d = pl.GetPoint3dAt(i)

                    'procura um cogopoint nas coordenadas deste vértice
                    'aqui podia criar uma query num pointgroup, mas fica como exercício
                    For Each cid In Autodesk.Civil.ApplicationServices.CivilApplication.ActiveDocument.CogoPoints
                        Dim cogo As CogoPoint = cid.GetObject(OpenMode.ForWrite)
                        If cogo.Location <> pt Then Continue For

                        'se encontrou um cogopoint, calcula a bissetriz das arestas do vértice
                        Dim pAntes As Point3d = pl.GetPoint3dAt(If(i = 0, pl.NumberOfVertices - 1, i - 1))
                        Dim pDepois As Point3d = pl.GetPoint3dAt((i + 1) Mod pl.NumberOfVertices)
                        Dim vAntes As Vector3d = pAntes.GetVectorTo(pt).GetPerpendicularVector
                        Dim vDepois As Vector3d = pt.GetVectorTo(pDepois).GetPerpendicularVector

                        'reseta a posição da label antes de reposicionar:
                        cogo.ResetLabel()

                        'move a label para a nova posição
                        cogo.LabelLocation = pt.Add(f * vAntes.Add(vDepois).GetNormal)

                    Next
                Next
                'aplica as alterações e faz regen
                tr.Commit()
                ED.Regen()
            Catch
                MsgBox(Err.Description)

            End Try
        End Using
    End Sub
End Class


Eu usei o Visual Studio 2010 para compilar a dll e compilei para a versão 2014, que deverá funcionar também no 2015 e 2016.

Agora, é carregar com o NETLOAD e usar, veja o resultado:

Percebe a diferença?

É isso!!!!

Fica com exercício criar um algorítimo mais eficiente para encontrar cogopoints nos vértices da polilinha.

Veja que o programa tem um controle de erros (try, catch) para evitar erros fatais.

C3DRENESG4 - Planilha de Drenagem

0 milhões de comentários
Hoje vou postar mais um vídeo sobre o C3DRENESG4, agora mostrando uma planilha de drenagem e a operação da mesma.

Espero que tire a maior parte das suas dúvidas!!!


Gostou do vídeo? Acesse o canal e toca esta playlist!!!

Meu plugin não instala!!! - Parte 2

0 milhões de comentários
Bom dia pessoal!!!

Dando continuidade ao post "Meu plugin não instala!!!" e também melhorando a ajuda do C3DREENSG4, fiz um vídeo explicando como instalar os plugins que desenvolvo!!!

Existem 2 maneiras, ou melhor 3, de instalar plugins .NET:


  1. Usando o comando NETLOAD
  2. Usando o novo esquema ".bundle"
  3. Usando o instalador da loja de aplicativos da Autodesk
Para o primeiro método, usando o NETLOAD, assista este vídeo:



Para o segundo método, usando o esquema ".bundle", veja este vídeo:


Para o terceiro método, basta baixar o instalador na loja da Autodesk, e executar. Na verdade, este método é parecido com o segundo.

Nas três situações é necessário desbloquear as DLLs e arquivos de ajuda. O windows bloqueia por padrão estes arquivos. o procedimento é bem simples. Basta assistir os vídeos para entender, ok?

Ah, você notou que os dois vídeos acima falam sobre o C3DRENESG4, certo? Estou produzindo estes vídeos no intuito de facilitar o aprendizado de uso do mesmo, então acesse o meu canal no YouTube agora mesmo e assista os demais vídeos!!!

Mola - Kit estrutural - sua aula de engenharia nunca mais será a mesma!!!

0 milhões de comentários
Esta semana chegou o meu kit Mola!!!

Olha que bacana:


Como?

Não sabe o que é?

Olha a página oficial!!!

Se você é estudante de engenharia, pode ser bastante útil!!

Eu que já fui estudante, mas acreditei no projeto e resolvi apoiar quando estava em fase de levantamento de fundos no catarse.

 


Bem, assista o video!!!

Quem sabe aquela aula de estruturas fica menos chata ao observar um pórtico espacial com contaventamento (nome bonito né!!!) sob ação de forças externas!!!


Obviamente a minha baixinha de 7 anos já adorou o brinquedo do papai, hehehehe queria pra ela!!!




C3DMEMO - Atualização

0 milhões de comentários
Chegou a mais nova versão do C3DMEMO!!! 


Como, ainda nãoo sabe o que o que é o C3DMEMO?
É o melhor plugin de memoriais descritivos que existe, hehehe

Ele trabalha dentro do AutoCAD e também no Civil 3D, a partir da versão 2012 até a versão atual!!!

Com ele é fácil criar memorias descritivos de lotes e parcelamentos em praticamente qualquer formato!! 

Quer gerar a planta com descrição? É possível!!

Quer fazer o memorial de todos os lotes? Sim!!!
Quer gerar tabelas de locação dos lotes com coordenadas locais, UTM ou mesmo em Latitude/Longitude? É claro!!!

Ah, mas você quer testar primeiro, sem problemas, é só baixar aqui

Instalar e usar!!!

A versão demonstrativa permite processar até 5 lotes por vez. Se você registrar uma licença demonstrativa, válida por 15 dias, poderá testar o programa sem restrições.!! Registre, é de graça!!

Veja alguns exemplos do que ele pode fazer:

Tabela de locação:

Memorial de texto:


Planta e descrição:


A planta pode ser centralizada pelo lote ou pela quadra!! A descrição, o preenchimento dos dados e geração da folha é automático!!

Ah, sim, os templates são fáceis de editar e podem ser salvos!! no pacote do programa vão alguns exemplos e a ajuda do programa contem tutoriais para você aprender a personalizar!!!



Autodesk University 2015

0 milhões de comentários
E mais um Autodesk University se passou no Brasil!!!

Obrigado a todos os participantes principalmente aqueles que prestigiaram a minha apresentação e votaram para eu concorrer ao passe pro AU Las Vegas!!!

Foi quase, fiquei em segundo lugar!!!, Parabéns Adriano!!!



Foi muito bom rever os amigos, principalmente aqueles de um certo grupo de whatsapp que ficaram combinando o happy hour por seis meses, né Daphne e Daniel!!!


Ano que vem tem mais!!!

StreetView no AutoCAD? Sim!!

0 milhões de comentários
Esta semana estava fazendo um projeto de sinalização e a todo momento precisava acessar o StreetView para tirar dúvidas do local.

Bem, uma, duas, dez... vezes fazer isso, tudo bem, mas já pensou se tivesse uma forma de "linkar" o AutoCAD ao StreetView?

Tipo, você escolhe um ponto na tela, insere a imagem do Google Maps com o IMPORTGMMAP e abre a tela do StreetView ao lado, numa Pallet, como aquela do Properties.

Aí se você move este ponto, a imagem é atualizada. Se você navega pela imagem, a posição no AutoCAD é atualizada, mostrando inclusive o lado que o observador olha.

Interessou? Veja:


Tpa quase pronto!!!

Semana que vem deve estar disponível no TBN2CAD!!!

Já está disponível!!!!!!! link:

http://tbn2net.appspot.com/showprog?progid=STREETVIEW


Se tiver sugestões, mande!!!

Meu plugin não instala!!!

0 milhões de comentários
Bom dia!!!

Hoje vou postar uma pequena dica para aqueles que estão tendo problemas em instalar plugins no AutoCAD.

Bom, basicamente o usuário baixou e descompactou mas quando vai fazer o NETLOAD, ou mesmo instala o plugin baixado da loja de aplicativos da Autodesk, usando o instalador, simplesmente não carrega.

Porque isso acontece:
Você está usando o .net framework 4 ou superior. O que é bom!!

Assim, o windows bloqueia a execução de DLLs e também de arquivos de ajuda de extensão CHM.

Em todo caso, é fácil resolver.

Com o AutoCAD fechado, clique o botão direito do mouse sobre a DLL ou CHM.

Clique Propriedades

Clique o botão Desbloquear na aba Geral:


Abra o AutoCAD e faça o NETLOAD novamente.

Ainda assim não deu certo?

Neste caso, vamos ter de radicalizar um pouco...

Feche o AutoCAD.

Vá até a pasta de instalação do mesmo e localize Acad.exe.config:


Marque este arquivo para poder ser editado:


Agora, abra-o com o NOTEPAD (bloco de notas). Deverá se parecer com isso:


Inclua estas linhas logo após o primeiro <configuration>:

<runtime>
<loadFromRemoteSources enabled="true"/>
</runtime>

Vai ficar asssim:


Pronto. Salve e feche.

Agora, abra o AutoCAD e faça o NETLOAD.

Se você usou o instalador da Autodesk, não será necessário fazer o NETLOAD, pois o AutoCAD carrega automaticamente os plugins que estão na pasta de plugins.

É isso.

C3DMEMO LegalDescriptionCreator

0 milhões de comentários
Um pequeno vídeo mostrando como instalar e usar o C3DMEMO, para criar memoriais descritivos no Civil 3D e no AutoCAD também!!! Desculpem a tosqueira, hehehe ainda tô ensaiando essa coisa de fazer vídeos!!!



No mais, teste o programa gratuitamente com limitações.


Para testar sem limitação, basta registrar uma licença demo por 15 dias, é grátis!!!

Vídeo de apresentação C3DRENESG

0 milhões de comentários
Olá pessoal,

Hoje vou postar o vídeo que um camarada, o Guilherme fez sobre o C3DRENESG4, sobre redes de esgoto!!

Se você está tendo dificuldade com o programa, considere assistir!!!


Ah, na ajuda do programa tem alguns tutoriais também!!

Tem tutorial para configurar os estilos do Civil 3D, tutorial ensinando como montar o Parts List, como definir regras, tem também tutorial para lançar a rede de drenagem e esgoto... Em fim, tem muita informação, veja:


Autodesk University 2015

0 milhões de comentários
Olá pessoal!!!

Este post é para convidá-los para ao Autodesk University 2015!!!


Mas, o que é o AU???

É o maior encontro dos profissionais de design, projeto e engenharia do Brasil e já está na quinta edição!!!

Ah, já disse que serei palestrante este ano?? 
Veja aqui a lista do Palestrantes deste ano

O tema que irei palestrar é  "Ampliação da capacidade exportadora de commodities da região Norte do Brasil (EFC - TFPM - TEGRAM )"

Nele irei falar um pouco sobre as empresas e os projetos desenvolvidos.
Veja a descrição da sessão aqui

Veja alguns dos projetos que compõe a expansão da capacidade exportadora do Maranhão:

Estrada de ferro Carajás (acervo Vale)

Porto do Itaqui (Acervo Porto Itaqui)

Terminal de Grão do Maranhão - TEGRAM (Acerto Porto do Itaqui)

Curioso?? Então inscreva-se já!!

Ah, e os brindes??? 

Mas é claro, este ano serão sorteados pendrives com os programas que desenvolvo com licenças válidas por 6 meses!!!! Quer testar eles antes?? Sem problemas, é só registrar uma licença demonstrativa sem custo algum!!!


AutoCAD Civil 3D 2014 Fail

0 milhões de comentários
Olá pessoal!!!

Desta vez vou fazer um post mais, digamos.... problemático!!!

Vamos lá,
Hoje esta eu aqui gabaritando algumas seções e extraindo as áreas destas seções com o DDM.

Até tudo bem, áreas levantadas e volumes distribuídos e tal. #SQN......

Ao observar o volume de corte, notei que ele dava a metade do valor que deveria dar!!!!

Só que neste caso, metade significa 350 MIL METROS CÚBICOS apenas!!!

A situação foi a seguinte: o DDM, obtém o valor da área pelo "Material Section", que está na Section View. Meus agradecimentos ao pessoal da API do Civil 3D por não disponibilizar um método ou função para retornar a área desta "Material Section".

Sendo assim, como bom brasileiro,  "The Brazilian Way of Doing Things", resolve a questão.
Então dei um jeito de "explodir" a "Material Section", que vira um bloco, que ao ser explodido, vira uma hachura. Simples né? A hachura "expõe" a propriedade ÁREA, que é visível no properties:


Agora, observem.
A hachura contem dois "loops" ou "boundaries".

Se seleciono a hachura, vejo o valor da área no properties. Se faço isso com as polilinhas separadamente, também vejo.

Agora olha que legal!!!!
A área da hachura, que deveria ser igual a soma das áreas das polilinhas, está errada!!!!

Claro que testei em outras versões do AutoCAD (2012, 2016) e até no ZWCAD 2015.
Somente o AutoCAD Civil 3D 2014 apresentou o bug.

Se você está curioso, veja o dwg aqui

Então, agora você entende porque na EULA está escrito que não há garantias de que o software (qualquer um mesmo) está livre de bugs???


C3DMEMO - Atualizações

0 milhões de comentários
Então, já testou o C3DMEMO?

Editado 17-06-2015:
Agora o C3DMEMO também está no Autodesk Exchange Apps!!!


Ainda não? então testa!!!

Mas o que ele é mesmo? É um plugin para gerar memoriais descritivos de lotes ou subdivisões de áreas.

Roda no AutoCAD puro usando polilinhas e blocos atributados, ou no Civil 3D usando os Parcels.

Esta semana fiz algumas atualizações:
  • Possibilidade de descrever o lote em sentido horário ou anti-horário
  • Informações sobre segmento em arco: ângulo da corda, lado (direito ou esquerdo) e sentido (horário ou anti-horário) do segmento
  • Formatação de ângulos como Rumo.
Mas é fácil de usar? Se é!!!

Imagine um memorial assim:

LOTE 0: Urbano localizado na RUA C, e situado no Loteamento Residencial de propriedade de FULANO DE TAL, com uma área de 674,025 m² (seiscentos e setenta e quatro metros quadrados  e  três decímetros quadrados) e com perímetro de 117,604 m, conforme Levantamento Planimétrico executado em campo. Inicia-se a descrição do perídmetro do imóvel no marco 2 nas coordenadas N= 7.987.178,912 m e E= 784.320,868 m  deste confrontando ao LESTE com "LOTE 11" e seguindo por um azimute de 245°13' 22,429"  uma distância de 37,500 m chega-se ao marco 2 nas coordenadas N= 7.987.163,197 m e E= 784.286,821 m  deste confrontando ao OESTE com "RUA C" e seguindo por um azimute de 335°13' 22,429"  uma distância de 30,000 m chega-se ao marco 3 nas coordenadas N= 7.987.190,435 m e E= 784.274,248 m  deste confrontando ao OESTE com "RUA E" e seguindo por um azimute de 65°13' 22,429"  uma distância de 3,415 m chega-se ao marco 4 nas coordenadas N= 7.987.191,866 m e E= 784.277,349 m  deste confrontando ao NORTE com "RUA E" e seguindo por um azimute de 103°2' 51,110"  uma distância de 43,151 m chega-se ao marco 5 nas coordenadas N= 7.987.182,125 m e E= 784.319,386 m  deste confrontando ao LESTE com "LOTE 02" e seguindo por um azimute de 155°13' 22,429"  uma distância de 3,538 m chega-se ao marco 1 inicial desta descrição.

Note que a maior parte do texto é estática (a parte destacada em amarelo e que se repete a cada segmento do polígono), isto é, não muda. O restante é só preencher com os valores de cada lote.

Então dá pra criar uma template, de como o texto deve ser formatado e simplesmente indicar quais lotes devem usar esta template.

O programa permite justamente isso. Veja:

Começa com a lista de quadras:

Aí, cada quadra tem uma lista de lotes:


Por fim, cada lote tem uma lista de segmentos, que podem ser em arco ou retas:

Percebe?
Cada item que pode mudar é formatado de forma que o usuário pode escolher, na imagem acima, escolhi a propriedade Comprimento:
Na imagem ela aparece selecionada assim:

[Comprimento:(CaracSepDecimal:Virgula|CasasDecimais:3|Unidade:m|MostraUnidade:SimComEspaco|CaracSepMilhar:Ponto|FNumero:Numeral)]

Veja na imagem acima, isso pode ser modificado no quadro da esquerda. As propriedades são autoexplicativas. No fim, o resultado é o exemplo do início do post.

Ah, sim, o programa interpreta sozinho os confrontantes e lados. Até mesmo qual deles é o da frente!!

Dá pra gerar tabelas também, veja o tutorial aqui

Teste hoje mesmo!!!

Civil 3D - Ligar Cogo Points

0 milhões de comentários
Vamos voltar um pouco mais nas raízes deste blog, hehehe

Então, vamos escrever um programinha para resolver um pequeno problema:

Adicionar vértices em uma polilinha para que esta passe por Cogo Points do Civil 3D

Primeiro vamos ver como era a polilinha antes de processar:


Agora como ela ficará após processar:


Percebe a diferença?
Agora a polilinha passa pelos Cogo Points do Civil 3D

Utilidade disso???
Bem, imagine que você precise ligar os pontos de um eixo de estrada com 3 mil pontos...
Faz uma polilinha com muito menos que isso, passando pela "média" desses pontos e roda a lisp....
Seja criativo!!!!


Antes, vamos ver a receita do bolo:
  1. Pedir a seleção dos Cogo Points
  2. Pedir a seleção da polilinha
  3. Pedir uma distância de referência, para testar se o ponto é válido
  4. Em cada ponto, fazer:
    1. Obter a coordenada do cogo point
    2. Se a distância do ponto em relação à polilinha for maior que a distância pedida, pula pro próximo ponto
    3. Calcular a posição relativa do ponto na polilinha
    4. Armazenar esta posição e a coordenada do cogo point
  5. Ordenar os pontos da lista que foi obtida no looping acima
  6. Redefinir os vértices da polilinha, usando estes pontos
  7. Enfeitar o programinha
  8. Curtir o blog do neyton!!!!

Bem simples né?

Agora o código:

;|ADDVERTPL
  procura nos cogopoints selecionados os que poderão fazer parte da
  lista de vertices de uma polilinha 2d e adiciona vertices a esta pl
autor:
neyton luiz dalle molle
engenheiro civil
neyton@yahoo.com
http://tbn2.blogspot.com
licença de uso: free, mas mantenha os créditos.
|;


;liga as funções VL*
(vl-load-com)

;define uma nova função:
(DEFUN C:ADDVERTPL (/ SS PL LST ent vla pt pproj dist)
  ;controle de erros e undo e redo
  ;veja http://tbn2.blogspot.com para habilitar esta subrotina
  ;(tbn:error-init nil)

  

  ;pede a seleção de cogo points
  (SETQ SS (SSGET '((0 . "AECC_COGO_POINT"))))

  ;pede a seleção de uma polilinha 2d
  (SETQ PL (vlax-ename->vla-object (CAR (ENTSEL "\nSelecione a polilinha"))))

  ;pede a distancia de busca
  (setq dist (getdist "\nQual a distancia de busca <2>")
    dist (if dist dist 2))
  

  ;cria uma lista de coordenadas ((param (coordx cordy)) ...)
  (SETQ LST NIL)
  (
REPEAT (SSLENGTH SS)
  
    (
SETQ ;pega o primeiro ponto
          ENT (SSNAME SS 0)
      VLA (vlax-ename->vla-object ENT)

      ;calcula suas coordenadas
      PT  (LIST (vlax-get-property VLA "easting")
            (
vlax-get-property VLA "northing"))

      ;projeta o ponto na polilinha, usando p plano xy como referencia
      pproj   (VLAX-CURVE-GETCLOSESTPOINTTOPROJECTION PL PT '(0 0 1)))

    ;se a distancia do ponto projetado ao cogopoint for menor que uma distancia
    (IF    (< (DISTANCE PT pproj) dist)
      (
SETQ LST (CONS (LIST (VLAX-CURVE-GETPARAMATPOINT PL pproj)
                PT)
              LST)))

    ;passa pro proximo cogopoint
    (SSDEL ENT SS)
  )
 ;fim do repeat


  

  (SETQ ;ordena a lista
        LST (VL-SORT LST '(LAMBDA (A B) (< (CAR A) (CAR B))))

    ;monda uma lista de coordenadas '(x y x1 y1 x2 y2....)
    lst (APPLY 'APPEND (MAPCAr 'CADR lst))

    ;cria uma safearray da lista acima
    lst (VLAX-SAFEARRAY-FILL
          (VLAX-MAKE-SAFEARRAY
        VLAX-VBDOUBLE

        (CONS 0 (1- (LENGTH LST))))
          LST))
  ;faz a polilinha adotar as coordenadas colculadas
  (VLA-PUT-COORDINATES PL lst)

  ;reastaura o controle para o autocad
  ;(tbn:error-restore)
)

(
prompt
"ADDVERTPL carregado!!!
visite: http:\\\\tbn2net.appspot.com
"
)
(
princ)



Simples né?

Este programinha tem o intuito de mostrar como pode ser útil saber programar.... Imagine conectar os pontos "na mão"???

Curte aí!!!

Civil 3D - Visual Lisp - Converter blocos em cogopoints

0 milhões de comentários
Hoje vamos estudar um pouquinho de visual lisp no Civil 3D.

O problema:
Você recebeu um desenho de um escritório qualquer, que é a topografia de uma área.
Um dia o desenho foi do Civil 3D e tinha lá seus milhares de pontos de levantamento.
Como o cliente final quer AutoCAD puro, estes pontos foram explodidos.
Agora você quer restituir a triangulação com estes pontos por um motivo qualquer.
Existem pontos que não devem entrar no modelo, tais como fundo de PV ou coisa assim.
Então não dá para simplesmente usar "Drawing Objects" na nossa superfície.
Filtrar manualmente é inviável, pois são muitos pontos.

Solução 1:
Data Extraction, simples assim. O comando é DATAEXTRACTION
Considerações para esta solução:
Exploda mais uma vez os blocos e observe que os pontos se tornam, em geral, um MTEXT, que um dia foi a LABEL do COGOPOINT do Civil 3D e um POINT ou LINE, que representa a posição do ponto em si.
Note que o dataextraction será feito nestes MTEXT. A posição ficará levemente deslocada, pois o ponto de inserção do MTEXT não é necessariamente a coordenada do ponto. Bem, é só mover tudo depois.
Problema com esta solução:
Se algum ponto teve sua label "strechada" a posição ficará incorreta. O "Z" do MTEXT pode não ser o "Z" da coordenada do ponto, mas se estiver no conteúdo do MTEXT não é problema.

Solução 2:
Criar um "lispezinho", só de farra, hehehe
Analise um dos pontos. Qualquer um. Se explodimos ele, gera um POINT e um MTEXT, em geral. O bloco original está nas coordenadas exatas do cogopoint original. Só precisamos então obter o conteúdo do MTEXT e nele localizar a descrição e o nome do ponto. A cota pode ser descartada, uma vez que está na coordenada de inserção do bloco.
E como faríamos esta lisp?
Bem, primeiro, vamos pensar em como seria pra fazer "na raça", "na mão", "like a estagiário":


  1. Selecionar todos os pontos
  2. Obter a coordenada do ponto de inserção
  3. Em cada um deles, explodir
  4. Obter o MTEXT
  5. Ler o conteúdo do MTEXT
  6. Criar um cogo point do Civil 3D
  7. Definir seu nome e descrição com o valor que está no MTEXT
  8. Voltar em (2) até processar todos os pontos
  9. Fim
Simples, né?


Veja, e resumo é isso. Agora é só estudar "comofas" cada um dos passos acima dentro de um ambiente qualquer de programação. Escolhemos o LISP (por que será hein???)

No mais, é só enfeitar o código depois de pronto, colocando umas mensagens para o usuário e fornecendo um comando que ele possa chamar na linha de comando do Civil 3D.

O resultado final será esta lisp:


;|
blkx2cogo
lisp para converter blocos que foram cogopoints e foram explodidos
em cogopoints novamente
requisito: civil 3d 2007 a 2015
Autor: Neyton Luiz Dalle Molle
Engenheiro Civil
http://tbn2.blogspot.com
licença de uso: free, mas mantenha os créditos.
|;


;habilita as funções vla*
(vl-load-com)

;define um novo comando: blkx2cogo
(defun c:blkx2cogo (/ acadver civilver civilapp civildoc
          civilpts blks ss ent vla blkdef txt o lsttxt cogopoint
)

  ;controle de erros e undo e redo
  ;veja http://tbn2.blogspot.com/2006/10/avaliao-de-erros.html
  ;para habilitar esta subrotina
  ;(tbn:error-init nil)

  

  ;obtem algumas variaveis
  (setq
    ;qual a versão do autocad?
    acadver  (substr (vla-get-version (vlax-get-acad-object)) 1 4)
    

    ;qual a versão do civil 3d?
    civilver (cadr (assoc acadver
               '(("17.0" "4.0") ;2007
                 ("17.1" "5.0") ;2008
                 ("17.2" "6.0") ;2009
                 ("18.0" "7.0") ;2010
                 ("18.1" "8.0") ;2011
                 ("18.2" "9.0") ;2012
                 ("19.0" "10.0");2013
                 ("19.1" "10.3");2014
                 ("20.0" "11.0");2015, incluir outras
                 )))

    ;obtem o aplicativo Civil 3D
    civilapp  (vla-getinterfaceobject
        (vlax-get-acad-object)
        (
strcat "AeccXUiLand.AeccApplication."
            civilver))

    ;obtem o ducumento atual do Civil 3D
    civildoc  (vla-get-activedocument civilapp)

    ;obtem a coleção de pontos do documento atual do Civil 3D
    civilpts  (vlax-get-property civildoc "points")

    ;obtem a coleção de definições de blocos do autocad
    blks (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))

    ;pede a seleção de blocos inseridos no desenho
    ss   (ssget '((0 . "INSERT")))
    )


  ;repita para cada bloco inserido que foi selecionado
  (repeat (sslength ss)
    ;obtenha a definição do bloco inserido
    (setq ent    (ssname ss 0)
      vla    (vlax-ename->vla-object ent)
      blkdef (vla-item blks (vla-get-name vla)))

    ;procura na definição, o MTEXT com o conteudo que queremos
    (vlax-for o blkdef
      (if (= "AcDbMText" (vla-get-ObjectName o))
    (
setq txt o)))

    (
setq
      ;desmonta o texto em uma lista
      ;"{\\C7;2137\\P7.45\\PP_A}" -> ("2137" 7.45 "P_A")
      lsttxt (read (vl-string-subst " \"" "\\P"
             (vl-string-subst "\" " "\\P"
               (vl-string-subst "\")" "}"
             (vl-string-subst "(\"" "{\\C7;"
              (vla-get-TextString txt))))))

      ;cria um cogopoint na mesma posição do bloco original
      cogopoint (vla-add civilpts (vla-get-insertionpoint vla)))

    ;redefine a descrição do cogopoint
    (vlax-put-property cogopoint "rawdescription" (caddr lsttxt))

    ;redefine o nome do cogopoint
    (vlax-put-property cogopoint "name" (car lsttxt))

    ;retira o bloco da seleção
    (ssdel ent ss)

    ;apaga o bloco antigo
    (entdel ent)

    ;mostra um contador decrescente no canto inferior esquerdo da tela
    (grtext -2 (itoa (sslength ss)))

    )
 ;fim do repeat

  ;reastaura o controle para o autocad
  ;(tbn:error-restore)
  

  ) ;fim do defun

;mensagem após o appload
(princ
"blkx2cogo carregado
Autor:neyton@yahoo.com
Use blkx2cogo para usar esta lisp"
)

;finaliza
(princ)



Abstraia o código e leia somente os comentários


Você verá que é a receita do bolo que escrevemos acima. No mais, procure na ajuda, como é a sintaxe das funções que usamos nesta lisp: defun, ssget, setq, repeat, grtext, funções que começam com VLA*, 

Civil 3D - Tutoriais - PartBuilder

0 milhões de comentários
Olá, boa noite!!

Esses dias teve uma discussão num certo grupo de whatsapp, sobre o PartBuilder, do Civil 3D.

Pra quem não sabe, o é o programa responsável por criar as estruturas e tubos usados nas PipeNetworks.


Bem, não é tão complicado mexer nele, principalmente se você já trabalhou com blocos dinâmicos e com constraints no AutoCAD.

O tutorial é um pouco extenso, mas está bem explicado. Postei o tutorial na ajuda do C3DRENESG4, até para que você conheça mais sobre ele também, então clica!!!

Memorial descritivo modelo INCRA

0 milhões de comentários
Olá, gostaria de pedir ao interessados em memoriais descritivos padrão INCRA, que entre em contato comigo.

Desenvolvi recentemente um programa para geração de memoriais descritivos, que trabalha dentro do Autodesk Civil 3D e AutoCAD e ele pode criar tais memoriais baseados em templates.

A ajuda que peço é justamente neste template (modelo). Se você se interessou, acesse a página do programa:

http://tbn2net.appspot.com/showprog?progid=C3DMEMO

Baixe o programa e teste gratuitamente por 15 dias!!!

Sua ajuda será de grande valia e vale um desconto de 20% na aquisição da licença definitiva!!!

Veja algumas telas do mesmo:
Tela de criação do template:



Memorial criado em texto para Word:


Folha croqui de lote:



Tabela gerada no AutoCAD:

Civil 3D - Alinhamento de Ferrovias - um pequeno "bug"

0 milhões de comentários
Olha só, nas propriedades dos alinhamentos de ferrovias no Civil 3D, o desenho da bitola está errado.
Bem, se é essa a informação que se quer passar.

Em ferrovias falamos na bitola ( http://pt.wikipedia.org/wiki/Bitola ) da mesma, que é a distância entra as faces internas do boleto e não a distância dos eixos dos trilhos.

Isso porque uma mesma bitola pode assumir qualquer tipo de trilho.

Exemplo: a EFC - Estrada de Ferro Carajás adota o trilho TR-68 ( http://www.trilhos.com.br/trilho-padrao-tr.html ) em bitola larga ( 1600 mm ) enquanto boa parte da Estrada Transnordestina é em TR-37 e em bitola métrica ( 1000 mm )

Do jeito que está precisamos fazer contas para chegar as dimensões "entre eixos" dos trilhos, levando em conta que será:

 Distancia entre eixos = Bitola + Largura do Boleto 


Na imagem abaixo, vemos como está no civil 3d:


Abaixo vemos como a imagem deveria ser:

De qualquer forma, mandei um email para Autodesk, alertando sobre isso.

DDM - Preview da distribuição

0 milhões de comentários
Olá, pessoal!!

Este post é para informar que o DDM agora conta com um preview do diagrama de distribuição de terraplenagem, o DDT.

Este preview aparece na aba dos resultados, veja:


Note, o próprio programa é quem calcula e desenha esse preview!! Antes era necessário "desembaralhar" à mão, diretamente no AutoCAD.

Bem, ainda não está perfeito, mas já está muito bacana!!! Teste agora!!!

O que é o DDM???

O DDM é um programa que calcula o diagrama de distribuição de terraplenagem, como o diagrama de Bruckner. Só que ele faz isso automaticamente, otimizando a distribuição, indicando empréstimos e botafora e muito mais!! Veja aqui um estudo de caso

Baixe agora!!!

EXPGE - ZWCAD e GstarCAD

0 milhões de comentários
Fala gente, tudo bem?

Este post é pra falar que o EXPGE agora também roda no GstarCAD 2015 e ZWCAD+ 2015!!!

Além, claro do AutoCAD

Agora, você poderá fazer o CAR de uma maneira ainda mais fácil!!

Exporte o seu DWG para KML, para ser visualizado no Google Earth e também importe o KML para o AutoCAD, ZWCAD e GstarCAD com o plugin EXPGE!!

O que está esperando??

DDM - Distibuição de terraplenagem - Estudo de caso

0 milhões de comentários
Recentemente fiz umas modificações no programa DDM, para calcular a distribuição de terraplenagem pelo diagrama de Bruckner.

Particularmente eu acho chato pra caramba ficar fazendo isso à mão:


Mas tem doido que faz, hehehehe

Sim, eu sei que o Civil 3D faz o desenho do diagrama. MASSSSSSSSSSSSS......

Sentiu o "mas"?

Ele não distribui!!! Só desenha.


Bom, a ideia por traz do DDM é justamente fazer a distribuição.

O problema é que ficava meio subjetivo e sempre me questionavam como fazer a compensação  lateral

Bem, primeiro, é necessário entender como o programa funciona.

Depois, saber como obter os dados, processar e obter o resultado

E pronto.

No fim, obter o desenho da distribuição:

Ou em forma de planilha:


Gostou da idéia?

Teste o programa agora mesmo!!!

Disponível para Civil 3D 2012 em diante

AU 2014 - Certificado de Palestrante

0 milhões de comentários
Olá pessoal!!

Este post é para agradecer a todos os participantes do AU 2014 que prestigiaram a minha palestra!!!

Estendo este agradecimento a toda equipe da Autodesk por promover este evento espetacular!!!

Hoje recebi meu certificado de palestrante, vejam:
Aos que  participaram, meu muito obrigado!!!

Ah, o link para o material da palestra é este: material AU 2014


LinkWithin

Related Posts Plugin for WordPress, Blogger...