| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > LISP. Обнуление координаты Z (аналог FLATTEN )

LISP. Обнуление координаты Z (аналог FLATTEN )

Ответ
Поиск в этой теме
Непрочитано 08.10.2008, 16:06 3 | #1
LISP. Обнуление координаты Z (аналог FLATTEN )
VVA
 
Инженер LISP
 
Минск
Регистрация: 11.05.2005
Сообщений: 6,990

Программа написана Joe Burke и опубликована здесь: SuperFlatten
Там же будут публиковаться последующие версии. Начиная с версии 1.2c адаптирована к локализованным версиям Автокада.
Первая версия публиковалась здесь: Проклятая Z координата
Запускать:
SF или SuperFlatten
Кроме того с помощью опций можно устанавливать:
Rename blocks - переименовывать блоки, объекты в которых нужно плющить
Explodable blocks - сделать все блоки расчленяемыми
Overkill - запускает Express'овскую команду Overkill
Proxies - плющит прокси объекты
Должна работать начиная с 2000 версии Автокада. Для корректной работы всех опций нужен Автокад 2006 и позже и установленные Express Tools

1. SuperFlatten 2.0b beta VVA.rar - Обработка блоков, в имени которых есть UNICOD символы
2. Другие варианты см. #2
3. SuperFlatten 2.0c при "обнулении" взрывал мультивыноски см пост #91

Вложения
Тип файла: zip SuperFlatten 1.2g.zip (27.4 Кб, 719 просмотров)
Тип файла: zip SuperFlatten 2.0c.zip (30.1 Кб, 2294 просмотров)


Последний раз редактировалось VVA, 22.05.2021 в 10:10. Причина: Добавлена версия SuperFlatten 2.0c
Просмотров: 171531
 
Автор темы   Непрочитано 08.10.2008, 16:18
#2
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Некоторые отзывы о работе программы можно почитать здесь: Удаление дублированных элементов чертежа
Другие варианты обнуления координаты Z:
1. FLATTEN из Express Tools
2. Начиная с 2007-й версии команда _Flatshot (для тел и поверхностей)
3. Еще один вариант обнуления Z. Ссылка на команду Z0
Цитата:
Поэтому в свое время сделал команду обнуления Z путем замены на Z=0 во всех примитивах по dxf кодам 10 11 12 13 14 38, исключая 3DSOLID и дополнительно обрабатывая размеры (10 11 12 13 14). Объекты "плющатся" только в текущем пространстве. Содержимое блоков не обрабатывается (не стояло такой задачи). Ссылку добавил в 1-й пост. В твоем чертеже боки не испортило.
4. Небольшим лиспиком
Код:
[Выделить все]
(defun C:FLATTEN1 ()
 (command "_.UCS" "")
 (command "_.move" "_all" "" '(0 0 1e99) ""
 "_.move" "_p" "" '(0 0 -1e99) "")
 (princ)
)
5. Вариантами этой программы
http://dwg.ru/dnl/25
http://dwg.ru/dnl/296
6. Вариант Lee MAC (аналог п.3 с обработкой блокировки слоев)
Код:
[Выделить все]
(defun c:flat  (/ ss ssObj j)
  (vl-load-com)
  (vlax-map-collection
    (vla-get-Layers
      (vla-get-ActiveDocument
        (vlax-get-acad-object)))
    '(lambda (x) (vla-put-lock x :vlax-false)))
  (if (setq ss (ssget "_X" (list (cons 410 (getvar "CTAB")))))
    (progn
      (setq ssObj (mapcar 'vlax-ename->vla-object
                          (mapcar 'cadr (ssnamex ss))) j 0)
      (foreach Obj  ssObj
        (foreach n  '(1e99 -1e99)
          (if (vl-catch-all-error-p
                (vl-catch-all-apply
                  '(lambda (x)
                     (vla-move x (vlax-3d-point (list 0 0 0))
                                 (vlax-3d-point (list 0 0 n))))
                  (list Obj)))
            nil
            (setq j (1+ j)))))
      (princ (strcat "\n" (rtos (/ j 2.0)) " Objects Flattened.")))
    (princ "\n<!> No Objects Found <!>"))
  (princ))

7. Утилита от Stolmachev (без проверки): "Утюг" ZZ (ещё один, почти универсальный, flatten) и здесь https://forum.dwg.ru/showpost.php?p=...9&postcount=39
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 14.03.2020 в 19:44. Причина: Добавлен п.6
VVA вне форума  
 
Непрочитано 19.06.2009, 10:49
#3
Hans667

сети
 
Регистрация: 12.04.2007
SPb
Сообщений: 536
Отправить сообщение для Hans667 с помощью AIM Отправить сообщение для Hans667 с помощью Skype™


а есть лиспик для обнуления какой хочу координаты.Конкретно "Y".Или проецирующей на какую нить определенную плоскость?
__________________
Errare humanum est, insipientis perseverare
Hans667 вне форума  
 
Непрочитано 19.06.2009, 11:31
#4
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Пост 2, п.1 и 2.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 09.03.2011, 15:29
#5
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Superflatten обновилась до версии 2.0 beta
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 04.04.2011, 14:36
#6
Apelsinov

Проектировщик ВК. LISP-любитель.
 
Регистрация: 15.12.2003
Москва
Сообщений: 1,186
<phrase 1=


Занудства ради, пару замечаний по программе:
- Нет опции скрытия невидимых линий (во Flatten есть, коряво, но все-же есть)
- Странно работает опция переименования блоков, я так понимаю, что при выборе этой опции выбранные блоки должны оставаться блоками, но с другим именем, но происходит не так - выбранные блоки 0-го уровня вложенности разбиваются (не все, возможно дело в из динамичности, или в содержании атрибутов), а вложенные блоки модифицируются, не разбиваются, но при этом и не переименовываются
Apelsinov на форуме  
 
Непрочитано 15.04.2011, 11:06
#7
andrk


 
Регистрация: 14.04.2011
Сообщений: 5


Не могу понять почему, но при выполнении команды _flatshot, выскакивает "Отсутствуют тела или поверхности, которые можно спроецировать." Объекты я выбираю все предварительно. У меня акад 2011. Подскажите плиз..
Очень нужно обнулить Z.
andrk вне форума  
 
Автор темы   Непрочитано 15.04.2011, 11:18
1 | #8
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


andrk, Почитай внимательно п.2 из #2
Цитата:
2. Начиная с 2007-й версии команда _Flatshot (для тел и поверхностей)
Если твои объекты не тела и поверхности (о чем тебе и сообщается), то это не твой случай. Пробуй код из #1 или варианты 1,3-5 из #2
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 15.04.2011, 11:37
#9
andrk


 
Регистрация: 14.04.2011
Сообщений: 5


расскажите, пожалуйста, как его применять? этот код. прям просто в командной строке что ли?
andrk вне форума  
 
Автор темы   Непрочитано 15.04.2011, 11:40
#10
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


andrk, Подними глаза на 1 строчку выше (или ниже) и пройдись по ссылке в моей подписи
....................................................................|
....................................................................|
....................................................................|
....................................................................V
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 15.04.2011, 12:06
#11
andrk


 
Регистрация: 14.04.2011
Сообщений: 5


попробовал superflatten 2.0 beta...
если выбираю часть каких-то объектов, то все хорошо.
но вот когда делаю через выбрать все, чтобы быть уверенным, то выскакивает:
"Команда: _superflatten
найдено: 39944
Analyzing selection... |
Error: Ошибка Automation. Ключ не найден"
Прокомментируйте пжста..
andrk вне форума  
 
Автор темы   Непрочитано 15.04.2011, 14:47
#12
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Цитата:
Сообщение от andrk Посмотреть сообщение
попробовал superflatten 2.0 beta..
Попробуй версию 1.2, выполник п. 1,2,3
Если не поможет, то
1. Предварительно чертежу сделай _purge и _audit.
2. Проверь на отсутствие proxy.
3. Выставь переменную Demandload=0, закрой и открой снова рисунок.
4. повтори команду
5. если все равно будет ошибка, есть еще п. 1,3,4,5
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 29.04.2011, 13:50
#13
Вовочка

пищевая технология
 
Регистрация: 02.06.2009
Киев
Сообщений: 283
<phrase 1=


У меня следующая проблема. Никогда такого не было. А здесь пришел инжиниринг, где попался блок (см. вложение). Методом тыка я его нашел. Хотел зайти в редактор блока, а нетушки. Не получилось. Аудит ничего не дал. Думаю, что в аналогах будет то же. А эта программа видно, что мощная
Выберите объекты:
Analyzing selection... \
Error: Ошибка Automation. Ключ не найден
Помогите пожалуйста...
Вложения
Тип файла: dwg
DWG 2007
block.dwg (97.9 Кб, 23402 просмотров)
Вовочка вне форума  
 
Непрочитано 29.04.2011, 14:20
#14
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,326


Вовочка, что-то я проблему не понял. Редактор блоков блок открывает, точка вставки блока- 0,0,0, т. е. z-координата нулевая, так что всё в порядке
Хмурый вне форума  
 
Непрочитано 29.04.2011, 15:06
#15
Вовочка

пищевая технология
 
Регистрация: 02.06.2009
Киев
Сообщений: 283
<phrase 1=


По поводу редактора блоков, я перемудрил. Вернул в предыдущее значение переменную - DEMANDLOAD. Но не в этом проблемма. Суть: есть чужие чертежи (100 штук) иностранные. Тоесть препираться с исполнителем из-за бугра будет долго. В этих чертежах есть НЕЕЕЕЕЕЕЕЕСКОЛЬКО примитивов которые не лежат на нуле. Мне нужно всю эту работу сплющить. Но сами понимаете, что проганять через пальчики 100 чертежей неправильно. Я создал связку BAT->SCR->LSP (самое время поблагодарить Д. Эббота) где лиспом выступает суперфлаттен. Перед этим тестил СФ (SuperFlatten). Нарадоватся не мог. Тут мне один исполнитель говорит, что моя связка еще сыровата и требует усовершенствования. Дал мне чертеж. Сделал я вид спереди. Действительно, - плющить надо. Действия: EXPLODEALLPROXY, аудит с исправлением ошибок, тройной _purge, аудит с исправлением ошибок. Загрузка СФ. Запуск СФ. Сколько объектов "_all" с подтверждением. И мне кад говорит:
Analyzing selection... |
Error: Ошибка Automation. Ключ не найден
...и не сплющил. методом отбора дружественных по отношению к СФ примитивов я пришел к тому, что на чертеже остался один блок (уже видели). удалил я хлам ("очистить" + " проверить") и остался с носом, кад твердит все то же:
Analyzing selection... |
Error: Ошибка Automation. Ключ не найден
Итог, как так меня этот блок полностью устраивает (вы видите, что он плоский), но в подальшей жизни, может еще какой то такой попадется и я на запрос СФа буду говорить "_all" и ничего не буду иметь. Про запуск конвеера (BAT->SCR->LSP) вообще говорить нет смысла.
Вовочка вне форума  
 
Непрочитано 04.05.2011, 12:51
#16
Вовочка

пищевая технология
 
Регистрация: 02.06.2009
Киев
Сообщений: 283
<phrase 1=


Здравствуйте, уважаемые форумчане. Крутил, вертел я на праздниках эту проблемму и кажется мне, что вектор ее решения я нашел. Имя блока было Auslauf gekьrzt. Я поменял на имя блока Auslauf gekurzt и как бы проблема решилась. Думаю, прекрасно. Я добавлю немецкий язык в компьютер и все решиться. Но нет. Воз и ныне там. Есть у кого-нибудь какие-то соображения еще?
Нашел друга по несчастью
http://forum.dwg.ru/showthread.php?t=49870

Последний раз редактировалось Вовочка, 05.05.2011 в 11:26.
Вовочка вне форума  
 
Автор темы   Непрочитано 05.05.2011, 11:34
1 | #17
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Пробуй. Оставлю сообщение автору
Изменения
2011-05-05 Unicod символы в блоках
2011-10-12 Функция ModBlockScale отредактирована точность округления с 1e-2 на 1e-12
Вложения
Тип файла: rar SuperFlatten 2.0b beta VVA.rar (28.1 Кб, 2931 просмотров)
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 12.10.2011 в 17:56. Причина: Масштабный коэффициент
VVA вне форума  
 
Непрочитано 05.05.2011, 12:46
#18
Вовочка

пищевая технология
 
Регистрация: 02.06.2009
Киев
Сообщений: 283
<phrase 1=


Спасибо Вам большое!!! Заработало. Скажете, что, скажет автор. Интересно же.
Вовочка вне форума  
 
Автор темы   Непрочитано 05.05.2011, 13:54
#19
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Я написал ему. Подождем официального релиза
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 11.10.2011, 13:06
#20
asii


 
Регистрация: 20.03.2011
Сообщений: 75


Есть чертеж, в котором линии и блоки(объемные) разнесены в пространстве Нажмите на изображение для увеличения
Название: 3D ppc.jpg
Просмотров: 911
Размер:	69.5 Кб
ID:	67600 . Хотел применить этот лисп. Ввожу команду SF и в выпадающем меню появляются функции Rename blocks, Explodable blocks, Proxies, но Overkill не появилась. Если я правильно понял, то эта функция не запустится без Express Tools. Но как обнулить координату Z и сплющить блоки без Express Tools?
asii вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > LISP. Обнуление координаты Z (аналог FLATTEN )

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Аналог функции EVAL (LISP) в Exele kp+ LISP 11 01.04.2010 16:52
Сменить быстро координату Z у нескольких сплайнов. andrey25 AutoCAD 11 18.09.2008 16:28
Координаты точки пересечения line и pline (LISP) paradoxvaha LISP 3 10.07.2007 13:04
загрузка DOS прог через LISP Gaa LISP 15 12.08.2005 19:19