Results 1 to 9 of 9

Thread: Comando Flatten reduz comprimento de objeto

  1. #1
    Member
    Join Date
    2015-09
    Posts
    2
    Login to Give a bone
    0

    Default Comando Flatten reduz comprimento de objeto

    Bom Dia Pessoal!
    Meu nome é Herminio e trabalho com Modelagem 3D.
    Extraí uma seção de um modelo, e usei o comando flatten, para minha surpresa os elemetos da seção encolheram (se usado a opção remove hidden line), fiz alguns testes inclusive com uma linha com tamanho de 100 cm e depois do flatten ela media 99,4312 cm.
    Sei que não há necessidade de usar tal comando, pois a seção gerada é em 2D mas por curiosidade...alguém tem idéia do que acontece com o comando?

    Grato

    Herminio
    Brasília DF

  2. #2
    100 Club
    Join Date
    2007-05
    Location
    São Paulo - SP - Brazil
    Posts
    181
    Login to Give a bone
    0

    Default Re: Comando Flatten reduz comprimento de objeto

    eu costumo chamar isso de pau do comando
    estas variasões acontecem na substituição da coordenada "Z", como o flatten é um aplicatico ARX não sei como o codigo dele faz esta troca.
    é um pau semelhante a o que acontece com algumas partes do desenho (normalmente objeto de um "Rotate3D") que vão parar em algum canto obscuro do arquivo.

    é por este que ainda utilizo a rotina que eu desenvolvi antes dele aparecer.
    quem quiser é só copiar o texto no bloco de notas e salvar com a extenção ".lsp"

    ;|Programa : Cotaz.lsp Ver 8.0
    Autor : Fabio Santana da Silva
    Data : 02/01/2008|;

    (princ "\n rotinha desenvolvida por Fabio Santana\nDigite COTAZ para ativar a rotina")

    (defun c:cotaz (/ e1 n1 el1 el2 pt ptx pty p)
    (setq e1 (ssget)
    n1 (sslength e1)
    h (getreal "\nDe a altura desejada:")
    )
    (while (> n1 0)
    (setq el1 (ssname e1 (setq n1 (1- n1))))
    (if (or (equal "POLYLINE" (cdr (assoc 0 (entget el1))))
    (equal "LWPOLYLINE" (cdr (assoc 0 (entget el1))))
    )
    (progn
    (if (equal (cdr (assoc 38 (entget el1))) nil)
    (progn
    (setq el2 (entnext))
    (while (/= el2 nil)
    (if (equal "VERTEX" (cdr (assoc 0 (entget el2))))
    (progn
    (setq pt (cdr (assoc 10 (entget el2)))
    ptx (car pt)
    pty (cadr pt)
    p (list ptx pty h)
    )
    (entmod
    (subst (cons 10 p) (assoc 10 (entget el2)) (entget el2))
    )
    )
    )
    (setq el2 (entnext el2))
    )
    )
    (progn
    (entmod
    (subst (cons 38 h) (assoc 38 (entget el1)) (entget el1))
    )
    )
    )
    (entupd el1)
    )
    (progn
    (setq pt (cdr (assoc 10 (entget el1)))
    ptx (car pt)
    pty (cadr pt)
    p (list ptx pty h)
    )
    (entmod
    (subst (cons 10 p) (assoc 10 (entget el1)) (entget el1))
    )
    (if (/= (setq pt (cdr (assoc 11 (entget el1)))) nil)
    (progn
    (setq ptx (car pt)
    pty (cadr pt)
    p (list ptx pty h)
    )
    (entmod
    (subst (cons 11 p) (assoc 11 (entget el1)) (entget el1))
    )
    )
    )
    (if (/= (setq pt (cdr (assoc 210 (entget el1)))) (setq p2 (list 0 0 1)))
    (entmod
    (subst (cons 210 p2) (assoc 210 (entget el1)) (entget el1))
    )
    )
    )
    )
    )
    (princ)
    )

    Quote Originally Posted by herminioleao View Post
    Bom Dia Pessoal!
    Meu nome é Herminio e trabalho com Modelagem 3D.
    Extraí uma seção de um modelo, e usei o comando flatten, para minha surpresa os elemetos da seção encolheram (se usado a opção remove hidden line), fiz alguns testes inclusive com uma linha com tamanho de 100 cm e depois do flatten ela media 99,4312 cm.
    Sei que não há necessidade de usar tal comando, pois a seção gerada é em 2D mas por curiosidade...alguém tem idéia do que acontece com o comando?

    Grato

    Herminio
    Brasília DF

  3. #3
    Active Member
    Join Date
    2007-08
    Posts
    54
    Login to Give a bone
    0

    Default Re: Comando Flatten reduz comprimento de objeto

    Olá,

    Verifique se está a trabalhar num plano paralelo ao UCS activo antes de executar o comando Flatten.
    No desenho problemático experimente desenhar a linha com 100 unidades, digite Plan na linha de comandos e responda C à questão Enter an option [Current ucs/Ucs/World] <Current>:
    Execute novamente o comando Flatten e teste o resultado.

    Espero que ajude.

  4. #4
    Member
    Join Date
    2015-09
    Posts
    2
    Login to Give a bone
    0

    Default Re: Comando Flatten reduz comprimento de objeto

    Jorge, me parece que o Fábio tem razão, mesmo que você execute o comando em um arquivo novo dá o mesmo erro.
    Fábio, obrigado pela rotina lisp.


    grato a ambos pela gentileza.

    Abraço

    Herminio

  5. #5
    Active Member
    Join Date
    2007-08
    Posts
    54
    Login to Give a bone
    0

    Default Re: Comando Flatten reduz comprimento de objeto

    Correcto.

    Os ficheiros das Express Tools, (principalmente os lsp que são legíveis) estão muito bem executados mas pelos vistos não são "à prova de bala".

    Olhando para o help das Espress Tools pode ler-se o seguinte:

    Note:
    The FLATTEN command is similar in nature to a Plot To 2D type of operation. As with plot conversion, some degradation of drawing precision may occur. This precision loss is usually insignificant and it occurs mainly when the Hide option is selected or the perspective view is on.


    Os testes que fiz com o computador habitual não apresentaram erros, o que me faz supor que a definição de variáveis terá forte influência no resultado.
    De qualquer das formas, a acontecer, é um erro considerável e a solução passa por usar rotinas externas como a que o Fábio oportunamente partilhou.

    Até breve

  6. #6
    Member
    Join Date
    2008-07
    Location
    Maceió/AL - Brasil
    Posts
    19
    Login to Give a bone
    0

    Default Re: Comando Flatten reduz comprimento de objeto

    Como o HELP do software admite, ele realmente causa modificações do tamanho,

    Ja fiz varios testes inclusive salvando um novo USC mas ainda assim o Flatten apresenta variaçoes finais na medida em relação ao desenho original assim como o Flatshot.

  7. #7
    Member
    Join Date
    2007-10
    Posts
    10
    Login to Give a bone
    0

    Default Re: Comando Flatten reduz comprimento de objeto

    Boa Tarde,

    Tanto quanto pude observar círculos e elipses são bem planificados com a opção Hidden, já as linhas e polilinhas...
    Seria útil um aviso do tipo "Atenção! Probabilidade de erros após rebatimento..." quando a escolha fosse Remove Hidden Lines.

    Há alguns anos, ainda as ET eram pouco divulgadas, ensinaram-me uma técnica com o comando Move que planificava linhas e polilinhas, embora sem o efeito de esconder elementos. Com o tempo esqueci-me da sequência usada para esse efeito. Alguém se lembra ou ainda a usa?

    Com os melhores cumprimentos

  8. #8
    Active Member
    Join Date
    2007-08
    Posts
    54
    Login to Give a bone
    0

    Default Re: Comando Flatten reduz comprimento de objeto

    Quote Originally Posted by albneto View Post
    Boa Tarde,

    Tanto quanto pude observar círculos e elipses são bem planificados com a opção Hidden, já as linhas e polilinhas...
    Seria útil um aviso do tipo "Atenção! Probabilidade de erros após rebatimento..." quando a escolha fosse Remove Hidden Lines.

    Há alguns anos, ainda as ET eram pouco divulgadas, ensinaram-me uma técnica com o comando Move que planificava linhas e polilinhas, embora sem o efeito de esconder elementos. Com o tempo esqueci-me da sequência usada para esse efeito. Alguém se lembra ou ainda a usa?

    Com os melhores cumprimentos

    Olá,

    Talvez colida com o acordo de utilização, por isso não vou anexar o ficheiro modificado, mas se quisermos um aviso do género que sugeriu podemos alterar o ficheiro Flatten.lsp que está na pasta Express para

    ...
    (setq ans acet:flatn-hide)
    (setq acet:flatn-hide ans)
    );if

    (if (/= ans "No")
    (progn
    (initget "Sim Não")
    (setq conf (getkword "\nAtenção! Probabilidade de erros após rebatimento...Deseja continuar? <S/N>: "))
    (if (equal conf "Não")
    (quit)
    )
    )
    )


    (if (equal ans "No")
    (acet-flatn ss nil)
    (acet-flatn ss T)
    ...

    em que a linhas a itálico contêm o código a introduzir.



    O truque usado para planificar as linhas deveria ser aquele em que as entidades eram movidas pelo eixo Z até um ponto que estivesse além do limite do AutoCAD e a seguir inverter o movimento.

    A sequência é:

    Command: move
    Select objects: Specify opposite corner: nn found
    Select objects:
    Specify base point or [Displacement] <Displacement>: 0,0
    Specify second point or <use first point as displacement>: 0,0,1e99
    Command: move
    Select objects: p
    nn found
    Select objects:
    Specify base point or [Displacement] <Displacement>: 0,0
    Specify second point or <use first point as displacement>: 0,0,-1e99

    Ou usar uma macro para um botão com a opção Window para o comando Move:

    ^C^C_Move;W;\\;0,0,1e99;;_Move _P;;0,0,-1e99;;


    Até breve.
    Last edited by jorgeanjos; 2009-02-10 at 04:13 PM.

  9. #9
    Member
    Join Date
    2009-10
    Posts
    3
    Login to Give a bone
    0

    Default Re: Comando Flatten reduz comprimento de objeto

    Pessoal, me cadstrei há pouco no AUGI e estava procurando algo sobre o comando FLATTEN. Não sei se me farei entnder, mas existe uma lógica no "encurtament d linhs aoxecutr esse comndo.

    imagine uma linha no espaço tridimensional. Ao olharmos esta linha ela no plano(X,Y) é bem curta...PORÉM ao olharmos no espaço (X,YeZ), veremos que as cotas estão bem próximas, porém há uma diferença grande entre as cotas. POR EXEMPLO:

    no plano a dist. entre as cotas é 10m.

    no espaço a dif entre as cotas é 100m.

    QUANDO EXECUTARMOS O COMANDO FLATTEN ELE ZERARÁ AS COTAS, TRAZENDO OS PTOS PARA O PLANO, ONDE A DISTANCIA É 10m. Então teremos a distância alterada...

Similar Threads

  1. Flatten Z cords without using the Flatten command.
    By Doodlemusmaximus in forum AutoCAD General
    Replies: 15
    Last Post: 2016-01-08, 02:26 PM
  2. Mover um objeto, sem utilizar o comando "move" no lisp
    By Edmar Cristiano in forum AutoLISP
    Replies: 1
    Last Post: 2013-07-30, 02:28 AM
  3. Reconher informações de um objeto.
    By ed_cristian.dwg in forum AutoLISP
    Replies: 10
    Last Post: 2010-03-15, 08:23 PM
  4. XDATA de um objeto no AutoDesk Map usando VBA
    By lincolnrs in forum AutoLISP
    Replies: 0
    Last Post: 2008-03-20, 06:36 PM
  5. Map 3D2008 - Adicionar Objeto com O.D. ao SHP conectado
    By Andre Oliveira in forum AutoCAD Civil 3D - General
    Replies: 0
    Last Post: 2007-07-26, 04:19 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •