Всё, нашел сам.
Ошибка была в переборе найденых текстов, когда ни один текст не подходил по параметрам, программа зацикливалась.
выкладываю исправленный код сюда, для критики:

(defun se_lin(linva /)
(if (=(tblsearch "ltype" linva t) nil)
(command "Linetype" "L" linva "mano1001.lin" "")
(princ)
)
)

(defun se_lay1 (layva layco linva /)
(if (=(tblsearch "layer" layva t) nil)
(command "layer" "N" layva "color" layco layva "Ltype" linva layva "")
(princ)
)
)

(defun c:VA_auto_text(/)
(setvar "cmdecho" 0)
(setq sn(getvar "Osmode") spalva (getvar "CECOLOR"))
(setq 3d_taskai (ssget "x" (list (cons 8 "Rel_pik_1300_3d")(cons 0 "point"))))
(if (/= 3d_taskai nil)
   (progn      (command "erase" 3d_taskai "")(princ "\nПока 3D точки")
   )
   (progn      (Princ)
   )
) 
(setq 3d_taskai nil) 
;------------------------------------------
(setq pik_bl_sarasas (ssget "x" (list (cons 8 "1300_point")(cons 0 "insert"))))
(setq t_e (ssget "x" (list (cons 8 "1300_text")(cons 0 "text"))))
(if (and (/= pik_bl_sarasas nil) (/= t_e nil))
   (progn      (princ "\nКоличество пикетов: ")(princ (sslength pik_bl_sarasas))(princ ", Количесиво отметок: ")(princ (sslength t_e))
      (se_lin "2131")      (se_lay1 "2131" "32" "2131")      (command "-layer" "unlock" "2131" "set" "2131" "")
      (while (/= (sslength pik_bl_sarasas) 0)
         (setq enn (ssname pik_bl_sarasas 0))
         (if (/= enn nil)
            (progn (setq edata(entget enn) it_tsk(cdr (assoc 10 edata))) (setq sx (cadr it_tsk) sy (car it_tsk) zumas (list sy sx))
               (setq tekstu_sarasas (ssget "_c" (list (+ sy 0.2000)(- sx 0.7500))(list (+ sy 4.0000)(+ sx 1.0000))(list (cons 8 "1300_text")(cons 0 "text"))))
               (if (/= tekstu_sarasas nil)
                  (progn (setq tekstu_kiekis (sslength tekstu_sarasas))
                     (while (/= tekstu_kiekis 0) 
                        (setq t_enn (ssname tekstu_sarasas 0)) 
                        (if (/= t_enn nil) 
                           (progn (setq t_edata(entget t_enn))(setq t_it_tsk(cdr (assoc 10 t_edata)))(setq t_sx (cadr t_it_tsk) t_sy (car t_it_tsk))
                              (if (and (= t_sx (- sx 0.5000)) (= t_sy (+ sy 0.5000)))
                                 (progn (setq altitude (cdr (assoc 1 t_edata))) (command "insert" "2131" (list sY sX) 1 "" "" altitude)
                                    (entdel enn) 
                                    (setq pik_bl_sarasas (ssdel enn pik_bl_sarasas)) 
                                    (entdel t_enn)
                                    (setq tekstu_sarasas nil)
                                    (setq tekstu_kiekis 0)
                                 )
                                 (progn 
                                 (setq tekstu_sarasas (ssdel t_enn tekstu_sarasas)) (setq tekstu_kiekis (1- tekstu_kiekis))
                                 (if (= tekstu_kiekis 0)
                                 (progn
                                    (entdel enn) 
                                    (setq pik_bl_sarasas (ssdel enn pik_bl_sarasas)) 
                                 )
                                 (princ)
                                 )
                                 )                                 
                              ) 
                           )
                           (progn (princ)
                           )   
                        )       
                     ) 
                  )
                  (progn 
                     (entdel enn) ; trinam piketa is brezinio
                     (setq pik_bl_sarasas(ssdel enn pik_bl_sarasas)) 
                  )
               )
            )
         )       ;if {/=enn nil}{progn
      );while
   ;{taip}
   );progn
   ;{ne}
);if {/= pik_bl_sarasas nil}
(setvar "Osmode" sn)
(setvar "cmdecho" 1)
(Princ "\nСделано!")
(princ)
)

Здравствуйте
Помогите разобратся где ошибка в коде.
Есть некая программа, которая выводит пикеты в виде блока и подписывает значение в виде текста.
Данная программа выбирает все блоки с определенного слоя и в цикле перебирая тексты находящиеся на определенном слое и на определенном удалении от самого блока, заменяет их другим блоком с аттрибутом (2131) записывая отметку в виде значения атрибутного поля, при этом старый блок и текст удаляет. Если у блока на определённом растоянии не нашлось текста, этот блок удаляется. Так вот, программа работает как она хочет, я уже сломал голову в поиске ошибки. Помогите её найти, и да CAD в которой она должна работать не поддерживает VL- VLX- VLA- функции. Ссылка на yandex диск с программой, примерным файлом (piketai.dwg), вставляемым блоком и типом линии ниже.
Спасибо

https://yadi.sk/d/RZRjo1erR6kqgQ

Большое спасибо. не совсем  так работает как хочется мне, но надеюсь получится адаптировать к своим нуждам (сперва кириллицу переведем на транслитб а то у меня одни ероглифы)

Спасибо, но не то. Это действие тупо дугу заменяет на отрезок, мне надо чтобы заменял на отрезки с минимальной потерей сглаживания, и желательно не для отдельно взятого сегмента одной полилинии, а всех полилиний в чертеже. Для сплайна чертёжь записываю в R12 и получаю желаемое.

доброго времени суток
Есть потребность сменить дуговые сегменты полилинии, на прямые отрезки. Есть какое готовое решение?
Спасибо

Владимир Громов пишет:

Так с чего ты решил, что записывает без потерь,раз у тебя его нету?

Так очень просто, я эти данные вижу, и они соответствуют требуемым. Самоуправление выдаёт вырезку из своей базы данных (WEBGIS), dwg чертёж. Это план местности, и все объекты в нём, в частности инжинерные коммуникации имеют ОД: материял, диаметр, количесиво, напряжение и.т.д. Раньше выдывал в версии 2000, сейчас стал в 2013, вот и изгаляюсь.

Vitaly пишет:

Очень просто, во-первых, ОД- объектные данные в MEP не изменялись сто лет во-вторых, вы не в той теме, с Land-ом!

Слегка не понял...
Таки да, у меня иконка на рабочем столе Autodesk Land Enabled Map 2005, так что я и не знаю что у меня: Ленд или Меп

И как после выше изложенного Вы можете подтверждать, что

Vitaly пишет:

...подтверждаю ещё раз, новые фичи на старой версии MEP не увидите!

  :?:  :?:  :?:

В этих чертежах ничего нету, кроме полилиний, блоков (обыкновенных, не динамических) и текста. Просто к этим обьектам прицеплены данные Object Data. Так вот, Лендовская линейка записывает в любую версию ниже с этими даными, кадовская линейка чертежи портит.

Да какие новые Фичи!!! Эти фичи тянутся уже от версии 2000 года. Просто самоуправление обновило ПО и сейчас выдаёт данные в формате 2013 года ...

Vitaly пишет:

Так что в итоге получилось с 2004-ой?

. Прошу коллег понизить версию до 2004. Что означает о возможности видеть "новые фичи" в более старых версиях АвтоГада.

Глупости!!!
LAND 2016 записывает в версию 2004 без потерь ОД, но у меня его нету. Пробовал nanoCAD, с 2007 версии понижает до 2004 но получается странно, 2005 МЭП ОД не видит, а 2009 МЭП видит

Доброго времени суток,
вопрос в названии темы. Имеется в dwg 2013 версии, надо получить на выходе 2004, Имеется Ланд 2005. Чем можно это сделать, желательно free. DWG true view  с этой задачей несправляется.

евгений кондроев пишет:

подскажите какие программы в которых по кодам подписываются и линейные объекты сразу не слыхал про такие!))

Power Survey от Bentley такое делает

Дмитрий пишет:

Хм, даже такой софт написали))) мне как то привычнее через автозамену, в любом текстовом редакторе есть...

Через автозамену чего, простите? Что есть в любом текстовом редакторе? функция по замене нажатой запятой на цифровой клавиатуре на точку или на любой другой символ? Интересно...

14

(3 ответов, оставленных в Геодезия и картография)

Неудобство метода предложенного Александром: надо будет всем вместе со своими чертежами поставлять и Тобою созданный SHX фаил.
неудобство метода предложенного 1 1: при смене шрифта в текстовом стиле, линии будут искажены.
Всётаки предпочтительнее использовать первый метод

...
(setq ptt (getpoint "\n Укажите место размещения текста: "))
...
(command "_TEXT" ptt "" "" area)
...

16

(1 ответов, оставленных в LISP)

Проверь стиль текста. Скорее всего задана высота (обнули) или исправь код, на проверку текстового стиля (где то здесь на форуме валяется)

17

(20 ответов, оставленных в AutoCAD)

Не под каким предлогом им не давать даже издалека взглянуть. А если серьёзно, нету возможности так защитить Твой чертёж. Если смогли один раз распечатать, смогут и второй, третий ... От редактирования, условно, защитить еще можно (условно - потому, что это можно обойти)

18

(2 ответов, оставленных в AutoCAD)

Чтото вроде этого:

*OTKRSK,otkrsk (((((
A,0,["(",STANDARD,Y=-.2,s=.40],-1.
*ZAKRSK,zakrsk )))))
A,0,[")",STANDARD,Y=-.2,s=.40],-1.

Не надо тут гнать на геодезистов. Все у нас нормально получается. Передавать надо не только ведомость координат, но и проект в формате DWG. Остальное, мы сами проверяем и на местность выносим. И системы координат выкручивать и переворачивать не надо

Только не еластичным преобразованием. Нельзя искажать данные, получите неправильный результат. Только смещение и поворот. Легче всего плановое положение конструкций сделать блоком.  А дальше, align без изменения масштаба. У меня получаеться найти минимальные плановые отклонения максимум в три попытки.
P.S. Да сваи и колонны мерять стараемся по максимуму (два~три угла каждой колонны)

21

(11 ответов, оставленных в AutoCAD)

Так всё же, в чём их классность?

22

(11 ответов, оставленных в AutoCAD)

Не получится. Автокад не умеет таких лининий рисовать

чтобы "<<---o--->>" только на поворотных точках, а начало и конец линии "о" опора

23

(47 ответов, оставленных в О форуме)

1. Аватары, конечно хорошо, но на такие:
https://www.caduser.ru/upload/avatar/a2d/002.gif
смотреть не возможно, в глазах рябит. Не запретитиь ли GIF как аватар?
2. Специално пересмотрел несколько дней тому назад все вопросы в одной ветке. Краснота пропала, очень хорошо. Сегодня, захожу на форум, смотрю, опять та ветка покраснела. Новые сообшения, значит. захожу на ветку, смотрю всё старё чего то покраснело. Ни одного нового сообшхения нет, а почемуто покраснело. Странно однако.
3. Что то разучился пользоваться транслитом, Не получается написать ЕХ(Э) ШХ(Щ).
4. Ну когда же заработает пометить как прочитанное ?

24

(6 ответов, оставленных в LISP)

Эта программа написана на английскую версию AutoCAD. Вы пытаетесь её запустить на русской. Попытайтесь изменить строчку

(command "DDEDIT" EN "") 

на

(command "_DDEDIT" EN "") 

Не получается у AutoCAD вычертить такие линии, чтобы стрелочки и опора была на поворотах.