aroom
发表于 2012-6-16 23:11:12
mccad 发表于 2012-6-15 22:34 static/image/common/back.gif
希望TeaScript 能有可视化对话框工具,针对ACAD看起来是使用了COM的编程手段,这对于AutoCAD的编程者来讲可 ...
TeaScript 可以用 .NET 来创建含各种控件的对话框,比 DCL 强很多。
同时 TeaScript 可以用 vlisp 宏来调用所有的 autoLisp 和 Visual Lisp 函数,函数的使用不会受到限制。
比如:
(setq a 123.45);; TeaScript 的变量 a
(vlisp (setq a ,a)) ;; 将 a 值同步到 autoLisp 中的变量 a 中
(vlisp (arx)) ;; 获取 vl arx 函数的返回值
(vlisp (vlax-curve-getArea (vlax-ename->vla-object (car (entsel)))));; 调用 vl 函数
(vlisp (vlax-curve-getParamAtDist (vlax-ename->vla-object (car (entsel))) 1.0)) ;; 调用 vl 函数
aroom
发表于 2012-6-21 00:39:54
本帖最后由 aroom 于 2012-6-21 00:42 编辑
使用TVMCOM来扩展autoLisp和visual Lisp函数:
aroom
发表于 2012-7-3 14:43:00
本帖最后由 aroom 于 2012-7-3 14:44 编辑
TeaScript 用dotnet 写GUI
最短代码的窗体:
aroom
发表于 2012-7-7 19:58:40
本帖最后由 aroom 于 2012-7-7 19:59 编辑
TeaScript.NET 写GUI界面
DCL 既难懂,又难用,况且很多控件DCL 没有定义。
这里介绍一下,TeaScript.NET 写GUI界面,用于AutoCAD内使用:
使用DCL没有的控件:menustrip,tabpage,image ...
非常非常Lispy
1、先把 .NET 命名空间导入进来:
(using System)
(using System.Drawing)
(using System.Windows.Forms)
2、接下来,可以创建Form实例,赋予你要设置的属性:
(setq form1 (new Form)
form1.Text "TeaScript 编写的 .NET 窗口"
form1.Width 700 form1.Height 600)
3、 接下来,可以创建Control实例,赋予你要设置的属性
(setq tabctrl (new TabControl)
tabctrl.Location (new Point 350 50)
tabctrl.Size (new Size 300 300))
(setq tabpage1 (new TabPage "Page1")
tabpage2 (new TabPage "Page2"))
(tabctrl.Controls.Add tabpage1)
(tabctrl.Controls.Add tabpage2)
(form1.Controls.Add tabctrl)
......
(setq btn (new Button)
btn.Text "在AutoCAD中画一个圆"
btn.Location (new Point 350 400)
btn.Size (new Size 150 50))
(form1.Controls.Add btn)
......
4、接下来,为Control控件增加事件回调函数,注意dnfun, 不是defun,名称为:obj_event 这样的格式
(dnfun btn_Click (Sender eventArgs / c)
(setq acad (GetObject "autocad.Application"))
(if (nil? rad) (setq rad 500.)(++ rad 100.0))
(setq doc acad.activedocument dwg acad.activedocument.modelspace)
(setq c (dwg.addCircle '(0. 0. 0.) rad))
(c.update)
)
...
5、最后将 form 显示出来,这种方式显示的是个模式对话框:
(form1.ShowDialog)
你也可以用 (form1.Show) 来显示个非模式对话框
6、在AutoCAD命令行加载:
command:
(tvm "(load \"E:/TeaScript/IDE/release/example/dotnet.lsp\")")
天之雨露
发表于 2012-7-9 06:44:30
看上去不错。留名,mark
筑路人
发表于 2012-7-9 17:25:52
学习中,请问相关的编程书如何购买。
aroom
发表于 2012-7-9 18:07:55
筑路人 发表于 2012-7-9 17:25 static/image/common/back.gif
学习中,请问相关的编程书如何购买。
为满足大家对 TeaScript 的兴趣和学习热情,备有小量的培训书籍
可以加QQ群:7326594 与群主联系购买
aroom
发表于 2012-7-15 18:21:39
本帖最后由 aroom 于 2012-7-15 18:23 编辑
再将界面插入一些其他的控件,是不是比 DCL OpenDCL 更吸引眼球哦!
aroom
发表于 2012-7-17 18:04:40
本帖最后由 aroom 于 2012-7-17 18:05 编辑
用 TeaScript 做 DoubleCAD 应用的二次开发:
(setq tc (GetOrCreateObject "TurboCAD.Application"))
(setq tc.Visible 1)
(tc.Drawings.Add)
(setq td tc.ActiveDrawing
tv td.ActiveView
tg td.graphics)
(tg.AddLineSingle 0. 0. 0. 100. 0. 0.)
(tg.AddCircleCenterAndPoint 0. 0. 0. 100. 0. 0.)
(tv.ZoomToExtents)
jack093
发表于 2012-7-25 17:43:13
太好了,能支持非模式对话框吗
页:
1
2
3
4
5
6
[7]
8
9
10
11