Visualizar arquivos SLD ou SLB

Dando continuidade ao post anterior, sobre slides e bibliotecas, vamos ver um visualizador de slides, bem útil quando se tem vários slides, seja em arquivos separados, ou numa SLB.

Você pode usar o Slideviewer, também se preferir.

Este programa,
;função para escolher um slide de um biblioteca
;(choose_sld "F:/autocad/drenagem e esgoto/Drenagem/de_fonts.slb")
;(choose_sld "c:/temp/")
(defun choose_sld (local / dcl dir tmp n offset slds num_col
                   num_lin img_witdh img_height img_bkgr img_off
                   key_prf key_scroll key_dlg index
)
  (
setq num_col    2   ;numero de colunas a mostrar no dcl
        num_lin    2   ;numero de linhas
        img_witdh  28  ;largura dos slides (em caracteres)
        img_height 10  ;altura dos slides (em nº de linhas)
        img_bkgr   -16 ;background color quando ativo
        img_off    -2  ;background color quando inativo
        key_prf    "S" ;prefixo das KEY das imagens
        key_scroll "SCROLL"  ;KEY do slide
        key_dlg    "exemplo" ;KEY do dialogo
;obtem a lista de slides, do diretorio, ou SLB:
        slds       (if (vl-filename-extension local);SLB?
                     (mapcar '(lambda (x) (strcat local "(" x ")"))
                             (
slb2list local))
                     (
mapcar '(lambda (x) (strcat local x))
                             (
vl-directory-files local "*.sld")))
;valor maximo do slider
        maxval     (* num_lin num_col
                      (/ (length slds) (* num_lin num_col)))
        offset     maxval
        dcl
        (choose:make_and_load_dcl))

;mostra o dcl na tela:
  (new_dialog key_dlg dcl)
;desenhas as imagens nele:
  (choose:popula_slides offset)
;inicia o dialog
  (if (/= 0 (start_dialog))
    (
setq index (nth index slds)))
;descarrega da memoria
  (unload_dialog dcl)
  index)

(
defun choose:make_and_load_dcl (/ filename file j dcl)
;cria um arquivo temporario
  (setq filename (vl-filename-mktemp "x.dcl")
        file     (open filename "w")
        j        0)
;escreve um dcl nele:
  (write-line
    (strcat key_dlg ": dialog { label = \"escolha a figura\";\n"
            ":row {\n"
            "  :column {// 1 coluna de "
 (itoa num_lin) " linhas visiveis\n")
    file)
  

;escreva uma matriz (linhas/colunas) de imagens
  (repeat num_lin
    (write-line (strcat "   :row {//uma linha de " (itoa num_col) " imagens")
      file)
    (
repeat num_col
      (write-line
        (strcat
          ":image_button {\n"
          "key = \""
 key_prf (itoa j) "\";\n" ;ID da imagem
          "height = " (itoa img_height) ";\n" ;altura, em nº de linhas de texto
          "width = " (itoa img_witdh) ";\n"   ;largura, en nº de caracteres\n
          "action = \"(choose:seleciona_img " (itoa j) ")\";}";acao
          )
        file)
      (
Setq j   (1+ j)))
    (
write-line "}" file))
  

;adiciona o slider:
  (write-line
    (strcat "}\n"
            ":slider {\n"
;barra deslizante a direita
            "layout = vertical;\n" ;barra na vertical
            "key = \"" key_scroll "\";\n"  ;ID da barrinha
            "max_value = " (itoa maxval) ";\n"
            "min_value = 0;\n"
 ;sempre zero
            "small_increment = " (itoa num_col) ";\n"
            "big_increment= "
 (itoa (* num_lin num_col))";\n"
            "action = \"(choose:popula_slides (atoi $value))\";\n"
            "value = "
 (itoa maxval) ";\n"
            "}}\n"
            ":column {:text{key=\"texto\";} ok_cancel;}}"
)
    file)
;fecha o arquivo, carrega o dcl na memoria e apaga o arquivo
  (close file)
  (
setq dcl (load_dialog filename))
  (
vl-file-delete filename)
;devolve o ID do dcl
  dcl)

;função que preenche as imagens com os slides
(defun choose:popula_slides (val / i w h nome)
  (
setq    i 0
    offset  val)
  (
repeat (* num_lin num_col)
;obtem as props do slide
    (setq nome (nth (+ i (- maxval offset)) slds)
          w (dimx_tile (strcat key_prf (itoa i)))
      h (dimy_tile (strcat key_prf (itoa i))))
    

;limpe de (re)desenha o slide
    (start_image (strcat key_prf (itoa i)))
    (
if nome
      (progn ;desenha
        (fill_image 0 0 w h img_bkgr)
        (
slide_image 0 0 w h nome))
      (
fill_image 0 0 w h img_off));desabilita img
    (end_image)
;desabilita imagens nao preenchidas
    (mode_tile (strcat key_prf (itoa i))
      (
if nome 0 1))
    (
setq i (1+ i))))

;função que seleciona o nome do slide
(defun choose:seleciona_img (val)
  (
setq index (+ val (- maxval offset)))
  (
set_tile "texto" (nth index  slds)))


Link(s) da(s) subrotina(s) usada(s):
slb2list
pode ser usado em programas lisp, para que você possa escolher blocos por exemplo, basta ter os slides deles, já vi vários programinhas fazerem isso.
O problema é justamente quando se tem um número elevado de blocos, fica impossível mostrar todos numa única tela, veja como funciona neste:
digamos que você tenha esta biblioteca
, para visualizar ela no autocad, faríamos:
(choose_sld "F:/autocad/drenagem e esgoto/Drenagem/de_fonts.slb")
e teríamos esta tela:


Ao clicar uma imagem em seguida pressionar o botão "OK", o dcl encerra e nos devolve o caminho completo para ele, por exemplo:
"F:/autocad/drenagem e esgoto/Drenagem/de_fonts.slb(112)"

Agora suponha que tenhamos EXTRÍDO os slides dessa SLB (sim é possível) na pasta "C:\temp\"
faríamos:
(choose_sld "c:/temp/")
E obteríamos a mesma tela!!

A resposta seria:
"c:/temp/66.sld"
neste caso.

Analise a lisp, veja que é possível alterar o número de imagens visíveis facilmente apenas alterando o valor de algumas variáveis. Está bem comentado o código, você não deverá ter dificuldades!!!

Bibliotecas de Slides SLB

Você chegou ler aquele post sobre a dimensão dos slides? Cosneguiu usar pra alguma coisa? espero que sim, hehehe

Agora suponha que tenhamos uma biblioteca de slides (*.SLB), e queremos mostrar alguns deles... você sabe os nomes dos slides que que compõe a biblioteca? Se sabe, ótimo, se não sabe, bem, use esta lisp:
;extrai a lista de slides de uma biblioteca de slides SLB

(defun slb2list (filename / file lst str)
  (
setq file (open filename "r")) ;abre o arquivo para leitura
  (repeat 31 (read-char file))    ;pula a informação da SLB
;enquanto nao lê caractere zero:
  (while (/= 0 (setq char (read-char file)))
;leu um caractere diferente de zero:
    (setq str (chr char))
;lê mais 31 então, para formar o nome completo:
    (repeat 31
      (setq str (strcat str (chr (read-char file)))))
;pula o lixo:
    (repeat 4 (read-char file))
;armazena o nome criado na lista:
    (setq lst (cons str lst)))
;fecha o arquivo:
  (close file)
;devolve a lista:
  (reverse lst))


Para usar é simples:
(slb2list "F:/autocad/drenagem e esgoto/Drenagem/de_fonts.slb")
Deverá retornar uma lista parecida com isso:
("65" "66" "teste" "slide")

Pesquisa de opinião

Então povo, me esforcei bastante para escrever essa parada toda, o que vocês estão achando?
  1. massante
  2. chato
  3. médio
  4. legal
  5. muito legal

usem os comentários!!! sugiram, façam críticas (construtivas), tá muito mastigado? tá muito complicado? desembucha!!

Civil 3d - Tutoriais - Parte 5 - Alinhamentos

Alinhamentos!!! Se você teve saco de ler os outros tutoriais, leia esse também!!! Mas já vou avisando, não vou ensinar engenharia, hein!!! Para definir alinhamentos, não precisamos necessariamente ter pontos, superfícies
etc., muitas vezes temos um aerolevantamento "burro", isto é, tudo 2d, e vamos determinar eixos de ruas... mas quando formos fazer o traçado de uma rodovia, aí a coisa muda, pois a topografia é um ponto crucial do processo... Digamos que você tenha um modelo já determinado, aquele do tutorial de superfícies serve. Neste a topografia não foi determinante, uma vez que o projeto geométrico já veio pronto, eu só precisava traçar os eixos, greides e fazer a terraplenagem... Olhe:



Vamos lançar os alinhamentos então!!

podemos fazer isso de duas formas: Traçar todos os eixos com polilinhas e depois converter elas para "Alignmets", ou traçar os alinhamentos diretamente. A princípio, se você ainda não está familiarizado com o C3D, é mais fácil traçar as polilinhas, mas como mostrarei mais pra frente, as vezes isso pode atrapalhar...

O primeiro farei com polilinha, para isso baixe o arquitetônico:







Veja que desenhei uma polilinha, na cor branca, agora irei transformar ela num alinhamento, com o comando CREATEALIGNMENTENTITIES:





Vai aparecer esta tela:



Bem, analisemos (é com s, ou z?) que temos de informar: Primeiro "Site", "site" seriam as locações, num projeto grande, é comum separar em áreas menores e cada uma delas ser tratada independentemente. Num loteamento, como neste caso, poderia criar um "Site" para cada "cul-de-sac" (tem 3 neste), para colocar em cada um deles, os alinhamentos auxiliares,
necessários para modelar os benditos corridors(sim!!! chegarei neles um dia!!) como temos poucos alinhamentos, nem farei uso dos Sites por enquanto, mas saiba que no c3d2007 você obrigatoriamente tem de usar... no 2008, é
obrigatório para os "Grading" que usaremos para fazer um "platô", mais pra frente. Em fim, para
alinhamentos, não vou usar.



O campo "Name", é obvio, no escritório onde trabalho convencionamos chamar de "A0", "A1", "A2", ... "A9", "B0",... "B9", "C0",... , onde cada um deles pode ter até 2000m de extensão, e, a estaca inicial de cada um deles é
múltiplo de 2000m. Mas nada impede que você os chame pelo nome da rua, algo como "Rua Fulano", Não esquente com isso, espaços são aceitos e os nomes SÃO "case-sensitive", isto é, FAZ diferença ser maiúscula ou minúscula.



No "Alignemt style" é onde configuramos como o alinhamento é desenhado, cores, layers, etc. Logo falarei dele, o "Alignment Label set" é onde configuramos quais informações aparecerão, como estaqueamento, PCs PTs, PIs etc. Depois falo dele.



Você pode querer adicionar curvas automaticamente nas interseções, para isso deixe marcado a opção "Add curves bettween tangents", mas para isso seria interessante configurar qual o raio, espiral
usaríamos... Eu sempre deixo isso desabilitado, prefiro fazer as curvas depois. Clique "OK" e teremos:





Como não configurei estilo algum, pode aparecer qualquer coisa, hehehe no caso umas "setas" gigantes...

Vamos configurar então o estilo do mesmo, clique botão direito do mouse sobre o alinhamento (para isso deve deixar a opção de shortcut menu disponível no options), escolha properties no menu, ou use o comando EDITALIGNMENTPROPERTIES e aparece esta tela:



Clique editar o estilo ou criar novo no botão que aparece ao lado no nome do estilo, indicado com a seta vermelha





Teremos uma tela de várias abas, aliás, dos os estilos do Civil 3d são editados da mesma forma, isso facilita muito o trabalho, nela a mais importante como sempre é a aba "Display". Podemos mostrar o alinhamento de formas diferentes, quando estamos em 3d, ou 2d (novamente, para tudo no c3d é assim), em geral, só configuro a visualização 2d mesmo, como neste estilo que uso aqui:



Veja, é possível mostrar as tangentes de uma cor, os arcos de outra e as espirais em outra... A utilidade disso? bem... experimente colocar cores variadas, fica bem interessante!!! Para configurar, apenas clique nos elementos... é meio que "auto-explicativo" hehehe. Na aba "markers" normalmente so configuro o "Point of intersection", para mostrar um bloquinho do autocad no PIs, mas você pode configurar qualquer um dos pontos notáveis, como PC, PT, SC, CS... veja lá....

Digamos que você configurou isso, podemos mostrar o alinhamento como ele ficaria!!!



Ainda deixei o alinhamento selecionado, para que víssemos os "blips" do PI, PC e PT

Melhorou, não? É ainda falta alguma coisa!!! Já até adicionei arcos ao PI, para fazer isso clique sobre o alinhamento e "Edit Alignment Geometry" ou use o comando EDITALIGNMENT





Feito isso, aparecerá uma barra de ferramentas, com todos os comandos necessários para incrementar o alinhamento:





Vou adicionar uma curva circular então escolha:



Aí na linha de comando, responda as perguntas!!! ele Pede: Selecione a entidade ANTES do PI, a DEPOIS (e tem que ser nesta ordem, ok?) e por ultimo ele pede se a curva será maior ou menor que 180 graus, aqui é melhor você fazer um teste para entender a diferença... a principio escolha a opção padrão, que é "lessthan180". Informe o raio, que pode ser
numericamente, ou clicando os pontos. Pronto!!, teremos a imagem:





Selecionei o alinhamento para você ver os "blips", temos o PI, que é um triangulo, o PC/PT, que são bolinhas, etc...
você pode "strechar" qualquer um deles, experimente, veja que a curva mantém a forma, isto é, a curva se
mantém tangente às tangentes do alinhamento. Veja que as extensões das tangentes aparecem em vermelho e tem uma bolinha no PI... isso aparece automaticamente no estilo que configurei.

Vou colocar uma curva composta, para isso o c3d irá perguntar qual a tangente inicial, a final, o comprimento da primeira espiral (10m por exemplo), o comprimento da segunda (10m também, se a curva é menor que 180 (sim) e o raio da curva (50 m por exemplo):





Veja que troquei as cores dos elementos da curva lá no estilo, a curva circular é azul e as espirais verdes, no estilo ficou assim:





Veja que tem trocentos tipos de curva, desde circular até espiral reversa!!! Não vou mostrar todos, é sempre a mesma coisa, selecione isso, aquilo, valor disso, daquilo...
hehehe



E o estaqueamento?? bom, o estaqueamento são labels, basta adicionar labels, mas antes, vamos configurar o alinhamento para informar estacas de 20 em 20m, para isso, acesse este link, se você tiver o c3d 2007, se você tem o 2008, é um pouco diferente, no mais use o comando AECCEDITALIGNMENTLABELS:



Aparece esta tela:



No campo marcado, coloque 20 ele é o "Station Index Increment". Pronto, agora vamos adicionar o estaqueamento...

No alto desta tela, temos os tipos de labels a serem colocadas, são elas:

  • Major Stations, mostram textos nas estacas cheias
  • Minor Stations, idem, estacas "quebradas", ou intermediárias
  • Geometry Points, mostram os PC, PT, PI, SC, CS, ST, TS...
  • Station Equations, mostram textos onde você redefiniu o estaqueamento... evite isso... só complica
  • Design Speeds, mostram pontos onde a velocidade de projeto muda... vai ser útil quando trabalharmos com alinhamentos de rodovias, pois estas velocidades interferem na superelevação
  • Profile Geometry Points, mostra labels no alinhamento nas estacas dos PIVs, PCV, PTV...





Adicione a Major Station por exemplo, veja que talvez seja necessário editar este estilo, clicando no botão indicado:





Aqui é um pouco demorado, mas vamos lá, após clicar no botão, aparece uma janelinha cujo título é "Pick Label Style", onde tem aquele botão multifunção, nele escolha editar:





Vamos ter a tela de edição dos componentes da label e teremos isto:

Adicionei também um componente de texto (Clicando no botão com um "*A", mostrado na figura anterior) e nele coloquei os seguintes valores:



Veja aquele palavrão que aparece na edição do texto:

<[Station Value(Um|FSI|P0|RN|AP|Sn|TP|EN|DZY|W0|OLB)]>, não se assuste com ele, clique nele e veja as opções, clique os botões, não vou colocar imagem aqui, experimente editar!!



Escolhi editar um componente LINHA, onde farei uma marca na estaca, perpendicular ao alinhamento, setei os seguintes valores:





Pronto, isso deverá produzir o efeito a seguir:





Para adicionar um texto no PC/PT, adicionei uma label do tipo "Geometry Points" e nela configurei para
aparecer 3 coisas, uma "marquinha" (adicionando um bloco) uma linha e um texto. O texto é:

<[Geometry Point Text(CP)]>: <[Station Value(Um|FSI|P2|RN|AP|Sn|TP|EN|DZY|W0|OF)]>

De novo, não se assuste, não precisa decorar isso!!! basta chegar no editor de componentes de texto e terás a lista das opções a configurar... Já fizemos isso aqui diversas vezes, olha:



Clicando um dos componentes, as configurações preenchem a tabela da esquerda, experimente alterar as propriedades nela e clique o botão indicado...



Olha como ficou:





Temos então um alinhamento, temos labels.... Lembra daquele esquema que comentei que a gente usa no escritório, de colocar cada alinhamento começando numa estaca?

Experimente o comando EditAlignmentProperties (qual o atalho pra ele? tente responder essa), na tela que aparece, clique a aba "Station Control" e nela, coloque no campo "Station" o valor MÉTRICO da estaca inicial que
você quer que apareça no alinhamento. Por exemplo, eu quero que este comece na estaca 100, logo 100*20 = 2000m. Este é o valor que deve ser posta ali. Pode parecer estranho, vai ficar assim: "20+00" isso tem a ver com a posição do caractere "+" que é configurado no drawing settings, mas não se
incomode com isso, apenas coloque sem o sinal de mais e clique OK, vai aparecer este aviso:





Por enquanto, não se incomode com ele, apenas clique OK... Este aviso serve para te lembrar que os perfis que você desenhou ficarão defasados em relação ao alinhamento, o que comprometerá os Corridors, Superimposeds... ou seja, configure este valor no INÍCIO do projeto!!! Ou você terá problemas!!! até consegui fazer uma lisp pra alterar este valor e "mover" os perfis para a estaca certa, você pode vê-la aqui. Qualquer hora faço um vlx dele (tem gente que só sabe dizer: não funcionou!!! mas nem leu o post todo....). Veja ainda que podemos configurar "Design Speeds" para o alinhamento. O que é isso????? Velocidade de projeto cabeção!!! imagine uma rodovia, para ela determinamos a classe da mesma, o veículo de projeto e o que mais??? a velocidade de projeto!! que servirá para determinar as superelevações, mas por enquanto isso não será explicado... este tutorial fica para quando chegarmos nos Corridors, até porque essa bagaça tá grande demais, huahauhuahahuahuah, se você leu ate aqui, meus parabéns, porque até eu já achei comprido!!! hehehehe!!



Ah, faltou dizer por que desenhar os alinhamentos "By Layout"... Bom, a diferença é que você terá de desenhar as tangentes... só isso, mas posso adiantar o seguinte: as curvas prefira fazer sempre as do tipo "Free Curve", Se for fazer por polilinha, estas dever ter só trechos retos... Sim ele aceita polilinhas com arcos, mas veja o que acontece:





Esta é uma "pline" qualquer, que fica assim:



Veja que as extensões de tangente até o PI não aparecem... isso pode (ou não) ser ruim, agora "streche" um dos pontos:



Pode acontecer isso, perdeu-se a tangência da linha... como eu disse, isso pode, ou não ser ruim... Se for desenhar por layout, e escolher curvas tipo "Fixed" vai acontecer o mesmo, pode-se perder tangencias, sumir PIs... em fim, você tem de ter cuidado no que está fazendo...



É isso...

Abrir alinhamento A0

Abrir alinhamentos prontos

Civil 3d 2009 - programação

Esta semana tive o desprazer de programar visual lisp para o Civil 3D 2009... bem nem comecei ja notei que os caras mudaram novamente os parâmetros de alguns métodos, como o ADD quando aplicado aos Profiles de um alinhamento. A idéia era adicionar o perfil e no 2008, era algo assim:
Add(
[in] BSTR Name,
[in] AeccProfileType ProfileType,
[in] VARIANT ProfileStyle,
[in] double SampleStartStation,
[in] double SampleEndStation,
[in] BSTR LayerName,
[out,retval] IAeccProfile** profile

Note que isto é do help do c3d, em lisp seria:

(setq profile ;o perfil retornado
(cvlm-add ;metodo adicionar
Profiles ;collection Profiles de aum alinhamento
ProfileType ;tipo de perfil{aeccExistingGround,aeccFinishedGround,AeccSuperimposed}
SampleStartStation ;estaca inicial
SampleEndStation ;estaca final
LayerName
))


Então, Já para o civil 3d 2009, fica:

(setq profile ;o perfil retornado
(cvlm-add ;metodo adicionar
Profiles ;collection Profiles de aum alinhamento
ProfileType ;tipo de perfil
))



Ah, o "CVLM-" é proveniente daqui
Note que os parâmetros de estaca inicial, final e layer não são mais necessários.... até vejo isso como uma melhora, pois se precisar adicionar um perfil que tenha uma curva onde o PCV tenha estaca menor que a estaca inicial do alinhamento, no 2008 temos de fazer ums xunxos... não dá pra colocar o "SampleStartStation" antes da estaca inicial do alinhamento...

Agora, custava fazer com que o método ADD no 2009 aceitasse, mas ignorasse, os parâmetros a mais? Sim... você tem de colocar um IF para verificar a versão...

Outro problema interessante, é como o 2008 interpreta as coordenadas do PI de uma curva composta... Nele seria na interseção das tangentes, como era de se esperar, mas no 2007 o mesmo método devolve as coordenadas do PI da curva circular!!!, como se vc prejetasse as tangentes que passam pelo SC e SC!!!, claro uma evolução!!
Quero ver como se comporta no 2009, assim que tiver em mãos a versão Demo

Creio que esteja faltando um pouco mais de engenharia civil e um pouco menos de informática na autodesk... hehehehe

Taludes 2 - a Vingança!!

Lembra do Dtal, tá com pregiça de copiar as rotinas é!!! PEDE PRA SAIR!!! PEDE PRA SAIR!!!, hehehe experimente esta, em vlx. Pra instalar: apenas descompacte ela na pasta do autocad e carregue com o APPLOAD, para usar: depois de carregada, digite DTAL na linha de comando. A rotina que está no vlx é ligeiramente diferente da postada aqui anteriormente, mas faz a mesma coisa, ok?

Erros estranhos no autocad

Alguem já viu este erro: "acdbzombieentity objects cannot be edited in place"? Olha só o screenshot dele:

Pois é, é a primeira vez que vejo isso...
No caso estava tentando editar uma Xref com o refedit no autocad 2006, aí deu essa parada aí e travou... possivelmente seja porque a xref já havia sido editada pelo civil 3d 2008...

até tem algo aqui e aqui, mas sei lá...

RTC3 - 2!

Lembra do rtc3? Então o que achou do programa, interessante né?

Vou postar o VLX da versão que estou usando, mas para ter uma idéia, agora ele tem um DCL para configurar os parâmetros, o que facilita bastante o processo. Ah, coloquei também um opção de mostrar coordenadas geográficas!!
Dá só uma olhada:

E digamos que você queira editar algum parâmetro do ponto, use o ATTEDIT por exemplo:


Se você digitar as coordenadas geográficas (corretamente é claro) a setinha irá indicar estas coordenadas!! Se você alterar o parâmetro GEO para U, as coordenadas serão escritas em UTM, é possível mudar inclusive o referencial, no exemplo usei SAD69. Por outro lado, se você clicar um ponto que esteja em UTM, e alterar o atributo GEO para G, as coordenadas serão convertidas para geográfica!! E sim, se vc "strechar" a linha de chamada, as coordenadas serão recalculadas automaticamente, com uso de reactors.

$e alguem e$tiver interessado no código fonte, podemo$ conver$ar, hehehe!!!
Download

Editor do Visual Lisp

Olha só que interessante, você que está inciando na programação em lisp para o autocad, é bom saber sobre o EDITOR DO VIUAL LISP, e há um material excelente neste endereço, ou neste

ExpGE Exportar para o Google Earth

Experimente agora mesmo a nova versão deste que é o plugin mais popular da minha página!!!

Ele está no pacote TBN2CAD

Neste pacote tem vários programas bem úteis, veja:

EXPGE2, nova versão do EXPGE, que consegue exportar mais coisas e mais rápido
READKML2, nova versão do READKML, para importar para o AutoCAD os arquivos KML gerados no Google
IMPORTGMMAP, que tal importar imagens do Google Maps ou mesmo do Bing Maps para o AutoCAD?
IMPORTGMPTS, então você quer importar pontos com elevação para modelar o terreno? Sim!!!
STREETVIEW, não seria legal ter uma janela do Google Street View no AutoCAD, que mostrasse a posição do seu desenho? Seria? Teste agora!!!

Isso tudo e mais, baixe o TBN2CAD agora!!!






Alguém já quis ver seu desenho/levantamento topográfico desenhado sobre uma foto aérea da área em questão? Putz que pergunta, se você chegou a este blog, provavelmente faz isso o tempo todo...

Mas e quando você não tem a foto aérea, o que fazer? use o Google Earth, claro, é grátis.

Você tem o desenho tem o google earth, mas como colocar o seu desenho nele?

Existem algumas soluções, até mesmo da própria autodesk, mas que sinceramente... bem, use-o.

O plugin para o Civil 3d é muito bom, apesar de você ter de editar os parâmetros do SAD69...

A maioria dos casos você tem o autocad apenas, e quer visualizar seu levantamento sobre a imagem... Para isso, fiz o EXPGE.
É uma ferramenta para auxiliar na decisão do plano de vôo para aerolevantamentos por exemplo, dadas as coordenadas inicial e final você consegue desenhar um retângulo que cubra a faixa de interesse, e verificar se esta atenderá seu projeto.

Sim, porque um plano de vôo mal feito pode causar atrazos e custos desnecessários.

Vamos experimetar com o mapa do Brasil, por exemplo:




Chame o EXPGE na linha de comando, vai aparecer esta tela:




Nela, ajuste o referencial, o fuso (ou meridiano central) e o hemisfério, caso você não saiba calcular, ou não saiba o que é fuso, clique o botão grando com uma interrogação, aparecerá esta tela:




Nela, clique o mouse sobre o local aproximado do seu levantamento, no caso, cliquei sobre a área do estado do Paraná e o EXPGE me informou fuso=22, hemisfério Sul.

Clique "Beleza" (hehehehe), voltará para a tela do EXPGE, veja que o fuso é o 22, caso você saiba o meridiano central, informe-o, o programa calculará o fuso, se souber o fuso ele calcula o meridiano central.

Clique "Beleza" (espaço pra mais uma risadinha, hehehe) novamente. O programa irá coletar os dados de geometria de linhas, círculos, arcos, polilinhas, splines, hachuras e elipses, e escreverá o conteúdo num arquivo de extensão KML, que é reconhecido pelo Google Earth. Se você deixar a caixinha "Abrir o Google Earth ao terminar" marcada, o autocad irá abrí-lo.

Já no Google Earth, os layers das linhas se transformarão nas pastinhas dos "Lugares temporários" possibilitando que você desligue os layers para facilitar o entedimento:

Observe as pastinhas, observe o desenho sobreposto, é ou não é interessante? Muito bom pra impressionar chefes/clientes também, heheheh

Agora, digamos que você quer fazer uma demarcação no Google Earth duma área, "no grito" mesmo, e quer levar esse desenho para o autocad, é possível?

sim!!! Use a ferramente de desenhar polígonos do google earth, depois clique sobre ela e escolha "salvar como", use a extensão KML, ok?

Grave o arquivo em algum lugar, em seguida, no autocad digite READKML, aparecerá a tela abaixo:




Clique o botão ">" escolha o arquivo KML que você salvou, ajuste o seu referencial (normalmente o sad69) e clique o botão "Beleza", e veja a linha desenhada no cad:




A mesma filosofia do EXPGE em relação aos layers é usada: se você criar pastinhas no google earth, as linhas desenhadas irão parar em layers com o mesmo nome da pastinha!!!

Isso facilita "pseudo-digitalizações", que servirão de croquis para trabalhos mais elaborados!!!

OBS: De maneira alguma este programa fornecerá um levantamento acabado, pelamordedeus não me use isso pra dizer que "fez" o levantamento!!! até porque o google earth não é absolutamente preciso, hein!!! Use por sua própria conta, não me responsabilizo pelo seu mau uso!!


No mais é isso, Download aqui!!

Qualquer dúvida ou sugestão, entre em contato!!!

atualmente, disponho de uma versão que exporta blocos como eles são e hachuras com textura, se estiver interessado, veja aqui

Também disponível na Autodesk Exchange Store
Veja a lista de programas que desenvolvo aqui: https://tbn2net.com/programas.php

Civil 3d - Tutoriais - Parte 4 - Superficies

Então tá, digamos que já somos capazes de importar pontos com o Survey, de arquivos de texto, ou do outros programas, e agora queremos gerar as curvas de nível, é porque MDT é um palavrão em muitos escritórios, hehehehe, vamolá!!!



Já abriu o Toolspace? ainda não? putz, então abre!! (na linha de comando digite: ShowTS)




Importe estes pontos no civil 3d, use o tutorial de importar pontos, com o formato assim:

Point Name , Easting , Northing , Point Elevation , Raw Description

Com separador VÍRGULA. Ao importar você verá os pontos assim:



Veja que o estilo de pontos que usei, mostra as informações Name, Point Elevation e Description

Abrir Dwg



Temos os pontos, importei eles e eles caíram no "Point Group" "_All Points", já explicado no tutorial anterior. No toospace, clique com o botão direito sobre Surfaces, e escolha a opção "Create Surface":


Em seguida aparece um quadro onde você escolhe o Estilo, Nome, Descrição, essas coisas.

Aqui, como estamos construindo a superfície por pontos, o MDT é feito por TRIANGULAÇÃO DE DELAUNAY e devemos deixar a opção "TIN Surface" marcada no campo "Type". Já no campo "Name", escolha algo óbvio, como "TERRENO", "TERRENO NATURAL", não vá me usar nomes/layers de arquiteto, que se resumem a "linfina", "lingrossa", heheheh, os arquitetos que me desculpem, mas é complicado trabalhar com alguns desenhos por conta disso.





O estilo, é importantíssimo, pois é NELE que definimos, o que nossa superfície irá mostrar, seja curva de nível, seja declividades etc..., mas primeiro, vamos criar a bendita e adicionar os pontos, clique OK e clique este menu:







Veja que "expandi" a "árvore" de itens do Toolspace até chegar na opção que eu queria: add point, ao fazer isso, escolha "_All Points" e clique "OK":





Pronto, já criamos o modelo, mas ele ainda está cru!!, Isto é a triangulação pode cometer alguns erros danosos ao projeto!!!








A superfície apareceu? Não? o layer ta ligado? então é o estilo dela... no figura anterior, repare no contorno amarelo, ele é a borda da superfície!!! Clique com o botão direito do mouse, sobre o NOME do seu MDT e clique a opção "Edit Surface Style":







Vai aparecer o editor de estilos de superfície, clique a aba "Display", esta é a mais importante, pois controla o que e em que layer as coisas irão aparecer:







Veja que configurei as curvas ( Major Countour, Minor Countour ) e a triangulação, para aparecer no layers que estão ali. Veja que deixei as lâmpadas ligadas, para que apareçam na tela, agora, clique a aba "Countours", clique a propriedade "Countour Intervals", nela, você controla de quanto em quanto as curvas aparecem, coloque "Minor Interval" igual a 1m e "Major Interval" igual a 5m.







OBS: a unidade de medida "m" é metros!!!! se você vê "'" ou "ft", lascou-se, vai ter de começar tudo denovo, as suas unidades estão erradas!!!



Agora clique "OK", e você deverá ter uma surface igual a minha.


Certo, temas a triangulação, temos as curvas... o que falta? Tratar a superfície é claro!!! ou você acha que é só isso????? se achar, tenho pena de você, hehehhe

Analisemos a topografia:






Abrir Dwg da Topografia



Atache a topografia SOBRE o arquivo do civil 3d em que estamos trabalhando, para isso use XREF's:







Em seguida, clique:







Ou use o comando XREF. Em fim, selecione a topografia.dwg, e configure como aparece:







A linha amarela mais grossa é a borda da superfície gerada, veja que ela vai alem da região onde efetivamente há levantamento, limitado pela linha vermelha.... CLARO que aquelas regiões sem levantamento, não podemos ter certeza de como as curvas de nível devem aparecer!!! Estes triângulos fora do levantamento estão ERRADOS. Temos de dizer ao Civil 3d, qual o limite do levantamento, para isso desenhe um poligono que circunscreva os pontos (a linha vermelha), mas que elimina toda a área nonde não há levantamento:







Veja, desenhei uma polilinha vermelha, a qual usarei como limite do levantamento, assim todos os triângulos que estiverem FORA dela, não serão desenhados, consequentemente, não teremos curvas de nível duvidosas FORA do levantamento. Ao clicarmos o menu qua aparece no Toolspace:







Aparece um quadro de diálogo, perguntando o tipo de "boundary", escolha "Outer", para dizer que é uma boundary EXTERNA, deixe o "Non Destrutive Breakline" desmarcado, assim, os triangulos não serão apenas "cortados" serão ELIMINADOS, faça um teste, adicione uma boundary com ele marcado, só pra ver a diferença (deixe os triangulos ligados).

A opção "Mid Ordinate Distance" serve pra dizer como o civil 3d processa os segmentos de arcos, deixe em 1m.







Clique "OK", veja o o que aconteceu: a triangulação se limitou pela polilinha vermelha e a borda final amarela fica circunscrita pela vermelha:





Agora, ainda faltam as BREAKLINE, ou linhas obrigatórias, mencionadas na parte 2. O que elas fazem?

Analise a figura:
surf_triang_ruim




As linhas tracejadas na cor marrom, são os bordos de uma estrada, olha a triangulação em vermelho, veja que ela cruza essas linhas, veja também que um dos triângulos sai de uma lado da rua e vai até o outro lado.

O que você acha? está certo? Não, não está... Façamos uma linha (a linha) ali para traçar um QUICKPROFILE:







É só seleciona a linha magenta escolher os estilos e o ponto de inserção.

Este é um perfil rápido, que se apagará assim que você clicar o SAVE, por isso, após inserir ele, use o comando EXPLODE nele.







Em vermelho vemos o perfil do terreno ANTES de adicionar as breaklines e em azul, DEPOIS de adicionar as breaklines.



Creio que dispense comentários... Imagine que tivéssemos 2km de estrada com a triangulação toda ferrada... Os volumes de corte e aterro dariam totalmente errados!!







Veja que agora, a triangulação acontece DENTRO da pista e ENTRE a pista e o muro, o se fizessemos a seção novamente, a triangulação faria o nosso barranco aparecer corretamente (linha azul do perfil anterior)!!



Por isso insisti tanto nas partes anteriores de tutorial, que se desenhasse o levantamento com polilinhas 3d, assim, poderiamos usar TODAS elas como breaklines!!!

Cristas e pés de talude são casos seríssimos!!! uma triangulação mal feita pode fazer um talude extremamente inclinado parecer uma rampa suave e nossos volumes de terraplenagem dariam valores completamente errados!!!



E antes que você pergunte, sim, breaklines são polilinhas 3d, ou lines 3d, ou até mesmo polilinhas 2d com elevação!! Dá ainda para usar FEATURELINES mas isso fica pra outra hora...



Ah, mas você já tem tudo desenhado em 2d.... sem problemas visite http://tbn2.blogspot.com/2008/04/2dto3d.html e crie polilinhas 3d!!!

Download do programinha



Sabe o que acontece se você tentar usar polilinhas 2d como breaklines?

A superfície adota o Z destas polilinhas, ou seja: desenha tudo no plano Z=0!!!



Abrir dwg das breaklines



Tá, vou considerar que você mesmo criou as polilinhas 3d... agora adicione elas como breaklines na surface...

Selecione-as e clique o menu:







Pronto!!

Você deverá obter algo parecido com o meu MDT final!!



Abrir dwg do mdt acabado



É isso...