aroom
发表于 2012-7-25 20:51:03
jack093 发表于 2012-7-25 17:43 static/image/common/back.gif
太好了,能支持非模式对话框吗
支持非模式对话框
革天明
发表于 2012-7-27 09:11:41
aroom 发表于 2012-5-27 17:44 static/image/common/back.gif
T eaScript 扩展 AutoCAD 二次开发
;; 建立 Application 对象,若 AutoCAD 已启动,则直接获取,若未启动, ...
给个完整程序,就算需要加载其它环境也可以啊,一句一句的有什么用
有空的话写个完整的程序,见http://bbs.mjtd.com/thread-93901-1-1.html
如果程序不能封装成VLX或LSP的话,单句是没用的,不能要求其它不知道CAD二次开发的用户也要用算子环境吧?
革天明
发表于 2012-7-27 09:14:04
liuyj 发表于 2012-6-3 10:30 static/image/common/back.gif
深有同感
太有同感的,给句子用处不大,
革天明
发表于 2012-7-27 09:17:41
aroom 发表于 2012-7-17 18:04 static/image/common/back.gif
用 TeaScript 做 DoubleCAD 应用的二次开发:
(setq tc (GetOrCreateObject "TurboCAD.Application"))
...
tv tv tg这此东西需要其它的来支持吧,没有环境(普通用户)估计也运行不了,光有开发环境不行吧
aroom
发表于 2012-7-30 09:06:29
本帖最后由 aroom 于 2012-7-30 12:44 编辑
TeaScript .NET 写个计算器:
;;;先把 .NET 命名空间导入进来
(using System)
(using System.Drawing)
(using System.Windows.Forms)
;;; 接下来,可以创建Form实例,赋予你要设置的属性
(setq form1 (new Form)
form1.Text "TeaScript 计算器"
form1.Width 180 form1.Height 235
form1.MinimizeBox false
form1.MaximizeBox false
form1.FormBorderStyle FormBorderStyle.$FixedSingle
form1.BackColor Color.Cyan
form1.TopMost true
)
;;; 接下来,可以创建Control实例,赋予你要设置的属性
(setq txt (new TextBox)
txt.Location (new Point 5 10)
txt.Size (new Size 165 30)
txt.TextAlign HorizontalAlignment.$Right
txt.BorderStyle BorderStyle.$FixedSingle
txt.BackColor Color.Cyan
txt.ReadOnly true
)
(form1.Controls.Add txt)
(foreach btnstr (list "<-" "(" ")" "C"
"1" "2" "3" "+"
"4" "5" "6" "-"
"7" "8" "9" "*"
"0" "." "=" "/")
(setq i $idx)
(set (sym (+ "btn" i)) (new Button)
(sym (+ "btn" i ".Text")) btnstr
(sym (+ "btn" i ".Location")) (new Point (* (% i 4) (+ 40 5)) (+ 40 (* (/ i 4) (+ 30 5))))
(sym (+ "btn" i ".Size")) (new Size 40 30)
(sym (+ "btn" i ".BackColor")) Color.LightSkyBlue
(sym (+ "btn" i ".FlatStyle")) FlatStyle.$Flat
)
(form1.Controls.Add (eval (sym (+ "btn" i))))
;;; 为Control控件增加事件回调函数
(dnfun (sym (+ "btn" i "_Click")) (Sender EventArgs / button op result)
(setq button (cast Sender "Button")
op button.Text)
(cond
((== op "<-") (setq txt.Text (butlast txt.Text)))
((== op "C") (setq txt.Text ""))
((== op "=") (catch (evalString (append " __js " txt.Text " __ ")) 'result)
(setq txt.Text (+ txt.Text (string " " op " " result))))
(true (setq txt.Text (+ txt.Text op)))
)
)
)
;;; 最后将 form 显示出来
(form1.ShowDialog)
hisum
发表于 2012-7-30 10:50:58
又学习到一个新东东!
邹锋
发表于 2012-8-10 23:00:56
本帖最后由 邹锋 于 2012-8-10 23:02 编辑
(setq filename "mykey.ico")
(vlax-invoke wrap 'Register "USER32" "SetWindowText" "i=ls" "r=l") ;注册SetWindowText函数
(vlax-invoke wrap 'SetWindowText hwnd str) ;重设CAD程序标题窗口文字内容
;|
(vlax-invoke wrap 'Register "USER32" "LoadImage" "i=lsllll" "r=l") ;注册LoadImage函数
(vlax-invoke wrap 'Register "USER32" "SendMessage" "i=llll" "r=l") ;注册SendMessage函数
(setq hico (vlax-invoke wrap 'LoadImage 0 filename 1 16 16 10)) ;获得装载的图标句柄
(vlax-invoke wrap 'SendMessage hwnd 80 0 hico) ;重设CAD程序标题窗口图标
|;
(vlax-release-object wrap)
我用上了,今天你说的那个函数SendMessage
很好,很实用,强大,
呵呵,向你学习,楼主
目前VLISP函数我还是不太会,但学习深了,懂的也多了,加上算子,应该有大大的用处吧,
楼主,你要多整些这些高级应用 的函数写些实例给大家用下,这东西你钻的深
aroom
发表于 2012-8-15 20:42:37
本帖最后由 aroom 于 2012-8-15 20:46 编辑
TeaScript 窗体设计器
LIFEI18
发表于 2012-8-18 10:02:03
这个是很不错,就是教程资料太少了
cheng5276
发表于 2012-8-23 20:42:15
本帖最后由 cheng5276 于 2012-8-23 20:43 编辑
功能虽强,但对CAD的支持实在太麻烦,不适合于初学者,特别是学生(免费版无法编译),只能用LOAD方式加载LSP源文件的方式去调用。
对于只熟悉LISP的人用来写简单EXE程序倒是一个不错的选择
页:
1
2
3
4
5
6
7
[8]
9
10
11