LISP. Обнуление координаты Z (аналог FLATTEN ) - Страница 5
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

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

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

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

Программа написана 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 Кб, 921 просмотров)
Тип файла: zip SuperFlatten 2.0c.zip (30.1 Кб, 2964 просмотров)


Последний раз редактировалось VVA, 22.05.2021 в 10:10. Причина: Добавлена версия SuperFlatten 2.0c
Просмотров: 182965
 
Непрочитано 13.06.2019, 11:33
#81
kacugu

начинающий инженер-гидротехник
 
Регистрация: 18.04.2010
Санкт-Петербург
Сообщений: 910


Цитата:
Сообщение от pentaone Посмотреть сообщение
Почему при работе что с данной программой
Вот такая же проблема.
Цитата:
Сообщение от doctorraz Посмотреть сообщение
файлы чертежа до SF
В приложении.
Autocad 2015, использую SF от VVA
Вложения
Тип файла: dwg
DWG 2013
Дин.блок для форума_Рабочий.dwg (96.2 Кб, 37 просмотров)
Тип файла: dwg
DWG 2013
Дин.блок для форума_Сломанный.dwg (96.2 Кб, 30 просмотров)
kacugu вне форума  
 
Автор темы   Непрочитано 15.06.2019, 16:12
1 | #82
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


kacugu, На странице автора , была выложена версия SuperFlatten 1.2g. Проверил на твоем файле, вроде динблоки не ломает
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 15.06.2019, 22:50
#83
kacugu

начинающий инженер-гидротехник
 
Регистрация: 18.04.2010
Санкт-Петербург
Сообщений: 910


Цитата:
Сообщение от VVA Посмотреть сообщение
вроде динблоки не ломает
Попробовал ещё версию 2.0с отсюда. Вроде тоже работает нормально и не ломает динамические блоки
kacugu вне форума  
 
Автор темы   Непрочитано 15.06.2019, 23:20
#84
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


А слона то я и не заметил. Добавил в #1
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 05.02.2021, 11:24
#85
mindchamber


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


здравствуйте, вызываю команду SF и консоль пишет следующее:

Цитата:
Команда: SF
найдено: 32756
Analyzing selection... -Недействительное имя визуального стиля.
Недействительное имя визуального стиля.
Недействительное имя визуального стиля.
Недействительное имя визуального стиля.
Неправильное ключевое слово.
Error: Функция прервана.Задайте параметр [?/Удалить/Ортогонально/Восстановить/Сохранить/Настройка/Рамка]: С
Имя вида для сохранения: hcgf
UCSVIEW = 1 ПСК будет сохранена с видом
Команда: Задайте противоположный угол или [Линия/РМн-угол/СМн-угол]: *Прервано*
Подскажите пожалуйста, чертеж загаженный попался, надо его расплющить, а команде не помогает...

Обычный _flatten выдает следующее:
Цитата:
Вложенные элементы = Откл. Непривязанные данные = Откл-
Вложенные элементы = Откл. Непривязанные данные = Откл|
Вложенные элементы = Откл. Непривязанные данные = Откл-
Вложенные элементы = Откл. Непривязанные данные = Откл|
Вложенные элементы = Откл. Непривязанные данные = Откл/
Вложенные элементы = Откл. Непривязанные данные = Откл.К 2D-полилинии (DCE8C), имеющей только одну вершину, добавлена новая вершина.
К 2D-полилинии (DCE8F), имеющей только одну вершину, добавлена новая вершина.
\
Вложенные элементы = Откл. Непривязанные данные = Откл.К 2D-полилинии (DCEC0), имеющей только одну вершину, добавлена новая вершина.
К 2D-полилинии (DCEC3), имеющей только одну вершину, добавлена новая вершина.
/
Вложенные элементы = Откл. Непривязанные данные = Откл.К 2D-полилинии (DCEF4), имеющей только одну вершину, добавлена новая вершина.
К 2D-полилинии (DCEF7), имеющей только одну вершину, добавлена новая вершина.
\
Вложенные элементы = Откл. Непривязанные данные = Откл/
Вложенные элементы = Откл. Непривязанные данные = Откл\
Вложенные элементы = Откл. Непривязанные данные = Откл/
Вложенные элементы = Откл. Непривязанные данные = Откл\
Вложенные элементы = Откл. Непривязанные данные = Откл.
неверный тип аргумента: lselsetp nil
mindchamber вне форума  
 
Автор темы   Непрочитано 05.02.2021, 11:42
#86
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


mindchamber, проверь сначала на ошибки (_audit)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 05.02.2021, 12:00
#87
mindchamber


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


Цитата:
Сообщение от VVA Посмотреть сообщение
mindchamber, проверь сначала на ошибки (_audit)
Пациент во вложениях, аудит не помогает.
Вложения
Тип файла: dwg
DWG 2013
Чертеж3.dwg (560.0 Кб, 16 просмотров)
mindchamber вне форума  
 
Автор темы   Непрочитано 06.02.2021, 20:47
1 | #88
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


mindchamber, Сделал _purge. Запустил версию 1.2g
Вложения
Тип файла: dwg
DWG 2010
Чертеж3 SF 1.2g.dwg (525.2 Кб, 15 просмотров)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 20.05.2021, 12:45
#89
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,917
<phrase 1=


Задам вопрос тут.
Можно как-то визуализировать (подсветить, выделить, пометить, указать) примитивы у которых проблемы с координатой Z ?
Вопрос связан с тем что есть чертежи у которых ошибка
Цитата:
Установлено в 0.000000.
Неверное число (Z координата) в объекте.
постоянно возникает при проверке, вне зависимости от того плющился чертеж или нет. При проверке пишет что исправлено, но повторный запуск опять выяляет данную проблему.
Отсюда и возникла мысль найти данный объект и вручную исправить.
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 20.05.2021, 14:00
#90
AlexCondor

инженер
 
Регистрация: 03.08.2007
Сообщений: 1,401


Цитата:
Сообщение от zenon Посмотреть сообщение
Можно как-то визуализировать (подсветить, выделить, пометить, указать) примитивы у которых проблемы с координатой Z ?
По частям правда, быстрый выбор. Для линии - Start Z или End Z, для окружностей - Center Z, не равно 0. Для полилиний - Elevation - не равно 0
AlexCondor вне форума  
 
Непрочитано 20.05.2021, 16:17
#91
kacugu

начинающий инженер-гидротехник
 
Регистрация: 18.04.2010
Санкт-Петербург
Сообщений: 910


Просьба к знатокам лиспа.
Лисп "SuperFlatten 2.0c" при "обнулении" взрывал мультивыноски (по-крайней мере у меня). На просторах инета был откопан следующий код и его адаптированная вариация вставлена в версию 2.0с (строки 2112-2129) :
Код:
[Выделить все]
 
(defun C:MLzero (/ SelectionSet i ii il mlEname ml)
	(setq SelectionSet (ssget "_X" '((0 . "MULTILEADER"))))
	(setq ii (sslength SelectionSet))
	(setq il 0)
	(repeat (setq i (sslength SelectionSet))
		(setq mlEname (ssname SelectionSet (setq i (1- i))))
		(if (/= 0 (last (assoc 10 (setq ml (entget mlEname)))))
			(progn 
				(setq il (1+ il))
				(entmod 
					(mapcar '(lambda (x) 
						(if 
						(and 
							(member (car x) '(10 12 110))
							(/= 1.0 (cadr x) (caddr x) (cadddr x))
						)
						(list (car x) (cadr x) (caddr x) 0.0)
						x)
					)
					(entget mlEname '("*"))
					)
				)
			);;end of progn
		)
	)
	(princ (strcat "\nПроверено " (itoa ii) " мультивыносок. Из них обработано " (itoa il)))
	(princ)
)
Что получилось - в приложении.
Собственно просьба: оценить найденный код на возможность использования, может там какие-нибудь подводные камни есть.
Вложения
Тип файла: zip SuperFlatten 2.0d.lsp.zip (29.8 Кб, 160 просмотров)
kacugu вне форума  
 
Непрочитано 21.05.2021, 13:55
#92
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,917
<phrase 1=


Цитата:
Сообщение от AlexCondor Посмотреть сообщение
По частям правда, быстрый выбор. Для линии - Start Z или End Z, для окружностей - Center Z, не равно 0. Для полилиний - Elevation - не равно 0
А если в блоке? анонимном? Взрывать? Не пойдет!
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 19.09.2024, 12:49
#93
posetitel


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


Тема не про лисп, а больше про настройку блока, но связана с обнулением координат.
Когда применяю автокадовскую команду flatten, то блок вместо обнуления координаты Z улетает куда-то в ад (кордината Z не обнуляется, а координата Y становится слишкм большой, обнуляется координата Х). Подскажите, в чем может быть дело, что не так с этим блоком?
Вложения
Тип файла: dwg
DWG 2013
Чертеж1.dwg (36.5 Кб, 4 просмотров)
posetitel вне форума  
 
Непрочитано 19.09.2024, 14:34
#94
Ingpro


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


Цитата:
Сообщение от posetitel Посмотреть сообщение
Когда применяю автокадовскую команду flatten, то блок вместо обнуления координаты Z улетает куда-то
У меня flatten обнулил Z и блок остался на месте, можно проверить ПСК (МИР). Блок простой, никакой магии...
Или выбрать подобные и в свойствах Z выставить 0.
Миниатюры
Нажмите на изображение для увеличения
Название: В Свойствах 0.png
Просмотров: 10
Размер:	28.4 Кб
ID:	264779  
Вложения
Тип файла: dwg
DWG 2013
Чертеж1-0.dwg (36.0 Кб, 0 просмотров)

Последний раз редактировалось Ingpro, 19.09.2024 в 14:41.
Ingpro вне форума  
 
Непрочитано 19.09.2024, 14:57
1 | #95
posetitel


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


Спасибо за ответ, он натолкнул на дальнейшие разбирательства. Полез в свои лиспы, и оказалось, что у меня был установлен вот такой простеньки лисп.

Код:
[Выделить все]
 ; Super-simple little routine to force
; all z-coordinants in a drawing to zero
; (with thanks to Randy Richardson and
; the Autodesk NG's).
;
; From Tee Square Graphics - 01/28/2000
; mod.by CAD Studio 27.4.2000

(defun C:FLATTEN ()
 (command "_.UCS" "")
 (command "_.move" "_all" "" '(0 0 1e99) ""
      "_.move" "_p" "" '(0 0 -1e99) "")
 (princ)
)
Он, получается, перехватывал команду автокада и сам уже мудрил с блоком.
Блок действительно простой до безобразия, сам лисп тоже в пару строчек всего. Почему перемещается блок при выполнении лиспа - непонятно, все остальные примитивы работают как надо. Собственно в этом и состоит мой вопрос.
Изменить руками координату Z в моем приложенном файле, безусловно, можно, но рабочий файл с кучей блоков и не только с таким, так что это не вариант.
В рабочем файле пользовался автокадовским флаттеном, он не смог все блоки изменить, поэтому видимо в свое время и пришлось устанавливать внешний лисп.
Миниатюры
Нажмите на изображение для увеличения
Название: Чертеж1.png
Просмотров: 8
Размер:	71.4 Кб
ID:	264781  

Последний раз редактировалось posetitel, 19.09.2024 в 15:26.
posetitel вне форума  
 
Непрочитано 19.09.2024, 15:30
#96
Ingpro


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


Цитата:
Сообщение от posetitel Посмотреть сообщение
all z-coordinants in a drawing to zero
Этот лисп переместил текст в начало координат, а блоки в положение Z=1.21E+83??? Если блоков несколько одинаковых, то они накладываются один на другой...
Ingpro вне форума  
 
Непрочитано 19.09.2024, 15:40
#97
posetitel


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


в начало координат ничего не перемещено, блоки переместились в координату Z=1.21E+83 только мои (зеленый крестик), которые прошу тут проверить, остальные блоки обнулили свою координату Z, надписи, линии все стало с координатой Z=0, кроме приложенного блока
posetitel вне форума  
 
Непрочитано 19.09.2024, 15:50
#98
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от posetitel Посмотреть сообщение
был установлен вот такой простеньки лисп.
Чертовски (потенциально) опасный код, если что
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 19.09.2024, 16:06
#99
posetitel


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


похоже, это "если что" и вылезло...
так в чем там дело то? почему опасный код?
posetitel вне форума  
 
Непрочитано 19.09.2024, 16:16
#100
Кулик Алексей aka kpblc
Moderator

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


1. Не отработает, если точка будет по Y где-нибудь в -1e80.
2. Работает только в текущей системе координат
3. Нарисуй полилиниюю с дуговыми сегментами в ПСК, повернутой относительно оси Ох (к примеру) на 45 градусов. Выполни код. Посмотри на результат.
4. Нарисуй коробку (тоже в немировой системе координат), помести куда-нибудь в 1e90. Выполни код.
И не забудь про _.audit
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум 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