明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1265|回复: 0

[求助]请高手优化程序

[复制链接]
发表于 2006-12-20 23:27 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2006-12-22 19:31:39 编辑

以下程序为xyp版主的程序

;;; ==================================================================
;;; 选择(usel1 0 "arc" "圆弧")
;;; ==================================================================
(defun usel1 (number sname msg / mode s1)
  (setq sname (strcase sname))
  (while (/= mode sname)
    (while (not (setq s1 (entsel (strcat "\n选择" msg " : ")))))
    (setq mode (xyp-get-dxf number (car s1)))
  )
  s1
)

(defun xyp-get-dxf (code ename)
  (cdr (assoc code (entget ename)))
)

以下为明经上的程序

(defun Sel (_types msg / gr ent m ty)
  (prompt (strcat "\n选择" msg " : "))
  (setq m nil)
  (while (not m)
    (setq gr (grread 2 4 2))
    (cond
      ((= (car gr) 3)
       (setq ent (ssget (cadr gr)))
       (if (not (and ent (member (cdr (assoc 0 (entget (setq ent (ssname  ent 0))))) _types)))
 
  (setq ent nil)
 
       )
       (setq m t)
      )
      ((= (car gr) 25) (setq m t))
    )
  )
  (princ "\n")
  (if ent (list ent (cadr gr)) nil)
)

 usel1有防错功能,但是函数的参考多一DXF码,输入麻烦。

sel没防错功能(点错就退出)。但是输入参数少。输入方便。

哪位高手能优化一下,将USEL1的DXF码去掉,将SEL改为具有防错功能。谢谢!

没人理我,自已想了两天,搞定一半如下:

;;; ==================================================================
;;; 选择(usel2  "LINE" "圆弧")
;;; ==================================================================
(defun usel2 (sname msg / mode s1)
  (setq sname (strcase sname))
  (while (/= mode sname)
    (while (not (setq s1 (entsel (strcat "\n选择" msg " : ")))))
    (setq mode (thrassoc sname (entget (car s1))))
    (setq mode (xyp-get-dxf mode (car s1)))
  )
  s1
)
(defun thrassoc (id lst)
  (car (car (vl-remove-if-not '(lambda (x)
                                 (= (strcase id) (cdr x))
                               ) lst
            )
       )
  )
)
;;; ==================================================================

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

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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