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

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

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

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

Всем привет!
На работе возникла потребность в чистке и оптимизации файлов генпланов. Файлы состоят из множества внешних ссылок и блоков. В некоторых файлах присутствуют блоки и примитивы с ненулевыми Z. Прикрепленный файл является одним из файлов, который крепится к основному генплану как внешняя ссылка. Бьюсь уже неделю над этим, не могу убрать не нулевые Z, сохранив структуру блоков (не разрушив блок). К тому же команды flatten и overkill вешают мой относительно неслабый компьютер. HELP ME!
[ATTACH]1186318762.rar[/ATTACH]
Просмотров: 7327
 
Непрочитано 07.08.2007, 14:14
#21
Кулик Алексей aka kpblc
Moderator

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


> 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,408


Не-а, у меня мозги отключимшись были
__________________
Моя библиотека 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,408


По-моему, то же самое, что и #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...