174 lines
6.8 KiB
Plaintext
174 lines
6.8 KiB
Plaintext
<%@language = "javascript" %>
|
|
<% /*
|
|
$Revision$
|
|
$Id$
|
|
|
|
File: dwf_verify_proc.asp
|
|
Description: Generate an PNG image
|
|
Parameters: dwf: bestandsnaam van de dwf
|
|
Context:
|
|
Note:
|
|
*/
|
|
var JSON_Result = true;
|
|
%>
|
|
|
|
<!--#include file='../Shared/common.inc'-->
|
|
<!--#include file="../SlnkDWF/Slnk2IMG.inc" -->
|
|
<%
|
|
user.checkAutorisation("WEB_PRSSYS");
|
|
if (Server.ScriptTimeout<600) Server.ScriptTimeout=600;
|
|
|
|
var concept = getQParamInt("concept", 0);
|
|
var dwf = getQParam("dwf", "");
|
|
var dwfPath = (concept==1?S("flexfilespath") + "/cad/concept/":concept==2?S("flexfilespath") + "/cad/symbols/":S("flexfilespath") + "/cad/") + safe.filename(dwf);
|
|
|
|
var shownolabel = getQParamInt("shownolabel", 1);
|
|
var showorigin = getQParamInt("showorigin", 0);
|
|
|
|
function myContourProcessor(cHandle)
|
|
{
|
|
var minx,maxx,miny,maxy;
|
|
for (var i2=0; i2 < cHandle.ContourCount; i2++)
|
|
{
|
|
var c = cHandle.ContourItem(i2);
|
|
if (i2==0)
|
|
{
|
|
minx = c.Extents.min.DwgX;
|
|
maxx = c.Extents.max.DwgX;
|
|
miny = c.Extents.min.DwgY;
|
|
maxy = c.Extents.max.DwgY;
|
|
}
|
|
else
|
|
{
|
|
minx = Math.min(c.Extents.min.DwgX, minx);
|
|
maxx = Math.max(c.Extents.max.DwgX, maxx);
|
|
miny = Math.min(c.Extents.min.DwgY, miny);
|
|
maxy = Math.max(c.Extents.max.DwgY, maxy);
|
|
}
|
|
c.lineweight = S("fg_contourWeight") * S("fg_dwgscale") / 1000;
|
|
if (c.Key)
|
|
{
|
|
c.Label = "[u][i]" + c.Key + (c.Area?"\n[c][s50]("+(c.Area / 1e6).toFixed(1) + "m²)":"");
|
|
c.SetColor(0x00FF00, 32);
|
|
if (c.Area)
|
|
c.SetUrl("", "Contour {0} met {1} punten herkend".format(c.Key, c.PointCount)); // Tooltip
|
|
}
|
|
else if (shownolabel)
|
|
{
|
|
c.Label = "[s50]?? "+(c.Area / 1e6).toFixed(1) + "m²";
|
|
c.SetUrl("", "Wel contour maar geen label gevonden");
|
|
c.SetColor(0xFF0000);
|
|
}
|
|
//if (oLabel && oOpp)
|
|
}
|
|
if (concept==2)
|
|
{
|
|
// Facilitor doet er niets mee. Niet verwarrend maken dus
|
|
var symbol = cHandle.AddSymbol(0, 0, "*SQUARE");
|
|
symbol.scale = 0.05;
|
|
symbol.contour.SetUrl("", "Origin (0, 0)");
|
|
|
|
// On de centroid te achterhalen zou ik hem als symbool moeten definieren. Even te veel werk?
|
|
//var symbol = cHandle.AddSymbol(c.Contour.Center.dwgX, c.Contour.Center.dwgX, "*STAR");
|
|
//symbol.scale = 0.05;
|
|
//symbol.contour.SetUrl("", "Centroid (default Facilitor insertion point)");
|
|
}
|
|
else if (showorigin)
|
|
{
|
|
var symbol = cHandle.AddSymbol(0, 0, "*SQUARE");
|
|
symbol.scale = 2;
|
|
symbol.contour.SetUrl("", "Origin (0, 0)");
|
|
}
|
|
|
|
// Zet een markering waar de limiet van de DWF ligt
|
|
// Als je daar rechte van symbolen plaatst krijg je 'coordinate overflow'
|
|
// Tijdelijk uitgeschakeld
|
|
var oAbout = new ActiveXObject("SLNKDWF.About");
|
|
if (0&&oAbout.VersionString >= "4,21") {
|
|
var lim = cHandle.DwgLimits;
|
|
// Een volledige contour komt niet in beeld, daarom doen we maar deellijnen
|
|
//var cnt = cHandle.AddContour;
|
|
//cnt.AddPoint(lim.min.DwgX+1000, lim.min.DwgY+1000);
|
|
//cnt.AddPoint(lim.max.DwgX-1000, lim.min.DwgY+1000);
|
|
//cnt.AddPoint(lim.max.DwgX-1000, lim.max.DwgY-1000);
|
|
//cnt.AddPoint(lim.min.DwgX+1000, lim.max.DwgY-1000);
|
|
//cnt.AddPoint(lim.min.DwgX+1000, lim.min.DwgY+1000);
|
|
//cnt.setColor(0xff0000, 128);
|
|
|
|
var cnt = cHandle.AddContour;
|
|
cnt.SetoutlineColor(0xff0000);
|
|
cnt.LineWeight = 250;
|
|
cnt.AddPoint(lim.min.DwgX, miny);
|
|
cnt.AddPoint(lim.min.DwgX, maxy);
|
|
|
|
var cnt = cHandle.AddContour;
|
|
cnt.SetoutlineColor(0xff0000);
|
|
cnt.LineWeight = 250;
|
|
var halfy = (maxy + miny) / 2; // boxje voor het label/uitleg. Zou het voor alle lijnen kunnen doen maar in de praktijk
|
|
cnt.AddPoint(lim.max.DwgX, miny); // zie ik alleen tekeningen met max-x problemen
|
|
cnt.AddPoint(lim.max.DwgX, halfy - 1500);
|
|
cnt.AddPoint(lim.max.DwgX - 1000, halfy - 1500);
|
|
cnt.AddPoint(lim.max.DwgX - 1000, halfy + 1500);
|
|
cnt.AddPoint(lim.max.DwgX, halfy + 1500);
|
|
cnt.AddPoint(lim.max.DwgX, maxy);
|
|
cnt.labelPosition = 2;
|
|
cnt.labelRotation = 90;
|
|
cnt.label = 'max-x';
|
|
cnt.SetUrl("", "Harde x-limiet {0}: symbolen rechts hiervan geven problemen".format(Math.round(lim.max.DwgX))); // Tooltip
|
|
|
|
var cnt = cHandle.AddContour;
|
|
cnt.SetoutlineColor(0xff0000);
|
|
cnt.LineWeight = 250;
|
|
cnt.AddPoint(minx, lim.min.DwgY);
|
|
cnt.AddPoint(maxx, lim.min.DwgY);
|
|
|
|
var cnt = cHandle.AddContour;
|
|
cnt.SetoutlineColor(0xff0000);
|
|
cnt.LineWeight = 250;
|
|
cnt.AddPoint(minx, lim.max.DwgY);
|
|
cnt.AddPoint(maxx, lim.max.DwgY);
|
|
}
|
|
|
|
// cHandle.SetLabel("", "[u][i]"); // initieel originele ruimtenummer onderstreept
|
|
cHandle.SetLabelFont("Arial", S("fg_inLabelSize") * S("fg_dwgscale") / 1000);
|
|
|
|
ll = getQParamArray("layers", [".*"]);
|
|
for (l in ll)
|
|
ll[l] = ll[l].replace(/\|/g,"\\|");
|
|
var llt = "{"+ll.join("}|{") +"}";
|
|
cHandle.SetFilterLayers("{SLNK Labels}|{SLNK Contours}|" + llt);
|
|
//cHandle.SetFilterLayers("{A--LSE--_ruimte element}");
|
|
|
|
// Response.AddHeader("jgl", llt);
|
|
|
|
//cHandle.SetColor("", S("fg_contourColor"), S("S("fg_contourAlpha")")); // Alle herkende ruimtes initieel transparant
|
|
//cHandle.SetColor("", 0x00FF00, 32); // Alle herkende ruimtes initieel transparant
|
|
//cHandle.HighlightUnrecognized(); // Deze worden rood
|
|
//
|
|
}
|
|
|
|
function myImageProcessor(cHandle)
|
|
{
|
|
cHandle.PaperColor = 0xE0E0FF;
|
|
}
|
|
|
|
if (dwfPath)
|
|
{
|
|
var mySLNKDWF = new SLNKDWF({ dwfFile : dwfPath,
|
|
dwfProcessor : myContourProcessor,
|
|
imgProcessor : myImageProcessor,
|
|
contourLayers: getQParam("contLayer", "NOTEXIST"),
|
|
labelLayers : getQParam("labelLayer", "NOTEXIST"),
|
|
minArea : S("fg_contour_minArea"),
|
|
minmergedistance: S("fg_minmergedistance"),
|
|
tempFolder : shared.tempFolder(),
|
|
keepTemp : getQParamInt("keeptemp", 0),
|
|
markers : getQParamInt("markers", 0),
|
|
flags : S("fg_slnkdwf_flags"),
|
|
asciiTemp : getQParamInt("keeptemp", 0)
|
|
});
|
|
mySLNKDWF.Process();
|
|
};
|
|
%>
|
|
<% ASPPAGE_END(); %>
|