明经CAD社区

 找回密码
 注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 189|回复: 7

[提问] ssgetfirst求助

[复制链接]
发表于 2018-7-6 17:17 | 显示全部楼层 |阅读模式
(defun c:mm (/ ww p1)
(if (= (cadr (ssgetfirst)) nil)
(progn
(setq ww (ssget))
)
(progn
(setq ww (cadr (ssgetfirst)))
))
(setq p1 (getpoint "\n[指定第一点]:"))
(command "MIRROR" ww "" p1 (polar p1 (angtof "90") 500) "Y")
(princ))
以上代码先执行命令后选择可以运行,但是先选择就无法运行,请问大能之士怎么修改呢?

发表于 2018-7-6 20:26 | 显示全部楼层
或许是版本差异
我这儿 后选择/先选择皆正常运行
发表于 2018-7-6 22:43 | 显示全部楼层
autocad2012測試o.k.
发表于 2018-7-7 08:22 | 显示全部楼层
2006测试没问题        首先确认下图是不是有问题

本函数只能分析当前图形中模型空间和图纸空间中的图元,而不能分析非图形对象和其他块定义中的图元。
再不行换下方法
  (setq ss (ssget "i"))
  (if (= ss nil)
     )

还有个相关的系统变量  

PICKFIRST 系统变量
命令和系统变量        
类型: 整数
保存位置: 注册表
初始值: 1
控制在发出命令之前(先选择后执行)还是之后选择对象
此主题没有相关的操作步骤。


发表于 2018-7-9 11:29 | 显示全部楼层
本帖最后由 lifuq1979 于 2018-7-9 11:36 编辑

測試o.k,progn在这里没啥用
(defun c:mm (/ ww p1)
(if (= (setq ww(cadr (ssgetfirst))) nil)
(setq ww (ssget))
)
(setq p1 (getpoint "\n[指定第一点]:"))
(command "MIRROR" ww "" p1 (polar p1 (angtof "90") 500) "Y")
(princ))
发表于 2018-7-9 14:00 | 显示全部楼层
;在执行mm命令之前执行(setvar "pickfirst" 1)
(defun c:mm (/ ww p1)
        (setvar "qaflags" 0)
        (setq ww (cadr (ssgetfirst)));(setq ww (ssget "I"));判断当前图形是否有己选取的对象
        (if (or ww (setq ww (ssget)))
                (if (setq p1 (getpoint "\n[指定第一点]:"))
                        (command "MIRROR" ww "" p1 (polar p1 (angtof "90") 500) "Y")
                )
        )
)
 楼主| 发表于 2018-7-9 14:31 | 显示全部楼层
明经大神多,已解决,谢谢各位!
发表于 2018-7-10 01:22 | 显示全部楼层
13816600495 发表于 2018-7-9 14:31
明经大神多,已解决,谢谢各位!

COMMAND  新手加油
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2018-7-19 17:41 , Processed in 0.217553 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.3

© 2001-2013 Comsenz Inc.

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