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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Эта надоевшая координата Z...

Эта надоевшая координата Z...

Ответ
Поиск в этой теме
Непрочитано 05.08.2007, 16:59 #1
Эта надоевшая координата Z...
Dim@
 
Инженер GS
 
Москва
Регистрация: 01.08.2006
Сообщений: 81

Всем привет!
На работе возникла потребность в чистке и оптимизации файлов генпланов. Файлы состоят из множества внешних ссылок и блоков. В некоторых файлах присутствуют блоки и примитивы с ненулевыми Z. Прикрепленный файл является одним из файлов, который крепится к основному генплану как внешняя ссылка. Бьюсь уже неделю над этим, не могу убрать не нулевые Z, сохранив структуру блоков (не разрушив блок). К тому же команды flatten и overkill вешают мой относительно неслабый компьютер. HELP ME!
[ATTACH]1186318762.rar[/ATTACH]
Просмотров: 7325
 
Непрочитано 05.08.2007, 17:23
#2
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


Выдели все объекты, через вкладку свойства перейди на блоки, а там уже поменяй координату z.
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Автор темы   Непрочитано 05.08.2007, 17:39
#3
Dim@

Инженер GS
 
Регистрация: 01.08.2006
Москва
Сообщений: 81
<phrase 1=


DEM, может не совсем тебя правильно понял. Сделал как ты сказал, в свойствах блоков выставил нулевое Z. Не помогло. Выделяя таким же образом блоки и применяя к ним flatten, также не получил положительного результата.
Dim@ вне форума  
 
Непрочитано 05.08.2007, 18:05
#4
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


Хм не знаю как ты делал, но у меня получилось
[ATTACH]1186322711.rar[/ATTACH]
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Автор темы   Непрочитано 05.08.2007, 18:19
#5
Dim@

Инженер GS
 
Регистрация: 01.08.2006
Москва
Сообщений: 81
<phrase 1=


DEM, открываю твой файл, там елки в 3D произростают (View-3D Views-Front) и скамейки стоят. В идеале должна быть прямая линия.
Dim@ вне форума  
 
Непрочитано 05.08.2007, 18:27
#6
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


Блин странный ты человек, ТЗ было какое, все блоки по Z поставить в 0.
Попробуй проверить все блоки точка вставки их Z=0, то что блоки сделаны корявыми ручками Я не виноват.
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Непрочитано 05.08.2007, 18:33
#7
Аshаs-ка

проектировсчик
 
Регистрация: 06.01.2006
Москва
Сообщений: 1,986


Правильно ДЕМ говорит, если в блоках Z не нулевое, придется блоки перепахивать...
Аshаs-ка вне форума  
 
Автор темы   Непрочитано 05.08.2007, 18:34
#8
Dim@

Инженер GS
 
Регистрация: 01.08.2006
Москва
Сообщений: 81
<phrase 1=


Может быть не совсем правильно выразился в первом посте. Извиняюсь. Необходимо всё таки сделать 100%-ую проекцию на плоскость XY. Никаких 3D блоков и примитивов.
Dim@ вне форума  
 
Автор темы   Непрочитано 05.08.2007, 18:36
#9
Dim@

Инженер GS
 
Регистрация: 01.08.2006
Москва
Сообщений: 81
<phrase 1=


Цитата:
Сообщение от Аshаs-ка
Правильно ДЕМ говорит, если в блоках Z не нулевое, придется блоки перепахивать...
Вот в этом и вопрос, как преобразовать блоки в 2D, не разбив их в итоге.
Dim@ вне форума  
 
Непрочитано 05.08.2007, 22:11
#10
Кулик Алексей aka kpblc
Moderator

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


Ну народ, ну кто вам мешает сразу рисовать нормально?
В общем так, почти плющилка. Говорю сразу - работает очень медленно, не все [под]примитивы обрабыватывает, полного тестирования не выполнялось. Запуск - команда full-flat.
[ATTACH]1186337501.rar[/ATTACH]
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 05.08.2007, 23:04
#11
Аshаs-ка

проектировсчик
 
Регистрация: 06.01.2006
Москва
Сообщений: 1,986


Алексей-ака* (подхалимски-завистливо) : _ А у вас на все случаи жизни лечилки есть?
* ака - уважительное обращение к старшему по возрасту или опыту, старший брат в тюркских языках (правда, правда! Давно хотел сказать!)
Аshаs-ка вне форума  
 
Автор темы   Непрочитано 05.08.2007, 23:05
#12
Dim@

Инженер GS
 
Регистрация: 01.08.2006
Москва
Сообщений: 81
<phrase 1=


Крыс, сплющило всё кроме лавочек и елок. С ними как раз самая большая проблема.
Dim@ вне форума  
 
Непрочитано 06.08.2007, 09:06
#13
Кулик Алексей aka kpblc
Moderator

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


> Ashas-ka : Не на все Но можно и сделать (произносится гордо задрав нос и с размаху вляпавшись в первое же г**но)
> Dim@ : По-моему, елочки (да и лавочки тоже) нарисованы черт-те чем (в смысле фейсами и поверхностями). Их обработка, мягко говоря, вызывает баальшие проблемы. ИМХО (поскольку эти блоки повторяются) будет проще их сделать "руками". Копируется "вбок" подальше, руками выставляются масштабы на "побольше", положение Z при мировой системе коодинат - в 0, потом входишь в редактирование блока и flatten. Обработку 3dface и polyfacemesh (теоретически) можно выполнить и программно, только я не делал - времени не было
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 06.08.2007, 09:35
#14
Хмурый


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


А не проще-ли у "елочек" и им подобных блоков выставить Scale Z =0?
Точнее не 0, а И париться не надо
Хмурый вне форума  
 
Непрочитано 06.08.2007, 10:13
#15
lee


 
Регистрация: 28.02.2004
43
Сообщений: 1,819
<phrase 1=


Ну вот пришел поручик Ржевский и все испортил (с) : )))
Респект, Хмурый
lee вне форума  
 
Автор темы   Непрочитано 06.08.2007, 15:52
#16
Dim@

Инженер GS
 
Регистрация: 01.08.2006
Москва
Сообщений: 81
<phrase 1=


Уррррааааа! Получилось.
1. Применил этот Lisp (в Downloads нашел):
Код:
[Выделить все]
(defun C:FLATTEN1 ()
 (command "_.UCS" "")
 (command "_.move" "_all" "" '(0 0 1e99) ""
      "_.move" "_p" "" '(0 0 -1e99) "")
 (princ)
)
2. Выставил для елок Scale Z в 1e-12 (по совету тов. Хмурого).
Спасибо всем за помощь и участие!
Dim@ вне форума  
 
Непрочитано 06.08.2007, 15:59
#17
Кулик Алексей aka kpblc
Moderator

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


И стоит в файле нарисоваться всего одному примитиву не в текущей системе коодинат и получишь полную задницу. Для ради приколу сделай вид, например, спереди (Front) и проверни лисп. Только работай на копии.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 06.08.2007, 18:08
#18
Dim@

Инженер GS
 
Регистрация: 01.08.2006
Москва
Сообщений: 81
<phrase 1=


Цитата:
Сообщение от Кулик Алексей aka kpblc
И стоит в файле нарисоваться всего одному примитиву не в текущей системе коодинат и получишь полную задницу. Для ради приколу сделай вид, например, спереди (Front) и проверни лисп. Только работай на копии.
Понял опять начинают произрастать елки, но опять выставляешь scale в 1e-12, и всё становится на свои места, вот что у меня получается(см. прикрепленный файл).
Только вот непонятно, если сделать zoom->all, рисунок улетает в угол экрана. Что это интересно, может какие-нибудь скрыты элементы или ещё какая-нибудь бяка?
[ATTACH]1186409288.rar[/ATTACH]
Dim@ вне форума  
 
Непрочитано 07.08.2007, 03:00
#19
skif58

Наше дело труба
 
Регистрация: 19.11.2006
Томск_Комсомольск-на-Амуре
Сообщений: 1,736
<phrase 1= Отправить сообщение для skif58 с помощью Yahoo Отправить сообщение для skif58 с помощью Skype™


Цитата:
Сообщение от Dim@
...Только вот непонятно, если сделать zoom->all, рисунок улетает в угол экрана. Что это интересно, может какие-нибудь скрытые элементы или ещё какая-нибудь бяка?
Нет, - это не бяка. Это теперь к VOVA... Он лимиты "отменил", - теперь у всех профессиональных CAD-операторов такие чертежи... :wink: (добрая ехидная шутка).

zoom->all показывает и установленные Лимиты и все что нарисовано за их пределаии..., - вот и улетает.
Лимиты у вас стоят 0,0 - 420,297 , а здание в парке с размерами: 15000х24128 имеет координаты угла: Х=3363304, У=6805551
Переустановите Лимиты на территорию парка и он вернется.
skif58 вне форума  
 
Непрочитано 07.08.2007, 14:07
#20
Serge Krasnikov

Конструктор, инженер-механик на пенсии
 
Регистрация: 03.10.2003
Новосибирск
Сообщений: 6,953


Помнится мне, что бУло чЁто такое в ЕхЕ fido7.ru.acad, ну дык там публиковалась программа для обнуления координаты Z
Ну если поискать на гугле наверное можно найти, но мне сЯйчас влом
КрЫзЫс, прощАвАйтЯ.
Serge Krasnikov вне форума  
 
Непрочитано 07.08.2007, 14:14
#21
Кулик Алексей aka kpblc
Moderator

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


> Dim@ : блоки скамеек и елок нарисованы либо солидами, либо сетями. Ни то ни другое корректно лично мне обработать не удалось. Вариант: выбрать блок, и либо flatten, либо разбивать.
Рецепт Хмурого хорош тем, что особо напрягаться не надо. До первой вставки такого же блока.
> Serge Krasnikov : Поищу, но вот фразу "КрЫзЫс, прощАвАйтЯ." минут 5 перечитывал. Так и не понял.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 07.08.2007, 14:17
#22
Хмурый


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


Цитата:
Сообщение от Кулик Алексей aka kpblc
"КрЫзЫс, прощАвАйтЯ." минут 5 перечитывал. Так и не понял.
Вольный перевод: Прощайте, кризис...
Хмурый вне форума  
 
Автор темы   Непрочитано 07.08.2007, 16:28
#23
Dim@

Инженер GS
 
Регистрация: 01.08.2006
Москва
Сообщений: 81
<phrase 1=


Цитата:
Сообщение от Кулик Алексей aka kpblc
> Dim@ : блоки скамеек и елок нарисованы либо солидами, либо сетями. Ни то ни другое корректно лично мне обработать не удалось. Вариант: выбрать блок, и либо flatten, либо разбивать.
Стандартный flatten для этих блоков не работает. Придется наверное ручками перисовать блок в 2D, а потом заменять...
Dim@ вне форума  
 
Непрочитано 07.08.2007, 16:39
#24
Хмурый


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


Чего-то не пойму. Ну обнулили масштаб по Z. Вставили ещё кучу блоков. Если чертеж плоский должен быть- выделил через _qselect все блоки у которых Scale Z <>Not equal 0 и опять обнулил
Хмурый вне форума  
 
Автор темы   Непрочитано 07.08.2007, 18:21
#25
Dim@

Инженер GS
 
Регистрация: 01.08.2006
Москва
Сообщений: 81
<phrase 1=


Цитата:
Сообщение от Хмурый
Чего-то не пойму. Ну обнулили масштаб по Z. Вставили ещё кучу блоков. Если чертеж плоский должен быть- выделил через _qselect все блоки у которых Scale Z <>Not equal 0 и опять обнулил
Задача облегчить и упрстить файл, чтобы меньше тормозил, а этот способ проблемы не решает.
Dim@ вне форума  
 
Непрочитано 08.08.2007, 13:12
#26
Serge Krasnikov

Конструктор, инженер-механик на пенсии
 
Регистрация: 03.10.2003
Новосибирск
Сообщений: 6,953


Цитата:
Сообщение от Кулик Алексей aka kpblc
> Serge Krasnikov : Поищу, но вот фразу "КрЫзЫс, прощАвАйтЯ." минут 5 перечитывал. Так и не понял.
канешна, крызыс...
А ты Алексей про себя подумал
Serge Krasnikov вне форума  
 
Непрочитано 08.08.2007, 13:28
#27
Кулик Алексей aka kpblc
Moderator

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


Не-а, у меня мозги отключимшись были
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 09.08.2007, 15:35
#28
ASLYS

Delineante
 
Регистрация: 26.12.2006
Ростов-на-Дону/Madrid
Сообщений: 396
<phrase 1=


Код:
[Выделить все]
;|

Flatten.lsp

Version history
1.0	2003/05/14	Initial release.

Flattens all objects in all block objects (including ModelSpace and Layouts).
Warning! This *will* render 3D solids as flat, although they will still list as having a 3D bounding box.
Warning! This operation is *not* reversible. An Undo will *not* return objects to their original state.

Dependencies:	rrbI:axPoint
Usage: 		Command: Flatten
Arguments:	n/a
Returns: 	n/a

Copyright © 2003 by R. Robert Bell.

Permission to use this software for any purpose and without fee is hereby granted, 
provided that the above copyright notice appears in all copies and that both
the copyright notice and the limited warranty and restricted rights notice below 
appear in all supporting documentation.

R. ROBERT BELL PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
R. ROBERT BELL SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE.
R. ROBERT BELL DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM
WILL BE UNINTERRUPTED OR ERROR FREE.

RobertB@acadx.com

|;

(defun rrbI:axPoint  (Pt)                                                       ; translate point list into SafeArray
 (vlax-SafeArray-Fill
  (vlax-Make-SafeArray vlax-vbDouble (cons 0 (1- (length Pt))))
  Pt))

(defun C:Flatten  (/ Inp pt1 pt2 objDoc)
 (vl-Load-Com)                                                                  ; load ActiveX interface
 (princ                                                                         ; warn the user
  "\nWarning! This command will flatten even 3D solids, and cannot be undone.")
 (initget 0 "Yes No")                                                           ; permit <enter> and keywords
 (setq Inp (cond ((getkword "\nDo you wish to continue? [No/Yes] <No>: "))      ; get user input
                 ("No")))                                                       ; return default if <enter>
 (cond ((eq "Yes" Inp)                                                          ; if proceeding...
        (princ "\nFlattening the drawing,")                                     ; inform user
        (setq pt1    (rrbI:axPoint '(0.0 0.0 0.0))                              ; base point
              pt2    (rrbI:axPoint '(0.0 0.0 1e99))                             ; extreme point
              objDoc (vla-Get-ActiveDocument (vlax-Get-Acad-Object)))           ; get active document
        (vlax-Map-Collection
         (vla-Get-Layers objDoc)
         (function (lambda (objLayer) (vla-Put-Lock objLayer :vlax-False))))    ; unlock all layers
        (vlax-Map-Collection
         (vla-Get-Blocks objDoc)                                                ; for all blocks...
         (function (lambda (objBlk)                                             ; each object in a block
                    (vlax-Map-Collection
                     objBlk
                     (function (lambda (obj)
                                (vla-Move obj pt1 pt2)                          ; flatten by extreme move
                                (vla-Move obj pt2 pt1)))))))                    ; move back to 0,0,0
        (princ " done.")))                                                      ; inform user
 (princ))                                                                       ; clean exit
ASLYS вне форума  
 
Автор темы   Непрочитано 09.08.2007, 15:37
#29
Dim@

Инженер GS
 
Регистрация: 01.08.2006
Москва
Сообщений: 81
<phrase 1=


>ASLYS: Можешь пояснить, что делает лисп и как, а то не силен в программировании и английском.
Dim@ вне форума  
 
Непрочитано 09.08.2007, 15:41
#30
Кулик Алексей aka kpblc
Moderator

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


По-моему, то же самое, что и #16, только activex-методами.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 09.08.2007, 15:44
#31
ASLYS

Delineante
 
Регистрация: 26.12.2006
Ростов-на-Дону/Madrid
Сообщений: 396
<phrase 1=


пишут, что нужно хорошо подумать, прежде чем запустить,
в коде еще раз переспрашивают то же самое, отменить действие нельзя
что делает можно попробовать на елках из 1 поста
ASLYS вне форума  
 
Непрочитано 07.05.2009, 15:22
#32
Cyxoff


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


Нашел самый быстрый способ избавиться от значений по оси Z, т.е. привести !!чертежи!! к нулевому Z-ту. Берешь и заносишь весь чертеж в блок с точкой вставки в обсолютном нуле, чтобы потом поставить в то же место. После начинаешь вствлять, но перед этим ставишь значение scale по оси Z - 0.000001, поскольку нулевое значение акад сделать не позволяет. После вставки надо повторить енту поцедуру, но перед этим предыдущий блок разбить. Наверно какое-то значение по Z-ту после этого будет, но оно будет приближенно к размеру молекулы. Но это не для моделей, а для чертежей.
Cyxoff вне форума  
 
Непрочитано 07.05.2009, 15:45
#33
VVA

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


По мне самый простой способ этот:
Код:
[Выделить все]
(defun C:Z0 ()
 (command "_.UCS" "")
 (command "_.move" "_all" "" '(0 0 1e99) ""
 "_.move" "_p" "" '(0 0 -1e99) "")
 (princ)
)
Еть еще различные варианты
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 07.05.2009, 16:49
#34
Cyxoff


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


VVA - спасибо за подсказку, но я не програмист. Объясни как правильно сделать чтобы енто заработало. В какой каталог вставить и какие пути прописать в твоем коде
Cyxoff вне форума  
 
Непрочитано 07.05.2009, 19:40
#35
AlphaGeo


 
Сообщений: n/a


Цитата:
Сообщение от Cyxoff Посмотреть сообщение
VVA - спасибо за подсказку, но я не програмист. Объясни как правильно сделать чтобы енто заработало. В какой каталог вставить и какие пути прописать в твоем коде
Cyxoff, а ты почитай статью, ссылка на которую есть в подписи VVA.
 
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Эта надоевшая координата Z...