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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Версии формата описания 3dSolid (сравнение)

Версии формата описания 3dSolid (сравнение)

Ответ
Поиск в этой теме
Непрочитано 13.11.2008, 11:08
Версии формата описания 3dSolid (сравнение)
Елпанов Евгений
 
программист
 
Москва
Регистрация: 20.12.2005
Сообщений: 1,439

Назрела необходимость собрать информацию по отличиям в описании 3dSolid в dxf. В первую очередь, заголовок формата меняется каждую версию, во вторых, сам формат описания, постоянно редактируют. Прошу вашей помощи - запустите программу на своем компьютере и скопируйте получившийся лог программы на форум. Это будет очень полезно для моих исследований, а так же, для идущих следом за мной.
Особенно, интересны результаты, на компьютерах с вертикальными решениями различных версий...

Заранее Спасибо!
Код:
[Выделить все]
(defun c:test (/ e)
  (vl-load-com)
  (setq i 0)
  (princ "\n\n\t*** *** Начало записей *** ***")
  (princ (strcat "\n\t acadver = " (getvar "acadver") "\n\t "))
  (princ (ver))
  (princ
    (strcat "\n\t SOLIDCHECK = " (itoa (getvar "SOLIDCHECK")))
  )
  (if (getvar "SOLIDHIST")
    (princ
      (strcat "\n\t SOLIDHIST = " (itoa (getvar "SOLIDHIST")))
    )
  )
  (princ "\n\t'(")
  (foreach a (entget
	       (setq
		 e (vlax-vla-object->ename
		     (vla-addbox
		       (vla-get-ModelSpace
			 (vla-get-ActiveDocument (vlax-get-acad-object))
		       ) ;_  vla-get-ModelSpace
		       (vlax-3d-point 10 11 12)
		       10
		       10
		       10
		     ) ;_  vla-addbox
		   ) ;_  vlax-vla-object->ename
	       ) ;_  setq
	     ) ;_  entget
    (if	(= 1 (car a))
      (princ (strcat "\n\t\t("
		     (apply 'strcat
			    (mapcar '(lambda (x)
				       (if (= x 32)
					 " "
					 (chr (- 159 x))
				       ) ;_  if
				     ) ;_  lambda
				    (vl-string->list (cdr a))
			    ) ;_  mapcar
		     ) ;_  apply
		     ")"
	     ) ;_  strcat
      ) ;_  princ
    ) ;_  if
  ) ;_  foreach
  (princ "\n\t)\n\t*** *** Конец записей *** ***")
  (entdel e)
  (textscr)
  (princ)
)
Просмотров: 7326
 
Непрочитано 15.11.2008, 20:54
#21
Скулачёв А.

конструктор
 
Регистрация: 29.08.2007
Москва
Сообщений: 55


AutoCad 2002 eng

Код:
[Выделить все]
 *** *** Начало записей *** ***
  acadver = 15.06
  Visual LISP 2000 (en)
  SOLIDCHECK = 1
 '(
   (600 85 1 0          )
   (7 Unknown 13 ACIS 6.0.2 NT 24 Sat Nov 15 20:40:06 2008 )
   (-1 9.9999999999999995e-007 1e-010 )
   (body $-1 $1 $-1 $-1 #)
   (lump $-1 $-1 $2 $0 #)
   (shell $-1 $-1 $-1 $3 $-1 $1 #)
   (face $-1 $4 $5 $2 $-1 $6 forward single #)
   (face $-1 $7 $8 $2 $-1 $9 reversed single #)
   (loop $-1 $-1 $10 $3 #)
   (plane-surface $-1 10 11 17 0 0 1 1 0 0 forward_v I I I I #)
   (face $-1 $11 $12 $2 $-1 $13 reversed single #)
   (loop $-1 $-1 $14 $4 #)
   (plane-surface $-1 10 11 7 0 0 1 1 0 0 forward_v I I I I #)
   (coedge $-1 $15 $16 $17 $18 forward $5 $-1 #)
   (face $-1 $19 $20 $2 $-1 $21 reversed single #)
   (loop $-1 $-1 $22 $7 #)
   (plane-surface $-1 10 6 12 0 1 0 0 0 1 forward_v I I I I #)
   (coedge $-1 $23 $24 $25 $26 forward $8 $-1 #)
   (coedge $-1 $27 $10 $28 $29 forward $5 $-1 #)
   (coedge $-1 $10 $27 $30 $31 forward $5 $-1 #)
   (coedge $-1 $32 $33 $10 $18 reversed $34 $-1 #)
   (edge $-1 $35 -5 $36 5 $17 $37 forward 7 unknown #)
   (face $-1 $38 $39 $2 $-1 $40 reversed single #)
   (loop $-1 $-1 $41 $11 #)
   (plane-surface $-1 5 11 12 1 0 0 0 0 -1 forward_v I I I I #)
   (coedge $-1 $42 $30 $43 $44 forward $12 $-1 #)
   (coedge $-1 $45 $14 $42 $46 forward $8 $-1 #)
   (coedge $-1 $14 $45 $47 $48 forward $8 $-1 #)
   (coedge $-1 $33 $32 $14 $26 reversed $34 $-1 #)
   (edge $-1 $49 -5 $50 5 $25 $51 forward 7 unknown #)
   (coedge $-1 $16 $15 $52 $53 forward $5 $-1 #)
   (coedge $-1 $54 $55 $15 $29 reversed $39 $-1 #)
   (edge $-1 $36 -5 $56 5 $28 $57 forward 7 unknown #)
   (coedge $-1 $22 $58 $16 $31 reversed $12 $-1 #)
   (edge $-1 $59 -5 $35 5 $30 $60 forward 7 unknown #)
   (coedge $-1 $25 $17 $58 $61 forward $34 $-1 #)
   (coedge $-1 $17 $25 $54 $62 reversed $34 $-1 #)
   (loop $-1 $-1 $32 $38 #)
   (vertex $-1 $18 $63 #)
   (vertex $-1 $18 $64 #)
   (straight-curve $-1 15 11 17 0 1 0 I I #)
   (face $-1 $-1 $34 $2 $-1 $65 reversed single #)
   (loop $-1 $-1 $54 $19 #)
   (plane-surface $-1 10 16 12 0 -1 0 0 0 -1 forward_v I I I I #)
   (coedge $-1 $66 $52 $55 $67 forward $20 $-1 #)
   (coedge $-1 $58 $22 $23 $46 reversed $12 $-1 #)
   (coedge $-1 $52 $66 $22 $44 reversed $20 $-1 #)
   (edge $-1 $59 -5 $68 5 $43 $69 forward 7 unknown #)
   (coedge $-1 $24 $23 $66 $70 forward $8 $-1 #)
   (edge $-1 $50 -5 $68 5 $42 $71 forward 7 unknown #)
   (coedge $-1 $55 $54 $24 $48 reversed $39 $-1 #)
   (edge $-1 $72 -5 $49 5 $47 $73 forward 7 unknown #)
   (vertex $-1 $26 $74 #)
   (vertex $-1 $61 $75 #)
   (straight-curve $-1 15 11 7 0 -1 0 I I #)
   (coedge $-1 $41 $43 $27 $53 reversed $20 $-1 #)
   (edge $-1 $56 -5 $59 5 $52 $76 forward 7 unknown #)
   (coedge $-1 $47 $28 $33 $62 forward $39 $-1 #)
   (coedge $-1 $28 $47 $41 $67 reversed $39 $-1 #)
   (vertex $-1 $29 $77 #)
   (straight-curve $-1 10 16 17 -1 0 0 I I #)
   (coedge $-1 $30 $42 $32 $61 reversed $12 $-1 #)
   (vertex $-1 $53 $78 #)
   (straight-curve $-1 10 6 17 1 0 0 I I #)
   (edge $-1 $35 -5 $50 5 $32 $79 forward 7 unknown #)
   (edge $-1 $36 -5 $49 5 $33 $80 forward 7 unknown #)
   (point $-1 15 6 17 #)
   (point $-1 15 16 17 #)
   (plane-surface $-1 15 11 12 -1 0 0 0 0 1 forward_v I I I I #)
   (coedge $-1 $43 $41 $45 $70 reversed $20 $-1 #)
   (edge $-1 $56 -5 $72 5 $55 $81 forward 7 unknown #)
   (vertex $-1 $70 $82 #)
   (straight-curve $-1 5 6 12 0 0 -1 I I #)
   (edge $-1 $68 -5 $72 5 $66 $83 forward 7 unknown #)
   (straight-curve $-1 10 6 7 -1 0 0 I I #)
   (vertex $-1 $48 $84 #)
   (straight-curve $-1 10 16 7 1 0 0 I I #)
   (point $-1 15 16 7 #)
   (point $-1 15 6 7 #)
   (straight-curve $-1 5 11 17 0 -1 0 I I #)
   (point $-1 5 16 17 #)
   (point $-1 5 6 17 #)
   (straight-curve $-1 15 6 12 0 0 -1 I I #)
   (straight-curve $-1 15 16 12 0 0 -1 I I #)
   (straight-curve $-1 5 16 12 0 0 -1 I I #)
   (point $-1 5 6 7 #)
   (straight-curve $-1 5 11 7 0 1 0 I I #)
   (point $-1 5 16 7 #)
 )
 *** *** Конец записей *** ***
__________________
Продумано до мелочей
Скулачёв А. вне форума  
 
Автор темы   Непрочитано 15.11.2008, 22:22
#22
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


Цитата:
Сообщение от Скулачёв А. Посмотреть сообщение
Ещё бы кто расшифровал посимвольно, всё это добро, вообще было бы хорошо, а то я всё никак не доберусь до сути всех этих данных.
Это самое полное описание формата SAT, включает описание формата, математики и.т.д...
Пособие по формату файла SAT (ACIS)

PS. в результатах тестов, которые я просил сделать, для меня, нет ни единой непонятной запятой.
Елпанов Евгений вне форума  
 
Непрочитано 15.11.2008, 22:48
#23
Скулачёв А.

конструктор
 
Регистрация: 29.08.2007
Москва
Сообщений: 55


Цитата:
PS. в результатах тестов, которые я просил сделать, для меня, нет ни единой непонятной запятой.
Расшифруйте, пожалуйста, (body $-1 $1 $-1 $-1 #) и (vertex $-1 $48 $84 #)
__________________
Продумано до мелочей
Скулачёв А. вне форума  
 
Автор темы   Непрочитано 16.11.2008, 09:02
#24
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


Цитата:
Сообщение от Скулачёв А. Посмотреть сообщение
Расшифруйте, пожалуйста, (body $-1 $1 $-1 $-1 #) и (vertex $-1 $48 $84 #)
Код:
[Выделить все]
(body
$-1 - пустой указатель
$1  - указатель на первую глыбу 
$-1 - пустой указатель
$-1  - пустой указатель
 #)  - конец цитаты

(vertex
$-1  - пустой указатель
$48  - указатель на ребро, использующее вершину
$84  - указатель на местоположение вершины
 #)  - конец цитаты
ps.
1. Ты привел пример из 2002 версии акада - в последующих, было добавлено много дополнительных полей.
2. Не жди, что добрый дядя, напишет библиотеку по работе с солидами и тебе подарит - хочешь разобраться - разбирайся!
3. На сегодняшний день, я уже могу создавать любые 3д тела, по собственному вкусу, но с некоторыми ограничениями - только в линейке 2004-2009 и все грани, только плоские поверхности. Хотя могут быть внутренние полости, сквозные отверстия, набор из нескольких объединенных тел и.т.д... Так же, я могу очищать тела от лишней информации - стандартная очистка, удаляет только часть.
Елпанов Евгений вне форума  
 
Непрочитано 16.11.2008, 12:08
#25
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


>>3. На сегодняшний день, я уже могу создавать любые 3д тела
а зачем? по мне так в автокаде они не нужны
zamtmn вне форума  
 
Автор темы   Непрочитано 16.11.2008, 12:21
#26
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


Цитата:
Сообщение от zamtmn Посмотреть сообщение
а зачем? по мне так в автокаде они не нужны
Некоторым, они нужны. Случается и такое...
Елпанов Евгений вне форума  
 
Непрочитано 16.11.2008, 12:59
#27
Скулачёв А.

конструктор
 
Регистрация: 29.08.2007
Москва
Сообщений: 55


Цитата:
Сообщение от zamtmn Посмотреть сообщение
по мне так в автокаде они не нужны
Они не нужны только тем, кто мыслит плоско, а тем, кто мыслит 3-х мерно, нужны.
__________________
Продумано до мелочей
Скулачёв А. вне форума  
 
Непрочитано 16.11.2008, 13:04
#28
Скулачёв А.

конструктор
 
Регистрация: 29.08.2007
Москва
Сообщений: 55


Цитата:
Сообщение от Елпанов Евгений Посмотреть сообщение

ps.
1. Ты привел пример из 2002 версии акада - в последующих, было добавлено много дополнительных полей.
2. Не жди, что добрый дядя, напишет библиотеку по работе с солидами и тебе подарит - хочешь разобраться - разбирайся!
3. На сегодняшний день, я уже могу создавать любые 3д тела, по собственному вкусу, но с некоторыми ограничениями - только в линейке 2004-2009 и все грани, только плоские поверхности. Хотя могут быть внутренние полости, сквозные отверстия, набор из нескольких объединенных тел и.т.д... Так же, я могу очищать тела от лишней информации - стандартная очистка, удаляет только часть.
Я предпочитаю стратегию быстрого старта. Чтобы освоить новое для себя оканчиваю спец курсы. AutoCad и AutoLisp я стал изучать только после окончания курсов. Если вы готовы поделиться информацией, но за деньги, я готов заплатить за качественные знания.
__________________
Продумано до мелочей
Скулачёв А. вне форума  
 
Непрочитано 16.11.2008, 13:41
#29
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


>>Они не нужны только тем, кто мыслит плоско, а тем, кто мыслит 3-х мерно, нужны.
В 3д можно прекрастно обойтись без них, проектировать в автокаде используя солиды - близко к мазохизму, для них нет средств редактирования. Помоему единственное применение - экспорт в расчетные программы, ну и импорт оттудаже
zamtmn вне форума  
 
Непрочитано 16.11.2008, 14:10
#30
Скулачёв А.

конструктор
 
Регистрация: 29.08.2007
Москва
Сообщений: 55


Цитата:
Сообщение от zamtmn Посмотреть сообщение
>>Они не нужны только тем, кто мыслит плоско, а тем, кто мыслит 3-х мерно, нужны.
В 3д можно прекрастно обойтись без них, проектировать в автокаде используя солиды - близко к мазохизму, для них нет средств редактирования. Помоему единственное применение - экспорт в расчетные программы, ну и импорт оттудаже
Почему нет, они есть, целая панель Solids Editing
__________________
Продумано до мелочей
Скулачёв А. вне форума  
 
Непрочитано 16.11.2008, 14:28
#31
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


>>Почему нет, они есть, целая панель Solids Editing
имхо солид проще пересоздать чем отредактировать.
Чем по Вашему солид лучше обычных примитивов?
zamtmn вне форума  
 
Непрочитано 16.11.2008, 16:24
#32
Скулачёв А.

конструктор
 
Регистрация: 29.08.2007
Москва
Сообщений: 55


Цитата:
Сообщение от Елпанов Евгений Посмотреть сообщение
Код:
[Выделить все]
(body
$-1 - пустой указатель
$1  - указатель на первую глыбу 
$-1 - пустой указатель
$-1  - пустой указатель
 #)  - конец цитаты
 
(vertex
$-1  - пустой указатель
$48  - указатель на ребро, использующее вершину
$84  - указатель на местоположение вершины
 #)  - конец цитаты
Вы не поясните на рисунке на какое именно ребро указывает указатель и где координаты вершины смотреть. И не понятно пока с какой именно вершины , ребра, стороны начинается отсчёт.
__________________
Продумано до мелочей
Скулачёв А. вне форума  
 
Непрочитано 16.11.2008, 19:37
#33
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,432


zamtmn, хотя бы возможностью построения сечений, разрезов и видов любого ракурса с минимальной ручной доводкой (говорю про штатные средства AutoCAD'a). Это как минимум )
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 07.01.2009, 20:53
#34
Скулачёв А.

конструктор
 
Регистрация: 29.08.2007
Москва
Сообщений: 55


Цитата:
Сообщение от Елпанов Евгений Посмотреть сообщение
1. Ты привел пример из 2002 версии акада - в последующих, было добавлено много дополнительных полей.
2. Не жди, что добрый дядя, напишет библиотеку по работе с солидами и тебе подарит - хочешь разобраться - разбирайся!
Почти разобрался, но некоторые вопросы остались. Почему AutoCad 2002 пишет, что видит один объект (в первой строке третья цифра), а уже версия 2004 видит два объекта?
Вообще, я так понял, мануал, что вы разместили на форуме предназначен для программирования на Си, или я ошибаюсь.
__________________
Продумано до мелочей
Скулачёв А. вне форума  
 
Автор темы   Непрочитано 08.01.2009, 09:02
#35
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


Цитата:
Сообщение от Скулачёв А. Посмотреть сообщение
Вообще, я так понял, мануал, что вы разместили на форуме предназначен для программирования на Си, или я ошибаюсь.
Проблема не в си или лисп, а еще глубже. Мануал, размещенный на форуме, предназначен для описания формата SAT в общем и целом, а не применительно для акада. К тому же, версии форматов в мануале и акаде разные... Но это не мешает, разобраться в описании тел акада. Просто, необходимо более творчески подходить к справке и тратить время на эксперименты...

Удачи!
Елпанов Евгений вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Версии формата описания 3dSolid (сравнение)

Опции темы Поиск в этой теме
Поиск в этой теме:

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