Tutoriais 1.03 - Note Labels



Um tutô, sim por que nem só de propaganda vive esse blog, heheheh





Essa semana me perguntaram ali no chat box, como rotacionar textos no civil 3d de forma que eles não fiquem de cabeça pra baixo...

Bem, é sabido que as LABELS não ficam de cabeça pra baixo, então por que não usar elas pra escrever os nossos textos genéricos??

Para usar é simples, chame o comando AeccLblDlgGeneralNote (é eu sei, nome comprido e difícil... você o encontra no menu General, Add Label)

Vi abrir esta tela:


Aí é só clicar o botão "Add" e escolher um ponto qualquer.


Muito que provável, vai aparecer algo desse tipo:

Agora, selecione este objeto e clique o botão direito do mouse (sim, você tem de deixar o menu de contexto ligado. Nada desse negócio tão R14 de repetir o último comando, hehehe), você vai escolher no menu o comando EditLabelText:


Vai abrir o Text Component Editor, que aliás você deve se acostumar a ver. Muitos já me disseram que o civil 3d tem muitas telas com coisas pra editar e configurar e que fica fácil se perder... Bem, se notarem são muitas mesmo, mas todas muito parecidas. Essa por exemplo é genérica e pode editar label de qualquer coisa do civil 3d...


Agora, clique OK e veja o resultado na tela:



Até aí tudo otemo..... Experimente mudar o UCS de tal forma que o texto ficasse de cabeça para baixo usando:
comando UCS,
opção Z,
180 graus
comando PLAN
opção Current

Note que com isso a visualização do desenho retaciona em 180 graus, e isso sem usar o comando ROTATE

Coisa que os arquitetos engenheiros e topógrafos também deveriam aprender de uma vez por todas, heheheh, não adianta georeferenciar um desenho pra depois ferrar tudo usando o rotate

Agor mais um truque legal, experimente selecionar essa label e "estrechar" o blip superior. Vai formar uma Leader certo?

Bom, vamos por partes: porque o texto não ficou de cabeça para baixo?
Porque é uma label!!! Vaos editar o seu estilo. Use o comando LabelStyleEdit (selecione a label, botão direito do mouse, edit label style).

Na aba General, veja o item "Readability Bias". Ele é quem controla o texto para que não fique de cabeça para baixo. Se o angulo de leitura do texto for superior a este valor, sibnifica que estaríamos lendo ele de cabeça para baixo, logo o civil 3d faz uma "rotate" de 180 graus no texto, para deixar ele legível.
E se o ângulo fosse 135 graus? bem, o que ele faz é deixar o texto escrito na horizontal da view em que o texto está sendo mostrado, faça o teste!!!


E a Leader? Bom, ela é controlada pela aba "Dragged State" do editor de estilos:

Não são muitos os itens a verificar. Basicamente o que faz mais diferença é o "Display" que pode ser "Stacked Text" ou "As Composed". O resto muda a aparência da label. Sugiro que você faça teste!!!

Dá pra tirar aquele balão por exemplo ? sim, dá, é so desligar ele.

Ah, eu vi que ele pode colocar algumas informações na label (comando editlabeltext):

Imagine as aplicações disso!!!!
hehehe, sinto que mais gente deixará de usar o leader do autocad......

É isso, que gostou, dá um grito e sai pulando!!!! quem não gostou, bem.... mande seu comentário!!!

c3drenesg2 e notaserv

Atualizado 06-12-2010
Alguns bugs corrigidos, outros criados, hehehe espero que vocês me ajudem a identificar eles!!

Como de costume, desconto na licença para aqueles que apontarem estes bugs, ou sugerirem funcionalidades legais!!!

download c3drenesg 2


download notaserv

Pirataria

É o fim....

Eu perco horas da minha vida escrevendo pra ser pirateado na cara dura, vejam só o anuncio do camarada aqui: "editado"

ele manda para este endereço:
"editado"
é um baita dum FDP!!! em momento algum me foi solicitada a permissão de incluir os tutoriais que estão aqui DE GRAÇA, no pacote dele!!!

Realmente esse país tem que se foder mesmo...

na internet, nada se cria, nada se transforma... tudo se COPIA

o cara ainda me disponibilizou no ebah, como exemplo dos tutoriais que ELE vende...

mandei mensagem para ele e para o ebah... vamos ver quem tem a decência de responder

Vamos esclarecer:

Esta escrito aqui na pagina: Se você usar o material daqui da página, e fornecer a terceiros, deverá fazer isso nas mesmas condições em que obteve aqui: DE GRAÇA!!
Em momento algum eu dei permissão, a quem quer que seja, para comercializar o conteúdo de MINHA autoria!!

EDITADO EM 07/12/2010:
É, alguem teve a descência de responder a minha solicitação. Então retiro o que disse sobre esta pessoa. Não estou aqui para prejudicar a imagem de quem quer que seja! O que peço em troca é o mesmo: não me prejudique.

Reitero: você gostou do conteudo? quer usar ele? USE. Quer fornecer a terceiros, faça-o, mas lembre-se: NAS MESMAS CONDIÇÕES EM QUE OBTEVE AQUI, DE GRAÇA. Não gostou? encontrou erros? quer criticar? Faça-o!!! Encorajo mais a você que quer criticar do que aquele que quer elogiar, pois a sua crítica de alguma forma fará acrescentar a esta página, o meu erro poderá ser esclarecido e eu, você e os demais leitores nos beneficiaremos com isso.

Quer me ajudar? mande um artigo, uma idéia, ou algo assim, terei prazer em publicar, indicar a sua página e tudo mais

Civil 3d - Desempenho

Será que ter um sistema 64 bits rodando o civil 3d ajuda no desenpenho?

teoricamente sim


agora so falta a autodesk criar vergonha na cara e parar de acessar o disco desnecessariamente.

faça um teste:

abra o monitor de recursos ( abrindo o gerenciador de tarefas ) e mande filtrar as ações do cad

ai trabalhe normalmente

eu tenho um i7 com 8 gb de ram, mais uma ati 5870 com 1 gb dedicado

as vezes a performance é mediocre!!! ai voce olha o monitor de recusros, ta la... processador subutilizado, ram sobrando e o disco trabalhando feito doido pra gravar arquivos temporarios....

Exemplos:
Esse é de um rebuild no corredor.
493 KB/s de leitura em disco
a pasta "C:\Users\neyton\AppData\Local\Temp" sendo entulhada da coisas TEMPORÁRIAS
que podiam ser gravadas na memoria ram!!! veja lá 32% de memoria física usada!!!

Agora um simples regen da troca do model space para o paper space:
Disco: 317 KB/s de leitura em disco verificando licença??? é isso mesmo???
Memoria física em 31% de uso

Agora movi um PIV de um perfil:

Me responda, o que diabos o civil 3d precisa escrever no disco???????????
E porque diabos ele precisa usar a rede????
Memoria física: 34% usado (lembre que tem 8GB na máquina)
Disco: 225 KB/s

É sabido que a leitura e escrita em disco é muito, mas muito mesmo, mais lento que a leitura e escrita na memoria ram

Isso cheira muito mal.... não é concebível que um programa como o civil 3d subutilize a memoria ram!!!

Ah, sem falar no object viewer num corredor... processador a 100% de carga e a placa de video ali... quietinha... sem se estressar..

Me pergunto: quem são os programadores do autocad??
Em algum momento eles se preocupam com o desempenho???

É tudo muito bonito no programa, mas a performance é péssima...

Uns tempos atras, circulava na internet uma gambiarra para fazer o autocad usar mais do que 3 GB de ram quando instalado no windows XP 32 bits, se este tivesse 4GB de ram.

Muito bem, agora memorias são baratas, a maioria dos que trabalham de verdade com cad tem máquinas boas e a autodesk ainda cobra 10, 12 mil doletas num programa que não sabe usar a maquina...

editado 07/12/2010:
bom, pra ajudar um pouco tente essas dicas

a maioria delas eu já uso, as outras estou testando.... vamos ver no que dá

ah, tente também este: link. Éo pdf super resumido

Tutoriais 1.02 - Civil 3D - Expressions

Um tutorialzinho pra descontrair, heheheh
já que tá aparecendo outro concorrente, hehehe

O que eu acho ótimo, porque essa dica eu meio que "roubei" dele e tava na hora de alguem mais dizer "comofas" em vez de perguntar "comofas"

Bom, vamos lá, essa dica vai ajudar a você aprender um pouquino sobre expressions e qual é a sua utilidade (ou uma delas).

Eu vou criar uma label que informa a cota do degrau existente entre a geratriz interna a jusante de um tubo e a cota de fundo da estrutura a jusante. Pra puxar a brasa pra minha sardinha, claro.

Bom se você utiliza o C3DRENESG, pode usar essa dica, pois ele implementa a propriedade "dedgrau" nos tubos inclusive disponibiliza uma piperule que atualiza esse valor, senão, siga este link, para saber como criar uma propriedade extra no tubo ou estrutura.

Supondo que você use o C3DRENESG, vamos lá!! se não usa, experimente, você vai gostar!!!

bom, tenha uma rede, vou pegar um trecho de uma travessia, com a tubulação no eixo da via:


perfil:

como aparece no demosntrativo do C3DRENESG

A idéia é criar uma label assim:


Vamos lá, Toolspace, Settings, Pipes, Label Styles, Plan Profile. Botão direito neste item e escolha "New"

Na tela que abre, vamos até a aba layout e insira um novo componente de linha.
A propriedade que vamos trabalhar é esta marcada no retângulo vermelho:


Note que eu escrevi "deltax" ali.... você já vai entender porque, por enquanto, deixe em zero mesmo. Só mude o angulo para 225 graus e o comprimento para 10mm, como na imagem.

Em seguida, crie um componente de texto, pendurando ele no endpoint da linha:


Para o Contents (retângulo laranja), coloque o valor do degrau, desde que, adivinhe!!! use o C3DRENESG, senão coloque qualquer coisa mesmo. Já para p campo rotação (retângulo vermelho) por enquanto deixe em zero mesmo.

clique os OK que precisar e volte ao toolspace e clique em New Expression:

Vai abrir a tela abaixo:

Note que o botão selecionado possui todas as propriedades disponíveis para o tubo. Assim, você não precisa digitar o que você precisa, basta clicar da lista.

No caso, a expressão ficará assim:
({2D Length - Center to Center}-1)/({Drawing Scale Conversion}*2)

Onde :
{2D Length - Center to Center}, é o comprimento do tubo
{Drawing Scale Conversion}, é a escala de conversão

É assim mesmo, com "{}". Como eu disse, clique o botão destacado e seleione algo, aí voce entende!!

Ah, chame a expressão de "deltax"...

Explicando: Esta expressão será usada para calcular a posição relativa da label de tubo em cima do tubo, sendo o "Delta X" no sentido do comprimento e "Delta Y" no sentido transversal que aparece aqui:


Já pegou o esquema, né? se não pegou, clique os OK que precisar e voltea editar o estilo de label que estávamos criando, abra o componente de linha e veja.

Não é que o "deltax" fica disponível para colocar no "Delta X", como na figura??

É!!!! legal né!!!

Mais ainda vamos fazer mais uma expressão, então clique os OK que precisar e volte a criar uma nova expressão:


Vai ficar assim:

Configura a saída para "Angle", como na figura acima e coloque a expressão
{Pipe Start Direction in plan}+pi/4

O pi/4, ou 45 graus, é para o texto ficar na horizontal, ja que a nossa linha terá um angulo de 225 graus.Volte a editar a label que estávamos criando e veja (olhe o campo Angle):


É, eu economizei algumas imagens... os servidores do oráculo agradecem...

Bom, é só definir o campo "Rotation Angle" para a expressão "anularot":


Clique os OK.....

Aí adicione uma label num tubo qualquer com o comando AeccAddNetworkPartPlanLabel (heheheh, digita aí!!!, ou menu Pipes/Add Pipe Network Labels/Single Part Plan)

Talvez seja necessário usar o Properties do autocad para trocar o estilo da label para este que criamos e pronto, vai ficar assim:


Simples né? Veja que deixei selecionado a label, para que você veja que não "estrechei" o ponto de inserção da label para perto do pv.... ele vai sozinho.

Sacou pra que serve as Expressions?

Uma utilidade é criarmos pontos de inserção diferentes para as labels, outra é se voce tem uma caixa de ligação enterrada, verá que não existe uma label para dar a profundidade, então podemos criar uma expressão assim para las labels de estrutura:
{Surface Elevation At Insertion Point}-{Sump Elevation}

Agora, talvez você queira aprender a colocar labels mais bonitas na superelevação em planta, veja

E claro, essa dica eu fiz pra promover o C3DRENESG, então não deixe de testar ele, que inclusive atualizei ontem e coloquei umas coisas legais na planilha.

Novos Programas - link

Lembra do programa que comentei aqui e aqui, segue o link: tbn2
Aguardo seus palpites!!!

Ah, roda no civil 3d 2011, autocad 2011

Demais versões, me mande um email

Explodir Spline em vb.net

Lembra daquele programinha para explodir spline? Que tal fazer isso em VB.NET? Veja:
(ah, usei o VISUAL STUDIO 2010 EXPRESS EDITION e AUTOCAD 2011)

Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.ApplicationServices.Application
Imports Autodesk.AutoCAD.EditorInput
Imports Autodesk.AutoCAD.Geometry
Imports Autodesk.AutoCAD.DatabaseServices
Imports Autodesk.AutoCAD.DatabaseServices.OpenMode


Public Module TBN2
''ponteiro para a transacao atualmente aberta
 Public CurrentTrans As Transaction = Nothing

''funcoes internas
''editor, é como o utility do vba
    Public Function ED() As Editor
        Return AcadDOC.Editor
    End Function

''documento atual, é como do thisdrawing
    Public Function AcadDOC() As Document
        Return DocumentManager.MdiActiveDocument
    End Function

''retorna o banco de dados do desenho atual
    Public Function DB() As Database
        Return AcadDOC.Database
    End Function

''adiciona uma entidade criada ao modelspace
    Public Function AddToModel(ByVal e As Entity) As ObjectId
        Dim bt As BlockTable = DB.BlockTableId.GetObject(ForRead)
        Dim btr As BlockTableRecord = bt(BlockTableRecord.ModelSpace).GetObject(ForWrite)
        AddToModel = btr.AppendEntity(e)
        CurrentTrans.AddNewlyCreatedDBObject(e, True)
    End Function

''inicia uma transacao com o desenho atual
    Public Sub StartTR()
        If CurrentTrans Is Nothing Then CurrentTrans = AcadDOC.TransactionManager.StartTransaction
    End Sub

''funcao principal: Spline2PLine
 <commandmethod("spline2pline", commandflags.usepickset)>
   Public Sub SPLINE2PLINE()
''inicia a transacao
        StartTR()
        Try
''pede a selecao das splines
            Dim ssr As PromptSelectionResult =
                ED.GetSelection(New PromptSelectionOptions,
                                New SelectionFilter(New TypedValue() {New TypedValue(0, "SPLINE")}))
            If ssr.Status <> PromptStatus.OK Then Exit Try

''pede a precisao
            Dim PPI As New PromptIntegerOptions(vbLf & "Qual a precisão?")
            PPI.UseDefaultValue = True
            PPI.DefaultValue = 10
            PPI.AllowNegative = False
            PPI.AllowZero = False
''se nao for informado, sai
            Dim ppr As PromptIntegerResult = ED.GetInteger(PPI)
            If ppr.Status <> PromptStatus.OK Then Exit Try

''em toda a selecao, repita:
            For Each ID As ObjectId In ssr.Value.GetObjectIds
                Dim S As Spline = ID.GetObject(ForWrite)
                Dim C As Entity = S.ToPolylineWithPrecision(ppr.Value)
                AddToModel(C)
            Next
'' em caso de erro na execucao:            
        Catch
''mostra o erro na linha de comando
            ED.WriteMessage(Err.Description)
        End Try

''fecha a transacao e informa ao autocad, para manter as alteracoes no banco de dados
        CurrentTrans.Commit()
    End Sub

End Module

Copie para um novo projeto do visual studio, carregue as referências:
acmgd.dll e acdbmgd.dll do autocad, compile e teste!!!



Dica sobre estilos do civil 3d

Outro dia vi um comando do civil 3d num site grigo que achei muito interessante, o comando é AECCIMPORTSTYLESANDSETTINGS, é é isso tudo aí...

A idéia é importar TODOS os estilos de um desenho para outro. Legal né?

Funciona assim: abre o desenho que receberá os estilos. Cerifique-se de que aquele que possui os estilos esteja fechado. Chame o comando AECCIMPORTSTYLESANDSETTINGS na linha de comando. Informe o caminhoccompleto e pronto. Um ououtro REFRESH no settings e os estilos estarão lá!!

Como digitar o caminho ou mesmo esse comando todo, experimente salvar esta lisp:

(DEFUN C:ISTYLES (/)
  (
IF (SETQ FILE (GETFILED "SELECIONE UM ARQUIVO"  "" "DWG" 4))
    (
COMMAND "AECCIMPORTSTYLESANDSETTINGS" FILE)
 ))



Salve e carregue com o APPLOAD, depois chame a lisp na linha de comando: ISTYLES

ah, o site onde vi é este

Novos Programas


Se você pegou a idéia do post anterior, legal, aguardo a sua idéia!!

No pacote deste programa estará incluso um novo comando: MPROFVIEW

A idéia é que se voce tem lá seus 20 ou 30 alinhamentos e não quer ficar criando profileview como no tutorial 7 pra cada um deles manualmente, configurando os bandset, estilo e tudo mais, que tal dar uma agilizada nisso? você vai economizar um tempinho legal numa das coisas mais massantes, heheheh.

Funciona assim: chame o comando MPROFVIEW, selecione os alinhamentos, o ponto de inserção do primeiro profileview e aparecerá esta tela:
Aí você já pode selecionar o estilo, layer e o bandset a usar.

Note que para o bandset sair com os perfis configurados corretamente, você deve nomear os perfis de terreno e greides seguindo sempre o mesmo template, por exemplo:
Greide-<[Paren Alignment Name(CP)]>, assim todos os greides terão o prefixo "Greide". Na tela do MPROFVIEW você preencheria para as bandas que precisa do greide: "Greide-*", onde o "*" pode ser qualquer coisa, ou o nome do alinhaemento. Simples né? Aí é só ver o resultado:


Tá mas ainda preciso ficar criando os perfis de superfície na mão...

Calma!!!! eu não disse que tem o comando MPERFIL também incluido?

Aí é so chamar o comando, selecionar os alinhamentos e será mostrada a tela:

Veja, voce escolhe o layer, prefixo do nome, a superfície e offset. O offset é pra você poder fazer perfis do bordo esquerdo e direito do eixo, saca?
Bem melhor que fazer um a um, não?

ah, tem uma versão em lisp destes dois ultimos que estão neste blog, mas como faz tempo que não escrevo mais lisp, meio que abandonei eles... .NET é muuuuuuuuuiiiito melhor!!!

EM breve uma versão .NET do EXPGE, que exporta hachuras com a sua textura:

Qual a utilidade disso? se lá, mas tanta gente já me pediu isso no EXPGE, que resolvi implementar, hehehe

Imagino mapas temáticos com hachuras que tem essas texturas, por exemplo...

Deu um gostinho já?? quer testar? me mande um mail!!!

SheetSet

correção 26/07/2011: links quebrados, obrigado Javahes !!!
Bem bem...
Estou as voltas com os programinhas pra variar e tá saindo um que eu considero bem interessante. A idéia é a seguinte: suponha que voce tem lá seus desenhos... uns 50 digamos, com uns 10 layouts cada um, sendo que cada layout possui uma prancha.

Claro que um volume desses é feito por mais de uma pessoa e com certeza existe a chance de se escrever errado alguma informaçao numa folha qualquer.

Como se certificar de que estao todas certas?

Uma das soluções é usar o SHEETSET do autocad e fazer com que o carimbo contenha textos, ou bloco com atributos que tenham FIELDs.

Assim, ao abrir o sheetset, voce pode editar as propriedades ali e as pranchas, que usam fields, se atualizam sozinhas.

Muito legal, não? mas o que é sheetset? o que é field??? ja fiz alguns posts sobre field, veja aqui

Mas vamos ver ver como aplicariamos isso na ideia acima.

Primeiro, você deve ter alguns desenhos com layouts. Nestes layouts colocamos o formato da folha, que poderia ser um bloco, ou melhor ainda, uma XREF.
Vou supor que seja um bloco e que esse bloco, possua atributos e esses atributos são os que preenchem o carimbo. assim:


Sacou?, baixe uma folha A1 de exemplo

Agora, chame o botão SheesetManager:

Vai abrir esta tela:

Escolha New Sheet Set:

Na tela que abriu, escolha "Existing Drawing"

Dê um nome ao sheetset e escolha onde ele será salvo:


Ainda nesta tela, clique o botão "Sheet Set Poroperties"
Abrirá:

Agora, vamos criar algumas propriedades, clique nesta tela o botão "Edit Custom Properties", vai abrir esta tela:


Agora, note que voce pode escolher se uma propriedade é comum para todas as folhas, ou se é específica para um folha, escolhendo no quadro "Owner" se quer que a propriedade seja para o Sheet (folha) ou Sheet Set (todas as folhas).
Vá editando propriedades, uma para cada atributo daquele arquivo que serve como modelo de folha baixe-o se ainda não o fez


Clique OK quando terminar e retorne a tela abaixo. Note que as propriedades que você criou estão disponíveis já:


Clique OK novamente, vocë voltará a tela:


Clique Avançar. Vai cair na tela de adicionar Layouts. Como ainda nao criamos nenhum desenho, Clique Avançar novamente, depois clique Concluir.

Agora crie um novo dwg e insira o bloco do carimbo no layout. Não preencha o carimbo ainda.

Você vai usar o comando EATTEDIT. No atributo Município, clique com o botão direito do mouse sobre a caixa Value:

Vai abrir a tela do editor de field:


Não Abrirá bem assim, mas se você for clicando os itens da esquerda para a direita:
Field Category: SheetSet
Field Name: SheetSet
SheetSet: exemplo
Sheet navigation tree: exemplo
Property: MUNICIPIO

Agora, clique OK e salve o desenho. Por exemplo: d:/exemplo.dwg

Após salver e SOMENTE APÓS SALVER, clique com o botão direito do mouse sobre o layout e clique "Import Layout as Sheet:


Vai aparecer esta tela:


Note que aparece uma lista com o layout selecionado. clique "Import checked"
Depois clique OK.

Agora abra o sheetset novamente:

Vai abrir a tela abaixo, clique com o botão direito do mouse sobre o nome do sheetset, depois clique "Properties"

Na tela que abre, edite o município:

Depois clique OK. Volte ao desenho e chame o REGEN, veja:

Percebe? Imagine que os 5m desenhos usam o mesmo bloco com atributos...

Abora o "crème de la crème". Aquilo que toda hora alguem m pede, um programiha para plotar vários dwgs de uma vez só!!!!


Ah, não precisa de programinha nenhum, use o sheetset!!!! Lembra da tela em que adicionamos o layout no sheetset? Viu o botão "Browse Drawings"

Se você já criou todos os dwg usando o carimbo correto, vai ficar assim:


Vai ficar assim:

Agora clica:

Agora é só esperar!!!!
Quer fazer PDF? escolha PDF, quer DWF escolha DWF!!!!
Ah, você quer PLT!!!!!
Crie uma plotter que so fá plt e escolhe PLT!!!!

Vai funcionar m-a-r-a-v-i-l-h-o-s-a-m-e-n-t-e ( que gay!!! ) bem!!!
desde que, claro, você tenha configurado a ploter, tamanho do papel, penas, etc em cada um dos desenhos!!!!!


Agora.... voê nao disse no começo do post que estava fazendo um programa???

Pois é, tinha até esquecido....

Bom, o programa servirá para você gerenciar os carimbos, sem precisar do sheetset necessariamente, e por exemplo, configurar o papel dessas folhas. Claro que voce pode fazer isso de outras formas e encorajo a você a fazê-lo, mas, se voc&e precisa representar um projeto grande de uma rodovia, ou loteamento por exemplo, pode deixar alguma viewport errada....

Não é raro você esquecer de mover o zoom de uma viewport após fazer o "copy layout/move to end"....
e só descobre na hora de imprimir!!! e tem dados que fica dificil de controlar no sheetset, como pro exemplo as linhas de "REFERENCIA_1" que está no dwg que passei

O programa é este abaixo:

Nele eu consigo:
Gerenciar o conteudo dos atributos das folhas,
Gerenciar as configurações de impressão das folhas
Quais viewports aparecem num layout
O que aparece no viewport, se é alinhamento, seçãoo ou perfil
se for alinhamento, sei as estacas que aparecem, se for perfil, sei seu intervalo, se for seção, quais são. Claro que tudo no esquemático, só para se certificar que o que está escrito no carimbo é o que deveria estar escrito!!!
Vai que tem uma viewport com o alinhamento A das estacas 0 a 10 e está escrito B no carimbo? é péssimo descobrir isso depois de impresso no dia da entrega!!!!

Sem contar que o sheetset guarda algumas surpresas as vezes... mais vou deixar você gostar dele pra imprimir, hehehehe

depois voce compra o meu programa, hehehehe

Depois eu falo mais sobre ele... e posto o link pra download do demonstrativo

por enquanto, gostaria que vocês avaliassem a idéia e mandassem sugestões