arthwon 发表于 2012-5-17 09:11:36

新手请问为何用Command方式运行刚加载的vlx提供的命令却无法运行?

我加载了一个VLX,这个程序提供了 HQ、HL、HZ三个命令,我在CAD中直接输入这三个命令都运行正常。

但是把(command "hl")粘贴到命令行中运行,却提示"未知命令“HL”"。

请问如何用命令行的方式运行这三个命令?

我主要想在LSP程序中先加载VLX程序,然后再调用那三个命令。

明27662 发表于 2019-5-11 09:22:32

hf423 发表于 2012-5-17 09:49
因为是非注册命令,VLX不行,arx的可以,你可以试试:
(vla-sendcommand (vla-get-activedocument (vlax-g ...

参数里面坐标点怎么加输入p1不行

明27662 发表于 2019-5-11 09:09:25

hf423 发表于 2012-5-17 09:49
因为是非注册命令,VLX不行,arx的可以,你可以试试:
(vla-sendcommand (vla-get-activedocument (vlax-g ...

参数里面加个点好像加不了

明27662 发表于 2019-5-11 09:16:52

hf423 发表于 2012-5-17 09:49
因为是非注册命令,VLX不行,arx的可以,你可以试试:
(vla-sendcommand (vla-get-activedocument (vlax-g ...

参数里面点和回车怎么加

xyh 发表于 2012-5-17 09:20:21

lisp中(c:HQ)、(c:HL)、(c:HZ)执行

hf423 发表于 2012-5-17 09:49:45

因为是非注册命令,VLX不行,arx的可以,你可以试试:
(vla-sendcommand (vla-get-activedocument (vlax-get-acad-object)) "HL\r")

arthwon 发表于 2012-5-17 10:07:55

xyh 发表于 2012-5-17 09:20 static/image/common/back.gif
lisp中(c:HQ)、(c:HL)、(c:HZ)执行

对不起,不知道你说的如何实现,能不能帮我稍微详细介绍下代码的结构,谢谢了。
我原先的代码是这样的:
(defun c:testcommand()
(load "CJW_PKPMCAD.VLX")
(command "hl")
(princ))
其中的CJW_PKPMCAD.VLX程序可以提供那三个命令。

xyh 发表于 2012-5-17 10:59:33

(defun c:testcommand()
(load "CJW_PKPMCAD.VLX")
;(command "hl")
(c:hl)
(princ))

arthwon 发表于 2012-5-17 11:27:06

xyh 发表于 2012-5-17 10:59 static/image/common/back.gif
(defun c:testcommand()
(load "CJW_PKPMCAD.VLX")
;(command "hl")


感谢回复。现在可以运行命令了。
但是我还要继续运行他的参数,本来我的语句应该是(command "hl" "w" "100")
此时应该怎么修改?
我测试了(c:hl()(command "W" "100"))及其他几种情况都不行。

xyh 发表于 2012-5-17 11:34:59

arthwon 发表于 2012-5-17 11:27 static/image/common/back.gif
感谢回复。现在可以运行命令了。
但是我还要继续运行他的参数,本来我的语句应该是(command "hl" "w" "1 ...

有些是无参数的,不能跟参数。可能程序另外提供带参数的函数,要看程序说明或源代码。
有些可能
(c:HL)
(command "W")
(command "100")
这样可以运行。自己试试。

arthwon 发表于 2012-5-17 11:44:53

本帖最后由 arthwon 于 2012-5-17 15:05 编辑

xyh 发表于 2012-5-17 11:34 static/image/common/back.gif
有些是无参数的,不能跟参数。可能程序另外提供带参数的函数,要看程序说明或源代码。
有些可能
(c:HL) ...
我按上面的语句运行后还是不行。
感觉运行(C:HL)这句后,程序停下来了等待输入,不能运行后面的(command)语句了。

在CAD中直接运行该VLX程序的正常步骤是这样的:命令: hl

★梁宽为: 200 偏心: 0
指定第一点[梁宽(W)/偏心(S)]: w

输入梁宽<200>: 100

★梁宽为: 100 偏心: 0
指定第一点[梁宽(W)/偏心(S)]:

mjz521yy 发表于 2012-5-17 17:26:57

JW_PKPMCAD.VLX程序可以提供那三个命令。

arthwon 发表于 2012-5-18 05:32:31

hf423 发表于 2012-5-17 09:49 static/image/common/back.gif
因为是非注册命令,VLX不行,arx的可以,你可以试试:
(vla-sendcommand (vla-get-activedocument (vlax-g ...

经测试,(vla-sendcommand (vla-get-activedocument (vlax-get-acad-object)) "HL\rw\r100\r")可以达到所有目的,感谢兄弟!!
另,这些代码是属于什么语言的阿?怎么跟我认识的LISP语言不像阿?
页: [1] 2
查看完整版本: 新手请问为何用Command方式运行刚加载的vlx提供的命令却无法运行?