Tenha uma nova experiência ao navegar no Fórum pelo computador de forma integrada ao portal principal. Acesse o seguinte link: https://www.autolisp.com.br/board/. Entretanto para dispositivos móveis recomendamos acessar este outro link: https://www.autolisp.com.br/forum/

inserir blocos apartir de um txt

Dúvidas sobre VB para AutoCAD...

Moderador: Moderadores

Responder
Avatar do usuário
f0876
Novato
Novato
Mensagens: 3
Registrado em: Seg 22 Dez 2003 11:00:00 pm

inserir blocos apartir de um txt

Mensagem por f0876 » Ter 09 Mai 2006 3:04:11 am

Alguém saberia me informar como posso inserir blocos no meu desenho apartir de um arquivo txt contendo aas coordenadas x,y,z?

Avatar do usuário
neyton
Master
Master
Mensagens: 1668
Registrado em: Qui 25 Dez 2003 11:00:00 pm
Contato:

Mensagem por neyton » Ter 09 Mai 2006 11:21:04 am

isso é muito geral... suponho q esses blocos nao tenham atributos...

se nao tem

veja a sequiencia do insert:
____________________________________________________________
Command: -INSERT
Enter block name or [?] <marco>:

Units: Millimeters Conversion: 1.000
Specify insertion point or [Basepoint/Scale/X/Y/Z/Rotate]: 0,0

Enter X scale factor, specify opposite corner, or [Corner/XYZ] <1>:
Enter Y scale factor <use X scale factor>:

Specify rotation angle <0d0'0">:
____________________________________________________________

com um editor de texto vc pode criar a seguinte sequencia:

( command "-insert" "name" "0,0" 1 1 0 )
( command "-insert" "name" "1,9" 1 1 0 )
( command "-insert" "name" "2,5" 1 1 0 )
( command "-insert" "name" "3,4" 1 1 0 )
...
(command "insert" "name" "0,0" 1 1 0 )

so trocando a coordenada....
ai dá um CTRL+C nesse texto vá a linha de comando do cad e dê um CTRL+V ( o cursor do mouse deve estar dentro da linha de comando)

um excel pra montar essa cadeia ia bem...

mas existem lisps aos montes pra fazer isso...

explicando:
(command "insert" "name" "0,0" 1 1 0 )
command -> função do autolisp
"insert" -> o comando q será executado
"name" -> nome do bloco
"0,0" -> coordenada do ponto
1 1 0 -> escala X, Y e rotação

Avatar do usuário
f0876
Novato
Novato
Mensagens: 3
Registrado em: Seg 22 Dez 2003 11:00:00 pm

inserir blocos apartir de um txt

Mensagem por f0876 » Ter 09 Mai 2006 12:46:42 pm

Neyton, valeu muito a dica, porém gostaria de uma coisa mais automatizada. Ex: dou o comando, ele abre uma janela para eu escolher o arquivo txt, escolho o arquivo e ele insere os blocos.

Achei uma Lisp que desenha polylines. Funciona do jeito que eu queria, mas não sei alterar o código para que ele insira blocos ao invés de desenhar polylinhas.

Fernando.

Avatar do usuário
neyton
Master
Master
Mensagens: 1668
Registrado em: Qui 25 Dez 2003 11:00:00 pm
Contato:

Mensagem por neyton » Ter 09 Mai 2006 1:03:30 pm

( defun c:dpts ( / file line n )

( setq file ( getfiled "Open grd file" "c:/" "dat" 8 )
file ( if file ( open file "r" ) ( exit ) )
line ( read-line file )
n 1 )
( setvar "osmode" 0 )
( while line
( while ( vl-string-search " " line )
( setq line ( vl-string-subst "," " " line ) ) )
( command "point" line )
( prompt ( strcat "\n" ( itoa n ) ) )
( setq line ( read-line file )
n ( 1+ n ) ) )
( close file )
)

; arotina acima, desenha pontos nas coordenadas, se vc prefere q sejam blocos, substitua a seguinte linha:
( command "point" line )
por
( command "-insert" "name" line 1 1 0 )

os dados são os q eu expliquei acima

o arquivo dat com as coordenadas dos pontos, deve estar escritos da seguinte forma:

x1 y1 z1
x2 y2 z2
...
xn yn zn

o separador de decimais deve ser o ponto, assim:
100.221 por exemplo

se o seu bloco tem atributos, vc terá q dizer como é a estrutura do arquivo de pontos, os nomes dos atributos, os valores padrão, a formatação do texto...

ajudaria se vc postasse as primeiras linhas de um de seus arquivos de pontos
( command "-insert" "name" line 1 1 0 )

Avatar do usuário
f0876
Novato
Novato
Mensagens: 3
Registrado em: Seg 22 Dez 2003 11:00:00 pm

inserir blocos apartir de um txt

Mensagem por f0876 » Ter 09 Mai 2006 3:02:07 pm

PERFEITO, MEU AMIGO !!! Não sei como te agradecer.
Vou aprimorá-lo e criar um atributo, certamente ele me será muito útil, pois eu precisarei de colocar textos nos blocos inseridos. Eles serão numerados.
Mas para isso preciso contactar meus amigos.

De qualquer maneira te agradeço muito.

Fernando M. Ribiero.

Responder