Расстановка крепежа и сверловки
Крепёж[править | править код]
[#<ИмяПеременнойИлиМассива>] fixing Params
Команда выполняет различные действия с крепежом, в зависимости от параметров Params
.
Если #<ИмяПеременнойИлиМассива>
задано, то команда fixing в этой переменной или в элементы этого массива установит ссылки на созданные командой fixing объекты. Исходные объекты команда fixing удаляет.
Удобнее вызывать команду для одного объекта — чтобы не было проблем с размерностью массива. |
Возможные значения параметров 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
, то положение крепежа указывается с шагом появившейся сетки и возможные положения крепежа кратны шагу этой сетки.
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
, происходит выбор типа крепежа при помощи диалогового окна или параметров в строке.
Если указаны параметры, то они имеют следующий смысл:
<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 элементов, входящих в детали крепежа, а так же их количеством. Команда так же считает "потенциальный" крепеж. То есть тот, который физически в сцене отсутствует, но будет показан, если пользователь выполнит команду Показать крепеж.
Входные параметры:
<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 удаляет.
Удобнее вызывать команду для одного объекта — чтобы не было проблем с размерностью массива. |
[#<ИмяПеременнойИлиМассива>] holes free h1 d1 h2 d2 {yes | no} p1 [EndLine] p2 p3 {dp1 ...}
Команда создаёт линейку свободных сверловок.
h1
— числовое значение длины основного отверстия
d1
— числовое значение диаметра основного отверстия
h1
— числовое значение длины ответного отверстия
d2
— числовое значение диаметра ответного отверстия
{yes | no} — ключ, задающий флаг Без коррекции глубины сверловки (yes) или С коррекцией глубины сверловки (no).
Если при вызове из макро после ключа free
строка заканчивается, то откроется диалог с запросом длин и диаметров сверловки
p1
— точка начала линейки свободной сверловки
Если ключ EndLine
опущен, то p2
— точка на оси сверловки, а p3
— точка конца линейки.
Если ключ EndLine
задан, то p2
— точка конца линейки, а p3
— точка на оси сверловки.
Последовательность точек dp1 ...
задает положение сверловок на линейке