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
查看完整版本: TeaScript 编程(二次开发AutoCAD、Lisp写windows应用程序)