明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2266|回复: 9

[函数] 求LISP下调整对象前置与后置的函数

  [复制链接]
发表于 2011-6-4 13:13 | 显示全部楼层 |阅读模式
求LISP下调整对象前置与后置的函数,谢谢。
发表于 2011-6-4 13:28 | 显示全部楼层
(defun c:ff    (/ b) (setq b(ssget))(command "draworder" b "" "f" )(prin1))
(defun c:bb    (/ b) (setq b(ssget))(command "draworder" b "" "b" )(prin1))
 楼主| 发表于 2011-6-4 14:41 | 显示全部楼层
回复 LLXXZZ 的帖子

谢谢,这个我知道,我不想调入命令的方式处理,速度太慢。不过还得谢谢你。
发表于 2011-6-4 14:59 | 显示全部楼层
vla-MoveToTop
vla-MoveToBottom
发表于 2011-6-4 16:04 | 显示全部楼层
回复 scry_wxj 的帖子

  1. ;;;移到最上显示 By Gu_xl  示例: (MovetoTop (ssget))
  2. (defun MovetoTop (ss / ObjLst Sortents dict i)
  3.   (cond        ((= 'pickset (type ss))
  4.          (repeat (setq i (sslength ss))
  5.            (setq ObjLst        (cons (vlax-ename->vla-object
  6.                                 (ssname ss (setq i (1- i)))
  7.                               ) ;_ vlax-ename->vla-object
  8.                               ObjLst
  9.                         ) ;_ cons
  10.            ) ;_ setq
  11.          ) ;_ repeat
  12.         )
  13.         ((= 'ename (type ss))
  14.          (setq ObjLst (list (vlax-ename->vla-object ss)))
  15.         )
  16.         ((= 'vla-object (type ss)) (setq ObjLst (list ss)))
  17.   ) ;_ cond
  18.   (if
  19.     (cond
  20.       ((not
  21.          (VL-CATCH-ALL-ERROR-P
  22.            (setq Sortents
  23.                   (VL-CATCH-ALL-APPLY
  24.                     'vla-item
  25.                     (list
  26.                       (setq dict
  27.                              (vla-GetExtensionDictionary
  28.                                (vla-ObjectIDtoObject
  29.                                  (vla-get-ActiveDocument (vlax-get-acad-object))
  30.                                  (vla-get-OwnerID (car ObjLst))
  31.                                ) ;_ vla-ObjectIDtoObject
  32.                              ) ;_ vla-GetExtensionDictionary
  33.                       ) ;_ setq
  34.                       "ACAD_SORTENTS"
  35.                     ) ;_ list
  36.                   ) ;_ GXL-CATCHAPPLY
  37.            ) ;_ setq
  38.          ) ;_ VL-CATCH-ALL-ERROR-P
  39.        ) ;_ not
  40.       )
  41.       ((not
  42.          (VL-CATCH-ALL-ERROR-P
  43.            (setq Sortents
  44.                   (VL-CATCH-ALL-APPLY
  45.                     'vla-AddObject
  46.                     (list dict "ACAD_SORTENTS" "AcDbSortentsTable")
  47.                   ) ;_ GXL-CATCHAPPLY
  48.            ) ;_ setq
  49.          ) ;_ VL-CATCH-ALL-ERROR-P
  50.        ) ;_ not
  51.       )
  52.     ) ;_ cond
  53.      (not (vla-MovetoTop
  54.             Sortents
  55.             (vlax-make-variant
  56.               (vlax-safearray-fill
  57.                 (vlax-make-safearray
  58.                   vlax-vbobject
  59.                   (cons 0 (1- (length ObjLst)))
  60.                 ) ;_ vlax-make-safearray
  61.                 ObjLst
  62.               ) ;_ vlax-safearray-fill
  63.             ) ;_ vlax-make-variant
  64.           ) ;_ vla-MovetoTop
  65.      ) ;_ not
  66.   ) ;_ if
  67. ) ;_ defun
发表于 2011-6-4 16:41 | 显示全部楼层
感觉调用命令的方式很简单哦!
发表于 2011-6-5 15:33 | 显示全部楼层
回复 LLXXZZ 的帖子

能否做到只用一个命令,在选择对象后,按一下就前置,再按一下就后置呢?这样就更完美了。
发表于 2011-6-6 14:54 | 显示全部楼层
    完美的要等大侠来了
发表于 2011-6-9 13:34 | 显示全部楼层
同求,。。。现身吧,大侠,呵呵
发表于 2011-7-24 19:06 | 显示全部楼层
回复 LLXXZZ 的帖子

谢谢分享,很是感激~~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-19 01:42 , Processed in 0.209004 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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