Сообщество программистов Autodesk в СНГ

ADN Club => AutoLisp / VisualLISP и DCL => Тема начата: BearDyugin от 08-12-2015, 12:29:20

Название: Список штриховок , а лучше диалог их выбора.
Отправлено: BearDyugin от 08-12-2015, 12:29:20
Ни как не могу найти как их достать?
В табличных данных их нет :-(
Поиском в тырнете нашёл только старую тему http://www.caduser.ru/forum/index.php?PAGE_NAME=read&FID=23&TID=21476 но там все дружно поулыбались и ни чего не ответили.

Суть в чём, нужно как-то дать пользователю выбрать нужную ему штриховку. Опять же замечал, что на чужих(присланных) файлах, в списке штриховок есть пользовательские, но по факту описания их нет, и воспользоваться ими нельзя, чтоб такие сразу  отсечь.
Название: Re: Список штриховок , а лучше диалог их выбора.
Отправлено: Александр Ривилис от 08-12-2015, 13:26:22
В зависимости от состояния переменной MEASUREMENT (https://knowledge.autodesk.com/support/autocad/learn-explore/caas/CloudHelp/cloudhelp/2016/ENU/AutoCAD-Core/files/GUID-1D074C55-0B63-482E-8A37-A52AC0C7C8FE-htm.html) для поиска штриховок используются файлы acad.pat или acadiso.pat (при MEASUREMENT = 1)
В любом случае готового решения для AutoLISP/VisualLisp нет - разве что запускать команду HATCH, а потом анализировать значение системной переменной HPNAME (https://knowledge.autodesk.com/support/autocad/learn-explore/caas/CloudHelp/cloudhelp/2016/ENU/AutoCAD-Core/files/GUID-C562EB1D-239D-4AFC-BC77-48F174834EE5-htm.html)
Название: Re: Список штриховок , а лучше диалог их выбора.
Отправлено: Александр Ривилис от 08-12-2015, 13:35:37
Сразу добавлю, что документированного способа нет и в ObjectARX/.NET API. Есть пример недокументированного использования в .NET API: http://through-the-interface.typepad.com/through_the_interface/2007/03/showing_autocad.html
Название: Re: Список штриховок , а лучше диалог их выбора.
Отправлено: BearDyugin от 08-12-2015, 18:49:44
разве что запускать команду HATCH
решил пойти по этому пути, мне даже показалось так удобнее вызвать диалог штриховки, ведь кроме имени, там ещё много всяких свойств, таких как масштаб, угол и прочие. Но не тут то было  :-\
из командно строки всё хорошо, можно открыть диалог зайдя в seTtings
Цитировать
Command: HATCH
Pick internal point or [Select objects/seTtings]: _t
а вот из AutoLISP нет, там немного другие параметры
Цитировать
Command: _vlide HATCH
Enter a pattern name or [?/Solid/User defined/Gradient] <AR-BRSTD>:
как будто мы вызвали -HATCH и зашли в Properties
Цитировать
Command: -HATCH
Current hatch pattern:  AR-BRSTD
Specify internal point or [Properties/Select objects/draW boundary/remove Boundaries/Advanced/DRaw order/Origin/ANnotative/hatch COlor/LAyer/Transparency]: _p
Enter a pattern name or [?/Solid/User defined/Gradient] <AR-BRSTD>:
Название: Re: Список штриховок , а лучше диалог их выбора.
Отправлено: Александр Ривилис от 08-12-2015, 20:56:39
Обрати внимание:
Цитировать
Command: (command "HATCH")
HATCH
Enter a pattern name or [?/Solid/User defined/Gradient] <ANGLE>: nil
Enter a pattern name or [?/Solid/User defined/Gradient] <ANGLE>: *Cancel*
Цитировать
Command: (initdia)(command "HATCH")
HATCH
Pick internal point or [Select objects/Undo/seTtings]: nil
Pick internal point or [Select objects/Undo/seTtings]: *Cancel*