/// <summary> /// Pobiera blok. który można użyć jako strzałkę /// </summary> /// <param name="arrow"></param> /// <param name="newArrName"></param> /// <returns></returns> public static zzd.ObjectId GetArrowObjectId(string arrow, string newArrName) { zzd.ObjectId arrObjId = zzd.ObjectId.Null; zza.Document doc = zza.Application.DocumentManager.MdiActiveDocument; zzd.Database db = doc.Database; string oldArrName = zza.Application.GetSystemVariable(arrow) as string; zza.Application.SetSystemVariable(arrow, newArrName); if (oldArrName.Length != 0) { zza.Application.SetSystemVariable(arrow, oldArrName); } zzd.Transaction tr = db.TransactionManager.StartTransaction(); using (tr) { zzd.BlockTable bt = (zzd.BlockTable)tr.GetObject(db.BlockTableId, zzd.OpenMode.ForRead); arrObjId = bt[newArrName]; tr.Commit(); } return(arrObjId); }
/// <summary> /// Wstawia warstwę o podanej nazwie, kolorze i czyni ją plotowaną lub nie. /// </summary> /// <param name="layername"></param> /// <param name="color"></param> /// <param name="isplotable"></param> public static void WstawWarstwe(string layername, short color, bool isplotable) { zza.Document doc = zza.Application.DocumentManager.MdiActiveDocument; zzd.Database db = doc.Database; using (zzd.Transaction tr = db.TransactionManager.StartTransaction()) { zzd.LayerTable lt = (zzd.LayerTable)tr.GetObject(db.LayerTableId, zzd.OpenMode.ForRead); if (lt.Has(layername) == false) { // Tworzymy nową wartwę papier zzd.LayerTableRecord nowawarstwa = new zzd.LayerTableRecord(); //nadajemy jej wlasciwosci nowawarstwa.Name = layername; nowawarstwa.IsPlottable = isplotable; nowawarstwa.Color = zzc.Color.FromColorIndex(zzc.ColorMethod.ByAci, color); //dadaj nowarstwa do tabeli lt.UpgradeOpen(); zzd.ObjectId warstwa = lt.Add(nowawarstwa); tr.AddNewlyCreatedDBObject(nowawarstwa, true); } tr.Commit(); } }
/// <summary> /// Tworzy styl wymiarowania PI_STANDARD /// </summary> public static void Dodaj_styl_PI_STANDARD() { string nazwastylu = "PI_STANDARD"; zza.Document doc = zza.Application.DocumentManager.MdiActiveDocument; zzd.Database db = doc.Database; using (zzd.Transaction tr = db.TransactionManager.StartTransaction()) { zzd.DimStyleTable DimTabb = (zzd.DimStyleTable)tr.GetObject(db.DimStyleTableId, zzd.OpenMode.ForRead); zzd.ObjectId dimId = zzd.ObjectId.Null; if (!DimTabb.Has(nazwastylu)) { DimTabb.UpgradeOpen(); zzd.DimStyleTableRecord newRecord = new zzd.DimStyleTableRecord(); //nazwa stylu wymiarowania newRecord.Name = nazwastylu; //styl tekstu newRecord.Dimtxsty = Dodaj_styl_PI_DIMENSIONTEXT(); //określenie liczby miejsc wyświetlanych w precyzyjnych wymiarach kątowych. newRecord.Dimadec = 0; //dodanie alternatywnych wymiarów newRecord.Dimalt = false; //usytuowanie napisu w stosunku do linii newRecord.Dimtad = 1; //rysować tekst zawsze poziomo? newRecord.Dimtih = false; // rysować tekst nnawet jak się nie mieści newRecord.Dimtix = false; //rozmiar strzałki newRecord.Dimasz = 1; //zmienna dimsah na false wtedy stosowany jest grot strzałki wskazany przez zmienną DIMBLK newRecord.Dimsah = false; //ustawienie grotu strzałek zzd.ObjectId id1 = GetArrowObjectId("DIMBLK", "PI_grotplany"); newRecord.Dimblk = id1; //kolor tekstu newRecord.Dimclrt = zzc.Color.FromColorIndex(zzc.ColorMethod.ByAci, 2); //kolor lini wymiaru newRecord.Dimclrd = zzc.Color.FromColorIndex(zzc.ColorMethod.ByAci, 1); //ukrycie pierwszej linii pomocniczej newRecord.Dimse1 = true; //ukrycie drugiej linii pomocniczej newRecord.Dimse2 = true; //miejsc po przecinku newRecord.Dimdec = 1; //wysikość tekstu newRecord.Dimtxt = 2.0; //odległość tekstu od linii newRecord.Dimgap = 1; // tekst w odnośniku zawsze poziomo newRecord.Dimtoh = false; //przemnożenie jednostki newRecord.Dimlfac = 100; //ukrywanie zer końcowych newRecord.Dimzin = 8; newRecord.Dimscale = 1; dimId = DimTabb.Add(newRecord); tr.AddNewlyCreatedDBObject(newRecord, true); } else { dimId = DimTabb[nazwastylu]; } //ustawiamy utworzony styl jako aktualny zzd.DimStyleTableRecord DimTabbRecaord = (zzd.DimStyleTableRecord)tr.GetObject(dimId, zzd.OpenMode.ForRead); if (DimTabbRecaord.ObjectId != db.Dimstyle) { db.Dimstyle = DimTabbRecaord.ObjectId; db.SetDimstyleData(DimTabbRecaord); } tr.Commit(); } }