明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1178|回复: 8

[LISP群(2)] 2013-05-17 明经 AutoLISP 编程②群(177027547) 群聊记录:各位高手,我刚学习vba,想请教大家个问题,怎么在两个窗体间传值呢,具体

 关闭 [复制链接]
发表于 2013-5-17 09:51:29 | 显示全部楼层 |阅读模式
新儿 09:51:29
各位高手,我刚学习vba,想请教大家个问题,怎么在两个窗体间传值呢,具体是,我在运行form1的中间插入form2,然后把form2的文本输入的值传给form1,怎么办呢
 楼主| 发表于 2013-5-17 10:02:59 | 显示全部楼层
[【KAIXIN】][【KAIXIN】]炫翔 10:02:59
来错群了
 楼主| 发表于 2013-5-17 15:09:58 | 显示全部楼层
lzq2k-God Lisper 15:09:58
群里有广东的吗?
 楼主| 发表于 2013-5-17 15:23:33 | 显示全部楼层
[【KAIXIN】][【KAIXIN】]炫翔 15:23:33
 楼主| 发表于 2013-5-17 15:49:40 | 显示全部楼层
cre8or 15:49:40
用全局变量活着form1的按钮中调用form2的初始化函数
 楼主| 发表于 2013-5-17 16:03:59 | 显示全部楼层
新儿 16:03:59
谢谢啊,我用全局变量解决了
又遇到了一个新问题
创雅 16:05:29
新儿 16:05:43
怎么判断所选实体所在的图层是哪一层?比如一条线a,我想知道a所在的图层是不是红线图层?
新儿 16:06:32
如果是红线层,我执行一个操作,不是红线图层,我执行另一个操作,用if 实现
[gmstcn]囧囧圣堂 16:06:44
组码8
新儿 16:06:56
[Angel_wings_丶]Angel wings 丶﹏ 16:09:56
搜索 组码
[gmstcn]囧囧圣堂 16:11:07
(if (= (assoc 8 (entget (ssname i (ssget))) "红色图层的名称")(代码)(代码))
大概是这样吧
新儿 16:11:24
我用的是vba
[gmstcn]囧囧圣堂 16:11:41
我进错群了?
新儿 16:11:57
我弄错啦?
在哪里搜#vba?
[Angel_wings_丶]Angel wings 丶﹏ 16:12:40
怎么不能搜索了呢
cre8or 16:19:30
判断物体图层 vba的方法是直接引用物体对象然后 object.layer属性
返回的是图层名称 直接修改就可
cre8or 16:20:58
lisp方法很多了
 楼主| 发表于 2013-5-17 16:52:16 | 显示全部楼层
阙 16:52:16
(defun c:qq ( / a *doc* cly lay_n layerobj ss)
    (setvar "cmdecho" 0)
    (prompt "       选择要开启图层的对象......: ")
    (setq *doc* (vla-get-ActiveDocument (vlax-get-acad-object))          
          cLy (vla-get-ActiveLayer *doc*)
    )
    (if (setq ss (ssget))
        (progn
            (setq a t)
            (tblnext "layer" a)
            (while (setq lay_n (tblnext "layer" a))
                (setq a nil
                      lay_n (cdr (assoc 2 lay_n))
                      LayerObj (vla-add (vla-get-Layers *doc*) lay_n)
                )
                (if (= (vla-get-layeron LayerObj) :vlax-true)
                    (vla-put-layeron LayerObj :vlax-false)
                )
            )
            (setq a 0)
            (while (> (sslength ss) a)
                (setq lay_n (cdr (assoc 8 (entget (ssname ss a))))
                      LayerObj (vla-add (vla-get-Layers *doc*) lay_n)
                      a (1+ a)
                )
                (vla-put-layeron LayerObj :vlax-true)
                (vla-put-ActiveLayer *doc* LayerObj)

            )
            (if (= (vla-get-layeron cly) :vlax-true)
                (vla-put-ActiveLayer *doc* cLy)
            )
        )
        (progn
            (setq a t)
            (tblnext "layer" a)
            (while (setq lay_n (tblnext "layer" a))
                (setq a nil
                      lay_n (cdr (assoc 2 lay_n))
                      LayerObj (vla-add (vla-get-Layers *doc*) lay_n)
                )
                (if (= (vla-get-layeron LayerObj) :vlax-false)
                    (vla-put-layeron LayerObj :vlax-true)
                )
            )
        )
    )
    (setvar "cmdecho" 1)
    (princ)
)
这怎么说没有定义函数呢
给位 师兄麻烦看看啊  谢谢了
 楼主| 发表于 2013-5-17 17:03:56 | 显示全部楼层
[【KAIXIN】][【KAIXIN】]炫翔 17:03:56
这么长的玩意 应该去论坛发帖
阙 17:04:17
恩  好的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-6 07:28 , Processed in 0.190053 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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