Базовый сценарий для этой кнопки такой.
Пользователь рисует штриховку.
Можно с вырезами.
Ставит Ваш объект в проект.
Выбирает штриховку и объект.
Нажимает кнопку 1.
Программа LabPP_GoodwinGDL записывает в объект данные штриховки в соответствии с выбранным алгоритмом, который указан Вами в массиве GoodwinGDLAssignDataMethods для кнопки 1.
Алгоритм № 1
Данные готовятся для прямого использования координат штриховки в команде GDL языка EXTRUDE.
Координаты в правильном виде будут записаны в массив GoodwinGDLPoints.
Количество координат будет записано в параметр GoodwinGDLPointsCount.
Если создать в объекте следующие переменные, то в них будут записаны количественные показатели:
GoodwinGDLSurface - площадь поверхности (уже без вырезов),
GoodwinGDLHolesSurface - площадь вырезов,
GoodwinGDLPerimeter - периметр (вместе с периметрами вырезов),
GoodwinGDLHolesPerimeter - периметр вырезов.
Вот такой фрагмент 3d скрипта покажет бывшую штриховку в виде трехмерного объекта.
define texture "owntile" "texture_wood.jpg",1,1,256,GoodwinGDLAngle
define material "tilemat" 21,
0.7,0.7,1,
0.15,0.95,0,0.0,
0,0,
ind(fill,"fillAttribute_1"),1,
ind(texture,"owntile")
material tilemat
material tilemat
count = GoodwinGDLPointsCount
for i=1 to count
PUT GoodwinGDLPoints[i][1],GoodwinGDLPoints[i][2],GoodwinGDLPoints[i][3]
next i
if count<>0 then
EXTRUDE count,0,0,0.04, 1+2+4+16+32,
GET(NSP)
endif
Регулировать толщину объекта можно изменяя значение переменной thickness.
В 2d объект можно показывать вот так:
pen penAttribute_1
fill fillAttribute_1
project2{2} 3,270,3+32+64, 0,0,0,360-GoodwinGDLAngle+90
Тогда если задать в объекте тип штриховки - горизонтальные линии, то направление штриховки будет соответствовать направлению текстуры.