Er is een nieuwe actie voorzien zodat de gebruiker zelf logica kan toevoegen om een nieuwe groep of extra deel aan te maken in plaats van de standaard JoPPS dialogen te gebruiken.
Extra instelling “Dialoog nieuwe groep of extra deel” toegevoegd bij “Bewerken – Instellingen – Nieuwe groep” met volgende keuzes:
- Standaard (de standaard wizard wordt getoond, oude gedrag)
- Aangepast (enkel de desbetreffende actie wordt uitgevoerd)
Opmerking
Instelling in de Administrator: Toegangen -> Standaard instellingen -> Knop Bibiliotheek.
[Prefs]
UseCustomEvent=0 (0= Standaard, 1= Aangepast)
|
Indien de gebruiker een nieuwe groep toevoegt wordt de actie “_ONNEWASSEMBLY” uitgevoerd, waarin volgende parameters beschikbaar zijn:
Action.Assembly (huidige groep)
Action.Source (bron welke de actie heeft geactiveerd)
SOURCE_SCRIPT = -1 (script heeft actie opgeroepen, recursief!)
SOURCE_WIZARD = 0 (wizard heeft actie opgeroepen, standaard)
SOURCE_CUSTOM =1 (enkel actie opgeroepen, aangepast)
Action.WizId (unieke identificatie gekozen wizard in dialoog) (Vanaf JoPPS 3.32 P1)
WID_LIB (model uit bibliotheek)
WID_NEW (model eigen definitie)
WID_WALL (gevel)
WID_ROOF (veranda dak)
WID_SIZE (dagmaat model)
WID_PART (losse of samengestelde onderdelen)
WID_SKYCAD (SkyCAD model)
WID_MKASS (meerdere modellen)
Indien de gebruiker een extra deel toevoegt wordt de actie “_ONNEWFRAMEPART” uitgevoerd, waarin volgende parameters beschikbaar zijn:
Action.FramePart (huidig deel)
Action.Source (bron welke de actie heeft geactiveerd)
SOURCE_SCRIPT = -1 (script heeft actie opgeroepen, recursief!)
SOURCE_WIZARD = 0 (wizard heeft actie opgeroepen, standaard)
SOURCE_CUSTOM =1 (enkel actie opgeroepen, aangepast)
Action.WizId (unieke identificatie gekozen wizard in dialoog) (Vanaf JoPPS 3.32 P1)
WID_LIB (model uit bibliotheek)
WID_NEW ( model eigen definitie)
WID_WALL (gevel)
WID_ROOF (veranda dak)
WID_SIZE (dagmaat model)
WID_PART (losse of samengestelde onderdelen)
WID_SKYCAD (SkyCAD model)
WID_MKASS (meerdere modellen)
Onderstaand een voorbeeld van de “_ONNEWASSEMBLY” actie welke een groep toevoegt aan het huidige project:
if Action.Source = SOURCE_CUSTOM then
{
CurPro := GetCurrentProject();
if CurPro = Nil then halt;
/* parameter lijst */
/* parameter 1 = reeks */
/* parameter 2 = model */
/* parameter 3 = nieuwe reeks (leeg = volgens definitie) */
/* parameter 4 = kader uitvoering */
/*,parameter 5 = vleugel uitvoering */
params := 'ZENDOW,105,,0003,0003';
/* argumenten */
/* argument 1 = groep code */
/* argument 2 = groep aantal */
/* argument 3 = groep omschrijving */
/* argument 4 = parameter lijst */
/* argument 5 = X positie */
/* argument 6 = Y positie */
/* argument 7 = breedte */
/* argument 8 = hoogte */
/* argument 9 = dagmaat links */
/* argument 10 = dagmaat rechts */
/* argument 11 = dagmaat onder */
/* argument 12 = dagmaat boven */
/* argument 13 = taken uitvoeren */
AddAssembly('A',1,'Groep A',params,0.0,0.0,1000.0,2000.0,0.0,0.0,0.0,0.0,True);
RefreshAll();
};
Deze actie wordt enkel uitgevoerd indien ze niet geactiveerd is vanuit de wizard of een andere script functie. Dit wordt bepaald d.m.v. de test “if Action.Source = SOURCE_CUSTOM then”.
Onderstaande een voorbeeld van de “_ONNEWFRAMEPART” actie die een deel toevoegt aan de huidige groep:
if Action.Source = SOURCE_CUSTOM then
{
SetCurrentAssembly('A');
CurAssembly := GetCurrentAssembly();
if CurAssembly = Nil then halt;
/* parameter lijst */
/* parameter 1 = reeks */
/* parameter 2 = model */
/* parameter 3 = nieuwe reeks (leeg = volgens definitie) */
/* parameter 4 = kader uitvoering */
/*,parameter 5 = vleugel uitvoering */
params := 'ZENDOW,105,,0003,0003';
/* argumenten */
/* argument 1 = deel omschrijving */
/* argument 2 = parameter lijst */
/* argument 3 = X positie */
/* argument 4 = Y positie */
/* argument 5 = breedte */
/* argument 6 = hoogte */
/* argument 7 = dagmaat links */
/* argument 8 = dagmaat rechts */
/* argument 9 = dagmaat onder */
/* argument 10 = dagmaat boven */
/* argument 11 = taken uitvoeren */
AddFramePart('',params,1000.0,0.0,1000.0,2000.0,0.0,0.0,0.0,0.0,True);
RefreshAll();
};
De procedure “SetCurrentAssembly” laat de gebruiker toe om de huidige groep binnen het huidige project te bepalen:
SetCurrentAssembly(Oatom)
Oatom (object welk de huidige groep moet worden)
SetCurrentAssembly(Scode)
Scode (code welke de huidige groep moet worden)
Editor visualisatie niveau kader/vleugel kunnen aanpassen langs scripting.
Extra functie “SelectEditorDisplayMode” laat de gebruiker toe om het visualisatie niveau van de editor zelf in te stellen op kader of vleugel :
SelectEditorDisplayMode(Dmode)
Dmode visualisatie niveau editor
DISPLAYMODE_FRAME = kader
DISPLAYMODE_VENT = vleuegel
Onderstaande een voorbeeld van een script waarin deze functie wordt gebruikt:
/* Select editor display mode */
/* Gunter Selleslagh - October 2014 */
/* Current project */
ClearMsgPane();
CurPro := GetCurrentProject();
if CurPro = Nil then halt;
params := 'ZENDOW,DC-A00,,0003,0003';
AddAssembly('C',1,'Groep A',params,0.0,0.0,1000.0,2000.0,0.0,0.0,0.0,0.0,True);
SelectEditorDisplayMode(DISPLAYMODE_VENT);
RefreshAll();
<< Terug