Použití DBConnect a data uložená v XRECORD
Vytištěno z: CAD Fórum
Kategorie: Autodesk - stavebnictví, strojírenství, CAD/GIS
Název fóra: AutoCAD
Popis fóra: Otázky kolem aplikací AutoCAD a AutoCAD LT, AutoCAD 360, prohlížečů, DWG a DWF, Design Review, Navisworks, nadstavby, 123D, A360 a cloud Autodesk 360
URL: https://www.cadforum.cz/forum/forum_posts.asp?TID=22084
Datum vytištění: 02.kvě.2026 v 07:38
Téma: Použití DBConnect a data uložená v XRECORD
Odeslal: JKOTASEK
Předmět: Použití DBConnect a data uložená v XRECORD
Datum odeslání: 06.led.2016 v 11:03
Zdravím,
ve firmě vyvíjíme systém na čtení DXF souborů s následnou provázaností s SQL DB. K tomuto účelu využíváme v Autocadu při tvorbě výkresů funkce DBConnect (XDATA), s čímž souvisejí parametry 1000, 1004 a 1005. V podstatě nemáme zásadní problém a víceméně nám vše dle našich potřeb už léta funguje.
Občas ale narážím na problematiku údajů uložených v sekci XRECORD. Manuály k DXF se k této části vyjadřují pouze ve smyslu "zde si aplikace Autocadu ukládají svá data", ale už jsem se nikde nedočetl, v jaké konkrétní podobě v případě používání DBConnect.
Např.: 0 XRECORD ... 330 21A 1004 1409030000000000FFFFFFFF0200FFFF 330 21A 330 21C 1004 50F9020000000000FFFFFFFF0100FFFF 1000 Propojení1Popisek1 330 280 1004 8FFA020000000000FFFFFFFF0100FFFF 1000 Propojení1Popisek1
Zda k černému kódu 1000 patří jak červená část s 1 entitou a kódem 1004, tak zelená část s 2 entitami a společným kódem 1004. Podle mého zkušebního výkresu ano a takto s tím pracuji, ale občas tam zůstanou údaje, které mi toto pravidlo naruší, např. že zcela chybí kód 1000. Obvykle se to opraví v Autocadu pomocí funkce Ověření. Ale i tak bych chtěl mít algoritmus upravený tak, aby tuto chybu dokázal ošetřit.
Dokážete mě, prosím, někdo nasměrovat nebo poradit, kde se dočtu, co konkrétně a v jaké podobě je v XRECORD v souvislosti s DBConnect uložené? JK
|
Odpovědi:
Odeslal: Vladimír Michl
Datum odeslání: 06.led.2016 v 11:44
|
DBConnect je jen jedna z aplikací/funkcí využívající rozhraní ASE. Záleží zda používáte pouze DBConnect příkazy nebo i nějaká vlastní API volání ASE. V DWG databázi pak mohou XRECORD záznamy vypadat dost různě (může záležet i na verzi AutoCADu). Co je účelem (zhruba) oné hlavní aplikace? Tento přístup přes DXF a hodně staré funkce ASE může být dost nespolehlivý.
------------- Vladimír Michl (moderátor) ARKANCE CZ - https://arkance.world - arkance.world (podpora viz helpdesk.arkance-systems.cz)
|
Odeslal: JKOTASEK
Datum odeslání: 06.led.2016 v 14:20
Používáme čistě jen příkazy DBConnect a s tím spojené vkládání popisek volných a provázaných s entitami. Žádné nadstavby nebo vlastní funkce, čistě jen plná verze Autocadu.
Výsledkem naší aplikace je, že dokáže z DXF vytáhnout seznam DB_ID uložených v XDATA. Zároveň jsme schopni získat vztah DB_ID (kód 1004) a ENT_ID (kód 5), tedy s jakým řádkem DB je jaká entita propojená, což není v sekci ENTITIES problém, tam to dokáži 100% načíst a je to v pohodě. Ale jakmile načítám informace z XRECORD (související s ASE_INDEX_DICTIONARY), už se nemám o co opírat (nějaký manuál) a v podstatě vycházím z předpokladu, který jsem uvedl v dotazu.
Ano, ASE je stará funkce a my ji používáme už od Autocadu 2000. Také proto si zatím všechny výkresy ukládáme do formátu DXF verze 2000, abychom s tím neměli problém.
|
|