Files
Facilitor/APPL/CAD/mykeyToSymbol.asp
Jos Groot Lipman ba9597b800 Merge 5.4.1 patches
svn path=/Website/trunk/; revision=21396
2014-04-24 12:09:36 +00:00

153 lines
6.9 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)
{
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"
+ " 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"
+ " 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"):1.0;
var rot = oRs("rot").value;
}
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,"
+ " 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,"
+ " 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")+360)%360;
var symbolName = oRs("ins_srtdeel_acadsymbol").Value;
var scl = oRs("scl").value!=null?oRs("scl"):1.0;
var rot = wRot;
}
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"):1.0);
var rot = oRs("rot").Value;
}
else
{
new SLNKDWF({maximize : true}).Warning("lcl_aantekening? nog niet verplaatsbaar");
}
symbolName = DefineSymbol(cHandle, symbolName);
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 : Server.MapPath("../../Temp"),
asGIF : true,
forceGray: true
});
mySLNKDWF.Process();
%>