Schöck
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Нумерация мультивыносок.

Нумерация мультивыносок.

Ответ
Поиск в этой теме
Непрочитано 15.11.2011, 14:44 #1
Нумерация мультивыносок.
shartal
 
Регистрация: 12.08.2009
Сообщений: 338

На форуме есть несколько чудесных лиспов которые нумеруют атрибуты и текст, но с мультивыносками ни один не работает. Нельзя ли как-то исправить ситуацию.

Последний раз редактировалось shartal, 15.11.2011 в 15:41.
Просмотров: 19380
 
Непрочитано 15.11.2011, 17:18
#2
Oliver_88

"ценный кадр"
 
Регистрация: 02.12.2010
Сообщений: 115
<phrase 1=


Цитата:
но с мультивыносками ни один не работает.
Есть например нумерация по ходу расстановки.
http://forum.dwg.ru/showthread.php?p=814881&#post814881
Oliver_88 вне форума  
 
Непрочитано 15.11.2011, 18:55
2 | #3
ASLYS

Delineante
 
Регистрация: 26.12.2006
Ростов-на-Дону/Madrid
Сообщений: 397
<phrase 1=


Цитата:
Сообщение от shartal Посмотреть сообщение
На форуме есть несколько чудесных лиспов которые нумеруют атрибуты и текст, но с мультивыносками ни один не работает. Нельзя ли как-то исправить ситуацию.
это на каком-то другом форуме не работает, а на этом все работает как надо
Вложения
Тип файла: lsp AsmiTools_Renum.lsp (3.9 Кб, 601 просмотров)
ASLYS вне форума  
 
Непрочитано 16.11.2011, 09:35
#4
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,800
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Здесь Альтернатива нумерации атрибутов блоков есть еще подборка.
Да и у гугла можно спросить
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 16.11.2011, 10:51
#5
shartal


 
Регистрация: 12.08.2009
Сообщений: 338


Спасибо AsmiTools_Renum.lsp то что надо.
shartal вне форума  
 
Непрочитано 16.11.2011, 11:38
#6
Nata1

Инженер
 
Регистрация: 10.11.2008
Владимирская обл., пос. Вольгинский
Сообщений: 147


А как сохранить код по ссылке сообщения #2? По ссылке интересует сообщение #3, а там реактор. objectAppended.LSP? Потом надо в скобках название команды вводить, чтобы выполнилась.
__________________
AutoCAD 2014
Nata1 вне форума  
 
Непрочитано 16.11.2011, 14:21
#7
ASLYS

Delineante
 
Регистрация: 26.12.2006
Ростов-на-Дону/Madrid
Сообщений: 397
<phrase 1=


команду можно вводить как обычно _copy
ASLYS вне форума  
 
Непрочитано 02.04.2013, 14:21
#8
Garand


 
Регистрация: 28.10.2008
Сообщений: 26


В AsmiTools_Renum не получается обнулить ранее введенное значение суффикса или префикса. Нажатие пробела, как указано в описании не помогает. Системную переменную CMDECHO менял - безрезультатно.
В чем может быть дело?
Поправка: при вводе пробела в командной строке значение обнуляется, при вводе в окошке динамического ввода - нет.

Последний раз редактировалось Garand, 02.04.2013 в 15:21.
Garand вне форума  
 
Непрочитано 21.07.2016, 12:02
#9
Джеймс Борщ


 
Регистрация: 07.05.2014
Сообщений: 5


Допилил в AsmiTools_Renum возможность изменять инкремент:
Код:
[Выделить все]
 (defun c:renum (/ oldPref oldSuf oldStart oldIncr curText curStr) 
  (vl-load-com) 
  (if(not rnm:Pref)(setq rnm:Pref "")) 
  (if(not rnm:Suf)(setq rnm:Suf "")) 
  (if(not rnm:Start)(setq rnm:Start 1))
  (if(not rnm:Incr)(setq rnm:Incr 1))
  (setq oldPref rnm:Pref 
        oldSuf rnm:Suf
	oldStart rnm:Start
        oldIncr rnm:Incr); end setq 
  (setq rnm:Pref 
    (getstring T 
      (strcat "\nPrefix: <"rnm:Pref">: "))) 
  (if(= "" rnm:Pref)(setq rnm:Pref oldPref)) 
  (if(= " " rnm:Pref)(setq rnm:Pref "")) 
  (setq rnm:Suf 
    (getstring T 
      (strcat "\nSuffix: <"rnm:Suf">: "))) 
  (if(= "" rnm:Suf)(setq rnm:Suf oldSuf)) 
  (if(= " " rnm:Suf)(setq rnm:Suf "")) 
  (setq rnm:Start 
    (getint 
      (strcat "\nStarting number <" 
         (itoa rnm:Start)">: "))) 
  (if(null rnm:Start)(setq rnm:Start oldStart))
  (setq rnm:Incr ; increment 
    (getint 
      (strcat "\nIncrement <" 
         (itoa rnm:Incr)">: "))) 
  (if(null rnm:Incr)(setq rnm:Incr oldIncr)) ; end of increment
     (while T 
       (setq curStr(strcat rnm:Pref(itoa rnm:Start)rnm:Suf)) 
         (setq curText 
           (car 
             (nentsel "\n<<< Pick TEXT, MTEXT, MULTILEADER or ATTRIBUTE or press Esc to quit >>> "))) 
       (if 
         (and 
           curText 
           (member(cdr(assoc 0(entget curText))) '("TEXT" "MTEXT" "ATTRIB" "MULTILEADER")) 
           ); end and 
         (progn 
         (vla-put-TextString 
           (vlax-ename->vla-object curText)curStr) 
            (setq rnm:Start( + rnm:Incr rnm:Start)) ; added increment
         ); end progn 
        (princ "\n<!> This is not DText or MText <!>") 
        ); end if 
       ); end while 
   (princ) 
  ); end of c:renum
А кто-нибудь знает как отключить игнорирование пробелов в окне динамического ввода?
Джеймс Борщ вне форума  
 
Непрочитано 22.07.2016, 19:30
#10
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 6,998


возможно, что это ключ T в
Код:
Сергей812 вне форума  
 
Непрочитано 22.07.2016, 19:52
#11
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 36,754


Только про DYNMODE не забывайте: http://adn-cis.org/getstring-and-dynmode.html
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 25.07.2016, 19:41
#12
Olga_выноски


 
Регистрация: 25.07.2016
Сообщений: 5


Хелп ми!!!
Помогите разрешить наболевшее. Мы рисуем выноски. Очень конкретные. Линия, на конце блок из круга и номера внутри. Все. Чертеж состоит из набора деталей, мы их помечаем каждую. Эти выноски можно «тягать» за центр круга, что собственно нам и нужно. Таких выносок бывает на чертеже до 100 шт. Но! В какой-то момент (прозевал детальку) возникает необходимость изменить числа в кружке. Очень хотелось бы автоматизировать вот это изменение значений в блоке в выноске. Выбрать сколько-то выносок, и всем числам прибавить какое-то значение. Например, выбрали выноски 3, 4, 5 и превратили их в 6, 7, 8 Может, есть уже что-то готовое или кто может помочь? Спасибо.
Да, AutoCAD 2010.
Olga_выноски вне форума  
 
Непрочитано 25.07.2016, 19:53
#13
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 36,754


А на чем затык? Где свой код?
А если "вообще не хочу программировать самостоятельно" - то это в раздел "Поиск исполнителей"
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 25.07.2016, 20:43
#14
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 6,998


Offtop: у вас жесткое разделение труда - одни рисуют детали, другие выноски к ним?
прощелкать заново нумератором 100 выносок на чертеже - 2..3 минуты
Сергей812 вне форума  
 
Непрочитано 25.07.2016, 22:11
#15
skkkk

AutoCAD_2008->2011
 
Регистрация: 20.03.2008
Московская область
Сообщений: 2,289


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Offtop: у вас жесткое разделение труда - одни рисуют детали, другие выноски к ним?
Offtop: Сергей812, смех-смехом, а я такое частенько встречал: умный инженер выдает проектное решение за пару минут со словами: "Я все сделал, осталось только оформить", - а потом не такие умные или не такие уж и инженеры тратят не один день на оформление - и не то, чтобы они медленно работали.
Olga_выноски, была на форуме тема "Увеличение отметок на определенную величину". Там Кулик Алексей aka kpblc предложил код, который по-моему, должен подойти с небольшими доработками. Он кажется, для текстов, но под выноски доработать несложно. Найдите поиском эту тему, проверьте код (только с текстами), и, если почти то, сообщите тут - может, кто-нибудь подправит.
skkkk на форуме  
 
Непрочитано 26.07.2016, 11:32
#16
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,800
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Цитата:
Сообщение от Olga_выноски Посмотреть сообщение
Например, выбрали выноски 3, 4, 5 и превратили их в 6, 7, 8 Может, есть уже что-то готовое или кто может помочь?
Еще пару ссылок
numeric text editing (add or subtracting) см. #9
Increment Number in Tex
Lisp help. Need to +/- to number in text string
Lisp help. Need to +/- to number in text string (the swamp)
Lisp for adding number to multiple text entities?
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 26.07.2016, 16:10
#17
Olga_выноски


 
Регистрация: 25.07.2016
Сообщений: 5


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Offtop: у вас жесткое разделение труда - одни рисуют детали, другие выноски к ним?
прощелкать заново нумератором 100 выносок на чертеже - 2..3 минуты
100 х на 3 вида х на несколько чертежей в день ))) да, в общем-то и недолго, но и так работа рутинная, хотелось бы изменить.
Я написала небольшую программку (вернее взяла на форуме готовую и подкорректировала под свою задачу), которая увеличивает номер в выноске на 1. (файл прилагаю). Хотелось бы еще и корректировку.
Перелопатила много готовых лиспов для работы с числами, перенумераторы. Но у нас аннотативная мультивыноска, с ней "никто не дружит".
Я уже пробовала создавать динамический блок - линия, кружок на конце и цифра внутри, но линия должна доходить до центра окружности, и остается видимой внутри круга.
Короче, может быть решение где-то совсем рядом, но мне не встречается (((
Моя программка очень короткая, но свою узкую задачу она решает
Вложения
Тип файла: lsp zx-OS.LSP (453 байт, 73 просмотров)
Olga_выноски вне форума  
 
Непрочитано 26.07.2016, 16:20
#18
Olga_выноски


 
Регистрация: 25.07.2016
Сообщений: 5


Цитата:
Сообщение от skkkk Посмотреть сообщение
Offtop: Сергей812, смех-смехом, а я такое частенько встречал: умный инженер выдает проектное решение за пару минут со словами: "Я все сделал, осталось только оформить", - а потом не такие умные или не такие уж и инженеры тратят не один день на оформление - и не то, чтобы они медленно работали.
Olga_выноски, была на форуме тема "Увеличение отметок на определенную величину". Там Кулик Алексей aka kpblc предложил код, который по-моему, должен подойти с небольшими доработками. Он кажется, для текстов, но под выноски доработать несложно. Найдите поиском эту тему, проверьте код (только с текстами), и, если почти то, сообщите тут - может, кто-нибудь подправит.
Я прежде всего поискала по форумам, эту программу проверяла самой первой )). Не работает она с нашей мультивыноской с блоком.
Может как-то по-другому наши выноски рисовать, попроще?
Olga_выноски вне форума  
 
Непрочитано 26.07.2016, 18:24
#19
Olga_выноски


 
Регистрация: 25.07.2016
Сообщений: 5


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
А на чем затык? Где свой код?
А если "вообще не хочу программировать самостоятельно" - то это в раздел "Поиск исполнителей"
Да, уточняю свой вопрос. Прилагаю наш чертеж. И программку, которая вставляет мультивыноски с номерами, возрастающими на 1 (программка конечно очень урезанная, но свою задачу выполняет).
Имею большое желание изменять числа в мультивыносках.
А может быть есть возможность простановки и редактирования наших выносок и не средствами мультивыноски, а как-то иначе.
Вы дольше общаетесь на форуме, м.б. что-нить подскажете.
Буду благодарна любой помощи
Вложения
Тип файла: dwg
DWG 2004
перенумерация выносок.dwg (68.2 Кб, 247 просмотров)
Тип файла: lsp zx.LSP (453 байт, 74 просмотров)
Olga_выноски вне форума  
 
Непрочитано 26.07.2016, 23:01
1 | #20
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,800
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Цитата:
Сообщение от Olga_выноски Посмотреть сообщение
Имею большое желание изменять числа в мультивыносках.
Изменил немного код Lee Maca под твой тип мультивыносок
Код:
[Выделить все]
(defun c:ML_Inc (/ *error* ParseNumbers uFlag ss attname)
  (vl-load-com)
  ;; Инкремент мультивыносок, у которых блок-источник имеет атрибут с тагом, хранящимся в переменной attname
 (setq attname "TAGNUMBER") ;_Имя аттрибута блока-источника, хранящего значение
  (defun *error* (msg)
    (setvar 'NOMUTT 0)
    (and uFlag (vla-EndUndoMark *doc))
    (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
        (princ (strcat "\n** Error: " msg " **")))
    (princ))
    (defun ParseNumbers (str / lst Num Aph x rtn)
    ;; Lee Mac  ~  20.09.09
    (setq lst (vl-string->list str) Num "" Aph "")
    (while (setq x (car lst))
      (setq lst (cdr lst))
      (cond (  (and (/= "" Num) (= 46 x))
               (setq Num (strcat Num (chr x))))
            (  (< 47 x 58)
               (setq Num (strcat Num (chr x))
                     rtn (cons Aph rtn) Aph ""))
            (t (setq Aph (strcat Aph (chr x))
                     rtn (cons (read Num) rtn) Num ""))))
    (vl-remove nil
      (vl-remove "" (reverse (cons Aph (cons (read Num) rtn))))))
  (setvar 'NOMUTT 0)
  (setq *inc* (cond (*inc*) (1)))
  (setq *inc* (cond ((getint (strcat "\nSpecify Increment <"
                                      (vl-princ-to-string *inc*) "> : ")))
                    (*inc*)))
  (setq *doc (cond (*doc) ((vla-get-ActiveDocument (vlax-get-acad-object)))))
  (setvar 'NOMUTT 1)
  (princ "\nSelect Text to Increment <All> : ")
  (if (or (ssget "_:L" '((0 . "MULTILEADER")))
          (ssget "_X"  '((0 . "MULTILEADER"))))
    (progn
      (setq uFlag (not (vla-StartUndoMark *doc)))
      (vlax-for obj (setq ss (vla-get-ActiveSelectionSet *doc))
        (if (= 1 (vla-get-ContentType obj)) ;;_Мультивыноски имеют блок-источник
        (LM:SetMLeaderBlockAttributeValue obj attname
          (apply (function strcat)
                 (mapcar
                   (function
                     (lambda (x) (if (vl-position (type x) '(INT REAL))
                                   (mip-conv-to-str (+ x *inc*)) x)))
                   (ParseNumbers (LM:SetMLeaderBlockAttributeValue obj attname nil)))))))
      (vla-delete ss)
      (setq uFlag (vla-EndUndoMark *doc))))  
  (setvar 'NOMUTT 0)
  (princ))
;;---------=={ Set MLeader Block Attribute Value }==----------;;
;;                                                            ;;
;;  Sets the value of the specified tag for the specified     ;;
;;  MLeader                                                   ;;
;;------------------------------------------------------------;;
;;  Author: Lee McDonnell, 2010                               ;;
;;                                                            ;;
;;  Copyright © 2010 by Lee McDonnell, All Rights Reserved.   ;;
;;  Contact: Lee Mac @ TheSwamp.org, CADTutor.net             ;;
;;------------------------------------------------------------;;
;;  Arguments:                                                ;;
;;  mleader - ename/VLA-Object MLeader with attributed block  ;;
;;  tag     - Tagstring of the attribute to change            ;;
;;  value   - Value to which attribute will be set or nil    ;;
;;  (if value eq nil, then return current value )   ;;
;;------------------------------------------------------------;;
;;  Returns:  T if successful, else nil                       ;;
;;------------------------------------------------------------;;
(defun LM:SetMLeaderBlockAttributeValue ( mleader tag value / def id )
  (vl-load-com)
  ;; © Lee Mac 2010
  (if
    (and
      (eq "AcDbMLeader"
        (vla-get-Objectname
          (setq mleader
            (cond
              ( (eq 'VLA-OBJECT (type mleader)) mleader)
              ( (vlax-ename->vla-object mleader) )
            )
          )
        )
      )
      (= 1 (vla-get-ContentType mleader))
      (setq def
        (LM:Itemp
          (vla-get-Blocks
            (vla-get-ActiveDocument
              (vlax-get-acad-object)
            )
          )
          (vla-get-ContentBlockName mleader)
        )
      )
    )
    (if
      (progn
        (vlax-for obj def
          (if (and (eq "AcDbAttributeDefinition" (vla-get-Objectname obj))
                   (eq (strcase tag) (strcase (vla-get-TagString obj))))
            (setq id (vla-get-ObjectID obj))
          )
        )
        id
      )
      (if value
        (not (vla-SetBlockAttributeValue mleader id value))
        (vla-GetBlockAttributeValue mleader id)
        )
    )
  )
)
;;-----------------------=={ Itemp }==------------------------;;
;;                                                            ;;
;;  Retrieves the item with index 'item' if present in the    ;;
;;  specified collection, else nil                            ;;
;;------------------------------------------------------------;;
;;  Author: Lee McDonnell, 2010                               ;;
;;                                                            ;;
;;  Copyright © 2010 by Lee McDonnell, All Rights Reserved.   ;;
;;  Contact: Lee Mac @ TheSwamp.org, CADTutor.net             ;;
;;------------------------------------------------------------;;
;;  Arguments:                                                ;;
;;  coll - the VLA Collection Object                          ;;
;;  item - the index of the item to be retrieved              ;;
;;------------------------------------------------------------;;
;;  Returns:  the VLA Object at the specified index, else nil ;;
;;------------------------------------------------------------;;

(defun LM:Itemp ( coll item )
  ;; © Lee Mac 2010
  (if
    (not
      (vl-catch-all-error-p
        (setq item
          (vl-catch-all-apply
            (function vla-item) (list coll item)
          )
        )
      )
    )
    item
  )
)
    (defun mip-conv-to-str (dat)
      (cond ((= (type dat) 'INT) (setq dat (itoa dat)))
            ((= (type dat) 'REAL) (setq dat (rtos dat 2 12)))
            ((null dat) (setq dat ""))
            (t (setq dat (vl-princ-to-string dat)))
      ) ;_ end of cond
    ) ;_ end of defun
Файл для тестирования в #17
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 27.07.2016 в 08:25.
VVA вне форума  
 
Непрочитано 27.07.2016, 10:19
#21
Olga_выноски


 
Регистрация: 25.07.2016
Сообщений: 5



безмерная благодарность!!!
если когда попаду в Минск, с меня пиво!
работает !!
вся фирма рада
Olga_выноски вне форума  
 
Непрочитано 06.10.2016, 23:51
2 | #22
petro_f


 
Регистрация: 06.10.2016
Сообщений: 113


Цитата:
Сообщение от Джеймс Борщ Посмотреть сообщение
Допилил в AsmiTools_Renum возможность изменять инкремент:
Код:
[Выделить все]
 (defun c:renum (/ oldPref oldSuf oldStart oldIncr curText curStr) 
  ); end of c:renum
А кто-нибудь знает как отключить игнорирование пробелов в окне динамического ввода?
Добрый вечер.
Немного переработал renum.
Так получилось, что надо было иметь ренум с префиксом, суффиксом, и двумя счётчиками. Так же как удобная фишка сделал, что при промахивании, плагин на шаг назад отступает. Удобно, когда надо одно и тоже значение вбить в несколько разных мест. Просто ставишь одно значение, потом "промах" по пустому месту и опять ставишь в текст в след месте.
Но потом решил немного переделать. Итого:
  1. Сделал два независимых счётчика с возможностью выбора количества работающих счётчиков;
  2. Сделал окно ввода начальных значений;
  3. Добавил возможность в потоке изменять значение счётчиков (+-);
  4. Добавил возможность в потоке производить старт или остановку счётчиков, клавиши (1 и 2);
  5. Добавил индикацию работы или отключения счётчиков в строке консоли, значки "®" "•";
  6. Добавил индикацию текста, который окажется в месте ввода;
  7. Добавил повторный вызов окна ввода данных и управления плагином;
  8. Добавил вызов окна "Help" по нажатию кнопки "3" во время работы плагина;
  9. Добавил переключение в режим обработки автокадовских таблиц по нажатию кнопки "4" во время работы плагина;
  10. Добавил отключение/включение "фишки" при промахивании по нажатии кнопки "5" во время работы плагина;
  11. Добавил выход из программы по ПКМ или из меню;
  12. Добавил выбор количества работающих счётчиков (иногда бывает нужно просто откопировать одинаковый текст, без [ре]нумерации);

Плагин работает с "TEXT" "MTEXT" "ATTRIB" "MULTILEADER" и "ACAD_TABLE"
В версии 4-1 добавлена защита от падения при обработке мультивыносок на основе блока, как в ссылке по ниже лежащему тексту.
Мульти выноски с блоком типа как в посте 17 не обрабатывал, так как такими не пользуемся.

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

P.S. Не ругайте, если что кому что не нравится, так как делал для себя и под свои нужды.
Вложения
Тип файла: lsp DRENUM_v3-3.lsp (67.5 Кб, 127 просмотров)
Тип файла: lsp DRENUM_v4-0.lsp (81.8 Кб, 95 просмотров)
Тип файла: lsp DRENUM_v4-1.lsp (83.1 Кб, 411 просмотров)
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!

Последний раз редактировалось petro_f, 24.11.2016 в 15:00. Причина: Добавление функционала
petro_f вне форума  
 
Непрочитано 14.11.2016, 09:27
1 | #23
Denver-22


 
Регистрация: 07.04.2010
Казань
Сообщений: 26


petro_f, ты красавчик!!! Ещё с месяц назад лишь мечтал о такой программе. А уж о таком гибком функционале и мечтать сложно. Огромное инженерное СПАСИБО!!!
Denver-22 вне форума  
 
Непрочитано 21.11.2016, 08:44
| 1 #24
Denver-22


 
Регистрация: 07.04.2010
Казань
Сообщений: 26


petro_f, а Вы не могли бы описывать здесь какие изменения происходят в новых версиях вашего лиспа? А то мы новым функционалом не в полной мере сможем воспользоваться ))
...Вот попросил и потом заметил, что появились новые пункты в описании. Запрос снимаю.

petro_f, если у вас есть настрой продолжать развитие этой функции, можете ли Вы добавить в интерфейс первого окна кнопку, добавляющую текст "\P" в префиксы/индексы для реализации многострочных мультивыносок? Многострочный текст нужен очень многим.
Ну или просто добавьте текстовую подсказку для пользователей, что \P выполняет возврат каретки.
Сейчас пробовать добавлять \P вручную в префикс. Просто класс! Всё работает как надо. И лисп заиграл другими красками. Теперь я могу делать нумерацию и на 2-й/3-ей строчке, да и в любом многострочном тексте.

Последний раз редактировалось Denver-22, 21.11.2016 в 09:06.
Denver-22 вне форума  
 
Непрочитано 21.11.2016, 10:59
1 | #25
petro_f


 
Регистрация: 06.10.2016
Сообщений: 113


Цитата:
Сообщение от Denver-22 Посмотреть сообщение
petro_f, а Вы не могли бы описывать здесь какие изменения происходят в новых версиях вашего лиспа? А то мы новым функционалом не в полной мере сможем воспользоваться ))
...Вот попросил и потом заметил, что появились новые пункты в описании. Запрос снимаю.

petro_f, если у вас есть настрой продолжать развитие этой функции, можете ли Вы добавить в интерфейс первого окна кнопку, добавляющую текст "\P" в префиксы/индексы для реализации многострочных мультивыносок? Многострочный текст нужен очень многим.
Ну или просто добавьте текстовую подсказку для пользователей, что \P выполняет возврат каретки.
Сейчас пробовать добавлять \P вручную в префикс. Просто класс! Всё работает как надо. И лисп заиграл другими красками. Теперь я могу делать нумерацию и на 2-й/3-ей строчке, да и в любом многострочном тексте.
Так все же про эти дела и так знают стандартные символы оформления текста:
Кто не знает, то может посмотреть тут http://www.cadforum.cz/cadforum_en/t...bjects-tip8640 или на русском http://docs.autodesk.com/AMECH_PP/20...r=ACDd30e83743
P.S. Спасибо за подсказку VVA
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!

Последний раз редактировалось petro_f, 03.12.2016 в 13:33.
petro_f вне форума  
 
Непрочитано 29.11.2016, 13:23
#26
Composter

Отопление и вентиляция
 
Регистрация: 31.10.2008
Москва
Сообщений: 387


я вот раньше пользовался вот этим прекрасным нумератором https://dwg.ru/dnl/1929
немного подправил 64 версию чтобы работало с мультивыносками
Вложения
Тип файла: zip Number x64(моя переделка).zip (34.2 Кб, 236 просмотров)
Composter вне форума  
 
Непрочитано 30.11.2016, 21:01
1 | 1 #27
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,800
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Цитата:
Сообщение от petro_f Посмотреть сообщение
Кто не знает, то может посмотреть тут http://www.cadforum.cz/cadforum_en/t...bjects-tip8640
на русском http://docs.autodesk.com/AMECH_PP/20...r=ACDd30e83743
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 01.12.2016, 12:48
#28
greyser


 
Регистрация: 08.04.2012
Сообщений: 16


Цитата:
Сообщение от Composter Посмотреть сообщение
я вот раньше пользовался вот этим прекрасным нумератором https://dwg.ru/dnl/1929
немного подправил 64 версию чтобы работало с мультивыносками
а как использовать файл *.dvb если в acad2016 уже нет поддержки vba?

upd понял, надо скачать с сайта https://knowledge.autodesk.com vba enabler

Последний раз редактировалось greyser, 01.12.2016 в 13:02.
greyser вне форума  
 
Непрочитано 03.12.2016, 13:30
#29
petro_f


 
Регистрация: 06.10.2016
Сообщений: 113


http://forum.dwg.ru/showpost.php?p=1594840&postcount=26
Только там одна проблемма - во первых 32-64 бит есть разница в версии, а вторая и самая главная VBA
У нас на работе прав админских на компах нет... и поставить VBA проблемно..
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!
petro_f вне форума  
 
Непрочитано 03.12.2016, 13:45
#30
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 6,998


Цитата:
Сообщение от petro_f Посмотреть сообщение
У нас на работе прав админских на компах нет...
Так и должно быть в нормальных фирмах) Пишете служебку - в целях оптиматизации работы требуется поставить бесплатное дополнение vbaenabler к аутокад, подписываете у начальника отдела и админу. Только не пишите - для убыстрения работы, боком может выйти)
Сергей812 вне форума  
 
Непрочитано 04.12.2016, 00:48
#31
petro_f


 
Регистрация: 06.10.2016
Сообщений: 113


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Цитата:
Сообщение от petro_f
У нас на работе прав админских на компах нет...
Так и должно быть в нормальных фирмах) Пишете служебку - в целях оптиматизации работы требуется поставить бесплатное дополнение vbaenabler к аутокад, подписываете у начальника отдела и админу. Только не пишите - для убыстрения работы, боком может выйти)
Очнитесь в конторе (особенно госовсокй) месяц другой пройдёт, прежде чем что-то двинется. А у моего знакомого так ещё и безопасники запрещают устанавливать доп проги, кроме тех что записаны в реестре на комп. Так что там только лисп и рулит )) его не пропалишь ))
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!
petro_f вне форума  
 
Непрочитано 04.12.2016, 01:05
#32
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 6,998


Цитата:
Сообщение от petro_f Посмотреть сообщение
Очнитесь в конторе (особенно госовсокй) месяц другой пройдёт, прежде чем что-то двинется. А у моего знакомого так ещё и безопасники запрещают устанавливать доп проги, кроме тех что записаны в реестре на комп. Так что там только лисп и рулит )) его не пропалишь ))
Работал в подобной фирме на заре проектной деятельности, можете не объяснять) С тех пор уже сменил не одну фирму - все подобное решаемо, если не требует денег. VbaEnabler - не отдельная программа, а надстройка над акадом, которая не может получить права доступа выше прав доступа самого акада под пользователем - это к вопросу о безопасности. Но, конечно, лучше использовать лисп, NetAPI, ObjectArx. Хотя в вашем случае можно использовать еще подключение из VBA того же экселя - при этом легко реализовать дополнительный функционал типа: по типу блока/названию слоя/... автоматически подставляется нужный префикс и т.п.
Сергей812 вне форума  
 
Непрочитано 04.12.2016, 17:37
#33
Composter

Отопление и вентиляция
 
Регистрация: 31.10.2008
Москва
Сообщений: 387


Цитата:
Сообщение от petro_f Посмотреть сообщение
Очнитесь в конторе (особенно госовсокй) месяц другой пройдёт, прежде чем что-то двинется. А у моего знакомого так ещё и безопасники запрещают устанавливать доп проги, кроме тех что записаны в реестре на комп. Так что там только лисп и рулит )) его не пропалишь ))
не знаю обычно проблем не было с установокой бесплатного инженерного/програмного софта . вот когда автокад LT - тогда даже lisp не рулит (((
Composter вне форума  
 
Непрочитано 06.12.2016, 12:11
#34
valerik88


 
Регистрация: 02.07.2016
Сообщений: 195


Вот писал для себя простой нумератор. Нумерует Текст, Мультитекст и Мультивыноски. Пробуйте, отписывайтесь.
Вложения
Тип файла: lsp numer.lsp (2.2 Кб, 100 просмотров)
valerik88 вне форума  
 
Непрочитано 06.12.2016, 12:31
1 | #35
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 5,883


valerik88,

Команда: numer

Начать с номера № <1> : Первый номер №1
Выберите объекты:
; ошибка: неверно сформированная строка на входе
; сброс после ошибки

на первой же выноске
Nike вне форума  
 
Непрочитано 06.12.2016, 12:55
#36
valerik88


 
Регистрация: 02.07.2016
Сообщений: 195


Цитата:
Сообщение от Nike Посмотреть сообщение
на первой же выноске
Странно
У меня Autocad 2016 x64, использую эту программу для нумерации мультивыносок, текста и мультитекста... не было проблем
valerik88 вне форума  
 
Непрочитано 06.12.2016, 13:03
1 | 1 #37
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 5,883


valerik88, на строке ((numberp (read s)) (setq num (strcat num s))) спотыкается.
2011 х86
Nike вне форума  
 
Непрочитано 06.12.2016, 14:57
1 | #38
valerik88


 
Регистрация: 02.07.2016
Сообщений: 195


Цитата:
Сообщение от Nike Посмотреть сообщение
valerik88, на строке ((numberp (read s)) (setq num (strcat num s))) спотыкается.
2011 х86
Можете скинуть dwg с выносками? Может в них дело


Подшаманил функцию, попробуйте
Вложения
Тип файла: lsp numer.lsp (2.4 Кб, 101 просмотров)
valerik88 вне форума  
 
Непрочитано 06.12.2016, 15:00
1 | 1 #39
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 5,883


valerik88, нет, на текстах тоже.
Nike вне форума  
 
Непрочитано 06.12.2016, 15:03
#40
valerik88


 
Регистрация: 02.07.2016
Сообщений: 195


Цитата:
Сообщение от Nike Посмотреть сообщение
valerik88, нет, на текстах тоже.
Попробуйте исправленную версию в сообщении выше
valerik88 вне форума  
 
Непрочитано 06.12.2016, 15:12
1 | #41
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 5,883


valerik88, работает, спасибо.
Nike вне форума  
 
Непрочитано 06.12.2016, 17:01
#42
petro_f


 
Регистрация: 06.10.2016
Сообщений: 113


Цитата:
Сообщение от Composter Посмотреть сообщение
я вот раньше пользовался вот этим прекрасным нумератором https://dwg.ru/dnl/1929
немного подправил 64 версию чтобы работало с мультивыносками
Не захотел у меня работать на 15 64 битном каде.
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!
petro_f вне форума  
 
Непрочитано 21.02.2017, 03:42
#43
CHESNOK

Инженер-проектировщик автомобильных дорог, Промышленное и гражданское строительство Генплан
 
Регистрация: 25.07.2014
Сообщений: 135


Нашел то что не нашел в этой теме, решил написать об этом, вдруг кому пригодится. Решения которые предлагали в этой теме это переименование уже начерченных мультивыносок. Но мне нужно было чтобы при расстановке мультивыносок они автоматически нумеровались по порядку. т.1, т.2, т.2... т.n
Вот нашел утилиту позволяющую это сделать "Авто-выноска - авто нумерация мультивыносок."
Прикрепил архив с утилитой и инструкцией на случай если ссылка перестанет работать
Вложения
Тип файла: zip Vynoska-ds-vy.zip (43.5 Кб, 93 просмотров)
CHESNOK вне форума  
 
Непрочитано 29.06.2017, 15:45
#44
gps


 
Регистрация: 29.06.2017
Сообщений: 1


Попробовал несколько кодов из темы, работают, но возникла проблема. После обработки ими мультивыносок, текст в них сбивается к базовым настройкам стиля. Т.е., например, был курсив, но после перенумерации он становится обычным. Сам стиль менять - не вариант. Как сделать, чтобы остался курсив во всех обработанных мультивыносках?
gps вне форума  
 
Непрочитано 26.01.2018, 16:45
#45
Composter

Отопление и вентиляция
 
Регистрация: 31.10.2008
Москва
Сообщений: 387


Цитата:
Сообщение от Composter Посмотреть сообщение
я вот раньше пользовался вот этим прекрасным нумератором https://dwg.ru/dnl/1929
немного подправил 64 версию чтобы работало с мультивыносками
теперь в 2017 акаде и эта версия не работает. ругается на "Entry.ObjectID32" я так понимаю теперь вообще этого параметра нет? чем его можно заменить то чтобы вытащить тип примитива?
Composter вне форума  
 
Непрочитано 26.01.2018, 17:16
#46
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 6,998


Цитата:
Сообщение от Composter Посмотреть сообщение
ругается на "Entry.ObjectID32" я так понимаю теперь вообще этого параметра нет?
врятли уберут идентификатор объекта - основы БД чертежа) Просто он может быть, например, без 32 на конце.
Сергей812 вне форума  
 
Непрочитано 26.01.2018, 23:35
#47
Composter

Отопление и вентиляция
 
Регистрация: 31.10.2008
Москва
Сообщений: 387


у объекта Entry такие свойства
тип примитива прописан в верхней строке. я не понимаю как его вытащить, Entry.type выдает ошибку. я просто не силен в VBA. Подскажите кто чем может
Миниатюры
Нажмите на изображение для увеличения
Название: 2018-01-26_23-32-36.png
Просмотров: 49
Размер:	24.9 Кб
ID:	198280  
Composter вне форума  
 
Непрочитано 27.01.2018, 00:07
1 | #48
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 6,998


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Просто он может быть, например, без 32 на конце.
.ObjectID вместо .ObjectID32 попробуйте.
Сергей812 вне форума  
 
Непрочитано 27.01.2018, 01:28
1 | #49
Composter

Отопление и вентиляция
 
Регистрация: 31.10.2008
Москва
Сообщений: 387


It's Alive!!!It's Alive!!!

спасибо, заработало!
Вложения
Тип файла: zip Number x64.zip (34.3 Кб, 81 просмотров)
Composter вне форума  
 
Непрочитано 20.03.2019, 19:22
#50
Dest


 
Регистрация: 11.05.2018
Сообщений: 2


Уважаемые, практически все приведенные решения осуществляют автоматическую нумерацию уже проставленных выносок. Есть ли решения для расстановки выносок с автоматической нумерацией, заданием префикса и суффикса, а также чтобы выноска принимала стиль, установленный в чертеже или в крайнем случае позволяла настроить параметры типа вида стрелки, размера текста и т.д.?

Цитата:
Сообщение от CHESNOK Посмотреть сообщение
Нашел то что не нашел в этой теме, решил написать об этом, вдруг кому пригодится. Решения которые предлагали в этой теме это переименование уже начерченных мультивыносок. Но мне нужно было чтобы при расстановке мультивыносок они автоматически нумеровались по порядку. т.1, т.2, т.2... т.n
Вот нашел утилиту позволяющую это сделать "Авто-выноска - авто нумерация мультивыносок."
Прикрепил архив с утилитой и инструкцией на случай если ссылка перестанет работать
Dest вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Нумерация мультивыносок.

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нумерация листов в AutoCad Sergk AutoCAD 17 07.04.2019 22:55
Сквозная нумерация чертежей Alxd Прочее. Архитектура и строительство 25 13.03.2014 14:53
Как программно удалить неиспользуемые стили мультивыносок. Makswell Программирование 6 08.04.2009 13:43
Нумерация дин.блоков "тыкая" мышью gizmo_zx Программирование 14 02.04.2009 11:44
Автоматическая нумерация текстов dorofei Программирование 8 18.01.2007 09:31