• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

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

  • Автор темы Chip115
  • Дата начала
C

Chip115

Всем привет! Поставили задачу написать программу на языке autolisp, которая будет определять площадь поверхности 3D объекта. В качестве объекта я условно взял куб (то, что первое в голову пришло). Так как с лиспом абсолютно не знаком,то конечно же столкнулся с трудностями. В общем, помогите начать. Даже не знаю с какой стороны подходить к решению этой проблемы. Ознакомился с синтаксисом, написал простенькие программы. Вроде проникся темой.
Я нашел функцию, которая возвращает параметры нарисованного объекта. Вот что получилось
Код:
(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. Ввел команду и вот что получил.
Код:
(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>))

Ад. Кажется иду не тем путем. Не подскажите, как более рационально решить задачу?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!