Bee 154 Báo cáo bài đăng Đã đăng Tháng 10 13, 2016 Room lisp dạo này thấy xôm xôm rồi. Sang đây chơi vậy. Mọi người cho hỏi có code share, ví dụ : open lần lượt từng file dwg trong folder select rồi vẽ 1 line trong từng file không ạ ? Nếu có thì chỉ cách cho mình nghiên cứu với :) Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
gia_bach 1558 Báo cáo bài đăng Đã đăng Tháng 10 18, 2016 Room lisp dạo này thấy xôm xôm rồi. Sang đây chơi vậy. Mọi người cho hỏi có code share, ví dụ : open lần lượt từng file dwg trong folder select rồi vẽ 1 line trong từng file không ạ ? Nếu có thì chỉ cách cho mình nghiên cứu với :) Tham khảo nhé : - nếu muốn chọn folder thì dùng OpenFileDialog hoặc FolderBrowserDialog [CommandMethod("AddLineToAllFolder", CommandFlags.Session)] public static void AddLineToAllFolder() { try { string folder = @"C:\Temp\"; foreach (string dwg in System.IO.Directory.EnumerateFiles(folder, "*.dwg")) { Document doc = Application.DocumentManager.Open(dwg, false); using (doc.LockDocument()) using (Transaction tr = doc.TransactionManager.StartTransaction()) { BlockTable bt = (BlockTable)tr.GetObject(doc.Database.BlockTableId, OpenMode.ForRead); BlockTableRecord ms = (BlockTableRecord)tr.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite); Line line = new Line(Point3d.Origin, new Point3d(1, 1, 1)); ms.AppendEntity(line); tr.AddNewlyCreatedDBObject(line, true); tr.Commit(); } doc.CloseAndSave(dwg); } } catch (System.Exception e) { Application.ShowAlertDialog("Something went wrong\n" + e.ToString()); } } Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
Bee 154 Báo cáo bài đăng Đã đăng Tháng 10 26, 2016 Tham khảo nhé : - nếu muốn chọn folder thì dùng OpenFileDialog hoặc FolderBrowserDialog [CommandMethod("AddLineToAllFolder", CommandFlags.Session)] public static void AddLineToAllFolder() { try { string folder = @"C:\Temp\"; foreach (string dwg in System.IO.Directory.EnumerateFiles(folder, "*.dwg")) { Document doc = Application.DocumentManager.Open(dwg, false); using (doc.LockDocument()) using (Transaction tr = doc.TransactionManager.StartTransaction()) { BlockTable bt = (BlockTable)tr.GetObject(doc.Database.BlockTableId, OpenMode.ForRead); BlockTableRecord ms = (BlockTableRecord)tr.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite); Line line = new Line(Point3d.Origin, new Point3d(1, 1, 1)); ms.AppendEntity(line); tr.AddNewlyCreatedDBObject(line, true); tr.Commit(); } doc.CloseAndSave(dwg); } } catch (System.Exception e) { Application.ShowAlertDialog("Something went wrong\n" + e.ToString()); } } Ok thanks Gia bach. Room này không xôm nên lâu lâu mới vào check. heizz Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác