乐筑天下

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

[编程交流] LISP调用另一个LISP

[复制链接]

12

主题

395

帖子

384

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-6 00:26:08 | 显示全部楼层
 
哈哈哈
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 00:31:38 | 显示全部楼层
未经测试,但这应该有效:
  1. (defun c:TEST (/)
  2. (or c:SPL2PL (load "SPL2PL"))
  3. (vla-sendcommand
  4.    (vla-get-activedocument
  5.      (vlax-get-acad-object)
  6.    ) ;_ vla-get-activedocument
  7.    "SPL2PL all  0.1 "
  8. ) ;_ vla-sendcommand
  9. (princ)
  10. ) ;_ defun
回复

使用道具 举报

12

主题

395

帖子

384

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-6 00:33:25 | 显示全部楼层
很好的解决方案,艾伦!
回复

使用道具 举报

14

主题

78

帖子

64

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 00:36:28 | 显示全部楼层
我仍然在努力让我的LISP调用并运行其他LISP。下面是一个简单的LISP,有人在这里帮助我-它只是按风格过滤文本。当我尝试从另一个LISP调用这个LISP时,我得到了一个“未知命令”错误。我该怎么做??!!啊!
 
  1. ;FILTER TEXT BY STYLE
  2. (defun c:fts(/ cSet)
  3. (setq cSet(ssget
  4.               '((0 . "TEXT,MTEXT")(7 . "Standard"))
  5.             ); end ssget
  6. ); end setq
  7. (if cSet
  8.    (progn
  9.      (princ(strcat "\n" (itoa(sslength cSet)) " found."))
  10.      (sssetfirst nil cSet)
  11.      ); end progn
  12.     (princ "\nNothing found. ")
  13.    ); end if
  14. (princ)
  15. ); end of c:fts
回复

使用道具 举报

12

主题

395

帖子

384

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-6 00:38:56 | 显示全部楼层
这个函数所做的就是调用另一个函数并向其发送选择集。试试看。确保将“c:\\fts.lsp”更改为lisp的正确位置和文件名
 
  1. (defun c:run ()
  2. (load "c:\\fts.lsp" "Load Failed");change to have the name and location of the lisp
  3. (sssetfirst nil (ssget))
  4. (c:fts)
  5. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 00:43:58 | 显示全部楼层
像这样的?
 
  1. (defun c:fts  (/ cSet)
  2. (if (setq cSet (ssget '((0 . "*TEXT") (7 . "Standard"))))
  3.    (progn
  4.      (princ (strcat "\n" (rtos (sslength cSet) 2 0) " found."))
  5.      (sssetfirst nil cSet))
  6.    (princ "\n<< Nothing found >>"))
  7. (princ))
  8. (defun c:test ()
  9. (c:fts)
  10. (princ))

 
 
编辑:以秒数击败我。。。
回复

使用道具 举报

12

主题

395

帖子

384

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-6 00:47:36 | 显示全部楼层
 
哇!字面上
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 00:48:49 | 显示全部楼层
 
但我也重复了他原来的Lisp程序
回复

使用道具 举报

14

主题

78

帖子

64

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 00:51:44 | 显示全部楼层
 
所以使用这种方法就像在lisp中创建一个子函数,对吗?我已经拥有的fts lisp已经自动加载到每个新图形中。如果我自己使用它(即不是通过另一个lisp),我只会在命令行中键入“fts”,然后退出。在另一个lisp中使用它时,我可以不做类似的事情吗?我还有很多其他小的简单lisp,比如fts,我也想在这个lisp中使用,所以如果我能帮助的话,我真的不需要几十个子函数。无论如何,我仍然无法使上面的代码正常工作-同样的旧错误:未知命令。。。。。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 00:55:06 | 显示全部楼层
fts仍然是独立的,可以单独调用,“测试”LISP只是将其称为:
 
  1. (c:fts)

 
这一切对我来说都很好,它说的是哪个命令是未知的?
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 21:01 , Processed in 0.692392 second(s), 70 queries .

© 2020-2025 乐筑天下

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