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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > C3D_2012_64 Перенос характерных линий на другую площадку программно

C3D_2012_64 Перенос характерных линий на другую площадку программно

Ответ
Поиск в этой теме
Непрочитано 20.03.2012, 20:54 #1
C3D_2012_64 Перенос характерных линий на другую площадку программно
5hev
 
roads
 
msk
Регистрация: 22.12.2010
Сообщений: 121

Уважаемые знатоки!
Не нашел решения данной проблемы ни в форумах, ни в документации. В объектной модели у характерок даже нет такого свойства, как имя площадки-родителя. Что делать, ума не приложу? Каков механизм работы этой функции - COPYTOSITE?

Почему возник данный вопрос?
В чертеже более 200 характерок на более чем 50 площадках. Необходимо было скопировать все ХЛ на одну (новую) площадку. Обычными средствами C3D сделать не получилось: при таком количестве ХЛ функция просто-напросто сбрасывается.

Последний раз редактировалось 5hev, 22.03.2012 в 10:08.
Просмотров: 3494
 
Автор темы   Непрочитано 23.03.2012, 22:34
#2
5hev

roads
 
Регистрация: 22.12.2010
msk
Сообщений: 121
<phrase 1= Отправить сообщение для 5hev с помощью Skype™


Решил.
Код:
[Выделить все]
 (defun c_MovetoSite  (obj site / vlaFLplist vla3DPoly vlaNewFL colBreaklines listVlaBreaklineEntities)
    (setq vlaFLplist (vlax-variant-value (vlax-invoke-method obj "GetPoints" 1))
	  vla3DPoly  (vla-Add3DPoly mspace vlaFLplist)
	  vlaNewFL   (vlax-invoke-method
		       (vlax-get-property site "FeatureLines")
		       "AddFromPolyline"
		       (vla-get-ObjectID vla3DPoly)
		       '"Основная характерная линия"))
    (vla-Delete vla3DPoly)
    (vlax-for surface  (vlax-get-property cAppDoc "Surfaces")
      (if (and (wcmatch (vla-get-ObjectName surface) "*Tin")
	       (vlax-property-available-p surface "Breaklines")
	       (setq colBreaklines (vlax-get-property surface "Breaklines")))
	(vlax-for breakline  colBreaklines
	  (if
	    (and
	      (setq listVlaBreaklineEntities (vlax-variant-value (vlax-get-property breakline "BreakLineEntities")))
	      (not (VL-CATCH-ALL-ERROR-P (VL-CATCH-ALL-APPLY 'vlax-safearray->list (list listVlaBreaklineEntities))))
	      )
	     (foreach entity  (setq listVlaBreaklineEntities (vlax-safearray->list listVlaBreaklineEntities))
	       (if (equal (vla-get-ObjectID entity) (vla-get-ObjectID obj))
		 (progn	(vlax-invoke-method colBreaklines "Remove" 0)
			(vlax-invoke-method
			  colBreaklines
			  "AddStandardBreakline"
			  (c_SafeArray (subst vlaNewFL obj listVlaBreaklineEntities))
			  "Структурки_LISP"
			  1.0)))))))))
5hev вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > C3D_2012_64 Перенос характерных линий на другую площадку программно

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перенос текста на другую строку Димас AutoCAD 35 25.05.2023 10:31
Создание нового типа линий Apelsinov AutoCAD 915 08.07.2022 12:36
перенос всех линий слоя в блоках в другой слой Positron Программирование 6 10.02.2012 15:59
Программно заполнить рамку чертежами и открыть другую solo123 Программирование 2 25.02.2011 19:46
Перенос опор воздушных линий электропередач TORAR Технология и организация строительства 5 30.04.2009 06:52