導航:首頁 > 程序命令 > cad編寫lsp命令

cad編寫lsp命令

發布時間:2023-05-23 21:35:35

『壹』 CAD lsp代碼怎麼寫這個命令,用過,但沒代碼,求指導

  1. 框選對象圖層L1

  2. 分析每個對象的坐標包圍框,代碼

    (vl-load-com);載入VBA函數

    (setq obj (vlax-ename->vla-object ent)) ;obj對象

    (vla-GetBoundingBox obj '&p1 '&p2) ;得到包圍框

    (setq &p1 (vlax-safearray->list &p1));得到右下角含橡坐標

    (setq &p2 (vlax-safearray->list &p2));得到左睜滲上角坐標

  3. 建立右下角點坐標集合ss,元素由點與對象構成(list &p1 &p2 ent)

    (setq ss(vl-sort ss (function (lambda (x y) (< (caar x) (caar y))))));;X從小到大排序

  4. 提取SS裡面的對象提取多段線坐標

    (setq ss1(mapcar 'cdr (vl-remove-if '(lambda (X) (/= 10 (car x))) (entget ent))))

    (setq &kw1 (ssget "wp" ss1));提取這個范圍的對象,然後移動對象到你需要的地方

    或(setq &kw1 (ssget "談早旁w" &p1 &p2));這樣選擇對象也可以

    移動對象&kw1按距離來移動。

  5. 左下角的坐標可以這樣得到取得

    (setq x1 (car &p2))

    (setq y1 (cadr &p1))

    (setq &p3 (list x1 y1));左下角坐標

  6. 你的代碼主要是沒有包圍框代碼有了代碼就可以方便的寫出你的程序了。

『貳』 cad如何編lsp命令鎖定除選定的圖層外其他圖層

(defun c:ff () (setvar "嘩洞基cmdecho" 0) (command "layoff") (setvar "cmdecho" 1) (prin1) ) ;;選擇需要關閉的圖層
(defun c:qw () (setvar "cmdecho" 0) (command "layiso") (setvar "cmdecho" 1) (prin1) ) ;;選擇需要隔離的圖層;如果要鎖定或關閉;輸入這個命令的時候;→向下方向鍵來設亂謹置;設置好了就以後默認
(defun c:tc () (setvar "cmdecho" 0) (command "laymcur") (setvar "cmdecho" 1) (prin1) ) ;;選擇對象為當前圖層
;;Layer
;;輸入要置為當前的圖層名或 <選擇對象>: AA輸入選項 [?/生成(M)/設置(S)/新建(N)/重命名(R)/開(ON)/關(OFF)/顏色(C)/線型(L)/線寬(LW)/透明度(TR)/材質(MAT)/列印(P)/凍結(F)/解凍(T)/鎖定(LO)/解鎖(U)/狀態(A)/說明(D)/協調(E)]:
如:(command "Layer" "ON" "AA" "");;打開顫賀AA圖層;
(command "LAYER" "OFF" "AA" "");;關閉AA圖層;

『叄』 怎麼在cad命令行運行編寫好的lisp命令

命令行不能夠運行這個的,首先你把文字保存在記事本並以【.lsp】為後綴命名如【boxa.lsp】。然激判後把記事本復制了,在AutoCAD裡面粘貼(消伍CTRL+V)【不要在命令行粘貼】,粘貼好了就可以使用命令【BOXA】了。
另外你的程序有問題,這個是子程序:(defun boxa ()
如果是主程序的話,應拿鉛或當是:(defun C:boxa ()
【注意所有的字體都要英文打字】

『肆』 cad中添加LSP軟體,如何使用

具體以下。
acad.lsp是AutoCAD軟體的Lisp腳本文件,當打開AutoCAD圖形dwg文件時會自動運行相同文件夾殲襲讓中的名為acad.lsp的腳禪迅本文件。不過現在一般是CAD病毒文件。只要將這文件放到CAD安裝文件夾,或放在一個".DWG"文件的目錄,打開這個目錄的CAD文件,acad.lsp就能自動運行了(典型的病毒特徵)。
打開一份圖紙,直接把LSP文件拖入CAD界面內,或者命令AP載入,AP載入窗還可以設置成隨CAD啟動。再或者,用記事本打開CAD安裝目錄下Support文件夾內的acad(版本號).lsp文件,然後把你LSP內容復制到裡面,這樣也是隨CAD啟動。但首先你要氏局知道你的這個stx.lsp源碼文件的內容是什麼,快捷鍵設置的是什麼,載入不等於自動使用。

『伍』 求編寫個CAD用的LSP文件

(defun C:test nil
(setq pt (getpoint "\n指定矩形中心點:")
L (getreal "\n輸入矩形的長度:")
W (getreal "\岩肢燃n輸入矩形的寬度:")
)
(setq pt1 (list (- (car pt) (* 0.5 L)) (- (cadr pt) (* 0.5 W))))
(setq pt2 (list (+ (car pt) (* 0.5 L)) (+ (cadr pt) (* 0.5 W))))
(command ".RECTANG" "粗虛non" pt1 "飢脊non" pt2)
(setq str (strcat (rtos l 2 2) "*" (rtos W 2 2)))
(entmake
(list '(0 . "TEXT")
(cons 1 str)
(cons 10 pt)
(cons 11 pt)
(cons 40 5) ;字高
(cons 72 1)
(cons 73 2)
)
)
(princ)
)
;;;使用命令"test"

『陸』 cad導出自定義的lsp 就是自己命令的lsp文件怎麼做出來

輸入Vlide,在編輯裡面新建一個新LISP文件,把所有的LISP連接復制粘貼到裡面,另存一個自己使用名字,否則先載入的無效! lsp文件在cad里有個support文件夾下比如acad2007.lsp文件(我世寬返用的是2007版本的),在後面加一行你寫的這個程序名,在cad啟動的時候讓其搜飢自動載入。
自己命令也可以是PGP文件,如果想把自己命令調到另一下台電腦上使用,就只巧戚要把PGP文件裡面的命令復制到另一台電腦上的PGP文件裡面,然後輸入reinit,點擊PGP文件確定,命令就刷新了。希望對你有幫助

『柒』 你好,CAD LSP編程,請教你一下

getdist,用滑鼠點選兩個點得到拆棗亮距離
getreal,直接用鍵盤輸入一個數值
上面兩個是我暫時想到的。lisp是表語言,你的括弧要成雙成對才旅寬行岩慧。

『捌』 autoCAD LSP編程

接在那一句後面寫,加一個pause,就可以輸入直徑,輸入完回車,命令會繼續向下執行。

『玖』 cad裡面如何寫一個lsp程序來cad的版本!

(defun checkver ( / ver arx )
(setq ver (getvar "acadver"))
(cond
((= (substr ver 1 5) "15.06") (setq arx "xxx")) ;;對應 AutoCAD 2002的arx文件
((= (substr ver 1 4) "16.0") (setq arx "xxx")) ;;對應 AutoCAD 2004的arx文件
((= (substr ver 1 4) "16.1") (setq arx "xxx")) ;;對應轎察 AutoCAD 2005的arx文件
((= (substr ver 1 4) "16.2") (setq arx "xxx")) ;;對應 AutoCAD 2006的arx文件
((= (substr ver 1 4) "17.0") (setq arx "xxx")) ;;對應 AutoCAD 2007的arx文件
((= (substr ver 1 4) "17.1") (setq arx "xxx")) ;;對應 AutoCAD 2008的arx文件擾帆哪
((= (substr ver 1 4) "17.2") (setq arx "xxx")) ;;對應 AutoCAD 2009的arx文件
((= (substr ver 1 4) "18.0") (setq arx "xxx")) ;;對應 AutoCAD 2010的arx文件
((= (substr ver 1 4) "18.1") (setq arx "xxx")) ;;對應 AutoCAD 2011的arx文件
)
(arxload arx)
)
(checkver)

新建一文本緩碼文件,將以上代碼復制進去,存為checkver.lsp後,將它加入到cad的啟動載入程序列表中,即可. "xxx"為對應的arx文件,若文件不存在於cad的搜索路徑中,則需將完整文件路徑名也寫上.

『拾』 求大神幫忙寫一個CAD裡面LSP命令,要求如下

;去掉多段線節點
(defunc:tes(/&kw1entnobjp1ss1ss5x)
(vl-load-com)
(if(and(setqent(entsel" 請選擇多段線對象"))
歲歷(setqent(carent))
(=(cdr(assoc0(entgetent)))"LWPOLYLINE")
)
(progn;;1
(sssetfirstnil(ssaddent))
(setqobj(vlax-ename->vla-objectent))
(setqss5(apply'append(mapcar'cdr(vl-remove-if'(lambda(X)(/=10(carx)))(entgetent)))))
(setqn(-(lengthss5)1)ss5(vlax-safearray-fill(vlax-make-safearrayvlax-vbDouble(cons0n))ss5));雙精度表
(setqss5(listss5))
(while(setqp1(x1808262))
(if(=(typep1)'STR)
(progn;;2-1
(if(>(lengthss5)1)(setqss5(cdrss5)))
(setqss1(carss5))
(vla-put-Coordinatesobjss1)
);progn;2-1
(if(setqss1(x1808261entobjp1))(setqss5(consss1ss5)))
);if;2
);while
(sssetfirstnil)
);progn;1
);if
(princ)
);復制到記事本,以【.lsp】後綴命名,CAD命令悔雀基【appload】載入

;修改多段線節點
(defunx1808261(entobjp1/entnobjp1ss1xy)
(setqss1(mapcar碧謹'cdr(vl-remove-if'(lambda(X)(/=10(carx)))(entgetent)))n0)
(setqss1(mapcar'(lambda(x)(list(setqn(1+n))(distancep1x)x))ss1))
(setqss1(apply'append(mapcar'caddr(vl-sort(cdr(vl-sortss1'(lambda(xy)(<(cadrx)(cadry)))))'(lambda(xy)(<(carx)(cary)))))))
(setqn(-(lengthss1)1)ss1(vlax-safearray-fill(vlax-make-safearrayvlax-vbDouble(cons0n))ss1));雙精度表
(vla-put-Coordinatesobjss1)
(if(>=n1)ss1nil)
)

(defunx1808262()
(initget"U")
(getpoint" 請選擇要刪除的點[返回上一步(U)]")
)

閱讀全文

與cad編寫lsp命令相關的資料

熱點內容
遵義聯通伺服器地址是什麼 瀏覽:29
ansys約束命令流 瀏覽:814
解壓軟體電腦版如何下載 瀏覽:791
閃電匕首演算法球 瀏覽:692
linuxredis停止命令 瀏覽:670
大麥賬號怎麼加密 瀏覽:113
穿越火線怎麼找伺服器 瀏覽:526
秘密加密社交軟體app 瀏覽:256
c語言編譯器怎麼找文件 瀏覽:835
數學不好能編程嗎 瀏覽:254
微雲里的視頻加密 瀏覽:41
3大加密貨幣交易平台 瀏覽:647
鈑金激光切割機編程 瀏覽:496
vivo手機手電筒app在哪裡 瀏覽:787
單片機晶振電路電容 瀏覽:887
穿越火線河南一區伺服器雲主機 瀏覽:41
文件夾與快捷方式顯示一致 瀏覽:879
幻影伺服器怎麼看金錢 瀏覽:349
小米手機怎麼用app減肥 瀏覽:893
本機如何與雲伺服器互通 瀏覽:652