DryWater 发表于 2022-7-6 14:49:19

我可以通过另一个加载例程吗

大家好。。。
我可以加载另一个例程并在其中使用它吗?
我试图这么做,但我所有的尝试都失败了。。。
我写了这样的东西:
{{
 
(定义C:加载()
(加载“C:\\Documents and Settings\\user\\My Documents\\FYP\\spring.fas”)
(命令“spring”)
 
)
 
}}
 
加载(spring.fas)时,我可以通过在AutoCAD命令窗口中键入“spring”来使用它。。。
 
虽然这段代码成功加载了文件,但命令“spring”被认为是未知的命令。。。为什么会这样?
 
有人能帮我吗?我最后一年的项目需要它
 
谢谢大家。。。

Lee Mac 发表于 2022-7-6 15:00:53

六羟甲基三聚氰胺六甲醚。。。以前从未这样做过,但可能:
 

(defun C:Loading ()
(load "C:\\Documents and Settings\\user\\My Documents\\FYP\\spring.fas" )
(c:spring)
(princ))

Guest kruuger 发表于 2022-7-6 15:01:44

你好,我认为你不能使用“命令”命令。这不是autocad命令,因此autocad无法识别它。试试这个(defun C:load()(load“C:\\Documents and Settings\\user\\My Documents\\FYP\\spring.fas”)(C:spring)

DryWater 发表于 2022-7-6 15:10:04

你好
 
谢谢你们(李和克鲁格)的快速回复。。。
 
是的,这对我很有效。。。
 
这是我的荣幸

DryWater 发表于 2022-7-6 15:15:17

您好。。。
 
我加载“spring.fas”的例程以键入“spring”开始。。。
开始后,我需要输入关键字“E”或“C”,然后输入一些数字。。。
您建议的解决方案仅在第一个命令(即“spring”)中对我有效,然后它对其余命令无效。。。我做错什么了吗?还是有别的方法?
 
我的新代码是:
 
{{
 
(定义C:加载()
(负载“K:/spring.fas”)
(c:弹簧)
(c:E)
(普林斯)
 
}}

CarlB 发表于 2022-7-6 15:20:40

我在另一个论坛上发布了一些对你问题的回复,然后看到你在这个论坛上取得了进一步的进展。。。
 
如果在“spring”中,您希望在调用时向其提供数据,而不是提示,则需要将“spring”修改为不是“command”函数。
 
更像
(defun弹簧(var1 var2))

 
 
然后用(spring dat1 dat2)调用它

Lee Mac 发表于 2022-7-6 15:26:45

 
我想你可以试试:
 


(defun C:Loading ()
(load "K:/spring.fas" )
(c:spring)
(command "E")
(princ))

DryWater 发表于 2022-7-6 15:36:06

大家好,
 
卡尔布
我想你知道。fas文件是编译的机器代码,除非您有原始的*,否则无法修改。lsp文件,因此我的问题是我有一个。fas文件,我需要,我不能修改。。。此文件一旦初始化,将等待用户的进一步输入。。。我的目标是编写一个代码,使用“spring.fas”生成图形而不干扰用户。。。
 
因此,有什么方法可以做到这一点吗?
 
李·麦克
我试过了,但没用
 
谢谢大家的努力

alanjt 发表于 2022-7-6 15:43:10

总有办法的
这将创建临时。scr文件并加载;没什么特别的。
 
(defun c:Test (/ #File #Open)
(if (not c:Spring)
   (load "Spring.fas")
) ;_ if
(setq #File (vl-filename-mktemp "" "" ".scr")
       #Open (open #File "w")
) ;_ setq
(write-line "spring e" #Open)
(close #Open)
(vl-cmdf "_.script" #File)
(princ)
) ;_ defun

Lee Mac 发表于 2022-7-6 15:46:00

 
 
好主意,艾伦-没想到
页: [1] 2
查看完整版本: 我可以通过另一个加载例程吗