Files
Database/_UP/450to460.js
Peter Feij 31e20760fd certainly no sql, but surely for the upgrade of FGII
svn path=/Database/trunk/; revision=9190
2006-02-16 10:36:32 +00:00

102 lines
3.3 KiB
JavaScript

// Maak een AutoCAD script
// Voor elke verdieping wordt een overkoepelende tekening gemaakt
// waarbij alle oorspronkelijke (Map) tekeningen als XREF gekoppeld zijn
var dwgPath = "D:\\Fclt\\DWG\\Ac"
var str = 'File Name=..\\oracle.udl';
var Oracle = new ActiveXObject("ADODB.Connection");
Oracle.Open(str);
sql = "SELECT alg_locatie_code, alg_gebouw_code||'_'||ALG_VERDIEPING_CODE teknaam,"
sql += " av.alg_verdieping_key avk, cad_layer, ins_discipline_omschrijving,"
sql += " cad_tekening_type, CAD_TEKENING_FILENAAM, ct.cad_tekening_key"
sql += " FROM CAD_TEKENING ct, "
sql += " INS_TAB_DISCIPLINE itd,"
sql += " ALG_V_AANWEZIGVERDIEPING av, alg_gebouw ag, alg_locatie al"
sql += " WHERE ct.alg_verdieping_key = av.alg_verdieping_key"
sql += " AND ct.ins_discipline_key = itd.ins_discipline_key(+)"
sql += " AND av.alg_gebouw_key = ag.alg_gebouw_key"
sql += " AND ag.alg_locatie_key = al.alg_locatie_key"
sql += " AND cad_tekening_verwijder is null"
sql += " ORDER BY ct.alg_verdieping_key"
var oRs = Oracle.Execute(sql);
var fso, f1;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.CreateTextFile(".\\450to460.scr", true);
flog = fso.CreateTextFile(".\\logger.log", true);
flog.WriteLine(sql);
f1.WriteLine("SDI 1");
function newFile()
{
f1.WriteLine(";");
f1.WriteLine(";");
f1.WriteLine("line 0,0 100,100 ");
f1.WriteLine("_NEW");
f1.WriteLine("_Y");
f1.WriteLine("");
f1.WriteLine("(defun mksl (la)");
f1.WriteLine(" (command \"_LAYER\")");
f1.WriteLine(" (if (null (tblsearch \"LAYER\" la)) (command \"_MAKE\" la))");
f1.WriteLine(" (command \"_SET\" la \"\")");
f1.WriteLine(")");
}
var lastVerd = oRs("avk").Value
newFile();
while (!oRs.Eof)
{
var currVerd = oRs("avk").Value
if (lastVerd!=currVerd)
{
f1.WriteLine("(mksl \"0\")");
f1.WriteLine("_ZOOM _E");
f1.WriteLine("_SAVEAS 2000 C:\\" + teknaam);
newFile();
}
switch (oRs("cad_tekening_type").Value)
{
case "D": cadlayer = oRs("CAD_LAYER").Value; break;
case "C": cadlayer = "CONT"; break;
case "P": cadlayer = "PLAN"; break;
otherwise: flog.WriteLine("Tektype niet gevonden: " + oRs("cad_tekening_type").Value);
}
var fullDWG = dwgPath + "\\" + oRs("CAD_TEKENING_FILENAAM");
if (cadlayer == null)
{
debugger;
flog.WriteLine("Layer niet gevonden voor: " + oRs("ins_discipline_omschrijving") + "/" + oRs("cad_tekening_key"));
}
else if (!fso.FileExists(fullDWG))
{
flog.WriteLine("Tekening niet gevonden: " + fullDWG);
}
else
{
f1.WriteLine("(mksl \"" + cadlayer + "\")");
f1.WriteLine("XREF _A " + dwgPath + "\\" + oRs("CAD_TEKENING_FILENAAM") + " 0,0,0 1 1 0");
var blk = oRs("CAD_TEKENING_FILENAAM").Value;
blk = blk.substring(0, blk.length-4);
f1.WriteLine("-RENAME _BLOCK \"" + blk + "\" " + cadlayer + " " + " ");
}
lastVerd = currVerd
teknaam = oRs("teknaam").Value;
teknaam = teknaam.replace(/\ /g, "_").replace(/\@/g,"_");
oRs.MoveNext();
}
f1.Close();
flog.Close();
alert("Klaar...");
// Pas op: lijkt niet te werken in de debugger?
function alert(msg)
{
var WSHShell = WScript.CreateObject("WScript.Shell")
WSHShell.Popup(msg)
}