|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Как правильно создать DXF?
Программист широкого профиля.
Челябинск
Регистрация: 08.09.2005
Сообщений: 722
|
||
Просмотров: 9500
|
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,388
|
Цитата:
Когда DXF генерирует AutoCAD, он знает, как присваивать handle. Когда DXF генерирует человек, он должен знать как это делать. Если еще хочется помучиться, можно почитать старую книгу Джампа, в которой он утверждал, что настоящие программисты работают с DXF, и только мазохисты с DWG. Вся книга про то, как писать на C DXF. И только в конце автор обнаружил, что есть и другие способы для работы (Автолисп, например). |
|||
![]() |
|
||||
Регистрация: 20.12.2005
Murmansk
Сообщений: 106
|
Гы про i+1 ты это правильно определил.
![]() ток фишка в том что Handle раздаются не только в блоке Entities но и в ряде других(практически во всех, на сколько помню)... Вообщем, что я делаю - сначала выборку по файлу, в поисках наибольшего Handle, а потом к нему прибавляем еще 50, что б точняк совпадающих не получить. и дальше как и сказал i+1 в шеснадцатеричной системе. Хотя вроде как в описании dxf`а Handle по идее необязательное поле, насколько я понял из Описания dxf формата. Но отвязаться от него так и не удалось. Вообщем как то так. А вообще я чаз от Dxf`а ухожу на ActiveX элементы черчения. Уж очень удобно и проработанно в Аутодеске по это этой теме хелпу сделали. Запускаешь автокад программой, и в нем же отрисовываешь все. ![]() Гы апдейт Про Dxf смотреть в Акаде(2007, в прочих версиях врочем это тоже есть, там же или почти там же) Help\Additional Resources \Developer Help Про ActiveX смотреть там же про поля выдержки из хелпа 5 Handle (тобишь 16ти указатель. добавляется по принципу i+1) 330: Soft-pointer ID/handle to owner dictionary (optional) честно хз что. я его статичным оставляю. в проге у меня идет ко всем поликам значение - 1F, Акад спокойно хавает. |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,557
![]() |
вот еще про хендлы http://www.autocad.ru/cgi-bin/f1/board.cgi?t=10303Nn
|
|||
![]() |
|
||||
Программист широкого профиля. Регистрация: 08.09.2005
Челябинск
Сообщений: 722
|
У меня есть маленькая идейка по векторизации. Поэтому встроенные в автокад средства не подходят тк они не умеют обращаться с картинками.
вобщем решил что данные будут формироваться в стороннем приложении, а рисоваться будут лиспом. Так всетаки легче. Почему не работает?: Код:
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,480
|
Ну, во-первых, вопросы с TrueColor уже несколько раз поднимались на форуме - что здесь, что на autocad.ru, поищи. В ACAD немного нестандартное, как я понял, представление таких цветов. Во-вторых, ты забыл про 62 группу - разве ее не надо задавать?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Программист широкого профиля. Регистрация: 08.09.2005
Челябинск
Сообщений: 722
|
Цитата:
Вот такой работает: Код:
( Код:
|
|||
![]() |
|
||||
Армспорт Регистрация: 18.07.2006
Ейск
Сообщений: 355
|
->mmax
Всё правильно. Читай в справке "Creating Complex Entities" Полилиния как к примеру и блок относится к составным примитивам и с ними команда Entmake работает немного в другом режиме: сначала создаётся/переопределяется составной примитив, потом все подпримитивы и в конце надо создать метку конца описания примитива ("SEQEND" для примитивов и "ENDBLK" для описания блока) Вот пример создания полилинии из справки: Код:
|
|||
![]() |