Dmitriy Fedorov писал(а):
Создайте местную систему в datums.ini - там присутствует образец/заготовка местной системы на базе СК63. Опишите ваши связующие точки и дело в шляпе. Пересчет через буфер обмена, исходная карта будет СК63, конечная - ваша Местная (Карта - Свойства).
Написав відповідний скрипт-1, який:
- вичитує координати "связующих" точок з карти-1 в текстовий файл Text1;
- відкриває файл Excel.
Код VBA:
- закриває примусово Digitals;
- функціями API створює датум в Datums.ini, беручи координати "связующих" точок з текстового файла Text1;
- запускає Digitals, відкриває карту-1;
- запускає скрипт-2.
Скрипт-2 перераховує через буфер обміну об'єкти карти (за створеним датумом), "укладаючи" їх на вказані "связущие" точки.
Питання до шановних програмістів, може хтось підкаже:
-
чому, після правки файла Datums.ini функціями API (
WritePrivateProfileSection), не відбувається перерахунку через буфер обміну? Що ще треба зробити з Datums.ini (скидання кешу WritePrivateProfileString vbNullString, vbNullString, vbNullString, DigitalsPath & "\Datums.ini" після зміни Datums.ini повертає 0, а скидання кешу WritePrivateProfileString vbNullString, vbNullString, vbNullString, vbNullString повертає 1).
Якщо в файл Datums.ini внести не суттєву правочку текстовим редактором і зберегти зміни, скрипт-2 перераховує координати на ура, але як тільки внести зміни функцією API - все, труба
. Нюхом чую - проблема в задіюванні файла ініціалізації.
Задумка - трансформувати об'єкти карти на вказані точки методом поліноміального перетворення.