166 lines
7.7 KiB
Plaintext
166 lines
7.7 KiB
Plaintext
<%@language = "javascript" %>
|
|
<% /*
|
|
$Revision$
|
|
$Id$
|
|
|
|
File: CAD/myKeyToSymbol.asp
|
|
Description: Maak een symbool om te draggen
|
|
Parameters: pSymbolkey INS_DEEL_KEY of werkplekgebonden INS_DEEL_KEY of PRS_WERKPLEK_KEY
|
|
die in de tekening opgepakt is
|
|
Hij zal resp. beginnen met I:, P:, IW: of W:
|
|
rotation optioneel: toon geforceerd met deze rotatie
|
|
Context: Callback voor SLNKDWF. Gebruiker heeft op een pickpoint
|
|
in de tekening geklikt
|
|
Note: de term symbol kan refereren aan een INS_DEEL symbool of WERKPLEK symbool
|
|
*/
|
|
%>
|
|
<!--#include file="../Slnkdwf/Slnk2IMG.inc" -->
|
|
<!--#include file='../Shared/common.inc'-->
|
|
<!--#include file='../CAD/FGII.inc'-->
|
|
<!--#include file='../CAD/symbols.inc'-->
|
|
<!--#include file="../Shared/WPFunctions.inc" -->
|
|
<%
|
|
var SLNKSymbolname = getQParam("pSymbolkey", ""); // pSymbolkey kan nog tekst bevatten
|
|
var vKey = getQParamInt("vKey");
|
|
var scenario_key = getQParamInt("scenario_key"); // current scenario of 0 for actual.
|
|
var pRot = getQParamInt("rotation",0);
|
|
|
|
// Response.Expires = pRot?1:-1; // Als we aan het roteren zijn 1 minuut caching
|
|
Response.Expires = -1;
|
|
|
|
function myContourProcessor(cHandle)
|
|
{
|
|
var insertionpoint = null;
|
|
if (SLNKSymbolname.match(/^I:/) || SLNKSymbolname.match(/^P:/)) // Ins_deel of PRJ_DEEL
|
|
{
|
|
var SLNKSymbolkey = parseInt(SLNKSymbolname.substring(2));
|
|
if (!canWriteInsDeel(SLNKSymbolkey, vKey, scenario_key))
|
|
{
|
|
new SLNKDWF({maximize : true}).Warning(L("lcl_fg_obj_noedit"));
|
|
// JGL: Uiteindelijk komen we toch in ins_change.asp
|
|
// Dat kan ik niet echt voorkomen. Daar controleren we nog een keer.
|
|
}
|
|
|
|
if (scenario_key==0) // I:
|
|
var sql = "SELECT ins_deel_dwgx dwgx, ins_deel_dwgy dwgy,"
|
|
+ " ins_deel_dwgrotatie rot, ins_deel_dwgschaal scl,"
|
|
+ " INS_SRTDEEL_ACADSYMBOL, ins_srtdeel_acadsymbol_dwgx orgx, ins_srtdeel_acadsymbol_dwgy orgy"
|
|
+ " FROM ins_deel id, ins_srtdeel isd"
|
|
+ " WHERE id.ins_srtdeel_key = isd.ins_srtdeel_key"
|
|
+ " AND id.ins_deel_key = " + SLNKSymbolkey
|
|
else // P:
|
|
var sql = "SELECT prj_deel_dwgx dwgx, prj_deel_dwgy dwgy,"
|
|
+ " prj_deel_dwgrotatie rot, prj_deel_dwgschaal scl,"
|
|
+ " INS_SRTDEEL_ACADSYMBOL, ins_srtdeel_acadsymbol_dwgx orgx, ins_srtdeel_acadsymbol_dwgy orgy"
|
|
+ " FROM prj_deel id, ins_srtdeel isd"
|
|
+ " WHERE id.ins_srtdeel_key = isd.ins_srtdeel_key"
|
|
+ " AND id.prj_deel_key = " + SLNKSymbolkey
|
|
var oRs = Oracle.Execute(sql);
|
|
var symbolName =oRs("ins_srtdeel_acadsymbol").Value;
|
|
var scl = oRs("scl").value!=null?oRs("scl").Value:1.0;
|
|
var rot = oRs("rot").value;
|
|
if (oRs("orgx").Value != null && oRs("orgy").Value != null)
|
|
insertionpoint = { orgx: oRs("orgx").Value, orgy: oRs("orgy").Value};
|
|
oRs.Close();
|
|
}
|
|
else if (SLNKSymbolname.match(/^IW:/)) // werkplek gebonden Ins_deel
|
|
{
|
|
var SLNKSymbolkey = parseInt(SLNKSymbolname.substring(3));
|
|
|
|
if (!canWriteInsDeel(SLNKSymbolkey, vKey, scenario_key))
|
|
{
|
|
new SLNKDWF({maximize : true}).Warning(L("lcl_fg_obj_noedit"));
|
|
}
|
|
|
|
if (scenario_key==0)
|
|
var sql = "SELECT ins_deel_dwgx dwgx, ins_deel_dwgy dwgy,"
|
|
+ " ins_deel_dwgrotatie rot, ins_deel_dwgschaal scl,"
|
|
+ " INS_SRTDEEL_ACADSYMBOL, ins_srtdeel_acadsymbol_dwgx orgx, ins_srtdeel_acadsymbol_dwgy orgy,"
|
|
+ " prs_werkplek_dwgrotatie wrot, prs_werkplek_dwgschaal wscl"
|
|
+ " FROM ins_deel id, ins_srtdeel isd, prs_werkplek pw"
|
|
+ " WHERE id.ins_srtdeel_key = isd.ins_srtdeel_key"
|
|
+ " AND id.ins_alg_ruimte_key = pw.prs_werkplek_key"
|
|
+ " AND id.ins_deel_key = " + SLNKSymbolkey
|
|
else
|
|
var sql = "SELECT prj_deel_dwgx dwgx, prj_deel_dwgy dwgy,"
|
|
+ " prj_deel_dwgrotatie rot, prj_deel_dwgschaal scl,"
|
|
+ " INS_SRTDEEL_ACADSYMBOL, ins_srtdeel_acadsymbol_dwgx orgx, ins_srtdeel_acadsymbol_dwgy orgy,"
|
|
+ " prj_werkplek_dwgrotatie wrot, prj_werkplek_dwgschaal wscl"
|
|
+ " FROM prj_deel id, ins_srtdeel isd, prj_werkplek pw"
|
|
+ " WHERE id.ins_srtdeel_key = isd.ins_srtdeel_key"
|
|
+ " AND id.prj_werkplek_key = pw.prj_werkplek_key"
|
|
+ " AND id.prj_deel_key = " + SLNKSymbolkey
|
|
var oRs = Oracle.Execute(sql);
|
|
|
|
var wRot = oRs("wrot").value;
|
|
if (wRot==null) wRot=0;
|
|
if (oRs("rot").value != null)
|
|
wRot += (oRs("rot").Value+360)%360;
|
|
|
|
var symbolName = oRs("ins_srtdeel_acadsymbol").Value;
|
|
var scl = oRs("scl").value!=null?oRs("scl").Value:1.0;
|
|
var rot = wRot;
|
|
if (oRs("orgx").Value != null && oRs("orgy").Value != null)
|
|
insertionpoint = { orgx: oRs("orgx").Value, orgy: oRs("orgy").Value};
|
|
oRs.Close();
|
|
}
|
|
else if (SLNKSymbolname.match(/^W:/)) // Werkplek
|
|
{
|
|
SLNKSymbolkey = parseInt(SLNKSymbolname.substring(2));
|
|
|
|
if (scenario_key==0&&!WPCanWrite(vKey))
|
|
{
|
|
new SLNKDWF({maximize : true}).Warning(L("lcl_fg_obj_noedit"));
|
|
Response.End;
|
|
}
|
|
|
|
if (scenario_key==0)
|
|
var sql = "SELECT prs_werkplek_dwgx dwgx, prs_werkplek_dwgy dwgy,"
|
|
+ " prs_werkplek_dwgrotatie rot, prs_werkplek_dwgschaal scl"
|
|
+ " FROM prs_werkplek pw"
|
|
+ " WHERE pw.prs_werkplek_key = " + SLNKSymbolkey
|
|
else
|
|
var sql = "SELECT prj_werkplek_dwgx dwgx, prj_werkplek_dwgy dwgy,"
|
|
+ " prj_werkplek_dwgrotatie rot, prj_werkplek_dwgschaal scl"
|
|
+ " FROM prj_werkplek pw"
|
|
+ " WHERE pw.prj_werkplek_key = " + SLNKSymbolkey
|
|
|
|
var oRs = Oracle.Execute(sql);
|
|
var symbolName = S("fg_werkpleksymbool");
|
|
var scl = S("fg_WPScale")*(oRs("scl").value!=null?oRs("scl").Value:1.0);
|
|
var rot = oRs("rot").Value;
|
|
oRs.Close();
|
|
}
|
|
else
|
|
{
|
|
new SLNKDWF({maximize : true}).Warning(L("lcl_fg_notdraggable")); // prj_note
|
|
}
|
|
|
|
symbolName = DefineSymbol(cHandle, symbolName, insertionpoint);
|
|
if (pRot!=0)
|
|
{
|
|
// 1e keer met originele rotatie en extra groot voor de extents bepaling
|
|
var mySymbol = cHandle.AddSymbol(2000000, 2000000, symbolName)
|
|
mySymbol.Rotation = (rot+360)%360;
|
|
mySymbol.Scale = 2*scl; // Zodat deze altijd bepalend is
|
|
mySymbol.SetColor(0xFF0000,0); // Maak onzichtbaar
|
|
}
|
|
|
|
// 2e is de zichtbare
|
|
var mySymbol = cHandle.AddSymbol(2000000, 2000000, symbolName)
|
|
//mySymbol.Contour.Label = "Test";
|
|
mySymbol.Rotation = (pRot + rot+360)%360;
|
|
mySymbol.Scale = scl;
|
|
}
|
|
|
|
var mySLNKDWF = new SLNKDWF({ dwfFile: Server.MapPath("../slnkdwf/empty.w2d"), // Start with empty drawing
|
|
maximize : true,
|
|
dwfProcessor : myContourProcessor,
|
|
tempFolder : shared.tempFolder(),
|
|
asGIF : true,
|
|
forceGray: true
|
|
});
|
|
mySLNKDWF.Process();
|
|
%>
|
|
<% ASPPAGE_END(); %>
|