Определение Площади Поверхности 3d Объекта. Autolisp

Тема в разделе "Другие", создана пользователем Chip115, 22 дек 2012.

  1. Chip115

    Chip115 Гость

    Всем привет! Поставили задачу написать программу на языке autolisp, которая будет определять площадь поверхности 3D объекта. В качестве объекта я условно взял куб (то, что первое в голову пришло). Так как с лиспом абсолютно не знаком,то конечно же столкнулся с трудностями. В общем, помогите начать. Даже не знаю с какой стороны подходить к решению этой проблемы. Ознакомился с синтаксисом, написал простенькие программы. Вроде проникся темой.
    Я нашел функцию, которая возвращает параметры нарисованного объекта. Вот что получилось
    Код (Text):
    (setq myline (entget (entlast)))
    ((-1 . <Имя объекта: 7ef03568>) (0 . "LINE") (330 . <Имя объекта: 7ef01cf8>) (5
    . "225") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 .
    "AcDbLine") (10 1816.85 1127.13 0.0) (11 4263.73 1486.39 0.0) (210 0.0 0.0 1.0))
    Это была просто линия. С параметрами я разобрался.
    Вот думаю, можно ли юзая эту функцию вычислить координаты ребер куба, а потом вычислить площадь - дело техники?
    Короче, сказано - сделано. Нарисовал куб со сторонами 10х10х10. Ввел команду и вот что получил.
    Код (Text):
    (setq myobj(entget (entlast)))
    ((-1 . <Имя объекта: 7ef035f0>) (0 . "3DSOLID") (330 . <Имя объекта: 7ef01cf8>)
    (5 . "236") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 .
    "AcDbModelerGeometry") (70 . 1) (1 . "mnjoo nnj m mk ") (1 . "ni
    ^*+0;:,4 ^*+0\\^[ nf ^LR mnhqoqoqkjol QK o ") (1 . "n fqfffffffffffffffj:rooh
    n:rono ") (1 . ">,27:>;:- {rn rn _nm mnhqoqoqkjol |") (1 . "=0;& {m rn {rn {l
    {rn {rn |") (1 . "-:9@)+r:&:r>++-6= {rn rn {rn {rn {n {k {j |") (1 . "3*2/ {i
    rn {rn {rn {h {n |") (3 . ":&:@-:961:2:1+ {rn rn _j 8-6; n _l +-6 n _k ,*-9 o
    _l >;5 o _k 8->; o _f /0,+<7:<4 o _k <>3< n _k <01) o _k ,+03
    oqolmlkjflfkmhinkmnm _k 1+03 lo _k;,63 o _g 93>+1:,, o _h /6'>-:> o _k 72>' o
    _i 8-6;>- o _j 28-6; looo _j *8-6; o _j )8-6; o _no :1;@96:3;,") (1 . " |") (1
    . "):-+:'@+:2/3>+: {rn rn l o n g |") (1 . "-:9@)+r:&:r>++-6= {rn rn {rn {rn {l
    {k {j |") (1 . ",7:33 {g rn {rn {rn {rn {f {rn {l |") (1 . "-:9@)+r:&:r>++-6=
    {rn rn {rn {rn {h {k {j |") (1 . "9><: {no rn {rn {nn {nm {h {rn {nl 90-(>-;
    ,6183: |") (1 . "92:,7r:&:r>++-6= {rn rn {nk {rn {f |") (1 . "9><: {nj rn {rn
    {ni {nh {h {rn {ng -:-,:; ,6183: |") (1 . "300/ {rn rn {rn {rn {nf {f |") (1
    . "/3>1:r,*-9><: {rn rn {rn jqklmlmjinlnkjmmk jqoooooooooooooojl
    roqilijnjfgljohjjoml o o n n o o 90-(>-;@) V V V V |") (1 . "-:9@)+r:&:r>++-6=
    {rn rn {rn {no {f {k {j |") (1 . "92:,7r:&:r>++-6= {rn rn {mo {rn {nn |") (1 .
    "9><: {mn rn {rn {mm {ml {h {rn {mk -:-,:; ,6183: |") (1 . "300/ {rn rn {rn
    {rn {mj {nn |") (1 . "/3>1:r,*-9><: {rn rn {rn jqklmlmjinlnkjmmk
    jqoooooooooooooojl rnoqilijnjfgljohjj o o n n o o 90-(>-;@) V V V V |") (1 .
    "<0:;8: {rn rn {rn {mi {mh {mg {mf 90-(>-; {nm {rn |") (1 . "-:9@)+r:&:r>++-6=
    {rn rn {rn {nj {nn {k {j |") (1 . "92:,7r:&:r>++-6= {rn rn {lo {rn {ni |") (1 .
    "9><: {ln rn {rn {lm {ll {h {rn {lk -:-,:; ,6183: |") (1 . "300/ {rn rn {rn
    {rn {lj {ni |") (1 . "/3>1:r,*-9><: {rn rn {rn jqklmlmjinlnkjmmk
    jqlmfohojngmoohjnk:ronj rjqilijnjfgljohjjom o n o o o n 90-(>-;@) V V V V |")
    (1 . "<0:;8: {rn rn {rn {li {lh {lg {lf 90-(>-; {nh {rn |") (1 . "<0:;8: {rn rn
    {rn {ko {nf {kn {km 90-(>-; {nm {rn |") (1 . "<0:;8: {rn rn {rn {nf {ko {kl {kk
    90-(>-; {nm {rn |") (1 . "<0:;8: {rn rn {rn {kj {ki {nf {mf -:-,:; {kh {rn
    |") (1 . ":;8: {kg rn {rn {kf rj {jo j {mg {jn 90-(>-; _h *1410(1 |") (1 .
    "-:9@)+r:&:r>++-6= {rn rn {rn {mn {ni {k {j |") (1 . "92:,7r:&:r>++-6= {rn rn
    {jm {rn {mm |") (1 . "9><: {jl rn {rn {jk {jj {h {rn {ji -:-,:; ,6183: |") (1
    . "300/ {rn rn {rn {rn {jh {mm |") (1 . "/3>1:r,*-9><: {rn rn {rn
    oqklmlmjinlnkjmmk jqoooooooooooooojl rjqilijnjfgljohjjom n o o o o rn 90-(>-;@)
    V V V V |") (1 . "<0:;8: {rn rn {rn {jg {kl {jf {io 90-(>-; {ml {rn |") (1 .
    "<0:;8: {rn rn {rn {in {mj {jg {im 90-(>-; {nh {rn |") (1 . "<0:;8: {rn rn {rn
    {mj {in {il {ik 90-(>-; {nh {rn |") (1 . "<0:;8: {rn rn {rn {ki {kj {mj {lf
    -:-,:; {kh {rn |") (1 . ":;8: {ij rn {rn {ii rj {ih j {lg {ig 90-(>-; _h
    *1410(1 |") (1 . "<0:;8: {rn rn {rn {mh {mi {if {ho 90-(>-; {nm {rn |") (1 .
    "<0:;8: {rn rn {rn {hn {hm {mi {km -:-,:; {jj {rn |") (1 . ":;8: {hl rn {rn
    {jo rj {hk j {kn {hj 90-(>-; _h *1410(1 |") (1 . "<0:;8: {rn rn {rn {lj {hi {mh
    {kk -:-,:; {ml {rn |") (1 . ":;8: {hh rn {rn {hg rj {kf j {kl {hf 90-(>-; _h
    *1410(1 |") (1 . "<0:;8: {rn rn {rn {lg {mg {hi {go 90-(>-; {kh {rn |") (1 .
    "<0:;8: {rn rn {rn {mg {lg {hn {gn -:-,:; {kh {rn |") (1 . "300/ {rn rn {rn
    {rn {kj {jk |") (1 . "/+36,+r:&:r>++-6= {rn rn {rn {rn {mf |") (1 . "):-+:' {rn
    rn {rn {mf o {gm |") (1 . "):-+:' {rn rn {rn {mf n {gl |") (1 . ",+->687+r<*-):
    {rn rn {rn noqklmlmjinlnkjmmk jqoooooooooooooojl roqilijnjfgljohjjoml o n o V V
    |") (1 . "-:9@)+r:&:r>++-6= {rn rn {rn {ln {mm {k {j |") (1 . "92:,7r:&:r>++-6=
    {rn rn {gk {rn {lm |") (1 . "9><: {gj rn {rn {rn {kh {h {rn {gi -:-,:; ,6183:
    |") (1 . "300/ {rn rn {rn {rn {hn {lm |") (1 . "/3>1:r,*-9><: {rn rn {rn
    jqklmlmjinlnkjmmk noqooooooooooooooj rjqilijnjfgljohjjom o rn o o o rn
    90-(>-;@) V V V V |") (1 . "<0:;8: {rn rn {rn {gh {if {hm {gg 90-(>-; {ll {rn
    |") (1 . "<0:;8: {rn rn {rn {hi {lj {li {im -:-,:; {ml {rn |") (1 . "<0:;8:
    {rn rn {rn {if {gh {lj {io
    -:-,:; {ll {rn |") (1 . ":;8: {gf rn {rn {hg rj {fo j {jf {fn 90-(>-; _h
    *1410(1 |") (1 . "<0:;8: {rn rn {rn {lh {li {gh {fm 90-(>-; {nh {rn |") (1 .
    ":;8: {fl rn {rn {ih rj {fo j {jg {fk 90-(>-; _h *1410(1 |") (1 . "<0:;8: {rn
    rn {rn {hm {hn {lh {ik -:-,:; {jj {rn |") (1 . ":;8: {fj rn {rn {fi rj {ii j
    {il {fh 90-(>-; _h *1410(1 |") (1 . "/+36,+r:&:r>++-6= {rn rn {rn {rn {lf |")
    (1 . "):-+:' {rn rn {rn {lf o {fg |") (1 . "):-+:' {rn rn {rn {go n {ff |") (1
    . ",+->687+r<*-): {rn rn {rn noqklmlmjinlnkjmmk jqoooooooooooooojl
    rnoqilijnjfgljohjj o rn o V V |") (1 . "<0:;8: {rn rn {rn {jh {jf {ko {ho
    -:-,:; {ll {rn |") (1 . ":;8: {noo rn {rn {hk rj {hg j {if {non 90-(>-; _h
    *1410(1 |") (1 . "<0:;8: {rn rn {rn {il {kn {ki {gn 90-(>-; {jj {rn |") (1 .
    "<0:;8: {rn rn {rn {kn {il {jh {gg -:-,:; {jj {rn |") (1 . "/+36,+r:&:r>++-6=
    {rn rn {rn {rn {km |") (1 . "):-+:' {rn rn {rn {km n {nom |") (1 .
    ",+->687+r<*-): {rn rn {rn jqklmlmjinlnkjmmk noqooooooooooooooj
    roqilijnjfgljohjjoml rn o o V V |") (1 . "<0:;8: {rn rn {rn {kl {jg {kj {go
    -:-,:; {ml {rn |") (1 . "/+36,+r:&:r>++-6= {rn rn {rn {rn {kk |") (1 .
    "):-+:' {rn rn {rn {ho n {nol |") (1 . ",+->687+r<*-): {rn rn {rn
    jqklmlmjinlnkjmmk jqlmfohojngmoohjnk:ronj roqilijnjfgljohjjoml n o o V V |") (1
    . ":;8: {nok rn {rn {kf rj {ih j {kj {noj 90-(>-; _h *1410(1 |") (1 . ":;8:
    {noi rn {rn {jo rj {ii j {ki {noh 90-(>-; _h *1410(1 |") (1 . "/061+ {rn rn {rn
    noqklmlmjinlnkjmmk jqlmfohojngmoohjnk:ronj roqilijnjfgljohjjoml |") (1 . "/061+
    {rn rn {rn noqklmlmjinlnkjmmk noqooooooooooooooj roqilijnjfgljohjjoml |") (1 .
    "-:9@)+r:&:r>++-6= {rn rn {rn {jl {lm {k {j |") (1 . "92:,7r:&:r>++-6= {rn rn
    {nog {rn {jk |") (1 . "/3>1:r,*-9><: {rn rn {rn noqklmlmjinlnkjmmk
    jqoooooooooooooojl rjqilijnjfgljohjjom rn o o o o n 90-(>-;@) V V V V |") (1 .
    "<0:;8: {rn rn {rn {jf {jh {in {fm -:-,:; {ll {rn |") (1 . ":;8: {nof rn {rn
    {hk rj {fi j {hm {nno 90-(>-; _h *1410(1 |") (1 . "/+36,+r:&:r>++-6= {rn rn {rn
    {rn {io |") (1 . "):-+:' {rn rn {rn {fm o {nnn |") (1 . ",+->687+r<*-): {rn rn
    {rn oqklmlmjinlnkjmmk jqlmfohojngmoohjnk:ronj rjqilijnjfgljohjjom o o rn V V
    |") (1 . ":;8: {nnm rn {rn {fo rj {fi j {gh {nnl 90-(>-; _h *1410(1 |") (1 .
    "/+36,+r:&:r>++-6= {rn rn {rn {rn {im |") (1 . ",+->687+r<*-): {rn rn {rn
    jqklmlmjinlnkjmmk jqlmfohojngmoohjnk:ronj rnoqilijnjfgljohjj rn o o V V |") (1
    . "/+36,+r:&:r>++-6= {rn rn {rn {rn {ik |") (1 . "):-+:' {rn rn {rn {ik o {nnk
    |") (1 . ",+->687+r<*-): {rn rn {rn jqklmlmjinlnkjmmk noqooooooooooooooj
    rnoqilijnjfgljohjj n o o V V |") (1 . "/061+ {rn rn {rn noqklmlmjinlnkjmmk
    noqooooooooooooooj rnoqilijnjfgljohjj |") (1 . "/061+ {rn rn {rn
    noqklmlmjinlnkjmmk jqlmfohojngmoohjnk:ronj rnoqilijnjfgljohjj |") (1 .
    "/+36,+r:&:r>++-6= {rn rn {rn {rn {ho |") (1 . ",+->687+r<*-): {rn rn {rn
    oqklmlmjinlnkjmmk jqoooooooooooooojl roqilijnjfgljohjjoml o rn o V V |") (1 .
    "/061+ {rn rn {rn oqklmlmjinlnkjmmk noqooooooooooooooj roqilijnjfgljohjjoml |")
    (1 . "/061+ {rn rn {rn oqklmlmjinlnkjmmk jqlmfohojngmoohjnk:ronj
    roqilijnjfgljohjjoml |") (1 . "/+36,+r:&:r>++-6= {rn rn {rn {rn {go |") (1 .
    ",+->687+r<*-): {rn rn {rn noqklmlmjinlnkjmmk jqlmfohojngmoohjnk:ronj
    rjqilijnjfgljohjjom o o rn V V |") (1 . "/+36,+r:&:r>++-6= {rn rn {rn {rn {gn
    |") (1 . ",+->687+r<*-): {rn rn {rn noqklmlmjinlnkjmmk noqooooooooooooooj
    rjqilijnjfgljohjjom o o rn V V |") (1 . "-:9@)+r:&:r>++-6= {rn rn {rn {gj {jk
    {k {j |") (1 . "/+36,+r:&:r>++-6= {rn rn {rn {rn {gg |") (1 . ",+->687+r<*-):
    {rn rn {rn oqklmlmjinlnkjmmk noqooooooooooooooj rjqilijnjfgljohjjom o o rn V V
    |") (1 . "/061+ {rn rn {rn oqklmlmjinlnkjmmk jqlmfohojngmoohjnk:ronj
    rnoqilijnjfgljohjj |") (1 . "/+36,+r:&:r>++-6= {rn rn {rn {rn {fm |") (1 .
    ",+->687+r<*-): {rn rn {rn oqklmlmjinlnkjmmk jqoooooooooooooojl
    rnoqilijnjfgljohjj o n o V V |") (1 . "/061+ {rn rn {rn oqklmlmjinlnkjmmk
    noqooooooooooooooj rnoqilijnjfgljohjj |") (100 . "AcDb3dSolid") (350 . <Имя
    объекта: 7ef03608>))
    Ад. Кажется иду не тем путем. Не подскажите, как более рационально решить задачу?
     
Загрузка...

Поделиться этой страницей