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

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

VBA AutoCad 2016 смещение чертежа

Ответ
Поиск в этой теме
Непрочитано 22.07.2016, 09:58 #1
VBA AutoCad 2016 смещение чертежа
Ubicum
 
Регистрация: 22.07.2016
Сообщений: 1

Уважаемые, подскажите решения в сложившейся ситуации.
В AutoCad по средствам VBA строиться чертеж по координатам из файла Excel, первый чертёж построен, а при построении второго чертежа уходит выше а должен быть зеркальным отражением. Для сравнения на втором рисунке показал смещение.
Нажмите на изображение для увеличения
Название: 1.jpg
Просмотров: 50
Размер:	221.3 Кб
ID:	173725

Нажмите на изображение для увеличения
Название: 2.jpg
Просмотров: 28
Размер:	232.5 Кб
ID:	173726

Прилагаю кусок кода отвечающего за данный фрагмент чертежа. Подскажите как можно их сделать зеркальными!!
Изучать VB только начал, так что больно уж не пинайте.

Код:
[Выделить все]
 Attribute VB_Name = "Module1"
             ' ПРОФИЛЬ вычерчивание
 Dim dl_na_prof, y_n_prof As Integer
 Dim pol_max, otr_min, all_m As Double
    x_n = 0: y_n = 0: x_k = 0: y_k = 0: zn = 0: dl = 0: o_dl = 0: z = 0
    uklon = 0: dlina_ukl = 0: zn_sred = 0
    pol_max = 0: otr_min = 0: all_m = 0
                        ' Посчитать max и min значение по y (разброс)
  x_n = 0: y_n = 0
    For i = 1 To (n_prof - 1)
        zn = Int(Уклон_Туда(i))
        i = i + 1
        dl = Int(Уклон_Туда(i))
        all_m = all_m + dl
        y_k = y_k + zn * dl / 1000
        If y_k > pol_max Then pol_max = y_k
        If y_k < otr_min Then otr_min = y_k
    Next
'Ris:
textString = "Профиль пути"
insertionPoint(0) = 49.5: insertionPoint(1) = 146
Set textObj = ThisDrawing.ModelSpace.AddText(textString, insertionPoint, 3)
        ' Отрисовка "волнистого" профиля
x_n = 0: y_n = 0: x_k = 0: y_k = 0: zn = 0: dl = 0: o_dl = 0: z = 0
uklon = 0: dlina_ukl = 0: zn_sred = 0: y_n_prof = 0
df = 10
dl_na_prof = 0
Dim koef_po_y As Double

koef_po_y = 75 / (pol_max + Abs(otr_min))         ' после = число - это полоса высоты профиля (мм) по Y (вписать в полосу, например,50 мм)
x_n = (vis_nom * Tan(0.524)): y_n = 150
    Объект = "Профиль"
    For i = 1 To (n_prof - 1)
        
        zn = Int(Уклон_Туда(i))
        i = i + 1
        dl = Int(Уклон_Туда(i)): dl_na_prof = dl_na_prof + (dl / 1000 * 5)
        x_k = x_n + (dl / 1000 * 5) * сжатие    ' сжатие по Х
        y_k = y_n + (zn * dl / 1000) * koef_po_y
        НарисоватьЛинию x_n, y_n + dy, x_k, y_k + dy, acLnWt030, acMagenta
        If dl_na_prof < 30 Then         ' Кусок профиля на условные обозначения
            НарисоватьЛинию x_n - 248, y_n - 104, x_k - 248, y_k - 104, acLnWt030, acMagenta
        End If
        x_n = x_k: y_n = y_k
    
    Next

В архиве код и фаил с данными.
Может кто сможет помочь разобраться почему так строит с отклонением.
Кусок кода который отвечает за построение выше
OOP2016.zip


Последний раз редактировалось Ubicum, 22.07.2016 в 12:22.
Просмотров: 2969
 
Непрочитано 25.07.2016, 10:45
#2
trir


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


Civil 3D
trir на форуме  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > VBA AutoCad 2016 смещение чертежа

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает ввод длины отрезка в Autocad 2016 _Greek_ AutoCAD 8 19.10.2017 10:53
Адаптация древних lisp-приложений под AutoCad 2016 trushev LISP 36 08.02.2016 10:33
В AutoCAD 2016 некорректно открываются файлы, созданные в AutoCAD 2014 Nadija_arh AutoCAD 4 11.01.2016 22:09
Оформление чертежа Autocad Mihrutkin AutoCAD 8 29.03.2013 13:21