發表文章

目前顯示的是 12月, 2018的文章

AutoCAD LISP 建立配置與設置配置相關設定

快速介紹: 1.刪除已有"Test"的配置 2.增加一個叫"Test"的配置 3.設置出圖型式表(圖筆指定) 4.設置繪圖機 5.設置紙張大小 6.指定為當前配置 7.返回當前的出圖型式表(圖筆指定)和繪圖機 程式碼: (defun c:addTheLayout ( / acadApp acadDoc layouts layoutObj currPStyle currConfig) (vl-load-com) (setq acadApp (vlax-get-Acad-object)) (setq acadDoc (vla-get-ActiveDocument acadApp)) (setq layouts (vla-get-Layouts acadDoc)) ;; Delete the layout named "Test" if it exists ;; 刪除已有"Test"的配置 (vlax-for objLayout layouts (if (= (vla-get-name objLayout) "Test") (progn (princ (strcat "\n 刪除已有配置 " (vla-get-name objLayout) " ..." ) ) (vla-delete objLayout) ;_刪除配置 (vlax-release-object objLayout) ;_ 釋放配置物件 ) ;_progn ) ;_if ) ;_vlax-for ;; 增加一個叫"Test"的配置 (setq layoutObj (vla-add layouts "Test")) ;; Assign Grayscale.CTB to the Layout ;; 給配置設置出圖型式表(圖筆指定) (vla-put-StyleSheet layoutObj &qu

AutoCAD LISP 複製圖塊中物件

功能類似Express Tools內的NCOPY命令 (defun c:CopyBlockEname (/ e new) (if (and (setq e (nentselp "\n選取要複製的圖塊中物件:")) (eq (length e) 4) (setq new (entmakex (entget (car e)))) );_and (vla-transformby (vlax-ename->vla-object new) (vlax-tmatrix (caddr e)) ) );_if (princ) );_結束 相關連結 AutoCAD 如何載入LISP

AutoCAD LISP 獲取PDF的頁數

在這裡介紹 Lee Mac 所寫的函數。 來源至 Re: PDF Page Count 程式碼如下: (defun _PDFPageCount ( filename / fob fso mat reg res str ) ;; Translation by Lee Mac of the VBScript code by Chanh Ong ;; found at http://docs.ongetc.com/?q=content/pdf-pages-counting-using-vb-script ;; ;; Call with fully qualified filename of PDF file: ;; (_PDFPageCount "C:\\Folder\\Filename.pdf") ;; ;; Returns integer describing number of pages in specified PDF file (if (and (setq filename (findfile filename)) (eq ".PDF" (strcase (vl-filename-extension filename))) ) (vl-catch-all-apply (function (lambda ( / _ReadAsTextFile _CountPage ) (defun _ReadAsTextFile ( fso fn / fob str res ) (setq fob (vlax-invoke fso 'getfile fn) str (vlax-invoke fso 'opentextfile fn 1 0) res (vlax-invoke str 'read (vlax-get fob 'size)) ) (vlax-invoke str 'close)

AutoCAD LISP 動態圖塊圖塊-動作參數 獲取或設定屬性的值

在這裡介紹 Lee Mac 所寫的函數。 函數連結: 獲取動態圖塊特定動作參數屬性值 設置動態圖塊特定動作參數屬性值 獲取動態圖塊所有動作參數屬性值 設置動態圖塊多個動作參數屬性值 獲取動態圖塊特定動作參數數值列示清單 切換動態圖塊翻轉狀態 獲取可見性參數名稱 獲取動態圖塊可見性狀態 設置動態圖塊可見性狀態 範例: 獲取動態圖塊特定動作參數屬性值 _$ (LM:getdynpropvalue (vlax-ename->vla-object (car(entsel))) "距離1") 853.74 設置動態圖塊特定動作參數屬性值 _$ (LM:setdynpropvalue (vlax-ename->vla-object (car(entsel))) "距離1" 300) 300 獲取動態圖塊所有動作參數屬性值 _$ (LM:getdynprops (vlax-ename->vla-object (car(entsel)))) (("距離1" . 300.0) ("Origin" 0.0 0.0) ("翻轉狀態1" . 0) ("可見性1" . "可見性狀態0")) 設置動態圖塊多個動作參數屬性值 _$ (LM:setdynprops (vlax-ename->vla-object (car(entsel))) '(("距離1" . 456))) nil 獲取動態圖塊特定動作參數數值列示清單 _$ (LM:getdynpropallowedvalues (vlax-ename->vla-object (car(entsel))) "距離1") (100.0 200.0 300.0 853.74) 切換動態圖塊翻轉狀態 _$ (LM:toggleflipstate (vlax-ename->vla-object (car(entsel)))) 1 獲取可見性參數名稱 _$ (LM:getvisibilityparametername (vlax-ena

AutoCAD LISP acet函數 快速查詢

acet函數是在Express工具內的函數,需要安裝Express工具才能使用。 (acet-error-init  errlist)       ;;Error Init for ET        ;;ET的錯誤初始化 (acet-error-restore )       ;;Error Restore for ET        ;;ET的錯誤恢復 (acet-sysvar-set  varlist)       ;;Save Sysvar List        ;;保存Sysvar列表 (acet-sysvar-restore )       ;;Restore Sysvar List        ;;恢復Sysvar列表 (acet-spinner )       ;;Show Spinner Sign        ;;顯示微調標誌 (acet-table-name-list  tblORlist)       ;;Get Table Entries        ;;獲取表條目 (acet-table-purge  table entry flag)       ;;Purge table entry        ;;清除表條目 (acet::store2reg  varname varval)       ;;Store custom data 2 Registry        ;;存儲自定義數據2註冊表 (acet::loadreg  varname)       ;;Load custom from Registry        ;;從Registry加載自定義 (acet::store2dict  varname varval)       ;;Store custom data 2 Dict        ;;存儲自定義數據2 Dict (acet::loaddict  varname)       ;;Load custom from Dict        ;;從Dict加載自定義 (acet-set-CmdEcho  val      )       ;;Setvar CmdEcho        ;;Setvar CmdEcho (acet-setvar  varlist)       ;;

AutoCAD LISP VLA函數 快速查詢

Vlisp函數 功能說明 vla-activate 啟動指定圖形 vla-add 建立一個物件並把它加入相應的集合中 vla-add3dface 以給定的四個頂點建立一個3Dface物件 vla-add3dmesh 以給定的M和N方向的點數及M和N的點座標值建立的自由形狀的3D網格面 vla-add3Dpoly 以給定的座標值陣列建立一個3D多段線 vla-addarc 以給定的弧的中心點、半徑、起始角度以及結束弧度建立一個弧 vla-addattribute 以指定的性質在給定的位置建立屬性定義 vla-addbox 建立邊緣和wcs軸平行的3d長方體 vla-addcircle 以給定的中心點和半徑建立一個圓 vla-addcone 建立一個底面在wcs上的xy平面上的圓錐體 vla-addcustomobject 建立custom物件 vla-addcylinder 建立一個在wcs的xy平面上的3d實體圓柱體 vla-adddim3pointangular 使用三點建立角度標注 vla-adddimaligned 建立一個對齊標注物件 vla-adddimangular 建立弧、兩條線或圓周的角度標注 vla-adddimdiametric 以給定的直徑上的亮點以及引線的長度建立圓周或弧的直徑標注 vla-adddimordinate 以給定的定義點及引線端點建立座標標注 vla-adddimradial 在給定的位置建立選取的物件半徑標注 vla-adddimrotated 建立旋轉的線性標注 vla-addellipse 以給定的中心點、主軸上的一點以及半徑比在wcs的xy平面上建立一個橢圓 vla-addellipticalcone 以給定的center、majorradius、minorradius、以及height在wcs的xy平面上建立一個3d實體