示例#1
0
 /// <summary>
 /// обратить бергштрихи у полилинии
 /// Должна быть запущена транзакция!!!
 /// </summary>
 public void ReverseIsoline()
 {
     using (var curve = IdCurve.GetObject(OpenMode.ForWrite, false, true) as Curve)
     {
         ResultBuffer rb = curve.GetXDataForApplication(RegAppNAME);
         if (rb != null)
         {
             var  data    = rb.AsArray();
             bool isFound = false;
             for (int i = 0; i < data.Length; i++)
             {
                 var tv = data[i];
                 if (tv.TypeCode == (short)DxfCode.ExtendedDataInteger16)
                 {
                     data[i]  = new TypedValue((int)DxfCode.ExtendedDataInteger16, IsNegate ? 0 : 1);
                     IsNegate = !IsNegate;
                     isFound  = true;
                     break;
                 }
             }
             if (isFound)
             {
                 using (ResultBuffer rbNew = new ResultBuffer(data))
                 {
                     curve.XData = rbNew;
                 }
             }
         }
     }
 }
示例#2
0
 /// <summary>
 /// Включение/отключение бергштрихов для полилинии - запись xdata
 /// Должна быть запущена транзакция!!!
 /// </summary>
 private void Activate(bool activate)
 {
     using (var curve = IdCurve.GetObject(OpenMode.ForRead, false, true) as Curve)
     {
         //ResultBuffer rb = curve.GetXDataForApplication(RegAppNAME);
         ResultBuffer rb;
         if (activate)
         {
             rb = new ResultBuffer(new TypedValue(1001, RegAppNAME),
                                   // 0 - прямой штрих, 1 - обратный
                                   new TypedValue((int)DxfCode.ExtendedDataInteger16, 0),
                                   // 0 - изолиния, 1 - бергштрих
                                   new TypedValue((int)DxfCode.ExtendedDataInteger16, 0)
                                   );
         }
         else
         {
             rb = new ResultBuffer(new TypedValue(1001, RegAppNAME));
         }
         curve.UpgradeOpen();
         curve.XData = rb;
     }
 }