明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 15777|回复: 15

[求助]cad菜单“工具》显示顺序”中前置无效?

  [复制链接]
发表于 2010-5-25 22:28:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2010-6-2 23:05:40 编辑

请教,我的cad菜单“工具》显示顺序”无效,点击后出现如下提示:

“命令:  ; 错误: no function definition: DRAWORDER”
请教为什么,怎么解决?谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2010-5-26 13:10:00 | 显示全部楼层
什么版本?一般是 acdorder.arx (R14 为 dorder.arx) 不会被自动加载?先看看 ACAD 的目录下是不是有这个文件。如果有,比较简单的做法是通过 AppLoad 命令找寻到该文件,将其添加到“启动组”中。如果没有这个文件,从其它正常的机子上复制个过来。
 楼主| 发表于 2010-5-26 20:28:00 | 显示全部楼层
本帖最后由 作者 于 2010-5-26 21:45:20 编辑

我的是cad2004版本,是不是也是“acdorder.arx ”。

我是单位办公室计算机,明天看一下。谢谢!

 楼主| 发表于 2010-5-28 07:33:00 | 显示全部楼层

我的是cad2004,试了加载acdorder.arx还是一样无效。包括将对象的图层置为当前,_ai_molc,也无效。麻烦再次指点一下,谢谢

发表于 2010-5-28 08:56:00 | 显示全部楼层

_ai_molc,将对象图层置为当前,这个命令应该是 *DOC 组中定义的,属 ACAD 基本命令了,怎么会无效呢?具体什么提示信息?

加载了 acdorder.arx 后,运行 draworder 命令是什么错误提示?加载过程肯定正确完成了?

如果确是这样,是不是有病毒了?!c:_ai_molc 看看提示什么,如果是一堆 lsp 代码,那就是病毒;如果是 nil,很奇怪;如果是 #<SUBR @0315... 这样的,大致是正常。

 楼主| 发表于 2010-6-1 21:41:00 | 显示全部楼层

是正确加载了“acdorder.arx”,提示一样是“命令:  ; 错误: no function definition: DRAWORDER”,我好多同事机子都出现类似问题,估计是病毒。

 

命令: !C:AI_MOLC
nil
命令: !C:DRAWORDER
nil

我的机子就是上面的结果。

我找了一台菜单命令可用的机子试了一下,结果确实如楼上说的一样。

“命令: !C:AI_MOLC #<SUBR @0358403c C:AI_MOLC>”

但DRAWORDER结果也是nil “命令: !C:DRAWORDER nil”

 

 

发表于 2010-6-2 08:38:00 | 显示全部楼层

_.AI_MOLC 命令可以吗?这种格式是以 ACAD 内部原始命令运行,可以避开外部的命令重定义。如果可以,应该是病毒作祟;或者是看看自己图形目录下有没有 acad.lsp 之类的文件,可能需要打开隐藏文件的显示。如果还是不可以,arx 命令 ? 选项,列表里有 acapp.arx 和 acdorder.arx 吗?没有的话,手工加载下,仔细看看命令行里的提示,是不是确定加载成功了;如果有这两个,arx 命令的 c 选项,在 “ACAD_DRAWORDER”组里应该有 draworder,在 *DOC 组里应该有 C:AI_MOLC,如果没有它们,acapp.arx 和 acdorder.arx 两文件有问题?从其它正常的机子上复制个过来再试试?

 楼主| 发表于 2010-6-2 23:04:00 | 显示全部楼层

AI_MOLC 命令可以可以用了,原因找到了,是我的机子下

C:\Documents and Settings\admin\Application Data\Autodesk\AutoCAD 2004\R16.0\chs\Support目录下的

acad.mnl有问题未成功加载“acad.mnl”。每次打开cad提示“AutoCAD 菜单实用程序; 错误: 参数类型错误: stringp nil

我从别的正常cad的机子中拷贝了一个“acad.mnl”覆盖就可以用AI_MOLC 命令。点工具条上的“将对象的图层置为当前”可用。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2010-6-3 23:10:00 | 显示全部楼层

“将对象的图层置为当前”工具栏上的点击有效了,问题是“acad.mnl”被破坏,找个正常机子中的相同文件覆盖即可。

现在还是菜单“工具》显示顺序”中前置、后置等无效没解决。

我在正常可以使用的机子上,发现也没有“acdorder.arx”,采用arx 命令的 c 选项,也查不到“ACAD_DRAWORDER”组及draworder,但该机子的“工具》显示顺序”中前置、后置等均有效。

而我的机子无法使用,加载了“acdorder.arx”,采用arx 命令的 c 选项,也查到“ACAD_DRAWORDER”组及draworder,但通过菜单“工具》显示顺序”点击,命令行依然出现的是“ 命令:  ; 错误: no function definition: DRAWORDER”。补充说明,在命令行输入“DRAWORDER”是一直可以用的。

 

发表于 2010-6-4 08:37:00 | 显示全部楼层

菜单里当然显示顺序功能项,是同 (ai_draworder ??) 函数调用 _.draworder 命令的,而这个函数也是在 acad.mnl 里定义的。

通常的,刚进入 ACAD 时,acdorder.arx 可能没被加载,但一旦运行 draworder 命令,就会自动加载它的。

现在是 draworder 命令可以使用,但菜单里的不可用,那就查 acad.mns 里这部分的是否正常,acad.mnl 里对 ai_draworder 是否正常:

// 菜单文件中的定义

ID_MnOrder     [->显示顺序(&O)]
ID_DrawordeF     [前置(&F)]^C^C^P(ai_draworder "_f") ^P
ID_DrawordeB     [后置(&B)]^C^C^P(ai_draworder "_b") ^P
                 [--]
ID_DrawordeA     [置于对象之上(&A)]^C^C^P(ai_draworder "_a") ^P
ID_DrawordeU     [<-置于对象之下(&U)]^C^C^P(ai_draworder "_u") ^P

 

; acad.mnl 中的定义

(defun ai_draworder (option / ss )

  (setq m:err *error* *error* *merr*)
  (ai_sysvar '("cmdecho" . 0))

  (if (setq ss (ssget "_I"))
    (command "_.draworder" option)
    (if (setq ss (ssget))
      (command "_.draworder" ss "" option)
    )
  )
  (ai_sysvar NIL)
  (setq *error* m:err m:err nil)

  (princ)
)

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

本版积分规则

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

GMT+8, 2024-11-24 12:54 , Processed in 0.186173 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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