|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
Регистрация: 23.09.2016
Сообщений: 4
|
Доброе утро!
Алексей, спасибо за статью. Постараюсь запомнить. А теперь для "особо одаренных" (для меня). Как мне это поможет с вышеуказанным кодом? Код не работает с последним созданным/скопированным блоком в чертеже. Попробуй прогнать его на блоке который прикреплен - выдает ошибку, но если этот блок скопировать или создать еще один, то на первом блоке все будет работать, а на новом - нет!! Вот, собственно в чем вопрос. Пробовал повторять это на двух разных компах - результат тот же. Последний раз редактировалось I_g_o_r, 20.02.2017 в 20:16. |
|||
|
||||
Регистрация: 08.02.2012
Сообщений: 16
|
Добрый день, ищу решение проблемы: есть созданная методом Autolisp таблица в файле dwg, пытаюсь родной командой "-TABLEEXPORT" экспортировать ее в csv. формат , но у некоторых ячеек при экспорте слетает формат ячеек ( вместо текстовый-числовой). Связанно ли это с стилем таблиц Автокада, либо может быть c Excel?
Код:
|
|||
|
||||
Регистрация: 17.02.2017
Сообщений: 9
|
kurstep, Я знаю про гиперссылки. Дело в том, что, как я говорил, архив огромный, отредактировать каждый лист спецификации, вставив гиперссылку, нет ни возможности ни желания. Именно поэтому я и хочу сделать так, что бы программа "анализировала" именно текст и искала файл.
|
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,004
|
Romazn, спецификация в чем хоть? Сделайте нормальное вложение, а не ссылку куда-то на гугл-диск)
Если хотите какой то реакции на ходу - вешайтесь на реакторы/обработчики событий. Либо парсить текст в спецификациях и при наличии по сгенерированному в процессе парсинга имени файла вставлять гиперссылки. И прогнать архив через эту программу. |
|||
|
||||
ГИП Регистрация: 07.06.2015
Сообщений: 1,254
|
Народ, подскажите, а то я уже всю голову сломал. Должна получиться программа, "реставрирующая" взорванную полилинию (ну, или хотя бы её очертания) из отдельных отрезков. Вот код:
Код:
Код:
Но как тогда по-другому сформировать циклом список списков с координатами точек полилинии? |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
А почему не использовать append или cons?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
ГИП Регистрация: 07.06.2015
Сообщений: 1,254
|
У cons функционал в данном случае аналогичен list. Если брать append, то да, список формируется (но не список списков, а обычный линейный). И проблема в том, что _.Pline его как-то по-своему воспринимает и рисует что-то совсем не то. Если же вручную создать список по типу ((1 1 0) (2 2 0) (3 3 0)), то полилиния выстраивается корректно.
Если же, действительно, брать append, то на выходе из цикла будем иметь список вида (1 1 0 2 2 0 3 3 0), из которого нужно будет получить список списков... Тоже та ещё задачка. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
ГИП Регистрация: 07.06.2015
Сообщений: 1,254
|
Работает! Спасибо, дружище!! Теперь полилиния рисуется по точкам. Немного причудливо, ну да это ерунда. Сейчас сделаю сортировку - и оно должно залетать.
UPD. Никакая сортировка тут не понадобилась. Я просто поменял местами 10 и 11 dxf код. Со взорванной полилинией работает идеально. Хотя, конечно, из произвольных отрезков линию не соберёт. Код:
Последний раз редактировалось Enik, 24.02.2017 в 15:38. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Есть пара моментов:
1. Насчет "прополки полилинии" не уверен, что она встроена. 2. После получения координат можно (и, скорее всего, нужно) удалять дубликаты 3. Полилинию наверняка проще и быстрее будет создавать через entmake или vla. 4. И, наконец, последнее: грабли, здрасьте!
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
ГИП Регистрация: 07.06.2015
Сообщений: 1,254
|
Цитата:
2. Тут проблема не только в этом... См. ниже. 3. Мне, чайнику, разницы не видно Может, и проще. Всё равно пока что не умею. 4. Ого, а вот за это спасибо! Добавил включение/отключение привязки в код. Разницы не заметил, правда, ну да пускай будет, раз оно так правильнее. А теперь о главном. Штирлиц никогда не был так близок к провалу: В общем, контур-то полилиния отображает верно. Но при попытке манипуляции с ней возникли проблемы. Команда ПОДОБИЕ выдаёт какую-то дикую ... хрень. Стал разбираться. Выяснилось, что в некоторых местах полилиния начерчена взад-назад, как ручкой по одному месту. Скорее всего, до взрыва там была не одна полилиния, а несколько, начерченные одна поверх другой. В общем, буду разбираться. Планирую сделать следующее: а) удалить все совпадающие вершины б) сделать запрос на крайнюю точку будущей линии в) отсортировать список, чтобы в нём последовательно стояли точки, находящиеся друг от друга на минимальном удалении. Мда... со школы помню: сколько элементов в списке, столько и будет итераций в цикле сортировки. В моём случае - 2500 отрезков, 5000 точек. Что ж, придётся компу повисеть минуту-другую. Друг вариантов пока не вижу. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Доброго. Непонятка с vla-endundomark vla-startundomark. Вроде в других кодах работает а тут нет. Команда создает по точкам выбранных полилиний блоки. Но при undo удаление созданных блоков происходит по очереди а не гурьбой. Подскажите плиз что не так. Файл примера и используемые функции от ЛиМака во вложении.
Код:
__________________
Блог |
||||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Red Nova, это потому что ты ставишь метку отмены после того, как искусственно прерываешь ход выполнения своей программы функцией *error*. Фактически, до строк 124-125 код у тебя не доходит никогда и ни при каких условиях.
Я вижу, ты понимаешь, что искусственный вызов ошибки очень удобен: не нужно два раза повторять одни и те же куски кода для возврата системы в первозданное состояние - она в него вернется и в случае непредвиденной ошибки. Меня этому (в том числе) в свое время научил gomer, подвергнув жесткой критике один из моих кодов, за что ему пребольшое спасибо. Понимать - понимаешь, а про метку почему-то забыл Вставь ее в тело *error*. |
|||
|
||||
skkkk - Спасибо. Ох и нубас же я
__________________
Блог |
||||
|
||||
ГИП Регистрация: 07.06.2015
Сообщений: 1,254
|
Доброго времени года!
Вот тут нашёл код для сортировки списка точек от LeeMac: Код:
Цитата:
Как быть? Координаты неизбежно нужно округлять? Или есть ещё варианты? Потому что округлять не хотелось бы. Это как-то... неправильно что-ли. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Ты как вызываешь код?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Что за kpblc_list? Что за sortenlist?
Есть разница между вызовом sort: (sort '((0. 0. 0.) (10. -10. 0.) (20. 20. 0))) (sort '(0. 0. 0. 10. -10. 0. 20. 20. 0)) Первый сработает, второй (естественно) выдаст ошибку.
__________________
Моя библиотека 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 |