Pesquisar este blog

quarta-feira, 21 de maio de 2014

Separar dados oriundos de uma tabela (ou arquivo “.csv”, “.prn” ou outro) em uma lista



            A função abaixo foi realizada para que, a partir de uma string com dados separados por algum caractere delimitador, ou mesmo strings onde se carregou alguma linha de um arquivo de tabela, como “.csv”, “.prn”, se separe estes dados em uma lista.

;na função abaixo temos:
; -> o parâmetro “linha_sepdados” é a string contendo os dados
;    separados por algum caracter, (como por 
;    exemplo: “AA;29,50;30 anos;NOTA 05;”)
; -> o parâmetro “caracter_sepdados” é o caractere de separação dos 
;    dados (no exemplo é “;”). Importante: para esta função, a linha
;    deve sempre ser finalizada com o mesmo.

(defun sepdados (linha_sepdados caracter_sepdados)
   (setq return_sepdados nil)
   (setq refil "")
   (setq x 1)
   (setq tammtr (strlen linha_sepdados))
   (while (>= tammtr x)
      (setq teste (substr linha_sepdados x 1)) 
      (if (/= teste caracter_sepdados)
         (progn
            (setq refil (strcat refil teste))
            (setq x (+ x 1))
         )
      (progn
         (setq return_sepdados (append return_sepdados (list refil))) ; montagem da lista.
         (setq x (+ x 1))
            (setq refil "")
      ) 
      )
   )  ;fim do loop de leitura de campos da linha
return_sepdados  ;retorna uma lista com os elementos                
                 ;antes dispostos na linha texto demilitados por
                 ;algum   caracter.
)

            Abaixo, um exemplo de chamada da função:

(setq lista_alunos nil)
(setq linha1_cadastro “Bento$12$Muriaé$MG$”)
(setq lista_alunos (sepdados linha1_cadastro “$”))

            O resultado será:

lista_alunos = (“Bento” “12” “Muriaé” “MG”)

Valeu, abraço.

quinta-feira, 25 de outubro de 2012

Lista dos Principais Códigos DXF - AutoLisp

Boa noite, conforme falei na semana passada, hoje estou postando uma lista com os principais códigos DXF.

Pra quem está começando, sugiro imprimir a lista pois será muito útil ter ela em mãos quando for programar, com o tempo nós acabamos decorando os mais comuns.


Alguns códigos DXF são  comuns a todos os elementos:
Entidade  
Código Descrição
-1 node da entidade: <ENTITY-NAME>
0 tipo do elemento
6 tipo de linha (se não existir, indica tipo de linha "BYLAYER")
8 layer
62 índice de cor (se não existir, índice de cor  "BYLAYER")
210 elevação
Principais Códigos DXF por Elemento
Entidade LINE
Código Descrição
0 tipo do elemento "LINE"
10 primeiro vértice
11 segundo vértice
Entidade CIRCLE
Código Descrição
0 tipo do elemento: "CIRCLE"
10 centro
40 raio
Entidade CIRCLE
Código Descrição
0 tipo do elemento: "CIRCLE"
10 primeiro vértice
11 segundo vértice
Entidade ARC
Código Descrição
0 tipo do elemento: "ARC"
10 centro
40 raio
50 ângulo inicial (em radianos)
51 ângulo final (em radianos)
Entidade TEXT
Código Descrição
0 tipo do elemento: "TEXT"
1 cadeia de caracteres que compõe o texto
7 estilo de texto
10 canto inferior esquerdo
11 ponto de alinhamento
40 altura do texto
41 fator de escala de largura
50 ângulo de rotação (em radianos)
71 flag de geração de texto
72 flag de justificação horizintal
73 flag de alinhamento vertical
Entidade MTEXT
Código Descrição
0 tipo do elemento: "MTEXT"
1 cadeia de caracteres que compõe o texto
7 estilo de texto
10 canto inferior esquerdo
40 altura do texto
41 fator de escala de largura
50 ângulo de rotação (em radianos)
71 flag de geração de texto
72 flag de justificação horizintal
73 flag de alinhamento vertical
Entidade POLYLINE
Código Descrição
0 tipo do elemento: "LWPOLYLINE"
90 quantidade de vértices
10 uma lista para cada vértice
40 uma lista para cada trecho: espessura inicial
41 uma lista para cada trecho: espessura final do trecho
42 uma lista para cada trecho: fator de curvatura (para trechos em arco)
70 tipo de polyline
Entidade SPLINE
Código Descrição
0 tipo do elemento: "SPLINE"
90 quantidade de vértices
70 tipo de spline
Entidade 3DPOLY
Código Descrição
0 tipo do elemento: "POLYLINE"
40 espessura inicial
41 espessura final do trecho de ponto de inserção
Entidade VERTEX
Código Descrição
0 tipo do elemento: "VERTEX"
10 ponto
Entidade SEQEND
Código Descrição
0 tipo do elemento: "VERTEX"
-2 "Entity-Name" do objeto principal
Entidade POINT
Código Descrição
0 tipo do elemento: "POINT"
10 ponto
Entidade INSERT
Código Descrição
0 tipo do elemento: "INSERT"
2 nome do bloco
10 ponto de inserção
41 fator de escala X
42 fator de escala Y
43 fator de escala Z
50 ângulo de rotação (em radianos)
Entidade ATTRIB
Código Descrição
0 tipo do elemento: "ATTRIB"
1 valor do atributo
2 nome do atributo
3 mensagem de "prompt" do atributo
7 estilo de texto
10 ponto de inserção
40 altura do texto
41 fator de escala de largura
50 ângulo de rotação (em radianos)
70 características do atributo
Entidade DIMENSION
Código Descrição
0 tipo do elemento: "DIMENSION"
3 estilo de dimensionamento
10, 11, 12, 13, 14, 15 coordenadas de pontos necessários para definição da cota
70 tipo da cota
Entidade LAYER
Código Descrição
0 tipo do elemento: "LAYER"
2 nome do layer
70 estado do layer
Entidade STYLE
Código Descrição
0 tipo do elemento: "STYLE"
2 nome do estilo de texto
3 nome do arquivo de fonte de texto
40 altura do texto
41 fator de escala de largura
50 ângulo de inclinação (em radianos)
71 tipo do elemento: "STYLE"