|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
Инженер Регистрация: 27.04.2009
Deutschland
Сообщений: 208
|
Кулик Алексей aka kpblc, спасибо, на работе завтра проверю
Вроде бы проходит, только с именем файла я помудрю - пока пишется с двойным расширением (*.dwg.dxf) Что касаемо самого процесса, то опять темный лес. И почему я такой тупой Что происходит в этой строке: (cons 0 (1- (vla-get-count vla_selset))) ? В книге Полещука выглядит так: (vla-copyobjects <объекты - БМ объектов> [<владелец - vla-объект места назначения>] [<пары клонирования - переменная в которой массив пар клонирования>]). А что у нас: Код:
Не понравилось. Когда вручную открываешь документ, сохраняешь как dxf последней модели (R12), то при последующем открытии его для предпросмотра - все, что вручную выбирал видно в окне, а когда все тоже но через твою программу - то видно пустое поле, а выбранные элементы спрятаны где-то за пределами экрана. Грешу на привязку к системам координат (уж больно похоже, что показывается та часть, которая топчется около центра МСК) Можно как то изменить? Последний раз редактировалось alex8888, 25.06.2010 в 10:30. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844
|
Цитата:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер Регистрация: 27.04.2009
Deutschland
Сообщений: 208
|
Кулик Алексей aka kpblc, теперь все встало на свои места
А то голову сломал в этих ухищрениях. Как насчет: Цитата:
Последний раз редактировалось alex8888, 25.06.2010 в 11:58. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844
|
Скажу честно - я код гонял только на предмет "работает / не работает". Попробую посмотреть, но результат гарантировать не могу.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер Регистрация: 27.04.2009
Deutschland
Сообщений: 208
|
Прошу помощи опять
Хочу скопировать объекты определенного фильтра (в данном случае со слоя 0) и вставить сюда же, но где то рядом. Что пропустил в vla-copyobjects или неправильно сделал. До точки "до сюда функция дошла" - все в порядке, а дальше посылают ... Код:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844
|
Это не сработает. Если надо копировать "рядом", не меняя пространство-владелец, то (если не прибегать, например, к командным методам), то проще будет воспользоваться командами vla-copy и vla-move - именно так, сначала одно, потом второе. Причины объяснены в справке, да и так видны
Я не рассматриваю вариант "прочитать все примитивы, пересчитать все точки, построить примитивы заново".
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер Регистрация: 27.04.2009
Deutschland
Сообщений: 208
|
Алексей,
vla-copyobjects - клонирование объектов в: 1. другой файл, 2. другое пространство, 3. блок. <- это подходит для копирования объектов и последующей их вставки в текущее же пространство, файл, чертеж? Или это что-то другое? Можно ли создать блок, перенести его и расчленить? Или это работа через ж...? Набрал в предыдущий лисп (vla-copy vla_selset) , меня послали : VLA-OBJECT nil. Какой объект ему нужен? Я правильно понял, что в vla_selset у меня набор отфильтрованных элементов (выборка), или это только указатель на них, или это одно и тоже? Какова должна быть последовательность действий? 1. vla-copy выбираемых объектов - они должны быть сохранены в какой-то переменной? 2. vla-move - указать 2 точки -откуда и куда переместить? |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844
|
Ну ты ета... Короче, не того. И не этого
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер Регистрация: 27.04.2009
Deutschland
Сообщений: 208
|
Кулик Алексей aka kpblc, вот это оперативность!
Только мне теперь опять неделю надо обсасывать твой код Как все-таки кардинальным образом меняется код только лишь от изменения крохотного условия задачи Спасибо. Алексей, код работает на ура. Последний раз редактировалось alex8888, 29.06.2010 в 10:20. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844
|
Ни фига себе - "крохотного"... Есть принципиальная разница между копированием объектов между владельцами и копированием объектов внутри одного владельца.
Кстати, все вот это можно заменить элементарным: Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер Регистрация: 27.04.2009
Deutschland
Сообщений: 208
|
Я в шоке! Но, в этом случае выбирать приходится вручную, можно попросту скопировать ненужное и упустить важное. Т.е. мне важнее все-таки отфильтрованные значения. Не знал, что копирование со сменой владельца и просто копирование это сильно разные вещи. Ведь там копирование и там, Ctrl+C + Ctrl+V работают одинаково. А тут такие страшности! Я уж подумал, что ты просто не хочешь меня подпустить к объектному методу программирования , поэтому и меняешь код почти на 100% Маленький вопросик (просьбочка ): а можно сделать в твоем лиспе так, чтобы скопированные объекты "висели" на курсоре, как при штатном копировании-вставке, а то неудобно - не видно куда вставляешь? |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844
|
Лиспом это слишком геморройно. Если коротко, то надо а) создавать анонимный блок и б) искать тему "На заметку программистам" и брать оттуда готовые коды.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844
|
Принципиально - наверное, ни в чем. Привычка у меня такая - функция должна быть функцией ))
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер Регистрация: 27.04.2009
Deutschland
Сообщений: 208
|
Кулик Алексей aka kpblc, пожалуйста посмотри мой код ниже.
1. Проблема состоит в том, что у меня не получается объединить 2 полилинии в одну. Вручную они объединяются нормально. 2. Можно как-нибудь упростить расчет точек для сплайна или уменьшить их количество не в ущерб развертки? Код:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844
|
alex8888, с точками я не стал разбираться. А объединение попробуй так:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер Регистрация: 27.04.2009
Deutschland
Сообщений: 208
|
Кулик Алексей aka kpblc, наверное, с точками ничего не поделаешь - там массив должен быть большой.
С объединением я решил по-другому: изменения в коде: Код:
Единственное, что boundary что то долго просчитывает у себя в уме (секунд 3-5), но это не смертельно. |
|||
|
||||
Инженер Регистрация: 27.04.2009
Deutschland
Сообщений: 208
|
Помогите пожалуйста немного с оптимизацией.
Произвожу расчет координат по горизонтали (L) и по вертикали (H) для построения кривой опираясь на координаты базовой точки, задаваемой извне (здесь - пользователем): Код:
Попробовал применить что то типа (strcat "L" (itoa i)) и (sqrt .... i...), где i - счетчик количества углов (синусов), используемых для построения, но не могу сделать переменную Li - она получается в виде "Li" и ее нельзя использовать например для setq |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844
|
AtroksAlold, это ты про что?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
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 |