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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как найти и удалить 3D тело на в файле 2D чертежа

Как найти и удалить 3D тело на в файле 2D чертежа

Ответ
Поиск в этой теме
Непрочитано 13.12.2016, 12:40 #1
Как найти и удалить 3D тело на в файле 2D чертежа
reddysss
 
Регистрация: 07.12.2016
Сообщений: 10

Приветствую!
В чертеже присутствует 3D объект EXPLODEALLPROXY его не видит и REMOVEALLPROXY тоже
соответственно внедрение ссылок не работает причем выдает сообщение что внедрение не произошло по вине прокси объекта
Подскажите как бы удалить эти объекты, оставив 2D объекты без изменений?
Просмотров: 3622
 
Непрочитано 13.12.2016, 12:45
#2
Кулик Алексей aka kpblc
Moderator

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


Файл покажи, в котором есть это "3D-тело"
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 13.12.2016, 12:57
#3
reddysss


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


как показать ?
скрин или выслать?
reddysss вне форума  
 
Непрочитано 13.12.2016, 12:59
#4
Кулик Алексей aka kpblc
Moderator

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


К посту приложить
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 13.12.2016, 13:09
#5
reddysss


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


Вот чертеж
Вложения
Тип файла: dwg
DWG 2010
1111.dwg (4.36 Мб, 19 просмотров)
reddysss вне форума  
 
Непрочитано 13.12.2016, 13:36
#6
zenon

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


куча прокси и дофига 3D объектов.
Нажмите на изображение для увеличения
Название: 11111.jpg
Просмотров: 38
Размер:	53.2 Кб
ID:	180722
От прокси почистил.
1111_rev1.dwg

ниже лог очистки
Команда: EXPLODEALLPROXY

Удалено Proxy: 78 Новых объектов: 78
Команда: REMOVEALLPROXY

Первая метка объекта: <1>, последняя метка объекта: <C041>
Всего найдено proxy-объектов: 981. Из них proxy-примитивов: 2.
Всего удалено proxy-объектов: 981. Из них proxy-примитивов: 2.
Для проверки ошибок выполните команду _AUDIT
Команда: _AUDIT

Исправить все обнаруженные ошибки? [Да/Нет] <Н>: _Y



Проверка заголовка


Проверка таблиц


Проверка объектов, проход 1

Проход 1: проверено объектов: 31500 AcDbSpatialIndex(ADE0)
восстановлен.
Проход 1: проверено объектов: 32500
Проверка объектов, проход 2

Проход 2: проверено объектов: 32500
Проверка блоков


Проверено блоков: 35

Всего найдено ошибок: 1, исправлено: 1
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 13.12.2016, 13:38
#7
Кулик Алексей aka kpblc
Moderator

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


Во-первых, в файле следы вертикальных приложений и СПДС GraphiCS:
Код:
[Выделить все]
Command: EXPLODEALLPROXY

Удалено Proxy: 79 Новых объектов: 79
Command: REMOVEALLPROXY

Первая метка объекта: <1>, последняя метка объекта: <C03F>
Всего найдено proxy-объектов: 979. Из них proxy-примитивов: 2.
Всего удалено proxy-объектов: 979. Из них proxy-примитивов: 2.
Для проверки ошибок выполните команду _AUDIT
Во-вторых, в файле есть 3DSOLID, 3DFace, 3DPolyline. Тебе что надобно?
И, кстати, где твой код?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 13.12.2016, 13:39
#8
reddysss


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


Мне программно надо надо удалить все 3D объекты

----- добавлено через ~6 мин. -----
ThisDrawing = Acad.ActiveDocument
For Each objBlock In ThisDrawing.Blocks
If objBlock.IsXRef = True Then
'тут пытаю ссылки, если не внедряются то пытаю уже файлы с помощью explodeallproxy и removeallproxy
EndIf
Next
'если ссылок нет, но файл не внедрился значит там 3D объект и мне надо его удалить

----- добавлено через ~8 мин. -----
мне надо удалить все 3d объекты
reddysss вне форума  
 
Непрочитано 13.12.2016, 13:48
#9
Кулик Алексей aka kpblc
Moderator

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


reddysss, у тебя не .NET, а VBA. Тему перемещаю.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 13.12.2016, 13:50
#10
reddysss


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


не VBA
VB.NET!!!
reddysss вне форума  
 
Непрочитано 13.12.2016, 13:50
#11
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от reddysss Посмотреть сообщение
Мне программно надо надо удалить все 3D объекты
Повторяю вопрос: что из 3d-объектов надо удалять? Твердые тела? Поверхности? 3DFace? Полилинии? И точно удалять или их разбить?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 13.12.2016, 13:52
#12
reddysss


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


Повторяю разбивать не надо, просто удалить все 3D объекты
самое главное как мне их найти на чертеже программно и удалить!!
reddysss вне форума  
 
Непрочитано 13.12.2016, 14:55
#13
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


VB/net говоришь...
ну попробуй так =о)
Код:
[Выделить все]
Dim acEnt As Entity
If acEnt.GetType().ToString().Contains("3D") Then
  acEnt.Dispose()
End If
Хотя это редкостные костыли =о) И делать нужно совсем по другому, да и использовать COM в рамках .NET платформы в автокаде, вне всяких оценок.
Boxa вне форума  
 
Автор темы   Непрочитано 13.12.2016, 15:20
#14
reddysss


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


а как нужно делать?
я только за что б встать на путь истинный

----- добавлено через ~1 мин. -----
и Entity это AcadEntity?
reddysss вне форума  
 
Непрочитано 13.12.2016, 15:51
#15
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Цитата:
Сообщение от reddysss Посмотреть сообщение
и Entity это AcadEntity?
наверное, но приведенный код, это скорее шутка, но в ней намек как можно сделать.
т.е. получить имя класса объекта в форме строки и проверить есть ли в этой строке подстрока "3d", как это переписать на COM я не очень хочу разбираться, но думаю, что выглядеть должно похоже.

Как правильно... ИМХО, наверное перейти на .net api, наличие 3d и прокси проверять не попыткой вставки xref, а прямой проверкой файлов, у класса Entity не так уж и много 3d наследников, можно прямо прописать какие типы объектов удалить, так же в сети есть пример удаления прокси объектов на .net, так что этот костыль так же можно убрать... дальше по вкусу.
Boxa вне форума  
 
Автор темы   Непрочитано 15.12.2016, 08:20
#16
reddysss


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


Возвращаясь к вопросу удаления 3D объектов
перед тем как выложить чертеж я на него натравил EXPLODEALLPROXY и REMOVEALLPROXY и у меня было Удалено Proxy: 0 Новых объектов: 0
как так получается??
reddysss вне форума  
 
Непрочитано 15.12.2016, 08:33
#17
Кулик Алексей aka kpblc
Moderator

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


reddysss, а при чем тут это? Тебе же предложили вариант - проходишь по примитивам пространства модели и удаляешь примитив, отвечающий соответствующим требованиям.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 15.12.2016, 09:04
#18
trir


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


3d объекты не прокси
trir вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как найти и удалить 3D тело на в файле 2D чертежа

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как удалить прошлые разрезы, как сделать новый 2d, 3d разрез (Autocad Architecture 2012) nickolay198 Вертикальные решения на базе AutoCAD 12 20.02.2013 12:02
Как разрезать 3D тело по контуру одной из его граней? Jack Jones AutoCAD 3 07.12.2012 21:36
Как из 3d модели сделать 2d чертёж, связанный с 3d моделью? IKArus AutoCAD 16 11.06.2012 16:35
Преобразовать 3D модель в 2D чертеж Dellirium AutoCAD 14 24.11.2009 09:32
как 3D передлать 2D LevLLIae6 AutoCAD 7 05.11.2009 22:20