Mostrando postagens classificadas por relevância para a consulta civil 3d. Ordenar por data Mostrar todas as postagens
Mostrando postagens classificadas por relevância para a consulta civil 3d. Ordenar por data Mostrar todas as postagens

TBN2NET - Avisos importantes - ou não


Bom dia!!!

Comunicado importante:

Hoje estou atualizando os programas TBN2NET e removendo o suporte a verões antigas do CAD.

Segue a lista de remoções:

C3DRENESG4
Civil 3D 2011

TBN2C3D
Civil 3D 2010
Civil 3D 2011
Civil 3D 2012
Civil 3D 2013

C3DMEMO
AutoCAD 2012
Civil 3D 2012
Civil 3D 2013
Civil 3D 2014
ZWCAD 2017
CADIAN 2017

TBN2CAD
CADIAN 2017

DDM
Civil 3D 2012
Civil 3D 2013

Obviamente que se você tem uma licença de algum destes plugins em alguma destas plataformas, a licença continuará funcionando. No entanto, novas atualizações só estarão disponíveis nas plataformas que os plugins têm suporte.

Estas remoções são motivadas pelo fato de não terem sido usadas nos últimos 12 meses, considero assim que novas licenças não serão registradas nestas versões.


Considere atualizar o seu CAD!

Com estas remoções, finalmente poderei abandonar o DOTNET Framework 3.5
Isso trará muitos benefícios, visto que poderei gastar o tempo em novos programas em vez de criar "artifícios" para que rodem em versões antigas....


Civil 3d 2012 e os reports que não funcionam

Então você usou a joinha do Civil 3D Brazil 2012 e não sabe porque os reposrts e notas de serviço não funcionam né?

É incrivel que a Autodesk ainda faça essas coisas mas em fim....

Tenho recebido vários emails perguntado porque os reports não funcionam... Bem, primeiro que eu não uso eles... desde o meu primeiro contato com o civil 3d, sempre quis desenvelver minhas próprias soluções, por isso nasceu o notaserv, o c3drenesg, o expge....

Mas e aí? por que não funcionam esses reports?

Bom, primeiro note que esses reports são dependentes dos corridors, são eles que dão as informações que os reposrts usam.

Segundo, esses programas são feitos para funcionar em inglês e não espere que os content packs resolvam muita coisa, aliás, nessa parte nem é culpa da autodesk, mas daquela pecinha por detraz do teclado, que não de sá muito ao trabalho de ler o help....

Bom, o fato é que os corridors possuem um Code Set Style associado a ele, que diz em que estilos devem ser desenhados as Shapes, Links, Points e FeatureLines. Se você não sabe o que é isso, dê uma olhada aqui

Notou que os nomes dos códigos estão em um idioma, no caso do content pack brazil, é o pt-BR.

Se você como eu usava o civil 3d das versões anteriores em inglês mesmo, notou que o "Daylight" virou "OFFSET" e "Hinge" virou "JUNTA"... e por aí vai...

Antes de continuar, abra o seu desenho na versão antiga do civil 3d, em inglês mesmo.
Veja as propridades do corridor. Note que as featurelines são desenhadas usando estilos associados aos códigos dos Points. Note que esses códigos chamam-se "Pave", "Curb", "Daylight", etc...:


Note, que se você é caprichoso, adicionou os "Slope Paterns" (convenção de corte e aterro) ao corridor, provavelmente usando as featurelines "Daylight" e "Hinge" provavelmente:


E claro, as Surfaces do corridor também são dependentes do Code Set Style, afinal, a surface de terraplenagem, normalmente usa os códigos "Datum".

Agora, pense: Está tudo em inglês. Ao abrir no Civil 3d Brazil, fica português ALGUMAS COISAS e é aí que a casa cai...

Veja por exemplo, a mesma tela de featurelines do corridor, visto no civil 3d brazil:

Bom, se você conseguiu fazer o teste e viu esta tela em inglês e em português, também percebeu que boa parte do corridor simplesmente sumiu!!!

Agora você levanta, estufa o peito e diz: fod%$^*&^%u!!!!!
hehehe

Bom, e se abrir o desenho sem ser no c3d 2012 brazil, funciona?
bem deveria... no meu não resolveu...

A solução (pelo menos por enquanto) não é reinstalar o civil 3d sem o content pack, hehehe, até porque isso demora pra burro...

Abra o Explorer do Windows e navegue até a a pasta: C:\ProgramData\Autodesk\C3D 2012\enu

Localize estes arquivos:

Primeiro, renomeie o arquivo:

C3DStockSubassemblyScripts.codes

para

C3DStockSubassemblyScripts_OLD.codes

depois, renomeie o arquivo:

C3DStockSubassemblyScripts_en-US.codes

para

C3DStockSubassemblyScripts.codes

Note que assim, você mantem um backup do arquivo original...

Se quiser, abra esse arquivo com o bloco de notas. Você verá os códigos...

Ah, claro, faça isso com o civil 3d fechado, senão não adianta...

Por fim, abra o civil 3d, abra o arquivo dwg que tava dando pau e verifique se o corridor tem o aspecto que você via nas versões anteriores (que funcionavam).

Tente usar os reports. Vai funcionar:

E o resultado:

Ah, sim, o dwg?

Baixe o C3DRENESG, ele é o dwg de exemplo...

Gostou? mande um comentário!!!

Civil 3D - Visual Lisp - Converter blocos em cogopoints

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*, 

Import type library

Bom, faz tempo que não posto nada, então vou postar um código que stou achando bastante útil:

;importa as funções do civil 3d para o visual lisp
(vlax-import-type-library
 :tlb-filename
 "C:\\Program Files\\AutoCAD Civil 3D 2008\\Civil\\AeccXLand.tlb"
 :methods-prefix "cvlm-"
 :properties-prefix "cvlp-"
 :constants-prefix "cvlc-")


Veja, ele importa os métodos, propriedades e constantes do Civil 3d para o visual lisp

Qual a utilidade disso? bem... você sabe programar em vba? não? sabe em visual lisp?
então.... com isso você pode manipular entidades do civil 3d via lisp!!
um exemplo:
digamos que queiramos obter uma polilinha que passe pelos pontos de um alinhamento... sei lá pra que, mas precisamos fazer isso...
o civil 3d tem um comando que faz o inverso, pega uma polilinha e cria o alinhamento, mas não tem um comando que cria uma polilinha a partir de um alinhamento!! como fazer?
Command: pline ....

bom, veja:

(defun c:alin2pline (/ ss ent)
  (
tbn:error-init nil)
  (
if (setq ss (ssget '((0 . "AECC_ALIGNMENT"))))
    (
repeat (sslength ss)
      (
setq ent (ssname ss 0))
      (
cvlm-GetLWPolyline (vlax-ename->vla-object ent))
      (
ssdel ent ss)))
  (
tbn:error-restore ))


a palavra cvlm-GetLWPolyline so existe APÓS você importar a "type library" do civil 3d que contem o método GetLWPolyline, saca?

essas "type library" estão em "C:\Program Files\AutoCAD Civil 3D 2008\Civil\", no caso do c3d2k8...
agora me pergunte COMO saber que novos métodos você dispõe??

experimente isto:

(setq tmp (atoms-family 1) file (open "d:/cvl.txt" "w"))
(
foreach x tmp
  (if (= "CVL" (strcase (substr x 1 3))) (write-line x file)))
(
close file)
(
startapp "notepad.exe" "d:/cvl.txt")



isto irá criar um arquivo de texto no drive D:\ com todos os métodos, propriedades e constantes importados...

tá, e o help de cada uma delas????????
ache este arquivo:
"C:\Program Files\AutoCAD Civil 3D 2008\Help\civilauto-reference.chm"

abra este tópico:
"AeccXLandLib Library", nele ache "IAeccAlignment Interface"
nele você acha o método que usei no exemplo (GetLWPolyline)
como usar o help?
o help deste método, é algo assim:

Gets the lightweight polyline from alignment geometry.

HRESULT GetLWPolyline(
[out, retval] IAcadLWPolyline ** ppLWPolyline
);


isto é em C, mas é fácil entender...
é quase como os métodos activex ( as famosas VL* ) do cad
ficaria em visual lisp:
(cvlm-GetLWPolyline vlaobj)
onde vlaobj é o vla-object name do alinhamento ( veja o exemplo acima!! )

outro exemplo:
(setq vla     (vlax-ename->vla-object (car (entsel "\nSelecione um alinhamento")))
      station (cvlp-get-startingstation vla)
      offset  0)
(
cvlm-PointLocation vla station offset  'x 'y)
(
prompt (strcat "o ponto inicial é " (rtos x) ", " (rtos y)))


simples né?
o método pointlocation, no help é assim:
HRESULT PointLocation(
[in] double Station,
[in] double Offset,
[out] double* Easting,
[out] double* Northing
);


em lisp, o método PointLocation ficaria:
(cvlm-PointLocation vla station offset 'x 'y)
onde:
"cvlm-" é o prefixo que eu escolho para indicar os métodos
vla é o vla-object do alignment
station é a estaca
offset é a distancia perpendicular ao alinhamento na estaca escolhida

Civil 3D 2012

editado: 25/04/2011
Já está disponível o trial do 2012 e... bem... na versão 2010 eu disse: mais do mesmo... o mesmo se aplica novamente

Baixei, instalei e fui ler o help... sim eu leio!!! Mas para surpresa minha, não tem help!!! Ou melhor, tem mas é online... Estranhei, fui ver na pasta onde ele foi instalado e tentei localizar os *.chm, que são os arquivos de ajuda... Nada... só uns HTMLs... não sei se não estando conectado, o programa abra esses html offline... deve abrir, pois são idênticos aos online.

Na boa Autode$k, mas podia ao menos dar nomes coerentes a isso!!!

Aliás, estou até agora tentando localizar o help da API, pra ver se criaram coisas novas na parte de programação.

Como não podia deixar de ser, as telas durante a instalação são de tirar o chapéu, bem acabadas e tal, mas pô, você precisará do MAX para fazer aquilo, então, meio que ficou propaganda enganosa ou venda casada, sei lá....

Ao abrir o programa, tela de trial, 30 dias e tal... vamos ver o que há de novo..
Toolspace é a mesma coisa, não mudou nada... ou quase nada.

Toolbox (relatórios) com content pack brasil, aparece NOTA DE SERVIÇO
pensei: pronto, meu notaserv já era... mas tô até agora tentando rodar ele...
Não funcionou ainda.. A barrinha de status parou logo no começo e nada... Autode$k, comofas?/, até lá o notaserv vai bem, obrigado!! (netload direto na versão do 2011 chupa essa Autode$k)

Os demais reports do content pack são apenas versões dos já existentes nos reports normais. em fim, acho que só traduziram as telas e dizeres dos reports

Continuando... As interceções de corridors são os mesmos do 2011, então nada de novo..

Nem tudo é ruim, agora temos o PURGESTYLES, é até o nome do MEU COMANDO PURGESTYLES para o civil 3d 2011 eles copiaram... tão pedindo... Tá o deles é melhor que o meu, hehehe, pudera, eles escreveram o civil 3d...

Ah, descobri isso porque tentei rodar o TBN2NET... rodar, rodou... só o comando PG4ALL é que não, pois ele depende da API activex, que é dependente da versão do civil 3d... Os demais comandos, que não são dependentes dessa API, rodaram de boa
Se você já baixou o 2012 e quer testar o tbn2net e encontrar bugs, mande-me um mail, ok?

Fatal errors? Ah, claro!!! concerta-se uns criam-se outros, então não espere milagres!!!

Uma coisa nova que eu vi e gostei: Catchments
Se você gostava do watershed pra desenhar área de contribuição, saiba que esta é a melhor coisa que eu vi de novo no civil!!!
Uma hora eu faço um tutorialzinho sobre isso!! Em linhas gerais: clica num ponto, ele mostra o talvegue e a área de contribuição para aquele ponto

Compatibilidade com o C3DRENESG2. Incompatível....... Até carrega, mas as piperules terão de ser compiladas especificamente para o 2012 e o programa em si também, usando o framework 4.0 da Micro$oft (ao menos isso). Já fiz isso, só estou verificando se outros bugs aparecem para poder lançar o download.
Totalmente compatível!! atualize ele assim que instalar o civil 3d 2012!!

API de programação .NET (Activex é a interface COM).
Bom, eu sinto falta do SwapPartFamilyAndSize, mas isso já vem desde o 2010...

Para as surfaces a coisa melhorou dramaticamente!!! Sugiro que acompanhem o blog
http://civilizeddevelopment.typepad.com/ (podia retribuir o link, hein) Pra ter idéia: no 2011 só dá ra ver o nome e uma ou outra propriedade sem muita utilidade, além do FindElevationAtXY, já no 2012, dá pra pegar a coleção de triângulos, pontos, arestas... e dá pra brincar legal!!!
Pra mim esse foi mais um pedido de desculpas da Autode$k...

Para os pontos, só adicionaram suporte aos Point Groups... É!!! adicionaram no 2012, não tinha no 2011!!!!, mas ainda é meio inútil pois você não pode definir os critérios para dizer que pontos fazem parte de u point group... Aliás, é por isso que usei a API COM para fazer o comando PG4ALL. Ela possui um excelente suporte a point group. Pena que é dependente da versão do civil 3d.

Antes que você me pergunte porque dessa dependência, é assim:
A API .NET é compatível em todas as versões do civil 3d, isto é, se um programa escrito para o 2010 (onde essa API apareceu pela primeira vez) usa exclusivamente a API .NET, o programa vai funcionar no 2011 e no 2012 na maioria dos casos sem precisar recompilar o programa, bastando carregar o programa com o NETLOAD. Salvo em algumas situações, né Autode$k!!!!, onde a mesma função retorna valores diferentes
Bom, tirando que algumas funções e propriedades são acrescidas em novas versões, as velhas devem funcionar.

Já a API COM é dependente da versão do Civil 3d, então apesar do código fonte ser o mesmo, ele precisa ser recompilado usando as DLLs de referência da verão do civil 3d. Assim, você ficar trocando no seu visual studio as referências...

Nas novidades há algumas coisas para desenhos online, que sinceramente eu não acredito que alguem use... Em escritórios grandes, costuma ficar no servidor central, sem acesso de terceiros e frequentemente dos próprios projetistas, mas em fim...

Ah, a ferramenta de criação de Best Fit Entities PARECE estar funcionando como deveria... no 2011, ele travava após criar a primeira linha...
Que mancada Autode$k....

Se os meus programas em lisp rodam?? Bom a maioria sim.. basicamente terei de incrementar a rotina INIVARS para aceitar o 2012, ah, se eles não mudaram a sintaxe de nada, claro.... no 2007 para o 2008 mudaram umas coisas, e tive de reescrever muitas coisas.

Uma coisa boa: parece que o toolspace voltou a abrir rapidamente, como era no 2009, mas é cedo pra confirmar... melhor testar mais

Obviamente, o programa abre e salva dwg em variadas versões, de dxf R12 a dwg 2010, MAS, se você abrir o dwg do civil 3d 2011 ou anterior com o 2012 e salvar, já era... o civil 3d 2011 não abrirá mais esse desenho, ou melhor até abre, mas tudo como PROXY OBJECT.
Sinceramente, não sei se isso não podia ser remediado de melhor forma que o LANDXML...

Achou que eu ia falar maravilhas dele??? nem a pau juvenal!!! é mais divertido falar mal, hehehe, só assim os caras melhoram!!!

Não, não testei o Dynamite no 2012, até porque você precisa ter uma conta subscription para poder baixar ele na versão 2012, se é que já tem... Marcão, Rodolfo, Marcelo, o que me dizem???

Não testei o MASSCALC ainda, não deu tempo.

O EXPGE, vai bem obrigado!!! Pode dar um appload nele agora mesmo!!! Funciona de boa, hehehe

O PT2PT, bem esse vai ter de ser atualizado... em breve farei isso, aguardem.

DTAL, MLH2, bom esses são lisp para AutoCAD puro, então rodarão até a Autode$k decidir parar com o Visual Lisp (na minha opinião, nunca...)

Vi um "Unassigned Assemblies" no toolspace... Er.... já disse que não gostei do help online? já? pois é... ainda não sei pra que serve... mas já tenho uma idéia...

Edit Corridor Section? Hum... sei lá tô testando...

[pausa de 30 minutos]

Melhorou!! já tem uma opção para mostrar viewports da planta, perfil e seção, além de aparecerem uns blips na seção

Uma coisa bacana que eu vi agora: se você tem um alinhamento com um profileview já desenhado, ao passar o mouse sobre o alinhamento, o programa desenha uma linha temporária do profileview, indicando qual estaca o mouse está, o mesmo vale ao contrário, se o mouse está sobre o profileview, uma linha é desenhada no alinhamento indicando a estaca, bacana, gostei!!, Opa, funciona com sectionview também!! Só espero que não degrade muito o desempenho do programa....

Outra novidade interessante: autocompletar nos nomes dos comandos!!!! Sabe aqueles palavrões (palavras compridas) que são os nomes dos comandos do civil, tais como AECCSUPERELEVATIONTABULARVIEW, basta digitar os primeiros caractéres e já aparece um menu com uma lista dos possíveis comandos, boa sacada!! Eu não sou muito fã do ribbon, e também não gosto de sair caçando comandos nos menus ou no help (que help??? online? obrigado, passo)

PipeNetWorkCatalog, SubAssemblyCatalog... são os mesmos do 2011... nada de novo.
Ao menos os pipes podiam melhorar!!! aque a gente usa bueiros duplos, triplos, celulares duplos, triplos... mas não tem.... quer dizer, no C3DRENESG2 TEM!!!

Aliás, tem o "Autode$k Storm and Sanitary Analysis 2012". Nome comprido, pomposo... nãso testei ainda... Mas como não tem tubo duplo, galeria celular dupla, ou tripla no catálogo, então deduzo que não dê suporte...

É, eu esculacho e passo a mão, hehehe

Por falar nisso, já que disponibilizaram o 2012 para download, podiam fazer aquela promoçãozinha básica, de mãe pra filho que sempre fazem e vender a licença do 2011 a uns 3 ou 4 contos, o que acha Autode$k??? 70% de desconto!! Até compro a do subscription, hehehehe!!!

Desempenho... em testes!!! vamos ver se a criança pára de pedir disco rígido desnecessariamente

Se eu tenho ligação com a Autode$k?? não mesmo!!!, aliás, vou mandar um currículo pra eles, hehehe

Veja, este post é a MINHA primeira impressão do civil 3d 2012. Pode ser que eu venha a detestar ele mais, pode ser que eu venha a gostar dele mais. Até lá, sugiro que você baixe o trial, se quiser, visite o google e procure por "Autode$k-products-2012" e clique no quarto link, por sua própria conta e risco, eu não tenho nada com isso!!!

Se você acha que esse post pode servir pra alguma coisa, faça um comentário!!!, se acha que não servirá pra nada, aí sim, faço questão que você faça um comentário, hehehe

Até!!

SOLIDOS e Civil 3D 2023 - Correção de BUG

Boa noite pessoal!!

Este post é para resolver um problema que alguns usuários do SOLIDOS no Civil 3D 2023 estão enfrentando.

Ao abrir o desenho, o Civil 3D trava. 

Ao abrir o modelador, aparece a imagem:


IMPORTANTE:

ESTE NÃO É UM BUG DO SOLIDOS!

É UM PROBLEMA COM A ATUALIZAÇÃO DO CIVIL 3D!

Por alguma razão, a atualização (ou instalação padrão do Civil 3D 2023) corrompe a dll localizada em:

C:/Program Files/Autodesk/AutoCAD 2023/C3D/Dynamo/Core/System.Windows.Interactivity.dll

Localiza essa dll e você verá que ela tem 0 kb de tamanho.

Observei esse problema somente no Civil 3D 2023, oficial ou "genérico".

Para corrigir, você terá de tentar recuperar a instalação do Civil 3D 2023, ou

Se você tem mais máquinas com esta versão instalada onde a dll não está corrompida, copie ela e cole na mesma localização na máquina com problema.

Se você não tem nenhuma dessas duas opções, eu inclui no pacote de instalação do SOLIDOS, uma versão dessa dll, que copiei de uma instalação que funciona.

Ela está localizada em:
<pasta onde descompactou o SOLIDOS>/Suporte/System.Windows.Interactivity.dll

Veja, o SOLIDOS não usa essa dll. No entanto o Civil 3D 2023 usa. E causa erros fatais (clica!!!), parecendo que é culpa do SOLIDOS. Não é, ok?


Os menus sumiram!!!

Bom dia!!!

Não deixe de aproveitar a promoção relâmpago de carnaval!!!

Hoje vamos "tentar" corrigir um erro comum no AutoCAD. As vezes, por algum cagada motivo, os menus somem:

Já aconteceu isso com você? O ribbon simplesmente some.

Em geral, isso ocorre porque descarregou o ACAD.cuix ou C3D.cuix ou CIVIL.cuix (estes dois últimos são do Civil 3D) padrão, ou ainda você tentou carregar um menu de algum plugin que está mal feito e isso corrompeu um desses arquivos aí.

Bem, primeiro tente apenas recarregar o menu do CAD, com o comando MENULOAD:


Percebe que a lista está vazia?

Mas onde se encontram os arquivos CUIX que você menciona no início?

Eles estão aqui:

C:\Users\<nome do usuário>\AppData\Roaming\Autodesk\<Versão do AutoCAD>\enu\Support

Note, a pasta AppData normalmente está oculta, então pode ser necessário mostrar pastas ocultas:



Ah, pode ser que você tenha mudado os arquivos de usuário de C:/ para D:/, como eu (olhe o caminho na imagem) então presta atenção!!!

Navegue até a pasta, no meu caso, uso o Civil 3D 2018:


Pode ser interessante mostrar também as extensões do arquivos.

Localizou os arquivos que mencionei (ACAD.cuix ou C3D.cuix ou CIVIL.cuix)?

Perceba, que junto deles, tem as versões de backup também:


Em muitos casos, bastaria apenas fazer o MENULOAD do ACAD.cuix (se for autocad puro) ou Civil.cuix (se for o Civil 3D), mas pode ser que você tenha uma Ribbon vazia como resultado:


Se isso acontecer, primeiro descarrega o menu com o comando MENUUNLOAD. Deixe a lista vazia, descarregando todos os menus.

Após isso, restaure os backups dos arquivos CUIX na pasta ENU:


Note que renomeei "Civil.cuix" para "Civil.cuix com erro" e "Civil.bak.cuix" para "Civil.cuix". O mesmo você faz com o ACAD.cuix (se estiver trabalhando com o autocad puro) e faz o MENULOAD novamente:


Pronto, isso deveria bastar.
MAAAASSSSS, em alguns casos não adianta!!!

Aí você faz o seguinte:

No caso do Civil 3D, tente carregar o C3D.cuix (com o menuload). Este arquivo deve conter os dados de Civil.cuix e mais os menus personalizados que você tentou carregar ( e que possivelmente deu pau, pra começo de conversa).

Aí você ainda faz o seguinte:

Digita CUI na linha de comando e na tela que se abre, olhe se é possível restaurar, clicando o botão direito do mouse sobre o Civil, logo abaixo de "All Customization Files":


Funcionou??

Não???

Creia: isso é bem comum!!!

Mas e agora???

Tente recuperar os arquivos CUIX de UserDataCache para a pasta Support do seu usuário.
São duas pastas no caso do Civil 3D (se você usa o cad em outro idioma, o caminho pode mudar):

C:\Program Files\Autodesk\<Versão do AutoCAD>\C3D\UserDataCache\Support
C:\Program Files\Autodesk\<Versão do AutoCAD>\UserDataCache\en-us\Support



Copia os arquivos para a pasta:
C:\Users\<nome do usuário>\AppData\Roaming\Autodesk\<Versão do AutoCAD>\enu\Support

Sobrescreve todos!

Agora, faz mais uma vez o MENULOAD e carrega o ACAD.cuix (autocad) ou CIVIL.cuix (Civil 3D) que você acabou de sobrescrever.

Não carregue os arquivos das pastas UserDataCache!!!! Eles são o seu BACKUP e se você ferrar com eles, provavelmente terá de reinstalar o cad (ou copiar de outro computador)

Pronto!!! Viu como é fácil?? hehehehe

TBN2C3D - English Version - Coming soon!!!

Published AppStore:
AutoCAD Civil 3D
Supported Language:
en
App Name:
TBN2C3D
App Short Description:
Plugins for Autodesk® AutoCAD® Civil 3D®
App Description:
The TBN2C3D is a collection of programs for productivity within the platform in Autodesk® AutoCAD® Civil 3D®.
There are programs for generating horizontal and vertical geometry reports, volume, location, profiles, survey and points.
This is a demo version of this program.
You can use it with some restrictions.
If you want to test the program without limitation, register a demo license.
It's free and you will have 15 days to test.
If you are a student, please contact us to get a valid student license for 3 months!!!
Company Name:
TBN2NET
Company URL:
https://tbn2net.com
Support Contact:
neyton@yahoo.com
Type:
Trial
Price:
Trial
Publisher:
Neyton Luiz Dalle Molle
Email:
neyton@yahoo.com
PayPal Email for Payments:
neyton@yahoo.com
App File:
App Icon:
TBN2C3D.png

Application Compatibility:
Autodesk AutoCAD Civil 3D 2016, Autodesk AutoCAD Civil 3D 2015, Autodesk AutoCAD Civil 3D 2014, Autodesk AutoCAD Civil 3D 2013
Store Categories:
Road Design, Civil, Quantity Take Off, Volumes
General Usage Instructions:
Be sure to read the help before testing any program
Installation/Uninstallation:
The installer that ran when you downloaded this plug-in Autodesk Exchange Apps already has installed the plug-in. You may need to restart the Autodesk product to activate the plug-in.
To uninstall this plug-in, click Control Panel> Programs> Programs and Features (Windows 7/8 / 8.1) or Control Panel> Add or Remove Programs (Windows XP), and uninstall it as you would any other application your system.
Additional Information:
This is a demo version of this program.
You can use it with some restrictions.
If you want to test the program without limitation, record a demo license.
It's free and you will have 15 days to test.
If you are a student, please contact us to get a valid student license for 3 months !!!
Known Issues:
For the NOTASERV2 work properly with areas and volumes, materials sections need to be a visible style.
It may be that the Windows lock the program DLLs. To avoid this, click the right mouse button on the DLLs, click Properties and click the Unlock button. The same should be done with the help files (* .chm)

Curso de programação para Civil 3D e AutoCAD

Atendendo pedidos, vou ministrar um curso de programação para o Civil 3D.



Neste curso, você aprenderá a criar novos comandos para usar no Civil 3D e no AutoCAD, estendendo assim sua funcionalidade.

Sabe aquela rotina repetitiva de trabalho? Então, saiba que pode ser automatizada!!!



O curso será realizado em Curitiba-PR

A data prevista para o curso acontecer é: 14/10/2109 a 18/10/2019 das 8:00h às 12:00h e 14:00h às 18:00h

Sim, vai ter um intervalo de 15 minutos pro café, hehehehe.

Note, este é um curso de programação e não um curso de Civil 3D. O objetivo será criar plugins que usando a API do Civil 3D, realizam as ações que desejarmos.



Pré requisitos: O ideal é que você tenha algum "traquejo" em programação, isso vai ajudar os demais colegas, não atrasando a aula, dado que o conteúdo é bem extenso.

Linguagem: C# ou VB, O curso será feito com o Visual Studio, HTML Help WorkShop, Civil 3D e Excel (Office)




Conhecimento do Civil 3D/AutoCAD é imprescindível, ok? E traga o seu notebook.

Aprenda a criar comandos, criar arquivos de ajuda, Menus, Ribbon, Toolbars, em fim, deixe seu programa bem profissional!



Serão 40 horas de curso e o investimento é de R$ 1.500,00

O pagamento será por cartão de crédito, parcelável até 12x, pelo Mercado Pago (com juros) ou via transferência, à vista.

A ementa do Curso está aqui






Civil 3d

Hoje, finalmente vou postar alguma coisa para o civil 3d!!! é o seguinte: quando vamos definir uma superfície, temos pontos, linhas, etc, certo? algumas dessas linhas são de certo modo "obrigatórias" pois ela definem algumas características da triangulação da mesma.... exemplo: linhas que representam estradas, taludes... quem usa o software "Posição" da Manfra sabe do que eu estou falando... no civil 3d também podemos ter tais linhas, mas elas precisam necessariamente estar em 3d...
mais...
Mas nem sempre estão... depois de descarregar os dados da estação total e inserirmos os pontos no civil 3d, vamos "ligando os pontos" (sim, tenho algo pra isso já...) para formar o desenho... por um mutivo qualquer, desenhamos tudo com PLINE, que não é 3d, mas sim 2d (mesmo que ela tem o elevation diferente de 0), o que impossibilita de usar como "breakline" da superfície, já que todos os vértices dela estão na mesma elevação... o que fazer? redesenhar elas com 3dpoly...

Obs: esta é a minha experiência com este programa, se alguem souber de uma forma melhor, estou interessadíssimo em saber!!!!

bom, o que o programinha abaixo faz isso, ele analiza as coordenadas X,Y da pline, procura pontos do CIVIL 3D que tenham as coordenadas X,Y requeridas e usa a coordenada Z deste ponto para construir a 3dpoly... possibilitando assim o uso destas como breakline, bom vamos lá, a primeira coisa é obter a "collection" dos pontos do civil:

(setq acadapp  (vlax-get-acad-object)
                 aec-app  (vla-GetInterfaceObject acadapp "AeccXUiLand.AeccApplication")
                 aec-adoc (vla-get-activedocument aec-app)
                 aec-db   (vla-get-database aec-adoc)
                 aec-pts  (vlax-get-property aec-db "points"))

Isso aí acima é coloco numa subrotina, que fará parte de um projeto de rotina VLX, ok? por isso não tem defun nem nada... outra hora eu explico isso...

agora vamos a rotina:
(defun c:2dto3d  (/ ss lst lsc ent pts flag a erro)
  (
tbn:error-init (list (list "cmdecho" 0) t))
  (
setq ss   (ssget '((0 . "LWPOLYLINE")))
        lst  nil
        lsc  nil
        flag (initget "S N" 0)
        flag (getkword
               "\nApagar as entidades convertidas? [Sim, Não] ")
        flag (= "S"
                (if flag
                  flag

                  "S")))
  (
vlax-map-collection
    aec-pts ;********vide o código acima************
    '(lambda (x)
       (
setq lst (cons (list (vlax-get-property x "Easting")
                             (
vlax-get-property x "Northing"))
                       lst))))
  (
vlax-map-collection
    aec-pts
    '(lambda (x)
       (
setq lsc (cons (list (vlax-get-property x "Elevation")) lsc))))
  (
repeat (if ss
            (sslength ss)
            0)
    (
setq ent  (ssname ss 0)
          erro nil
          pts  (apply 'append
                      (mapcar
                        '(lambda (pt / tmp)
                           (
foreach a  lst
                             (if (equal a pt 0.5)
                               (
setq tmp a)))
                           (
if tmp
                             (append pt (nth (vl-position tmp lst) lsc))
                             (
setq erro (cons pt erro))))
                        (
get-points-polig ent))))

    (
if erro
      (progn
        (remake-ent ent 62 1)
        (
foreach a  erro
          (entmake (list '(0 . "CIRCLE")
                         '(8 . "ERRO_3d_Poly")
                         (
cons 10 a)
                         '(40 . 1)))))
      (
progn
        (setq linha
               (vla-Add3Dpoly
                 (get-activespace)
                 (
vlax-safearray-fill
                   (vlax-make-safearray
                     vlax-vbdouble

                     (cons 0 (1- (length pts))))
                   pts)))
        (
vla-put-layer linha (dxf 8 ent))
        (
vla-put-color linha 2)
        (
if flag
          (entdel ent))))
    (
grtext -2 (itoa (sslength ss)))
    (
ssdel ent ss))
  (
tbn:error-restore ))


é isso... o programa vai pedir se você desenha apagar as linhas antigas e tentará desenhar novas linhas 3d pelas coordenadas obtidas, se a linha for desenhada, ela aparecerá no mesmo layer que estava a linha original, mas estará em AMARELO, ja para as linhas que ela não conseguir desenhar, a linha original terá sua cor alterada para VERMELHO e ainda terá o(s) vértice(s) coordenadas não encontradas nos pontos do civil marcados com um CÍRCULO no layer "ERRO_3d_Poly" para que você possa analizar o que fazer (inserir um ponto, mudar o vértice...)

Civil 3D - breaklines standard e Z igual a zero

Bom dia pe-pessoal!!

Me pediram pra tirar umas seções de uns levantamentos feitos e desenhados no Civil 3D. Até aí tubo bem.

O problema é que, quem desenhou isso no Civil 3D, não foi lá muito caprichoso (nem garantido) e cometeu alguns deslizes ao conectar as 3DPOLY, que depois viriam a ser BREAKLINES do MDT do projeto, e coisas assim aconteceram:

Percebem? Tem pontos da superfície que ficaram com Z=0, depois que as breaklines foram adicionadas.

Obviamente, as seções gabaritadas ficaram um tanto.... erradas:


Esse tipo de erro é bem fácil de cometer, basta um pequeno deslize e o OSNAP não captura o ponto em 3D corretamente e pronto....

Obviamente, ao adicionar as BREAKLINES, o camarada viu essa tela famigerada pipocar na cara dele:

E ele escolheu esperar ignorar...

Bom, o caso é que eu peguei a coisa toda pronta, ou seja, já estava assim quando eu cheguei, hehehe

E agora? Arrumar uma por uma? hummm.... vai lá estagiário....

Vamos programar algo então....

Primeiro, como seria a receita do bolo?

1) selecionar as polilinhas
2) olhar em cada um dos seus vértices e
3) se estiver errado, acha um ponto e
4) se achar o ponto, corrige o vértice

Nossa, assim até parece fácil programar....

Olha como fica um programa em Visual Lisp:


;plugin para corrigir o Z de 3dpoly que deveria passar por cogopoints

;para lembrar a última opção
(setq arruma3dpoly:tolerancia 0.01)

(
defun c:arruma3dpoly (/ acadApp aecVer c3dApp c3dDoc points cgs cg nx
               ss ent vla pts x y z nv nc
)
  

  ;inicializa o controle de erros
  (tbn:error-init nil)
  

  ;pede a seleção das polilinhas
  (prompt "\nSelecione as 3DPOLY")
  (
setq  ss (ssget '((0  . "polyline") (100 . "AcDb3dPolyline"))))

  ;nada selecionado, sai
  (if (not ss) (exit))

  ;pergunta pela tolerância na linha de comando
  (setq tmp (getdist
          (strcat
        "\nInforme a tolerância <"
        (rtos arruma3dpoly:tolerancia 2 5)
        ">")))
  (
if tmp (setq arruma3dpoly:tolerancia tmp))
  

  ;carrega as funções vl....
  (vl-load-com)
 
  (
setq
    ;acessa o AutoCAD
    acadApp    (vlax-get-acad-object)

    ;calcula a versão do Civil 3D
    aecVer     (substr (vla-get-version acadapp) 1 4)
    aecVer     (vl-position aecVer
         '("17.0" ;2007
           "17.1" ;2008
           "17.2" ;2009
           "18.0" ;2010
           "18.1" ;2011
           "18.2" ;2012
           "19.0" ;2013
           "19.1" ;2014
           "20.0" ;2015
           "20.1" ;2016
           "21.0" ;2017
           "22.0" ;2018
           "23.0" ;2019
           ))
    aecVer (nth aecVer '("4.0" "5.0" "6.0" "7.0"
             "8.0" "9.0" "10.0" "10.3"
             "10.4" "10.5" "11.0" "12.0"
             "13.0"
))
   
  

    ;acessa a versão atual do Civil 3D
    c3dApp     (vla-GetInterfaceObject acadApp
        (strcat "AeccXUiLand.AeccApplication."
            aecVer))

    ;acessa o documento atual do civil 3d
    c3dDoc     (vla-get-activedocument c3dApp)

    ;pega sua lista de pontos
    points     (vlax-get-property c3dDoc "Points")

    ;inicializa a lista de coordenadas
    cgs        nil

    ;inicializa a tolerância
    tolerancia 0.01)

  ;converte os cogopoints em lista de coordenadas
  (vlax-for cg points
    (setq cg (list (vlax-get-property cg "easting")
           (
vlax-get-property cg "northing")
           (
vlax-get-property cg "elevation"))
      cgs (cons cg cgs)))


  ;em todas as polilinhas, faça
  (repeat (sslength ss)
    (
setq
      ;pega a primeira polilinha da seleção
      ent (ssname ss 0)
      vla (vlax-ename->vla-object ent)

      ;obtém a lista de coordenadas da polilinha
      ;no format (x0 y0 z0 x1 y1 z1 ... xn yn zn)
      pts  (vlax-safearray->list
         (vlax-variant-value
           (vla-get-coordinates vla)))

      ;inicializa o contador de vértice
      nv  0)

    ;para todos os vértices faça
    (repeat (/ (length pts) 3)
     
      (
setq
    ;obtem X, Y e Z do vértice
    nx (* nv 3)
    x  (nth nx pts)
    y  (nth (+ 1 nx) pts)
    z  (nth (+ 2 nx) pts)

    ;inicializa o contador de cogopoint
    nc 0)

      ;se Z do vértice é igual (ou quase) a zero
      (if (equal 0.0 z arruma3dpoly:tolerancia)

    ;busca o cogopoint mais próximo
    (while (< nc (length cgs))

      ;pega o cogopoint NC
      (setq cg (nth nc cgs)
        nc (1+ nc))

      ;se a distância horizontal entre o cogopoint e
      ;o vértice for igual (ou quase) a zero
      (if (equal (distance cg (list x y))
             0.0
             arruma3dpoly:tolerancia)
        (
progn
          ;redefina a coordenada NV da 3dpoly para
          ;coincidir com o cogopoint
          (vla-put-coordinate vla nv (vlax-3d-point cg))

          ;e força o while a parar
          (setq nc (length cgs))))))

      ;passa para o proximo vertice
      (setq nv (1+ nv)))

    ;ao terminar de processar a polilinha,
    ;remove ela da seleção
    (ssdel ent ss)

    ;hum... atualiza a aparência da 3dpoly
    (vla-update vla)

    ;mostra uma contagem regressiva
    ;no canto inferior esquerdo
    (grtext -2 (itoa (sslength ss)))
    )


  ;finaliza o controle de erros
  (tbn:error-restore)
  )

(
prompt "\nArruma3dpoly carregado com sucesso!
Use ARRUMA3DPOLY para corrigir o Z de 3dpoly baseado em cogopoins
Deve funcionar no Civil 3D 2007 a 2019
Criado por:
Neyton Luiz Dalle Molle
Engenheiro Civil
neyton@yahoo.com
+55 41 98884 3044
"
)

(
princ)



Veja, basicamente é a receita do bolo lá do começo. leia só as partes comentadas e o código fica muito simples.

Claro que tive de desmontar cada um daqueles 4 passos em outros mais curtos até que cada passinho fosse uma função do Visual Lisp...

Ah, você vai perguntar o que é esse controle de erro, onde aparece essas funções: tbn:error-init e tbn;error-restore.... (copia o código sem ler a postagem e diz que não funciona!!!) Veja elas aqui.

Note que após rodar o programa, as 3DPOLY são corrigidas e ao fazer o rebuild da superfície, fica assim:


Ah, mas ainda tem umas "perdidas" ali.... bem estas são LINEs e não foram usadas como breaklines. Então decidi ignorar....

Viu, prometi voltar às raízes do blog, então aí está!!!