乐筑天下

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

[编程交流] Draworder错误

[复制链接]

3

主题

3

帖子

0

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 12:53:48 | 显示全部楼层 |阅读模式
我使用draworder如下:
 
; ss不是空的!
(sssetfirst ss)
(命令“_.draworder”ss“_F”)
 
它工作正常,做它应该做的事情。唯一的问题是,在我执行它之后,我收到了以下消息:
 
未知命令“F”。按F1键获取帮助。
 
它似乎无法识别“F”最终标记
 
我在纸上(可能这就是问题所在?!),并且对象也在图纸空间中
 
谢谢
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 13:45:51 | 显示全部楼层
我在上面的代码中看不到任何错误,但您可能需要使用(sssetfirst nil ss)。
 
如果您仍然有问题,请考虑使用VL更改提取顺序。
回复

使用道具 举报

12

主题

395

帖子

384

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-6 13:54:45 | 显示全部楼层
我写这个Lisp程序是为了工作。我个人一直在使用它。你可以试着重新制作它来满足你的需要,或者只是按原样使用。
 
  1. ;|************************************************************************
  2. **************************************************************************
  3. ********************A different approach at DRAWORDER*********************
  4. ******************************By: ZRABOIN*********************************
  5. **************************************************************************
  6. ************************************************************************|;
  7. (defun c:ndo( / cord goto adoc obj obj1 obj2 ent)
  8. (vl-load-com)
  9. (setq cord (vla-addobject
  10.           (vla-GetExtensionDictionary
  11.         (vla-get-modelspace
  12.           (setq adoc (vla-get-activedocument
  13.                (vlax-get-acad-object))))) "ACAD_SORTENTS" "AcDbSortentsTable"))
  14. (initget "1 2 3 4 5 6")
  15. (setq goto (cond ((getkword "\nWould you like to (1)-Bringtofront (2)-Sendtoback (3)-Sendbehind (4)-Bringabove (5)-SwapObjects (6)-Special ?: <bringtoFront> ")) ("1")))
  16. (cond
  17.    ((and (= goto "1")
  18.      (setq ent (mkar)))
  19.     (vla-Movetotop cord ent))
  20.    ((and (= goto "2")
  21.      (setq ent (mkar)))
  22.     (vla-Movetobottom cord ent))
  23.    ((and (= goto "3")
  24.      (setq ent (mkar)))
  25.     (setq obj (entsel "\nSelect Reference Object: "))
  26.     (setq obj (vlax-ename->vla-object (car obj)))
  27.     (vla-Movebelow cord ent obj))
  28.    ((and (= goto "4")
  29.      (setq ent (mkar)))
  30.     (setq obj (entsel "\nSelect Reference Object: "))
  31.     (setq obj (vlax-ename->vla-object (car obj)))
  32.     (vla-Moveabove cord ent obj))
  33.    ((and (= goto "5")
  34.      (setq obj1 (vlax-ename->vla-object(car(entsel))))
  35.      (setq obj2 (vlax-ename->vla-object(car(entsel)))))
  36.     (vla-SwapOrder cord obj1 obj2))
  37.    ((and (= goto "6")
  38.      (setq obj (mksar)))
  39.     (vla-setRelativeDrawOrder cord obj)
  40.     )
  41.    )
  42. (vla-regen adoc acActiveViewport)
  43. )
  44. ;******************************Make Array**********************************************************************
  45. (defun mkar ( / ss arobj)
  46. (if (setq ss (ssop))
  47. (setq ss (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
  48.    arobj (vlax-safearray-fill (vlax-make-safearray vlax-vbobject (cons 0 (- (length ss) 1))) ss)))
  49. )
  50. ;******************************Make Array Multiple Selections**************************************************
  51. (defun mksar ( / ss s1 arobj)
  52. (while (setq s1 (ssop))
  53.    (setq ss (append (vl-remove-if '(lambda (z) (member z ss)) (vl-remove-if 'listp (mapcar 'cadr (ssnamex s1)))) ss)))
  54. (setq    arobj (vlax-safearray-fill (vlax-make-safearray vlax-vbobject (cons 0 (- (length ss) 1))) (mapcar 'vlax-ename->vla-object ss)))
  55. )
  56. ;******************************Selection Set Options************************************************************
  57. (defun ssop ( / ssmeth s1 ss)
  58. (initget "1 2 3 4")
  59. (setq ssmeth (cond ((getkword "\nSelect by: (1)-Specified Objects (2)-Layer (3)-Blockname (4)-Similar - <Specified Objects> : ")) ("1")))
  60. (setq curt (getvar "ctab"))
  61. (cond ((= ssmeth "1")
  62.     (setq ss(ssget)))
  63.    ((= ssmeth "2")
  64.     (if (setq ss (entsel "\nSelect an object on the layer you want: "))
  65.       (ssget "X" (list (cons 410 curt) (cons 8 (cdr (assoc 8 (entget (car ss)))))))))
  66.    ((= ssmeth "3")
  67.     (if (setq ss (entsel "\nSelect a block: "))
  68.       (if (= (cdadr (setq ss (entget (car ss)))) "INSERT")
  69.         (setq ss (ssget "X" (list (cons 410 curt) (cons 2 (cdr (assoc 2 ss)))))))
  70.       ))
  71.    ((= ssmeth "4")
  72.     (if (setq ss (entsel "\nSelect an object: "))
  73.       (progn
  74.         (if (= (cdadr (setq ss (entget (car ss)))) "INSERT")
  75.           (setq s1 (cons 2 (cdr (assoc 2 ss))))
  76.           (setq s1 (cons 0 (cdr (assoc 0 ss)))))
  77.         (setq ss (ssget "X" (list s1 (cons 410 curt) (cons 8 (cdr (assoc 8 ss)))))))
  78.       )))
  79. )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-5 03:18 , Processed in 0.382919 second(s), 58 queries .

© 2020-2025 乐筑天下

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