Перейти к содержанию

Адаптация Lisp под Nanocad


Рекомендуемые сообщения

49 минут назад, tok сказал:

Бился с адаптацией под Nanocad лиспа для получения точек полилинии в формате для тахеометров лейка, ничего к сожалению не получается.

Может кто нибудь помочь в этом непростом деле?


Я не знаю, что именно должно было получиться, но что-то получилось ...

Спойлер

image.thumb.png.7655bfca1e7b51805928d42391143acd.png

 

Файлы:

EXP-GSI_test.dwg

 

exp_gsi_2.LSP

 

111.gsi

 

Скрипт отформатировал для большей читабельности.
В двух местах поставил пробел:

Спойлер

image.png.47884c94811cf3dd6a61cd6818613752.png

 

Спойлер

image.png.408e144175b4275749fc0364845845b6.png

 

Больше ничего не делал.

Проверил под nanoCAD 20.1

Изменено пользователем A.Kudrjashov
Ссылка на сообщение
Поделиться на другие сайты
  • Ответов 56
  • Дата создания
  • Последний ответ

Лучшие авторы в теме

Лучшие авторы в теме

Популярные посты

Есть еще txt-edit_Nc.lsp - удаляет форматирование для всего файла или выборочно.   Для сброса цвета - см. bgtools 3.11a_Nc_21.lsp - работающие команды отмечены + в BGINFO.   Насчет Stri

Создан дефект. Год назад было поправлено для передачи строки с символом \0, но вероятно не совсем корректно  

Для версии ниже 21 закомментировать также  (vla-EndUndoMark doc) (vla-StartUndoMark doc) Остальное- посмотрю

Изображения в теме

Премного благодарен, даже не рассчитывал на такую оперативность.

 

Еще раз огромное Вам спасибо, все работает замечательно.

 

С уважением,
Александр.

Ссылка на сообщение
Поделиться на другие сайты
  • 2 недели спустя...

Кто-нибудь уже пробовал адаптировать под nanoCAD лисп CCutter.lsp быстрой подрезки внутри/снаружи контура?

Сходу пришлось закомментировать в nanoCAD 20.1 не реализованы:

(setvar "edgemode" emode)
(setvar "projmode" pmode)

CookieCutter2 v1.2a mod by VVA.lsp

Изменено пользователем Narumarus
Добавил файл
Ссылка на сообщение
Поделиться на другие сайты

В коде недокументированная отсутствующая в AutoCAD функция @delta в (TraceSpline obj):

(@delta ang1 ang2)

Изменено пользователем lidia.antipina.ru
Ссылка на сообщение
Поделиться на другие сайты

; https://forum.dwg.ru/showthread.php?t=12287&highlight=%40delta

; Как в lispe начертить биссектрису прямого угла длиной 50 мм, координаты вершины угла я знаю.
; Может как то полярные координаты в lispe используются, как?

            ; written by  Uhden, John 
            (defun @delta (a1 a2)
            (cond
            ((> a1 (+ a2 pi))
            (- (+ a2 pi pi) a1)
            )
            ((> a2 (+ a1 pi))
            (- a2 a1 pi pi)
            )
            ((- a2 a1))
            )
            )

Ссылка на сообщение
Поделиться на другие сайты
  • 2 недели спустя...

Также часто встречаются конструкции (Command "._XXX" ...) или (vl-cmdf "._XXX" ...), в которых надо поменять префикс на "_."

Будет (Command "_.XXX" ...) или (vl-cmdf "_.XXX" ...)

добавлено через 0 минут

Создала пожелание #36469

Ссылка на сообщение
Поделиться на другие сайты
  • 4 недели спустя...

Вопрос: объекты, пересекающие кромки должны именно удаляться или обрезаться (надо проверить под AutoCAD, у кого есть он). 

У меня под Nc 20.3, 21.0 удаляются целиком. То если налезла на кромку полилиния, то удаляется она целиком, а не сегменами: 

;shortcut
;;; Button for CCIN
;;; *^C^CCCin;\;Yes;
;Команды
;CCin - CC с точкой внутри, запрос на удаление объектов
;CCout - CC с точкой снаружи, запрос на удаление объектов
;CCinD - CC с точкой внутри, удаление объектов
;CCinDM - CC с точкой внутри, удаление объектов, бесконечный цикл
 ;LA Nc 21.0 - работает только с полилинями и окружностями, эллипсами
 ;LA Nc 21.0 - удаляет целиком (надо отсекать часть?) объекты внутри/снаружи и пересекаемые. 
(defun c:CCin () (CookieCutter2a t nil))
(defun c:CCout () (CookieCutter2a nil nil))
;;; CC internal Delete All
(defun c:CCinD () (CookieCutter2a t "Yes"))
;;; CC internal Delete All Multiple
(defun c:CCinDM ()(while t (CookieCutter2a t "Yes")))

CookieCutter2 v1.2a mod by VVA_Nc.lsp

Изменено пользователем lidia.antipina.ru
Ссылка на сообщение
Поделиться на другие сайты

Обрезать по контуру, как говорят, те, кто пользовался этим скриптом: - Выделил прямоугольником, и получил ровный пустой прямоугольник.

Ссылка на сообщение
Поделиться на другие сайты
3 минуты назад, Narumarus сказал:

Обрезать по контуру, как говорят, те, кто пользовался этим скриптом: - Выделил прямоугольником, и получил ровный пустой прямоугольник.

Будем копать дальше

Ссылка на сообщение
Поделиться на другие сайты
  • 2 месяца спустя...

См. приложение.

В простых случаях вроде работает.

Может сойдет?

 

PS.

Нужно более детально пройтись по всему коду.

Проблема в функциях (vl-bb-ref ...) и  (vl-bb-set ...)

Они имеют смысл в автокаде, но не в нанокаде.

В начале файла заменил, а дальше было лениво.

 

StripMtext v5-0c1.lsp

Изменено пользователем EdwardSt
Ссылка на сообщение
Поделиться на другие сайты
18 минут назад, EdwardSt сказал:

См. приложение.

Может сойдет?

 

StripMtext v5-0c1.lsp 61 \u043a\u0411 · 0 загрузок

Iisp хоть начал заводиться, но функционал lispa не работает .... 

Спойлер

image.thumb.png.794851bd97fa65387b8a30fda105067b.png

 

Ссылка на сообщение
Поделиться на другие сайты

Попробуйте так

StripMtext v5-0c1.lsp

 

Кстати, этот код вроде что-то делает в 21.0, а в 20.1 ругается еще и на функцию (ssget...)

Сложная она...

Изменено пользователем EdwardSt
Ссылка на сообщение
Поделиться на другие сайты
12 минут назад, EdwardSt сказал:

Класс, вроде функционал работает (ncad 21), потестирую, отпишусь, в случаи если все ок, рекомендую вам сделать отдельную тему в кат. "доп к ncad"

Изменено пользователем aerohost
Ссылка на сообщение
Поделиться на другие сайты
23 минуты назад, aerohost сказал:

Класс, вроде функционал работает (ncad 21),

Похоже, все-таки, дело не только в этих функциях.

От них зависела только работоспособность в принципе.

Но в АС (исходный код) и NC (модифицировано выше) прога работает по-разному ;).

Нужно более детально копаться в работающей программе, чтоб найти НЕ ТАК работающие функции.

Досадно...

 

 

Ссылка на сообщение
Поделиться на другие сайты
Только что, EdwardSt сказал:

Нужно более детально копаться в работающей программе, чтоб найти НЕ ТАК работающие функции.

Досадно...

В выходные постараюсь посмотреть.

Ссылка на сообщение
Поделиться на другие сайты

Просьба приложить примеры для тестирования, чтобы не изобретать

добавлено через 6 минут

Подобная прога должна работать

change text styles (cts) 1.8.LSP

Ссылка на сообщение
Поделиться на другие сайты
9 часов назад, lidia.antipina.ru сказал:

Просьба приложить примеры для тестирования, чтобы не изобретать

добавлено через 6 минут

Подобная прога должна работать

change text styles (cts) 1.8.LSP 41 \u043a\u0411 · 0 загрузок

не совсем то, я так понимаю ваш приложенный лисп переводит на выбранный текстовый стиль  текст.

Лисп который я приложил выше, должен выполнять удаление форматирования текста( принуженный поставленный цвет, текстовый стиль, ширину и высоту текста) скажем так привести к цвету по слою, стиль текста поставить по "Стилю"  ширину и высоту выставить по размеру самого текста. Чуть позже скину примерчик...

Ссылка на сообщение
Поделиться на другие сайты
36 минут назад, Boroda888 сказал:

Было уже нечто подобное и работающее или не устраивает?

 

У лиспа выше, побольше функционала

Ссылка на сообщение
Поделиться на другие сайты

Ребята, у кого то получилось накрутить лисп ? 

Изменено пользователем aerohost
Ссылка на сообщение
Поделиться на другие сайты
20 минут назад, aerohost сказал:

Ребята, у кого то получилось накрутит лисп ? 


Разбираюсь потихоньку.
Основная проблема - интерпретация полей в таблицах AutoCAD. Таблицы nanoCAD данный скрипт, понятное дело вообще игнорирует. Это следующая тема.
Как и если получится, напишу.

Ссылка на сообщение
Поделиться на другие сайты
В 19.10.2021 в 10:27, aerohost сказал:

Ребята, у кого то получилось накрутит лисп ? 

... все печально.
Скрипты и примеры будут ниже во вложении.

 

nanoCAD 20.x

1.1

Тестирование под NC20.x показало, что в процессе попытки чтения текстовой составляющей объекта и возврата ее назад, у объекта теряется определение полей.

В самом простейшем случае, при попытке очистки цвета мы из

Спойлер

image.png.46138c8fa09193ae1e05bcc1e62751ba.png

 

получаем

Спойлер

image.png.5d16b55e2532d0a011a87cb2f85404e7.png

 

При этом единственное место где обрабатывается код объекта это

Спойлер

image.png.d9a0493a0b1c5e001d5bcc3f3851d1cb.png

 

Вывод содержимого строк до и после форматирования в nanoCAD и AutoCAD показывает, что они идентичны.

В AutoCAD все нормально.

Спойлер

image.png.99b5e40232745f2fedfb56ed3b1b16f3.png


Никаких других манипуляций с объектом в данном режиме очистки я пока не наблюдаю.

 

Там есть и другие проблемы, но эта наиболее принципиальная.

Если не обращать внимание на поля, то остальное вроде как работает. Я протестировал на своем примере.

 

1.2

Есть еще одна непонятная проблема:
Если после очистки выполнить Undo, то повторная очистка не выполняется, так как вот этот код неправильно читает текстовые фрагменты.

Спойлер

image.png.91a34eba2ad1694ecba715a654ef762d.png

 

Но, если просто в поле настроек фильтра очистки передернуть галочку опции, то все начинает работать нормально.
Истоки проблемы тоже пока не нашел.

 

nanoCAD 21.x

Но сама большая засада обнаружилась под nanoCAD 21.x.
Выше описанная операция очистки цвета, которая более менее выполняется под NC20, под NC21 выдает вот такой результат:

Спойлер

image.png.5cea9fab3ef9320d034955ccb9155130.png

 

Проверка текстовой строки до  после обработки подтверждает "корректность" вывода
 

Спойлер

image.png.22da9911c4b8fbd55e3ca4dde062777b.png

 

То есть под NC21 есть ещё какие то принципиальные "нововведения".

 

... как то так, грустно и печально.

 

Скрипт в первом приближении:

StripMtext v5-0c1_NC.lsp
GCA.lsp
 

Тестовый файл:

(12-07-13_18.10.2021)StripMText_Sample_NC20.dwg

 

Файл GCA.lsp надо бросить куда-нибудь, где до него дотянется NC.

 

 

Ссылка на сообщение
Поделиться на другие сайты

Есть еще txt-edit_Nc.lsp - удаляет форматирование для всего файла или выборочно.  

Для сброса цвета - см. bgtools 3.11a_Nc_21.lsp - работающие команды отмечены + в BGINFO.

 

Насчет StripMtext v5-0c1_NC.lsp вызывает сомнение обработка команд VBScript.RegExp

image.png

txt-edit_Nc.lsp

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Расскажите друзьям

    Нравится Официальный форум компании Нанософт? Расскажите друзьям!

×
×
  • Создать...