乐筑天下

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

[编程交流] 缺少函数,请帮助!

[复制链接]

40

主题

177

帖子

100

银币

后起之秀

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

铜币
248
发表于 2022-7-5 23:25:14 | 显示全部楼层 |阅读模式
  1. (defun c:tt (/ i)
  2. (fy:begin)
  3. (setq i 0)
  4. (if (ssget "X" '((0 . "*line,text")))
  5.    (mapcar
  6.      '(lambda (x / str)
  7.         (if (vlax-property-available-p x 'Textstring)
  8.           (and        (setq str (vlax-get x 'textstring))
  9.                (or
  10.                  (= str "")
  11.                  (= (vl-string-trim " " str) "")
  12.                )
  13.                (setq i (1+ i))
  14.                (vla-delete x)
  15.           )
  16.           (and
  17.             (equal
  18.               (vlax-curve-getdistatparam x (vlax-curve-getendparam x))
  19.               0.0
  20.               1e-3
  21.             )
  22.             (setq i (1+ i))
  23.             (vla-delete x)
  24.           )
  25.         )
  26.       )
  27.      (fy:cset->objs)
  28.    )
  29. )
  30. (if (not (zerop i))
  31.    (princ (strcat "\nTotle Erased " (itoa i) " Lines & text!"))
  32. )
  33. (fy:end)
  34. (princ)
  35. )

 
这还不够!
  1. (defun fy:error        (msg)
  2. (if (and msg (/= msg "Function cancelled"))
  3.    (prompt (strcat "Error: " msg))
  4.    (princ)
  5. )
  6. (fy:end)
  7. (princ)
  8. )
  9. (defun fy:begin        ()
  10. (setq        olderr        *error*
  11.        *error*        fy:error
  12. )
  13. (fy:Clearcset)
  14. (fy:startundo)
  15. t
  16. )
  17. (defun fy:end ()
  18. (fy:unsetv)
  19. (setq        *error*        olderr
  20.        *sysvars* nil
  21. )
  22. (fy:endundo)
  23. (princ)
  24. )
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-5 23:40:27 | 显示全部楼层
如果您能随附问题描述,那就太好了。
 
 
在此之前,请注意,您的代码缺少以下函数的定义:
[列表]
  • fy:cset->objs,
  • fy:Clearcset,
  • 财年:startundo,
  • 财年:未设置,
  • fy:endundo。
    [/列表]
  • 回复

    使用道具 举报

    40

    主题

    177

    帖子

    100

    银币

    后起之秀

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

    铜币
    248
    发表于 2022-7-5 23:44:49 | 显示全部楼层
    添加一个:
    1. (defun fy:clearcset (/ cset)
    2. (if (not (vl-catch-all-error-p
    3.             (setq cset
    4.                    (vl-catch-all-apply
    5.                      'vla-item
    6.                      (list
    7.                        (vla-get-selectionsets (Fy:acDoc))
    8.                        "CURRENT"
    9.                      )
    10.                    )
    11.             )
    12.           )
    13.      )
    14.    (vla-delete cset)
    15. )
    16. (princ)
    17. )
    回复

    使用道具 举报

    40

    主题

    177

    帖子

    100

    银币

    后起之秀

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

    铜币
    248
    发表于 2022-7-5 23:58:40 | 显示全部楼层
    fy:cset->objs:它应该是转换为对象列表的“ssget”选择集
    fy:startundo&fy:endundo可能是“command undo be”
    fy:未设置可能是恢复保存的原始系统变量
     
    有人能帮我吗
    回复

    使用道具 举报

    35

    主题

    2471

    帖子

    2447

    银币

    初露锋芒

    Rank: 3Rank: 3Rank: 3

    铜币
    174
    发表于 2022-7-6 00:01:29 | 显示全部楼层
    刘海欣88,愿意帮助你的人并不短缺,但必须首先明确说明你需要什么样的帮助!
    你想让别人帮你写那些缺失函数的代码?!?
    回复

    使用道具 举报

    40

    主题

    177

    帖子

    100

    银币

    后起之秀

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

    铜币
    248
    发表于 2022-7-6 00:08:10 | 显示全部楼层
     
    我想有人写的代码,这些缺失的功能为我!
    1. (defun fy:cset->objs (/ el)
    2.   (vlax-for obj (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object)))
    3.      (setq el (cons obj el))
    4.   )
    5. el
    6. )
    7. (defun fy:startundo ()
    8.   (vla-startundo (vla-get-activedocument (vlax-get-acad-object)))
    9. )
    10. (defun fy:endundo ()
    11. (vla-endundo (vla-get-activedoument (vlax-get-acad-object)))
    12. )
    回复

    使用道具 举报

    40

    主题

    177

    帖子

    100

    银币

    后起之秀

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

    铜币
    248
    发表于 2022-7-6 00:18:26 | 显示全部楼层
     
    为什么还是跑不动
    1. (vl-load-com)
    2. (defun c:tt (/ i)
    3. (fy:begin)
    4. (setq i 0)
    5. (if (ssget "X" '((0 . "*line,text")))
    6.    (mapcar
    7.      '(lambda (x / str)
    8.         (if (vlax-property-available-p x 'Textstring)
    9.           (and        (setq str (vlax-get x 'textstring))
    10.                (or
    11.                  (= str "")
    12.                  (= (vl-string-trim " " str) "")
    13.                )
    14.                (setq i (1+ i))
    15.                (vla-delete x)
    16.           )
    17.           (and
    18.             (equal
    19.               (vlax-curve-getdistatparam x (vlax-curve-getendparam x))
    20.               0.0
    21.               1e-3
    22.             )
    23.             (setq i (1+ i))
    24.             (vla-delete x)
    25.           )
    26.         )
    27.       )
    28.      (fy:cset->objs)
    29.    )
    30. )
    31. (if (not (zerop i))
    32.    (princ (strcat "\nTotle Erased " (itoa i) " Lines & text!"))
    33. )
    34. (fy:end)
    35. (princ)
    36. )
    37. (defun fy:begin        ()
    38. (setq        olderr        *error*
    39.        *error*        fy:error
    40. )
    41. (fy:Clearcset)
    42. (fy:startundo)
    43. t
    44. )
    45. (defun fy:end ()
    46. (unsetv)
    47. (setq        *error*        olderr
    48.        *sysvars* nil
    49. )
    50. (fy:endundo)
    51. (princ)
    52. )
    53. (defun fy:clearcset (/ cset)
    54. (if (not (vl-catch-all-error-p
    55.             (setq cset
    56.                    (vl-catch-all-apply
    57.                      'vla-item
    58.                      (list
    59.                        (vla-get-selectionsets (Fy:acDoc))
    60.                        "CURRENT"
    61.                      )
    62.                    )
    63.             )
    64.           )
    65.      )
    66.    (vla-delete cset)
    67. )
    68. (princ)
    69. )
    70. (defun fy:cset->objs (/ el)
    71.   (vlax-for obj (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object)))
    72.      (setq el (cons obj el))
    73.   )
    74. el
    75. )
    76. (defun fy:startundo ()
    77.   (vla-startundo (vla-get-activedocument (vlax-get-acad-object)))
    78. )
    79. (defun fy:endundo ()
    80. (vla-endundo (vla-get-activedoument (vlax-get-acad-object)))
    81. )
    82. (defun setv (name value / oldval)
    83. (setq oldval (getvar name))
    84. (if (not (assoc name *sysvars*))
    85.    (setq *sysvars* (append *sysvars* (list (cons name oldval))))
    86. )
    87. (setvar name value)
    88. oldval
    89. )
    90. (defun unsetv ()
    91. (foreach v *sysvars* (setvar (car v) (cdr v)))
    92. )
    93. (defun Fy:acDoc    nil
    94. (eval    (list 'defun
    95.          'FY:acdoc
    96.          'nil
    97.          (vla-get-activedocument (vlax-get-acad-object))
    98.    )
    99. )
    100. (fy:acdoc)
    101. )
    回复

    使用道具 举报

    4

    主题

    194

    帖子

    192

    银币

    初来乍到

    Rank: 1

    铜币
    25
    发表于 2022-7-6 00:26:08 | 显示全部楼层
    为什么不从部分原始代码的源代码中获取完整的代码。。。。。
    回复

    使用道具 举报

    发表回复

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

    本版积分规则

    • 微信公众平台

    • 扫描访问手机版

    • 点击图片下载手机App

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

    GMT+8, 2025-3-11 00:03 , Processed in 1.850083 second(s), 68 queries .

    © 2020-2025 乐筑天下

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