明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3696|回复: 8

[求助]cad2006中如何一次打开多个工具栏

[复制链接]
发表于 2008-10-26 13:51:00 | 显示全部楼层 |阅读模式

在cad2004中,用视图——工具栏可以一次打开或关闭多个工具栏,在cad2006中能实现吗?

以前都是在工具栏点右键,每次只能打开或关闭一个工具栏。

发表于 2008-10-27 11:35:00 | 显示全部楼层
要多少个,是全都显示出来,还是就显示你想用的。可以用过工作空间来保存,不知能不能到达你的要求。
 楼主| 发表于 2008-10-27 14:20:00 | 显示全部楼层
填空发表于2008-10-27 11:35:00要多少个,是全都显示出来,还是就显示你想用的。可以用过工作空间来保存,不知能不能到达你的要求。

当然是根据需要来显示。楼上的方法间接解决了这个问题,非常感谢!

 楼主| 发表于 2008-10-27 14:28:00 | 显示全部楼层

将cad2006与04对比,发现在功能上有一些不足的地方。

比如:不能一次打开多个工具栏。有多重复制,但是在撤销的时候不能逐步撤销,一下全撤了,04版的多重复制要输入关键字M,但是可以逐步撤销,这在一些复杂图形的操作中还是很有意义的。不知道还有哪些问题。不过还是06用起来顺手些。

发表于 2008-10-27 16:24:00 | 显示全部楼层
本帖最后由 作者 于 2008-10-27 16:26:01 编辑

或許可以試試 -TOOLBAR指令 ,使用指令行方式來顯示工具列,可以將常用的工具列寫成巨集來快速開啟,不過得先知道工具列名稱喔~

1.開啟標註工具列步驟:
指令: -TOOLBAR
輸入工具列名稱或 [全部(ALL)]: 標註輸入選項 [顯示(S)/隱藏(H)/左(L)/右(R)/上(T)/下(B)/浮動(F)]: <顯示>: s

2.開啟標註、文字、圖層工具列 巨集:
^C^C-TOOLBAR;標註;S;;文字;S;;圖層;S;

 楼主| 发表于 2008-10-30 01:51:00 | 显示全部楼层
本帖最后由 作者 于 2008-11-14 20:32:25 编辑

根据大哥Tiger的启示,做了一个调用cad2006工具栏的小程序,希望各位高手共同完善!

对CAD 标准,UCS Ⅱ,修改 Ⅱ,三个工具栏,由于名称内含空格,而在命令行中输入空格即回车,故没有把它们加进去。还有暂时还不能够像04版那样动态变化。

 窗体代码如下:

'打开或关闭某个工具栏
Sub toolbarSH(item, keyword)
  ThisDrawing.SendCommand "-TOOLBAR" & vbCr & item & vbCr & keyword & vbCr
End Sub
'显示全部工具栏
Private Sub CommandButton1_Click()
  UserForm1.hide
  ThisDrawing.SendCommand "-TOOLBAR" & vbCr & "ALL" & vbCr & "S" & vbCr
  UserForm1.Show
End Sub
'隐藏全部工具栏
Private Sub CommandButton2_Click()
  UserForm1.hide
  ThisDrawing.SendCommand "-TOOLBAR" & vbCr & "ALL" & vbCr & "H" & vbCr
  UserForm1.Show
End Sub
'打开或关闭某些工具栏
Private Sub CommandButton3_Click()
  UserForm1.hide
  If OptionButton1 Then
    keyword1 = "S"
    keyword2 = "H"
  ElseIf OptionButton2 Then
    keyword1 = "H"
    keyword2 = "S"
  End If
  Dim objectcontrol As Control
  For Each objectcontrol In Controls
    If TypeOf objectcontrol Is CheckBox Then
      item = objectcontrol.Caption
      If objectcontrol.Value = True Then
        Call toolbarSH(item, keyword1)
      Else
        Call toolbarSH(item, keyword2)
      End If
    End If
  Next
  UserForm1.Show
End Sub
'退出
Private Sub CommandButton4_Click()
  End
End Sub

ThisDrawing中的代码如下:

Sub call_toolbar()
  UserForm1.Show
End Sub

Sub load()

End Sub

将上传的dvb文件放入安装目录的Support文件夹,在安装目录acad.lsp中加入以下代码,在命令行中输入“tool”快捷命令即可完成调用。
(defun c:tool()
  (command "vbarun" "call_toolbar")
)
(command "_vbarun" "工具栏.dvb!load")
(command "ACADLSPASDOC" "1")

————————————————————————————————————————————————————

其他的办法:

假如常用到以下的工具栏:标注,标准,绘图,图层,文字,修改,样式,对象捕捉,对象特性。
新建命令,指定下面调用工具栏的宏,可以调用所需的工具栏。
^C^C-TOOLBAR 标注 S  标准 S  绘图 S  图层 S  文字 S  修改 S  样式 S  对象捕捉 S  对象特性 S
或者

^C^C-TOOLBAR;标注;S;;标准;S;;绘图;S;;图层;S;;文字;S;;修改;S;;样式;S;;对象捕捉;S;;对象特性;S;

在命令行中输入以下命令,也可完成调用:
-TOOLBAR 标注 S  标准 S  绘图 S  图层 S  文字 S  修改 S  样式 S  对象捕捉 S  对象特性 S

输入以下命令显示全部工具栏:
-TOOLBAR ALL S
输入以下命令隐藏全部工具栏:
-TOOLBAR ALL H

 楼主| 发表于 2008-10-30 04:39:00 | 显示全部楼层
本帖最后由 作者 于 2009-3-22 1:42:30 编辑

 

对上面的程序进行了一些小的修改,重新说明如下:

 窗体代码如下:
'打开某个工具栏
Sub toolbarS(item, keyword1)
  ThisDrawing.SendCommand "(command ""-TOOLBAR"" item keyword1)" & vbCr
End Sub
'关闭某个工具栏
Sub toolbarH(item, keyword2)
  ThisDrawing.SendCommand "(command ""-TOOLBAR"" item keyword2)" & vbCr
End Sub
'显示全部工具栏
Private Sub CommandButton1_Click()
  UserForm1.hide
  ThisDrawing.SendCommand "-TOOLBAR" & vbCr & "ALL" & vbCr & "S" & vbCr
  UserForm1.Show
End Sub
'隐藏全部工具栏
Private Sub CommandButton2_Click()
  UserForm1.hide
  ThisDrawing.SendCommand "-TOOLBAR" & vbCr & "ALL" & vbCr & "H" & vbCr
  UserForm1.Show
End Sub
'打开或关闭某些工具栏
Private Sub CommandButton3_Click()
  UserForm1.hide
  If OptionButton1 Then
    ThisDrawing.SendCommand "(setq keyword1 ""S"")" & vbCr
    ThisDrawing.SendCommand "(setq keyword2 ""H"")" & vbCr
  ElseIf OptionButton2 Then
    ThisDrawing.SendCommand "(setq keyword1 ""H"")" & vbCr
    ThisDrawing.SendCommand "(setq keyword2 ""S"")" & vbCr
  End If
  Dim objectcontrol As Control
  N = 0
  For Each objectcontrol In Controls
    If TypeOf objectcontrol Is CheckBox Then
      N = N + 1
      If N > 30 Then Exit For '30为复选框控件的个数
      ThisDrawing.SendCommand "(setq item (getstring T ""输入工具栏名称:""))" & vbCr &

objectcontrol.Caption & vbCr
      If objectcontrol.Value = True Then
        Call toolbarS(item, keyword1)
      Else
        Call toolbarH(item, keyword2)
      End If
    End If
  Next
  Debug.Print N
  UserForm1.Show
End Sub
'退出
Private Sub CommandButton4_Click()
  End
End Sub

ThisDrawing中的代码如下:
Sub call_toolbar()
  UserForm1.Show
End Sub

Sub load()

End Sub

如能实现逐个动态变化就更好了。

 

本帖子中包含更多资源

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

x
发表于 2008-10-31 10:58:00 | 显示全部楼层

进入cad

工具/选项/系统

然后有个"单文档兼容模式"勾选或不选,你试试看

应该不用什么代码吧

 楼主| 发表于 2008-10-31 18:37:00 | 显示全部楼层
shieh924发表于2008-10-31 10:58:00进入cad工具/选项/系统然后有个\"单文档兼容模式\"勾选或不选,你试试看应该不用什么代码吧

我想楼上这位大哥可能误解我的意思了。

单文档兼容模式

限制程序每次打开一个图形。 如果清除此选项,则可以一次打开多个图形。 如果打开多个图形,则不能打开此选项,直到关闭其他图形为止。 (MSITStore:C:\Program%20Files\AutoCAD%202006\help\acad_aug.chm::/ACR.ab.008.S.SDI.htm">SDI 系统变量)

这跟我提出的问题有什么关联吗?

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

本版积分规则

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

GMT+8, 2024-11-26 11:34 , Processed in 0.169527 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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