|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Зависает vlax-curve-getPointAtDist на сплайне
Регистрация: 14.03.2006
Сообщений: 23
|
||
Просмотров: 2905
|
|
||||
Не понял, что имеется в виду, играть в гадалки неохота...
Сплайн в чертеже посмотрел - нормальный сплайн, ничего в нем "нехорошего" не заметил, разве что длина примерно 71500мм чертежа. Надо код смотреть. P.S.Дело было вечером, делать было... ну и так далее ![]() Состряпал код: Код:
Нарисовал еще один сплайн, проверил на нем - при любых значениях код работает исправно, ничего не виснет. Сравнил дампы кодом, отмеченным синим цветом. У "неправильного" сплайна странное св-во StartTangent: Код:
Последний раз редактировалось Do$, 30.10.2009 в 22:50. |
||||
![]() |
|
||||
Регистрация: 14.03.2006
Сообщений: 23
|
Спасибо.
"Есть подозрение, что сплайн создан каким-то нестандартным способом" Возможно. Наверняка не знаю, т.к. чертеж, откуда выдран сплайн не мой. Но вот dxf-коды сплайна. В конце списка повторяются несколько раз точка (10 259643.0 250233.0 0.0). Может из-за этого висюльки? ((-1 . <Имя объекта: 7ef6f078>) (0 . "SPLINE") (330 . <Имя объекта: 7ef63cf8>) (5 . "3747") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "$DDT_AUDIT_GENERATED_(2656A)") (6 . "$DDT_AUDIT_GENERATED_(26567)") (48 . 10.0) (100 . "AcDbSpline") (210 0.0 0.0 1.0) (70 . 8) (71 . 3) (72 . 36) (73 . 32) (74 . 0) (42 . 1.0e-010) (43 . 1.0e-010) (40 . 199.124) (40 . 199.124) (40 . 199.124) (40 . 199.124) (40 . 200.021) (40 . 200.021) (40 . 201.809) (40 . 201.809) (40 . 203.597) (40 . 203.597) (40 . 206.465) (40 . 206.465) (40 . 208.073) (40 . 208.073) (40 . 209.68) (40 . 209.68) (40 . 212.894) (40 . 212.894) (40 . 214.282) (40 . 214.282) (40 . 215.669) (40 . 215.669) (40 . 218.444) (40 . 218.444) (40 . 221.01) (40 . 221.01) (40 . 222.943) (40 . 222.943) (40 . 225.416) (40 . 225.416) (40 . 227.888) (40 . 227.888) (40 . 231.345) (40 . 231.345) (40 . 231.345) (40 . 231.345) (10 201128.0 291278.0 0.0) (10 201404.0 291138.0 0.0) (10 201679.0 290998.0 0.0) (10 202498.0 290578.0 0.0) (10 203037.0 290300.0 0.0) (10 204117.0 289739.0 0.0) (10 204663.0 289453.0 0.0) (10 206098.0 288692.0 0.0) (10 206995.0 288205.0 0.0) (10 208408.0 287405.0 0.0) (10 208919.0 287108.0 0.0) (10 209913.0 286517.0 0.0) (10 210401.0 286221.0 0.0) (10 211839.0 285337.0 0.0) (10 212765.0 284753.0 0.0) (10 214054.0 283944.0 0.0) (10 214439.0 283703.0 0.0) (10 215222.0 283213.0 0.0) (10 215617.0 282966.0 0.0) (10 216814.0 282215.0 0.0) (10 217625.0 281701.0 0.0) (10 219204.0 280677.0 0.0) (10 219972.0 280166.0 0.0) (10 221304.0 279252.0 0.0) (10 221873.0 278853.0 0.0) (10 223162.0 277926.0 0.0) (10 223869.0 277402.0 0.0) (10 225246.0 276362.0 0.0) (10 259643.0 250233.0 0.0) (10 259643.0 250233.0 0.0) (10 259643.0 250233.0 0.0) (10 259643.0 250233.0 0.0)) |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
У сплайна отсутствуют т.н. FitPoints и свойства StartTangent и EndTangent. Жалко, что Alaspher практически не появляется - у него, насколько я помню, решение для подобных сплайнов существовало...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 14.03.2006
Сообщений: 23
|
> Кулик Алексей aka kpblc
Как хорошо, что и Вы откликнулись! А я-то, шляпа, сидел, ковырял dxf-коды проказника-сплайна, рисовал для пробы рядом другие, чтобы сверять коды на предмет что тут не так, и проглядел эти самые "т.н. FitPoints и свойства StartTangent и EndTangent". Поступил так: т.к. отсутствуют коды "44" и "11", создал копию списка dxf-кодов нехорошего сплайна, добавил (cons 44 0.0000000001), а также для каждой точки типа (10 x y z) добавил до пары соответствующие (11 x y z), т.е. с теми же x, y и z, что и для (10 .....). Затем (entmake) по полученному списку с удалением сплайна-оригинала. Полученная копия - работоспособна и не вешает autocad при ранее проблемных приращениях 7000, 2000 и 1000 (хотя это еще надо пробовать еще с другими приращениями расстояния) . Спасибо! |
|||
![]() |