Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        /// <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();
            }
        }
Beispiel #3
0
        /// <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();
            }
        }