Jump to content

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


aerohost
 Share

Recommended Posts

Добрый день.

Лисп расставляет длины сегментов полилинии в виде мультивыносок (с доп. параметрами). В автокаде работает (единственное почему то то полилиния должна быт не видна на экране при работе лиспа, если видна, то вставляет мультивыноски не посередине сегментов полилинии, а в вершины), но меня устраивает. А вот в нанокаде не хочет(не заполняет mtext мультивыноски, в командной строке все считает) Может кто подскажет как под нанокад переделать?

Нанокад.jpg

DLINA.LSP В нанокаде.dwg

Link to comment
Share on other sites

Попробуйте приложенный скрипт

Внес некоторые усовершенствования:

1. Возможность использования кривых сегментов

2. проверка корректности ввода некоторых  (не всех!) значений

 

Не проверял на полилиниях с дублированными вершинами и всякими другими хитрыми расположениями.

Точно выявлено, что некорректно работает при измененной ПСК (но это относится и к исходному срипту).

DLINA1.lsp

  • Like 3
Link to comment
Share on other sites

  • 3 months later...

Товарищи. У кого то получилось с помощью lisp у мультивыноски включать выключать фон и менять цвет фона и ширина фона? 

Link to comment
Share on other sites

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

Делал это на мтекстах и многострочных атрибутах.

Вроде, там все прозрачно.

Ну под Мтекст у меня есть лисп, вроде даже с тобой дорабатывали. Вот с Мультивыносками произошел затык. 

 

 

Link to comment
Share on other sites

Маленький пример использования

(defun c:tt ( / a)
  (setq a (car (entsel)))
  (change_mleader_back a 1 0 -1023410175 1.2)
  )
  
;vis - 1,0 Заливка фона текста вкл/выкл
;useback - 1,0 Использовать/не использовать цвет фона чертежа
;color - цвет фона (очень заморочно. советую не использовать)
;size - (1.0 - 5.0) Коэф перекрытия 
;
;для любого параметра можно применить nil, чтоб его не использовать
(defun change_mleader_back (el vis useback color size / a d)
  (setq d (entget el) spk nil)
  (if vis (setq spk (cons (cons 292 vis) spk))) 
  (if useback (setq spk (cons (cons 291 useback) spk))) 
  (if color (setq spk (cons (cons 91 color) spk))) 
  (if size (setq spk (cons (cons 141 size) spk))) 
  (foreach a spk
    (setq d (subst a (assoc (car a) d) d)))
  (entmod d)
  (prin1)  
  ) 

Только цвет фона лучше не трогать. Там как-то заморочно он управляется.

Когда-то разобрался, но сейчас уже и не вспомню.

Лучше использовать цвет фона в качестве заливки.

Тогда вызов будет 

       (change_mleader_back a 1 1 nil 1.2)

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

Posted (edited)
1 час назад, EdwardSt сказал:

Маленький пример использования

(defun c:tt ( / a) (setq a (car (entsel))) (change_mleader_back a 1 0 -1023410175 1.2) ) ;vis - 1,0 Заливка фона текста вкл/выкл ;useback - 1,0 Использовать/не использовать цвет фона чертежа ;color - цвет фона (очень заморочно. советую не использовать) ;size - (1.0 - 5.0) Коэф перекрытия ; ;для любого параметра можно применить nil, чтоб его не использовать (defun change_mleader_back (el vis useback color size / a d) (setq d (entget el) spk nil) (if vis (setq spk (cons (cons 292 vis) spk))) (if useback (setq spk (cons (cons 291 useback) spk))) (if color (setq spk (cons (cons 91 color) spk))) (if size (setq spk (cons (cons 141 size) spk))) (foreach a spk (setq d (subst a (assoc (car a) d) d))) (entmod d) (prin1) )

(defun c:tt ( / a)
  (setq a (car (entsel)))
  (change_mleader_back a 1 0 -1023410175 1.2)
  )
  
;vis - 1,0 Заливка фона текста вкл/выкл
;useback - 1,0 Использовать/не использовать цвет фона чертежа
;color - цвет фона (очень заморочно. советую не использовать)
;size - (1.0 - 5.0) Коэф перекрытия 
;
;для любого параметра можно применить nil, чтоб его не использовать
(defun change_mleader_back (el vis useback color size / a d)
  (setq d (entget el) spk nil)
  (if vis (setq spk (cons (cons 292 vis) spk))) 
  (if useback (setq spk (cons (cons 291 useback) spk))) 
  (if color (setq spk (cons (cons 91 color) spk))) 
  (if size (setq spk (cons (cons 141 size) spk))) 
  (foreach a spk
    (setq d (subst a (assoc (car a) d) d)))
  (entmod d)
  (prin1)  
  ) 

Только цвет фона лучше не трогать. Там как-то заморочно он управляется.

Когда-то разобрался, но сейчас уже и не вспомню.

Лучше использовать цвет фона в качестве заливки.

Тогда вызов будет 

       (change_mleader_back a 1 1 nil 1.2)

Спасибо, попробуем 

 

upd.

В целом все работает 

Честно говоря я не понял что отвечает за рамку

Не уж то это ?  -1023410175 ?

Спойлер

image.thumb.png.5e7590d57bd83eceab662c6b149df3e6.png

 

Edited by aerohost
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...