導航:首頁 > 程序命令 > lsp命令

lsp命令

發布時間:2023-12-25 16:00:24

A. 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. 你的代碼主要是沒有包圍框代碼有了代碼就可以方便的寫出你的程序了。

B. 求大神幫忙寫一個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)]")
)

C. 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圖層;

閱讀全文

與lsp命令相關的資料

熱點內容
編譯匯編鏈接優化 瀏覽:79
程序員打字和作家哪個打字快 瀏覽:573
安卓手機怎麼用cad命令行 瀏覽:381
2200工程機接收命令瞬間消失 瀏覽:251
壓縮機工藝管是多大的 瀏覽:312
安卓刷什麼系統穩定 瀏覽:35
程序員寫炫酷代碼 瀏覽:930
大話存儲pdf 瀏覽:524
中銘機器人怎麼編程 瀏覽:812
把字母變為數字的加密法 瀏覽:523
噬血狂襲第三季哪個app能看 瀏覽:422
江蘇螺桿壓縮機 瀏覽:980
android底部彈出對話框 瀏覽:502
怎麼查伺服器同行fc號 瀏覽:1000
什麼伺服器雲鳥最便宜 瀏覽:221
vs編譯器反匯編 瀏覽:571
程序員直播做項目創業 瀏覽:403
linux下samba配置 瀏覽:797
程序員面試銀行崗位會有編制嗎 瀏覽:415
ex表怎麼加密碼保護 瀏覽:174