SB
Size: a a a
SB
AS
AS
GB
AS
A
SB
VA
A
z
function DrawLine_com(operands:TCommandOperands):TCommandResult;ИМХО такой подход гораздо проще и лаконичней любых конечных автоматов и команд-классов.
var
pline:PGDBObjLine;
p1,p2:gdbvertex;
begin
{запрос первой координаты}
if commandmanager.get3dpoint(rscmSpecifyFirstPoint,p1) then
while true do
{запрос следующей координаты
с рисованием резиновой линии от базовой точки p1}
if commandmanager.Get3DPointWithLineFromBase(rscmSpecifyNextPoint,p1,p2) then begin
//создаем и инициализируем примитив
pline:=AllocEnt(GDBLineID);
pline^.init(nil,nil,LnWtByLayer,p1,p2);
//присваиваем текущие цвет, толщину, и т.д. от настроек чертежа
zcSetEntPropFromCurrentDrawingProp(pline);
//добавляем в чертеж
zcAddEntToCurrentDrawingWithUndo(pline);
//перерисовываем
zcRedrawCurrentDrawing;
p1:=p2;
end else
system.break;
result:=cmd_ok;
end;
VA
function DrawLine_com(operands:TCommandOperands):TCommandResult;ИМХО такой подход гораздо проще и лаконичней любых конечных автоматов и команд-классов.
var
pline:PGDBObjLine;
p1,p2:gdbvertex;
begin
{запрос первой координаты}
if commandmanager.get3dpoint(rscmSpecifyFirstPoint,p1) then
while true do
{запрос следующей координаты
с рисованием резиновой линии от базовой точки p1}
if commandmanager.Get3DPointWithLineFromBase(rscmSpecifyNextPoint,p1,p2) then begin
//создаем и инициализируем примитив
pline:=AllocEnt(GDBLineID);
pline^.init(nil,nil,LnWtByLayer,p1,p2);
//присваиваем текущие цвет, толщину, и т.д. от настроек чертежа
zcSetEntPropFromCurrentDrawingProp(pline);
//добавляем в чертеж
zcAddEntToCurrentDrawingWithUndo(pline);
//перерисовываем
zcRedrawCurrentDrawing;
p1:=p2;
end else
system.break;
result:=cmd_ok;
end;
AS
function DrawLine_com(operands:TCommandOperands):TCommandResult;ИМХО такой подход гораздо проще и лаконичней любых конечных автоматов и команд-классов.
var
pline:PGDBObjLine;
p1,p2:gdbvertex;
begin
{запрос первой координаты}
if commandmanager.get3dpoint(rscmSpecifyFirstPoint,p1) then
while true do
{запрос следующей координаты
с рисованием резиновой линии от базовой точки p1}
if commandmanager.Get3DPointWithLineFromBase(rscmSpecifyNextPoint,p1,p2) then begin
//создаем и инициализируем примитив
pline:=AllocEnt(GDBLineID);
pline^.init(nil,nil,LnWtByLayer,p1,p2);
//присваиваем текущие цвет, толщину, и т.д. от настроек чертежа
zcSetEntPropFromCurrentDrawingProp(pline);
//добавляем в чертеж
zcAddEntToCurrentDrawingWithUndo(pline);
//перерисовываем
zcRedrawCurrentDrawing;
p1:=p2;
end else
system.break;
result:=cmd_ok;
end;
AS
function DrawLine_com(operands:TCommandOperands):TCommandResult;ИМХО такой подход гораздо проще и лаконичней любых конечных автоматов и команд-классов.
var
pline:PGDBObjLine;
p1,p2:gdbvertex;
begin
{запрос первой координаты}
if commandmanager.get3dpoint(rscmSpecifyFirstPoint,p1) then
while true do
{запрос следующей координаты
с рисованием резиновой линии от базовой точки p1}
if commandmanager.Get3DPointWithLineFromBase(rscmSpecifyNextPoint,p1,p2) then begin
//создаем и инициализируем примитив
pline:=AllocEnt(GDBLineID);
pline^.init(nil,nil,LnWtByLayer,p1,p2);
//присваиваем текущие цвет, толщину, и т.д. от настроек чертежа
zcSetEntPropFromCurrentDrawingProp(pline);
//добавляем в чертеж
zcAddEntToCurrentDrawingWithUndo(pline);
//перерисовываем
zcRedrawCurrentDrawing;
p1:=p2;
end else
system.break;
result:=cmd_ok;
end;
z
GB
function DrawLine_com(operands:TCommandOperands):TCommandResult;ИМХО такой подход гораздо проще и лаконичней любых конечных автоматов и команд-классов.
var
pline:PGDBObjLine;
p1,p2:gdbvertex;
begin
{запрос первой координаты}
if commandmanager.get3dpoint(rscmSpecifyFirstPoint,p1) then
while true do
{запрос следующей координаты
с рисованием резиновой линии от базовой точки p1}
if commandmanager.Get3DPointWithLineFromBase(rscmSpecifyNextPoint,p1,p2) then begin
//создаем и инициализируем примитив
pline:=AllocEnt(GDBLineID);
pline^.init(nil,nil,LnWtByLayer,p1,p2);
//присваиваем текущие цвет, толщину, и т.д. от настроек чертежа
zcSetEntPropFromCurrentDrawingProp(pline);
//добавляем в чертеж
zcAddEntToCurrentDrawingWithUndo(pline);
//перерисовываем
zcRedrawCurrentDrawing;
p1:=p2;
end else
system.break;
result:=cmd_ok;
end;
AS
z
z
ДT
АВ