dianbotang 发表于 2008-10-26 13:51:00

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

<p>在cad2004中,用视图——工具栏可以一次打开或关闭多个工具栏,在cad2006中能实现吗?</p><p>以前都是在工具栏点右键,每次只能打开或关闭一个工具栏。</p>

填空 发表于 2008-10-27 11:35:00

要多少个,是全都显示出来,还是就显示你想用的。可以用过工作空间来保存,不知能不能到达你的要求。

dianbotang 发表于 2008-10-27 14:20:00

填空发表于2008-10-27 11:35:00static/image/common/back.gif要多少个,是全都显示出来,还是就显示你想用的。可以用过工作空间来保存,不知能不能到达你的要求。

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

dianbotang 发表于 2008-10-27 14:28:00

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

op90o 发表于 2008-10-27 16:24:00

本帖最后由 作者 于 2008-10-27 16:26:01 编辑 <br /><br /> <p>或許可以試試 -TOOLBAR指令 ,使用指令行方式來顯示工具列,可以將常用的工具列寫成巨集來快速開啟,不過得先知道工具列名稱喔~</p><p>1.開啟標註工具列步驟:<br/>指令: -TOOLBAR<br/>輸入工具列名稱或 [全部(ALL)]: 標註輸入選項 [顯示(S)/隱藏(H)/左(L)/右(R)/上(T)/下(B)/浮動(F)]: &lt;顯示&gt;: s</p><p>2.開啟標註、文字、圖層工具列 巨集:<br/>^C^C-TOOLBAR;標註;S;;文字;S;;圖層;S;</p>

dianbotang 发表于 2008-10-30 01:51:00

本帖最后由 作者 于 2008-11-14 20:32:25 编辑 <br /><br /> <p>根据大哥Tiger的启示,做了一个调用cad2006工具栏的小程序,希望各位高手共同完善!</p><p>对CAD 标准,UCS Ⅱ,修改 Ⅱ,三个工具栏,由于名称内含空格,而在命令行中输入空格即回车,故没有把它们加进去。还有暂时还不能够像04版那样动态变化。</p><p></p><p></p><p></p><p></p><p>&nbsp;窗体代码如下:</p><p>'打开或关闭某个工具栏<br/>Sub toolbarSH(item, keyword)<br/>&nbsp; ThisDrawing.SendCommand "-TOOLBAR" &amp; vbCr &amp; item &amp; vbCr &amp; keyword &amp; vbCr<br/>End Sub<br/>'显示全部工具栏<br/>Private Sub CommandButton1_Click()<br/>&nbsp; UserForm1.hide<br/>&nbsp; ThisDrawing.SendCommand "-TOOLBAR" &amp; vbCr &amp; "ALL" &amp; vbCr &amp; "S" &amp; vbCr<br/>&nbsp; UserForm1.Show<br/>End Sub<br/>'隐藏全部工具栏<br/>Private Sub CommandButton2_Click()<br/>&nbsp; UserForm1.hide<br/>&nbsp; ThisDrawing.SendCommand "-TOOLBAR" &amp; vbCr &amp; "ALL" &amp; vbCr &amp; "H" &amp; vbCr<br/>&nbsp; UserForm1.Show<br/>End Sub<br/>'打开或关闭某些工具栏<br/>Private Sub CommandButton3_Click()<br/>&nbsp; UserForm1.hide<br/>&nbsp; If OptionButton1 Then<br/>&nbsp;&nbsp;&nbsp; keyword1 = "S"<br/>&nbsp;&nbsp;&nbsp; keyword2 = "H"<br/>&nbsp; ElseIf OptionButton2 Then<br/>&nbsp;&nbsp;&nbsp; keyword1 = "H"<br/>&nbsp;&nbsp;&nbsp; keyword2 = "S"<br/>&nbsp; End If<br/>&nbsp; Dim objectcontrol As Control<br/>&nbsp; For Each objectcontrol In Controls<br/>&nbsp;&nbsp;&nbsp; If TypeOf objectcontrol Is CheckBox Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; item = objectcontrol.Caption<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If objectcontrol.Value = True Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Call toolbarSH(item, keyword1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Call toolbarSH(item, keyword2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp; End If<br/>&nbsp; Next<br/>&nbsp; UserForm1.Show<br/>End Sub<br/>'退出<br/>Private Sub CommandButton4_Click()<br/>&nbsp; End<br/>End Sub</p><p>ThisDrawing中的代码如下:</p><p></p><p>Sub call_toolbar()<br/>&nbsp; UserForm1.Show<br/>End Sub</p><p>Sub load()</p><p>End Sub</p><p></p><p>将上传的dvb文件放入安装目录的Support文件夹,在安装目录acad.lsp中加入以下代码,在命令行中输入“tool”快捷命令即可完成调用。<br/>(defun c:tool()<br/>&nbsp; (command "vbarun" "call_toolbar")<br/>)<br/>(command "_vbarun" "工具栏.dvb!load")<br/>(command "ACADLSPASDOC" "1")</p><p>————————————————————————————————————————————————————</p><p>其他的办法:</p><p>假如常用到以下的工具栏:标注,标准,绘图,图层,文字,修改,样式,对象捕捉,对象特性。<br/>新建命令,指定下面调用工具栏的宏,可以调用所需的工具栏。<br/>^C^C-TOOLBAR 标注 S&nbsp; 标准 S&nbsp; 绘图 S&nbsp; 图层 S&nbsp; 文字 S&nbsp; 修改 S&nbsp; 样式 S&nbsp; 对象捕捉 S&nbsp; 对象特性 S <br/>或者</p><p>^C^C-TOOLBAR;标注;S;;标准;S;;绘图;S;;图层;S;;文字;S;;修改;S;;样式;S;;对象捕捉;S;;对象特性;S;</p><p>在命令行中输入以下命令,也可完成调用:<br/>-TOOLBAR 标注 S&nbsp; 标准 S&nbsp; 绘图 S&nbsp; 图层 S&nbsp; 文字 S&nbsp; 修改 S&nbsp; 样式 S&nbsp; 对象捕捉 S&nbsp; 对象特性 S </p><p>输入以下命令显示全部工具栏:<br/>-TOOLBAR ALL S <br/>输入以下命令隐藏全部工具栏:<br/>-TOOLBAR ALL H </p>

dianbotang 发表于 2008-10-30 04:39:00

本帖最后由 作者 于 2009-3-22 1:42:30 编辑 <br /><br /> <p>&nbsp;</p><p>对上面的程序进行了一些小的修改,重新说明如下:</p><p>&nbsp;窗体代码如下:<br/>'打开某个工具栏<br/>Sub toolbarS(item, keyword1)<br/>&nbsp; ThisDrawing.SendCommand "(command ""-TOOLBAR"" item keyword1)" &amp; vbCr<br/>End Sub<br/>'关闭某个工具栏<br/>Sub toolbarH(item, keyword2)<br/>&nbsp; ThisDrawing.SendCommand "(command ""-TOOLBAR"" item keyword2)" &amp; vbCr<br/>End Sub<br/>'显示全部工具栏<br/>Private Sub CommandButton1_Click()<br/>&nbsp; UserForm1.hide<br/>&nbsp; ThisDrawing.SendCommand "-TOOLBAR" &amp; vbCr &amp; "ALL" &amp; vbCr &amp; "S" &amp; vbCr<br/>&nbsp; UserForm1.Show<br/>End Sub<br/>'隐藏全部工具栏<br/>Private Sub CommandButton2_Click()<br/>&nbsp; UserForm1.hide<br/>&nbsp; ThisDrawing.SendCommand "-TOOLBAR" &amp; vbCr &amp; "ALL" &amp; vbCr &amp; "H" &amp; vbCr<br/>&nbsp; UserForm1.Show<br/>End Sub<br/>'打开或关闭某些工具栏<br/>Private Sub CommandButton3_Click()<br/>&nbsp; UserForm1.hide<br/>&nbsp; If OptionButton1 Then<br/>&nbsp;&nbsp;&nbsp; ThisDrawing.SendCommand "(setq keyword1 ""S"")" &amp; vbCr<br/>&nbsp;&nbsp;&nbsp; ThisDrawing.SendCommand "(setq keyword2 ""H"")" &amp; vbCr<br/>&nbsp; ElseIf OptionButton2 Then<br/>&nbsp;&nbsp;&nbsp; ThisDrawing.SendCommand "(setq keyword1 ""H"")" &amp; vbCr<br/>&nbsp;&nbsp;&nbsp; ThisDrawing.SendCommand "(setq keyword2 ""S"")" &amp; vbCr<br/>&nbsp; End If<br/>&nbsp; Dim objectcontrol As Control<br/>&nbsp; N = 0<br/>&nbsp; For Each objectcontrol In Controls<br/>&nbsp;&nbsp;&nbsp; If TypeOf objectcontrol Is CheckBox Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; N = N + 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If N &gt; 30 Then Exit For '30为复选框控件的个数<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ThisDrawing.SendCommand "(setq item (getstring T ""输入工具栏名称:""))" &amp; vbCr &amp; </p><p>objectcontrol.Caption &amp; vbCr<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If objectcontrol.Value = True Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Call toolbarS(item, keyword1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Call toolbarH(item, keyword2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp; End If<br/>&nbsp; Next<br/>&nbsp; Debug.Print N<br/>&nbsp; UserForm1.Show<br/>End Sub<br/>'退出<br/>Private Sub CommandButton4_Click()<br/>&nbsp; End<br/>End Sub</p><p>ThisDrawing中的代码如下:<br/>Sub call_toolbar()<br/>&nbsp; UserForm1.Show<br/>End Sub</p><p>Sub load()</p><p>End Sub</p><p>如能实现逐个动态变化就更好了。</p><p>&nbsp;</p>

shieh924 发表于 2008-10-31 10:58:00

<p>进入cad</p><p>工具/选项/系统</p><p>然后有个"单文档兼容模式"勾选或不选,你试试看</p><p>应该不用什么代码吧</p>

dianbotang 发表于 2008-10-31 18:37:00

shieh924发表于2008-10-31 10:58:00static/image/common/back.gif进入cad工具/选项/系统然后有个\"单文档兼容模式\"勾选或不选,你试试看应该不用什么代码吧

<p>我想楼上这位大哥可能误解我的意思了。</p><p class="define_head"><font color="#ffffff" style="BACKGROUND-COLOR: #316ac5;">单文档兼容模式</font></p><p class="define_text">限制程序每次打开一个图形。 如果清除此选项,则可以一次打开多个图形。 如果打开多个图形,则不能打开此选项,直到关闭其他图形为止。 (<a href="mk:@MSITStore:C:\Program%20Files\AutoCAD%202006\help\acad_aug.chm::/ACR.ab.008.S.SDI.htm">SDI</a> 系统变量)</p><p class="define_text">这跟我提出的问题有什么关联吗?</p>
页: [1]
查看完整版本: [求助]cad2006中如何一次打开多个工具栏