Size: a a a

2016 May 05

KM

Khasan Mamaev in rupython
Есть интерес к Динамо?
источник

KM

Khasan Mamaev in rupython
А это не ты ли уроки по связке Динамо-Питон делаешь?)
источник

u

ultra noise in rupython
не,  я просто увидел что есть уроки по питону в связке с нишевым софтом и удивился
источник

KM

Khasan Mamaev in rupython
сейчас на смену Автокад идет Ревит и для него давно сделали приложение PythonShell
источник

KM

Khasan Mamaev in rupython
ну и чуть позже появилось Динамо с Питоном
источник

KM

Khasan Mamaev in rupython
также Питон есть в среде для архитекторов Грассхоппер
источник

KM

Khasan Mamaev in rupython
кажется Питон встроили и в графический редактор Inkscape
источник

ВК

Вик Ктвцк in rupython
И в растровом GIMP тоже есть
источник

PZ

Pavel Zagrebelin in rupython
Khasan Mamaev
using System;
using Microsoft.Win32;

namespace TFlexControlSample
{
 class APILoader : IDisposable
 {
   private string _cadPath = null;
   private bool _initialized = false;

   //прописываем путь к CADу
   public APILoader()
   {
     _cadPath = GetPath("T-FLEX CAD 3D 14", "Rus");
     AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(AssemblyResolve);
   }

   public bool InitializeTFlexCADAPI()
   {
     if (_initialized)
       return true;
     if (string.IsNullOrEmpty(_cadPath))
       throw new System.IO.FileNotFoundException("T-FLEX CAD is not installed");

     //Перед работой с API T-FLEX CAD его необходимо инициализировать
     //В зависимости от параметров инициализации, будут или не будут
     //доступны функции изменения документов и сохранение документов в файл.
     //За это отвечает параметр setup.ReadOnly.
     //Если setup.ReadOnly = false, то для работы программы требуется
     //лицензия на сам T-FLEX CAD
     TFlex.ApplicationSessionSetup setup = new TFlex.ApplicationSessionSetup();
     setup.ReadOnly = false;

     _initialized = TFlex.Application.InitSession(setup);

     return _initialized;
   }

   public void Dispose()
   {
     if (_initialized)
     {
       TFlex.Application.ExitSession();
       _initialized = false;
     }
   }

   private static string GetPath(string productName, string language)
   {
     if (string.IsNullOrEmpty(productName) || string.IsNullOrEmpty(language))
       return null;

     string fullProductName = UIntPtr.Size == 8 ? productName + " x64" : productName;
     string regPath = string.Format(@"SOFTWARE\Top Systems\{0}\{1}", fullProductName, language);

     using (RegistryKey key = Registry.LocalMachine.OpenSubKey(regPath,
                                                               RegistryKeyPermissionCheck.ReadSubTree,
                                                               System.Security.AccessControl.RegistryRights.ReadKey))
     {
       if (key == null)
         return null;
     
       string path = (string)key.GetValue("ProgramFolder", string.Empty);
       if (string.IsNullOrEmpty(path))
       {
         path = (string)key.GetValue("SetupHelpPath", string.Empty);
         if (string.IsNullOrEmpty(path))
           return null;
       }
     
       if (!path.EndsWith("\\"))
         path += "\\";
     
       return path;
     }
   }

   private System.Reflection.Assembly AssemblyResolve(object sender, ResolveEventArgs args)
   {
     if (string.IsNullOrEmpty(_cadPath))
       return null;

     try
     {
       string name = args.Name;

       int index = name.IndexOf(",");
       if (index > 0)
         name = name.Substring(0, index);

       string fileName = string.Format("{0}{1}.dll", _cadPath, name);

       if (!System.IO.File.Exists(fileName))
         return null;

       System.IO.Directory.SetCurrentDirectory(_cadPath);

       return System.Reflection.Assembly.LoadFile(fileName);
     }
     catch (Exception ex)
     {
       System.Windows.Forms.MessageBox.Show(string.Format("Ошибка загрузки сборки {0}:\n{1}", args.Name, ex.Message),
                                            "Ошибка",
                                            System.Windows.Forms.MessageBoxButtons.OK,
                                            System.Windows.Forms.MessageBoxIcon.Error);
       return null;
     }
   }
 }
}
Я ironpython давно не трогал, но вроде тут не должно быть проблем?
источник

KM

Khasan Mamaev in rupython
ну вот видите, сколько программ используют Питон
источник

KM

Khasan Mamaev in rupython
еслибы я хорошо знал Шарп, то перегнал бы в Питон
источник

KM

Khasan Mamaev in rupython
Я ironpython давно не трогал, но вроде тут не должно быть проблем?
источник

PZ

Pavel Zagrebelin in rupython
Khasan Mamaev
еслибы я хорошо знал Шарп, то перегнал бы в Питон
До дома доберусь, посмотрю если не забуду.
источник

KM

Khasan Mamaev in rupython
спасибо
источник

KM

Khasan Mamaev in rupython
я уже подключил двух полиглотов)
источник
2016 May 06

SK

Sergey Khaylov in rupython
Интересно, а есть тут начинающие питонисты?
источник

KM

Khasan Mamaev in rupython
ну если сравнить мой уровень с уровнем профессиональных программистов, то я начинающий)
источник

I

Igor in rupython
есть
источник

KM

Khasan Mamaev in rupython
только не называйте нас питонастами)
источник

I

Igor in rupython
питоняшками
источник