乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 53|回复: 3

请看看这个程序,有问题!

[复制链接]

19

主题

46

帖子

7

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
122
发表于 2003-11-24 12:26:00 | 显示全部楼层 |阅读模式
该程序想在2004下用MATCHPROP,其选择的方式采用R14的方法,而不是2004的用"格式刷"选完物体,就马上变了,不能后悔.
(defun sele (msg / a)
  (prompt msg)
  (while (or (= (car (setq a (grread 2 4 2))) 5)))
  (if (= (car a) 3)
    (setq a (ssget (cadr a)))
  )
  a
)
(defun err (msg)
  (if (or
        (= msg "Function cancelled")
        (= msg "quit / exit abort")
      )
    (princ)
    (princ (strcat "\nError: " msg))
  )
  (setq *error* errtmp)
)
(defun c:maa (/ s ss)
  (setq        errtmp        *error*
        *error*        err
  )
  (setq s (sele "\nSelect source object:"))
  (if (listp s)
    (cond
      ((= s nil) (setq s (sel2 "\nSelect source object:")))
      ((or (= (car s) 2) (= (car s) 11)) (exit))
    )
    (setq s (ssname s 0))
  )
  (setq ss (ssget))
  (if (null ss)
    (exit)
  )
  (setvar "cmdecho" 0)
  (command "MATCHPROP" s ss "")
  (setq *error* errtmp)
  (setvar "cmdecho" 1)
  (princ)
)
;;当提示选择scource object时,按ESC,就会出现错误“Application ERROR: Console break”,怎么解决呢?
;;无法实现Select destination object(s) or [Settings]里的Settings 功能。
;;无法实现执行命令前选择一物体,然后执行命令后就默认为scource object,只提示用户选择目标物体了。
回复

使用道具 举报

19

主题

46

帖子

7

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
122
发表于 2003-11-24 12:27:00 | 显示全部楼层
关于特性匹配MATCHPROP在R14与2000i中有一个很大的不同,在R14中用户选择Select destination object(s)时,可以从选择集去掉因为失误而多选的对象。但是在2000i的版本中却选择一个就“刷”一个,没办法“后悔”
回复

使用道具 举报

37

主题

297

帖子

15

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
449
发表于 2003-11-24 14:06:00 | 显示全部楼层
;;当提示选择scource object时,按ESC,就会出现错误“Application ERROR: Console break”,怎么解决呢?
;;无法实现执行命令前选择一物体,然后执行命令后就默认为scource object,只提示用户选择目标物体了。
這兩個問題下面可以解決。
(defun c:maa () (vl-catch-all-apply 'maa nil)(princ))
(defun maa (/ ss1 e ss2)
  (setq ss1 (cadr (ssgetfirst)));取得先选择集
  (if (null ss1);先选择集为空
    (setq e (entsel "\nSelect source object:"))
    (if        (> (sslength ss1) 1);先选择集中不止一个物体
      (setq e (entsel "\nSelect source object:"))
      (setq e (ssname ss1 0));先选择集中有一个物体,直接用它
    )
  )
  (while (null e)
    (prompt "Nothing selected.")
    (setq e (entsel "\nSelect source object:"))
  )
  (sssetfirst nil nil);清除先选择集
  (setq ss2 (ssget);选择要修改的物体
  (if (null ss2)
    (exit)
  )
  (vl-cmdf "_.matchprop" e ss2 "")
)
;说明: vl-catch-all-apply 抑制所有错误信息,可以用相关函数捕捉这个信息。
回复

使用道具 举报

19

主题

46

帖子

7

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
122
发表于 2003-11-26 18:18:00 | 显示全部楼层
多谢!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-7 04:59 , Processed in 1.522369 second(s), 71 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表