明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: aroom

TeaScript 编程(二次开发AutoCAD、Lisp写windows应用程序)

    [复制链接]
 楼主| 发表于 2012-7-25 20:51 | 显示全部楼层
jack093 发表于 2012-7-25 17:43
太好了,能支持非模式对话框吗

支持非模式对话框
发表于 2012-7-27 09:11 | 显示全部楼层
aroom 发表于 2012-5-27 17:44
T eaScript 扩展 AutoCAD 二次开发
;; 建立 Application 对象,若 AutoCAD 已启动,则直接获取,若未启动, ...

给个完整程序,就算需要加载其它环境也可以啊,一句一句的有什么用
有空的话写个完整的程序,见http://bbs.mjtd.com/thread-93901-1-1.html
如果程序不能封装成VLX或LSP的话,单句是没用的,不能要求其它不知道CAD二次开发的用户也要用算子环境吧?
发表于 2012-7-27 09:14 | 显示全部楼层
liuyj 发表于 2012-6-3 10:30
深有同感

太有同感的,给句子用处不大,
发表于 2012-7-27 09:17 | 显示全部楼层
aroom 发表于 2012-7-17 18:04
用 TeaScript 做 DoubleCAD 应用的二次开发:

(setq tc (GetOrCreateObject "TurboCAD.Application"))
...

tv tv tg这此东西需要其它的来支持吧,没有环境(普通用户)估计也运行不了,光有开发环境不行吧
 楼主| 发表于 2012-7-30 09:06 | 显示全部楼层
本帖最后由 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)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2012-7-30 10:50 | 显示全部楼层
又学习到一个新东东!
发表于 2012-8-10 23:00 | 显示全部楼层
本帖最后由 邹锋 于 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函数我还是不太会,但学习深了,懂的也多了,加上算子,应该有大大的用处吧,

楼主,你要多整些这些高级应用 的函数写些实例给大家用下,这东西你钻的深
 楼主| 发表于 2012-8-15 20:42 | 显示全部楼层
本帖最后由 aroom 于 2012-8-15 20:46 编辑

TeaScript 窗体设计器



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2012-8-18 10:02 | 显示全部楼层
这个是很不错,就是教程资料太少了
发表于 2012-8-23 20:42 | 显示全部楼层
本帖最后由 cheng5276 于 2012-8-23 20:43 编辑

功能虽强,但对CAD的支持实在太麻烦,不适合于初学者,特别是学生(免费版无法编译),只能用LOAD方式加载LSP源文件的方式去调用。
对于只熟悉LISP的人用来写简单EXE程序倒是一个不错的选择
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-28 23:14 , Processed in 0.320579 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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