|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,826
|
to kpblc
Цитата:
Спасибо. to Лентяй Твой пост для Крыса? Если не только для него, то объясни шо с этим делать. Не все-ж такие умные. Код:
|
|||
|
||||
Project Engineer Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392
|
Цитата:
Код:
в смысле "утиль". Тогда будет ляпота, щастя и благорастворение воздУхов. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,843
|
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 12.02.2006
Сообщений: 114
|
Kpblc и Лентяй
Спасибо за ответ, но мне нужен доступ к FaceRecord и FaceVeertex ? Свойства: ; IAcadPolyfaceMesh: IAcadPolyfaceMesh Interface ; Property values: ; Application (RO) = #<VLA-OBJECT IAcadApplication 00d077b4> ; Coordinate = ...Indexed contents not shown... ; Coordinates = (9.0 10.0 0.0 8.2 10.0 0.0 ... ) ; Document (RO) = #<VLA-OBJECT IAcadDocument 0141ac48> ; Handle (RO) = "4C5" ; HasExtensionDictionary (RO) = 0 ; Hyperlinks (RO) = #<VLA-OBJECT IAcadHyperlinks 1284d2b4> ; Layer = "0" ; Linetype = "CONTINUOUS" ; LinetypeScale = 1.0 ; Lineweight = -1 ; Material = "ByLayer" ; NumberOfFaces (RO) = 112 ; NumberOfVertices (RO) = 130 ; ObjectID (RO) = 2130370280 ; ObjectName (RO) = "AcDbPolyFaceMesh" ; OwnerID (RO) = 2130369968 ; PlotStyleName = "ByLayer" ; TrueColor = #<VLA-OBJECT IAcadAcCmColor 1284d240> ; Visible = -1 Они отсутствуют в свойствах, через ent* функции доступ к ним возможен это подпримитивы то что представлено вами это PolygonMesh а мне нужен PolyFaceMesh |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,843
|
Есть предложение - приложить файлик и показать, как ты добирался до этих элементов.
Провокационный вопрос: если можно добраться через (entget), то зачем использовать именно vla?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,826
|
Моя программа выполняет несколько действий:
Сначала отключаем привязки, потом что-то чертим (через функцию command), восстанавливаем привязки. Пользователь после нажатия кнопки увидел полученный результат, но он ему не понравился и нажимает ctrl+z - ничего не происходит, нажимает еще раз - начерченный объект исчезает. На этом он успокаивается и продолжает работать дальше и весьма скоро замечает что привязки-то не работают. Вообщем вопрос, как сделать чтобы ctrl+z отменял всю пользовательскую функцию скопом, за раз. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,843
|
Одним из следующих способов:
1. либо поставить (command "_.undo" "_begin") в начале и (command "_.undo" "_end") в конце. Лично мне такой подход просто не очень нравится, но это дело вкуса 2. Либо получить указатель на активный документ (setq adoc (vla-get-activedocument (vlax-get-acad-object))) и опять же поставить метки начала и конца: (vla-startundomark adoc) ;; чего-то творим (vla-endundomark adoc)
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,843
|
Да в общем-то нет. Просто выполнение (command) при cmdecho=1 оставляет следы в ком.строке, а (vla) - нет. Все равно ж из функции выход "тихий" (т.е. в конце стоит (princ))?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,843
|
Гхм... Я б и рад файлик посмотреть, но 2007-й не установлен...
Попробуй такой код, у меня вроде как сработало: Код:
Добавлено: Чуток подправил код - там было непонятно, какой катет каким будет
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,826
|
:shock:
Молодо - зелено. Цитата:
Хотя может действительно создавать блоки не отходя от кассы... Блок в 2000-м: [ATTACH]1152780812.dwg[/ATTACH] |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,843
|
Цитата:
Насчет блока... Можно, конечно, и полилинию туда засобачить, и штриховку. Просто я со сваркой пока не воевал особо, вот и сделал как мог
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,826
|
Цитата:
Цитата:
Подскажи как найти в списке стилей (например dimstyle), стиль который бы содержал в названии слова data? [ATTACH]1152845400.gif[/ATTACH] |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
По структуре программы для рисования разреза шва.
1. Должен быть отрисован разрез с заданным катетом, а в программах запрашиваются точки, то есть размер катета вычисляется. Для получения требуемого катета надо достаточно сложно указать точку, например, со смещением. Иначе будет "на глаз". Лучше хранить значение катета (например, обычный 6 мм), и только при его изменении - сохранять. Или 2 размера, если они могут быть разные 2. При запросе вершины выводить текущий катет и иметь опцию для его изменения. 3. Зациклить ввод точки вершины (с выходом из цикла при пустом вводе), так как таких треугольничков обычно надо сразу несколько нарисовать, зачем же вызывать заново программу. 4. Сам треугольник все-таки лучше блоком. А если завтра захочется треугольничек "с брюшком", то не надо переписывать достаточно сложное программное создание определения блока. 5. Запрашивать не точки катета, а его ориентацию (поворот). При этом ориентация может указываться проще, чем одновременное указание конца катета для определения его размера. 6. А если шов не в виде прямоугольного треугольника, а косого? Этот вариант тоже надо учитывать. В этом случае может быть запрос и направления второго катета, но тогда не блоком рисовать. И, конечно, обработка ошибок. Чтоб программа была надежной, как лом. В варианте Kr_AngleWeld, "прекрасно работает" пока программу использует сам автор. Достаточно прервать при выполнении любого ввода и далее будет прерывание функции. А обработчика прерывания нет. К тому же зачем-то после вставки еще и ручное масштабирование выполняется. Тоже не защищенное от ошибки. Если при запросе "Укажите катет" запрашивался не размер катета, а только его направление, то так и надо спрашивать. Но зачем же дублировать? |
|||
|
||||||||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,826
|
Ну вот, а начиналось все:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Из истории: Сначала вставлял просто блок - прямоугольный треугольник и был у меня ма-а-а-ахонький макросик: Код:
Потом оказалось что этого мало и надо бы сделать для разных углов (не только прямоугольные). Да еще иногда масштабировать. И написал макросик посложнее: Код:
Потом решил таки переделать в lsp. И теперь там 30строк. У Крыса в два раза больше. И оказалось что все хреново. |
|||||||||