导航:首页 > 程序命令 > 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命令相关的资料

热点内容
中铭机器人怎么编程 浏览:812
把字母变为数字的加密法 浏览:523
噬血狂袭第三季哪个app能看 浏览:421
江苏螺杆压缩机 浏览:980
android底部弹出对话框 浏览:501
怎么查服务器同行fc号 浏览:999
什么服务器云鸟最便宜 浏览:220
vs编译器反汇编 浏览:570
程序员直播做项目创业 浏览:403
linux下samba配置 浏览:797
程序员面试银行岗位会有编制吗 浏览:414
ex表怎么加密码保护 浏览:173
小孩上编程课用哪款好 浏览:559
如何制作服务器商店 浏览:734
压缩气管阀门 浏览:464
pdf推文 浏览:359
69程序员 浏览:583
阿里云服务器镜像如何迁移到腾讯 浏览:991
安卓如何显示日期在状态栏 浏览:805
cadsplt这个命令用不了 浏览:468