Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
kad3
Зарегистрирован: 11.02.2016 Сообщения: 4
|
Добавлено: Чт Фев 11, 2016 1:54 pm Заголовок сообщения: Формирование каталога координат мнгоконтурного ЗУ |
|
|
Добру день!
Суть проблемы в следующем формирую таблицу "Каталог координат" туда заносятся номер точки, Х, У, длина линии, румб, дир.угол, и есть поле от точки до точки. Вопрос по полю "от точки до точки", по простому участку все просто "1-2, 2-3, 3-4, 4-1", а вот по мнококонтурному так не выходит, может кто подскажет как вставить пустую строку-разделитель в таблицу формировать сквозную нумерацию по контурам? "1-2, 2-3, 3-4, 4-1, 5-6, 6-7, 7-8, 8-5"? |
|
Вернуться к началу |
|
|
thegeo
Зарегистрирован: 17.01.2012 Сообщения: 119
|
Добавлено: Чт Фев 11, 2016 9:54 pm Заголовок сообщения: |
|
|
Пример. В данном случае результат выводится в окно "Сообщение". Полагаю, что вы сможете приладить это для своих целей.
sub testPrint(ob as object)
dim cnt,i,j,k,n,n0 as integer
dim xx(),yy() as float
dim x1,y1,x2,y2,s as float
dim sNum as string
cnt=ObjectInfo(ob,OBJ_INFO_NPOLYGONS)
print "Контур 1"
for i=1 to cnt
call getNodesInfo(ob,i,yy,xx)
k=ubound(xx)-1
for j=1 to k
n=n+1
if j=1 then n0=n end if
x1=xx(j)
y1=yy(j)
x2=xx(j+1)
y2=yy(j+1)
s = Sqr((x2-x1) * (x2-x1) + (y2-y1) * (y2-y1))
if j<k then
sNum=str$(n) & " - " & str$(n+1)
else
sNum=str$(n) & " - " & str$(n0)
end if
print sNum & format$(s," #.#0")
next
if i<cnt then
print "Контур " & str$(i+1)
end if
next
end sub
'возвращает массив координат для контура
'ob - область
'nc - номер контура
Sub getNodesInfo(ob As object, ByVal nc As Integer, xx() As float, yy() As float)
Dim j, k As Integer
onerror goto ex
k = ObjectInfo(ob,OBJ_INFO_NPOLYGONS + nc)
redim xx(k)
redim yy(k)
For j = 1 To k
xx(j)=ObjectNodeX(ob,nc,j)
yy(j)=ObjectNodeY(ob,nc,j)
Next
Exit Sub
ex:
note Error$()
End Sub |
|
Вернуться к началу |
|
|
kad3
Зарегистрирован: 11.02.2016 Сообщения: 4
|
Добавлено: Пт Фев 12, 2016 7:18 am Заголовок сообщения: |
|
|
thegeo писал(а): |
Пример. В данном случае результат выводится в окно "Сообщение". Полагаю, что вы сможете приладить это для своих целей.
|
Спасибо. Попробую.
Все получилось! Ещё раз спасибо.
правда не так красиво как в примере, но главное работает. |
|
Вернуться к началу |
|
|
kad3
Зарегистрирован: 11.02.2016 Сообщения: 4
|
Добавлено: Чт Фев 18, 2016 2:31 pm Заголовок сообщения: |
|
|
Ещё возник один вопрос, можно ли сразу задать оформление таблицы в окне списка в коде программы. Например чтоб шрифт был Times New Roman CYR размером 10? |
|
Вернуться к началу |
|
|
thegeo
Зарегистрирован: 17.01.2012 Сообщения: 119
|
Добавлено: Чт Фев 18, 2016 8:42 pm Заголовок сообщения: |
|
|
Можно через оператор
Set Window browseID Font MakeFont("New Roman CYR",0,10,0,16777215)
здесь browseID идентификатор окна списка |
|
Вернуться к началу |
|
|
kad3
Зарегистрирован: 11.02.2016 Сообщения: 4
|
Добавлено: Чт Фев 18, 2016 8:59 pm Заголовок сообщения: |
|
|
thegeo писал(а): |
Можно через оператор
Set Window browseID Font MakeFont("New Roman CYR",0,10,0,16777215)
здесь browseID идентификатор окна списка |
Спасибо. У меня отчего то первый раз это не сработало, поэтому я и затупил. Оказалось при наборе лишний символ был вот с ошибкой и вываливалось. Еще раз спасибо. |
|
Вернуться к началу |
|
|
|