Ejemplo n.º 1
0
        private void OpenStructure(string StName)
        {
            // Создаём OpenBabel объекты
            OBConversion obconv = new OBConversion();
            OBMol        mol    = Functions.ReadMoleculeFromFile(StName);

            obconv.SetOutFormat("_png2");
            obconv.AddOption("w", OBConversion.Option_type.OUTOPTIONS, panel1.Width.ToString());
            obconv.AddOption("h", OBConversion.Option_type.OUTOPTIONS, panel1.Height.ToString());

            string TempPic = Functions.TempFile();

            obconv.WriteFile(mol, TempPic); // Пишем картинку в temp // Это такое колдунство // Мне стыдно, но по-другому не выходит
            obconv.CloseOutFile();


            Bitmap bmp = new Bitmap(panel1.Width, panel1.Height);

            // Рисуем на панели
            panel1.BackgroundImage = bmp;

            Image    IM = Image.FromFile(TempPic);
            Graphics g  = Graphics.FromImage(panel1.BackgroundImage);

            g.DrawImage(IM, 0, 0);
            IM.Dispose();
            g.Dispose();
            panel1.Invalidate();

            // Высчитываем параметры
            label3.Text = "Молярная масса: " + Math.Round(mol.GetExactMass(), 4);
            label4.Text = "Брутто-формула: " + mol.GetFormula();
        }
Ejemplo n.º 2
0
 public MoleculeBase BuildMoleculeBase()
 {
     return(new MoleculeBase
     {
         MolStat = GetMolStat(),
         Fp2 = GetFP("FP2"),
         Fp4 = GetFP("FP4"),
         Mass = mol.GetMolWt(),
         Formula = mol.GetFormula(),
         ExactMass = mol.GetExactMass(),
         Charge = (short)mol.GetTotalCharge(),
         InChI = GetInChI(),
         InChIKey = GetInChIKey(),
         MolFile = GetMolFileText(),
         IsomericSmiles = GetISOMericSmiles().TrimEnd(),
         CanonicSmiles = GetCanonicalSmiles().TrimEnd(),
     });
 }