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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > проблема с Double VBA

проблема с Double VBA

Ответ
Поиск в этой теме
Непрочитано 27.03.2013, 14:34 #1
проблема с Double VBA
tannn
 
Регистрация: 28.02.2013
Сообщений: 12

Код:
[Выделить все]
Dim MTextObj As AcadMText
Dim intD As String
Dim X_Point(2) As Double
Dim inPoint As Variant
Dim Y As Double
Dim i As Integer
Dim ii As Integer
Dim aTemp As Double



For Each h In element.Coordinates

 If i = 0 Then '----------- X
 a = h
 End If
 
 If i = 1 Then '------------  Y
 '--------------------------
 If aTemp <> 0 Then
 
 X_Point(0) = aTemp + ((a - aTemp) / 2) - 1.5
 X_Point(1) = -150 + 2
 X_Point(2) = 0
 Set MTextObj = ThisDrawing.ModelSpace.AddMText(X_Point, 1, CStr((a - aTemp) * 0.1))
 MTextObj.Height = 1.5
 'MTextObj.Rotation = 1.571
 MTextObj.LineSpacingDistance = 0.63
 
 Else

    aTemp = a

 End If
 

 
ii = ii + 1
 End If
 
 If i = 2 Then '------------ Z
 i = -1
 End If
 

i = i + 1
Next h
Теперь вопрос почему (a - aTemp) * 0.1 в ответ попадают разные значения
103 и 101 это вершины полилинии
например (103-101)*0,1 = 0,2 должно быть ,а получается например 0,21334343454 или 0,1985654524

хотя это не по всем точкам как от этого избавиться? есть нормальное решение без всяких округлении ,а то меня эти не точности напрягают постоянно

по идее я смотрел уже "a" содержит не ровное значение 103,1243784555 = что то типа такого, получается element.Coordinates содержит не ровные значения

а через своиства смотрю вершины полилинии все ровно

Последний раз редактировалось Кулик Алексей aka kpblc, 27.03.2013 в 14:44.
Просмотров: 3861
 
Непрочитано 27.03.2013, 14:41
#2
trir


 
Регистрация: 18.12.2010
Сообщений: 5,108


Используй тег code
А какой тип у a?
trir вне форума  
 
Непрочитано 27.03.2013, 14:42
#3
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Цитата:
Сообщение от tannn Посмотреть сообщение
по идее я смотрел уже "a" содержит не ровное значение 103,1243784555 = что то типа такого, получается element.Coordinates содержит не ровные значения
Значит, чертили не по координатам. Вполне естественное явление.
Do$ вне форума  
 
Непрочитано 27.03.2013, 14:49
#4
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,692


Цитата:
Сообщение от tannn Посмотреть сообщение
по идее я смотрел уже "a" содержит не ровное значение 103,1243784555 = что то типа такого, получается element.Coordinates содержит не ровные значения а через своиства смотрю вершины полилинии все ровно
если точность единиц выставить не "0", то "через свойства" тож будет не "ровно"..
Миниатюры
Нажмите на изображение для увеличения
Название: Безымянный.jpg
Просмотров: 142
Размер:	56.9 Кб
ID:	99729  
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Автор темы   Непрочитано 27.03.2013, 14:51
#5
tannn


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


а double

Do$ , все начерчено правильно в своиствах стоит 103 , но когда из Variant переходит в double походу какоето смещение появляется в точности, была такая ситуация точка стояла с координатой 0 ,а ответ получаю -0.1354557475

причем если паралельно нарисовать например 10 лининии и X при этом 0 будет, то одна точка с цикла обязательно получается со знакоми после запятой


Я же не так мышкой тыкаю когда линии рисую)), я в вожу координаты и наверное когда я ставлю Х=0 то она рисуется по 0 =)
tannn вне форума  
 
Непрочитано 27.03.2013, 14:55
#6
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,692


tannn, а ты выложи файл с этой полилинией..
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Автор темы   Непрочитано 27.03.2013, 14:58
#7
tannn


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


Цитата:
Сообщение от AlexV Посмотреть сообщение
а ты выложи файл с этой полилинией..
нашел

там нижнии поперечный профиль ПК 0 - полилиния с 10 точек, точки по оси Х мне надо расстояния расставлять
Вложения
Тип файла: dwg
DWG 2007
профиль13.dwg (143.5 Кб, 1118 просмотров)
tannn вне форума  
 
Непрочитано 27.03.2013, 15:03
#8
swell{d}

гадание на конечно-элементной гуще
 
Регистрация: 31.05.2006
Düsseldorf
Сообщений: 7,596


Цитата:
Сообщение от tannn Посмотреть сообщение
есть нормальное решение без всяких округлении
вам нужно нормальное решение округления без всяких округлений?
__________________
.: WikiЖБК + YouTube :.
swell{d} вне форума  
 
Непрочитано 27.03.2013, 15:03
#9
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,692


Цитата:
Сообщение от tannn Посмотреть сообщение
а как фаил тут загрузить?

Миниатюры
Нажмите на изображение для увеличения
Название: Безымянный2.jpg
Просмотров: 136
Размер:	79.6 Кб
ID:	99732  
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Автор темы   Непрочитано 27.03.2013, 15:06
#10
tannn


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


Цитата:
Сообщение от swell{d} Посмотреть сообщение
вам нужно нормальное решение округления без всяких округлений?
не надо к словам придираться понятно что мне надо не округление ,а изза чего происходит такои сбои, округлить я и сам могу как хочешь,но меня так уже достало вот и ищу нормальное решение
tannn вне форума  
 
Непрочитано 27.03.2013, 17:42
#11
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Ну вот, координаты некоторых вершин с красивым дробным хвостиком.
LUPREC выставите в 8 и увидите, а то у Вас, наверное, стоит значение 1 или даже 0.
Миниатюры
Нажмите на изображение для увеличения
Название: prec.jpg
Просмотров: 35
Размер:	132.1 Кб
ID:	99751  
Do$ вне форума  
 
Автор темы   Непрочитано 28.03.2013, 09:28
#12
tannn


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


Цитата:
Сообщение от Do$ Посмотреть сообщение
Ну вот, координаты некоторых вершин с красивым дробным хвостиком.
LUPREC выставите в 8 и увидите, а то у Вас, наверное, стоит значение 1 или даже 0.
Цитата:
Сообщение от tannn Посмотреть сообщение
там нижнии поперечный профиль ПК 0 - полилиния с 10 точек, точки по оси Х мне надо расстояния расставлять
мне по оси Х надо было, разобрался уже =)
можно закрыть
tannn вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > проблема с Double VBA



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Бесплатный софт проектировщика(Создание) DEM Программирование 1818 31.10.2023 14:01
Импорт армирования результатов армирования из расчетных программ в Автокад DEM Программирование 400 10.09.2021 08:29
Проблема с ListBox в VBA Огненный Карась Программирование 3 14.02.2011 12:56
С кнопки не хочет правильно выполняться vba скрипт Женя К AutoCAD 5 24.11.2010 14:33
Проблема с библиотеками MS VBA dissonance Программирование 4 16.11.2010 11:32