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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Перетасовываются данные при извлечении - как избежать?

Перетасовываются данные при извлечении - как избежать?

Ответ
Поиск в этой теме
Непрочитано 26.09.2021, 01:54 #1
Перетасовываются данные при извлечении - как избежать?
koui
 
Регистрация: 24.01.2017
Сообщений: 6

Создаю таблицу на основе извлечения данных. Выбираю объекты в том порядке, в каком они мне нужны в таблице. Среди данных Мтексты и полилинии. объекты сгруппированы, потому на предварительном просмотре я вижу, что сперва идёт Мтекст1, под ним полилиния 1.1, полилиния 1.2, далее Мтекст2, под ним полилиния 2.1, полилиния 2.2. Казалось бы всё хорошо. Но стоит мне сформировать таблицу (не имеет значения в чертеж или другой фейл) все данные перетасовываются и встают на непонятные места.
Отсюда два вопроса:
1. как сделать так, что б данные не тасовались?
2. по какому принципу они распределяются по умолчанию?
Просмотров: 1026
 
Непрочитано 26.09.2021, 09:08
#2
VitalyAF

инженер
 
Регистрация: 19.07.2005
Россия
Сообщений: 2,574
Отправить сообщение для VitalyAF с помощью Skype™


Цитата:
Сообщение от koui Посмотреть сообщение
2. по какому принципу они распределяются по умолчанию?
В порядке создания.
Цитата:
Сообщение от koui Посмотреть сообщение
1. как сделать так, что б данные не тасовались?
см. "DrawOrder" с опциями.
Но группировка, я т.д. вносит свои особенности. Когда-то пробовал применять её, но вскоре отказался из-за множества неудобств, советую заменить её на что-то более современное.
VitalyAF вне форума  
 
Непрочитано 26.09.2021, 09:44
#3
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 9,456


поищите на форуме типа "порядок данных при извлечении", там есть разные предложения: по координатам и т.д.
Сергей812 вне форума  
 
Непрочитано 26.09.2021, 10:33
#4
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Днепройт
Сообщений: 4,719


Цитата:
Сообщение от koui Посмотреть сообщение
по какому принципу они распределяются по умолчанию
Кажется, таблица извлечения данных принудительно сортируется по одному из столбцов. Можно выбрать, по какому имено, но нет галочки типа "не сортировать", чтобы объекты были показаны в порядке выбора или создания.

Ps
Здесь пытались замутить альтернативный вариант на лиспе, с блэкджеком и ш... Честно говоря, не запускал. Может, это то, что Вам подойдет, сразу или после доработки.
__________________
Одно меня лишь радует - я это вижу сам! (С)

Последний раз редактировалось kp+, 26.09.2021 в 10:51.
kp+ вне форума  
 
Непрочитано 26.09.2021, 13:02
#5
VitalyAF

инженер
 
Регистрация: 19.07.2005
Россия
Сообщений: 2,574
Отправить сообщение для VitalyAF с помощью Skype™


Цитата:
Сообщение от koui Посмотреть сообщение
Но стоит мне сформировать таблицу (не имеет значения в чертеж или другой фейл) все данные перетасовываются и встают на непонятные места.
Форматирование связано со стилем таблицы, пробовали создавать свой стиль, извлечь туда данные и перед форматированием сохранять (обновлять) его?
И куда сохраняете там тоже д.б. ваш стиль иначе автоматом обновится на Standard, предварительно надо как-то синхронизировать стили.
PS
Ещё есть ещё переменная DXEVAL
;; Set DXEVAL to 0
(command "dxeval" 0) по умолчанию - 12 - у меня отключает уведомление об обновление таблицы
Можно так же в ACADDOC.LSP прописать, чтобы не редактировать каждый раз

Последний раз редактировалось VitalyAF, 26.09.2021 в 17:35.
VitalyAF вне форума  
 
Непрочитано 26.09.2021, 16:43
#6
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 9,456


ну и есть такой костылеще из штатных средств - гиперссылка (хоткей -> Ctrl + K), отображаемое имя может быть задано как 001.1 для первого элемента из группы, 001.2 - для второго по порядку элемента из группы и т.д. А далее при извлечении отсортировать по отображаемым именам.
Сергей812 вне форума  
 
Непрочитано 26.09.2021, 18:55
#7
VitalyAF

инженер
 
Регистрация: 19.07.2005
Россия
Сообщений: 2,574
Отправить сообщение для VitalyAF с помощью Skype™


Ещё из той же оперы, выбрал объекты специально вразнобой с опцией - Fence,
у меня на 22-м не сортируется, т.е. в том же порядке и не "перетаскивается" при форматировании и при открытии/сохранении

DE.dwg

Нажмите на изображение для увеличения
Название: DE__2021-09-26_19-57-46.png
Просмотров: 38
Размер:	6.9 Кб
ID:	241103

Последний раз редактировалось VitalyAF, 26.09.2021 в 19:16.
VitalyAF вне форума  
 
Автор темы   Непрочитано 06.10.2021, 23:55
#8
koui


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


Цитата:
Сообщение от VitalyAF Посмотреть сообщение
Форматирование связано со стилем таблицы, пробовали создавать свой стиль, извлечь туда данные и перед форматированием сохранять (обновлять) его?
И куда сохраняете там тоже д.б. ваш стиль иначе автоматом обновится на Standard, предварительно надо как-то синхронизировать стили.
PS
Ещё есть ещё переменная DXEVAL
;; Set DXEVAL to 0
(command "dxeval" 0) по умолчанию - 12 - у меня отключает уведомление об обновление таблицы
Можно так же в ACADDOC.LSP прописать, чтобы не редактировать каждый раз
боюсь, что пока нет однозначного ответа, я не буду бросаться в эксперименты. сортировка по времени создания меня не устраивает никак. остальное может быть неточным, как я понял. представляешь, что может начаться, если в неком месте таблицыв пойдёт сбой, а ты отправишь заказчику в полной уверенности, что всё нормально - посчитано же автоматически, значит, без ошибок. буду искать другой вариант.
koui вне форума  
 
Непрочитано 07.10.2021, 08:18
#9
trir


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


используй FDO
trir вне форума  
 
Непрочитано 07.10.2021, 09:19
#10
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 9,456


Цитата:
Сообщение от koui Посмотреть сообщение
что может начаться, если в неком месте таблицыв пойдёт сбой, а ты отправишь заказчику в полной уверенности, что всё нормально - посчитано же автоматически, значит, без ошибок.
посчитано без ошибок - это если входные валидные данные и корректный алгоритм расчета. Если алгоритм расчета еще можно "выверить", то валидные входные данные от пользователя в реальных условиях работы - на это лучше не рассчитывать 100%. Или пользователя нужно загонять в прокрустово ложе строгой организации работы - т.е. пресловутые стандарты организации, программные надстройки/вертикальные решения и прочее...
Сергей812 вне форума  
 
Непрочитано 07.10.2021, 10:59
#11
VitalyAF

инженер
 
Регистрация: 19.07.2005
Россия
Сообщений: 2,574
Отправить сообщение для VitalyAF с помощью Skype™


Цитата:
Сообщение от koui Посмотреть сообщение
представляешь, что может начаться, если в неком месте таблицыв пойдёт сбой, а ты отправишь заказчику
Тогда и подход должен быть соответствующий по надёжности, по всей цепочке от задумки до изготовления, софт в т.ч.
Offtop: Я же рассказывал, как знакомый - отличный программист наладил на лиспе расчёт торгового оборудования, вывод чертежей и таблиц...,
но вкралась ма-а-а-а-ленькая неточность и заказчику отправили две фуры нарезанного стекла и дорогого профиля НЕ по размеру...
Несколько лет выплачивал, частная контора, потом на Solid перешли...

Последний раз редактировалось VitalyAF, 07.10.2021 в 11:10.
VitalyAF вне форума  
 
Непрочитано 07.10.2021, 11:44
#12
Oleg T


 
Регистрация: 27.12.2011
Сообщений: 1,276


Цитата:
Сообщение от koui Посмотреть сообщение
Выбираю объекты в том порядке, в каком они мне нужны в таблице
В Брикскаде этот метод срабатывает. Но частично, объекты группируются по категориям.
Offtop: Кстати, давно заметил, что в нем и атрибуты при создании блока необходимо выбирать в нужном порядке,
т.к. их сортировка в блоке от времени создания не зависит. В отличие от того, к чему я когда-то привык в Автокаде.
Миниатюры
Нажмите на изображение для увеличения
Название: Сохраненное изображение 2021-10-7_11-44-13.962.jpg
Просмотров: 6
Размер:	187.4 Кб
ID:	241505  

Последний раз редактировалось Oleg T, 07.10.2021 в 12:56.
Oleg T вне форума  
 
Непрочитано 07.10.2021, 13:39
#13
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 9,456


а хотите полностью контролировать процесс извлечения данных - выкиньте стандартное средство извлечения данных. Все равно выделяете
Цитата:
Сообщение от koui Посмотреть сообщение
Выбираю объекты в том порядке, в каком они мне нужны в таблице. Среди данных Мтексты и полилинии. объекты сгруппированы, потому на предварительном просмотре я вижу, что сперва идёт Мтекст1, под ним полилиния 1.1, полилиния 1.2, далее Мтекст2, под ним полилиния 2.1, полилиния 2.2.
так сразу и собирайте данные прямо в эксель, например

Код:
[Выделить все]
Option Explicit

Private Declare PtrSafe Function GetAsyncKeyState Lib "user32" (ByVal vKey As LongPtr) As Integer


Private Function ExtGetEntity(ByRef aCurrDoc As AcadDocument, ByVal aPrompt As String, _
  ByVal aTypeEnt As String) As AcadEntity
  On Error Resume Next
  Dim lEnt As AcadEntity, lPick As Variant
  While True
    Set lEnt = Nothing
    aCurrDoc.Utility.GetEntity lEnt, lPick, vbCr & aPrompt
    If (lEnt Is Nothing) Then
      ' Выход по Esc
      If (GetAsyncKeyState(&H1B)) Then Exit Function
    Else
      If (lEnt.ObjectName = aTypeEnt) Then
        Set ExtGetEntity = lEnt
        Exit Function
      End If
    End If
  Wend
End Function


Public Sub GetInfoByUser()
  ' Получаем объект акада
  Dim lAcadApp As AcadApplication
  Set lAcadApp = GetObject(, "AutoCAD.Application")
  ' Получаем текущий чертеж
  Dim lCurrDoc As AcadDocument
  Set lCurrDoc = lAcadApp.ActiveDocument
  ' В бесконечном цикле
  Dim lEnt As AcadEntity, lMText As AcadMText
  Dim lPL1 As AcadLWPolyline, lPL2 As AcadLWPolyline
  While True
    Set lEnt = ExtGetEntity(lCurrDoc, "Выберите мультитекст: ", "AcDbMText")
    If (lEnt Is Nothing) Then Exit Sub
    Set lMText = lEnt
    Set lEnt = ExtGetEntity(lCurrDoc, "Выберите первую полилинию: ", "AcDbPolyline")
    If (lEnt Is Nothing) Then Exit Sub
    Set lPL1 = lEnt
    Set lEnt = ExtGetEntity(lCurrDoc, "Выберите вторую полилинию: ", "AcDbPolyline")
    If (lEnt Is Nothing) Then Exit Sub
    Set lPL2 = lEnt
    ' И когда собрался пазл из мультитекста и двух полилиний, можно выгрести из них
    ' все нужные данные и сохранить на лист экселя. Если еще сохранить и хэндлы
    ' примитивов - то потом можно будет обновлять данные: вместо выбора пользователя
    ' будет вызов HandleToObject
    
    
  Wend
  Set lCurrDoc = Nothing
  Set lAcadApp = Nothing
End Sub
Сергей812 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Перетасовываются данные при извлечении - как избежать?

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ищу Справочник по климату СССР. Серия 3. Многолетние данные swell{d} Поиск литературы, чертежей, моделей и прочих материалов 7 18.11.2020 02:42
Как вставить данные из ексель в редактируемый блок автокада viner Динамические блоки 5 06.01.2020 03:26
Как заказчик получает данные о владельцах сетей на участке стр-ва ? Tyhig Технология и организация строительства 7 19.10.2010 16:37
Данные Unigraphics NX в Autodesk Inventor Professional 2009 Irina Vyguzova Прочее ПО от Autodesk 1 25.05.2009 22:40