|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
без activex вряд ли(
|
||||
|
||||
это просто указатель на не/именованный блок из коллекции блоков
|
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 03.12.2009
Сообщений: 84
|
Добавить точку (линию, текст и пр.) в пространство модели - просто.
(vla-addPOINT (vla-get-ModelSpace (vla-get-activedocument (vlax-get-acad-object))) (vlax-3D-point '(0. 0. 0.))) Применяем метод и передаем соответствующие аргументы. Добавить точку в блок пока не получается. (vla-addPOINT (vla-get-Blocks (vla-get-activedocument (vlax-get-acad-object)) (vlax-ename->vla-object (car (entsel)))) (vlax-3D-point '(0. 0. 0.))) ошибка: Слишком много фактических параметров По логике дилетанта рассуждаю следующим образом. Использую метод vla-addPOINT, указываю на блок (делаю запрос свойства vla-get-Blocks с аргументом объект, т.е. конкретный блок) в пространстве модели/документа/объекта и передаю аргумент "координаты точки". Где ошибка? |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 17.01.2014
Сообщений: 97
|
Господа, подскажите, как из ssget получить набор, к которому можно обращаться через vla-функции? Например, получаем набор выбора:
Код:
Код:
|
|||
|
||||
Регистрация: 17.01.2014
Сообщений: 97
|
Спасибо.
----- добавлено через ~11 ч. ----- Как присвоить объектам RGB цвет через vla? Код:
Последний раз редактировалось Browning Zed, 26.12.2020 в 09:43. |
|||
|
||||
Регистрация: 19.11.2014
Сообщений: 2,435
|
Подскажите, как нарисовать простую полилинию по двум вершинам?
Пробую вот такой код: Код:
В итоге получаю ошибку: Цитата:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 19.11.2014
Сообщений: 2,435
|
Кулик Алексей aka kpblc, а почему в функции vlax-make-safearray указана точечная пара (0 . 3), а не (0 . 1), как у меня? Я так понимаю, это значения индексов первого и последнего элементов массива. Если всего этих элементов два (две точки-вершины полилинии), то зачем мне массив на 4 элемента, который создается с помощью точечной пары (0 . 3)? Или координаты двухмерной точки в массиве занимают две позиции?
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Потому что вершин 2, у каждой по 2 координаты. Итого 4 элемента. От 0 до 3.
----- добавлено через 13 сек. ----- И не забудь преобразовать savearray в variant.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
это точно будет лишнее.
----- добавлено через ~4 мин. ----- Цитата:
----- добавлено через ~10 мин. ----- если назначать цвет, использую ActiveX, то и выбор объектов лучше имхо делать на нём же и быстрее работать будет и проще к объектам выборки обращаться. например назначить всем выбранным полилиниям цвет R255G255B255 можно так. Код:
Последний раз редактировалось koMon, 29.12.2020 в 09:48. |
||||
|
||||
Регистрация: 19.11.2014
Сообщений: 2,435
|
Есть такая задача. Пользователь последовательно указывает три точки. При этом две первые точки задают прямую, а третья точка чаще всего не лежит на ней. Задача состоит в том, чтобы найти координаты точки p3', которая будет находиться на прямой, заданной точками p1 и p2 и максимально близко от точки p3. Есть простой, но трудоемкий способ через лобовые геометрические вычисления. Но может быть у лиспа есть функционал, который позволяет решить эту задачу проще? Или может кто-то для себя писал такую функцию под свои нужды?
|
|||
|
||||
если построить, например, вспомогательный отрезок, то искомая точка может быть найдена при помощи функции (VLAX-CURVE-GETCLOSESTPOINTTO).
хотя можно и используя (inters) Код:
Последний раз редактировалось koMon, 29.12.2020 в 16:50. |
||||
|
||||
Регистрация: 19.11.2014
Сообщений: 2,435
|
А можно ли в моем примере получить еще две точки, лежащий на прямой p1-p2, на определенном расстоянии от точек p1 и p2 снаружи отрезка p1-p2? На картинке точки помечены красным. При этом нужно учитывать, что пользователь может задать точки в обратном порядке, то есть задать направление сверху вниз влево, а не снизу вверх вправо, как у меня на картинке.
|
|||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
LISP. Вставка в таблицу поля, соотвествующего площади примитива | Profan | Готовые программы | 272 | 06.06.2021 23:12 |
Сейсмозащита и сейсмоизоляция существующих, построенных зд. | IANationalInformAgentstvo | Прочее. Архитектура и строительство | 216 | 20.01.2015 16:51 |
Мониторы LCD CRT | Разное | 94 | 17.06.2008 10:51 | |
ЮМОР 2006 =) | Perezz!! | Разное | 1122 | 04.01.2007 00:46 |