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

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

Как переместить автоматически нарисованную мной линии на задний план

Ответ
Поиск в этой теме
Непрочитано 02.02.2011, 07:08 #1
Как переместить автоматически нарисованную мной линии на задний план
azetown
 
Регистрация: 02.02.2011
Сообщений: 52

Пишу простенькую программу на Delhi Суть ее така я есть топоплан с линиями отметками высот я рисую линию и на этой линии отмечаю необходимые точки мне, по ним узнаю растояние и высоту.
Встала такая задача:
необходимо нарисованную линию отправить на задний план. как это сделать? Или узнать координату Z в точке пересечения с другой линией

Пример кода
Код:
[Выделить все]
var
  FP, TP: OleVariant ;
  ACL1 : IAcadLine ;
...
begin
FP:=VarArrayCreate([0, 2], varDouble);
TP:=VarArrayCreate([0, 2], varDouble);
//здесь рисую линию 
acl1:=AcadDocument1.ModelSpace.AddLine(fp,tp);
//как отправить линию на задний план???
...
//или как узнать координату z в точке пересечения с другой линией
FP:= AcadDocument1.Utility.GetPoint(EmptyParam,'Укажите координаты' ) ;
// почему то всегда выдает FP[2]=0 (z координата)
ил
Просмотров: 4407
 
Непрочитано 02.02.2011, 08:39
#2
Сергей Богатов


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


пересечение
см. IntersectWith

перемещение на задний план
Код:
[Выделить все]
ThisDrawing.SendCommand "_draworder" & vbCr & "L" & vbCr & vbCr & "Back" & vbCr
это сразу после создания объекта надо делать(это медленный и кривой способ).
Или читай про MoveToBottom(это быстрый способ, но кода нет-делай сам).
Ну или что нибудь через LISP(или как нибудь ещё?), но тут я уже не советчик

з.ы
всё это легко найти в помощи для Autocad
__________________
Я-проектировщик бывший проектировщик!

Последний раз редактировалось Сергей Богатов, 02.02.2011 в 09:07.
Сергей Богатов вне форума  
 
Непрочитано 02.02.2011, 09:05
#3
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Сергей Богатов Посмотреть сообщение
перемещение на задний план
Код:
[Выделить все]
ThisDrawing.SendCommand "_draworder" & vbCr & "L" & vbCr & vbCr & "Back" & vbCr
это сразу после создания объекта надо делать(это медленный способ).
Или читай про MoveToBottom(это быстрый способ, но кода нет-делай сам).
Ну или что нибудь через LISP(или как нибудь ещё?), но тут я уже не советчик

з.ы
всё это легко найти в помощи для Autocad
Предложенный вариант решения плох, т.к. SendCommand запускается в асинхронном режиме, а значит вовсе не факт, что будет выбран именно тот примитив, который ожидается.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 02.02.2011, 09:09
#4
Сергей Богатов


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


Цитата:
Сообщение от hwd Посмотреть сообщение
Предложенный вариант решения плох, т.к. SendCommand запускается в асинхронном режиме, а значит вовсе не факт, что будет выбран именно тот примитив, который ожидается.
Согласен, но я же предложил и другой способ
P.S.
На всякий случай поправил
Цитата:
это сразу после создания объекта надо делать(это медленный и кривой способ).
__________________
Я-проектировщик бывший проектировщик!
Сергей Богатов вне форума  
 
Непрочитано 02.02.2011, 09:16
#5
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


По теме топика можно глянуть эту статью (не Delphi, но думаю, что понять суть можно будет).
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Автор темы   Непрочитано 04.02.2011, 13:48
#6
azetown


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


Цитата:
Сообщение от Сергей Богатов Посмотреть сообщение
перемещение на задний план

Код:

ThisDrawing.SendCommand "_draworder" & vbCr & "L" & vbCr & vbCr & "Back" & vbCr
Для меня вроде пока что подходит получилось вот что
Код:
[Выделить все]
   AcadDocument1.SendCommand('_draworder Последний  Задний ');
В принципе устраивает буду дальше в этом направлении копать если что получится напишу
azetown вне форума  
 
Непрочитано 04.02.2011, 14:03
#7
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от azetown Посмотреть сообщение
Для меня вроде пока что подходит
Это до первых граблей, а они не заставят себя долго ждать ибо асинхронная природа метода тому способствует.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как переместить автоматически нарисованную мной линии на задний план



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание нового типа линий Apelsinov AutoCAD 915 08.07.2022 12:36
как слой убрать на задний план SemMaster AutoCAD 35 06.09.2017 22:20
Как в autocad достроить линии до предполагаемого пересечения автоматически? pavelP2009 AutoCAD 21 05.05.2010 16:47