明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1638|回复: 4

请教:如何返回原图层?

[复制链接]
发表于 2007-6-24 22:14 | 显示全部楼层 |阅读模式

原来一直用顾文伟老师编的Specifylayer.ARX程序来自动分层,非常好用,但在AutoCAD2007/2008中不能用,不知各位老师有何解决办法?

也想采用下面的笨办法,定制新的“绘图”、“标注”工具条,功能与原“绘图”、“标注”相同,但加入图层设置,在绘图前设置当前图层,绘图结束后将当前图层设回原图层,比如粗直线希望放在“1”层上,用lisp编了如下程序,但红色部分程序执行不到,画线结束后不能返回原图层,请各位老师指点,谢谢!

; 1line.lsp
;绘制图层1直线。

(defun C:1line (/ old_l p0)
   (setvar "CMDECHO" 1)
   (setq old_l (getvar "clayer"))
   (command "-layer" "s" "1" "")
   (setq p0 (getpoint "\n请输入起点:"))
   (command "line" p0 )
   (command "-layer" "s" old_l "")
   (command "redraw")
   (setvar "cmdecho" 1)
   (setvar "osmode" oldsnap)
   (princ)
   )

发表于 2007-6-25 05:16 | 显示全部楼层
(command "line" p0 )画线命令还没执行完呢,要传入两个点啊?
 楼主| 发表于 2007-6-25 20:04 | 显示全部楼层
传入两个点只能划一条直线,如果要连续画几条首尾相连的直线,是不是要循环利用getpoint 传入所有的点?能不能利用执行autocad原命令在命令行的提示交互输入参数,执行完命令还能执行后面的程序,画线是最简单的,没有选项,如果画圆也通过getpoint传入点,就繁琐,有没有简单的办法?比如程序中调用circle命令,利用circle命令在命令行产生的提示输入所需参数,而不利用getpoint取点,执行完circl后,还能执行写在command "circl" 后的语句?请各位大虾指点,谢谢!
发表于 2007-6-25 23:21 | 显示全部楼层

画圆:(command "circle" pause pause)

画线有不确定的点数要输入,故不太好实现,可用循环,显得繁琐,最好知道点数,比如三个点,(command "line" pause pause pause ""),可以实现。

 楼主| 发表于 2007-6-27 20:06 | 显示全部楼层

谢谢wandong老师指点!

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-18 20:31 , Processed in 0.223113 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表