Luke 发表于 2008-2-27 17:04:16

数据库插入

我已经创建了这些附加数据库
有人能告诉我如何更改…
1)他们插入的默认可见性状态吗
2)它们插入的默认查找属性
我正在使用带有以下宏的下拉菜单进行插入:^C^C-insert;LCC_ XXXX;sc;1.r0;
相应地更改XXXX
**** Hidden Message *****

whdjr 发表于 2008-2-27 18:06:51

从下拉菜单插入与从工具栏插入相同,在这种情况下,我不相信您可以在插入之前更改块的属性。
但是,如果您倾向于从工具选项板插入,那么您将拥有该选项。 我不知道还有别的方法。
不好意思

Luke 发表于 2008-2-27 18:19:18

知道如何控制插入时选择哪个可见性状态吗?我不想每次都能够选择或改变它,我只想让一个不同于当前的活动...

Birdy 发表于 2008-2-27 18:41:41

卢克,我得同意威尔的看法
从工具选项板插入将完成所需的操作
右键单击属性并查找要插入的可见性状态。
否则。。。。。。。。

TimSpangler 发表于 2008-2-28 07:29:33

我相信您必须为此推出自己的插件类型
插入<br>抓住插入<br>更改插入<br'>退出<br>然后从下拉菜单运行自定义插入。

Luke 发表于 2008-2-28 08:00:18

Tim,
不确定您所说的“滚动自己类型的插页”是什么意思??
我喜欢使用工具托盘,但这不现实。我的员工现在抱怨由于小显示器和过多的工具栏,他们的绘图区域太小了。

whdjr 发表于 2008-2-28 08:43:20

您确实意识到可以将工具选项板设置为出来,然后在完成后缩回,不是吗?

TimSpangler 发表于 2008-2-28 08:58:17


您是否注意到,通过更改工具选项板的视图,您可以将其外观更改为模仿工具栏(某种程度上)?(见下图)
至于Tim的评论,他的意思是您必须创建一个自定义插入例程来动态更改vis状态(或者您可以直接使用它)
;;;=================================================================================================
;;; Function:    DYNAMIC_BLOCK_SETPROPERTY
;;;
;;; Description: Inserts a dynamic block, changes a specified property
;;;            and automatically highlights it to enable dynamic grips
;;;=================================================================================================
(defun DYNAMIC_BLOCK_SETPROPERTY (strBlockPath strBlockName strPropName strPropValue strAtt /
                                       lista lts pickset1 insPT objLast)
   (setvar "attdia" 0)
   (setq insPT (getpoint "\n Pick insertion point..."))
   (setq lts (getvar "ltscale"))
   (if (= strAtt "")
      (progn
         (if (= (tblsearch "block" strBlockName) nil)
            (command "-insert" (strcat strBlockPath strBlockName) insPT lts lts "")
            (command "-insert" strBlockName insPT lts lts "")
         )
      )
      (progn
         (if (= (tblsearch "block" strBlockName) nil)
            (command "-insert" (strcat strBlockPath strBlockName) insPT lts lts "" (strcase strAtt))
            (command "-insert" strBlockName insPT lts lts "" (strcase strAtt))
         )
      )
   )
   (setq objLast (entlast))
   (setq obj (if (= (type objLast) 'vla-object) objLast (vlax-ename->vla-object objLast)))
   (if (= (vlax-get-property obj 'isdynamicblock) :vlax-true)
      (progn
         (setq v (vla-getdynamicblockproperties obj)
               vval (vlax-variant-value v)
               sal(vlax-safearray->list vval)
               tot(length sal)
               i   0
         )
         (while (< i tot)
            (if (= (vlax-get-property (nth i sal) "PropertyName") strPropName)
               (progn
                  (vlax-put-property (nth i sal) "Value" strPropValue)
                  (setq i tot)
               )
               (setq i (1+ i))
            )
         )
      )
   )
   (setq pickset1 (ssadd))
   (ssadd objLast pickset1)
   (sssetfirst nil pickset1)
   (princ)
)
按钮后面的代码看起来像这样…
^C^C^P(load "Blocks.lsp");(Dynamic_Block_SetProperty "YourDir" "Your Block Name" "Visibility" "Visibility State Name" "");
如果要插入的数据库具有属性,并且希望自动神奇地填充值…
^C^C^P(load "Blocks.lsp");(Dynamic_Block_SetProperty "YourDir" "Your Block Name" "Visibility" "Visibility State Name" "Your Attribute Value");

Luke 发表于 2008-2-28 12:44:05

耶!马特说的话。
谢谢马特。

whdjr 发表于 2008-2-29 11:06:11

好吧,你说服了我。我要穿过工具托盘。然而,这个模块并不适合我,我已经重建了几次。有人能帮我弄明白吗?
当我通过标准的insert命令插入块时,可见性和查找值都按我的预期运行。当我将查找值属性设置为除12" = 1 '之外的任何刻度,并将其插入工具托盘时,所有属性都来自wack。不太确定为什么或如何修复。
页: [1]
查看完整版本: 数据库插入