明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4396|回复: 12

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

[复制链接]
发表于 2012-5-17 09:11:36 | 显示全部楼层 |阅读模式
我加载了一个VLX,这个程序提供了 HQ、HL、HZ三个命令,我在CAD中直接输入这三个命令都运行正常。

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

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

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

发表于 2019-5-11 09:22:32 来自手机 | 显示全部楼层
hf423 发表于 2012-5-17 09:49
因为是非注册命令,VLX不行,arx的可以,你可以试试:
(vla-sendcommand (vla-get-activedocument (vlax-g ...

参数里面坐标点怎么加输入p1不行
发表于 2019-5-11 09:09:25 来自手机 | 显示全部楼层
hf423 发表于 2012-5-17 09:49
因为是非注册命令,VLX不行,arx的可以,你可以试试:
(vla-sendcommand (vla-get-activedocument (vlax-g ...

参数里面加个点好像加不了
发表于 2019-5-11 09:16:52 来自手机 | 显示全部楼层
hf423 发表于 2012-5-17 09:49
因为是非注册命令,VLX不行,arx的可以,你可以试试:
(vla-sendcommand (vla-get-activedocument (vlax-g ...

参数里面点和回车怎么加
发表于 2012-5-17 09:20:21 | 显示全部楼层
lisp中(c:HQ)、(c:HL)、(c:HZ)执行
发表于 2012-5-17 09:49:45 | 显示全部楼层
因为是非注册命令,VLX不行,arx的可以,你可以试试:
(vla-sendcommand (vla-get-activedocument (vlax-get-acad-object)) "HL\r")
 楼主| 发表于 2012-5-17 10:07:55 | 显示全部楼层
xyh 发表于 2012-5-17 09:20
lisp中(c:HQ)、(c:HL)、(c:HZ)执行

对不起,不知道你说的如何实现,能不能帮我稍微详细介绍下代码的结构,谢谢了。
我原先的代码是这样的:
(defun c:testcommand  ()
(load "CJW_PKPMCAD.VLX")
(command "hl")
(princ))
其中的CJW_PKPMCAD.VLX程序可以提供那三个命令。
发表于 2012-5-17 10:59:33 | 显示全部楼层
(defun c:testcommand  ()
(load "CJW_PKPMCAD.VLX")
;(command "hl")
(c:hl)
(princ))
 楼主| 发表于 2012-5-17 11:27:06 | 显示全部楼层
xyh 发表于 2012-5-17 10:59
(defun c:testcommand  ()
(load "CJW_PKPMCAD.VLX")
;(command "hl")

感谢回复。现在可以运行命令了。
但是我还要继续运行他的参数,本来我的语句应该是(command "hl" "w" "100")
此时应该怎么修改?
我测试了(c:hl()(command "W" "100"))及其他几种情况都不行。
发表于 2012-5-17 11:34:59 | 显示全部楼层
arthwon 发表于 2012-5-17 11:27
感谢回复。现在可以运行命令了。
但是我还要继续运行他的参数,本来我的语句应该是(command "hl" "w" "1 ...

有些是无参数的,不能跟参数。可能程序另外提供带参数的函数,要看程序说明或源代码。
有些可能
(c:HL)
(command "W")
(command "100")
这样可以运行。自己试试。
 楼主| 发表于 2012-5-17 11:44:53 | 显示全部楼层
本帖最后由 arthwon 于 2012-5-17 15:05 编辑
xyh 发表于 2012-5-17 11:34
有些是无参数的,不能跟参数。可能程序另外提供带参数的函数,要看程序说明或源代码。
有些可能
(c:HL) ...

我按上面的语句运行后还是不行。
感觉运行(C:HL)这句后,程序停下来了等待输入,不能运行后面的(command)语句了。

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

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

  4. 输入梁宽<200>: 100

  5. ★梁宽为: 100 偏心: 0
  6. 指定第一点[梁宽(W)/偏心(S)]:
复制代码
发表于 2012-5-17 17:26:57 | 显示全部楼层
JW_PKPMCAD.VLX程序可以提供那三个命令。
 楼主| 发表于 2012-5-18 05:32:31 | 显示全部楼层
hf423 发表于 2012-5-17 09:49
因为是非注册命令,VLX不行,arx的可以,你可以试试:
(vla-sendcommand (vla-get-activedocument (vlax-g ...

经测试,(vla-sendcommand (vla-get-activedocument (vlax-get-acad-object)) "HL\rw\r100\r")可以达到所有目的,感谢兄弟!!
另,这些代码是属于什么语言的阿?怎么跟我认识的LISP语言不像阿?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-18 23:08 , Processed in 0.207072 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表