nanoCAD Platform Help
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Panel HB
-
-
-
-
-
-
Panel HB
Script of the detail:
SVersion = 2;
ObjectDescription = @ MCS_STRING6;
function ActHeader {
NPart = 1;
Public (
// Options- exterior length and width of the plate
L,LENGTH,
W,WIDTH,
// Design load and weight plates
P, @ MCS_STRING9,
massa,MASS
);
Protected (seted, obozn, H);
Changeable ();
OnDlgBeforeSelectParam = 1;
ShowWhenSelPnt = 1;
ContourOnLine = 1;
};
function OnInitialization {
LoadInCache (obozn, L, W, H, massa, P);
if (seted == UnknownValue) {
seted = 1;
rZOrder = 100;
// Set the initial values ??of parameters and execution
SelectInCache (" kFirst ", " L ", " ~ ", 2700, " W ", " ~ ", 1190);
strDesignName = " Implementation 1 ";
};
};
function SetGripPoint {
NGrip = 2;
Two handles // - at the insertion point and with the opposite end
// Panel
pntGrip0 = pntOrigin;
pntGrip1 = pntOrigin + L * vecDirection;
};
function OnMoveGripPoint {
// When editing handles the following behavior:
// Move the entire object when you drag over
// First handle. And stretch the length and change the vector
// Direction when stretching a second handle
if (NMovingGrip == 1) {
// Intermediate variables to define the geometry
rW = W;
rP = P;
// Relative length
rL = vecLen (pntGrip0 - pntGrip1) / rScl;
// The new direction of the vector inserts
vecDirection = pntGrip1 - pntGrip0;
LoadInCache (P, W, L);
// Select the new settings plate.
SelectInCache (" kFirst ", " P ", " ~ ", rP, " W ", " = ", rW, " L ", " ~ ", rL);
} Else {
// If you edit the handle to move the 0 point
// Insert an object
pntOrigin = pntGrip0;
};
};
function OnMakeParameters {
// Classifications plates
strTheName = " Panel NV ";
strTheType = " Plita ";
strTheSubType = " Plita ";
};
function OnDialog {// insert type of dialogue
LoadInCache (obozn, L, W, H, massa, P);
UniDialog (
// The table control fields
DBFLD, L, W, P,
// The table reference field
DBINF, obozn, H, massa,
// Types - front, top, left
TVIDS, lViewType, " F ", " T ", " L ",
VIEW, " Vids ");
};
function OnDialogChanged {
ShowDesign (0, " Preview ");
};
// Parameter changes
function OnChangeParameters {
// Just when controlling parameter changes
// Select from a table those which correspond to the new
// Values
if (new.L! = L || new.W! = W)
{
LoadInCache (L, W);
SelectInCache (" kFirst ", " L ", " ~ ", new.L, " W ", " ~ ", new.W);
}
Handled = OBJ_HANDLED;
};
function OnSelectParam {
// Function of the dynamic selection of parameters
rW = W;
// For type VTOP do not select dynamically
if (lViewType == VTOP) {
BreakAll = 1;
} Else {
// For other species
// Selected variable rL - how
// Abscissa the relative position of the cursor.
rL = abs (vecCoord: x);
// Selected values ??from the table with the same width,
// But with a new value for the wavelength plate.
SelectInCashe (" kFirst ", " W ", " = ", rW, " L ", " ~ ", rL);
};
};
function BeforeConnect {
ResetLastConstraint ();
}
function OnConnect
{
// Automatic installation of dependencies
// Set only parametric dependence.
// Between the plates along the length and width.
if (rPart == 0)
{
if (obj.strTheType == " Plita ")
{
SetParamConstraint (L, obj, EXPR, " obj.L ");
SetParamConstraint (W, obj, EXPR, " obj.W ");
NoVectorSelect = 1;
seted = 1;
};
};
}
// The name plate is formed on the basis of the table box
// Obozn
strPartName = obozn;