Jump to content

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


aerohost
 Share

Recommended Posts

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

Edited by A.Kudrjashov
  • Thanks 2
Link to comment
Share on other sites

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

 

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

 

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

Link to comment
Share on other sites

  • 2 weeks later...

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

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

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

CookieCutter2 v1.2a mod by VVA.lsp

Edited by Narumarus
Добавил файл
Link to comment
Share on other sites

; 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))
            )
            )

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

  • 2 weeks later...

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

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

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

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

  • Like 3
Link to comment
Share on other sites

  • 4 weeks later...

Вопрос: объекты, пересекающие кромки должны именно удаляться или обрезаться (надо проверить под 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

Edited by lidia.antipina.ru
  • Like 1
Link to comment
Share on other sites

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

Link to comment
Share on other sites

3 минуты назад, Narumarus сказал:

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

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

Link to comment
Share on other sites

  • 2 months later...

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

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

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

 

PS.

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

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

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

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

 

StripMtext v5-0c1.lsp

Edited by EdwardSt
  • Thanks 1
Link to comment
Share on other sites

12 минут назад, EdwardSt сказал:

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

Edited by aerohost
Link to comment
Share on other sites

23 минуты назад, aerohost сказал:

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

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

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

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

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

Досадно...

 

 

Link to comment
Share on other sites

Только что, EdwardSt сказал:

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

Досадно...

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

  • Thanks 1
Link to comment
Share on other sites

9 часов назад, lidia.antipina.ru сказал:

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

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

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

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

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

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

Link to comment
Share on other sites

20 минут назад, aerohost сказал:

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


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

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

В 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.

 

 

  • Like 1
  • Thanks 2
Link to comment
Share on other sites

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

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

 

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

image.png

txt-edit_Nc.lsp

  • Like 3
  • Thanks 2
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Tell a friend

    Love Официальный форум компании Нанософт? Tell a friend!
×
×
  • Create New...