روش ساخت نوار ابزار به صورت دینامیک با اتولیسپ

در این آموزش به وسیله زبان برنامه نویسی ویژوال لیسپ یک نوار ابزار در اتوکد ایجاد می کنیم همراه با یک آیتم که با کلیک روی آن فرمان FIND در اتوکد اجرا می شود

در این آموزش قصد داریم به وسیله زبان برنامه نویسی ویژوال لیسپ یک نوار ابزار در اتوکد ایجاد کنیم و یک آیتم به آن اضافه کنیم که با کلیک روی آن فرمان FIND در اتوکد اجرا شود. در این آموزش این کار را به صورت دینامیک انجام می دهیم یعنی اینکه نوار ابزار ایجاد می شود و پس از بستن اتوکد، از بین می رود.

mytoolbar.lsp

(defun c:mytoolbar ()
 (vl-Load-com)

 (setq acadApp (vlax-get-acad-object))

 (setq	currMenuGroup
	 (vlax-invoke-method
	 (vlax-get-property acadapp "MenuGroups")
	 "Item"
	 "ACAD"
	 )
 )

 (setq	countToolbarItems
	 (vlax-get-property
	 (vlax-get-property currMenuGroup "Toolbars")
	 "Count"
	 )
 )

 (setq end nil)
 (setq i 0)

 (while (not end)
 (progn

 (setq newToolBar
	 (vlax-invoke-method
	 (vlax-get-property currMenuGroup "Toolbars")
	 "Item"
	 i
	 )
 )
 (vlax-get-property newToolBar "Name")

 (if (= (vlax-get-property newToolBar "Name") "Test")
	(progn
	 (princ i)
	 (setq end T)
	)
 )
 (setq i (+ i 1))
 (if (= i countToolbarItems)
	(setq end T)
 )
 )
 )

 (if (/= (vlax-get-property newToolBar "Name") "Test")
 (progn

 (setq newToolBar
	 (vlax-invoke-method
	 (vlax-get-property currMenuGroup "Toolbars")
	 "Add"
	 "Test"
	 )
 )
 )
 )

 (vlax-put-property newToolBar "Visible" 1)

 (if (/= (vlax-get-property newToolBar "DockStatus") 3)
 (vlax-invoke-method newToolBar "Dock" 3)
 )


 (setq macro (strcat (chr 3) (chr 3) (chr 95) "FIND" (chr 32)))
 (setq	newButton (vlax-invoke-method
		 newToolBar	 "AddToolbarButton"
		 ""		 "my_toolbar_item"
		 "find"		 macro
		 )
 )

 (vlax-invoke-method
 newButton
 "SetBitmaps"
 "D:/mytoolbar/16_16_find.bmp"
 "D:/mytoolbar/32_32_find.bmp"
 )

)
  1. یک پوشه در درایو D ایجاد کنید و نام آن را mytoolbar بگذارید.
  2. یک فایل متنی در این پوشه ایجاد کرده و نام آن را mytoolbar.lsp بگذارید.
  3. فایل mytoolbar.lsp را با برنامه notepad ویندوز ویرایش کرده و قطعه کد فوق را در آن قرار دهید و آن را ذخیره کنید.
  4. دو تصویر کوچک با ابعاد 16 در 16 پیکسل و 32 در 32 پیکسل با فرمت bmp بسازید و نام آن ها را 16_16_find.bmp و 32_32_find.bmp قرار دهید.
  5. اتوکد را بازکنید و فایل mytoolbar.lsp را به داخل آن کشیده و رها کنید. با این کار برنامه ما در اتوکد بارگذاری می شود. همچنین می توانید از دستور appload برای بارگذاری آن استفاده کنید.
  6. در اتوکد تایپ کنید : mytoolbar و اینتر کنید. باید مانند تصویر بالا یک نوار ابزار در سمت راست صفحه اتوکد ایجاد شود. با کلیک روی آیکون جستجو در این نوار ابزار، فرمان FIND اتوکد اجرا می شود. می توانید هر ماکروی دیگری که خواستید را برای آن بنویسید.

من قبلا این فایل را ایجاد کرده ام می توانید آن را از لینک زیر دانلود کرده و در درایو D، اکسترکت کنید.

دانلود نمونه فایل اتولیسپ ساخت نوار ابزار به وسیله اتولیسپ در اتوکد

 

مطالب مشابه

روش بارگذاری برنامه های نوشته شده به زبان autolisp در اتوکد مانند کاتب (kateb) و کدفا (cadfa)

برنامه های جانبی به زبان های مختلف برای اتوکد نوشته می شوند این برنامه ها اگر به زبان اتولیسپ و یا C و VBA، نوشته شده باشند برای اجرا در اتوکد باید ابتدا بارگذاری شوند. برای بارگذاری و استفاده از آنها در اتوکد به روش زیر عمل کنید:   در خط فرمان اتوکد تایپ کنید : appload و...

رفع مشکل برعکس نوشته شدن متن فارسی (آینه ای شدن) در اتوکد با کدفا

هنگام نوشتن متن فارسی با کدفا در اتوکد، در بعضی از فایل ها، متن ها بصورت برعکس (به صورت آینه ای) تایپ می شود. در ادامه علت این باگ و روش رفع آن را با هم بررسی می کنیم. بررسی علت این باگ هنگامی رخ می دهد که استایل جاری (Current Style) روی استایلی تنظیم شده باشد که در آن از فونت های...

علت کار نکردن کدفا

رفع خطای"Unable to load cadfa.fas file" یا "loading error" هنگام اجرای کدفا ممکن است هنگام اجرا کدفا در اتوکد 2015 به بعد با پیغام "Security Concern" مواجه شوید. برای اجرا شدن کدفا لازم است گزینه "Load" را انتخاب کنید. در غیر این صورت کدفا کار نخواهد کرد. برای رفع مشکل در مواقعی که اشتبا...

فونت های کدفا

cadFA (کدفا)، 11 فرمت مختلف و بيش از 800 فونت را پشتيباني مي کند. در ادامه، اين فرمت ها و فونت ها معرفي شده اند. فونت هاي استاندارد ويندوز فونت ...

دیدگاه کاربران درباره ی روش ساخت نوار ابزار به صورت دینامیک با اتولیسپ

5
3
5
4
3
2
1