明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1908|回复: 8

[求助]在程序中用(command "_insert".....)

[复制链接]
发表于 2004-3-25 22:22:00 | 显示全部楼层 |阅读模式
在程序中用(command "_insert" .....)插入带属性的blk或dwg,因为不确定有几个属性,所以不知道用几个pause,用(while (/= 0 (getvar "cmdactive")) (command PAUSE)),请教各位有何高招?
发表于 2004-3-26 08:12:00 | 显示全部楼层
高招用来做什么呢?你的话中好象没有问题啊
 楼主| 发表于 2004-3-30 08:37:00 | 显示全部楼层
对不起!,我的意思是:在插入带属性的blk或dwg,用(while (/= 0 (getvar "cmdactive")) (command PAUSE))并没有暂停,是否有其他办法?
发表于 2004-3-30 08:58:00 | 显示全部楼层
可以把代碼給大家看嗎? 這樣是最直接解決問題的方法了.
发表于 2004-3-30 10:08:00 | 显示全部楼层
(defun c:test()
(command "_.insert")
(while (/= "INSERT" (getvar "cmdnames")) (command PAUSE))
)
发表于 2004-3-30 12:18:00 | 显示全部楼层
(defun TT (BLOCKNAME / KK)
(command "_.insert" BLOCKNAME)
(while (/= 0 (getvar "cmdactive"))
(initget 128)
(setq KK (getpoint))
(if KK
(command KK)
(command "")
)
)
(alert "Insert ok!")
)
 楼主| 发表于 2004-3-30 19:38:00 | 显示全部楼层
非常感谢各位的指点!! 用上面的方法插入不带属性的块时是正确的,但插入带属性的块时,会略过属性的输入!! 附上程序和一个名为AREA.DWG的图,它含有两个属性:房间面积 : \ 房间名称: \;在插入时,我不能输入它们的值 (defun TT (Dwgname ins_pt bl_scale ang / KK)
(command "_.insert" Dwgname ins_pt bl_scale bl_scale ang)
(while (/= 0 (getvar "cmdactive"))
(command pause)
)
(alert "Insert ok!")
) (defun c:t ()
(setvar "cmdecho" 1)
(setq dwgname (getfiled "打开dwg文件" "h:\\" "dwg" 2))
(setq ins_pt (getpoint) bl_scale "" ang "")
(tt Dwgname ins_pt bl_scale ang)
(command "_move" (entlast) "" ins_pt)
)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2004-3-30 19:58:00 | 显示全部楼层
很奇怪,我的程序直接用可以,不过代到你的程序里就不行,你尚且可以认为回答不够正确。。。可6楼的方法完全满足你的要求,为什么你不试一下他的方法,还用你自己的方法在那试,然后又说不行。。。。。。????
 楼主| 发表于 2004-3-30 20:31:00 | 显示全部楼层
感谢楼上各位,终于发现了(个人认为): 主要是 (command pause) 和 (initget 128)
(setq KK (getpoint))
(if KK
(command KK)
(command "")
) 在回应"_insert" 的属性值时的区别, (command pause)会被认为是‘\’,而后者反映了真实的输入值;建议大家使用后者: (defun TT (BLOCKNAME / KK)
(setq ins_pt (getpoint) bl_scale "" ang "")
;;;(command "_.insert" BLOCKNAME)
(command "_.insert" Dwgname ins_pt bl_scale bl_scale ang)
(while (/= 0 (getvar "cmdactive"))
(initget 128)
(setq KK (getpoint))
(if KK
(command KK)
(command "")
)
;;;(command pause)
)
(alert "Insert ok!")
) (defun c:t ()
(setvar "cmdecho" 1)
(setq dwgname (getfiled "打开dwg文件" "h:\\acad-sys2\\block\\" "dwg" 2))
(tt Dwgname)
(command "_move" (entlast) "")
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-27 22:30 , Processed in 0.184114 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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