1. Мегаконкурс в апреле "Приведи друзей на codeby". Дарим деньги, подписку на журнал хакер и выдаем статус "Paid Access". Подробнее ...

    Скрыть объявление

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

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

Наш партнер Genesis Hackspace
  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>))
    Ад. Кажется иду не тем путем. Не подскажите, как более рационально решить задачу?
     
Загрузка...

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