• На какой продукт последние два года переходят конструкторы автокада? И переходят ли?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    У нас в компании закупили сотни полторы нанокадов, но как человек, который раньше писал, а сейчас понемного поддерживаю плагины и автокада и нанокада скажу, что по сравнению нанокадом 21 и 23 версии изменения произошли в худшую сторону по отношению к разработчикам плагинов - раньше плагины писались на dot.net 4.x и проблем не было, а в 23-й версии они перешли на .net.core 6. Причём именно версии 6, а не не меньше 6. Т.е. ни о каких версиях .net.core 7,8 и скоро выходящей 9 речи не идёт вообще и, главное, не планируется. Я задал им вопрос, они вежливо мне ответили, что "пока" нет, но мне в руки попала их внутренняя переписка "что это теперь его проблема, пусть добивает теми плагинами, которые есть в net.core 6". Вот такое отношение к клиентам.
    Так же у нас есть на опытной обкатке TFlex. В принципе некоторая табличная параметризация там доступна пользователям, но если у вас есть опыт программирования, то вы в этом мало для себя полезного получите. Я как-то участвовал в совещании, когда представитель TFlex к нам приезжал и рассказывал, какая это у них крутая фича с параметризацией, пока я не задал вопрос, как у них организована обработка ошибок - они сказали, дословно - "никак". Любая ошибка превращается в число 0. И вы никогда не узнаете, что параметризация у вас выполнена с ошибкой или "ноль попал под рамку".
    Собственно ситуация с "отечественными" производителями CAD продуктов - как с сыром. Когда запретили импорт дорогих пармезанов, то после этого отечественные сыры не стали улучшать качество, а стали загонять сырные продукты по цене удалённых с рынков дорогих импортных качественных сыров. Лично я тогда и осознал, что очень хорошо для потребителя наличие на рынке дорогих качественных продуктов, что они сдерживают рост цен на некачественные продукты или всякие полуфабрикаты.
    Так что если у вас есть возможность указать "отечественным" производителям на их ошибки - используйте шанс заставить их доработать что-то до приобретения или требуйте хорошую скидку, как за неполноценный товар, который устраивает вас лишь частично. Не надо их жалеть.
    Ответ написан
    2 комментария
  • AutoCAD лизенция или обман?

    @Iv_and_S
    1. Autodesk официально ушел из РФ. кто работает в его продуктах приобретают через "парралельный импорт".
    2. Официальные лицензии были и есть именные. на конретное юр.лицо. естественно никаких договоров на "флешку с озона" нет.
    3.Официальные лицензии продавались и продаются через ДИЛЕРОВ Autodesk.
    4. Официальная лицензия на AutoCAD стоит далеко не 2 тыс.руб.(точно лень искать). и лицензии только годовые.

    Отвечая на вопрос. "нет" - это не официальная лицензия.
    если объявление говорит иное, то "да" это обман.

    Используйте альтернативное ПО, оно есть.
    Ответ написан
    Комментировать
  • Сравнение скорости копирования массивов разными способами?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Ошибки:
    1. В каждом тесте лучше передавать массивы через аргументы, а не словарем - это тоже немного влияет
    2. Циклы внутри не нужны - сам фреймворк запускает это все множество раз под капотом

    вопрос почему

    Разные версии, разные реализации. Мы исходный код платформы не знаем.
    Тем более, на скорость могут повлиять разные факторы:
    - Локальность кэша
    - Загруженность системы
    - Работа ОС (переключение контекста, свапинг)

    на не больших массивах, использование которых в реальной жизни крайне редко.

    Это откуда такие данные?
    - Enumerable с 1 элементом
    - Результат фильтрации выбрал только 2-3 штуки
    - Сериализация примитивных (и не только) типов

    Я вообще молчу, что stackalloc надо вызывать с маленьким размером, а работать с ним через Span

    UPD: запустил бенчмарк у себя и получил примерно такие же результаты. Система: AMD Ryzen 5, Ubuntu 22.04, 16 GB RAM

    Предполагаю, что причина в следующем:
    1. .NET 8 вышел только недавно и нет достаточного кол-ва патчей
    2. Платформа сейчас больше ориентируется на Web и на такие моменты, как оптимизация копирования, времени уделяется мало

    P.S. скорее причина в 1
    Ответ написан
    2 комментария
  • Подойдет ли Macbook для работы в автокаде?

    @Drno
    Автокад любит винду
    берите на винде, что то с 16гб оперативки, и процессором от i3 и выше
    Ответ написан
    4 комментария
  • Чем отличаются эти два типа записи?

    Эти две записи полностью эквивалентны, в чём можно убедиться через sharplab, выбрал декомпиляцию в более низкоуровневый C#.
    Во втором случае используется Object Initializer синтаксис.
    Второй более идиоматичный и ИМХО более читабельный.
    Ответ написан
    Комментировать
  • Работает ли автообмен о счетах, прилетал ли кому-то от налоговой запрос о зарубежных счетах (банки, wise, advcash, revolut, vivid)?

    @RoundRobin
    Работает. Но в разных направлениях есть разные лимиты по суммам. Проще говоря, есть юрисдикции, где по счетам с оборотом к примеру 2K не передают автоматом.
    Ответ написан
    2 комментария
  • Если зарегистрировать paypal находясь не в РФ но с русской банк.картой. Получиться обойти блокировку?

    Ты не сможешь зарегаться, тк на этапе подтверждения карты paypal не сможет списать деньги.
    Ответ написан
    Комментировать
  • Как построить такой чертеж?

    TomasHuk
    @TomasHuk
    Открыть автокад, найти инструмент "линия", а еще лучше "полилиния" и начать чертить. Все размеры есть или их можно высчитать.
    Ответ написан
    Комментировать
  • Можно ли отдалиться при создании WinForms?

    GavriKos
    @GavriKos
    Стул на колесиках? Отталкиваешься ногами и отдаляешься.
    Ответ написан
    5 комментариев
  • Как дешево подменить IP Sql-сервера на заграничный?

    Jump
    @Jump
    Системный администратор со стажем.
    Никаких прокси.
    Обычный самый дешевый VDS со штатовским айпишником, с каким нибудь линуксом на борту.
    На нем средствам iptables делаем банальный проброс нужных портов на сервер в Москве.

    Не нужно никаких Proxy, VPN, и прочих хитрых вещей.
    Обычный NAT.
    Четыре правила в iptables - настраивается за 5минут.
    Мануалов по пробросу портов в сети тонна.
    Ответ написан
  • Как убрать возможность выделять контрол C#?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    как вариант используйте Label
    Ответ написан
    Комментировать
  • Как исправить размытый текст в Windows Forms?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Гуглите DpiAware — изучите проблемы и выберете оптимальное решение для себя. Тут проблема в диком легаси наследии, реализованном через костыли и которое пытаются сохранить, добавляя исправления в виде костылей, которые генерируют новые баги и в новых версиях это пытаются исправить опять костылями. Кроме того, алгоритм работы масштабирования немного отличается в разных версиях ОС. Так что очень рекомендую проверять работу приложения в разных версиях ОС (7, 8.1, 10 Home, 10 Enterprise LTS) и с выключенным и включенным масштабированием. Да-да, в домашней десятке и в корпоративной долгосрочной десятке можно получить разный результат.

    Вариант 1 — вызов специальной функции в коде (реальный код, который я использую — плюс вторая функция для масштабирования шрифтов, тык — примерно так получается в 4к):
    const int WinDefaultDPI = 96;
    
    /// <summary>
    /// Исправление блюра при включенном масштабировании в ОС windows 8 и выше
    /// </summary>
    public static void DpiFix()
    {
        if (Environment.OSVersion.Version.Major >= 6)
        {
            SetProcessDPIAware();
        }
    }
    
    /// <summary>
    /// WinAPI SetProcessDPIAware 
    /// </summary>
    /// <returns></returns>
    [DllImport("user32.dll")]
    private static extern bool SetProcessDPIAware();
    
    /// <summary>
    /// Исправление размера шрифтов
    /// </summary>
    /// <param name="c"></param>
    public static float DpiFixFonts(Control c)
    {
        Graphics g = c.CreateGraphics();
        float dx = g.DpiX
            , dy = g.DpiY
            , fontsScale = Math.Max(dx, dy) / WinDefaultDPI
        ;
        g.Dispose();
        return fontsScale;
    }


    Плюс все формы имеют следующий конфиг (код, вызываемый в конструкторах форм):
    this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
    this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;


    Учтите, что AutoScaleDimensions — в конструкторе выставляется автоматически в зависимости от разрешения и DPI вашего монитора. Поэтому я не использую конструкторы. Иначе, при запуске приложения на разных машинах с разным DPI можно получить очень неожиданные результаты.

    Вариант 2 (v4.7):
    app.config
    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <configSections>
      </configSections>
      <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7" />
      </startup>
      <System.Windows.Forms.ApplicationConfigurationSection>
        <add key="DpiAwareness" value="PerMonitorV2" />
        <add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />
      </System.Windows.Forms.ApplicationConfigurationSection>
    </configuration>


    Вариант 3 (v4.7):
    app.config
    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <configSections>
      </configSections>
      <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7" />
      </startup>
      <System.Windows.Forms.ApplicationConfigurationSection>
        <add key="DpiAwareness" value="PerMonitorV2" />
        <add key="EnableWindowsFormsHighDpiAutoResizing" value="false" />
      </System.Windows.Forms.ApplicationConfigurationSection>
    <configuration>


    Вариант 4:
    app.manifest
    <!-- Указывает, что приложение поддерживает определение DPI и не будет автоматически масштабироваться Windows при более высоких
           значениях DPI. Приложения Windows Presentation Foundation (WPF) по умолчанию поддерживают определение DPI, им не нужно 
           специально включать параметр для этого. Для приложений Windows Forms на платформе .NET Framework 4.6, для которых задан этот параметр, необходимо 
           также задать для "EnableWindowsFormsHighDpiAutoResizing" значение "true" в файле app.config.-->
      <application xmlns="urn:schemas-microsoft-com:asm.v3">
        <windowsSettings>
          <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
        </windowsSettings>
      </application>
    Ответ написан
    6 комментариев