<?xml version="1.0" encoding="utf-8" ?> 
		<rss version="2.0" xmlns:atom="https://www.w3.org/2005/Atom">
		<channel>
		<title>DWG.RU : Форум : Программирование</title> 
		<link>https://forum.dwg.ru/forumdisplay.php?f=13</link> 
		<language>ru</language> 
		<image>
		  <url>https://dwg.ru/img/logo_mini.gif</url> 
		  <link>https://forum.dwg.ru/</link> 
		  <title>DWG.RU : Форум : Программирование</title>
		</image>
		<description>Инженерный форум</description> 
		<atom:link href="https://dwg.ru/rss/rssforumt13.xml" rel="self" type="application/rss+xml" />
		<item>
		<title>XAML. Создание всплывающих подсказок и дополнительной справки для команд</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2115254</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2115254</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=140720&quot;&gt;berstrider&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 18 Jul 2026 20:25 (GMT + 4)&lt;p&gt;Подскажите пожалуйста, как при редактировании CUIX сделать путь к файлу XAML относительным. Что только не делал, а рабочий вариант - абсолютный путь. Очень неудобно для своей вкладки.</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>Как установить размеры рамки вокруг Мтекст?</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2115221</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2115221</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=127556&quot;&gt;ElectricSib&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 17 Jul 2026 11:41 (GMT + 4)&lt;p&gt;Есть Мтекст с выравниванием середина по центру. &lt;br /&gt;Возможно с помощью LISP задать точные размеры ограничивающей рамки вокруг него?&lt;br /&gt;Почему-то нейросети не могут справиться этой задачей.</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>Как реализовать передачу списка состоящего из списков функции mapcar</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2113422</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2113422</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=171968&quot;&gt;vladimir777ak&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 26 May 2026 22:35 (GMT + 4)&lt;p&gt;&lt;div style=&quot;padding-left: 50px;&quot;&gt;&lt;p&gt;&lt;b&gt;kp+ :&lt;/b&gt;&lt;br /&gt;Можно поискать в другом интернете:&lt;br /&gt;&lt;a href=&quot;https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/list-sum-of-lists/m-p/11252118#M44093&quot;&gt;forums.autodesk.com/t5/visual-lisp-autolisp-and-general/list-sum-of-lists/m-p/11252118#M44093&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Огромное спасибо капэплас, реализовал то что мне нужно:&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Код:&lt;/strong&gt;&lt;font color=&quot;#008000&quot;&gt;&lt;div style=&quot;padding-left: 50px;&quot;&gt;(defun fn(fx lst)(apply(function mapcar)(cons(function fx)lst)))&lt;br /&gt;&lt;br /&gt;(fn * (list(list 1 3 5 7)(list 4 6 8 0)))&lt;br /&gt;(fn + (list(list 2 4 6 9)(list 1 3 5 7)(list 4 6 8 0)))&lt;br /&gt;(fn vl-princ-to-string (list(list 2 4 6 9)))&lt;/font&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Другого интернета у меня нету сам знаешь кому благодаря, да и поисковики нынче изрядно отупели - фильтруют все..</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>Notepad++ как альтернатива VLIDE (NPPVLIDE)</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2111713</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2111713</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=10868&quot;&gt;SetQ&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 15 Apr 2026 05:52 (GMT + 4)&lt;p&gt;Подскажите, почему AcadLISPLauncher2.exe не может подключится к запущенному автокаду? AutoCAD 2022, VBA установлен, Windows 8.1.&lt;br /&gt;&lt;br /&gt;Так же пытаюсь подключится на vbs командой&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Код:&lt;/strong&gt;&lt;font color=&quot;#008000&quot;&gt;&lt;div style=&quot;padding-left: 50px;&quot;&gt;Set Acadobj = CreateObject(&quot;Autocad.Application&quot;)&lt;/font&gt;&lt;/div&gt;&lt;br /&gt;или&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Код:&lt;/strong&gt;&lt;font color=&quot;#008000&quot;&gt;&lt;div style=&quot;padding-left: 50px;&quot;&gt;Set acadApp = GetObject(, &quot;AutoCAD.Application&quot;)&lt;/font&gt;&lt;/div&gt;&lt;br /&gt;Выдаёт ошибку.</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>Неточная работа программы поиска неассоциативных размеров</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2111686</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2111686</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=11&quot;&gt;Pilot&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 14 Apr 2026 14:35 (GMT + 4)&lt;p&gt;Много лет периодически по мере надобности, в основном в чужих чертежах, пользовался этой программой (см. выше).&lt;br /&gt;Еще раз спасибо VVA за доработанный, а фактически новый код. Все работает как было задумано!&lt;br /&gt;Но пришло понимание, что неассоциативные размеры удобнее не просто выделять цветом, а переносить на отдельный слой.&lt;br /&gt;В связи с этим наконец дошли руки это реализовать.&lt;br /&gt;Сам тестировал только 1 день, пока ошибок не появлялось.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Код:&lt;/strong&gt;&lt;font color=&quot;#008000&quot;&gt;&lt;div style=&quot;padding-left: 50px;&quot;&gt;[LISP]&lt;br /&gt;;;;; c:FDR Идея и первоначальный код - Михаил Сорокин.&lt;br /&gt;;;;; Измененный код - VVA с форума dwg.ru.&lt;br /&gt;;;;; Доработка интерфейса и перенос на слой вместо изм цвета - Pilot.&lt;br /&gt;&lt;br /&gt;(defun c:Fdr ( / na n in l en lw obj Color layname)&lt;br /&gt;(vl-load-com)&lt;br /&gt;(setvar &quot;cmdecho&quot; 0)&lt;br /&gt;(if (not (setq na (ssget &quot;_x&quot; '((0 . &quot;DIMENSION&quot;)))))&lt;br /&gt;   (progn (setq na nil n nil in nil l nil en nil lw nil obj nil Color nil layname nil)&lt;br /&gt;          (alert &quot;В чертеже нет размерных примитивов.&quot;)&lt;br /&gt;          (exit));progn&lt;br /&gt;);if&lt;br /&gt;(setq n (sslength na)&lt;br /&gt;      in 0&lt;br /&gt;      l 0&lt;br /&gt;      layname &quot;_Dim_nonassociative&quot; ;перенос на слой с этим именем&lt;br /&gt;      Color 6) ; и с этим цветом&lt;br /&gt;(repeat n&lt;br /&gt;   (setq en (entget (setq obj (ssname na in))))&lt;br /&gt;   (if (and (/= (cdr (assoc 1 en)) &quot;&quot;)&lt;br /&gt;            (not (TinT &quot;&lt;&gt;&quot; (cdr (assoc 1 en)))));and&lt;br /&gt;      (progn&lt;br /&gt;         (if (and (setq obj (vlax-ename-&gt;vla-object obj))&lt;br /&gt;                  (vlax-write-enabled-p Obj)&lt;br /&gt;                  (wcmatch (vla-get-Objectname Obj) &quot;*Dimension*&quot;));and&lt;br /&gt;            (progn&lt;br /&gt;               (command &quot;_layer&quot; &quot;_n&quot; layname &quot;_c&quot; Color layname &quot;&quot;)&lt;br /&gt;               (vl-catch-all-apply 'vla-put-Layer (list Obj layname))&lt;br /&gt;            );progn&lt;br /&gt;         );if&lt;br /&gt;         (setq l (+ 1 l))&lt;br /&gt;      );progn&lt;br /&gt;   );if&lt;br /&gt;   (setq in (1+ in))&lt;br /&gt;);repeat&lt;br /&gt;(if (= l 0)&lt;br /&gt;   (alert &quot;Неассоциативные размеры не найдены.&quot;)&lt;br /&gt;   (alert (strcat &quot;Найдено неассоциативных размеров - &quot; (rtos l 2 0))));if&lt;br /&gt;(princ));c:Fdr&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(defun TinT (t1 t2 / c1 v1);проверить t1 в t2&lt;br /&gt;(if (= t2 0)(setq t2 nil)) ; не помню зачем эта проверка.&lt;br /&gt;(if (and (= (type t1) 'STR)(= (type t2) 'STR)); - проверка что это литералы.&lt;br /&gt;   (progn&lt;br /&gt;      (setq t1 (strcase t1)&lt;br /&gt;            t2 (strcase t2)&lt;br /&gt;            c1 1)&lt;br /&gt;      (repeat (strlen t2)&lt;br /&gt;         (if (= t1 (substr t2 c1 (strlen t1)))(setq v1 c1))&lt;br /&gt;         (setq c1 (1+ c1)))&lt;br /&gt;   );progn&lt;br /&gt;);if&lt;br /&gt;v1);TinT&lt;br /&gt;[/LISP]&lt;/font&gt;&lt;/div&gt;</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>Не загружаются приложения Ривилиса на AutoCAD 2025</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2111184</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2111184</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=28&quot;&gt;Кулик Алексей aka kpblc&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 02 Apr 2026 10:29 (GMT + 4)&lt;p&gt;С флудом завязываем.</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>GeomProps</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2111158</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2111158</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=163120&quot;&gt;serg48&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 01 Apr 2026 23:20 (GMT + 4)&lt;p&gt;Всем привет.&lt;br /&gt;До недавнего времени пользовался замечательнейшим GeomProps2019x64.arx в паре с AutoCAD 2020.&lt;br /&gt;Заметил такую вещь, что теперь при выделении нескольких линий/заливок и тд. суммарная длина/площадь пишется 0, тоесть автокад перестал складывать длины и площади.&lt;br /&gt;Скачал версию от 2026-04-01 14:40:34.&lt;br /&gt;Может быть кто-то сталкивался и есть решение? Выгружал, заново добавлял расширение это - не вышло. Спасибо</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>Изменение свойств объектов внутри блока без его открытия - есть готовые бесплатные утилитки?</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2110933</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2110933</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=0&quot;&gt;tigra-18&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 26 Mar 2026 13:19 (GMT + 4)&lt;p&gt;Возникла потребность, быстро, в нескольких сотнях блоков заменить некоторые свойства(цвет, принадлежность слою) их содержимого. Есть ли бесплатные(потребность разовая) готовые утилиты которые могут это сделать?&lt;br /&gt;Ну чтоб выбрать нужные блоки рамкой, задать новый слой(цвет) для их содержимого, нажать кнопочки для запуска операций и через несколько секунд/минут получить требуемый результат.</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>Групповой поиск и замена текста</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2109791</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2109791</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=26621&quot;&gt;znatok&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 26 Feb 2026 09:42 (GMT + 4)&lt;p&gt;&lt;div style=&quot;padding-left: 50px;&quot;&gt;&lt;p&gt;&lt;b&gt;Цитата :&lt;/b&gt;&lt;br /&gt;если еще актуально , то может это подойти&lt;br /&gt;SRXTEXT - search/replace with regular expressions&lt;br /&gt;(C) 2008, XANADU a.s. &lt;a href=&quot;https://http://www.xanadu.cz&quot;&gt;http://www.xanadu.cz&lt;/a&gt;&lt;br /&gt;или эта : FindAndChange&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;нет возможности скачать требует какой-то регистрации</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>Как сделать автозапуск команды (или периодичность)</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2109136</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2109136</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=1&quot;&gt;Admin&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 11 Feb 2026 20:56 (GMT + 4)&lt;p&gt;&lt;a href=&quot;https://forum.dwg.ru/announcement.php?f=13&amp;a=21&quot;&gt;forum.dwg.ru/announcement.php?f=13&amp;a=21&lt;/a&gt;</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>Программное создание мультивыноски</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2108493</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2108493</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=162126&quot;&gt;Ingpro&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 01 Feb 2026 17:36 (GMT + 4)&lt;p&gt;[COLOR=&quot;Silver&quot;]Deleted[/COLOR]</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>Назначение набора параметров листа методами VBA</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2107426</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2107426</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=26842&quot;&gt;Theodor&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 11 Jan 2026 20:39 (GMT + 4)&lt;p&gt;В пустоту для истории, но вдруг кто-то сюда попадёт в поисках ответа.&lt;br /&gt;&lt;br /&gt;Dim strName as String&lt;br /&gt;Dim objLay as AcadLayout&lt;br /&gt;Dim vPlotConfig As AcadPlotConfiguration&lt;br /&gt;&lt;br /&gt;Set objLay=ThisDrawing.Layouts.Item(0) ' &lt;b&gt;тут выбор нужного листа, как объекта&lt;/b&gt;&lt;br /&gt;strName=&quot;А3myPrinter&quot; ' &lt;b&gt;тут имя известного набора параметров (авторское)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt; For Each vPlotConfig In ThisDrawing.PlotConfigurations&lt;br /&gt;  If vPlotConfig.Name = strName Then&lt;br /&gt;   objLay.CopyFrom vPlotConfig 'установка типа печати, если есть похожий.&lt;br /&gt;   Exit For&lt;br /&gt;  End If&lt;br /&gt; Next vPlotConfig</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>Где первоисточник программ Ривилиса?</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2107272</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2107272</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=1611&quot;&gt;Александр Ривилис&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 04 Jan 2026 15:05 (GMT + 4)&lt;p&gt;&lt;div style=&quot;padding-left: 50px;&quot;&gt;&lt;p&gt;&lt;b&gt;ElectricSib :&lt;/b&gt;&lt;br /&gt;Исходный код программ является секретом? или он тоже где-то выложен в открытом доступе.&lt;br /&gt;Вопрос актуален после 2022 года.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Что-то я выкладывал на adn-cis.org, что-то было в качестве приложения к книге &lt;a href=&quot;https://http://poleshchuk.spb.ru/cad/2006/Razr2006.htm&quot;&gt;http://poleshchuk.spb.ru/cad/2006/Razr2006.htm&lt;/a&gt;&lt;br /&gt;Что-то передавал по просьбе отдельных программистов, когда они пытались адаптировать их под клоны AutoCAD.</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>Как создать расчетное программное обеспечение с открытым исходным кодом (конструктивные решения)</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2107251</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2107251</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=114198&quot;&gt;Бахил&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 03 Jan 2026 13:16 (GMT + 4)&lt;p&gt;А чем микрофе тебя не устраивает?</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>Лира-САПР. Как задать нагрузку через API</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2106183</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2106183</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=163470&quot;&gt;Timur_PGS&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 11 Dec 2025 05:57 (GMT + 4)&lt;p&gt;Да. Документации ноль. Описание объектов в самой библиотеке минимальное. Там не нашел объектов, которые бы напоминали ввод нагрузки.&lt;br /&gt;API для 2024 Лиры есть и работает, но возможно урезанный. Может в API 2025 Лиры и есть то что мне нужно.. Спасибо за наводку на 2025.</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>Автоматическая покраска деталей &quot;ifc&quot; модели по &quot;guid&quot; коду</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2106179</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2106179</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=172149&quot;&gt;Iluhensun&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 10 Dec 2025 21:28 (GMT + 4)&lt;p&gt;Имеется 3D модель расширением &quot;ifc&quot;. Также есть Excel файл деталей данной моделей, в котором есть колонка &quot;guid&quot; код. &quot;guid&quot; код - строчка из 20 случайных символов по которая дает уникальность каждому элементу, с помощью которой можно обращаться к любому элементу модели исключая вероятность задубления.&lt;br /&gt;&lt;br /&gt;Мне нужно закрасить по &quot;guid&quot; коду 10 тысяч уникальных элементов в модели, а в модели 80 тысяч элементов. Пощелкивать через фильтр по &quot;guid&quot; коду, выделять каждый элемент очень долго.&lt;br /&gt; &lt;br /&gt;Есть ли способы скрипты, программы, утилиты или онлайн сайты, желательно бесплатные. С помощью которых можно за несколько минут закрасить данные элементы</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>Вставка текста по координатам с помощью команды</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2104299</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2104299</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=171308&quot;&gt;Instauration&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 30 Oct 2025 05:51 (GMT + 4)&lt;p&gt;Здравствуйте! Пытаюсь вставить текст в чертеж по координатам с помощью командной строки. Команду прописываю так:&lt;br /&gt;&lt;br /&gt;&quot;_TEXT 0,-15 2 0 какой-то текст&quot; (координаты, размер, угол поворота, нужный текст)&lt;br /&gt;&lt;br /&gt;Но после ее выполнения, текст в нужном месте чертежа не появляется, а появляется лишь место, в которое необходимо ввести текст вручную. Как это исправить?</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>VBA. Как восстановить формулу атрибута после замены на текст?</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2104212</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2104212</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=1711&quot;&gt;kp+&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 28 Oct 2025 09:13 (GMT + 4)&lt;p&gt;&lt;div style=&quot;padding-left: 50px;&quot;&gt;&lt;p&gt;&lt;b&gt;Цитата :&lt;/b&gt;&lt;br /&gt;Слэши &quot;\&quot; на двойные кавычки &quot;&quot;&quot;&quot; или на двойные слэши &quot;\\&quot;?&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&quot;\&quot; на &quot;\\&quot;. На лиспе точно сработало</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>Как создать и вызывать сочетанием клавиш плавающую панель по курсору</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2104167</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2104167</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=103456&quot;&gt;Сергей812&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 27 Oct 2025 14:17 (GMT + 4)&lt;p&gt;можно и на WinForms сделать - несколько UserControl и подменять содержимое PaletteSet по требуемым критериям. В WPF просто с этим проще  - из-за структуры вложенных контейнеров-контролов каждый визуальный контрол имеет свойство Visibilty и его (контрол) можно по отдельности скрыть/отобразить.</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>Python для AutoCAD реальность или утопия?</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2103947</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2103947</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=151562&quot;&gt;nickname2019&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 23 Oct 2025 08:12 (GMT + 4)&lt;p&gt;У меня есть несколько старых процедур (им лет 20), при помощи которых я при помощи Delphi отрисовываю таблицы в автокад (там тоже COM, это древняя технология). Мне их влом переделывать, так как это трудоемко. С новыми автокадами эти процедуры не работают, поэтому я для них я держу старые версии автокада, в которых они работают замечательно. Для питона можно попробовать уменьшить версию автокада, чтобы убрать ошибки.&lt;br /&gt;Хотя, может быть, проблема состоит в том, что новые версии автокада более активно используют многопоточность, что не дает корректно выводить данные через COM с использованием питона (при многопоточности нужно синхронизировать процессы при изменении переменных, не факт, что это делает COM). &lt;br /&gt;Можно попробовать убрать многопоточность, установив переменную WHIPTHREAD в 0.</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>LISP. Как переписать код чтобы увеличить масштаб выдаваемого им текста?</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2102720</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2102720</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=162126&quot;&gt;Ingpro&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 25 Sep 2025 17:52 (GMT + 4)&lt;p&gt;&lt;div style=&quot;padding-left: 50px;&quot;&gt;&lt;p&gt;&lt;b&gt;Цитата :&lt;/b&gt;&lt;br /&gt;размер таблицы легко увеличивался, а размер текста оставался крошечным, а вот уже увеличить размер текста с помощью кода не выходило никак&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Если таблица автокадовская, то при масштабировании всё увеличивается, в том числе и текст:&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Код:&lt;/strong&gt;&lt;font color=&quot;#008000&quot;&gt;&lt;div style=&quot;padding-left: 50px;&quot;&gt;[LISP];; Функция, увеличивающая таблицу в 10 раз&lt;br /&gt;(defun c:ScaleTable10 ( / ent scale)&lt;br /&gt;    (setq ent (car (entsel &quot;Выберите таблицу: &quot;)))&lt;br /&gt;  (if ent&lt;br /&gt;    (progn&lt;br /&gt;      ;; коэффициент масштабирования&lt;br /&gt;      (setq scale 10.0) ; изменить на нужный&lt;br /&gt;            (setq inspt (cdr (assoc 10 (entget ent))))&lt;br /&gt;            (command &quot;_.SCALE&quot; ent &quot;&quot; inspt scale)&lt;br /&gt;          )&lt;br /&gt;      )&lt;br /&gt;  (princ)&lt;br /&gt;)&lt;br /&gt;[/LISP]&lt;/font&gt;&lt;/div&gt;&lt;br /&gt;Выбрать таблицу и готово.&lt;br /&gt;Можно прикрутить к основному коду.</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>Автокад 2023 макрос разделяющий один файл с листами на файлы с каждым листом</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2101203</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2101203</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=20862&quot;&gt;engngr&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 26 Aug 2025 18:29 (GMT + 4)&lt;p&gt;поиск&lt;br /&gt;+ &lt;a href=&quot;https://forum.dwg.ru/showthread.php?t=146450&quot;&gt;forum.dwg.ru/showthread.php?t=146450&lt;/a&gt;&lt;br /&gt;+&quot;реверс&quot; может быть</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>Где найти полный тестовый пример расчета для программы &quot;Авторяд ЕС&quot;?</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2101160</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2101160</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=148729&quot;&gt;Нубий-IV&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 26 Aug 2025 09:49 (GMT + 4)&lt;p&gt;Если кто вживую видел ЭВМ ЕС (например, не я) - можно поностальгировать.&lt;br /&gt;[LIST]&lt;br /&gt;[*]Есть эмулятор старого железа Hercules:&lt;br /&gt;&lt;a href=&quot;https://&quot;https://github.com/SDL-Hercules-390/hyperion&quot;&quot;&gt;https://github.com/SDL-Hercules-390/hyperion&lt;/a&gt;&lt;br /&gt;[*]Есть эмулятор старых терминалов:&lt;br /&gt;&lt;a href=&quot;https://&quot;https://x3270.bgp.nu/&quot;&quot;&gt;https://x3270.bgp.nu/&lt;/a&gt;&lt;br /&gt;[*]Был сайт истории компьютеров it.museum-ic.ru. Сайт помер, но еще доступен в интернет-архиве. В его разделе загрузок была ссылка на образы софта под ЕС, она пока жива:&lt;br /&gt;&lt;a href=&quot;https://&quot;https://disk.yandex.ru/d/_vBDcqgNFjWTkw&quot;&quot;&gt;https://disk.yandex.ru/d/_vBDcqgNFjWTkw&lt;/a&gt;&lt;br /&gt;[/LIST]&lt;br /&gt;Как запустить:&lt;br /&gt;[LIST]&lt;br /&gt;[*]Качаем всех троих, распаковываем.&lt;br /&gt;[*]Из софта для ЕС выбираем версию по вкусу - например, cbm401.zip, - распаковываем.&lt;br /&gt;В папке CBM-R401 в файле конфигурации CBM2165.cnf подправляем пути к образам дисков/лент.&lt;br /&gt;[*]Запускаем эмулятор с файлом конфигурации:&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Код:&lt;/strong&gt;&lt;font color=&quot;#008000&quot;&gt;&lt;div style=&quot;padding-left: 50px;&quot;&gt;c:\Programs\Hercules\hercules.exe -f c:\Programs\Hercules.OS\CBM-R401\CBM2165.cnf&lt;/font&gt;&lt;/div&gt;&lt;br /&gt;[*]Запускаем первый терминал wx3270.exe - он изображает оператора ВЦ.&lt;br /&gt;Подключаемся к localhost:3270.&lt;br /&gt;[*]В консоли эмулятора даем команду на загрузку с диска 240:&lt;br /&gt;[MORE=&quot;Загрузка&quot;]&lt;a href=&quot;https://&quot;https://forum.dwg.ru/attachment.php?attachmentid=269241&amp;stc=1&amp;d=1756190500&quot;&quot;&gt;[IMG]https://forum.dwg.ru/attachment.php?attachmentid=269241&amp;stc=1&amp;d=1756190500[/IMG]&lt;/a&gt;[/MORE]&lt;br /&gt;[*]В консоли оператора отвечаем на вопросы системы при загрузке:&lt;br /&gt;[MORE=&quot;Оператор&quot;]&lt;a href=&quot;https://&quot;https://forum.dwg.ru/attachment.php?attachmentid=269242&amp;stc=1&amp;d=1756190500&quot;&quot;&gt;[IMG]https://forum.dwg.ru/attachment.php?attachmentid=269242&amp;stc=1&amp;d=1756190500[/IMG]&lt;/a&gt;[/MORE]&lt;br /&gt;[*]Запускаем второй терминал wx3270.exe - он изображает пользователя.&lt;br /&gt;Подключаемся к localhost:3270.Логинимся как SYSPRG/SYSPRG&lt;br /&gt;[MORE=&quot;Пользователь&quot;]&lt;a href=&quot;https://&quot;https://forum.dwg.ru/attachment.php?attachmentid=269243&amp;stc=1&amp;d=1756190542&quot;&quot;&gt;[IMG]https://forum.dwg.ru/attachment.php?attachmentid=269243&amp;stc=1&amp;d=1756190542[/IMG]&lt;/a&gt;[/MORE]&lt;br /&gt;[*]Что дальше - должен помнить пользователь ЭВМ ЕС.&lt;br /&gt;Для остальных - руководства есть в интернете.&lt;br /&gt;[/LIST]&lt;br /&gt;Еще есть готовая сборка, но с оригинальной буржуйской системой MVS:&lt;br /&gt;&lt;a href=&quot;https://&quot;https://www.prince-webdesign.nl/index.php/software/mvs-3-8j-turnkey-5&quot;&quot;&gt;https://www.prince-webdesign.nl/index.php/software/mvs-3-8j-turnkey-5&lt;/a&gt;&lt;br /&gt;[LIST]&lt;br /&gt;[*]Распаковать&lt;br /&gt;[*]Запустить mvs.bat, дождаться загрузки до логотипа&lt;br /&gt;[*]Запустить wx3270.exe, подключиться к localhost:3270&lt;br /&gt;[*]Залогиниться как HERC01/CUL8TR&lt;br /&gt;[*]Дальше см. канал &lt;a href=&quot;https://&quot;https://www.youtube.com/@moshixmainframechannel/&quot;&quot;&gt;moshix&lt;/a&gt;.&lt;br /&gt;Например, &lt;a href=&quot;https://&quot;https://www.youtube.com/watch?v=uJYUMYkpJW8&quot;&quot;&gt;Fortran compilers on IBM MVS 3.8&lt;/a&gt;  (по нему я запускал старый фортран-IV, для сравнения с современным):&lt;br /&gt;[/LIST]</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>Как открыть диалог Open или Save на VBA под AutoCAD</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2100617</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2100617</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=170727&quot;&gt;Artifed&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 13 Aug 2025 09:04 (GMT + 4)&lt;p&gt;После поиска проблемы открытия диалоговых окон Save и Open, решил оставить часть кода на форуме, вдруг кому-то пригодится. Работает на Win11, Autocad 2024 &lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Код:&lt;/strong&gt;&lt;font color=&quot;#008000&quot;&gt;&lt;div style=&quot;padding-left: 50px;&quot;&gt;&lt;br /&gt;Option Explicit&lt;br /&gt;    &lt;br /&gt;    Private lngHwnd As LongPtr&lt;br /&gt;    Public strFilter As String&lt;br /&gt;    Public strTitle As String&lt;br /&gt;    Public strDir As String&lt;br /&gt;    Private blnHideReadOnly As Boolean&lt;br /&gt;    Private blnAllowMulti As Boolean&lt;br /&gt;    Private blnMustExist As Boolean&lt;br /&gt;    Private Const OFN_FILEMUSTEXIST = &amp;H1000&lt;br /&gt;    Private Const OFN_HIDEREADONLY = &amp;H4&lt;br /&gt;    Private Const OFN_ALLOWMULTISELECT = &amp;H200&lt;br /&gt;    Private Const OFN_EXPLORER As Long = &amp;H80000&lt;br /&gt;   &lt;br /&gt;Private Declare PtrSafe Function GetOpenFileName Lib &quot;comdlg32.dll&quot; Alias &quot;GetOpenFileNameA&quot; (pOpenfilename As OPENFILENAME) As Long&lt;br /&gt;Private Declare PtrSafe Function GetSaveFileName Lib &quot;comdlg32.dll&quot; Alias &quot;GetSaveFileNameA&quot; (pOpenfilename As OPENFILENAME) As Long&lt;br /&gt;Private Declare PtrSafe Function FindWindow Lib &quot;user32&quot; Alias &quot;FindWindowA&quot; (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr&lt;br /&gt;&lt;br /&gt;Private Type OPENFILENAME&lt;br /&gt;    lStructSize As Long&lt;br /&gt;    hwndOwner As LongPtr&lt;br /&gt;    hInstance As LongPtr&lt;br /&gt;    lpstrFilter As String&lt;br /&gt;    lpstrCustomFilter As String&lt;br /&gt;    nMaxCustFilter As Long&lt;br /&gt;    nFilterIndex As Long&lt;br /&gt;    lpstrFile As String&lt;br /&gt;    nMaxFile As Long&lt;br /&gt;    lpstrFileTitle As String&lt;br /&gt;    nMaxFileTitle As Long&lt;br /&gt;    lpstrInitialDir As String&lt;br /&gt;    lpstrTitle As String&lt;br /&gt;    flags As Long&lt;br /&gt;    nFileOffset As Integer&lt;br /&gt;    nFileExtension As Integer&lt;br /&gt;    lpstrDefExt As String&lt;br /&gt;    lCustData As Long 'LongPtr&lt;br /&gt;    lpfnHook As LongPtr&lt;br /&gt;    lpTemplateName As String&lt;br /&gt;End Type&lt;br /&gt;&lt;br /&gt;'------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;Public Function ShowOpen(ByVal strDir As String, ByVal strFilter As String, ByVal strTitle As String) As String&lt;br /&gt;&lt;br /&gt;    Dim strTemp As String&lt;br /&gt;    Dim udtStruct As OPENFILENAME&lt;br /&gt;&lt;br /&gt;    With udtStruct&lt;br /&gt;        .lStructSize = LenB(udtStruct)&lt;br /&gt;        'Use our private variable&lt;br /&gt;        .hwndOwner = lngHwnd&lt;br /&gt;        'Use our private variable&lt;br /&gt;        .lpstrFilter = strFilter&lt;br /&gt;        .lpstrFile = Space$(254)&lt;br /&gt;        .nMaxFile = 255&lt;br /&gt;        .lpstrFileTitle = Space$(254)&lt;br /&gt;        .nMaxFileTitle = 255&lt;br /&gt;        'Use our private variable&lt;br /&gt;        .lpstrInitialDir = strDir&lt;br /&gt;        'Use our private variable&lt;br /&gt;        .lpstrTitle = strTitle&lt;br /&gt;        ' udtStruct.lpstrCustomFilter = &quot;*.*&quot;&lt;br /&gt;        'Ok, here we test our booleans to&lt;br /&gt;        'set the flag&lt;br /&gt;    End With&lt;br /&gt;&lt;br /&gt;    If blnHideReadOnly And blnAllowMulti And blnMustExist Then&lt;br /&gt;        udtStruct.flags = OFN_HIDEREADONLY Or _&lt;br /&gt;        OFN_ALLOWMULTISELECT Or OFN_EXPLORER Or OFN_FILEMUSTEXIST&lt;br /&gt;    ElseIf blnHideReadOnly And blnAllowMulti Then&lt;br /&gt;        udtStruct.flags = OFN_ALLOWMULTISELECT _&lt;br /&gt;        Or OFN_EXPLORER Or OFN_HIDEREADONLY&lt;br /&gt;    ElseIf blnHideReadOnly And blnMustExist Then&lt;br /&gt;        udtStruct.flags = OFN_HIDEREADONLY Or OFN_FILEMUSTEXIST&lt;br /&gt;    ElseIf blnAllowMulti And blnMustExist Then&lt;br /&gt;        udtStruct.flags = OFN_ALLOWMULTISELECT Or _&lt;br /&gt;        OFN_EXPLORER Or OFN_FILEMUSTEXIST&lt;br /&gt;    ElseIf blnHideReadOnly Then&lt;br /&gt;        udtStruct.flags = OFN_HIDEREADONLY&lt;br /&gt;    ElseIf blnAllowMulti Then&lt;br /&gt;        udtStruct.flags = OFN_ALLOWMULTISELECT _&lt;br /&gt;        Or OFN_EXPLORER&lt;br /&gt;    ElseIf blnMustExist Then&lt;br /&gt;        udtStruct.flags = OFN_FILEMUSTEXIST&lt;br /&gt;    End If&lt;br /&gt;&lt;br /&gt;    If GetOpenFileName(udtStruct) Then&lt;br /&gt;        strTemp = (Trim(udtStruct.lpstrFile))&lt;br /&gt;        ShowOpen = Mid(strTemp, 1, Len(strTemp) - 1)&lt;br /&gt;    End If&lt;br /&gt;&lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;Public Function ShowSave(ByVal strDir As String, ByVal strFilter, ByVal strTitle) As String&lt;br /&gt;&lt;br /&gt;    Dim strTemp As String&lt;br /&gt;    Dim udtStruct As OPENFILENAME&lt;br /&gt;    udtStruct.lStructSize = LenB(udtStruct)&lt;br /&gt;    'Use our private variable&lt;br /&gt;    udtStruct.hwndOwner = lngHwnd&lt;br /&gt;    'Use our private variable&lt;br /&gt;    udtStruct.lpstrFilter = strFilter&lt;br /&gt;    udtStruct.lpstrFile = Space$(254)&lt;br /&gt;    udtStruct.nMaxFile = 255&lt;br /&gt;    udtStruct.lpstrFileTitle = Space$(254)&lt;br /&gt;    udtStruct.nMaxFileTitle = 255&lt;br /&gt;    'Use our private variable&lt;br /&gt;    udtStruct.lpstrInitialDir = strDir&lt;br /&gt;    'Use our private variable&lt;br /&gt;    udtStruct.lpstrTitle = strTitle&lt;br /&gt;    If blnMustExist Then&lt;br /&gt;        udtStruct.flags = OFN_FILEMUSTEXIST&lt;br /&gt;    End If&lt;br /&gt;&lt;br /&gt;    If GetSaveFileName(udtStruct) Then&lt;br /&gt;        strTemp = (Trim(udtStruct.lpstrFile))&lt;br /&gt;        ShowSave = Mid(strTemp, 1, Len(strTemp) - 1)&lt;br /&gt;    End If&lt;br /&gt;&lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;Public Sub Spec_Open()&lt;br /&gt;Dim Filter As String&lt;br /&gt;Dim InitialDir As String&lt;br /&gt;Dim DialogTitle As String&lt;br /&gt;Dim OutputStr As String&lt;br /&gt;Dim Idcode As String&lt;br /&gt;&lt;br /&gt;Filter = &quot;Excel Workbook (*.xlsx)&quot; + Chr$(0) + &quot;*.xlsx&quot; + Chr$(0) + _&lt;br /&gt;&quot;All Files (*.*)&quot; + Chr$(0) + &quot;*.*&quot; + Chr$(0)&lt;br /&gt;InitialDir = &quot;c:\&quot;&lt;br /&gt;DialogTitle = &quot;Open a Settings file&quot;&lt;br /&gt;OutputStr = ShowOpen(InitialDir, Filter, DialogTitle)&lt;br /&gt;&lt;br /&gt;If OutputStr = &quot;&quot; Then&lt;br /&gt;MsgBox &quot;Файл не выбран&quot;&lt;br /&gt;End If&lt;br /&gt;&lt;br /&gt;MsgBox OutputStr&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Public Sub Spec_Save()&lt;br /&gt;Dim Filter As String&lt;br /&gt;Dim InitialDir As String&lt;br /&gt;Dim DialogTitle As String&lt;br /&gt;Dim OutputStr As String&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;'Set objFile = New FileDialogs&lt;br /&gt;Filter = &quot;Drawing Files (*.dwg)&quot; + Chr$(0) + &quot;*.dwg&quot; + Chr$(0) + _&lt;br /&gt;&quot;All Files (*.*)&quot; + Chr$(0) + &quot;*.*&quot; + Chr$(0)&lt;br /&gt;InitialDir = &quot;c:\&quot;&lt;br /&gt;DialogTitle = &quot;Save a Settings file&quot;&lt;br /&gt;OutputStr = ShowSave(InitialDir, Filter, DialogTitle)&lt;br /&gt;MsgBox OutputStr&lt;br /&gt;End Sub&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>Штриховка без площади</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2100452</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2100452</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=27594&quot;&gt;Sanmart&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 07 Aug 2025 11:30 (GMT + 4)&lt;p&gt;Я часто работаю со штриховками с целью подсчёта площадей. Чтобы получить корректные данные, сначала обвожу &lt;b&gt;&lt;em&gt;замкнутыми&lt;/em&gt;&lt;/b&gt; полилиниями интересующие фрагменты, затем по этим полилиниям делаю штриховки и извлекаю данные. Так вот, если замкнутая полилиния пересекает саму себя, площадь штриховки не вычисляется. Есть ещё ряд ситуаций, когда площадь не отображается (например, если полилиния не замкнута). Чтобы избежать ошибок, я набросал в Excel'е макрос, который проверяет штриховки на нулевую площадь.</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>Программа очистки памяти автокад 2010 от притививов</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2099872</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2099872</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=246&quot;&gt;ssn&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 24 Jul 2025 15:36 (GMT + 4)&lt;p&gt;ну можно конечно попробовать. вставить как внешнюю ссылку и потом взорвать.&lt;br /&gt;но сам по себе факт.. откуда это всё накатывает...</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>Преобразование текста и линий в мультивыноски (чохом)</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2099852</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2099852</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=246&quot;&gt;ssn&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 24 Jul 2025 11:31 (GMT + 4)&lt;p&gt;По моему запросу когда то писался вот такой лисп.&lt;br /&gt;Что он делает.&lt;br /&gt;В программе Автодеск Инвентор нет возможности настроить нормальные выноски в два этажа.&lt;br /&gt;По этому, в автокаде приходилось править эти выноски. Выноски состояли из двух дуг, двух текстов и двух линий. Приложил картинку.&lt;br /&gt;Лисп преобразует эти выноски в мультивыноску в два яруса. Работает пакетно. Мне очень помогает.&lt;br /&gt;Понимаю, сам по себе лисп очень индивидуален, но возможно поможет понять, что и как делается&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Код:&lt;/strong&gt;&lt;font color=&quot;#008000&quot;&gt;&lt;div style=&quot;padding-left: 50px;&quot;&gt;[LISP] ;******************************************************&lt;br /&gt; ;PSW - 2015  E-mail homepsw@gmail.com&lt;br /&gt; ;******************************************************&lt;br /&gt;(defun C:PSW  (/ A1 A2 CENTR DD DUGA ED EN I J KL LAY M1&lt;br /&gt;	       M2 N N1 N2 NNN OBJ P1 P2 POINT RAD SLOY SS&lt;br /&gt;	       SSSS T1 T2 TE1 TE2 U1 U2 W1 W2 OLD CEN DIS SER)&lt;br /&gt; ;******************************************************&lt;br /&gt;(vl-load-com)    &lt;br /&gt; (setq Old (getvar &quot;OsMode&quot;))&lt;br /&gt; (Setvar &quot;CMDECHO&quot; 0)&lt;br /&gt; (setvar &quot;CLAYER&quot; &quot;Обозначение (ISO)&quot;)&lt;br /&gt;   (prompt &quot;\nВыберите рамкой объекты: &quot;)&lt;br /&gt;	(setq SSSS (ssget))&lt;br /&gt;(if (= SSSS Nil) (progn (alert &quot;Нет дуг на слое &lt;Обозначение (ISO)&gt; для обработки выносок!&quot;) (exit))) ; если объектов нет завершаем работу&lt;br /&gt;    (setq NNN (sslength SSSS))&lt;br /&gt; ;*************************************************&lt;br /&gt;(setvar &quot;CLAYER&quot; &quot;Обозначение (ISO)&quot;) ; слой должен существовать  &lt;br /&gt;    (setq j 0)&lt;br /&gt;    (setq KL 0)&lt;br /&gt;    (repeat NNN ; Цикл по всем выбранным дугам&lt;br /&gt;        (setq A1 (ssname SSSS j))&lt;br /&gt;        (setq j (+ 1 j))&lt;br /&gt;        (setq A2 (entget A1))&lt;br /&gt;        (setq Duga  (cdr (assoc 0 A2))) ;  дуга&lt;br /&gt;        (setq Sloy  (cdr (assoc 8 A2))) ;  дуга&lt;br /&gt;      &lt;br /&gt;(if (and (= DUGA &quot;ARC&quot;) (= Sloy   &quot;Обозначение (ISO)&quot;) )&lt;br /&gt;  (progn&lt;br /&gt;        (setq Rad   (cdr (assoc 40 A2))) ; Радиус&lt;br /&gt;        (setq Centr (cdr (assoc 10 A2))) ; центр дуги&lt;br /&gt;        (setq U1    (cdr (assoc 50 A2))) ; угол 1&lt;br /&gt;        (setq U2    (cdr (assoc 51 A2))) ; угол 2&lt;br /&gt;     (if (&gt; U1 U2)&lt;br /&gt;	(progn&lt;br /&gt;        (setq W1    (polar Centr 3.92699  (* (sqrt 2.0) Rad)))&lt;br /&gt;        (setq W2    (polar Centr 0.785398 (* (sqrt 2.0) RAd)))&lt;br /&gt;      ;(command &quot;_LINE&quot; (list 0.0 0.0 0.0) W2 &quot;&quot;)&lt;br /&gt;  ;(command &quot;_ZOOM&quot; &quot;_ALL&quot;)	&lt;br /&gt;   (setq SS (ssget &quot;_C&quot; W1 W2))&lt;br /&gt;;;;;;;;;;	(command &quot;__rectang&quot; W1 W2 )&lt;br /&gt;	;(command &quot;_ZOOM&quot; &quot;О&quot; SS &quot;&quot;)&lt;br /&gt;	;(command &quot;_REGEN&quot; )&lt;br /&gt;;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  &lt;br /&gt;;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  &lt;br /&gt;;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  &lt;br /&gt;;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  &lt;br /&gt;   (setq N (sslength SS))&lt;br /&gt;        (setq I 0)&lt;br /&gt;    (setq Te1 &quot; &quot;)&lt;br /&gt;    (setq Te2 &quot; &quot;)&lt;br /&gt;    (Repeat N&lt;br /&gt;	(setq EN (ssname SS I))&lt;br /&gt;        (setq ED (entget EN))&lt;br /&gt;    	(setq Obj (cdr (assoc 0 ED)))&lt;br /&gt;    	(setq LAY (cdr (assoc 8 ED)))&lt;br /&gt;        (setq Point (cdr (assoc 10 ED)))&lt;br /&gt;                ;********************************************************&lt;br /&gt;		(if (= Obj &quot;ARC&quot;)&lt;br /&gt;		  (progn&lt;br /&gt;		            (setq CEN (cdr (assoc 10 ED))) ; центр дуги&lt;br /&gt;        		    (setq SER (seredina W1 W2))&lt;br /&gt;		            (setq Dis (distance Ser Point))&lt;br /&gt;        	            (setq Rad (cdr (assoc 40 ED))) ; Радиус&lt;br /&gt;	&lt;br /&gt;		  	(if (&lt; DIS RAD) (entdel en))&lt;br /&gt;		  ))&lt;br /&gt;      		;********************************************************&lt;br /&gt;      		(if (and (= Obj &quot;LINE&quot;) (= LAY &quot;Обозначение (ISO)&quot;)) (progn&lt;br /&gt;		  (setq T1 (cdr (assoc 10 ED)))&lt;br /&gt;		  (setq T2 (cdr (assoc 11 ED)))&lt;br /&gt;		  	(if ( = (cadr T1) (cadr T2)) (setq P1 T1 P2 T2))&lt;br /&gt;		        (if (/= (cadr T1) (cadr T2)) (setq N1 T1 N2 T2))&lt;br /&gt;		  	(entdel en)&lt;br /&gt;		      ))&lt;br /&gt;                 ;********************************************************&lt;br /&gt;		(if (and (= Obj &quot;MTEXT&quot;)(= LAY &quot;Обозначение (ISO)&quot;) (&gt; (cadr Point) (cadr Centr)))&lt;br /&gt;		  (setq TE1 (cdr (assoc 1 ED))))&lt;br /&gt;		(if (and (= Obj &quot;MTEXT&quot;)(= LAY &quot;Обозначение (ISO)&quot;) (&lt; (cadr Point) (cadr Centr)))&lt;br /&gt;		  (setq TE2 (cdr (assoc 1 ED))))&lt;br /&gt;&lt;br /&gt;                (if (= Obj &quot;MTEXT&quot;) (entdel en))&lt;br /&gt;        (setq i (+ i 1))&lt;br /&gt;    ); REPEAT&lt;br /&gt;  ;########################################################################&lt;br /&gt;  (setq dd 0.0)&lt;br /&gt;  	(if (&gt; (distance P1 N1) dd ) (setq dd (distance P1 N1) M1 N1 M2 P2))&lt;br /&gt;        (if (&gt; (distance P2 N1) dd ) (setq dd (distance P2 N1) M1 N1 M2 P1))&lt;br /&gt;  	(if (&gt; (distance P1 N2) dd ) (setq dd (distance P1 N2) M1 N2 M2 P2))&lt;br /&gt;        (if (&gt; (distance P2 N2) dd ) (setq dd (distance P1 N2) M1 N2 M2 P1))&lt;br /&gt;	(Setvar &quot;OsMode&quot; 0)&lt;br /&gt;  (command &quot;_MLEADER&quot; M1 M2 (strcat TE1 &quot;\n&quot; TE2) )&lt;br /&gt;	    (setq b (vlax-ename-&gt;vla-object (entlast)))&lt;br /&gt;            (vlax-put-property b   'TextJustify  2)&lt;br /&gt;(Setvar &quot;OsMode&quot; Old)&lt;br /&gt;&lt;br /&gt;;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  &lt;br /&gt;;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  &lt;br /&gt;;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;	)); if (&gt; U1 U2)&lt;br /&gt;    ))&lt;br /&gt;); REPEAT NNN&lt;br /&gt;&lt;br /&gt;  (Setvar &quot;OsMode&quot; Old)&lt;br /&gt;     (SetVar &quot;FILEDIA&quot; 1) (princ)&lt;br /&gt; ) ; END DEFUN&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; ;************************************************************************&lt;br /&gt; ; Функция возвращает: Точку середины отрезка Т1 Т2&lt;br /&gt; ; Параметр  - точки Т1 Т2&lt;br /&gt; ;************************************************************************&lt;br /&gt;(defun SEREDINA (TE1 TE2 / _AA _DX _DY _DZ)&lt;br /&gt;    (setq _DX (/ (+ (car TE1) (car TE2)) 2.0))&lt;br /&gt;    (setq _DY (/ (+ (cadr TE1) (cadr TE2)) 2.0))&lt;br /&gt;    (setq _DZ 0.0)&lt;br /&gt;    (if (and (/= (caddr TE1) NIL) (/= (caddr TE2) NIL))&lt;br /&gt;        (progn&lt;br /&gt;            (setq _DZ (/ (+ (caddr TE1) (caddr TE2)) 2.0))&lt;br /&gt;        )&lt;br /&gt;    )&lt;br /&gt;    (setq _AA (list _DX _DY _DZ))&lt;br /&gt;) ;END DEFUN&lt;br /&gt; ;************************************************************************&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[/LISP]&lt;/font&gt;&lt;/div&gt;</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>Создание одной команды, объединяющей несколько команд</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2098772</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2098772</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=167662&quot;&gt;Evleos&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 02 Jul 2025 23:22 (GMT + 4)&lt;p&gt;Доброго времени суток.&lt;br /&gt;Встала задача:&lt;br /&gt;Необходимо спроецировать разные стороны 3D объекта на плоскость чертежа путем минимального количества действий.&lt;br /&gt;Что-то вроде аналога ПЛОСКИЙ СНИМОК, но с учетом того, что спроецировать нужно одновременно несколько сторон.&lt;br /&gt;Решение вроде бы найдено. Достигается следующим образом: &lt;br /&gt;1)ИМПОРТ - импортирую файл stp на поле чертежа, &lt;br /&gt;2)ВИДБАЗ  - проецирую несколько видов на новый лист и этой же командой выбираю тип отображения (с внутренними линиями/без внутренних линий; масштаб и т.д.) создав необходимые типы видов &lt;br /&gt;3)на новообразованном листе с этими видами применяю команду  ЭКСПОРТВЭЛИСТА и сохраняю получившиеся виды отдельными блоками в новом файле.&lt;br /&gt;Решил сделать макрос или команду чтобы реализовать все это одним действием, но в итоге получается создать лишь макрос путем ЗАПИСЬ который включает в себя лишь команду ВИДБАЗ.&lt;br /&gt;Попытался реализовать это через команду которая включает 2 элемента: 1)полученный ЗАПИСЬю макрос 2)команда ЭКСПОРТВЭЛИСТА. Но ничего не выходит, макрос воспроизводится вторая команда нет, перепробовал элементы указанные в большинстве статей в интернете по типу \(ожидание ввода) ;(разделение команд) и др. но увязать все это ни как не могу.&lt;br /&gt;Прошу подсказать как можно увязать ИМПОРТ затем макрос с ВИДБАЗ и ЭКСПОРТВЭЛИСТА в одной команде или в одном макросе.&lt;br /&gt;См вложения.&lt;br /&gt;(Для запуска макроса подойдет любой объект формата stp/step, для упрощения прилагаю произвольную step модель из открытого доступа)&lt;br /&gt;(При запуске макроса в качестве объекта нажать на модель и ENTER)&lt;br /&gt;Заранее спасибо.</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>Не обновляется файл acad.pgp 2014</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2098015</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2098015</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=61&quot;&gt;Dima&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 15 Jun 2025 16:19 (GMT + 4)&lt;p&gt;&lt;div style=&quot;padding-left: 50px;&quot;&gt;&lt;p&gt;&lt;b&gt;Кулик Алексей aka kpblc :&lt;/b&gt;&lt;br /&gt;Насколько я помню, языковые пакеты и для АА существовали. Сейчас виртуалки с акадом запущенной нет, но вроде бы там можно найти acad.pgp:&lt;br /&gt;(findfile &quot;acad.pgp&quot;)&lt;br /&gt;Может, ты правишь не тот файл ;) И я не помню, там в локализованных ACAD'ах была какая-то засада с командами.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;я уже их все перепробовал, так же Express и встроенный в Архитектуру модуль редактирует эти файлы из программы. по ейже прописанным путям</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>Макрос. Расчленяет и очищает чертеж, работет выборочно, в чем проблема ?</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2098011</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2098011</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=10258&quot;&gt;tommy_69&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 15 Jun 2025 15:03 (GMT + 4)&lt;p&gt;Доброго дня коллеги !&lt;br /&gt;&lt;br /&gt;Написал макрос&lt;br /&gt;&lt;br /&gt;&lt;b&gt;^C^C_-LAYER;_LOCK;Lock;;_QAFLAGS;5;_explode;_all;;_explode;_all;;_ai_selall; МАСШТАБ 0,0 о;\\\_ai_selall;overkill;QAFLAGS;0;_-LAYER;_UNLOCK;Lock;;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;- Блокируем слой &quot;Lock&quot;&lt;br /&gt;- 2 раза расчленяем все объекты&lt;br /&gt;- Масштабируем через опорный отрезок&lt;br /&gt;- Очищаем повторения&lt;br /&gt;- Разблокируем слой &quot;Lock&quot;&lt;br /&gt;&lt;br /&gt;Задача: импортировать пдф, почистить и отмасштабировать для дальнейшей работы.&lt;br /&gt;&lt;br /&gt;Проблема что работает не на всех чертежах, периодически пишет:&lt;br /&gt;&lt;br /&gt;[COLOR=&quot;RoyalBlue&quot;]Не находятся в текущем пространстве: 371.&lt;br /&gt;Не могут быть расчленены: 425.&lt;br /&gt;Выберите объекты:&lt;br /&gt;Ничего не найдено.[/COLOR]&lt;br /&gt;&lt;br /&gt;При этом, если вставить в тот же чертеж импорт из пдф, - начинает работать нормально, в чем может быть дело ?&lt;br /&gt;&lt;br /&gt;Пробовал писать этот макрос через lisp, но когда при импорте пдф на черетеже оказывается порядка 100т объектов, автокад задумывается на очень долго&lt;br /&gt;&lt;br /&gt;Для примера два файла, в одном макрос работает, в другом нет, и при вставки объектов из одно в другой, все работает :eek::eek::eek:&lt;br /&gt;&lt;br /&gt;Пожалуйста помогите понять разницу :facepalm:</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>Автоматизация FLATSHOT и эмуляция нажатия клавиш</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2097483</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2097483</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=163916&quot;&gt;Nik1598&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 03 Jun 2025 13:55 (GMT + 4)&lt;p&gt;&lt;div style=&quot;padding-left: 50px;&quot;&gt;&lt;p&gt;&lt;b&gt;AlexKniga :&lt;/b&gt;&lt;br /&gt;&lt;a href=&quot;https://learn.microsoft.com/ru-ru/windows/win32/wintouch/sendmessage--postmessage--and-related-functions&quot;&gt;learn.microsoft.com/ru-ru/windows/win32/wintouch/sendmessage--postmessage--and-related-functions&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Спасибо за совет, я таки смог преодолеть эту проблему, правда с помощью другой команды, код таков.&lt;br /&gt;&lt;br /&gt;Sub Prob()&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;'проекция&lt;br /&gt;ThisDrawing.Application.ZoomScaled 0.5, acZoomScaledRelative ' уменьшение масштаба, иначе косячит&lt;br /&gt;&lt;br /&gt;Call Ent 'вызов нажатия enter&lt;br /&gt;ThisDrawing.SendCommand (&quot;_flatshot&quot; &amp; vbCr &amp; &quot;Р&quot; &amp; vbCr &amp; &quot;Да&quot; &amp; vbCr &amp; &quot;0,0,0&quot; &amp; vbCr &amp; &quot;1&quot; &amp; vbCr &amp; &quot;1&quot; &amp; vbCr &amp; &quot;0&quot; &amp; vbCr) &amp; vbCr 'плоский снимок&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Sub Ent()&lt;br /&gt;&lt;br /&gt;'нажатие enter для плоского снимка&lt;br /&gt;SendKeys &quot;{ENTER}&quot;&lt;br /&gt;&lt;br /&gt;End Sub</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>Передать в команду _updatefield набор примитивов (SelectionSets)</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2094872</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2094872</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=3607&quot;&gt;Автон&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 21 Apr 2025 11:18 (GMT + 4)&lt;p&gt;Или не выходя из VBA&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Код:&lt;/strong&gt;&lt;font color=&quot;#008000&quot;&gt;&lt;div style=&quot;padding-left: 50px;&quot;&gt;&lt;br /&gt;&lt;br /&gt;objSelSet.SelectOnScreen dxfCode, dxfValue ' выделяем объекты&lt;br /&gt;&lt;br /&gt;&lt;b&gt;ThisDrawing.SendCommand &quot;(sssetfirst nil (ssget &quot; &amp; Chr(34) &amp; &quot;_P&quot; &amp; Chr(34) &amp; &quot;)) &quot;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;ThisDrawing.SendCommand &quot;_updatefield&quot; &amp; vbCr&lt;/font&gt;&lt;/div&gt;</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>Набор для печати из шаблона</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2094725</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2094725</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=7551&quot;&gt;Serghei&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 17 Apr 2025 16:20 (GMT + 4)&lt;p&gt;Может есть вариант без лиспа обойтись, через сценарий?&lt;br /&gt;У меня такой сценарий, но он не закончен.&lt;br /&gt;_psetupin&lt;br /&gt;&quot;j:\1.dwg&quot;&lt;br /&gt;A2&lt;br /&gt;_-layout&lt;br /&gt;_Set&lt;br /&gt;Layout1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Далее мне нужно применить этот набор А2 к листу. Но как? Какой командой?</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>VBA. Как выделить ячейку таблицы?</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2093799</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2093799</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=22305&quot;&gt;МишаИнженер&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 06 Apr 2025 09:33 (GMT + 4)&lt;p&gt;Метод GetEntity позволяет выбрать объект чертежа. Вот небольшая функция для работы с этим методом:&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Код:&lt;/strong&gt;&lt;font color=&quot;#008000&quot;&gt;&lt;div style=&quot;padding-left: 50px;&quot;&gt;Public Function ПолучитьОбъектСЧертежа(objAcadDoc As AcadDocument, strСообщение As String, _&lt;br /&gt;Optional bВнутрОбрОшибок As Boolean = False) As Variant&lt;br /&gt;'Функция получает объект с чертежа и возвращает его в качестве ответа&lt;br /&gt;Dim objОбъект As Object&lt;br /&gt;Dim vНачТочка As Variant&lt;br /&gt;If bВнутрОбрОшибок = True Then On Error Resume Next&lt;br /&gt;ПолучитьОбъект:&lt;br /&gt;   Call ПоказатьAutoCAD(objAcadDoc)&lt;br /&gt;   Call objAcadDoc.Utility.GetEntity(objОбъект, vНачТочка, strСообщение)&lt;br /&gt;   If Err.Number &lt;&gt; 0 Then&lt;br /&gt;      Call ПоказатьExcel(objAcadDoc)&lt;br /&gt;      glОтвет = MsgBox(&quot;Продолжать выполнение программы?&quot;, vbYesNo, gsНазваниеПрограммы)&lt;br /&gt;      Err.Clear&lt;br /&gt;      If glОтвет = vbYes Then&lt;br /&gt;         GoTo ПолучитьОбъект&lt;br /&gt;      Else&lt;br /&gt;         End&lt;br /&gt;      End If&lt;br /&gt;   End If&lt;br /&gt;   Set ПолучитьОбъектСЧертежа = objОбъект&lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;'Выделим таблицу&lt;br /&gt;ВыделитьТаблицу:&lt;br /&gt;   Set Объект = ПолучитьОбъектСЧертежа(objAcadDoc, &quot;Выдели таблицу:&quot;)&lt;br /&gt;   If Объект.ObjectName &lt;&gt; &quot;AcDbTable&quot; Then&lt;br /&gt;      glОтвет = MsgBox(&quot;Продолжать выделять таблицу?&quot;, vbYesNo)&lt;br /&gt;      If glОтвет = vbNo Then&lt;br /&gt;         End&lt;br /&gt;      End If&lt;br /&gt;      GoTo ВыделитьТаблицу&lt;br /&gt;   End If&lt;br /&gt;   Set objЯчейка = Объект&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;br /&gt;Когда надо выделить таблицу (указывать надо линии границ ячеек на чертеже) эта функция работает нормально.&lt;br /&gt;А вот когда надо выделить ячейку таблицы (на чертеже выделяется текст ячейки) эта функция выдает ошибку.&lt;br /&gt;Вообще я не нашел объекта ЯчейкаТаблицы (AcDbTableCell) и непонятно как на VBA выделять именно ячейку таблицы.&lt;br /&gt;Мне надо сделать функцию отображающую линиями ссылки формулы выделенной ячейки на ячейки других таблиц.&lt;br /&gt;Как мне в итоге получить доступ к интересующей меня ячейке?&lt;br /&gt;При выделении ячейки возникает ошибка, а при выделении таблицы надо еще добраться до заданной ячейки.&lt;br /&gt;Как выделить ячейку таблицы на VBA?</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>Помогите автоматизировать заполнение площади в атрибуте блока</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2092291</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2092291</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=169472&quot;&gt;Mita57&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 17 Mar 2025 14:51 (GMT + 4)&lt;p&gt;Здравствуйте. У меня есть простой динамический блок «площадь» в Autocade, который создавался для подсчета площадей полилинии через «поля». Хотелось бы как-нибудь автоматизировать этот процесс, а именно: &lt;br /&gt;Хотелось что бы при активации макроса, я мог выбрать нужную мне полилинию и автоматически бы вставился динамический блок «площадь» и в этом блоке бы заполнился атрибут «ПЛОЩАДЬ» через инструмент «поле» ( что бы если бы в дальнейшем изменились размеры полилинии то, площадь в блоке бы автоматически изменилась) и после запятой было бы 2 знака и значения бы были в метрах квадратных (умножены на коэф. 0.000001) &lt;br /&gt;Сейчас все, что я описал выше делаю руками, а хотелось бы автоматизировать этот процесс. Chat gpt, что-то не может мне помочь. Помогите Вы, пожалуйста.</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>Мои макрокоманды</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2092219</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2092219</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=64575&quot;&gt;gumel&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 16 Mar 2025 07:36 (GMT + 4)&lt;p&gt;Добрый день! &lt;br /&gt;Делаю макрос, который позволяет сохранять выбранные объекты в DXF файл:&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Код:&lt;/strong&gt;&lt;font color=&quot;#008000&quot;&gt;&lt;div style=&quot;padding-left: 50px;&quot;&gt;[LISP]^C^C+SAVEAS;F;R12;;O[/LISP]&lt;/font&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Макрос вполне хорошо работает, за исключением пары моментов:&lt;br /&gt;1. После выбора объектов команда спрашивает количество знаков после запятой &quot;decimal places of accuracy&quot;. Как прописать это значение в макросе?&lt;br /&gt;2. Приходится вводить имя файла :).&lt;br /&gt;&lt;br /&gt;Нет ли такой возможности, чтобы имя файла бралось из примитива (допустим из обычного текста)?&lt;br /&gt;&lt;br /&gt;Было бы прекрасно, когда пользователь выбирает объекты для экспорта в DXF, один из примитивов там будет текстом, и вот как раз значение этого текста будет именем файла.</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>Создание внешнего контура на основе выделенного набора примитивов</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2092118</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2092118</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=106034&quot;&gt;posetitel&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 13 Mar 2025 15:51 (GMT + 4)&lt;p&gt;Подниму тему.&lt;br /&gt;Уважаемый VAA, могли бы откорректировать код из сообщения #17 в части алгоритма поиска ближайшей точки. Сейчас, как я понял, сначала строится внешний прямоугольник, потом бегунок с указанным шагом проходит по этому прямоугольнику и ищет ближайшую точку на объекте. Хотелось бы, чтобы ближайшая точка находилась не по геометрическому расстоянию до выбранных примитивов, а чтобы от вертикальной грани внешнего прямоугольника проводилась горизонталь до примитивов и в месте пересечения образовывалась точка, а для горизонтальной грани внешнего прямоугольника опускалась (или соответственно поднималась) вертикаль до ближайшего из выбранных примитивов и в месте пересечения образовывалась точка, а потом эти точки соединялись в поверхность. &lt;br /&gt;(на всякий случай прилагаю иллюстрацию: белая линия - это произвольный примитив, контур которого должен получиться, красным выделено то, какой контур должен получиться, зеленое - это линии внутри алгоритма, которые ищут ближайшие расстояния, голубой - это просто внешний контур)&lt;br /&gt;Так, как сейчас работает алгоритм, на примитивах с уклоном и выступами по уклону программа часто рисует контур некорректно, Над выступом остается много неохваченных областей.</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>VBA. Как установить Мировую Систему Координат?</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2092113</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2092113</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=22305&quot;&gt;МишаИнженер&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 13 Mar 2025 14:35 (GMT + 4)&lt;p&gt;Вот так работает:&lt;br /&gt;ThisDrawing.SendCommand &quot;_.ucs _w&quot; &amp; vbCr</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>Выравнивание полилинии в одну линию.</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2092112</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2092112</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=131970&quot;&gt;1958&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 13 Mar 2025 14:04 (GMT + 4)&lt;p&gt;&lt;div style=&quot;padding-left: 50px;&quot;&gt;&lt;p&gt;&lt;b&gt;Цитата :&lt;/b&gt;&lt;br /&gt;Ещё одно поже6лание - возможность выбора начальной и конечной точек на исходной полилинии. Чтобы развертка рисовалась не для всей линии, а в заданном диапазоне.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Строго не судите, но что-то у меня получилось. :)&lt;br /&gt;Правда выбираются только пересекаемые объекты. :(</description>  
		<category>Программирование</category> 
		</item>
		<item>
		<title>Open DCL и перевод его на родной язык.</title> 
		<link>https://forum.dwg.ru/showthread.php?p=2091842</link> 
		<guid>https://forum.dwg.ru/showthread.php?p=2091842</guid>
		<description>Автор: &lt;a href=&quot;https://forum.dwg.ru/member.php?u=108589&quot;&gt;tujn08&lt;/a&gt;&lt;br&gt;&lt;br&gt;Добавлено: 08 Mar 2025 18:32 (GMT + 4)&lt;p&gt;Подскажите как выполнить логику:&lt;br /&gt;1) закрыть модальный диалог с даннымив таблице&lt;br /&gt;2) выбрать новые данные&lt;br /&gt;3) вернуть диалог и докинуть данные в таблицу?&lt;br /&gt;&lt;br /&gt;п.3 не удается - в чем секрет не понятно.&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Код:&lt;/strong&gt;&lt;font color=&quot;#008000&quot;&gt;&lt;div style=&quot;padding-left: 50px;&quot;&gt;[LISP]&lt;br /&gt;(defun c:Untitled2/Dcl-2/TB2#OnClicked (/) ; добавить&lt;br /&gt;(dcl-Form-Close Untitled2/Dcl-2)&lt;br /&gt;(step1) ; обновление vl_list - выбор в чертеже&lt;br /&gt;(dcl-Form-IsActive Untitled2/Dcl-2)&lt;br /&gt;(dcl-Form-Show Untitled2/Dcl-2)&lt;br /&gt;)&lt;br /&gt;[/LISP]&lt;/font&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;диалог моргнул и всё. А если вручную вбить (dcl-Form-Show Untitled2/Dcl-2), то появляется с нужными данными.&lt;br /&gt;&lt;br /&gt;подозрение, что внутри тела кнопки невозможно вывать диалог в котором эта кнопка.&lt;br /&gt;&lt;br /&gt;похоже надо как и в DCL все завернуть в  while  и cond , а кнопками менять шаги.&lt;br /&gt;&lt;br /&gt;Правильно мыслю же?</description>  
		<category>Программирование</category> 
		</item>
		
		</channel>
		</rss>
		