// 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) }