tcht 发表于 2006-6-8 16:19:00

申请编程:冻结选定层以外的所有层!

<P><FONT size=2>请高手帮忙,我经常想把某一个层以外的层都冻结,只剩下我选的层,方便画图</FONT></P>

sony-lin 发表于 2006-6-9 19:58:00

<P>我只见过 <FONT size=2>某一个层以外的层都关闭&nbsp;&nbsp;&nbsp;&nbsp; 只剩下我选的层,方便画图</FONT></P>

peridot 发表于 2006-7-17 16:17:00

上传不了,给我发邮件,我传给你alex@peridot.com.cn

hxjhzm 发表于 2006-10-10 11:23:00

<BR>(DEFUN C:DW(/ VAR1 VAR2 O A P Q);功能:冻结非物体所在layer<BR>(SETQ VAR1 (GETVAR "BLIPMODE"))<BR>(SETQ VAR2 (GETVAR "CMDECHO"))<BR>(SETVAR "BLIPMODE" 0)<BR>(SETVAR "CMDECHO"0)<BR>(PRINC "\n 冻结非物体所在层: ")<BR>(SETQ O (ENTSEL))<BR>(SETQ A (ENTGET (CAR O)))<BR>(SETQ P (CDR (ASSOC 8 A)))       ;物体所在层<BR>(COMMAND "-LAYER" "S" P "")<BR>(COMMAND "-LAYER" "F" "*" "")<BR>(SETVAR "BLIPMODE" VAR1)<BR>(SETVAR "CMDECHO"VAR2)<BR>(PRINC "\nOK!")(PRINC)<BR>)<BR>(DEFUN C:TA()<BR>(SETVAR "CMDECHO" 0)<BR>(PRINC "\n 解冻!!!")<BR>(COMMAND "-LAYER" "T" "*" "")<BR>(PRINC "\nOK!")(PRINC)<BR>)

dengqiaqia 发表于 2007-6-6 23:48:00

<p>(defun *$dyq-error$* (msg)<br/>&nbsp; ;(command ".undo" "")<br/>&nbsp; (setq *error* &amp;olderr&amp;)<br/>&nbsp; ;(princ)<br/>)<br/>(defun c:sd (/ layerlist ss num n lname prinname)<br/>&nbsp; ;锁定所选图层以外的图层<br/>&nbsp; (prompt<br/>&nbsp;&nbsp;&nbsp; "\n请选择不要锁定的图层,要解锁所有图层请直接按右键:"<br/>&nbsp; )<br/>&nbsp; (setq &amp;olderr&amp; *error*)<br/>&nbsp; (setq *error* *$dyq-error$*)<br/>&nbsp; (setq layerlist (list "0"))<br/>&nbsp; (if (setq ss (ssget))<br/>&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq num (sslength ss))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq n 0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (repeat num<br/>&nbsp;(setq lname (cdr (assoc '8 (entget (ssname ss n)))))<br/>&nbsp;(if (not (member lname layerlist))<br/>&nbsp; ;如果对象的图层名已经存在则不再加入列表<br/>&nbsp;&nbsp; (setq layerlist (cons lname layerlist))<br/>&nbsp;)<br/>&nbsp;(setq n (+ n 1))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (command "-layer" "lo" "*" "")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq num (length layerlist))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq prinname "")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq n 0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (repeat (- num 1)<br/>&nbsp;(command "-layer" "u" (nth n layerlist) "")<br/>&nbsp;(if (= n 0)<br/>&nbsp;&nbsp; (setq prinname (nth n layerlist))<br/>&nbsp;&nbsp; (setq prinname (strcat (nth n layerlist) "、" prinname))<br/>&nbsp;)<br/>&nbsp;(setq n (+ n 1))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (prompt<br/>&nbsp;(strcat&nbsp;"\n除"<br/>&nbsp;&nbsp;(itoa (- num 1))<br/>&nbsp;&nbsp;"个图层外,其他均锁定了:"<br/>&nbsp;&nbsp;prinname<br/>&nbsp;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (princ "\n所有图层均解锁了!")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (command "-layer" "u" "*" "")<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp; )<br/>&nbsp; (setq *error* &amp;olderr&amp;)<br/>&nbsp; (princ)<br/>)<br/></p>

dengqiaqia 发表于 2007-6-10 00:16:00

好像是从XD里down的我的代码吧,哈哈。

天龙八部 发表于 2007-9-6 17:34:00

<p>程序也可以这样啊!冻结选定的层以外的所有的层,就是反向冻结层,只可看见所选择的层中的对象</p><p>  dim ppsetmm as acadentity</p><p> .......  '略&nbsp;&nbsp;&nbsp; 选择集操作</p><p>&nbsp;&nbsp;&nbsp;&nbsp; dim ppsetaa as acadlayer</p><p></p><p>&nbsp;&nbsp;&nbsp; for each ppsetaa in thisdrawing.layers</p><p>&nbsp;&nbsp;&nbsp;&nbsp; if ppsetaa.name&lt;&gt;ppsetmm.layer then </p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ppsetmm.freeze=true</p><p></p><p>&nbsp;&nbsp;&nbsp;&nbsp; end if</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;就这么简单</p>
页: [1]
查看完整版本: 申请编程:冻结选定层以外的所有层!