QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 4057|回复: 2
收起左侧

[求助] 求下列LISP程序加个DCL对话框的思路和方法

[复制链接]
发表于 2013-3-14 11:43:18 | 显示全部楼层 |阅读模式 来自: 中国安徽合肥

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

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

x
本帖最后由 woaishuijia 于 2013-3-14 13:24 编辑 5 _* n! k; h  V- ]8 z8 N" d" d

- n# i7 ?% P" R+ ^% N     ;输入数值调整作图十字光标轴线的不同角度
  1. (defun C:nap (/ ang); R' Z6 }. A, \
  2.   (setvar "cmdecho" 0)   ;关闭命令响应+ j& |2 O4 M5 _) e
  3.   (setvar "blipmode" 0); a7 B, [# g5 D) j
  4.   (setq ang (getreal "\n请输入角度:"))
    ; D9 t/ y; R0 V) F1 A; E
  5.   (if (= 0 ang)
    7 _. ^! r; F$ v5 p2 G4 y( `
  6.     (progn
    ( e5 l# i+ ]1 `  L% p! @& z+ Y
  7.       (setvar "snapang" 0)  ;系统变量snapang默认为0
    9 G' \2 i  Y% [* O- }
  8.       (princ "\n输入角度为系统默认十字光标轴线角度")# r8 t' S$ u: z. [9 H
  9.       (princ)% Y5 h. t( ?7 ]8 `9 N. D6 @
  10.     )
    $ Q5 |$ S3 s4 t% j& ]' C. M, a
  11.     (setvar "snapang" (* ang (/ pi 180)));将计算的值赋给系统变量
    . E+ f: A) d1 h# F8 O4 G, e
  12.   )% M/ y( [; r& D4 j/ q4 F) _# u2 t, S
  13.   (princ)
    - Z3 R: e! i, d! n+ G6 n( K, r% F
  14. )* p# X% x* _( P2 a. c
  15. (prompt "\n<命令 nap > 程序设计 作者 ") ;END. s3 q! }/ B* j/ h& U
复制代码
发表于 2014-5-9 15:45:03 | 显示全部楼层 来自: 中国台湾
感谢 yinchuan99001 分享程序!
 楼主| 发表于 2015-12-17 09:18:52 | 显示全部楼层 来自: 中国安徽合肥
本帖最后由 yinchuan99001 于 2015-12-17 09:51 编辑
9 P% R# L2 |1 l$ {; J" r
/ E" y* k* I4 m) A+ }% }% `/*对话框*/
8 B  P# l# L* D9 Y3 v, vshizi:dialog{
- z% I1 P# N4 A1 S4 V: \label="十字光标参数化设置";/ v& {* M; y: X9 A' i+ ]/ ~- d
:row{& m: z) E0 g4 d: v
:boxed_radio_column{
3 f3 v3 H" u" }+ {$ \9 R. zlabel="图像预览";
( f& a  h. Z( F" q) j* ^+ [:image_button{, B' \* W- \+ \' r* a) R
key="Kimage";
2 \; G/ y3 q. r+ \7 s8 mcolor=-2;: ^( Y2 b+ t7 \& W8 @4 i7 ]5 a
width=50;
) m1 X7 G1 Y5 ~2 p0 ~! Naspect_ratio=0.66;
' G. |9 P0 ^! q% u}}}
) h, s; k$ a5 [( {( [. Z" f$ h1 {:row{
, p1 M4 o; m- B! h4 O+ V+ D:edit_box{label="角度";key="ang" ;}
: o% c8 L/ p8 P$ I6 x" Z6 @3 h
8 v' k) p$ ]! i0 g, L  T}
" }) h1 O' J3 r5 t1 {spacer_1;
4 F7 v# [. O1 H1 Y- L* x$ u1 K' Fok_cancel;
0 c& [+ a1 I4 l9 s& }$ q}4 Q: J! ~- T% z% I( ^/ z3 G

5 H  F9 b% S, J0 {$ N  t; n! ]/*说明此程序仅供学习之用,将附页源程序拷贝到CAD安装目录下的SUPPORT文件内,加载后命令行输入szg。*/
8 }) }8 y! N4 u6 `2 b* Z. K4 S1 ]# b(defun C:szg ()" q( W' U9 n: x6 Q  l7 t
  (setvar "cmdecho" 0); V! p% b9 s! [- H3 B
  (dcl_tuxiang)
  c" |/ ^: I! T0 _% O  (princ)
% W$ ~% v7 D0 b) S. E)
  S7 X& _* ^4 `; a  G" Y(prompt "\n<命令szg> 程序设计 作者 yinchuan99001 2015-12-15");END
; ?3 n( G* k6 N! e0 M;调用对话框子程序
: I7 u& t0 Z9 L) g! d$ t/ W(defun dcl_tuxiang ()
$ j. v1 N! Q% _  (setq dcl_id (load_dialog "十字光标.DCL"))
; n( g' L! X% ^  (new_dialog "shizi" dcl_id)- H& ]- Q1 \0 |3 F
  (show_sld "Kimage" "十字");图像位置在AutoCAD安装目录support
+ G) i! y9 f4 T, @, L  (set_tile "ang" "0")
" N) H7 r! g; O8 C  (action_tile "Kimage" "(tu_xiang)")
; \$ F8 p; Y! V2 t  C: C1 O  (action_tile "accept" "(ok_ang)(done_dialog 1)")
% }* x1 q# }6 h) N  d: n, c  (setq dd (start_dialog))
, H4 h2 U1 @* c/ Q8 J2 G5 ?. e  (if (= dd 1). G/ `. _2 @. Z
   (nap)        ; 调用子程序(nap). h$ L, o/ }6 |7 ]9 X0 S, }
  )
" Q# t* J, e' V)
3 ]$ G& C( a7 c. |;图像显示: G/ K* M" X0 `9 Y7 L% j
(defun tu_xiang        ()
  a* ~+ m  A3 f6 \- V  (show_sld "Kimage" "十字");图像位置在AutoCAD安装目录support. X2 C; n9 {: R8 F' ~5 F
                                       
/ J" t3 N3 @/ i$ s* E)
" d5 W0 |) {, ?* I8 g1 K;子程序ok_ang
1 O" C8 \7 \* n2 D. t$ k(defun ok_ang ()
3 y" k9 T  o" K$ u: F& j  (setq ang (atof (get_tile "ang")))
5 U/ o: I* L  B; E
3 S) i0 ~5 E6 @$ Z" Z)* e, M4 n8 R. p( o$ l: [8 E  Y
2 b9 n- ?! I% n0 y
;两个自变量图像处理" v6 F  D: }. Q0 [
(defun show_sld        (key sld)
& S/ f3 a. x8 U& m6 n- A7 P9 J  (setq x (dimx_tile key))
6 W! e; q- F4 x% }9 w  W  (setq y (dimy_tile key))& s  v9 g# Y" `/ A
  (start_image key)
7 W6 a' v' Y, G5 g3 M  (fill_image 0 0 x y -2)
& C/ _- ]6 M' y5 C7 A7 @  (slide_image 0 0 x y sld)2 F! r4 T+ F' U/ s9 }' k
  (end_image)
# N# Z. Q/ r1 K/ l4 S2 L)* k/ t5 [1 }& |. T
;子程序nap2 S! b& J. p3 c  _
(defun nap ()& z. r( {' y. _8 U) y- C
  (setvar "cmdecho" 0)
5 a6 Y( I+ s. Y& i7 Q  (setvar "blipmode" 0)$ E. m1 c% [3 x: s
  (if (= 0 ang)
2 o, A0 q/ e: z& R! L1 c0 w4 P* Y    (progn6 L9 c2 K0 k( e9 U% j4 d
      (setvar "snapang" 0)
2 ]* i2 l$ z. D* P- I- N    )* q$ T9 B% s6 C, G; B+ I, C/ D
    (setvar "snapang" (* pi (/ ang 180)))0 h* J" \5 r1 e  T. O- }3 I
  )+ I4 h/ J7 s4 Q0 U
)
/ y9 }  ?1 G' v8 g! R! w3 i, d$ n, A+ P+ H& l- M/ ^
5 ~: d" B8 M3 b: T4 h7 i, |
$ M( b3 X3 O6 J& H1 c
解铃还须系铃人,上述lisp仅供学习LISP语言的同仁们参考,有不足或不对的地方请大家指正。 (若有引用,请注明引用地址和作者)+ K& n& L+ Y7 l2 i8 c

4 a* ?* A/ n: Z& [. m, \. ]- o4 y- Q$ B  c$ h. Z# @

' }5 _; s! D3 d
: W5 V- Y4 D( Y5 |3 q: [- [/ K
十字.JPG

十字光标lisp程序.rar

1.19 KB, 下载次数: 9

发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

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