明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: 明经快报

[LISP群(1)] 2013-04-30 明经 AutoLISP 编程(102918348) 群聊记录:告诉下要怎么搞

 关闭 [复制链接]
 楼主| 发表于 2013-4-30 22:15:32 | 显示全部楼层
[仑通]仑通 22:15:32
j)))
 (if  (= sx 4) (setq t_l (+ l_t (* 4 th) th_c (* 3 th_j)))
 (setq pt_p (polar pt2 ang_l t_l)
 (command "line" pt_s pt_p "")
 (princ)
);end(defun dxf (n data) (cdr (assoc n data))) 
(defun endxf (dxf en) (cdr (assoc dxf (entget en))))

(defun dist (ent en / );判断起始点
 (setq pt_t (dxf 10 ent) 
       pt1 (dxf 10 en) 
       pt2 (dxf 11 en)
  )
  (setq dis_1 (distance pt_t pt1)
      dis_2  (distance pt_t pt2)
   )
 (if (> dis_1 dis_2) 
    (setq pt_s pt1 ) (setq pt_s pt2)
  )
 (princ)
);end

(defun wr_l (pt_s / );根据字高写线
 (setq l_t 1000 
       th  450 
       th_j (+ th 150)
       th_c 150
 ) 
(setq sx (sslenght lst))
;计算线的长度
 (if  (= sx 1) (setq t_l (+ l_t (* 1 th) th_c (* 0 th_j)))
 (if  (= sx 2) (setq t_l (+ l_t (* 2 th) th_c (* 1 th_j)))
 (if  (= sx 3) (setq t_l (+ l_t (* 3 th) th_c (* 2 th_
(defun txp (pt_s / );得到字符插入点
(setq pd_t 200)
   (setq pt1 (polar pt_s ang_l (+ 900 (* 0 th))))
   (setq pt2 (polar pt_s ang_l (+ 900 (* 1 th))))
   (setq pt3 (polar pt_s ang_l (+ 900 (* 2 th))))
   (setq pt4 (polar pt_s ang_l (+ 900 (* 3 th))))
(setq ptx (polar pt_t l_t))
(setq pt_1 (pllar pt1 ang_t t_l))
(setq pt_2 (pllar pt2 ang_t t_l))
(setq pt_3 (pllar pt3 ang_t t_l))
(setq pt_4 (pllar pt4 ang_t t_l))
(princ)
)
 楼主| 发表于 2013-4-30 22:30:52 | 显示全部楼层
[仑通]仑通 22:30:52
谁帮凑一下啊 估计我要弄出来要一个月
最下面的那个代码
[仑通]仑通 22:35:37
求完善
[VBALISPER]恐龙 22:36:30
哇.500W
[仑通]仑通 22:41:10
菜鸟码 
[蔡__洛]不快乐 22:43:58
那个 对话框嵌套选择的法子终于搞出来了
[alwtyp] 22:44:30
分享一下
[蔡__洛]不快乐 22:45:12
代码太繁琐 思路很简单
[alwtyp] 22:45:31
思路说一下
[蔡__洛]不快乐 22:46:41
我不知道周老师方法 我自己想的 的确要用while才能实现。就是 在按钮消息里面 (done_dialog 11)
[mitenickevin]kevin 22:47:02
(1 5)  (7 9).......

多个列表用什么函数组到一个表中啊
[蔡__洛]不快乐 22:47:08
然后有(start_dialog) 返回11
[alwtyp] 22:47:36
new_dialog放在哪?
[蔡__洛]不快乐 22:47:50
传到外面由while 判断 返回值>10 则重新启动 对话框
也就是玩的 伪消失
[alwtyp] 22:48:42
为什么是10,还不是1?
[蔡__洛]不快乐 22:50:33
0 1 都是系统默认的返回值 不能随便 串改嘛  如果让他返回10以上就表示 需要在处理玩动作后继续打开对话框 如果在10以下的返回值 表示对话框正常结束 并跳出while
[蔡__洛]不快乐 22:53:30
关键在于让对话框的驱动函数 带有返回值 并传递到外部 做判断,根据判断结果执行相应动作
[蔡__洛]不快乐 22:59:39
(setq m_resualt(dcl-driver))
(while (m_resualt >10)
    (do your thing)
    (setq m_resualt(dcl-driver))
)
简单来说
就这样 哈哈
[仑通]仑通 23:01:15
选择妹的结果
[ZZXXQQ] 23:01:20
...
(setq re 11)
(while (> re 10)
 (if (new_dialog "dialogname" dcl_id) (progn
  ;...
  (action_tile "pick" "(done_dialog 11)")
  (action_tile "accept" "(readata) (done_dialog 1)")
  (aciton_tile "cancel" "(done_dialog 0)")
  (setq re (start_dialog))
 )
  (princ " 无法显示对话框!")
 )
 (if (= re 11) (progn
  (setq pt (getpoint " 选择点 :"))
  ...
 ))
)
(unload_dialog dcl_id)
...
[仑通]仑通 23:01:22
(setq m_resualt
 楼主| 发表于 2013-4-30 23:11:34 | 显示全部楼层
[weiqi]weiqi 23:11:34
[qqimg]oldimg/{7305805D-16C8-4884-B183-0916DCF35852}.jpg[/qqimg]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-6 03:51 , Processed in 0.167407 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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