EdwardSt Posted November 3, 2021 Report Share Posted November 3, 2021 36 минут назад, aerohost сказал: Групповые коды DXF 90 поставить на 2( скрыть фон), потом поставить DXF 90 поставить на 3 ( показать фон) то все работает все не так. Спойлер Quote Link to comment Share on other sites More sharing options...
aerohost Posted November 3, 2021 Author Report Share Posted November 3, 2021 (edited) 48 минут назад, EdwardSt сказал: все не так. Фрагмент справки (Показать контент) Приложенная картинка не совпадает с фактом, проверено научным тыком. Возможно ошибаюсь. Из опыта 0 - отключает фон и как я понял затирает dfx 90 ,не даёт потом использовать 1,2,3 . 1 - делает фон по цвету. 2-отключает фон(даёт использовать 1,3,2) 3- фон по чертежу Edited November 3, 2021 by aerohost 1 Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted November 3, 2021 Report Share Posted November 3, 2021 2 минуты назад, aerohost сказал: Приложенная картинка не совпадает с фактом, проверено научным тыком. Возможно ошибаюсь. Из опыта 0 - отключает фон и как я понял затирает dfx 90 ,не даёт потом использовать 1,2,3 . 1 - делает фон по цвету. 2-отключает фон(даёт использовать 1,3,2) 3- фон по чертежу Если это так (я сам проверил только 0 - отключение фона, работает), то нужно тоже оформлять как баг. Значения должны соответствовать спецификациям DXF-кодов 3 Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted November 3, 2021 Report Share Posted November 3, 2021 1 час назад, aerohost сказал: Приложенная картинка не совпадает с фактом, ... Действительно, есть расхождение между справкой и практикой. Вопрос, конечно, интересный, можно ли справку считать спецификацией. Скорее всего, нет, поэтому претензии к разработчикам по этому вопросу можно считать несостоятельными. По конкретике выяснилось следующее: 1. DXF-группа 90 представляет собой битовую маску (где 1 бит - есть/нет фон, 2 бит - цвет фона/установленнй цвет, 5 бит(нет в справке совсем!) - наличие рамки вокруг текста Спойлер 0 (0х00) - нет фона 1 (0х01) - есть фон, цвет фона фиксированный и лежит в группе 63 2 (0х10) - нет фона, цвет фона равен цвету окна (бессмысленная комбинация, но ее можно дубиться действиями вручную) 3 (0х11) - есть фон, цвет фона равен цвету окна Если ко всем этим значениям приплюсовать 16 (0х10000) - взвести 5-й бит, то это означает все то же самое, но с рамкой вокруг блока текста 2. Если при каких-либо манипуляциях происходит сброс значения в 0, то эта DXF-группа 90 и связанные с ней 45, 63 и 421 из списка (entget ...) удаляются, что означает необходимость их формирования заново, если понадобится программно установить цвет заднего фона и/или рамку текста 3.При удалении DXF-группы 90 параметры 63, 45 (внимание!) именно для этого элемента где-то сохраняются, но не отображаются в списке (entget ...). Но при копировании этого элемента с отсутствующей группой 90 остальные параметры сбрасываются в некие дефолтные значения. Дополнительно отмечу, что все три замечания относятся и к AC, и к NC. На практике замечанием 3 лучше не пользоваться, т.к. ситуация трудно контролируемая. Лучше использование явных определений. Итого, в сухом остатке Спойлер (if (not (assoc 90 da)) (setq da (append da (list (cons 90 17); 17=16+1 - текст с рамкой и фиксированным цветом (cons 63 223);223 - индексированный цвет фона 223 (cons 45 1.5); масштаб фона 1.5 - здесь он равен дефолтному )))) Значения, понятно, необходимо менять на свои с использованием переменных 2 Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted November 3, 2021 Report Share Posted November 3, 2021 (edited) Попытался переписать функцию BounderyMText с применением входных параметров. В скрипте внес достаточно подробные комментарии, а также привел варианты вызова функции с различными параметрами. Запрос самих параметров и выбор объектов в данном скрипте не разбирался. Все возможные варианты параметра цвет разбирать не стал (на группу 421 забил). Просто предлагаю аккуратно использовать индексированные цвета 1-256. В остальном вроде все прозрачно. В АС не проверял, но тоже должно работать. Пользуйтесь BoundMText-ACNC.lsp Edited November 3, 2021 by EdwardSt 2 2 Quote Link to comment Share on other sites More sharing options...
A.Kudrjashov Posted November 4, 2021 Report Share Posted November 4, 2021 13 часов назад, EdwardSt сказал: Вопрос, конечно, интересный, можно ли справку считать спецификацией. Скорее всего, нет, поэтому претензии к разработчикам по этому вопросу можно считать несостоятельными. Справка - это, конечно, не спецификация. Но, документ, точно и корректно описывающий текущее состояние дел должен быть. Это может быть отсылка к стандартной Спецификации Autodesk или свой собственный документ, но исследования DXF и ему подобных структур "методом тыка" - не вариант. ИМХО. 2 Quote Link to comment Share on other sites More sharing options...
aerohost Posted November 4, 2021 Author Report Share Posted November 4, 2021 (edited) 13 часов назад, EdwardSt сказал: Попытался переписать функцию BounderyMText с применением входных параметров. В скрипте внес достаточно подробные комментарии, а также привел варианты вызова функции с различными параметрами. Запрос самих параметров и выбор объектов в данном скрипте не разбирался. Все возможные варианты параметра цвет разбирать не стал (на группу 421 забил). Просто предлагаю аккуратно использовать индексированные цвета 1-256. В остальном вроде все прозрачно. В АС не проверял, но тоже должно работать. Пользуйтесь BoundMText-ACNC.lsp 2 \u043a\u0411 · 2 загрузки Спасибо, но я вчера уже сделал в общем виде в консоле, с контуром, с различным фоном , вроде все работает. Так же сделал со скрытым параметром 1 группы 90, просто в начале, когда запустил лисп,надо ввести 1, а не "Да" эквивалент параметра 3 группы 90. Есть одно но, только цвет фона надо в самом файле менять надо(если использовать параметр 1), но мне надо или белый или цвет чертежа BoundMText.lsp Edited November 4, 2021 by aerohost Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted November 4, 2021 Report Share Posted November 4, 2021 13 часов назад, A.Kudrjashov сказал: документ, но исследования DXF и ему подобных структур "методом тыка" - не вариант. Но зачастую это единственно возможный вариант. Документирование разработок часто отстает от собственно разработок. Вот и приходится нащупывать границы функционала. И форум - неплохое место для обмена опытом таких исследований) Quote Link to comment Share on other sites More sharing options...
doctorraz Posted November 4, 2021 Report Share Posted November 4, 2021 (edited) 13 минут назад, EdwardSt сказал: Документирование разработок часто отстает от собственно разработок. Всегда отстает)) Даже у истинного кад куча недокументированных функций и некоторые документированные работают не так как заявлено. Нано с его почти нулевой документацией (кое что есть по мультикад, но это другими разработчиками сделано) Намного проще Edited November 4, 2021 by doctorraz 1 Quote Link to comment Share on other sites More sharing options...
aerohost Posted November 7, 2021 Author Report Share Posted November 7, 2021 В 03.11.2021 в 12:36, EdwardSt сказал: все не так. Фрагмент справки (Показать контент) А можете тыкнуть где найти эту справку, что то я искал, не нашел Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted November 8, 2021 Report Share Posted November 8, 2021 https://help.autodesk.com/view/ACD/2019/RUS/?guid=GUID-5E5DB93B-F8D3-4433-ADF7-E92E250D2BAB Quote Link to comment Share on other sites More sharing options...
aerohost Posted November 12, 2021 Author Report Share Posted November 12, 2021 В 03.11.2021 в 22:41, EdwardSt сказал: Попытался переписать функцию BounderyMText с применением входных параметров. В скрипте внес достаточно подробные комментарии, а также привел варианты вызова функции с различными параметрами. Запрос самих параметров и выбор объектов в данном скрипте не разбирался. Все возможные варианты параметра цвет разбирать не стал (на группу 421 забил). Просто предлагаю аккуратно использовать индексированные цвета 1-256. В остальном вроде все прозрачно. В АС не проверял, но тоже должно работать. Пользуйтесь BoundMText-ACNC.lsp 2 \u043a\u0411 · 5 загрузок А можно как то данный лисп применить к мульивыноски, что бы лисп делал такой же функционал.Я немного не понял какая группая dfx отвечает за фон для мультивыноски Quote Link to comment Share on other sites More sharing options...
Aleksei_Tihonov Posted November 12, 2021 Report Share Posted November 12, 2021 (edited) Прошу помочь разобраться с адоптацией лиспа Геокоординаты-xyz.lspподписыывающего мультивыноской координаты "х" и "у". Nanocad мультиливыноску рисует, в команднной строке, прописывает полученные координаты но не выводит. Edited November 12, 2021 by Aleksei_Tihonov Quote Link to comment Share on other sites More sharing options...
lidia.antipina.ru Posted November 12, 2021 Report Share Posted November 12, 2021 (edited) Дефект известный #25410, но пока не исправленный. Добавьте координаты в TEXT/MTEXT в группировке с выноской Edited November 12, 2021 by lidia.antipina.ru Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted November 12, 2021 Report Share Posted November 12, 2021 2 часа назад, aerohost сказал: Я немного не понял какая группая dfx отвечает за фон для мультивыноски Конкретно с выноской не разбирался. Спойлер ... Quote Link to comment Share on other sites More sharing options...
lidia.antipina.ru Posted November 12, 2021 Report Share Posted November 12, 2021 Выделите мультивыноску по (entget(car(entsel))) и посмотрите коды dxf, что там есть Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted November 12, 2021 Report Share Posted November 12, 2021 1 час назад, lidia.antipina.ru сказал: Выделите мультивыноску по (entget(car(entsel))) и посмотрите коды dxf, что там есть Сделал это еще до своего предыдущего поста Спойлер Команда: (setq a (car (entsel))) Выбор объектов 1 найдено #<Имя примитива: 0000019CACA85070> Команда: (entget a) ((-1 . #<Имя примитива: 0000019CACA85070>) (0 . "MULTILEADER") (5 . "562") (330 . #<Имя примитива: 0000019CF8BC8930>) (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 . "AcDbMLeader") (270 . 2) (300 . "CONTEXT_DATA{") (40 . 1.0) (10 -12562.0 35751.4 0.0) (41 . 4.0) (140 . 4.0) (145 . 2.0) (174 . 1) (175 . 1) (176 . 0) (177 . 0) (290 . 1) (304 . "мой текст") (11 0.0 0.0 1.0) (340 . #<Имя примитива: 0000019CF8BC8070>) (12 -12560.0 35753.4 0.0) (13 1.0 0.0 0.0) (42 . 0.0) (43 . 0.0) (44 . 0.0) (45 . 1.0) (170 . 1) (90 . -1056964608) (171 . 1) (172 . 1) (91 . -939524096) (141 . 1.5) (92 . 0) (291 . 0) (292 . 0) (173 . 0) (293 . 0) (142 . 0.0) (143 . 0.0) (294 . 0) (295 . 0) (296 . 0) (110 0.0 0.0 0.0) (111 1.0 0.0 0.0) (112 0.0 1.0 0.0) (297 . 0) (302 . "LEADER{") (290 . 1) (291 . 1) (10 -12570.0 35751.4 0.0) (11 1.0 0.0 0.0) (90 . 0) (40 . 8.0) (304 . "LEADER_LINE{") (10 -12578.1 35736.1 0.0) (91 . 0) (92 . -1056964608) (305 . "}") (304 . "LEADER_LINE{") (10 -12571.6 35723.4 0.0) (91 . 1) (92 . -1056964608) (305 . "}") (271 . 0) (303 . "}") (272 . 9) (273 . 9) (301 . "}") (340 . #<Имя примитива: 0000019CF8BC9B30>) (90 . 17107968) (170 . 1) (91 . -1056964608) (341 . #<Имя примитива: 0000019CF8BC82B0>) (171 . -2) (290 . 1) (291 . 1) (41 . 8.0) (42 . 4.0) (172 . 2) (343 . #<Имя примитива: 0000019CF8BC8070>) (173 . 1) (95 . 1) (174 . 1) (175 . 0) (92 . -1056964608) (292 . 0) (93 . -1056964608) (10 1.0 1.0 1.0) (43 . 0.0) (176 . 0) (293 . 0) (294 . 0) (178 . 0) (179 . 1) (45 . 1.0) (271 . 0) (272 . 9) (273 . 9) (295 . 0)) Довольно развесистая клюква. И почему цвет фона именно такой, как в выделенном фрагменте (а для красного фона он - (91 . -1023410175)) еще необходимо разбираться. Поэтому вопрос @aerohost достаточно заковырист Quote Link to comment Share on other sites More sharing options...
A.Kudrjashov Posted November 12, 2021 Report Share Posted November 12, 2021 (edited) 2 часа назад, EdwardSt сказал: И почему цвет фона именно такой, как в выделенном фрагменте (а для красного фона он - (91 . -1023410175)) еще необходимо разбираться. Там применяется какой то сложный индекс Спойлер Спойлер Спойлер ... но вот здесь описано, как можно работать с этими цветами, если я правильно понял вопрос.https://www.theswamp.org/index.php?topic=40944.0http://www.theswamp.org/index.php?topic=37313.msg454906#msg454906 Во всяком случае (princ (mleaderstylecolour->colour -1023410175)) возвращает 1.https://gohtx.com/acadcolors.php Edited November 12, 2021 by A.Kudrjashov Дополнения 1 Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted November 12, 2021 Report Share Posted November 12, 2021 1 час назад, A.Kudrjashov сказал: (2) (Показать контент) Битовая маска... А откуда инфа? Ссылочкой не поделитесь? Quote Link to comment Share on other sites More sharing options...
aerohost Posted November 12, 2021 Author Report Share Posted November 12, 2021 Спасибо, с данной информацией попробуем что нибудь наколбасить Quote Link to comment Share on other sites More sharing options...
A.Kudrjashov Posted November 15, 2021 Report Share Posted November 15, 2021 В 12.11.2021 в 18:18, EdwardSt сказал: Битовая маска... А откуда инфа? Ссылочкой не поделитесь? AutoCAD 2012 DXF Referencehttps://images.autodesk.com/adsk/files/autocad_2012_pdf_dxf-reference_enu.pdf Open Design Specification for .DWG files https://www.opendesign.com/files/guestdownloads/OpenDesign_Specification_for_.dwg_files.pdf 1 Quote Link to comment Share on other sites More sharing options...
Aleksei_Tihonov Posted November 16, 2021 Report Share Posted November 16, 2021 Уважаемые коллеги огромная просьба! А есть ли у кого нибудь полный набор функций лисп с расшифровкой, работающих на NanoCad? Сея драгоценность очень бы сократила время разработки приложений! Quote Link to comment Share on other sites More sharing options...
A.Kudrjashov Posted November 16, 2021 Report Share Posted November 16, 2021 (edited) 27 минут назад, Aleksei_Tihonov сказал: Уважаемые коллеги огромная просьба! А есть ли у кого нибудь полный набор функций лисп с расшифровкой, работающих на NanoCad? Сея драгоценность очень бы сократила время разработки приложений! Формально, есть два источника: 1. SDK Спойлер NC21_LISP_functions.txt 2. Опрос непосредственно в LISP. >(atoms-family 1)NC21_atoms-family.txt LISPDumpFile.lspLISPDumpFile_2020-10-08.lsp LspDumpFile.log ... но не факт, что всё будет работать также как у AutoCAD. Edited November 16, 2021 by A.Kudrjashov Дополнения 2 Quote Link to comment Share on other sites More sharing options...
lidia.antipina.ru Posted November 16, 2021 Report Share Posted November 16, 2021 1 час назад, Aleksei_Tihonov сказал: Уважаемые коллеги огромная просьба! А есть ли у кого нибудь полный набор функций лисп с расшифровкой, работающих на NanoCad? Сея драгоценность очень бы сократила время разработки приложений! В принципе большинство функций из справки AutoCAD 2017 и выше должно работать под nanoCAD 21. Вопрос в стиле программирования, интерпретации параметров из nano. Могут быть проблемы с копированием, заменой, подрезкой объектов, обработкой текстовых полей. До версии 21 придется закомментировать vla-startUndoMark, vla-endUndoMark. Не все атрибуты dcl реализованы, но их можно как правило обойти ввиду избыточности 2 Quote Link to comment Share on other sites More sharing options...
A.Kudrjashov Posted November 17, 2021 Report Share Posted November 17, 2021 (edited) 16 часов назад, lidia.antipina.ru сказал: В принципе большинство функций из справки AutoCAD 2017 и выше должно работать под nanoCAD 21. Вопрос в стиле программирования, интерпретации параметров из nano. Если бы всё было так просто. "Большинство функций" - категория сложно определяемая. Выше был приведён очень простой скрипт на LISP.LISPDumpFile_2020-10-08.lsp Ниже приводятся результаты его работы под: AutoCAD 2015 AC2015_LspDumpFile.log AutoCAD 2019AC2019_LspDumpFile.log nanoCAD 20.1 NC20_1_LspDumpFile.log nanoCAD 21.0 NC21_0_LspDumpFile.log А также приводится сводная таблица полученных взаимных соответствий. ACAD_NC_Func_Comparison.xlsx Общий свод.Как я понимаю, в NC21.0 осталось только то, что должно принципиально работать. Спойлер Сравнение по позициям.Как то так. Более подробно по позициям в файле. Спойлер P.S. Вот как то не очень верится, что "большинство функций AutoCAD должно работать". Но, можно проверять. Edited November 17, 2021 by A.Kudrjashov Дополнения 2 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.