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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Опять о координате Z. Программа перебирающая все примитивы с Z<>0.

Опять о координате Z. Программа перебирающая все примитивы с Z<>0.

Ответ
Поиск в этой теме
Непрочитано 19.04.2013, 18:01
Опять о координате Z. Программа перебирающая все примитивы с Z<>0.
Sysvju
 
проектант
 
Регистрация: 12.12.2012
Сообщений: 125

Работаю с AutoCAD Mechanical, пробовал большинство программ для "сплющивания" чертежей, но результат все равно оставляет желать лучшего. Большинство программ, ссылки на которых указаны на форуме просто зависают или изменяют примитивы, особенно касается полилиний и радиусов.

Поэтому и возник вопрос. Может быть кто сталкивался или видел где программку на лиспе, которая работала бы по методу "Quick Select", где можно выбрать все примитивы чертежа (линии, полилинии, окружности и etc.), для которых Z не равна 0. А затем автомотически происходило замещение, например для линий Start Z, End Z на 0.

Буду признателен за любую помощь.
Просмотров: 10465
 
Автор темы   Непрочитано 23.04.2013, 12:42
#21
Sysvju

проектант
 
Регистрация: 12.12.2012
Сообщений: 125


Цитата:
Сообщение от Елпанов Евгений Посмотреть сообщение
Программу не тестировал...
Программу протестировал, работает отлично, но если линия лежит в блоке, вложенном в блок, то программа ее не обнуляет, а таких вложений может быть несколько :-(.
Поторопился с выводами - не во всех блоках "первого уровня" обнуляет Z координаты линий!

И если можно дополните программу, что бы "Position Z" блоков и "Center Z" окружностей и дуг сбрасывались на ноль.
Заранее благодарен и не сочтите за наглость.

Последний раз редактировалось Sysvju, 23.04.2013 в 16:05. Причина: программа охватывает не все блоки
Sysvju вне форума  
 
Непрочитано 23.04.2013, 18:04
#22
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,440
Отправить сообщение для Елпанов Евгений с помощью Skype™


Ты бы выложил тестовые файлы, где работает, где не работает, что нужно изменить...

ps. по поводу вложенных блоков, тут нужно обновлять все блоки с используемой вложенностью. Т.е обновлять внутри блока вставку блоков. А там дальше начнутся вопросы по внешним ссылкам и правам доступа к ним.
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Непрочитано 23.04.2013, 19:15
#23
VVA

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


Цитата:
Сообщение от Sysvju Посмотреть сообщение
И если можно дополните программу, что бы "Position Z" блоков и "Center Z" окружностей и дуг сбрасывались на ноль
Я когда-то писал подобное. Обнуляет путем замены Z=0 все примитивы по dxf кодам 10 11 12 13 14 38, исключая 3DSOLID и дополнительно обрабатывая размеры (10 11 12 13 14)
Объекты "плющатся" только в текущем пространстве. Содержимое блоков не обрабатывается (не стояло такой задачи)
Вложения
Тип файла: lsp Z0.LSP (10.8 Кб, 207 просмотров)
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 27.02.2018 в 20:33. Причина: Новая версия Обработка OLE объектов
VVA вне форума  
 
Автор темы   Непрочитано 24.04.2013, 09:38
#24
Sysvju

проектант
 
Регистрация: 12.12.2012
Сообщений: 125


Цитата:
Сообщение от Елпанов Евгений Посмотреть сообщение
тестовые файлы, где работает, где не работает, что нужно изменить
не совсем понимаю, где их взять нужно эти текстовые файлы? подскажи плз.

Цитата:
Сообщение от VVA Посмотреть сообщение
Объекты "плющатся" только в текущем пространстве.
Эта программа линии тоже "плющит"?
Sysvju вне форума  
 
Непрочитано 24.04.2013, 09:42
#25
Кулик Алексей aka kpblc
Moderator

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


Sysvju, сравни:
тестовые
текстовые
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 24.04.2013, 10:11
#26
Sysvju

проектант
 
Регистрация: 12.12.2012
Сообщений: 125


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
тестовые
текстовые

Намек понял.
Вложения
Тип файла: dwg
DWG 2010
test.dwg (80.6 Кб, 2793 просмотров)
Sysvju вне форума  
 
Непрочитано 24.04.2013, 16:57
#27
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,440
Отправить сообщение для Елпанов Евгений с помощью Skype™


тестируй...
Код:
[Выделить все]
 
(defun c:z0b (/ f)
  ;; Обнуление высоты начальной и конечной точек линий, внутри всех блоков.
  ;; Изменение высоты производится в системе координат блока.
  ;; Линии, лежащие на заблокированном слое, будут проигнорированы.
  (vl-load-com)
  (defun f (p)
    (vlax-3d-point
      (reverse
	(cons 0.0
	      (cdr (reverse (vlax-safearray->list
			      (vlax-variant-value p)
			    )
		   )
	      )
	)
      )
    )
  )
  (vlax-for b (vla-get-Blocks
		(vla-get-ActiveDocument (vlax-get-acad-object))
	      )
    ;;(setq b (vla-item (vla-get-Blocks (vla-get-ActiveDocument (vlax-get-acad-object)) )"A$C506D504D"))
    (vlax-for o	b
      ;;(setq o(vla-item b 16))
      (cond((= (vla-get-ObjectName o) "AcDbLine")
	     (vla-put-StartPoint o (f (vla-get-StartPoint o)))
	     (vla-put-EndPoint o (f (vla-get-EndPoint o)))
	   )
	   ((= (vla-get-ObjectName o) "AcDbBlockReference")
	    (vla-put-InsertionPoint o(f (vla-get-InsertionPoint o)))
	   )
	   ((wcmatch (vla-get-ObjectName o) "AcDbArc,AcDbCircle")
	    (vla-put-center o(f (vla-get-center o)))
	   )
      )
    )
  )
  (princ)
)
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Непрочитано 24.04.2013, 20:41
#28
VVA

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


Цитата:
Сообщение от Sysvju Посмотреть сообщение
Эта программа линии тоже "плющит"?
А взять и проверить?
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 25.04.2013, 09:41
#29
Sysvju

проектант
 
Регистрация: 12.12.2012
Сообщений: 125


Цитата:
Сообщение от Елпанов Евгений Посмотреть сообщение
тестируй...

Код:
[Выделить
вроде работает, спасибо.
Sysvju вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Опять о координате Z. Программа перебирающая все примитивы с Z<>0.

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какой язык перспективен для инженера-конструктора с условием The_Mercy_Seat Программирование 669 24.03.2017 20:16
Фундамент с динамическими нагрузками в Scad Tlelaxu SCAD 9 31.08.2007 10:44