102 lines
3.3 KiB
JavaScript
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)
|
|
|
|
} |