Расстановка крепежа и сверловки

Материал из K3-Macro
Макро | Мебельные команды и функции | Мебельные объекты | Указание | Создание схемы сборки | Перенумерация | Показ кромок | Показ крепежа | Расстановка крепежа и сверловки | Поиск пятен контакта | Показать информацию | Каталоги стандартных моделей | Сдвиг | Количество | Позиции | Комментарий | Классификатор мебельных элементов | Работа с комплектующими | Дополнительные материалы к модели | Специальная расстановка

Крепёж

[#<ИмяПеременнойИлиМассива>] fixing Params

Команда выполняет различные действия с крепежом, в зависимости от параметров Params.

Если #<ИмяПеременнойИлиМассива> задано, то команда fixing в этой переменной или в элементы этого массива установит ссылки на созданные командой fixing объекты. Исходные объекты команда fixing удаляет.

Pluso.png Удобнее вызывать команду для одного объекта — чтобы не было проблем с размерностью массива.

Возможные значения параметров Params

{create | delauto | delall | hide} <Objects>

Команда расставляет (create), удаляет все (delall), или только автоматически расставленные (delauto) элементы крепежа на мебельные объекты <Objects>. Если не указан ни один из ключей, команда расставляет крепеж.

Команда приписывает каждой детали крепежа один или два атрибута:

  • FixHz — числовой — толщина панели, торцу которой назначен крепеж
  • FixHzs — числовой — толщина смежной панели, найденной по пятну контакта. Атрибут приписывается только в случае, если крепеж ставится с учетом пятна контакта

Если выбран ключ hide, то команда удаляет автоматически расставленные крепежи и скрывает (но не удаляет) крепежи, расставленные вручную.


move [{copy | nocopy}] {linefix | groupfix | detalifix} <Object> { [exactly | mrelative | gridsnap] <Point> }

Команда передвигает с дублированием (ключ copy) или без дублирования (ключ nocopy) линейку крепежа (ключ linefix), группу крепежа (ключ groupfix) или деталь крепежа (ключ detalifix) <Object> в точку <Point>. Точка должна находиться на том же торце панели, на который был установлен крепеж.

Если задан ключ mrelative, то включается или отключается режим относительного указания координат. То есть положение крепежа вычисляется по сдвигу от предыдущего его положения.

Если задан ключ gridsnap, то положение крепежа указывается с шагом появившейся сетки и возможные положения крепежа кратны шагу этой сетки.


Замена или назначение крепежа на панели (ключи replace и assign)

fix {replace | assign | edit <Object> | manual ParamsManual}

Команда позволяет заменить существующий (ключ replace), назначить новый (ключ assign) , или отредактировать имеющийся крепеж (ключ edit). При этом нужно указать панель на торце которой есть линейки крепежа или линейку свободного крепежа <Object>. Замена или назначение крепежа производится при помощи диалогового окна. Для редактирования крепежа на торцах выбранной панели открывается закладка Крепёж диалога Параметры панели, а для редактирования линейки свободного крепежа открывается свой диалог.


Если выбран ключ manual, то ниже представлены возможные его параметры

manual [parameter [<fixid> [{Yes|No} [{Yes|No}]]] { [ { separately | together } ] <Panel> [fixsymmetry] | [free [ByOrder]] <Point1> <Point2> <Point3> [<PointsFix>] }

Выбор типа крепежа (ключ parameter)

Если выбран ключ parameter, происходит выбор типа крепежа при помощи диалогового окна или параметров в строке.

Если указаны параметры, то они имеют следующий смысл:

<fixid> — ID типа крепежа
{Yes|No} (первый) — устанавливать крепеж без сверловки (Yes) или со сверловкой (No)
{Yes|No} (второй) — устанавливать крепеж зеркально (Yes) или не зеркально (No)

Далее можно задать свободный крепеж на торце панели <Panel> или произвольно в пространстве. В первом случае нужно указать торец желаемой панели (если задан ключ together), или указать последовательно панель и торец на ней, (если задан ключ separately). Если крепеж устанавливается свободно в пространстве (ключ free), то требуется последовательно указать точку начала линии установки крепежа (<Point1>), точку на направлении оси крепежа (<Point2>), точку конца линии установки крепежа (<Point3>) и затем, если отсутствует ключ ByOrder -по правилу, последовательно координаты крепежей на этой линии (<PointsFix>).

Если задан ключ fixsymmetry, то производится зеркальная симметрия парных крепежей в группе крепежа.

fix edit <Object> [<FixType> {yes|no}]

Команда позволяет отредактировать свободный крепеж <Object>, задав ему тип крепежа <FixType> и признак простановки отверстий под этот крепеж (отверстия не ставятся — yes, ставятся — no)


recreate <Objects>

Ключ пересоздает объекты <Object>, внутри которых есть крепеж.


calc <Object> <sArray>

Команда создает массив с ID деталей крепежа и ID элементов, входящих в детали крепежа, а так же их количеством. Команда так же считает "потенциальный" крепеж. То есть тот, который физически в сцене отсутствует, но будет показан, если пользователь выполнит команду Показать крепеж.

I.png Следует иметь в виду, что команда не точно рассчитает количество крепежа, а именно оценит его количество. При этом возможная ручная расстановка крепежа не будет учитываться. Ине будет точно учитываться крепеж, расставляемый по макро.

Входные параметры:

<Object> — объект, для которого нужно посчитать крепеж.

<sArray> — строка, задающая имя создаваемого массива

Функция возвращает количество заполненных элементов массива <sArray>: нечетный элемент массива содержит ID детали крепежа; четный — количество деталей крепежа с таким ID.

Пример:

objident prompt "Укажите объект для крепежа" : obj;

#NULLOUT fixing calc obj "Array";
if (NULLOUT==0)
{
 putmsg("Крепежа нет");
 exit;
}
i=1;
loop:
putmsg("ID детали крепежа: "+str(Array[i])+", Название детали крепежа: '"+priceinfo(Array[i],"MATNAME","----")+"', Количество: "+str(Array[i+1]));
i=i+2;
if (i<NULLOUT)
{
 goto loop;
}
putmsg("Всего типов деталей крепежа: "+str(NULLOUT/2));
exit;
ID детали крепежа: 447, Название детали крепежа: 'Конфирмат', Количество: 4
ID детали крепежа: 691, Название детали крепежа: 'Заглушка для конфирмата', Количество: 4
Всего типов деталей крепежа: 2


fixing fix replace nodc <Objects> [drill {no|yes}] <OldType> <NewType> <Condition>

Команда заменяет линейку свободного ручного крепежа типа <OldType> или любого типа, если <OldType>=0 на линейку свободного ручного крепежа типа <NewType> на объектах <Objects>. Параметр <Condition> определяет строку условия из атрибутов. Если условие истинно, то для данного объекта в списке <Objects> замена произведена не будет.

Необязательный параметр drill определяет, нужно ли выполнять сверловку под крепеж. Если задано значение yes, то сверловка под крепеж выполняется. Если no — не выполняется. Если ключ не задан, то параметр сверловки берется из заменяемого крепежа.

Пример:

//-- Макрокоманда меняет один тип крепежа комплектующих на другой
//-- Входные параметры:
//-- FixFrom — тип крепежа, который меняем
//-- FixTo — тип крепежа, на который меняем
//-- Objs — массив со ссылками на комплектующие, у которых меняем крепёж
//-- NumObj — количество элементов в массиве Objs
//-- Cond — условие из атрибутов. Если условие истинно, то 
//-- эта линия крепежа игнорируется при замене.
//-- Если FixFrom==0, то меняется любой крепеж на FixTo

getpar FixFrom, FixTo, Objs, NumObj, Cond;

if (NumObj<=0) //-- Если объектов нет — выходим
{
exit;
}
fixing fix replace nodc 
let i=0
loop1:
let i=i+1
Objs[i]
if (i<NumObj)
{
 goto loop1
}
done FixFrom FixTo Cond;
exit;

Сверловка

[#<ИмяПеременнойИлиМассива>] holes [ { create | delauto | delall } ] <Objects>

Команда расставляет (create), удаляет все (delall), или только автоматически расставленные (delauto) элементы сверловки (отверстия) на мебельные объекты <Objects>. Если не указан ни один из ключей, команда расставляет сверловку.

Если #<ИмяПеременнойИлиМассива> задано, то команда holes в этой переменной или в элементы этого массива установит ссылки на созданные командой holes объекты. Исходные объекты команда holes удаляет.

Pluso.png Удобнее вызывать команду для одного объекта — чтобы не было проблем с размерностью массива.

[#<ИмяПеременнойИлиМассива>] holes free h1 d1 h2 d2 {yes | no} p1 [EndLine] p2 p3 {dp1 ...}

Holes.png

Команда создаёт линейку свободных сверловок.

h1 — числовое значение длины основного отверстия

d1 — числовое значение диаметра основного отверстия

h1 — числовое значение длины ответного отверстия

d2 — числовое значение диаметра ответного отверстия

{yes | no} — ключ, задающий флаг Без коррекции глубины сверловки (yes) или С коррекцией глубины сверловки (no).

Если при вызове из макро после ключа free строка заканчивается, то откроется диалог с запросом длин и диаметров сверловки

p1 — точка начала линейки свободной сверловки

Если ключ EndLine опущен, то p2 — точка на оси сверловки, а p3 — точка конца линейки.

Если ключ EndLine задан, то p2 — точка конца линейки, а p3 — точка на оси сверловки.

Последовательность точек dp1 ... задает положение сверловок на линейке


Макро | Мебельные команды и функции | Мебельные объекты | Указание | Создание схемы сборки | Перенумерация | Показ кромок | Показ крепежа | Расстановка крепежа и сверловки | Поиск пятен контакта | Показать информацию | Каталоги стандартных моделей | Сдвиг | Количество | Позиции | Комментарий | Классификатор мебельных элементов | Работа с комплектующими | Дополнительные материалы к модели | Специальная расстановка