Jump to content

Настройка контекстного меню


Recommended Posts

В контекстовом меню, элементы вкладки редактирование, можно ли поместить не во вкладке, а в самом меню, приложил как выглядит меню в nc, и 2 картика, как хотелось бы настроить.

контекстное меню.jpg

контекстное меню2.jpg

Link to comment
Share on other sites

Добрый день!

Нужно отредактировать nCAD.cfg (По умолчанию лежит тут: C:\Program Files (x86)\Nanosoft\nanoCAD Plus 6.0\nCAD.cfg)

Нужно найти строки содержащие [\ViewPopupMenu], а именно:

[\ViewPopupMenu]  |Intername=sViewPopupMenu
[\ViewPopupMenu\LastCommand]  |intername=sLastCommand1
[\ViewPopupMenu\LastCommandPopup]  |name=s&Last commands
[\ViewPopupMenu\LastCommandPopup\LC0]  |intername=sLastCommand1
….
[\ViewPopupMenu\Inspector]  |name=sP&roperties  |intername=sProperties
[\ViewPopupMenu\DrawingExplorer]  |name=sDrawing &Explorer  |intername=sDrawingExplorer

 

Это и есть пункты меню, их можно переместить, удалить или добавить новые команды. Вот мой вариант контекстного меню:

 

 

[\ViewPopupMenu] |Intername=sViewPopupMenu
[\ViewPopupMenu\LastCommand] |intername=sLastCommand1
[\ViewPopupMenu\LastCommandPopup] |name=s&Last commands
[\ViewPopupMenu\LastCommandPopup\LC0] |intername=sLastCommand1
[\ViewPopupMenu\LastCommandPopup\LC1] |intername=sLastCommand2
[\ViewPopupMenu\LastCommandPopup\LC2] |intername=sLastCommand3
[\ViewPopupMenu\LastCommandPopup\LC3] |intername=sLastCommand4
[\ViewPopupMenu\LastCommandPopup\LC4] |intername=sLastCommand5
[\ViewPopupMenu\LastCommandPopup\LC5] |intername=sLastCommand6
[\ViewPopupMenu\LastCommandPopup\LC6] |intername=sLastCommand7
[\ViewPopupMenu\LastCommandPopup\LC7] |intername=sLastCommand8
[\ViewPopupMenu\LastCommandPopup\LC8] |intername=sLastCommand9
[\ViewPopupMenu\sep2]
[\ViewPopupMenu\Undo] |name=s&Undo |intername=sEditUndo
[\ViewPopupMenu\Redo] |name=s&Redo |intername=sEditRedo
[\ViewPopupMenu\sep3]
[\ViewPopupMenu\Move] |name=sMove object
[\ViewPopupMenu\Move\erase] |name=sErase |intername=sDelete
[\ViewPopupMenu\Move\MoveCopy] |Name=sCop&y |InterName=sMoveCopy
[\ViewPopupMenu\Move\Mirror] |Name=sMirror |InterName=sMirror
[\ViewPopupMenu\Move\Offset] |name=sOffset |intername=svcOffsetCmd
[\ViewPopupMenu\Move\Array] |Name=sArray |InterName=sArray
[\ViewPopupMenu\Move\sep4]
[\ViewPopupMenu\Move\MoveObject] |Name=sMov&e |InterName=sMove
[\ViewPopupMenu\Move\RotateObject] |Name=s&Rotate |InterName=sRotate
[\ViewPopupMenu\Move\sep10]
[\ViewPopupMenu\Move\scale] |Name=s&Scale |InterName=sScale
[\ViewPopupMenu\Move\stretch] |name=sStretch |intername=sstretch
[\ViewPopupMenu\Move\sep5]
[\ViewPopupMenu\Move\Trim] |name=s&Trim Vectors |intername=svcTrimByEdgeCmd
[\ViewPopupMenu\Move\smarttrim] |name=sSmart &Trim |intername=ssmarttrim
[\ViewPopupMenu\Move\Extend] |name=s&Extend Vectors |intername=svcExpandByEdgeCmd
[\ViewPopupMenu\Move\Break] |name=s&Break Vectors |intername=svcBreakCmd
[\ViewPopupMenu\Move\Join] |name=s&Join objects |intername=sJoin
[\ViewPopupMenu\Move\Extend] |name=s&Extend Vectors |intername=svcExpandByEdgeCmd
[\ViewPopupMenu\Move\Break] |name=s&Break Vectors |intername=svcBreakCmd
[\ViewPopupMenu\Move\Join] |name=s&Join objects |intername=sJoin
[\ViewPopupMenu\Clipboard] |name=sБуфер обмена
[\ViewPopupMenu\Clipboard\Cut] |Name=s&Cut |InterName=sCut
[\ViewPopupMenu\Clipboard\Copy] |Name=s&Copy |InterName=sCopy
[\ViewPopupMenu\Clipboard\CopyWithBasePoint] |Name=s&Copy With Base Point |InterName=sCopyWithBasePoint
[\ViewPopupMenu\Clipboard\Paste] |Name=s&Paste |InterName=sPaste
[\ViewPopupMenu\Clipboard\PasteBlock] |Name=s&Paste as Block |InterName=sPasteBlock
[\ViewPopupMenu\Clipboard\PasteOriginal] |Name=sPaste to Original Coor&dinates |InterName=sPasteOrigin
[\ViewPopupMenu\Isolate] |name=sIsolate
[\ViewPopupMenu\Isolate\IsolateObjects] |name=sIsolate &Objects |InterName=sIsolateObjects
[\ViewPopupMenu\Isolate\HideObjects] |name=sHide Objects |InterName=sHideObjects
[\ViewPopupMenu\Isolate\UnisolateObjects] |name=sUnisolate Objects |InterName=sUnisolateObjects
[\ViewPopupMenu\DisplayOrder] |name=sDispla&y Order
[\ViewPopupMenu\DisplayOrder\BringToFront] |name=s&Bring to Front |InterName=sdraworder1
[\ViewPopupMenu\DisplayOrder\SendToBack] |name=s&Send to Back |InterName=sdraworder2
[\ViewPopupMenu\DisplayOrder\BringForward] |name=sBring &Forward |InterName=sdraworder3
[\ViewPopupMenu\DisplayOrder\SendBackward] |name=sSend Back&ward |InterName=sdraworder4
[\ViewPopupMenu\Select] |name=sSelect
[\ViewPopupMenu\Select\selectsimilar] |name=sSelect similar objects |intername=sselectsimilar
[\ViewPopupMenu\Select\SelectAll] |name=sSelect Al&l |intername=sSelectAll
[\ViewPopupMenu\Select\QuickSelect] |name=s&Quick Select |intername=sqs
[\ViewPopupMenu\Select\UnSelectAll] |name=sUnSelect All |intername=sUnSelectAll
[\ViewPopupMenu\sep1]
[\ViewPopupMenu\AddSelected] |Name=sAdd Selected |InterName=sAddSelected
[\ViewPopupMenu\sep5]
[\ViewPopupMenu\Find] |name=sSearch and Replace... |intername=sfind
[\ViewPopupMenu\sep4]
[\ViewPopupMenu\Inspector] |name=sP&roperties |intername=sProperties
[\ViewPopupMenu\preferences] |name=sPreferences |intername=sPreferencesCmd

 

 

Вот что получилось в итоге:

image007.jpg

 

Не забывайте делать резервные копии.

  • Like 2
Link to comment
Share on other sites

  • 5 years later...

Открываете настройку интерфейса

на вкладке "контекстные меню "переходите в раздел либо "меню по умолчанию"

в колонке с командами находите свою команду, которую необходимо добавить, и перетаскиваете в нужную вам позицию.

дальше применяем изменения и выходим из настроек.

Перезагружаем нанокад и пользуемся

 

image.thumb.png.6eb525fb9795817b8b644a20d06fd845.png

 

Link to comment
Share on other sites

Я бы любую кастомизацию интерфейса начинал с

image.png.85ba145e2f570622213f9e4f8a65c792.png

потом подгрузил этот файл

image.png.1382f9bf53e7e4090f2dd871840c55cf.png

переключился на него

image.png.f5ecbdc4195f89455e5fe28af815b21a.png

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

Что бы в новой версии наны не начинать с начала...

Свои команды, все менюхи, то же в кастомный файл...

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

  • Like 3
Link to comment
Share on other sites

и еще нюанс...

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

советую к своим командам добавлять суффикс или префикс через подчеркивание (естественно на инглиш) к внутреннему имени команды

как то так вижу:

image.thumb.png.25234ef436a0056489a5c3c226dd3fbf.png

дабы потом когда в очередной раз захочется поправить что натворил в прошлый, эту ляпоту можно было быстро найти не переключаясь на кастомный конфиг... просто по маске суффикса/префикса

  • Like 1
Link to comment
Share on other sites

ну и в догон, для клавишников-кнопочников...

не обязательно каждый раз править *.pgp и потом перезагружать каждый раз нану.

Достаточно завести лиспик в котором прописать нужные алиасы на команды,

(defun c:гл ();;вернуть последний выбор
	(command "select13")
	(princ)
)

можно даже наделать быстрых команд

;;===============================
;;ПЕРЕОПРЕДЕЛЕНИЕ СТАНДАРТНЫХ  КОММАНД
;;===============================
(defun C:Тц ();; текст по центру
	(command "текст" "в" "СЦ" Pause "3.5" "0") (princ)) ;_ end defun
;; ----------------------------
(defun C:Т2 ();; текст 2.5 
	(command "текст" Pause "2.5" "0") (princ)) ;_ end defun
;; ----------------------------
(defun C:Т3 ();; текст 3.5 
	(command "текст" Pause "3.5" "0") (princ)) ;_ end defun
;; ----------------------------
(defun C:Т5 () ;; текст 5
	(command "текст" Pause "5" "0") (princ)) ;_ end defun
;; ----------------------------
(defun C:Т10 () ;; текст 10
	(command "текст" Pause "10" "0") (princ)) ;_ end defun
;; ----------------------------
(defun c:СР () ;;Смыкание линий:
	(command "_fillet" pause "д" "0") (princ)) ;_ end defun

или триггеров

(defun C:4 ();;вкл/выкл маскировку
   (if (= (getvar "Wipeoutframe") 0)
     (progn
     	 (setvar "Wipeoutframe" 2)
     	 (prompt "\nВидимая маскировка непечатаемая ")	
     )
     (progn
     	 (setvar "Wipeoutframe" 0)
     	 (prompt "\nНевидимая маскирвка ")	
     )
   ) ;_ end if
   (command "regen")
   (princ)
) ;_ end defun
;; ----------------------------
(defun C:5 ();;изом / орто
  (setvar "SNAPSTYL"
          (if (= (getvar "SNAPSTYL") 0)
            1
            0
          ) ;_ end if
  ) ;_ end setvar
  (princ)
) ;_ end defun
;; ----------------------------
(defun C:6 ();; LWDISPLAY переключалка толщины линий
  (setvar "LWDISPLAY"
          (if (= (getvar "LWDISPLAY") 0)
            1
            0
          ) ;_ end if
  ) ;_ end setvar
  (princ)
) ;_ end defun
;; ----------------------------
(defun C:7 ();; выбор по одному или добавление (command nil)
  (setvar "PICKADD"
          (if (= (getvar "PICKADD") 0)
            1
            0
          ) ;_ end if
  ) ;_ end setvar
  (if (= (getvar "PICKADD") 0)
    (prompt "\nОдиночный ")
    (prompt "\nДобавление ")
  ) ;_ end if
  (princ)
) ;_ end defun

бонус такого подхода, что при изменении -правке команды в лиспе нам достаточно его по новой подгрузить, что значительно быстрее перезагрузки наны)))

например лисп называется comNana.lsp  и лежит по путям поиска нанокад

в лиспе прописываем такую команду

 

(defun c:зз ();; reload, COM  
  (load "comNana")
  (prompt "\nПерезагрузил COM! ")
  (princ)
)

и по ЗЗ он перезагрузит сам себя

  • Like 1
Link to comment
Share on other sites

В 24.03.2015 в 14:00, Spirin сказал:

 

image007.jpg

 

Вот так бы в каждой ветке форума, задал вопрос и получил более чем развернутый ответ

еще +5 копеек

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

Поместить их в новое меню возможно только если заново найти эту команду в общем списке и от туда ее переместить в требуемую позицию.

 

 

Link to comment
Share on other sites

37 минут назад, Alex_pl сказал:

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

Поместить их в новое меню возможно только если заново найти эту команду в общем списке и от туда ее переместить в требуемую позицию.

не понял твой вопрос(((

но ответить попробую)))

Посмотри приложенный конфиг.

Смысл выше был в том, что хранить кастомное меню, контекстное меню и кастомные команды отдельно от стока.

Нет никаких проблем в кастомное меню добавить стандартные команды. Команды останутся где были, а в твоем меню будет просто сылка на команду

image.png.913b8d805436b255b59a92d4ad961d8a.png

 

 

drRaz.cfg

Edited by doctorraz
Link to comment
Share on other sites

это все так

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

возможно позже попробую видео записать

Link to comment
Share on other sites

13 минут назад, Alex_pl сказал:

Вложенный список не создается

дык откуда нано узнает, что ты хочешь?

Создай меню, потом подменю и таскай туда команды

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

Внутри меню ты таскаешь ссылки на команды, а не сами команды, как-то так понимаю

Link to comment
Share on other sites

2 минуты назад, Alex_pl сказал:

по моему все в видео показано, что при создании подменю команды в него не поместить

 

4 минуты назад, doctorraz сказал:

Внутри меню ты таскаешь ссылки на команды, а не сами команды

 

Link to comment
Share on other sites

1 минуту назад, doctorraz сказал:

Внутри меню ты таскаешь ссылки на команды, а не сами команды

в любом случае они должны перемещаться в подменю

Link to comment
Share on other sites

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

в любом случае они должны перемещаться в подменю

об этом разработчиков проси

Link to comment
Share on other sites

В 25.02.2021 в 14:19, Сергей242 сказал:

а плавное зумирование как добавить в контекстное меню?

Вернемся к началу

человек спросил, я ответил, ты дополнил,  а потом мы перестали друг друга понимать)))

Link to comment
Share on other sites

Подскажите знающие, откуда нанокад подгружает контекстные меню объектов?

Например это для внешней ссылки

image.png.724f6dba5bfd0d8b8855ff3941c1f5bf.png

Link to comment
Share on other sites

17 минут назад, Boroda888 сказал:

По идее должен отсюда... На ПКМ настроенная

вопрос  про выделенное в красном прямоугольнике, оно подгружается к "Меню по умолчанию" в зависимости от выделенного объекта

Прописано в действиях над объектами.

8 минут назад, Alex_pl сказал:

наверное сначала отсюда

перефразирую.. где лежит NCVP_PopupMenu_ER

Подозреваю, что чисто программная фича, ну а вдруг

-------------------------

но и что б два раза не вставать, где остальные объекты

image.png

В "действиях над объектами" только примитивы совсем голой платформы...

Нет действий над объектами mcad.

Edited by doctorraz
Link to comment
Share on other sites

9 минут назад, Alex_pl сказал:

В основном конфиге это прописано так....

Ага еще и вместе с командами..

некоторые команды из ком строки работают, но в НПИ не ищутся(((

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

еще б найти где прописано контекстное меню над объектами СПДС...

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