PDA

View Full Version : Manipulação de listas de polyline em lisp.



ed_cristian.dwg
2011-03-29, 03:03 PM
Bom dia pessoal,

Eu crie uma polyline e através de AutoLisp, criei a seguinte lista:

((-1 . <Entity name: 7ffff7acb10>) (0 . "LWPOLYLINE") (330 . <Entity name:
7ffffbcee70>) (5 . "121") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 .
"0") (100 . "AcDbPolyline") (90 . 4) (70 . 1) (43 . 0.0) (38 . 0.0) (39 . 0.0)
(10 117.5 77.5) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 217.5 77.5) (40 .
0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 217.5 297.5) (40 . 0.0) (41 . 0.0) (42
. 0.0) (91 . 0) (10 117.5 297.5) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (210
0.0 0.0 1.0))

Como vc's podem perceber, existem 4 "(assoc 10)",
bom, eu gostaria de duas coisas.

como eu faço para acessar as diferentes "(assoc 10)" da lista???

há como eu qualtificar a quantidades de (assoc 10) existentes???

obrigado pessoal e aguardo.

pferreira
2011-06-01, 11:33 PM
A lista que tem é a definição dxf do objecto lwpolyline, o código de grupo 10 é aquele que define as coordenadas dos vértices (em OCS) dessa lwpolyline e existe uma entrada por cada vértice, uma maneira de saber quantos são é pelo código 90 que indica o número de vértices, no seu caso (90 . 4) ou seja 4 vértices, 4 entradas de código 10 e estas entradas estão sempre pela ordem que os vértices têm na lwpolyline, ou seja não estão colocados aleatoriamente na sua listagem por isso é mais fácil criar uma sub-rotina que aceda ao valor que quer!

Cumprimentos