Promoção de carnaval

Este mês, 30% de desconto em qualquer programa demo da página!!
Entre em contato para ganhar mais descontos ao levar outros programas na mesma compra

promoção prorrogada até o dia 31/03/2011, aproveite!!

links para downloads:
c3drenesg2, drenagem e esgoto, civil 3d 2011 (2008 a 2010)

expge, exportar do autocad para o google earth e viceversa

pt2pt, converter pontos do civil 3d, posição e topograph

tbn2, diversos programas

NotaServ, notas de serviço no civil 3d

MassCalc, cálculo de distribuição de volume de corte e aterro

Todos os programas tem help em português, são de fácil utilização e você pode entrar em contato comigo diretamente em horário comercial para tirar qual quer dúvida relacionado aos mesmos.

meu bebê

Quando nasceu, tinha cara de joelho, mas era muito engraçadinha:

banho era um acontecimento, só novidade!!!

tem hora que o mamá demora!!!

descobri o que é fotografia!!!

agora até faz pose!!!

mas, claro, antes tem que limpar o salão!!! os dois!!!

ao mesmo tempo....

Template - dwg interessante

Tá, atendendo a pedidos, vou postar o dwg desta imagem:

Incrível que o post que a contem não tenha gerado o efeito que eu esperava, mas em fim, hehhehe

o link para download é esse: download

O dwg é o arquivo de exemplo do NotaServ, por isso, não deixe de testar o programa também!!!

quem quiser melhorar o template e me mandar, fica a vontade!! (pedro, mandaí!!!)

Programas Tbn2

Bom, ficou um pouco espalhado, por isso resolvi agrupar os comandos disponíveis aqui:

Mperfil - Cria perfil de superfície de diversos alinhamentos de uma vez só (quem faz loteamentos vai gostar)
Imagem:

MprofView - Cria profileviews de diversos alinhamentos de uma vez só (idem)
Imagem:

Sheet2 - Gerencia o conteudo de carimbos nos layouts de diversos desenhos ao mesmo tempo, sem precisar abrir os arquivos com o OPEN. Útil quando se precisa alterar o carimbo em montes de desenhos.
Imagem:


Spline2pline - Cria polilinhas que representam splines. É quase como "explodir spline"

Expge2 / ReadKml2 - Agora com suporte a exportação de blocos como eles são e também exportação de hachuras com textura!!!
Imagem:

CopyLabel - Replica labels de alinhaemntos. Útil no caso de labels com "reference text" para o greide (veja link para entender melhor"

Trajeto - Calcula o trajeto de veículos, como o autoturn

DelptAlin2 - Apaga pontos alinhados em polyines, diinuindo a quantidade de memoria usada

PurgStyles - O purge não apaga os estilos do civil 3d? agora temos uma solução!!

ExtendTangents - Os alinhamentos criados por polilinha não mostram as "Line Extensions", aquelas linhas entre o PI e o PC/PT use este comando!!

CopyLayer - Quer copiar aquele porrilhão de layers de outro desenho para o desenho atual, sem precisar abrir aquele desenho enorme que os contem? tente este comando!!

Alin2Pline - Extrai a polilinha resultante de um alinhamento (acredite, você vai precisar disso uma hora ou outra!!!)

E crescendo!! Logo converterei alguns programas lisp que tenho aqui para .NET

download

Api - Civil 3d

Hoje tava tentando resolver umas paradas de programação para o civil 3d e não deu... acho que faltou aquela luz...

Tem algum leitor aí que manje de programação, especificamente para o civil 3d, ou windows API?

Tenho o seguinte problema: determinar as elevações máximas e mínimas de uma sectionview.

Já adianto, não há uma função pronta no .NET e no COM essas propriedades são somente leitura.

A solução que encontrei, seria disparar o comando de criar a section view e via HWND da tela que se abre, forçar os valores para dentro das caixas corrspondentes...

o problema está em disparar o comando e rodar a descoberta do HWND ao mesmo tempo.

Com o windump.exe (google para achar ele) eu consegui, mas rodando algo parecido pelo cad, não rola porque o comando é MODAL...

bom, se você tem uma ideia ainda mais absurda que essa, hehehe

entre em contato!!!

MLH2 - O retorno

link corrigido, obrigado Neto !!!
Opa e aí gente? Bão?
Lembram do MLH2?

Aquele que desenhava a malha de coordenadas UTM. Bom, um camarada meu adaptou o programa para escrever coordenadas GEOGRÁFICAS!!!, bacana né?

Quem quiser experimentar, pode baixar aqui,com o fonte e o vlx para sair usando!!!

Um preview da tela:


o autor foi o eliederson (eliedersonsantos@hotmail.com), valeu camarada!!!

Lisp, Dcl e duplo clique

Vou desenferrujar um pouco o meu lisp, hehehe
respondendo ao desafio do crackster, sim é possível implementar duplo clique no dcl quando o fazemos sobre list_box

segundo o help (F1!!!!), ao clicarmos, selecionarmos algum controle da nossa dcl, ela informa atravez do seu "action" qual foi a $key, o $value e tambem o $reason do controle que foi acessado. Veja quais são as $reason possíveis:
1 = pressionou enter em um controle qualquer, um edit_box por exemplo
2 = somente em edit_box. O cara tirou do foco do controle, clicando o TAB por exemplo
3 = sliders, o cara tirou o foco do controle, clicando o TAB por exmeplo
4 = list_box e image_button, o cara deu duplo clique ou clique simples

na verdade é um pouco mais complexo que isso, mas em linhas gerais é por aí

para testarmos então esse duplo clique, analize este programa, primeiro o dcl:

teste : dialog {
  label = "Teste duplo clicque" ;
  :
boxed_column {
     label="Dê duplo clique num item";
    :
list_box { key = "lista"; } }
  :button {
     key = "cancel";
     is_cancel=true;
     label="Cancela";}}


agora o lisp:

(defun c:teste (/ dcl lista acao n)
;carrega o dcl na memória  
  (setq dcl (load_dialog "d:/teste.dcl")
;lista de item do listbox:
    lista '("pedra" "papel" "tesoura")
;variavel auxiliar para armazenar o item escolhido:
    n    nil
;função anonima para proceder as ações do dcl:
    acao (lambda (key value reason)
;testa qual controle foi chamado:
           (cond ((= key "lista")
;se foi o list_box, e se foi duplo clique (reason==4)
              (if (= reason 4)
            (
progn
;mostre qual foi o item selecionado
              (alert (setq n (nth (atoi value) lista)))
;encerre o dcl com um "OK"
              (done_dialog 1))))
;aqui iria a ação de outros controles...
             )))

;inicia o quadro de dialogo
  (new_dialog "teste" dcl)

;preenche a lista de itens do list_box:
  (start_list "lista" 3)
  (
foreach o lista (add_list o))
  (
end_list)

;|define qual é a ação do nosso list_box
  se tivessemos mais uns 20 controles, todos eles teriam
 a mesma ação e poderiamos fazer:
 (foreach k '("lista" "key1" "key2" "keyn")
   (action_tile k "(acao $key $value $reason)") )
 |;

  (action_tile "lista" "(acao $key $value $reason)")

;interpreta a saida do dialogo apos iniciar ele:
  (if (= 1 (start_dialog))
;| se done_dialog é 1, clicou OK ou no nosso caso, como não temos um botão OK
 foi o duplo clique quem encerrou o DCL
 se clicarmos o botão cancela, o done_dialog devolve 0
 claro que se queremos interromper o dcl por outro motivo, é só colocar
 (done_dialog NUM)
 onde NUM seria um inteiro qualquer que testariamos neste IF
 |;

    (alert (strcat  "Voce escolheu um item!!!\n Ele é: " n)))
;descarrega o dcl:
  (unload_dialog dcl)
  )



Note que fiz algumas considerações no código.
basicamente, mostrei como poderíamos sobreescrever o botão CANCEL.

Se quizesse mudar o OK, tambem daria, bastaria colocar uma propriedade (is_default = true;) num controle de botão (button)

veja como preenchi a lista do list_box. Muita gente coloca os itens na propriedade list ( list = "1\n2\n3" ; ) dentro do arquivo do dcl, mas ai fica ruim para obter o texto do item selecionado

também optei por definir o action_tile dos controles via lisp e não no dcl.
iso facilita a escrita do programa, pois você não precisa escrever o código dentro de string.

por fim, dei a dica de como encerrar o dcl por outro motivo.
Qual motivo?

Por exmeplo, digamos que algum controle do dcl seja um botão para capturar uma coordenada na tela com a função getpoint do lisp.

Não poderíamos simplesmmente colocar uma ação assim:

(action_tile "botao" "(setq pt (getpoint \"Clique um ponto\"))")

ao clicar o botão, isso causaria um erro fatal no seu cad!!!! já discuti isso aqui no blog algumas vezes...


neste caso a solução seria fazer um looping, jogando a parte que pede o ponto para DEPOIS de encerrar o dcl:

(setq faz t)
(
while faz
  (new_dialog "teste" dcl)

  ;|subrotinas que preenchem os controles|;
  (action_tile "botao" "(done_dialog 2)")
  
  
  (
setq dlg (start_dialog))
  (
cond ((= dlg 0) (alert "clicou CANCEL") (setq faz nil))
    ((
= dlg 1) (alert "clicou OK"))
    ((
= dlg 2) (setq pt (getpoint "\nEntre com o ponto")))))




Percebe? assim o looping é executado até que clicamos o botão CANCELA

é isso....
gostou? deixe um comentário!!!

Google Earth e Civil 3d - importar imagem colorida

Hoje lendo o grupo no yahoo do topografia geral, vi uma dica bem legal de como importar a imagem do google earth colorida!!!

veja: http://br.groups.yahoo.com/group/TopografiaGeral/message/34191

trata-se de uma pequena gambiarra, mas o resultado fica muito bom!!

vou pedir permissão ao autor para publicar aqui a solução dele

ah, você pode se associar ao grupo:
Assinar TopografiaGeral


Desenvolvido por br.groups.yahoo.com