|
|
Upload
| >> Mô tả tóm tắt nội dung file: |
Bộ AutoLISP chiến đấu Do kts. Trần Ngọc Thắng TỰ BIÊN SOẠN + SƯU TẦM dùng được cho AutoCAD Version Hight : Bổn CỐC CHỦ TUYỆT TÌNH CỐC : Ngưỡng mộ Long Cô Nương phái Cổ MỘ : Chờ Chết Sắp Sẵn Quan Tài Trong Mộ ĐÓ _-_-_ ^ _-_-_ Dại Gì Mà Chuyển Nhỡ Mai Này Tôi Chết Còn Có Cái Mà Dùng . . . Năm Nay Tôi Gặp Tuổi Hạn 49 tuổi . Các Cụ Nói 49 chưa qua 53 đã tới . . . Bó Tay Các Bác Luôn . . . Mà Xem Sách Các Thầy PHÁN TÔI RẰNG tôi thọ chỉ có 68 tuổi là tôi chết . . . còn những 19 năm nữa tôi mới đến số tuổi chết . . . Cũng Lâu Đấy Chứ các Bác ./. Chuyện Mã Lương vẽ giỏi đẹp . . . Được ông Bụt hay ông Tiên tặng cho cây Bút Thần : ông Dặn Mã Lương hãy vẽ Giúp Người Nghèo . . . LỆNH VẼ KHUNG TÊN ~ Tiêu Diệt Lệnh : Lệnh Xé Xác thằng Bé Ra Làm 100 Mảnh : Uống Máu - Ăn Gan : Mới Hả Giận |
| >> Tác giả: |
kiến trúc sư . Trần Ngọc Thắng [ đổi đường dẫn đến thư mục chứa LISP ngắn đi nếu dài quá không đọc được ] |
| >> Loại file: |
word Ảnh (jpg, png..) Khác (Nếu file nén thì hãy cho biết loại file gốc trước khi được nén.) |
| >> Link Files trên web khác (nếu có): |
https://www.cadviet.com/forum/topic |
- ********************************************************************************
! m. h* H: z" d5 A3 @4 ] - * ACADLISP FOR AUTOCAD R.14 -> AUTOCAD R.2012 *
$ x, L1 u( M) j0 M% p3 K# N/ q6 o - * Tran Ngoc Thang DHXD-HaNoi41 from years 1999 -> 2015 *7 ?, _3 w. \ J9 {) l0 ?
- * Suu tam & Soan *
8 V( C& I6 T2 Q - ********************************************************************************
2 A5 r {! _, @3 K
- P: Q7 ]6 I% f% p8 B" r5 p- ; Next available MSG number is 104
5 j: B- Z& ?& o/ Y - ; MODULE_ID ACAD2000doc_LSP_( e9 e2 o# d1 t6 w6 r
- ;;; ACAD2000DOC.LSP Version 1.0 for AutoCAD 2000$ u3 k/ _$ n8 l# d
- ;;;
$ b' h( `3 [1 H: i$ H - ;;; Copyright (C) 1994 - 1999 by Autodesk, Inc., }- G6 v7 A2 q: U6 z8 d( v1 m7 J1 ^
- ;;;3 n. ^0 S. F, {' w5 e
- ;;; Permission to use, copy, modify, and distribute this software; P2 X T4 Z2 l
- ;;; for any purpose and without fee is hereby granted, provided
% S8 h6 v, U* B5 V* U; b( N* o - ;;; that the above copyright notice appears in all copies and0 n# o" ~# q* l. ^& T
- ;;; that both that copyright notice and the limited warranty and
8 B% ~3 w. p, Z* C1 K - ;;; restricted rights notice below appear in all supporting2 L* Q; E* [3 n+ R* _6 N
- ;;; documentation. x9 M+ v3 |/ I, O1 E3 f
- ;;;
: n* K; x8 ]' z! v) V+ g- x - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
, Q& h8 b2 M) B% `" t - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF" o- m5 l, b" }1 _$ X5 O
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.( }, n0 ^! c) P# Q& l7 e$ G, ?2 ^0 {- `
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
* D# B1 D: Z# F& ]2 ~# H - ;;; UNINTERRUPTED OR ERROR FREE.. e7 W9 y: u0 O
- ;;;
$ q$ S2 `" t/ p% s - ;;; Use, duplication, or disclosure by the U.S. Government is subject to @7 _; R# W- {6 G
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer6 \4 A+ b5 P R: N/ o
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
8 D w q/ n: c6 V0 J& Z- q - ;;; (Rights in Technical Data and Computer Software), as applicable.
5 i: t9 P" z- X! K' U - ;;;
' b [. t/ ^8 N# ?' J5 i& m) X - ;;;.
2 T7 P+ H1 W5 G5 {- i( l9 J4 ] - ;;;6 G7 y" {. S! S4 L, A' B
- ;;; Note:
- } J* |% m" p - ;;; This file is loaded automatically by AutoCAD every time
% _/ e+ k/ G: T* J M0 s* ^; D - ;;; a drawing is opened. It establishes an autoloader and$ L: o0 a) C# o4 |" \# ?3 v' J* I
- ;;; other utility functions.& d6 F" M- U. S1 _6 ?
- ;;;3 Q5 ]; j2 S. O1 N- ?
- ;;; Globalization Note:
2 m [) q* _5 P' |% e# b% i8 t( m - ;;; We do not support autoloading applications by the native
' K; }/ |; |$ p3 e/ m - ;;; language command call (e.g. with the leading underscore% V( o2 o- n6 w7 r
- ;;; mechanism.)
' [* x- ]; g J - & e5 l3 E+ Z7 F$ ] n8 {
' Y+ s6 A4 z0 S9 k# O- ;;;===== Raster Image Support for Clipboard Paste Special =====
$ M* i! e3 @& O- N( u7 c - ;;
9 a# ^- d6 Q* r7 z - ;; IMAGEFILE
7 P7 B; A" K# b( `2 @ - ;;
5 ~2 x, B% _. p - ;; Allow the IMAGE command to accept an image file name without
6 R/ B2 u5 Y& J$ ?4 `3 q - ;; presenting the file dialog, even if filedia is on.* J( K+ A3 ~. C
- ;; Example: (imagefile "c:/images/house.bmp")% S8 E, t. `- H+ h( i. e' n
- ;;4 Z8 Y% @* G+ ?# a: K( V
- (defun imagefile (filename / filedia-save cmdecho-save)
5 q4 P# ?7 S% ~( s, @. P$ L7 b - (setq filedia-save (getvar "FILEDIA"))4 V( n" H/ W* P4 q( R
- (setq cmdecho-save (getvar "CMDECHO"))7 J& e8 h/ w, q" ]- r0 U1 C ~
- (setvar "FILEDIA" 0). i, U$ c8 v; i& [# M1 K1 b
- (setvar "CMDECHO" 0)4 t! i! {" P: c. s' t ]4 i
- (command "_.-image" "_attach" filename)
4 c. F; S7 f% t - (setvar "FILEDIA" filedia-save)
5 B/ S, B: A* Y - (setvar "CMDECHO" cmdecho-save)5 R7 i! Q4 \( a+ P8 L4 l
- (princ)) z7 p+ h2 B, v& i5 I
- )$ W/ C1 [6 c& i# o
- 4 d, T! e0 l4 B/ R& b, {$ A( a
- (defun c:zx () (command "zoom" ".5x"))
# ^, w" \7 F# r2 e1 C/ { - (defun c:zz () (command "zoom" "p"))/ a7 I" V3 g, S- o
- (defun c:za () (command "zoom" "a"))4 ~: f, L" p1 X
- (defun c:zd () (command "zoom" "d")): W3 N- H6 t/ S2 V2 ]
- (defun c:ze () (command "zoom" "e"))& g3 _3 `4 H1 q$ D; s% c
- (defun c:zr () (command "zoom" "" ""))
0 \7 Q6 m1 p6 M) k) a2 J7 k8 {, d - (defun c:vv () (command "ucs" "v"))
8 F% D% q- q3 u S$ C, f - (defun c:co () (ssget) (command "copy" "p" "" "m"))
- h" o& ?2 i0 O y4 n - (defun c:c () (command "circle"))
. _% h7 D8 A; n/ S* g$ B( s - (defun c:rt () (command "rotate")), @8 [# G5 s5 e9 t) J5 P
- (defun c:3q () (ssget) (command "_rotate3d" "ANGDIR" "value" pause (princ)))
: J- L7 b4 a' G, O% g" R - (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))' R+ N' G& R" T Q* J
- (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))' F# g% m0 }$ g9 [! T, {
- (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))) N+ s. C0 M) M
- (defun c:r5 () (ssget) (command "rotate" "p" "" pause "5"))
8 y5 r! l5 v0 k3 G: _ - (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))
, I; e) p: l; R+ P+ p7 ~2 h - (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60")); D) i. p; {! ]/ B. t
- (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))( n" G6 y. h2 h. M6 k1 q; w
- (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))
1 O) M4 @7 a8 T) q" M - (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))" p c, \$ |5 o1 A
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))
6 m! ]- j1 G. f - (defun c:md () (ssget) (command "mirror" "p" "" pause pause "y"))/ C6 P: `% Y3 o$ X
- (defun c:fd () (command "find" "p" "" )(princ))(princ)- r9 K. E6 r; Z- M: O( J+ ^
- ! o% O7 u! L" T
- (defun c:romantdim () (command "-style" "ROMANT-DIM" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)
4 X7 n' h( j7 ~% V" ~" _ - (defun c:romantext () (command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)5 ]4 C- v) M+ d- l, {9 I
- (defun c:vnhelvthuong () (command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1""0""n""n""n"))(princ)
! d; g) r# k# b& g; u - (defun c:vnhelvhoa () (command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500""1""0""n""n""n"))(princ)
5 p1 e/ _- |7 v+ s$ _3 e8 f; `1 I - (defun c:truc () (command "-style" "TRUC" "impact" "0""1""0""n""n""n")); B+ g0 p* u8 _5 k
- (defun c:chu () (command "-style" "VERDANA" "verdana" "200""1""0""n""n"))
1 W* N. c0 x- J: q - (defun c:cot () (command "-style" "COTES" "verdana" """1""0""n""n"))
" y( @4 u, X' T1 a - " r4 F7 }: f1 r- W, r, A
- (defun c:an () (command "-style" ".AVANT" ".vnavant" "200""1""0""n""n"))
3 K* f( J% ]( x" U$ a - (defun c:ah () (command "-style" ".AVANTH" ".vnavanth" "200""1""0""n""n"))
) V( a- Y+ r5 a# q- y - (defun c:ha () (command "-style" ".ARIALH" ".vnarialh" "200""1""0""n""n"))
2 F# `3 G3 i3 n4 y. c' e* ? - (defun c:na () (command "-style" ".ARIALNARROWH" ".vnarial narrowh""1200""1""0""n""n"))
( E* R6 d- {3 B0 R - (defun c:vn () (command "-style" ".VNTIME" ".vntime" "200""1""0""n""n"))
$ _5 i9 o$ ` c+ P" l - (defun c:vh () (command "-style" ".VNTIMEH" ".vntimeh" "200""1""0""n""n"))
, {! Q& d. {! E* |3 f# }
: P( E8 f1 H% L2 j- (defun c:ps () (command "PSOUT" "CorelDraw-import-Photoshop" "W"))(princ);export the current view of a drawing as an EPS file/ i: \# g+ E0 L! G% p$ ~
( r% Y2 B4 \1 r. i: Z2 `" D- ;free lisp by cadviet,cd2k445 K M! H6 ^, U8 f' I2 J* Q0 s$ i
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830# L' t# j( x9 M0 U$ ~
- (defun c:FTEXT (/ ent tstyle )
1 Q: A$ }0 y0 B- N r - (command "undo" "be")8 p; o$ f7 w( }% y C
- (setq ent (entsel "\n Pick text :"))
8 h0 k# }) m7 H- ~* Z! V - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
2 } m2 S; ]# n3 m2 F' g - (command "STYLE" TSTYLE "romant.shx,vnh.shx" "0" "1" "0" "N" "N" "n")1 e6 U) S: c/ O; R, ^- |9 r; X. j
- (setvar "TEXTSTYLE" Tstyle)3 `: ^1 l6 f5 J& q1 p8 W! I$ u. m( l
- (command "undo" "end")
7 `6 M, E+ Z; V+ V* i - )/ Y/ ^) ]$ Q7 }' O
- ;Cam on cadviet nhieu 27-11-2023 04h15p36s (thanks cadviet), y% Y, _9 s p, V/ U
- 4 A2 Q' t. K/ A c6 Y
- ;free lisp by cadviet,cd2k44
7 Z2 ]' C& p U; X4 T - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830& L) b$ k& j/ p! \
- (defun c:Fvnh (/ ent tstyle )
, {* v( S, X# y; e& K- t- ` - (command "undo" "be")) w+ c) e% z% ?. u
- (setq ent (entsel "\n Pick text :")): e' J; v/ N: X) s6 Y
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
) j9 P; g3 d* l3 P - (command "STYLE" TSTYLE "vnhelvh.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
; ^4 o) B3 s( U* t2 _; {4 ? - (setvar "TEXTSTYLE" Tstyle)
R6 A: O( a6 ^. {0 K# K - (command "undo" "end")5 |- T1 b$ O% c! }9 {8 l7 q T; t& m
- )7 d9 c9 D8 C( u- p
- * w" N5 C' N: U# A( w
- ;free lisp by cadviet,cd2k44
" P+ X& v% j8 R. m' ^7 k E1 k - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
. ~3 J+ V" T1 C - (defun c:Chbg (/ ent tstyle )- O7 _! a, |& P& ?0 ^4 p5 |
- (command "undo" "be")5 Z: @1 I$ }: r8 @
- (setq ent (entsel "\n Pick text :"))/ ?( t; o- p. z3 [
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
# K# S; z, I, L3 a7 Y2 t - (command "STYLE" TSTYLE "chhbg.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
/ I( J1 |4 a+ F# M5 B - (setvar "TEXTSTYLE" Tstyle)
. S. A" E9 G% d. w+ w - (command "undo" "end")
3 x' Y( ~7 S; E, s - )- d8 A9 b. _* b6 S
# m9 X1 m$ u& i" g, j- ;free lisp by cadviet,cd2k44
, W' q _8 N, K. R9 d - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830/ _: a( ?1 ]- m" Y6 l7 r& v4 |
- (defun c:Chsm (/ ent tstyle )
+ D2 A& _( O& |1 E# k - (command "undo" "be")
# D) A4 l, X& Y. n7 X - (setq ent (entsel "\n Pick text :"))
8 b, P8 y/ K5 @3 Q - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
: }! p, G3 W2 e - (command "STYLE" TSTYLE "chhsml.shx,vnh.shx" "0" "1" "0" "N" "N" "n")! D9 K* e8 d: V# e
- (setvar "TEXTSTYLE" Tstyle)
" G9 J: {5 _, Y+ D; V - (command "undo" "end")
; }8 V+ G+ e* [+ c6 j0 \ - )
" J) }/ O$ g3 u5 i - ' A4 U, w0 b1 t
- ;free lisp by cadviet,cd2k445 S P Q" B% N h
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830! m% ~3 |' j0 Q/ \2 C( |/ j
- (defun c:Fttf (/ ent tstyle ): B/ ?3 C) w. k& j$ D9 X
- (command "undo" "be")3 y) F/ v ^: b
- (setq ent (entsel "\n Pick text :"))
; {. v0 Q# W9 u. b) C- k+ F - (setq TSTYLE (cdr (assoc 7 (entget (car ent))))), _" _$ S0 {" m& u0 r7 l X# M
- (command "STYLE" TSTYLE "verdana.ttf" "0" "1" "0" "N" "N" "n")
/ u W: J9 [: @- n3 H - (setvar "TEXTSTYLE" Tstyle). ?5 J9 c' k: X# l, T1 M( I" @4 p
- (command "undo" "end")9 O [# w! _4 O) j3 w
- )2 O7 ]9 W) n! _2 n' J3 N
- # m# i6 o; @$ _8 ^: ?% [; V
- ;;; ============================================0 W5 p8 I; A7 ~" ]& D/ U
- ;;;
; E% w P& p( B' _ - ;;; LISP Creater Tao Duong Dan AUTOCAD2000
9 | L U" f: A9 d& A; M - ;;;
- L4 p W- k8 t t/ R, P/ E - ;;; ============================================7 v* c3 I" C% H( b! B$ Z1 R, Y% n
& M8 F$ H7 N- b+ G {# ~7 d- ;;; ============================================$ t+ S$ }7 B4 {& M
- ;;;. j3 W: D4 y3 k8 I; f
- ;;; CREATING FROM AUTOCAD2000
, w# R3 m4 E4 s. s* S/ G - ;;;
6 ]4 h! L; o" k8 u' J1 x6 d2 ?; u - ;;; ============================================$ Z) ~, f; m" O/ P9 Z8 W/ |2 z
- - P8 ~2 H+ P! c# D- z9 C
- (setvar "INSUNITS"4)% h' V! e: K- G5 [6 K q* D% X) ]
- (setvar "ANGBASE"0)/ \- |* ^) K' I9 k& @9 {; }, }
- (setvar "ANGDIR"0)4 H& \8 y9 P# W w( Y% P
- (setvar "AUNITS"0)
+ ?6 S4 J( E+ M. H9 ?' g - (setvar "AUPREC"8)
6 u$ c! p! e0 j+ _* x4 r; s - (setvar "LUNITS"2)
+ a2 C5 C- u0 k& c* H T: s - (setvar "LUPREC"8)
; j5 D& D, E0 ?) L3 D+ [0 \ w+ z I - (setvar "ACADLSPASDOC"1) & s- l# r. [: I4 n! y
- (setvar "pickbox"5)8 @, j) V7 r7 `& s& u
- (setvar "blipmode"0). R4 e2 M) `/ X
- (setvar "mirrtext"0)
) N, Y. K* `( p3 o+ h& }* e - (setvar "cursorsize"100)
5 @( S( j* V X/ o" b L - (setvar "ZOOMFACTOR"75)9 O8 U6 \ }, R& \: x1 E
- (setvar "LTSCALE" 10)& t* Z1 m, g' O2 {& ^
- (setvar "lwunits"1)$ f3 P( Q M( W) L! f
- (setvar "DIMBLK" "Closed")9 b! ~3 a0 S- E8 N9 h7 l9 o. M- X9 m
- (setvar "DIMGAP"0.0693), X: C Q# \- j, D' r+ W" O/ R: x5 d
- (setvar "DIMASZ"0.20)
# v6 m$ J' }2 \' a1 H - (setvar "DIMCEN"0.2)
+ J2 {; Z- h: h1 [4 M3 v" T - (setvar "DIMDLI"0.1)
9 R5 c, Q8 n% D& } - (setvar "DIMEXE"0.0693)3 j1 \* n- I2 J2 a/ ? c! P
- (setvar "DIMEXO"0.25)
" C: l7 W" Y* x0 g ~ - (setvar "DIMDEC"0)
" k; L" j9 ~' V+ a7 h3 F - (setvar "DIMTIX" 1)
- X: v" E( T" p- N) S - (setvar "DIMTXT" 0.099)
0 M# v, M# U0 l$ ~2 E8 } - (setvar "DIMCLRT" 7), P9 ^5 Z+ z2 P
- (setvar "DIMTVP" 1)
, d/ [0 [: m& p5 U: H6 P - (setvar "DIMJUST" 0)
* M$ V/ ?9 I9 c" T3 { - (setvar "DIMTIH" 0)
, c$ A/ @0 k! P$ s y - (setvar "DIMTOFL" 1)
: s+ W# P( Y2 z. e5 Z - (setvar "DIMSCALE" 1111.1111)" r. P. _% I/ K% {! i
9 F. \' Q3 i- }( y4 i
% | e9 G4 P% _3 ]$ \8 G/ X- , N- u8 O- N) ?' C
- (defun c:zp () (command "'.zoom" "p"))
1 P" {% ^5 j" v2 W; d, I - (defun c:zz () (command "'.zoom" "p"))1 k: u9 \' H' y& W
- (defun c:ze () (command "'.zoom" "e"))
0 s* E2 W5 p) P3 a$ N! C - (defun c:za () (command "'.zoom" "a"))- R/ z' ~0 ^3 E. a
- (defun c:zd () (command "'.zoom" "d"))% }# _$ J8 x4 x V r3 m
- (DEFUN C:ZZZ () (COMMAND "ZOOM" ".25X"))! X$ q. w1 f6 X: x3 H
- (DEFUN C:ZX () (COMMAND "ZOOM" "2X"))
0 K/ G$ S+ W' G$ {4 T* g8 A. ?# H - (defun c:de () (command "ddedit")(princ))
# W; b3 |. K9 t7 S# S0 X - (defun c:dda () (command "Dimaligned"))! D. A. I) R4 @+ [$ y: p! I" z5 k
- (defun c:ddb () (command "Dimabaseline"))( s9 x# T; S" ~
- (defun c:ddc () (command "Dimcontinue"))8 I! B2 ]" ~6 x! F& F; `; e7 m" V
- (defun c:dde () (command "Dimtedit"))
* @( M" s K7 i A6 ~ - (defun c:ddf () (command "Ddattdef"))
! l/ O/ v7 ]+ j$ T& u) W. M2 u - (defun c:ddi () (command "Dimdiameter")). q7 m6 n2 C0 ] C8 l
- (defun c:ddl () (command "Dimlinear"))7 h8 z" g; O! i# b+ ~
- (defun c:ddn () (command "Dimangular"))$ O6 i6 ?. G( D+ V4 f! S( b0 q
- (defun c:ddo () (command "Dimordinate"))8 q& T: S; W3 |+ |4 d- n6 D. c, F
- (defun c:ddr () (command "Dimradius"))7 {, j4 f9 V+ V. W5 o( H0 o
- (defun c:dds () (command "Dimstyle"))! l+ o4 P3 u7 S: e/ u
# j `" z" e' Z1 q8 D- (defun c:DU () (command "dim1" "up" "select" "exit" pause ))(princ)
( S# P6 \) n/ t1 I. l - (defun c:DH () (command "Dim1" "home" "select" "exit" pause))(princ)' V* M( l' g. T* k7 F2 {
- (defun c:UU () (command "dim1""update""all"))
3 W* n! J- J1 K1 o( G6 W$ H - (defun c:ded() (command "dim1""tedit"))& c# b7 K i, ~" r8 F" I: L$ j! j( P
- (defun c:da () (command "dim1""ali"))( l& U% ?* c! i+ a: P
- (defun c:dll() (command "dim1""l"))
* F* Y* W, T, F/ W+ ?1 t - (defun c:dan() (command "dim1""an"))
! j9 L6 T0 \7 ]: i$ E. K - (defun c:d1 () (command "dim1""ra"))" C- G9 H1 G1 `
- (defun c:n () (command "dim1""new"))
( B3 i R1 O2 |1 ~5 h - - ^8 E6 a8 R% \' n* k+ B
- (DEFUN C:PE () (COMMAND "PEDIT"))1 C( c* x9 ]/ h+ n# w
- (DEFUN C:PL () (COMMAND "PLINE"))
9 F& T) H6 N8 Q4 c9 v$ T( N - (defun c:dd () (command "dist")(princ))% ]: v+ S* v7 r: k, X
- (defun c:w () (command "pedit" pause "w" "au")(princ)): ^8 S5 r8 \) z/ Y/ y. B
- (defun c:pg () (command "polygon" "polygon"))- A! @ [ y7 a2 @# H4 b; [, @
- (defun c:el () (command "ellipse"))( U3 \4 J( x4 u/ P4 K
- (defun c:xe () (command "explode"))0 X6 H* E3 i# ~" m$ {
- (defun c:eex () (command "extrude"))
" }! }& x5 y& F+ u9 e0 F0 s - (defun c:xg () (command "xline""a"))% n L6 C4 w; W* ~2 ]7 i. N. [8 {
- (defun c:xh () (command "xline""h"))
- w/ L2 B5 ?1 z4 i! C$ ?+ h H' e - (defun c:xv () (command "xline""v"))
9 H% q/ }& l. C - ! d) K. r3 D0 h& U l
- (defun c:oc () (command "osnap""cen"))
7 Q" B7 t1 Y- m" o0 v { - (defun c:od () (command "osnap""nod"))
, i& H, l+ r7 E# N2 ^ - (defun c:oe () (command "osnap""end")); W8 T& ^$ T& R2 Y2 N, g. U
- (defun c:oi () (command "osnap""int"))
& `( T6 d& _! p- h1 k% ? - (defun c:or () (command "osnap""per")). x# ~& }0 k6 U; Y
- (defun c:on () (command "osnap""none"))4 `/ Z3 y/ M q4 ^9 L; m; l& i
- (defun c:oq () (command "osnap""qua")): [/ f/ [9 P# V4 }6 B) a/ {$ y$ i/ R
- (defun c:om () (command "osnap""mid"))5 m! \, f/ F, {3 F. f
- (defun c:ot () (command "osnap""tan"))( g8 p9 Q! ?0 ?2 `5 w
- (defun c:oin () (command "osnap""ins"))
$ }8 P. P2 l1 X2 v4 |. l - (defun c:oa () (command "osnap""nea"))
4 w% j3 c. h0 h9 q: v2 T! h - (defun c:ol () (command "osnap" "End,Mid,Cen,Node,Nea,Int,Perp,Qua")(princ))
) b7 w W* T7 b - ;(defun c:du () (command "dim1" "up" "s" "pick" "other"))1 K S& ?5 Q3 d7 O& ^8 d) u
- ;(defun c:nn () (command "new" "y" ))
3 e! c# j9 z0 q- L" a, y - ) H. q7 \# `/ g# ?) i
- (defun c:/ () (command "limits"))3 T9 A- Z- ~& x1 S/ e
- (defun c:`1 () (command "region"))* e j& d+ H& z& U
- (defun c:`2 () (command "subtract"))
7 t5 i3 M0 B1 X( s - (defun c:`3 () (command "union"))7 m# g2 @2 |" E6 c
- (defun c:`4 () (command "intersect"))
$ J2 U% K6 A( }: P4 i' r: Z - (defun c:`c () (command "cal"))
5 _! d2 K! k! F6 f - (defun c:`g () (command "Polygon"))4 V- e5 i! \" R1 e; z8 o
8 x9 A7 J) f h3 Y9 l- (defun c:lmi() (command "LIMMAX" pause "" "zoom" "all" )(princ))! a6 ^# P/ b( @. ?) L
- (defun c:drt () (command "DRAWORDERCTL" pause "Integer" "" "" )(princ))! y/ s p% k( f3 b6 d" d1 \, @5 ?
- (defun c:ip () (ssget) (command "print,_plot" ))(princ)
7 @4 y! U2 d' D' }2 ?6 }
0 s+ Q6 R! p1 [$ y, l) T- (defun c:ddm () (command "ddlmodes" pause))+ |% l2 p+ D. Y, h; v- g
9 H( Z, o# B2 A+ H" ^6 u- (defun c:sha () (command "shade" pause)); m, _9 c8 o" M9 V% U ?' v1 Y
) l( \% m |2 ]* U1 ]% i" y1 {8 u- (defun c:sr1 () (command "surftab1" "p" "" pause))1 T3 F9 x" N! ]: d* s
- (defun c:sr2 () (command "surftab2" "p" "" pause))8 [+ H: j2 k; C( ?
- : P* V0 E4 N* }* P* u
- (defun c:ad () (command "audit""y"))
5 F4 D8 m* J- n* r# a: ~ _ - (defun c:q () (command "quit")) Z1 v, {' u% Q$ x
" d4 p7 a% P$ x" W- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))" k& y7 p: _4 w7 }
- (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))2 m R- H8 O( P& D! p1 G5 o
- (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))
+ h2 B0 o6 ~* o. ]9 z+ q9 K! E - (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))
5 F/ ]) a3 |- R. B$ D - (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))2 E( M: n4 B2 T* q n3 T3 \, j7 {
- (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
9 A0 s% g2 O% p' P/ O; f$ b - (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))% f! [5 G5 G$ Z- N0 h
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))
& z6 a: N' q' f# q - (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))
# F( ^2 c9 I& k4 d - / p; D* k( p3 h |2 A: K
- (defun c:u3 () (command "ucs""3"))
- J# e0 F2 y7 P( K - (defun c:ue () (command "ucs""o""end"))+ E( z- E* p+ T& v. j1 O. u
- (defun c:ui () (command "ucs""o""int"))
1 D+ L( ?6 ]( k# G - (defun c:um () (command "ucs""o""mid"))
# @7 d) @- J {- ^% J, U" K8 Q - (defun c:uc () (command "ucs""o""cen"))
, O% C) m3 o7 c/ N - (defun c:uq () (command "ucs""o""qua"))
/ i( L! J/ Y$ ^! \" C: l/ f - (defun c:3s () (command "ucs""3"))
7 m; Q+ u. W5 l - (defun c:sx () (command "ucs""s"))
: ~ h; n( N. |$ x' V - (defun c:sf () (command "ucs""o"))9 i$ Q) J. c% S
- (defun c:sz () (command "ucs""p"))
. A. A3 A& I' ^- |" ~5 Q3 x9 L; T - (defun c:sr () (command "ucs""r"))1 J$ l- G* \% ?. Z& \
- (defun c:sw () (command "ucs""w"))- ?, b6 u' n/ z# T# f% r
- (defun c:fv () (command "ucs""v"))
+ l. _6 `; k3 \6 g9 Z7 \ - (defun c:ux () (command "ucs""x"))$ P! k0 c$ _( _! w
- (defun c:uux () (command "ucs""x""90"))
, l9 M7 L( Z' G* H! o8 w$ z - (defun c:xxu () (command "ucs""x""-90"))
% f! n/ S, T5 O& i$ p: x - (defun c:uy () (command "ucs""y"))
( h+ ?* q+ O/ J3 F | - (defun c:uuy () (command "ucs""y""90")) {6 L* f6 u7 j5 h1 O* V) N$ q
- (defun c:yyu () (command "ucs""y""-90"))
I U* }: [) D1 y6 y - (defun c:uz () (command "ucs""z"))
+ s& N j3 |4 |9 L/ y- h3 ` ` - (defun c:uuz () (command "ucs""z""90"))
' U7 Z8 G7 O" K0 z, B - (defun c:zzu () (command "ucs""z""-90"))
5 p4 i& Y, ~5 Y) P( p: P - (defun c:uci () (command "ucsicon" "Properties" ))(princ)
' h. w3 ]/ [5 o0 y7 v2 L- Z7 C- |0 D: \ - (defun c:ucm () (command "ucsman" ))(princ)8 |2 ~: C# z9 P) [
- 2 _: `- x8 V* O* P
- (defun c:sa () (command "vpoint""_non""-1,-1,1"))
' K8 t S2 n3 Q; U/ y - (defun c:sd () (command "vpoint""_non""1,-1,1"))
0 v* U& x. u+ g A# B; D - (defun c:se () (command "vpoint""_non""1,1,1"))
% X5 t/ S5 k, b) t. n - (defun c:sq () (command "vpoint""_non""-1,1,1"))
& N, C* W, M+ D% U - (defun c:vc () (command "plan"""))
& V+ f+ _! h! b7 f; E - (defun c:vd () (command "dview""all"))
% J) w! F9 @& a/ Q5 j. u( }, G4 e
1 U$ m. t+ M( s2 R# J% Q; a; p- (defun c:TT0 () (command "tilemode""0"))
" K. ]$ w a$ @1 h - (defun c:TT1 () (command "tilemode""1"))
% z5 e9 b; Z; Y+ \. a! w - 6 K, c# \( \3 v) s5 i
- (defun c:vt () (command "vpoint""_non""0,0,1"))) M4 Z1 V1 y8 c' J6 L. T, S$ b
- (defun c:vb () (command "vpoint""_non""0,0,-1"))6 J! o2 T6 u$ c6 f7 ]5 r+ D
- (defun c:vl () (command "vpoint""_non""-1,0,0")). m( m u5 x/ `9 X) s' V
- (defun c:vr () (command "vpoint""_non""1,0,0"))
: A e) m5 E$ M! E7 ? - (defun c:vf () (command "vpoint""_non""0,-1,0"))0 {% L' q1 t' y: T2 O/ W- T+ l. ~% F
- (defun c:vk () (command "vpoint""_non""0,1,0")): L$ \ A5 y1 q- O% u* H: S( e
- * W" A. Y. X( O8 W: Q1 M( M
- (DEFUN C:MM () (COMMAND "MIRROR"))! a7 `3 P; y# \4 M' p/ l m) j
- (DEFUN C:MP () (COMMAND "MOVE" "P"))
1 g4 p' _; h! S5 \1 x7 B
. q" I5 B0 G/ \" e* `- (defun c:mee (/ a)2 x3 [ M; o! d. r k
- (setq a (ssget))(command "move"a"""end"pause"end"))+ ~, D) y3 ^6 s$ b+ g% |4 a
- (defun c:mc (/ a)
+ N2 m9 N% ]9 _" T7 T6 A: | g - (setq a (ssget))(command "move"a"""cen"pause"cen"))
& m; |1 v1 M- m - (defun c:cc (/ a)
, [) \% J( N8 g" [ - (setq a (ssget))(command "copy"a"""m")); D2 u \' N2 y& r
- (defun c:ce (/ a)
4 B# C/ k6 l8 R/ o5 b' z& i4 D( t% R$ A1 Y - (setq a (ssget))(command "copy"a"""m""end"pause"end"))5 s, D2 o& K( O1 Q" @- z5 U
- (defun c:cn (/ a)
: ] x- ^, W [' B" l4 @ - (setq a (ssget))(command "copy"a"""m""cen"pause"cen"))! Y! O( F" q6 h! M
- (defun c:tl ()(command "trim""l"""))
6 U) }4 ?2 [$ _, [, \5 y - (defun c:tf (/ a), M5 ~6 m9 S* f. u( c% o/ X
- (setq a (ssget))(command "trim"a"""f"))
4 ] z8 p% z1 A/ `1 s& d& X" L - (defun c:el ()(command "extend""l"""))& C! t [3 M! Y. Q7 K' q
- (defun c:ef (/ a)
% X1 }* g6 ?+ Z( k2 A* Q6 x) N - (setq a (ssget))(command "extend"a"""f"))9 w; Z, S, I6 b. x6 C: d
- 5 S6 Q3 z$ e. L: u7 k, L
5 [) X; g) ]2 X1 l. ?4 o6 a4 U4 w3 t- (DEFUN C:110 ()(princ "\nChon doi tuong can offset ra 110.......") (COMMAND "offset" "110"))
1 [2 M5 Z# \( H$ E - (DEFUN C:220 ()(princ "\nChon doi tuong can offset ra 220.......")(COMMAND "offset" "220"))
& x* y; k8 h4 s4 P; { - (DEFUN C:330 ()(princ "\nChon doi tuong can offset ra 330.......")(COMMAND "offset" "330"))
, A7 P1 K) f6 [% U( w/ @8 C0 _ - (DEFUN C:400 ()(princ "\nChon doi tuong can offset ra 400.......")(COMMAND "offset" "400"))( h# }0 q0 n" m5 x& G0 v- w
- (DEFUN C:55 ()(princ "\nChon doi tuong can offset ra 55.......") (COMMAND "offset" "55"))1 }/ A: F' |/ G/ V. `
- (DEFUN C:600 ()(princ "\nChon doi tuong can offset ra 600.......") (COMMAND "offset" "600"))2 C; C) B% {) {8 I2 X6 r
- (DEFUN C:700 ()(princ "\nChon doi tuong can offset ra 700.......") (COMMAND "offset" "700"))
! Z; a% M6 ~# T' ? - (DEFUN C:800 ()(princ "\nChon doi tuong can offset ra 800.......") (COMMAND "offset" "800"))
2 F9 ?" g: v+ \5 Q2 X7 T - (DEFUN C:900 ()(princ "\nChon doi tuong can offset ra 900.......") (COMMAND "offset" "900"))
1 y; A* l% B) a; c - (DEFUN C:1200 ()(princ "\nChon doi tuong can offset ra 1200.......") (COMMAND "offset" "1200"))
# L5 x5 [. h( N$ d% a - (DEFUN C:1500 ()(princ "\nChon doi tuong can offset ra 1500.......") (COMMAND "offset" "1500"))+ c1 B/ U9 `- ~, Y! |
- (DEFUN C:1800 ()(princ "\nChon doi tuong can offset ra 1800.......") (COMMAND "offset" "1800"))
, o& i+ L/ T6 U - (DEFUN C:2400 ()(princ "\nChon doi tuong can offset ra 2400.......") (COMMAND "offset" "2400"))
3 w( r* r8 o/ h: G m( c. @, | - (DEFUN C:3000 ()(princ "\nChon doi tuong can offset ra 3000.......") (COMMAND "offset" "3000"))
& E% K7 w+ ?2 t, U& ` - (DEFUN C:3600 ()(princ "\nChon doi tuong can offset ra 3600.......") (COMMAND "offset" "3600"))
" k0 R5 }4 D( x) S( A& h# \ - (DEFUN C:4200 ()(princ "\nChon doi tuong can offset ra 4200.......") (COMMAND "offset" "4200")); y- D) h( i" J( m4 J; O& C
- (DEFUN C:5000 ()(princ "\nChon doi tuong can offset ra 5000.......") (COMMAND "offset" "5000"))% w' v9 ^0 v1 `1 k6 `" n- O: z
{2 l& S% d) E; o7 k8 S- (defun c:mla () (command "-mledit""av"))' P: X9 U# b5 v; Z, r1 u) X
- (defun c:mlc () (command "-mledit""mc"))6 x3 }* O7 n* [/ x6 V
- (defun c:mld () (command "-mledit""dv"))
' Q; z" u! G* h* J- y - (defun c:mle () (command "mline""end"pause"end"))+ J, W7 k9 c' u. }" @/ R
- (defun c:mli () (command "-mledit""ca""int"pause"int"))
% P+ j$ h# G: V: n) g - (defun c:mlj () (command "-mledit""cj"))# ^# ?9 q. K% z0 L6 O5 V
- (defun c:mlt () (command "-mledit""mt")), ~5 `4 { q( a A
- (defun c:mlk () (command "-mledit""ca""end"pause"end"))8 V& ]: O) w# p6 |6 x$ N
- (defun c:mlw () (command "-mledit""wa"))* d% P5 i% Q- N
- 4 H% s: `6 Z4 p
- (DEFUN C:DCA () (COMMAND "DVIEW" "all" "" "CA")); B0 h. D- |' d( ?9 G
- (DEFUN C:DPA () (COMMAND "DVIEW" "all" "" "PA"))! J$ ~% C# o& ]3 A c& ?! @* j
- (DEFUN C:DPO () (COMMAND "DVIEW" "all" "" "PO"))- B7 ?3 ~4 J/ k5 t. h8 {5 F/ K
- (DEFUN C:DDD () (COMMAND "DVIEW" "all" "" "D"))) v* W/ a1 ~ z% O5 ]% ~0 @
- (DEFUN C:DZ () (COMMAND "DVIEW" "all" "" "Z"))
: G' z4 Q* L/ A0 m& F% K8 ]/ \ - ; v. v, P# Q/ @; M0 t5 @2 _
- (defun c:p0 () (command "pline""""w""0""0"))
. @9 F1 P5 V/ a @6 r - (defun c:ot () (command "offset""t"))) y/ E8 R& D: u+ m5 y
- (defun c:t () (command "mtext"pause"j""bl""h"pause))6 N# R6 p2 H t' t# J
- (defun c:uo () (command "ucs""ob"pause))1 y$ }2 P0 x5 ? ]6 [8 X W" ?* }
- (defun c:f0 () (command "fillet""r""0"))5 t0 x' O7 N; e1 b4 W
- (defun c:fr () (command "fillet""r"))7 H* K2 a* z" s, H5 I
2 i4 S, s/ b2 ]# v$ p, B- ;CHAMFER- ~$ r5 {' o) V) W
- (defun c:cf () (command "chamfer"))
" W, a% X/ ^' ` - (defun c:cfd () (command "chamfer" "d"))
h! c1 x. Z& ~7 G% {, J - (defun c:cf0 () (command "chamfer" "d" "0" ""))' q' W# H1 T. Q" w# d' K
- + t2 Z- v8 ]" i! D% X! h* ^2 p$ n
- ;FILLET2 o- j, X: a4 N7 Y7 x
- (defun c:f () (command "fillet"))0 @% R# p$ K. ]
- (defun c:fr () (command "fillet" "r"))
8 r2 E0 N1 C D/ @ - (defun c:f0 () (command "fillet" "r" "0"))
9 a" I3 x9 [0 B3 Q; K s1 P& ~3 R - 2 l+ q, T# q4 d' T4 ~$ ?# y
- (defun c:OO () (command "oops"))
+ k! G. |3 V/ N - (defun c:dln () (command "dimlinear")); q2 O8 q9 L m5 q0 w5 G6 T
- (defun c:dan () (command "dimaligned"))
8 _$ W# |% c. p# G: v3 s1 t - (defun c:ddc () (command "dimcontinue"))
8 q" d& Y% A. b3 H' e* l4 [7 F
* @( Z( |1 F" D Y7 R1 E& d- (defun c:sc () (command "scale" "auto"))
- m& z ]! w9 S - (DEFUN C:XO () (COMMAND "snapang"))
9 @* e& V. l8 J! H, Z* J& P - (defun c:cc (/ a)
, @3 w* V7 q6 |% X, q% ^ - (setq a (ssget))(command "copy"a"""m"))
2 c* r9 J% S; O+ F
6 L; e2 G4 O5 i- (defun c:PJ (/ a)
9 T" r6 b2 {/ L - (setq a (ssget))(command "pedit"a"""j""all""y"))
& z5 a0 b8 W6 Z; y! }' q - (defun c:JJ (/ a)
- F+ j7 d, @7 `) _4 D. ]4 i - (setq a (ssget))(command "pedit"a"""j""y"))
+ l x. }( \# ~8 Z/ ^ - (defun c:TN (/ a)" W1 f: b& c& z* y* B6 ]
- (setq a (ssget))(command "change"a"""p""T"))2 |. z0 v+ R& x5 e# E" l, N( C
/ a1 M; N; b' b: ?; |& T- m3 `8 R8 y8 @' H' T7 L" K
- ;=======================Tran Ngoc Thang - Tu nam 2000 - Hoc nam cuoi KTS . DHXD=========================
' d! z1 @/ @; ~
2 _/ ~; ]: R' H5 y, A' F- (defun C:IB ()(setvar"cmdecho"1)
# ?& o7 e2 }7 U4 B0 C - (setq pt(cadr(entsel"\nSelect Block:")))
# b% y+ C) r8 F5 B - (setq e1(ssget pt)) 9 n, i0 _: ~! J( l+ J5 K: A
- (setq e2 (entget (ssname e1 0)))) I. C9 m1 n3 a0 o! e
- (setq blname (cdr(assoc 2 e2)))# O2 M& C6 e" S5 T: f$ i8 M
- (setq oer *error* *error* err2)(command ".insert" blname))
; \( \& R: D, _5 Y1 V9 o
3 v5 S) V+ ~( ]& s2 r0 D4 K- (defun c:II ()2 h& l4 S9 ~% b V7 ~7 U0 b
- (setvar "cmdecho" 0)% H% ~( Y6 Z1 V" O( D, u" v
- (setq olderr *error* *error* myerror)6 R! N, N; R# [1 ?% ^
- (prompt "\nSelect objects: ")% H* ]: x3 Y- t6 R6 f
- (command "select" "au" pause)! x+ @8 |: N, B6 y
- (setq sstxt (ssget "p")
( |7 S; \6 Z5 ?. h* s - sslen (sslength sstxt)
8 d: ~; E6 D5 @$ Y - ctr 0" A7 @1 _$ w" u
- )9 E6 n2 L6 Q7 R- `# [6 q3 M
- (command ".undo" "mark")
1 b2 s. e; w" i; j - (while (< ctr sslen)
' |' k x$ D( Z3 X# Y, z3 d - (setq listxt (entget (ssname sstxt ctr))
( X) y9 c/ u: } - txttxt (cdr (assoc 1 listxt))3 b0 f6 q$ X1 Z C. w: q" z7 d
- enttxt (cdr (assoc 0 listxt))( H" j! Y! O7 D9 X
- )0 O6 k. i- r6 F2 ]
- (if (= enttxt "TEXT")- [$ a& u# x$ @# ]
- (progn
- G" H, K/ r) t7 ^ - (setq testxt (substr txttxt 1 3))% J; D4 f+ C$ q7 o( h! P- S4 X' M
- (if (or (= testxt "%%C") (= testxt "%%C"))- f: z% d/ r' c5 O. M
- (setq newtxt (substr txttxt 4))) ]4 o/ U$ O$ C) J2 {7 `
- (setq newtxt (strcat "%%C" txttxt))
6 i9 P* A: V& I1 Q4 n - )
; ~ ]( b3 y' E1 q - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
, b. C! T9 @/ P6 L - (entmod listxt)# A& s9 T/ G3 a
- ). n8 o2 A6 O0 u$ t$ ?9 c: {
- )2 Z; A5 x5 d% Z' \
- (setq ctr (1+ ctr))9 g. O3 G0 O+ q$ J0 E6 A$ W' K
- )! u1 Q. h! _) v
- (setq *error* olderr)# N7 m' o4 |8 @4 v
- (setvar "cmdecho" 1)2 k" C2 I- W5 h! f
- (princ)
" E. H& L) T7 l- c- m* _6 o& N - )
; q3 G: U' }- r; e0 s; ` - 4 f8 i- g7 n4 o j/ z, o
- (defun c:DG ()7 V6 i2 J4 @ u. ^+ R- w
- (setvar "cmdecho" 0)
, x& C' Q7 i( u - (setq olderr *error* *error* myerror)% c1 ~6 e& |! L/ z/ u
- (prompt "\nSelect objects: ")
& n% q0 \: s4 b3 O0 V( q) ` - (command "select" "au" pause)
) \7 ?/ c4 k' @# y - (setq sstxt (ssget "p")
: d5 w# Q% O' @! c- T+ D4 x l - sslen (sslength sstxt)
* U- }/ J& L, r# ] - ctr 0
# ~( P4 I$ P/ c - )& y+ y( j3 q+ ] O) A
- (command ".undo" "mark")+ n) D X1 V$ [( `! ^2 E; @- O
- (while (< ctr sslen)1 Y1 e; ~. g. D$ _ N. S5 l
- (setq listxt (entget (ssname sstxt ctr))$ A$ g' E+ P% D9 R9 z4 ~# C* k }" v
- txttxt (cdr (assoc 1 listxt))
* T- m0 ~8 N3 E7 _/ X" d) ~ - enttxt (cdr (assoc 0 listxt))
6 M) b5 r7 g0 [6 v - )
& o m. T1 r) [ r# ?% o' ]2 i - (if (= enttxt "TEXT")
1 i$ z' V( X; H8 k1 L7 o - (progn
! _5 J) E7 d3 |- Z8 G* i y - (setq testxt (substr txttxt 1 3))3 u7 A k( w; f" O5 D# n# W8 ~
- (if (or (= testxt "%%d") (= testxt "%%d"))
9 |' Y( H- F9 R' `' f: S - (setq newtxt (substr txttxt 4))# U8 F W# ~ o ^* J% v/ B. {$ o
- (setq newtxt (strcat txttxt "%%dC" ))
1 B; k5 x* r0 H5 { e# ~' F3 x6 O - )
# E: i1 f4 g3 x - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))- b/ `: R. w; J
- (entmod listxt)
& K+ j6 k( M( k+ c2 j* X& B ? - )
/ ]$ Q% A5 r9 ], n; B - )- K0 X4 m6 W0 |: O
- (setq ctr (1+ ctr))/ i) E% o3 A' X0 Z7 o
- )9 z, t# j* k! v0 |5 ~! F6 }
- (setq *error* olderr)' [9 K5 B& m7 R. b6 m. |# t" w2 D) t R
- (setvar "cmdecho" 1)
/ |* N! d, r8 _# w - (princ)
6 D; J( K! i/ v( _+ Y4 a5 e2 x - )
& c: i1 ]7 n9 q! {
2 y# A6 X. Q+ g l* K" _. v- (defun c:PI ()3 x3 k7 `7 l& o: \: w0 |/ y
- (setvar "cmdecho" 0). x# r% Z+ o% g* K) j
- (setq olderr *error* *error* myerror)
0 ^$ K+ I9 ?, j3 H8 M - (prompt "\nSelect objects: ")6 X( o7 T# L/ \% H T7 V! `
- (command "select" "au" pause)
& m8 s8 c4 O* h5 v( w - (setq sstxt (ssget "p") @& W0 u* [- [3 Z
- sslen (sslength sstxt)
) X; j7 H% a K% B - ctr 0
9 i& S1 }7 y+ y, L; i( h - )
- y2 ^" n; u. a5 z# ? - (command ".undo" "mark")/ n4 G1 v' p g- j* G
- (while (< ctr sslen)% L* A6 ?0 `$ l
- (setq listxt (entget (ssname sstxt ctr))& O( s3 q0 f5 B) V6 Q2 ]7 F' |
- txttxt (cdr (assoc 1 listxt))
$ y4 P1 }/ t- A - enttxt (cdr (assoc 0 listxt)) e+ {" |6 q/ G( ]8 N/ ^% U
- )
# v7 _4 a" S) Z2 W5 g% d7 I - (if (= enttxt "TEXT")
n" w3 V" [0 _: h* Y - (progn
$ h$ a* K) |. m* J - (setq testxt (substr txttxt 1 3))
6 P0 y: E$ d& s8 L2 {: k/ m D - (if (or (= testxt "%%p") (= testxt "%%p")), Z, y3 E& x/ o Y0 Z; w, @/ T
- (setq newtxt (substr txttxt 4))
: U+ a4 d- ]. x* M* H3 o" T - (setq newtxt (strcat "%%p" txttxt))
% \' r7 ]. V9 J9 ]9 B - )6 _; t4 U$ O+ p, a0 z
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))6 S- O# [0 w, j) t9 ^$ q8 X
- (entmod listxt)
6 Y$ \; x3 C9 s - )6 ]: U$ |; O/ r9 L# m4 Q
- )
4 s! P- q, @! o4 C: @ - (setq ctr (1+ ctr))
& m% x3 C7 w1 }% `% B- [ - )3 C- y6 s1 P4 \/ B# \* q& E2 \
- (setq *error* olderr)2 E( a) a$ {1 G: J
- (setvar "cmdecho" 1)
C1 S7 `5 l" G% c2 t4 _ D/ c - (princ)" r0 y7 f* n1 {. u
- )
9 \( M# ^9 i! c h8 S {
V; w. Y* e' U* v+ u, g' j- (Defun c:CB (/ a)
! W8 P( ^) x+ r. d; `4 E - (setq olderr *error* *error* myerror)$ `% f( q7 F) h! }1 g/ Y. }1 q
- (setq ocmd (getvar "cmdecho"))' B/ q6 b0 E( ~9 z, y; f. }& h
- (setq oblp (getvar "blipmode"))
; u$ `8 `; i. I: J0 b - (setvar "cmdecho" 0), q/ E' i5 {( o. n- z6 i
- (setq a (ssget)), f N; D3 L+ Q5 d# ?/ D
- (command "CHPROP" a "" "C" "bylayer" "")+ i1 d8 } u- p% c' z
- (setvar "cmdecho" ocmd)
) K( s' Q/ @ o. }' D+ u# ` - (setvar "blipmode" oblp)% e L* U, W3 A; r+ H9 W
- (setq *error* olderr)9 R; K2 d' ?( b/ K! ?& ]! s( v
- (princ)
0 F6 Q( C9 B9 ^4 u4 J! S+ S - )
$ b$ x4 I* y! O# \ - ' I6 L8 c5 q1 R6 p# ^6 Q
- (defun c:LCC (/ co43 obj23 la23)
$ z: v7 S4 b! P - (setvar "cmdecho" 0)% }8 [+ f6 P/ i1 \* a$ C
- (setq co43 (getstring "\nNew color : "))
8 I$ V! x/ [' J* ]8 o& q - (setq obj23 (car (entsel "\nPick object on desired layer: "))); b, |9 O0 j9 C; m7 @# y- ~5 [
- (if obj23 (progn4 l; y% N# J( I# z& n/ y
- (setq obj23 (entget obj23))
# V. Q: T" D" Z( ]- [ - (setq la23 (cdr (assoc 8 obj23)))
1 \5 I( Q! L: F) t. d - (command "layer" "c" co43 la23 "")
& ?7 x( y" ~4 T c% @) t - )! d# i, {# D: j) U+ Y
- )0 `8 ~- Q' B d6 S! k
- (prompt (strcat "\nLayer has changed..." la23))# @( h& V9 x; x$ V' b1 }" Y
- (setvar "cmdecho" 1)
9 U& Z! F9 c4 b/ p. w( U& W - (princ)4 Z3 R" k! T9 L# U( U( C
- )
) M. l, ?6 ]" j0 Z ?3 \6 T9 i
3 g+ l0 l' P6 X9 y: P/ N; {+ L, x- (Defun c:RP (/ a)7 W% z$ g0 a" w0 T) l% K
- (setq olderr *error* *error* myerror)+ z2 x5 i0 V$ s Y' e: ]: Y
- (setq ocmd (getvar "cmdecho")) a. ? k8 W4 j7 F0 T- }) A! `
- (setq oblp (getvar "blipmode")) u( ~1 \/ U. {7 O# h/ L
- (setvar "cmdecho" 0)3 @: s. w- M+ @" `7 F* W: U
- (prompt (strcat "\nUSE: Delete object(s) belonging to"
. u: ^( P; t- U; g7 R* y - " the layer of the entity picked...!")); ?/ ?$ J# K, Z8 _$ F/ ?. O
- (setq a (entsel "\nPick the entity with the desired layer to delete: "))
5 [4 V0 J7 }2 K8 Q+ ~" k e - (if (/= a nil)
; C' ~' j7 w- Y t# Z, _6 V# }1 q - (progn (setq a (cdr (assoc 8 (entget (car a )))))
4 c n& H s4 W7 P( }: N- N - (command "Erase" (ssget "x" (cons (cons 8 (eval a)) tempword)) ""))
! r, R% `3 f8 H$ ]3 {0 R$ c9 r4 g1 Q - (prompt "\nNo entity selected!"))6 A/ z5 p8 `5 g1 t) l& p
- (setvar "cmdecho" ocmd)
9 `1 G- W/ {: c, E - (setvar "blipmode" oblp)
5 r2 E% a) C- e8 b/ f' g - (setq *error* olderr)# I$ ~! }( W4 Y S( r
- (princ), [4 a: m( t O( _. q- r! {
- ): D4 L7 P. m/ R. x8 {
- . n" @: u/ z0 L7 D2 R2 E' J
- (DEFUN C:WL(/ SSET NET SSL M)
" X* y9 P9 E# o' _; X - (PRINC "\nSelect lines :")- O4 g; [' w9 C! j7 ?9 }/ l% }
- (SETQ SSET (SSGET))
9 X; `+ `8 K1 S- K - (IF (/= NIL SSET) (PROGN0 f2 j! G: n0 X6 j6 s( _8 g b
- (SETQ SSL (SSLENGTH SSET))" U8 B% u& E# L4 O
- (INITGET 4)- Z# r2 l) K+ |; J* i1 {* b
- (SETQ NET (GETREAL "New width : "))
! ?3 E) ?* Q; I$ t" _% T) p8 Y) z, M - (IF (/= NIL NET)
0 \1 Z5 F/ T/ l - (WHILE (> SSL 0)1 _ y+ V: x) i9 e) m
- (SETQ M (SSNAME SSET (SETQ SSL (- SSL 1)) ))
% L1 p% z: `3 |) F& K$ n% \ - (IF (= (CDR (ASSOC '0 (ENTGET M))) "LINE")
9 o0 M. N) }! I- ?# q, V# J0 X - (COMMAND "PEDIT" M "Y" "W" NET "") 7 [6 x& R+ Z) j! k; [
- )
% _; e7 P6 v9 _: a+ }* f# U - )
8 C5 y$ R7 C4 \! I* G+ Y - )))* R$ u# Q# q: F! ]! [
- (PRINC)3 n( ~: g3 ]. O( I% Z
- )
8 N. E" f/ F H: ^ - ( [4 |( t8 R4 o( [5 t. v- I, o
- (defun C:MML ()0 O, I4 A, [$ A' l* H1 A, m( n
- (princ "\nSelect objects to move to another Layer.")+ c. H: j( |# L/ C
- (setq ss (ssget))' R& z5 @. {9 G, {8 n- f: o
- (SETQ UL1(GETSTRING "\nLayer to move entities to : "))
' \, Z3 T" A [) R - (setq counter 0)$ S4 ]! i- m1 n, ^- Z; U- N
- (prompt "Moving to layer.....")(princ ul1)2 k2 C2 P' r9 B: Y7 y
- (setq e (ssname ss counter))
: h5 h" c, V8 v p1 ]9 { - (setq l (cdr (assoc 8 (entget e))))6 v! D* ^4 E4 i z6 l N4 T
- (setq S (ssget "X" (list (cons 8 l))))4 g- C% r0 ~6 f% x3 ]$ W$ X
- (command "CHANGE" ss "" "P" "LA" UL1 "")* A) Z/ F5 h* ^* V, A
- (setq counter (+ counter 1))' S, ]% M2 v( F- P% ?- [
- (princ)
7 V$ \+ B7 P5 _1 h0 `7 A' l7 P7 O - ) " H, a% P0 a, t6 w& ]
5 {6 l' h# O8 x7 e; G, \; k- ;;; ================================ GHI CHU ============================
$ K' j3 e4 H& z9 v- U& j$ [) e - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
2 _& N0 K$ [) p y. x3 d# w6 a - ;;; =======================Thuong Dung Font Romant.vnh===================3 n6 E. [# N. Q, a, S8 Y
- ( x# d# o) x! d" Y K
- (defun c:RS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
* k2 H; D8 p3 B. A" J' `0 W - (setq oer *error* *error* err2)
" J9 F6 @3 a/ {% U: I - (PROMPT "\n(UNICODE-Verdana)(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. (M)aster Bedroom. ")+ z8 v, j2 x# Z: P! a1 w
- (SETQ Cpt(GETSTRING "\n (ROMANT-vnh)(DD).(SS).(LL).(CC).(OW).(KK).(BB).(MM). (UNKNOWN-font)(oD).(oS).(oL).(oC).(oww).(oK).(oB).(oM)."))
# G5 s% h1 t) {3 a) b - (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nha` Bê´p"))" N; j, C8 e0 l& r- M, l
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Pho`ng Vê? Sinh"))
q+ t# y s8 v" o6 b# { - (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Pho`ng Ho?p"))
4 ~" `$ o7 _/ m. J: z* b+ R' ~ - (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Pho`ng La`m Viê?c"))# k! b4 C+ L9 x' _
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Pho`ng Ngu?"))
- v1 c9 M4 C3 h7 W7 o3 }' f - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Pho`ng Bê´p + An"))
- |8 r8 L7 ~8 L7 i, B! G+ m! } - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nha` Kho"))
2 q6 }* K- w5 @* w& C7 } g8 y# T - (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Pho`ng Ðê? Ðô`")). e7 y" S, @; m& Q" Z1 u+ n
- 6 q& r& X& m) g
- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))
. }0 [- X5 w7 F# j1 l5 k4 m - (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))$ T5 [ c b. }1 o! k) O
- (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))
7 O$ ?5 C, z; \6 M: q% S7 f. ]. X - (IF(OR(= cpt "OW")(= cpt "ow"))(SETQ CPT ' "Phßng Lµm ViÖc"))
% | U3 t! @! d" W& G1 B - (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))
0 i- N1 Y) x% [4 n( H7 v0 x - (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))
. ^: \5 y r: r0 A- q3 @ - (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))
- p1 @5 G) T9 E; @1 \$ v - (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
( t" G% d1 R. ]6 z5 i% {& Q; @, s -
' p$ D, `+ z6 J, u - (IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP"))
* c4 F% v% R% _ m6 W; H( L - (IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM"))6 B+ I1 @" _7 Z8 y$ n) q/ h
- (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP"))& O( I3 Y6 W3 ]
- (IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC"))
6 F" k7 \8 ^8 |4 L/ ] - (IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R"))9 G& M9 a+ v: X% D) Y) X
- (IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))
6 t0 R" b" J! o - (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO"))
$ W4 o3 }3 D# y( M7 |" r - (IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))
( b! X* f( e( N, j# A - (setq pta (getpoint
( ]5 R: D, p6 v9 { g% T+ A: J6 m - "\nPick first corner. : "))
" A3 D1 O: J0 @, u# k: j% ^6 T - (setq ptb (getcorner pta
: j" j% J6 }4 [7 Z - "\nPick second corner. : ")): J& e" y, p. _
- (setq ptc (list (car ptb)(cadr pta)))
/ o+ k$ w$ M9 l" d - (setq ptd (list (car pta)(cadr ptb)))" O f6 ?* }/ M) X+ ?
- (setq ang (angle pta ptb))
) Y) T) e8 r3 D; K4 o) Z. P& g6 C - (setq d1 (/(distance pta ptb) 2))
/ @$ _8 p/ u+ @ - (setq cp (polar pta (- ang (dtr 0)) d1))& t/ c# V" H" @
- (setq X (distance pta ptc)) z( H* q: L! \! B( P6 S& s2 E5 m
- (setq Y (distance pta ptd))
/ C. ^1 [# P2 y2 k5 O+ @3 _ - (setq X1 (rtos x 2 1))
- y' P- M2 r4 _) V - (setq Y1 (rtos y 2 1)): m' `' c* w6 R- E
- (setq rmsz (strcat "(" X1 " x " Y1 ")"))
3 X- i( X# _8 j+ l( F( x8 f - (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))6 H. T! Z; W( ]% X* f: ]) D
- (defun dtr (angg)
$ Z; D3 M5 m) P, E' F% L - (* pi (/ angg 180.0)))$ F7 A; C, l$ y, J2 v6 ?. \
' W4 S. ^( S. p, {# [+ I- I, z; ?- (defun c:WS (/ pta ptb rmsz pl1): h+ @" z2 ]. h2 i
- (setq oer *error* *error* err2)2 \7 A, x6 W# U5 j* Y" I$ L$ e+ {
- (PROMPT "\n (RomanT.TXT)floorp(L)an.(E)levation.(S)ection.(M)planFoundation.(C)Found.(K).(P).")
1 S. _- H, o4 b. n0 v4 t' [ - (SETQ Cpt(GETSTRING "\n (VnHELVH.Vnh)(LL)floorplan.(EE)elevation.(SS)section.(BM)planFoundation.(CM)foundation.(KC)Structure.(PP)perspective."))
, J( g+ M$ x# B2 U2 t - " \+ Z8 N2 _# z* I
- (IF(OR(= Cpt "LL")(= cpt "ll"))(SETQ CPT ' "MÆt B»ng TÇng 1 : TØ LÖ - 1:100"))
$ A) F9 i0 ]$ D6 ^- C* A - (IF(OR(= cpt "EE")(= cpt "ee"))(SETQ CPT ' "MÆt §øng Trôc ?-? : TØ LÖ - 1:100"))) b$ |9 m9 ~6 p( Z9 ]
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "MÆt C¾t A-A : TØ LÖ - 1:100")) E d( b0 v. e% n( s7 X$ I3 R
- (IF(OR(= cpt "BM")(= cpt "bm"))(SETQ CPT ' "MÆt B»ng Mãng : TØ LÖ - 1 : 100"))' E4 R8 w; ^6 E- D
- (IF(OR(= cpt "CM")(= cpt "cm"))(SETQ CPT ' "MÆt C¾t Mãng : TØ LÖ - 1 : 100"))
9 t6 G% P& B1 A$ A- N# V0 | - (IF(OR(= cpt "KC")(= cpt "kc"))(SETQ CPT ' "KÕt CÊu Khung Däc Nhµ : TØ LÖ - 1 : 100"))2 w5 ^) `" { w; K7 K7 B
- (IF(OR(= cpt "PP")(= cpt "pp"))(SETQ CPT ' "Phèi C¶nh Mét Gãc Nh×n"))
6 M: x5 F! o) @6 S6 i4 j2 \0 I* Z, [ - C t: g! r$ T! b0 \3 m i. e
- (IF(OR(= Cpt "L")(= cpt "l"))(SETQ CPT '"MA/W/JT BA/W/FNG TA/M/FNG 1 : TI/R LE/M/J - 1:100"))' U: ~+ P2 {* P5 x
- (IF(OR(= cpt "E")(= cpt "e"))(SETQ CPT '"MA/W/JT /D/}/SNG TRU/JC ?-? : TI/R LE/M/J - 1:100"))- r. R. Y3 f, ?, H ?
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT '"MA/W/JT CA/W/ST A-A TI/R : LE/M/J - 1:100"))
9 |/ T9 U# S' W& G; D+ _ - (IF(OR(= Cpt "M")(= cpt "m"))(SETQ CPT '"MA/W/JT BA/W/FNG MO/SNG : TI/R LE/M/J - 1:100"))
% N$ o/ s$ X7 D1 r; ] - (IF(OR(= Cpt "C")(= cpt "c"))(SETQ CPT '"MA/W/JT CA/W/ST MO/SNG : TI/R LE/M/J - 1:100"))
1 W. x5 q/ o" U3 F) t7 | - (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT '"KE/M/S/T CA/M/SU KHUNG DO/JC NHA/F : TI/R LE/M/J - 1:100"))
1 W2 {" ^/ B! m0 U - (IF(OR(= cpt "P")(= cpt "p"))(SETQ CPT '"PHO/M/SI CA/R/NH MO/M/JT GO/SC NHI/FN"))' Z0 y& O H u& U" B
- (setq pta (getpoint1 f5 k8 E$ P3 z( h
- "\nPick first corner. : "))+ {2 G6 c$ s4 w5 V, l$ _
- (setq ptb (getcorner pta
: L0 U3 N# `4 K1 c7 M - "\nPick second corner. : ")); m& j* W! x; x+ t. @9 {' l1 U
- (setq ptc (list (car ptb)(cadr pta)))% T2 h7 W4 L& L4 g$ }+ ^1 v
- (setq ptd (list (car pta)(cadr ptb)))
4 G# B3 v: V" R% F1 `6 \, v+ P& N( u" S - (setq ang (angle pta ptb))
/ d$ y+ {) o# ?1 ]$ l4 E - (setq d1 (/(distance pta ptb) 2))
$ t+ ^% [% R. R! |! h' l: P - (setq cp (polar pta (- ang (dtr 0)) d1))
9 M$ r6 b2 B0 r - (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))3 V4 z8 O' B: E; a" p0 U
- (defun dtr (angg)
( q R8 n% v1 K3 @ - (* pi (/ angg 180.0)))
i9 c$ ^* h6 t0 [
d! g( ^: X5 I* k L) u- ;;; ================================ GHI CHU ============================
# d3 ~4 G& j8 a* V+ L _ - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
: V7 {% B+ O5 r - ;;; =======================Thuong Dung Font Romant.vnh===================
$ }3 i. ~1 H+ ~7 N/ d! g
7 ?3 l) l' F( E) F# F% D. K. q- (defun c:RRS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
- `! M4 I; a0 j0 A9 I5 A& x- p - (setq oer *error* *error* err2)
) M( j* b* K9 W, u: p5 Y! k - (PROMPT "\n(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. ")
3 Z( i; F" W. o0 q/ t% d. H, U4 y - (SETQ Cpt(GETSTRING "\n(M)aster Bedroom. (DD). (SS). (LL). (CC). (OO). (KK). (BB). (MM). "))
: n7 ^9 r9 Z2 ] - (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhà B?p"))8 W7 D4 c7 Y6 d) `) n4 E2 P3 Y& n( e$ B
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phòng T?m"))
& s) C0 ]+ t$ m: y - (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Nhà H?p"))8 |0 S: N7 L* U+ T" E S$ a
- (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phòng Làm Vi?c"))
* U' v w/ H. u% v0 R - (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phòng Ng?"))! F4 B2 M! L! T5 A
- (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phòng B?p-An"))
1 H9 A/ B! v6 X, j" X - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhà Kho"))1 F p. {8 F8 i* r* C2 ^
- (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phòng d? Ð?"))% [4 J1 D) j5 q1 \% H5 U8 A: j
- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))/ B- F( n! t' z& M/ r' Y6 F; S
- (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))
9 A) h/ h! G, ~. V3 j- o8 ]( ~ - (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))3 G9 t/ N+ }1 w
- (IF(OR(= cpt "OO")(= cpt "oo"))(SETQ CPT ' "Phßng Lµm ViÖc"))
3 `* {- F' E" B8 ` - (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ")); S8 Q( e+ A5 w
- (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))
$ ]8 W( D: F7 ?$ f7 q+ A7 g$ C - (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho")): Y/ \& r% ?6 C3 {& `2 a
- (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å")) ( ?: e7 `: C @/ l# H
- (setq pta (getpoint& H# `9 \) W8 F
- "\nPick first corner. : "))
$ a: q6 ]- A# [7 {, A" D - (setq ptb (getcorner pta
$ |6 e% q# g5 @9 s7 y - "\nPick second corner. : "))4 \' m& y, S8 k' w6 {
- (setq ptc (list (car ptb)(cadr pta)))
2 u J" b% [+ f/ ] - (setq ptd (list (car pta)(cadr ptb)))$ ]! m( A& o1 T5 W" b( C5 F
- (setq ang (angle pta ptb))
]3 |7 E$ s+ g, `, R - (setq d1 (/(distance pta ptb) 2))
. V0 c5 S2 r* b5 Y - (setq cp (polar pta (- ang (dtr 0)) d1))
& o! i8 I* V, i; X2 @- m - (setq X (distance pta ptc))% N2 i( N+ s0 c5 l" D. p2 i
- (setq Y (distance pta ptd))
; e/ l! ?7 I' g; C7 Y& J - (setq X1 (rtos x 2 1))0 x6 y, R7 i ~6 B- T& O2 h
- (setq Y1 (rtos y 2 1))
! P/ U% i0 |! y2 i3 f - (setq rmsz (strcat "(" X1 " x " Y1 ")"))
! B& A8 Q4 x1 \" F3 D" p - (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
$ l) [. D" b2 x* e" M( p - (defun dtr (angg)" l0 \) W! r1 X( e, e
- (* pi (/ angg 180.0)))
' Q$ D N: l# W- T
5 y+ u; \# [7 s- ;;; ================================ GHI CHU ============================$ A' p2 H6 f; l
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========. `' U7 N0 y: f1 y4 I
- ;;; =======================Thuong Dung Font Romant.vnh===================1 h: W4 S0 t: h3 b+ E r' `3 N
- 7 ^) I2 R+ x. |; t2 z \/ O
- (defun c:GS (/ a b c d)* P) c( q. w$ ]) P, @: g% s
- (graphscr)5 Z# D% ? d: [6 O1 c8 M, N6 w/ q
- (prompt "\nSelect text to set style....")! o1 p" p2 ]0 Z r( |1 f0 f2 h
- (setq a (entsel))7 S9 ]* L' O# F
- (setq b (entget (car a)))7 d! T6 U. a# F
- (setq c (cdr (assoc 7 b)))
2 {. m; k: z) p - (setq d (cdr (assoc 40 b)))' V4 I+ r5 b' h
- (command "style" c "" d "" "" "" ""))
( {- S! T1 \5 B8 a& l3 k) ` - (princ "\nType GS to set text style.")
/ u9 N3 ]0 X7 l% _
/ W6 _$ @7 v2 e' @) ?7 l- (defun c:RC (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w)
) Q/ ~: U7 I$ H& G5 `$ s - (setq olderr *error* *error* myerror)
j6 J! l- o2 ]" E8 H- j' J2 n! d - (setq ocmd (getvar "cmdecho"))
* i' I# Y: k( H - (setq oblp (getvar "blipmode"))% J+ F! E, A) y2 F% b% r8 R+ q
- (setvar "cmdecho" 0)+ O4 N5 T# w2 A' r8 T+ \. [2 |
- (initget 1) ;3D point can't be null
8 M l! S5 D( |% X# b2 w; F - (Setq pt1 (getpoint (strcat "\nCorner of rectangle or square: ")))
: D4 w6 s! o' l# W5 T: B - (setvar "ORTHOMODE" 1)/ y3 F6 ~* C, ]2 W3 T
- (initget 7) ;Length can't be 0, neg, or null; I( o, ^) A$ w# F
- (Setq l (getdist pt1 "\nLength: "))
/ A$ ~+ v! q/ W1 Q, O* f - (Setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1)))6 j% H7 H, k5 Q3 |2 t
- (grdraw pt1 pt2 2), m1 G+ u; \5 z9 U1 l/ w! W9 H
- (initget 7 "Square") ;Width can't be 0, neg, or null
% ]3 C$ E) X) M% G5 \! Q - (setq w (getdist pt1 "\nSquare/<Width>: "))+ W9 P! `) A3 N8 Y& U7 E" m/ g6 @; V$ Q
- (if (= w "Square")
0 }& U7 w) M8 R+ I5 u9 y - (setq w l)
9 S2 h2 U7 [8 [# y5 A; C - )9 ~; _! H- L5 q* k# v/ h
- (setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2)))- N5 u, Y& W& W! q, K, D
- (setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1)))
7 R I, ]8 L# Y* w5 N: o6 h! Z - (grdraw pt2 pt3 2)2 R4 d4 x& ^5 ~, h0 y% P" Y, b# b
- (grdraw pt3 pt4 2)
7 V/ ]( U- W' S- M, g - (grdraw pt4 pt1 2)9 w, x, e f+ S; d+ _
- (setvar "ORTHOMODE" 0)& A1 z j5 w, w8 Q$ l
- (command "pline" pt1 pt2 pt3 pt4 "close")5 _# Q- [( D* U
- (setvar "cmdecho" ocmd)4 A4 H) F* c0 D; v
- (setvar "blipmode" oblp): M2 U; V* N9 Y/ g
- (setq *error* olderr) ; Restore old *error* handler9 Z2 \7 x' l" _0 {2 I
- (princ)
: f/ L* M7 [* T* J, x p# A& E - )
1 {( C* e1 O. S) n
& t3 _( m3 v( x4 I% j$ ^. u7 r- (defun c:SG (/ ent pt1 pt2 ang)
" W9 r0 {& `8 u+ ~' r6 V: F - (setq cmd (getvar "cmdecho"))
2 Z2 I: Y% T1 g. a6 H& d - (setvar "cmdecho" 1)
: N/ B5 y6 M: m/ ? - (prompt (strcat"\nSnap angle will be set to angle of line"))
0 Z0 s0 U) j) D( i - (setq ent (entget (car (entsel))))% p p8 {2 c! z3 F
- (setq pt1 (cdr (assoc 10 ent)))
0 @2 t4 P( s* _9 }% G% ^0 ~ - (setq pt2 (cdr (assoc 11 ent)))
q/ B7 e5 P, n0 V - (setq ang (angle pt1 pt2))- A7 G. w/ P9 c
- (setq ang (/ (* ang 180.0) pi))
# o5 k. q# z* n8 |) |% W - (setvar "cmdecho" 0)5 Z( w5 U3 |9 ^1 u
- (command "setvar" "snapang" ang)
. m, e/ W' v0 i( c) M7 z, | - (setvar "cmdecho" cmd)2 ?/ h1 j( N) @
- )
% ^! X, ]- W. X. I# r
8 t1 m, R' R% |4 y# H: g, m- (defun C:TG ()
1 O/ i/ u- f$ f# _9 ~$ | - (initget "Increase New")/ Y5 H( s9 i4 r
- (setq ans (getkword "Increase/<New>: "))8 _2 Y# i" g, a0 K9 x+ {( v
- (modang)
7 I* r9 ?+ z' ^' u0 X, A$ @4 d - ), b2 t1 B9 T2 H+ P- l
- (defun modang (/ ang ss ca e na ssl)
0 _. @- A: k9 f1 t$ \( g - (if (= ans "Increase")
4 I$ o" \0 ]/ |: d9 `7 s# D - (princ "\nIncrease angle for text by: ")) l9 }. b7 U0 C% A; E- n" u
- (princ "\nNew angle for text: ")
' o% Q8 H: Y' J - )
4 P- ?7 {$ `; b# I& Z. p - (setq ang (getreal))
3 s( Q! m5 J( U - (setq ang (* (/ ang 180) pi))
. u7 L9 x0 N- i - (setq ss (ssget))! C% T7 j" M6 U4 E8 E4 i! g2 I& j
- (setq ca 0 ssl (sslength ss))/ P) v% b; h5 c; F k9 E; x
- (while (< ca ssl)
6 ?2 V4 a v; g1 P% w& F0 s2 c# ? - (if (= "TEXT" (cdr (assoc 0 (setq e (entget (ssname ss ca)))))): ^: E) @9 C# v3 K
- (progn0 }$ [, E% ~/ L, N
- (if (= ans "Increase")
+ c$ v6 j+ W" ~' @# K' l - (setq na (cons 50 (+ (cdr (assoc 50 e)) ang)))
# y% I; N* n7 j n0 R& d. _- O! t - (setq na (cons 50 ang))* E2 Q4 ]. p$ S
- )0 s7 i" A) ]. C7 S/ [* I( t! G: D
- (setq e (subst na (assoc 50 e) e))1 [" k7 Y1 U* k& w) i
- (entmod e)2 F% _8 N/ T* m
- (setq ca (1+ ca))4 r5 d( \6 Z* D) k
- )0 n0 F, B3 a L; Y
- )
" x3 k/ N i* N4 Q. C. Q - )
5 Q9 N9 ]$ t4 }! [7 j3 ^% Z - (terpri)4 | G* B8 U$ m: j
- )
, x; R; h. c& N4 C - $ F: s5 N- X; `8 K8 J" [& v& X
3 \& Y3 x% y4 p- (defun c:WL ()3 E( X( t, c8 n3 {+ Z
- (setvar "cmdecho" 0)
: ~9 U+ x8 e; r& ~8 r4 } - (setq a 1)
6 j$ u9 o$ p5 \* h, T - (prompt "\nSelect Polylines to change: ")1 K. v3 U o% c: \% w
- (while (/= a nil)6 C4 M+ u* C& r
- (progn
, i9 I* u* @, P' |2 w9 k; m - (setq a (entsel))5 R& c6 Y. ?, p; m
- (if (/= a nil)+ B$ Y; \- F8 W2 i: W8 q( t
- (progn+ p6 E& s' \* y
- (setq b (entget (car a)))9 N, l! k- }$ K8 k' ?- f
- (setq c (cdr (assoc 40 b)))
: V5 A+ X) U( i, y - (princ c)
! ~% s' M, X, f* O4 X - (command "pedit"a"w""lw""")
9 u8 \- s3 e8 c! c - )))) R( |# ^1 n. Z# U0 a$ q
- (princ)' b6 q8 m F' D& g
- )
3 ` j. {! `! a6 t3 M) c
6 I! C4 o! X! f- ;;; ================================ TEXT FIT ============================
) m, V* n- U+ [4 u# t: V, q - 8 q2 a8 Q {- H/ `% A6 e% P
- (Defun c:FT ( )1 ]4 e1 J6 S) ?$ [) u: A
- (defun setsnapang (arg /) (setvar "snapang" (angtof (angtos (cdr (assoc 50 arg)) 0 8) 0 )) )
, j) \% J( R; e; \/ ]9 w& e - (Defun LL-xyz (arg) (CAR (TextBox arg)) )" A1 \' ?- m0 D# L/ N
- (Defun UR-x (arg) (CAADR (TextBox arg)) )$ M" A: r; L1 q. E$ x2 ~
- (Defun LL-y (arg) (CADAR (TextBox arg)) )( t$ ]' _ z; h# b! a8 @
- (Defun LR-xy (arg) (List (UR-x arg) (LL-y arg)) )0 g% d# U. a ~8 F- {* {. H% r
- (Setq ename (CAR (EntSel "\nSelect Text to stretch/shrink:" ) )2 X& C8 M b: y2 ^
- Textent (If ename (EntGet ename)) )
0 k& V4 h( i$ I& y - (If (= (CDR (Assoc 0 textent)) "TEXT")
9 O4 O3 ]9 A8 t8 ~4 R* p! [ - (Progn (initget 0 "Start")) [: i& Y: f2 Z' r d' P
- (Setq NewEnd (Distance (LR-xy Textent) (LL-xyz Textent) ) )! x; y* D7 K3 z8 F0 o
- (setsnapang Textent) ;set snap along text entity
" W' r. k* B, v& T4 j2 m - (setvar "ORTHOMODE" 1) ;drag along the text. x5 S A5 d/ [# ^7 H
- (setq
* k% m% [# d* B0 s; o - TMP (getpoint (cdr (assoc 10 Textent)) "\nStarting Point/<Pick new ending point>: ") )
- n- e' b) v2 E - (setvar "snapang" 0)& `6 I) \& G3 U) @
- (cond
2 F8 d! T* g8 ~# N1 X - ((= (type TMP) 'STR) ;;new starting point to be selected6 v) }/ E+ R6 S/ j, d9 @. e- |/ d
- (setq Start (getpoint "\nPick new starting point: ")), H0 t. e0 x$ t/ O" d0 F
- (if Start (progn# ~/ n, Z# z2 K2 [" o
- (command "_UCS" "_E" (cdr (assoc -1 textent)))
8 g, h: A- r; v, B6 y - (setvar "ORTHOMODE" 1), j- g& y! r) B7 Q2 X+ E
- (setq NewPt& Y* I7 g0 ?) b+ K/ I: p$ d3 H
- (if Start
; C/ w9 N- c* O9 q4 J4 i# h) ] - (getpoint (trans Start 0 1) " ending point: ") nil ) )
# A, j; `% Q* G$ p3 @" {$ m9 O - (if NewPt (setq NewPt (trans NewPt 1 0)))0 |4 B: v/ |' K6 D2 R0 Z
- (setvar "ORTHOMODE" 0)& [; ~! h- Q; D( c
- (command "_UCS" "_W") ) ) )
2 E: ]$ n" W2 Y' T+ R, l - ((not (null TMP)) ;;new ending point selected
! S: i4 S* c! S2 U$ e5 A - (setq Start (cdr (assoc 10 Textent)) NewPt TMP) ). J7 b8 C: ?: T9 r
- (t (setq Start nil NewPt nil) ) )) B/ U& K: d6 ]9 Y+ V Q2 S( S
- (if (and Start NewPt) (progn3 d& K) T0 q5 s! V; |1 M
- (setq Val (Assoc 41 Textent) ;;current width factor) |6 u+ y& ^- u8 i3 r! X
- Val (if Val (cdr Val) 1.0) LTC_%
" b+ s' M" V* x# A4 e9 k: N - (* (/ (Distance Start NewPt) NewEnd ) Val ); c/ V- K! o$ h E
- textent (Subst (cons 41 LTC_%)1 u; M: ?& Y/ j8 K
- (assoc 41 textent) textent)* H* x: m. w/ l1 X
- textent (subst (cons 10 Start) (assoc 10 textent) textent)4 Q+ z7 s8 q, X9 z3 i8 b
- textent (subst (cons 11 NewPt) (assoc 11 textent) textent) )" l9 h8 L& L# c
- (EntMod textent) (EntUpd (cdr (assoc -1 textent))))))) (Princ))( w" ?% B" G* {+ q3 M5 p
% K* {/ M' I' \# ]3 \- ;=====================================================================
# G) E+ A( e' u9 c - ;=========================COPY + ROTATE ==============================5 i1 S8 q& G" _) |9 s+ H* K
- ;=====================================================================
' y! V9 m( f5 a+ v+ d. b% C
4 D, O$ r! O; {3 Q- (defun c:CR(/ olderr cm loop ss1 ss2 bp mult lent ss2 lp1 lp2)
" i6 ~. h, } \! }! l9 ] - (setq olderr *error*
) } q! [5 u. ]' z7 F - *error* croerr)
, R9 W4 I0 L9 [7 s; v5 M - (setq cm (getvar "cmdecho"))3 V H$ B" r1 p- ~, z. x1 K' o
- (setvar "cmdecho" 0)
: E* }) `, x% Y4 E - (setq loop t)
7 |# H a+ x* a1 b' | - (while (not (setq ss1 (ssget))))$ a$ h5 z3 m/ S
- (initget 1 "Multiple")' h) b0 w& F" q5 W- S6 X4 {
- (setq bp (getpoint "\nBase point or displacement>/Multiple: "))
U$ d% R2 ~! t( L! k! H* e - (if (= bp "Multiple")
: a( u+ a' F! e" [* M2 ?3 w - (progn# o5 A. k( C- m: w5 x; O" C, F( f9 u
- (setq bp (getpoint "\nBase point: "))
0 q1 h q0 j0 `+ e- O8 T - (setq mult t)7 B0 P- h% W' h8 l1 R+ ]
- )3 V3 M4 t- u" }' c
- )2 E w# i# B @0 X% L- X
- (while loop: [% I. L. T7 g) E) n
- (setq loop mult)5 ?5 C6 q; z. R0 N$ h
- (setq lent (lastent))
2 W% m8 g# q! s6 Q9 U - (command ".copy" ss1 "" bp bp)* e7 d6 a! [5 ]- ^! t# K! {
- (setq ss2 (lss lent))
% i' x/ a: u: U; s - (setq lp1 (getvar "lastpoint"))7 E+ V; x" t* L6 J
- (prompt "\nSecond point of displacement: ")7 H/ U8 W% x/ r! T2 B; n
- (command ".move" ss2 "" bp pause)6 p% y) J" t( b6 F+ Y) {' @
- (setq lp2 (getvar "lastpoint"))6 m0 A6 z) l ]8 o- Q. D% x
- (redss ss1)1 @' w* \7 p6 q8 ?
- (if (and (not mult)% Q* ` b0 j4 [' ^8 o. E
- (= (distance lp1 lp2) 0)
$ y9 g% }7 N. d; d/ \* [ - )
0 U; p& H* }. n& D - (setq lp2 (getpoint "\nRotation Point: "))* y2 l' V1 R8 J$ N+ \
- )
) H2 s: y0 h1 A4 s: o - (if mult. x" [8 P) H6 R" h& }. M N7 }
- (prompt "\nRotation angle ")" f9 M$ r8 G0 q' R
- (prompt "\nReference/<Rotation angle>: ")
% P% k" k8 `3 k# _ - )
! `# G3 A8 n" H3 j3 H - (command ".rotate" ss2 "" lp2 pause)
" C4 G4 l" [' b) M& }% R Y - )
. D0 `8 C m9 T) l2 { - (setvar "CMDECHO" cm)6 D7 D# `% l6 {! I; i- N
- (setq *error* olderr)
2 w3 q9 H+ ]$ w2 ^% A a - (princ)
4 Q- S9 }. L& @2 a5 O g- m - )
7 q0 {/ W2 W4 P9 ^+ N) D' j) { - (princ)( g: _& Q% L- |4 ?% g) Z8 ~
- (defun croerr (s) / l5 `0 T) K5 q3 C
- (if (/= s "Function cancelled")
( f* y$ _# e {. m6 F - (princ (strcat "\nError: " s))7 L- R* h( o% w
- )
, z0 [1 x( A h$ Z" ~4 M! A' X - (setq S nil)1 [! _0 G/ F& M4 Q& I, D7 y4 @( P
- (setvar "CMDECHO" cm)* _( a+ Q% o `2 m% G7 d
- (setq *error* olderr)
" `7 U+ H9 X: y+ y! _3 e8 Y# Y% l8 X4 g - (princ)* K8 F2 z' u, V( I
- )+ _1 P0 O2 L2 W
- (defun lastent (/ a b)
6 g# f0 L9 S' I1 c% i - (if (setq a (entlast))! L) p! J& R$ Q) g
- (while (setq b (entnext a))
; g' N4 Z6 I- Q# `) ? | - (setq a b)
1 b8 f) {) G9 o' U% | - )
4 X; w: Y& X, t' W - )
7 I4 p0 D9 @" M1 L# v$ q% t - a9 w: `3 R& ^4 i9 t3 ^" m( M3 n- m1 P
- )
; x% G5 \2 @1 ^. ~- h% d - (defun redss (ss / en i)" p: i3 [* a7 m+ E6 X3 A& M' R3 Z
- (setq i 0)& L. h6 v4 ^* r3 p
- (while (setq en (ssname ss i))
% t* Y& |2 P4 f3 w7 m' R - (redraw en 1)
: S( z/ Y& X% F; O# m6 R3 L - (setq i (1+ i))/ \. L% |* L3 Z. u" w- C
- )
' j: r; T& Q% A1 a - )4 _" y1 q# U7 l- M4 R) x3 O" H
- (defun lss (en / sels ed)
4 j* D, _6 m# Q: K5 d - (setq sels (ssadd))
! [6 A" X& {+ j$ h+ r, w - (while (/= en nil) S* d! Z: d/ [6 d; }( D7 |; W
- (if (setq en (entnext en)) (setq ed (entget en)))6 o$ n. r0 I' [3 m0 s
- (if (/= en nil) (setq sels (ssadd en sels)))
! G+ [ F! S9 a" ~. ? - (if (or (= (cdr (assoc 0 ed)) "Polyline")4 C" D" j+ v0 ]9 Q0 }+ m
- (= (cdr (assoc 0 ed)) "Insert")
; b6 d" Y' x& m5 O - )
0 q/ j) L/ o/ B* l+ a - (while (/= (cdr (assoc 0 (entget (setq en (entnext en))))) "Seqend"))
, K5 O" e( M) R* B! U - )
. j) o! m- M- F - )
8 r* ^; S4 Y, @( _ - sels# X K' q" Y/ t- c5 r& R9 ?3 } J
- )2 G7 ?! W, x# v: {/ e p7 L7 f: C
8 h/ R; @5 S9 `- ;;;; ================== CAC FUNCTIONS DUNG TRONG ACAD.LSP ==================2 ~0 \" M" ~, ]
- + J' ]. C! d* V
- (defun c:00 ()(princ "\nChon doi tuong net Defpoints")(ssget)(command "change" "p" "" "p" "la" "Defpoints" ""))
! Z7 ?: |8 @* {: S; Z6 B2 Q; A) c - (defun c:0 ()(princ "\nChon doi tuong net 0")(ssget)(command "change" "p" "" "p" "la" "0" ""))
) F/ J2 _6 M. M - (defun c:1 ()(princ "\nChon doi tuong net COT")(ssget)(command "change" "p" "" "p" "la" "COT" ""))
; p) b a9 `) ]( J! `. O/ Q - (defun c:11 ()(princ "\nChon doi tuong net DIM")(ssget)(command "change" "p" "" "p" "la" "DIM" ""))1 r1 p: V4 h+ k* g* B
- (defun c:22 ()(princ "\nChon doi tuong net MANH")(ssget)(command "change" "p" "" "p" "la" "MANH" ""))
0 u1 f8 Z$ K/ p6 d3 A: W3 N - (defun c:33 ()(princ "\nChon doi tuong net NETMANH")(ssget)(command "change" "p" "" "p" "la" "NETMANH" ""))8 d' }6 G) u6 h! O
- (defun c:2 ()(princ "\nChon doi tuong net NETDUT")(ssget)(command "change" "p" "" "p" "la" "NETDUT" ""))
( e0 O5 W; W7 }$ @- O4 l - (defun c:3 ()(princ "\nChon doi tuong net NOITHAT")(ssget)(command "change" "p" "" "p" "la" "NOITHAT" ""))
- Y; i; G% [2 J - (defun c:4 ()(princ "\nChon doi tuong net TUONG")(ssget)(command "change" "p" "" "p" "la" "TUONG" ""))5 P3 Y0 p+ Z* F1 y4 R1 @
- (defun c:44 ()(princ "\nChon doi tuong net KHUNGTEN")(ssget)(command "change" "p" "" "p" "la" "KHUNGTEN" ""))0 ^4 ^+ t2 U0 y& y
- (defun c:5 ()(princ "\nChon doi tuong net TIMTUONG")(ssget)(command "change" "p" "" "p" "la" "TIMTUONG" ""))
* @5 o6 l2 n- T( H - (defun c:6 ()(princ "\nChon doi tuong net CUA")(ssget)(command "change" "p" "" "p" "la" "CUA" ""))
7 i! j( w8 O# \ - (defun c:7 ()(princ "\nChon doi tuong net THAY")(ssget)(command "change" "p" "" "p" "la" "THAY" ""))2 y, F$ T' v8 v# | Y! l
- (defun c:77 ()(princ "\nChon doi tuong net NETTHAY")(ssget)(command "change" "p" "" "p" "la" "NETTHAY" ""))
$ b* R7 A4 P, }& d5 _5 n0 F' z) V - (defun c:8 ()(princ "\nChon doi tuong net HATCH")(ssget)(command "change" "p" "" "p" "la" "HATCH" ""))4 C3 P: ~. U0 o% F. |1 m1 o
- (defun c:9 ()(princ "\nChon doi tuong net TEXT")(ssget)(command "change" "p" "" "p" "la" "TEXT" ""))* \# e5 Y3 ?# n3 S1 E% J
- (defun c:99 ()(princ "\nChon doi tuong net CUAMATDUNG")(ssget)(command "change" "p" "" "p" "la" "CUAMATDUNG" "p" "C" "bylayer" ""))
* p2 \' [2 _, D$ t5 s - (defun c:td ()(princ "\nChon doi tuong net THEPDOC")(ssget)(command "change" "p" "" "p" "la" "THEPDOC" ""))
1 S; E! h1 N; m# W% _ - (defun c:ddt ()(princ "\nChon doi tuong net THEPDAI")(ssget)(command "change" "p" "" "p" "la" "THEPDAI" ""))
6 F: R$ B; t( [ r - 9 \: @+ ?2 O1 L! D) L8 Z% D2 w
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
% b) B! _: q/ A8 [; [0 Z; z N
+ I) k0 T. ~! w' N) ?0 d+ s+ \. u- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
+ O) a0 A: q1 R" T$ b" @ - ' j& k6 R2 [" G3 `+ N+ n& X. T
- (alert "Using the NetXuatAnh-[ 5940.00 x 4200.00 <pixels> ] command!")7 e* I9 c6 t6 d! V" {
- (princ "\nEnter (DEFUN C:netxuatanh () to get to real LAYER command.\n") (command "NETXUATANH")
. i! |' P6 u0 T; A9 p! i - 1 Y- r8 P Q, r! m( ]# S; ?
- ;=============== DAT LAYER NET de xuat anh JPG [W x H] [5940.00 x 4200.00] ===DRAW===( ~2 U- Y; E+ K- N$ t. q
- L. \- F0 t( ]; ]7 Y3 P4 j& i$ u9 v
- ;(DEFUN C:netxuatanh ()
- ^$ `3 D7 f1 W4 ` - (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.6" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""
( d7 \* i$ z; X [" _ - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1.58" ""7 H3 |& _: q, |
- "M" "MANH" "C" "9" "" "Lw" "0.5" ""
+ R2 O9 x6 T7 e; N' y1 p# B! K3 i - "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
; p' `; L5 v# a; V, X& u( K# V - "M" "DIM" "C" "1" "" "Lw" "0.6" ""
, B9 q' U8 w3 E, I6 p - "M" "THAY" "C" "7" "" "Lw" "0.7" "": F) W5 \/ O# Y. b
- "M" "NOITHAT" "C" "3" "" "Lw" "0.5" ""9 N4 c0 r2 k. c3 m+ U! m; Y
- "M" "HATCH" "C" "5" "" "Lw" "0.35" ""
% }$ J: Y9 S+ H% c/ h, w+ ] - "M" "COT" "C" "2" "" "Lw" "2" ""8 v4 ^ Z1 C! q9 {/ Y5 b- h
- "M" "Defpoints" "C" "7" "") c M0 v- f, k8 T% j
- "M" "0" "C" "3" "" "Lw" "0.5" ""' L2 C& O8 ]3 I6 a/ A
- ; "M" "1" "C" "1" "" "Lw" "0.5" ""
2 z. Z7 s0 l. k3 ~, n5 a3 _ - ; "M" "2" "C" "31" "" "Lw" "0.5" ""0 ^* m- p0 F; q2 V* |) |
- ; "M" "3" "C" "8" "" "Lw" "0.35" ""
1 Y2 L: S3 O; |3 M( r d - ; "M" "4" "C" "4" "" "Lw" "0.8" ""& d( O" E( \' ]4 }7 j3 b1 v
- ; "M" "6" "C" "6" "" "Lw" "0.35" ""
% w. U5 V5 {. q6 u - ; "M" "7" "C" "7" "" "Lw" "0.4" ""
- O R# F1 q1 e, l: _( h5 S8 F - ; "M" "8" "C" "8" "" "Lw" "0.35" ""
+ H$ P8 \* ~ j% k* s4 f0 _ - "M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" ""
# y5 f- k; d: F8 S5 Q% |* f' G - "M" "DUONGBAO" "C" "7" "" "Lw" "1" ""
0 r' r( n2 n, X) v, P - "M" "KE" "C" "8" "" "Lw" "0.3" "") g0 W; b4 e6 g% z
- "M" "KT" "C" "9" "" "Lw" "0.35" ""
& S8 T1 V2 x8 J# I$ F- W - "M" "NETTHAY" "C" "255" "" "Lw" "0.7" ""
! s7 O' p5 _# X - "M" "NETMANH" "C" "43" "" "Lw" "0.5" ""
4 u$ _# w7 v% H. l - "M" "TBD" "C" "2" "" "Lw" "0.8" ""
( M+ c Y1 x7 @4 N - "M" "TEXTTXT" "C" "7" "" "Lw" "0.4" ""
' m: N8 |+ t( ^2 @/ ~* T# b! H0 S - "M" "TEXTVN" "C" "132" "" "Lw" "0.4" "": x2 o8 z. o9 g% c9 X% \
- "M" "THEPDAI" "C" "3" "" "Lw" "0.7" ""8 z x9 _. o/ y. ]
- "M" "THEPDOC" "C" "2" "" "Lw" "1.58" ""
4 G. }3 Q2 y% \- {& i2 O D/ G7 i - "M" "CUA" "C" "6" "" "Lw" "0.5" ""
! o4 ?) s1 q+ p6 ~" Z) u - "M" "CUAMATDUNG" "C" "6" "" "Lw" "0.5" ""% O1 t- n" _8 H: \/ }1 D/ ]
4 _# W# t9 G4 x% x* {' q$ k- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] ===NUOC===' z9 `5 u, v4 r+ r `
- ( P H5 p; m) p/ {; d) y j
- "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" ""
g! U/ h" J! {% [ - "M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" ""3 N. w; T* T6 d6 t8 C$ Q$ R
- "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" ""
2 | K/ P. m5 J2 z7 v' @% `/ F - ; "M" "250" "C" "250" "" "Lw" "0.35" ""
0 u8 m+ @/ [& K& ?, @; [ - "M" "KHUNGTEN" "C" "4" "" "Lw" "1" ""
7 k: {4 X+ b+ | T) R a: B+ V - "M" "TIMTUONG" "C" "5" "" "Lw" "0.5" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" "" )
5 G7 b4 ^; Y; ]/ Z4 P# L7 [
0 q7 l& d! u, B- ;=============== DAT LAYER TEXT de xuat anh JPG [DIM] [TEXT] [GHI CHU]======
) L7 F; p$ A3 V; _ - ;===================================30|04|2024==============================
" Y# O K( U& r4 v% x, z. y - + t7 `* x6 s) I7 q* W, u
- (Command "-style" "Vni-VietNam" "vn_vni,vns.shx" "0" "1" "0" "n" "n" "n" )! H" ]: I4 R# a) ?, G4 p
- (Command "-style" "Vni-ROMANS-TEXT" "vni-romans,vns.shx" "200" "1" "0" "n" "n" "n" )
" L( \# G, I/ ]' ]$ C, X7 q( t2 h2 O - (Command "-style" "COTES" "verdana" "" "1" "0" "n" "n" )
, Z5 a; L" W! b- z/ A" e - (Command "-style" "TRUC" "impact" "0" "1" "0" "n" "n" "n" )
7 ^2 x1 {( c" W1 E: G: \ - (Command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500" "1""0" "n" "n" "n" )+ Z% `2 ?$ f. b3 _; T
- (Command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1" "0" "n" "n" "n" )
5 d! v4 p0 r' M( C3 s4 t - (Command "-style" "STANDARD" "Verdana" "200" "1" "0" "n" "n" "n" )
6 {2 ~1 A. f0 }% }1 G3 l# y$ P - (Command "-style" "VERDANA" "verdana" "200" "1" "0" "n" "n" )+ |( h* p5 Z5 @
- (Command "-style" "ROMANT-DIM" "romant,vnh.shx" "0" "1" "0" "n" "n" "n" )
/ A- K+ ^; D! o% u# @. X3 l( K - (Command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200" "1" "0" "n" "n" "n" )(princ)( t, d' v8 v# ?: l
- 6 W! [/ z0 _. G* p- g* H3 O
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=2 y- B* [& W8 L+ l7 X
- ;===================================17|10|2024===================================- K: M% |! p4 V% }
" U8 W1 Q. l5 c. W: W( k9 _- (Command "DIMTXSTY" "ROMANT-DIM" )
$ D6 `& {4 p- Z0 t F' h, j# l - (Command "DIMBLK" "" "Closed" )' ]6 e0 n* ]( f e/ J) R
- + p0 M. B( C2 s
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=7 Q; Y* F3 a, Y/ s
- ;===================================17|10|2024===================================+ w7 X' w% u4 o- X, b
- ; v( O/ V% w n! P% E# A
- ;(Command "-units" "2" "8" "1" "8" "" "N")( j i: ^5 |+ L
- (Command "-plot" "Y" "" "publishtoweb jpg.pc3" "User 1 (5940.00 x 4200.00 Pixels)" "Landscape" "N" "Display" "Fit" "Center" "Y" "monochrome.ctb" "Y" "")(princ)! C- ^5 ?1 J+ V% w9 k3 y
- 0 }/ g: _0 l5 t* R2 P, `4 s( }
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
. b% N7 h( f6 T7 G7 K9 Q! ~' R' O - ;===================================17|10|2024===================================8 s$ P, L1 A1 D% M% y1 d9 m
- 0 p \/ E) \3 p) s/ |
- ;======== KET THUC - DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =====3 i [ s- ]0 r
- - x: T+ @7 F! s+ m) V) [
- ;======================== DAT NET IN & TI LE BAN VE =============================: j8 u8 W+ y/ j4 ]: ~& T
/ S0 \ }& p" Z: N6 _2 t0 r- ;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================
$ I; s u0 _, _2 F; A9 c t - ;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================7 C! @% |* H( f9 ]4 p1 _3 ?% R
- ;=============================11|07|2025==============================5 m3 m1 H* L8 w( O* C9 t, E
- ;Ti Le Ban Ve - 1 : 100/ \1 h5 [$ u D* v% s r E- r
- (Defun c:kta4 ()
+ U O5 ~- t8 A* A - (setq mv_sc 100);Ti le ban ve
/ {/ k& d. X; k+ t& e - (setq x4 297)( X; v: h, G% C) }# g8 w' u% y4 j7 p' m
- (setq y4 210)
2 P' ? }' T8 u! o4 ?; q5 V/ \0 C - (setq x4 (* mv_sc x4) ; [% m8 _" q( ]1 }% J5 n( Y V( M7 C
- y4 (* mv_sc y4) )
+ B% R- S( m% f8 A4 q - (command
! ]6 U2 g. y& J$ r) Q, v2 S - "LIMITS" "0,0" (list x4 y4)
6 A$ q4 A8 `) F3 Q' x - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
) Q4 g2 ^* f0 q& S+ |5 ^- o, n1 O7 D - ;Khung CHU NHAT Chinh * z6 ` M0 x* V2 ]
- "RECTANG" "500,500" "@28700,20000"
) E; y9 l( H7 V* R- y( C& n - "RECTANG" "700,700" "@28300,19600"2 I3 B% V. P# s* d$ n3 V% j
- ;Khung Ten Chung
3 s0 }. [9 F& O/ p! J0 C) k7 E! U. Z - "RECTANG" "700,700" "@8000,1250": ]8 j% G- j% M' ^6 Y
- "RECTANG" "700,700" "@17300,2500"
# |' s& j/ E } - ;Ten Ban Ve% q2 O3 Q' I1 @
- "RECTANG" "18000,700" "@11000,1250"
8 p3 _: B$ a3 s& L6 M: o7 w) O% D/ B - "RECTANG" "18000,700" "@11000,2500"
/ H6 G1 e0 Q$ T: y - ;Khung Ti Le + Ngay Thang Nam7 m/ [6 p4 Y5 z1 M p- J4 [
- "RECTANG" "22500,700" "@2000,2500"5 ~) e* g( s `' q+ m! F% }
- ;Khung CHU TRI1 Y5 o; I, F: ~% D
- "RECTANG" "8700,700" "@3800,2500"
9 R; o& g; L& y& {& y) u o - "ZOOM" "_a" ))! }% q" C! ]$ ?! M r
- ;=====================================================================6 Z" u5 G: B0 V" V7 i
- ;Ti Le Ban Ve - 1 : 100( G' i* Y6 J; A5 I6 v1 w
- (Defun c:kt4a ()
# a& O; E9 A- k+ l - (setq mv_sc 100);Ti le ban ve! h; }; j- _7 v) E$ [
- (setq x4 297)
' N: Y9 _6 Z! c& ^4 k - (setq y4 210), F1 {: f* Q6 {+ v7 d, \+ F. G
- (setq x4 (* mv_sc x4) " p A: _' e8 Q, [$ J
- y4 (* mv_sc y4) )8 V9 `% e3 \: K2 Y
- (command 1 m1 F7 z# u* @% P9 } Q6 e, l
- "LIMITS" "0,0" (list x4 y4)
- ` }/ a" P6 Z# P2 r& `! G - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"; ]+ s: {0 j' c) o/ @
- ;Khung CHU NHAT Chinh % t) j$ D7 F. I4 G
- "RECTANG" "2000,500" "@27200,20000"
5 ^2 [1 ]: M3 a2 \. A4 y5 B - "RECTANG" "2200,700" "@26800,19600"7 Z, [; ?0 f8 {3 D3 [* ~+ Y
- ;Khung Ten Chung( \# s& e d6 G! U/ G1 o
- "RECTANG" "2200,700" "@6500,1250"2 `; Y$ G1 d0 B5 f" v" F w
- "RECTANG" "2200,700" "@15800,2500"
! ~" J! m# Q5 g5 s - ;Ten Ban Ve }: K+ T/ k) Z. c ~7 r3 ?
- "RECTANG" "18000,700" "@11000,1250"+ P! J! |: q) @: R
- "RECTANG" "18000,700" "@11000,2500"
! z* L J: F0 o7 B2 v. C+ P; } - ;Khung Ti Le + Ngay Thang Nam
6 l$ h. U2 D4 d* C9 }5 p6 p - "RECTANG" "22500,700" "@2000,2500" n, n7 M( g5 t5 `, e* P; {
- ;Khung CHU TRI
& s# _7 a& r/ {! u Y3 p* o- B9 X! i - "RECTANG" "8700,700" "@3800,2500"
% p4 m3 Q+ f3 j6 M6 f: @ - "ZOOM" "_a" ))
, S! a0 l) C$ } - . j# Y9 Z9 n6 m+ u. y2 j
- ;;; ============================GHI CHU Khung Ten========================0 d% i2 |8 x: l, B( v2 v$ n
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========! A ~2 t! D- _0 g6 b
- ;;; =======================Thuong Dung Font Romant.vnh===================* n& r% n' o! m) y7 I8 t
* ?1 R3 Q% G: D( _- (defun c:GhiChu (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
+ n- q2 L; i m6 A! }0 H - (setq oer *error* *error* err2)3 L8 v ?5 j" S' ^$ x
- (PROMPT "\nChuTri. ThietKe. KiemTra. TiLe. Ngay. HangMuc. QuyMo. KieuNha. CongTrinh. KyHieu. TenBanVe. Kts. TranNgocThang. ")
/ b9 a' E* m3 V8 L. t( M4 Z% T2 U4 | - (SETQ Cpt(GETSTRING "\n(CT). (TK). (KT). (TL). (Ng). (HM). (QM). (KN). (CTr). (KH). (TBV). (Kts). (TnT). "))$ e4 ~7 z ~8 p- A' I. Z9 @% e- |
- (IF(OR(= Cpt "QM")(= cpt "qm"))(SETQ CPT ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông quy M« :"))7 I( }9 g. d; p/ `1 k* ~
- (IF(OR(= cpt "KN")(= cpt "kn"))(SETQ CPT ' "2 TÇng 1 Tum Thang"))
# i( ^) }8 p9 x O" O( C - (IF(OR(= cpt "CT")(= cpt "ct"))(SETQ CPT ' "Chñ Tr× :"))
8 n* x& N/ u# d9 X9 ` - (IF(OR(= cpt "HM")(= cpt "hm"))(SETQ CPT ' "H¹ng Môc :"))
# f* R5 F9 ^0 |% g0 v+ C - (IF(OR(= cpt "CTr")(= cpt "ctr"))(SETQ CPT ' "Nhµ ë Gia §×nh - Nhµ LiÒn KÒ"))
( B( U; [* g n/ U; o - (IF(OR(= cpt "TK")(= cpt "tk"))(SETQ CPT ' "ThiÕt KÕ :"))
& W" L3 I0 ?" o0 ?6 S - (IF(OR(= cpt "KT")(= cpt "kt"))(SETQ CPT ' "KiÓm Tra :"))
, I* _) Y6 l; C( J+ B) k - (IF(OR(= cpt "TL")(= cpt "tl"))(SETQ CPT ' "TØ LÖ :"))
2 E. i! r, l0 p7 x - (IF(OR(= cpt "KH")(= cpt "kh"))(SETQ CPT ' "Ký HiÖu :"))
! k/ V% `9 _) F2 E& j* V. N, [' e - (IF(OR(= cpt "TBV")(= cpt "tbv"))(SETQ CPT ' "Tªn B¶n VÏ :"))9 g: K$ o7 ~! e4 A8 i& Y% w4 m
- (IF(OR(= cpt "Ng")(= cpt "ng"))(SETQ CPT ' "Ngµy :")) b. b% Z5 W& Q
- (IF(OR(= cpt "Kts")(= cpt "kts"))(SETQ CPT ' "Kts. TrÇn Ngäc Th¾ng"))
$ g" I* R( b) P& s - (IF(OR(= cpt "TnT")(= cpt "tnt"))(SETQ CPT ' "TrÇn Ngäc Th¾ng"))
- @0 u% A k( H - (setq pta (getpoint/ c7 I& {# c W2 [3 l
- "\nPick first corner. : "))% A1 O* h$ N# Y+ M4 v% N
- (setq ptb (getcorner pta
/ J) k' T4 s5 w, }- B - "\nPick second corner. : "))
- R+ a1 k# F, K7 t( O( b7 m - (setq ptc (list (car ptb)(cadr pta)))
. b$ o8 n' C6 A+ w& B - (setq ptd (list (car pta)(cadr ptb)))5 F( h- i9 G1 ]9 p- Z# p! p% K- p
- (setq ang (angle pta ptb)) T% r+ O5 F. q0 ?4 D8 j
- (setq d1 (/(distance pta ptb) 2))3 |' S- X2 }( K j) c% \9 F z
- (setq cp (polar pta (- ang (dtr 0)) d1))
7 I5 \1 D6 q$ R, } - (setq X (distance pta ptc)); u% i! L: {2 w% R/ h
- (setq Y (distance pta ptd))
4 @$ N) E R+ i9 V - (setq X1 (rtos x 2 1))- ]$ L5 Z2 c& E% a" ?5 h
- (setq Y1 (rtos y 2 1))
" S; G7 ?4 Z/ J0 b - (setq rmsz (strcat "(" X1 " x " Y1 ")"))
& s9 G5 c8 _* p; C- ` - (command "TEXT" "c" cp "0" CPT "text" "" rmsz))7 C; u' F9 U7 [: @) ?- y0 }
- (defun dtr (angg)5 z( S0 {8 R* F6 ^; J9 r
- (* pi (/ angg 180.0)))& ~3 _( y/ O3 j
- 8 P/ o9 k, m7 g( n) d# i
- ;=====================================================================1 E* _4 H9 c- d
- ;==========================DAT KHO GIAY BAN VE - KIEU 1========================9 O0 T1 [, _1 {7 V
- ;=====================================================================0 D) l* C9 _* [" D* Y
- : g1 t6 H8 T9 @( O% B
- (Defun c:a6 ()1 w) p1 `2 X. [; y
- (setq mv_sc 100);Ti le ban ve9 ^4 t' F* `2 F% g! h8 {6 q
- (setq x4 74.25)
' s; Z7 U! k4 O# k+ _. d7 w& h. ] - (setq y4 52.5)
: G: B* ?$ M% k' S% v2 T - (setq x4 (* mv_sc x4) + ~5 E% P) u' O# ^! {# X$ t
- y4 (* mv_sc y4) )
3 o- k% z6 y4 }, M - (command
3 K# @( s! I: J) k4 C - "LIMITS" "0,0" (list x4 y4)( [6 D8 F U9 z3 [ ^
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
- K E5 c) d3 Q - "RECTANG" "125,125" "@7175,5000"
' `0 o- z* T& _6 e* |1 a - "RECTANG" "175,175" "@7075,4900", I, F1 `* y: S5 ^+ N" Q
- "ZOOM" "_a" ))
1 k6 q/ |7 \$ m4 N5 I" W: c- e - ;=====================================================================
$ {4 g) w: {' A2 y K- H7 N - (Defun c:a5 ()
! A2 \% Q! _3 r& F$ { - (setq mv_sc 100);Ti le ban ve4 v: }7 e5 C0 r3 s
- (setq x4 147.5): _" R8 W% z0 t8 ^, z* K
- (setq y4 104)
2 c7 }, A+ ~. G. B5 B4 r$ A - (setq x4 (* mv_sc x4)
# d& D# R A3 B' q' r - y4 (* mv_sc y4) )
0 s0 U& s! }# P( O4 Q - (command 0 N; j' M$ M" |- {7 c+ b
- "LIMITS" "0,0" (list x4 y4)
6 n$ f0 ?6 r1 p! k, b: i - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
. k- [7 m& r# _; q( o, g - "RECTANG" "250,250" "@14350,10000"
! `( D5 n2 t/ S5 U) h/ o' b; f' ^ - "RECTANG" "350,350" "@14150,9800"
8 g2 g+ P: Y. [. V4 g, A" t6 ?- o' b - "ZOOM" "_a" ))3 Y' f" ~/ k' }6 B. O) w
- ;=====================================================================) s5 V: i: ]: ]$ J& F# @! t. L
- (Defun c:a4 ()- I7 e7 |4 p3 }. h: y
- (setq mv_sc 100);Ti le ban ve
7 z: V, h+ x. K1 j& E8 p1 l - (setq x4 297)8 U2 M( J+ A% t9 z0 J2 v. ]" g8 d2 Z
- (setq y4 210)
# x1 J$ V% @3 ^' o5 R$ \5 u - (setq x4 (* mv_sc x4) # I7 K# P& j, H7 l% }
- y4 (* mv_sc y4) )9 T* Y* ]; `/ u1 B' I
- (command
' k7 I7 b0 ^2 Q2 c" p) E - "LIMITS" "0,0" (list x4 y4)$ o! `4 B5 z7 J5 |8 D
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
/ X( n1 |3 P" r - "RECTANG" "500,500" "@28700,20000"
" O( u; s! [0 o% g9 y) `+ Z - "RECTANG" "700,700" "@28300,19600"
* C3 R$ \% E6 u - "ZOOM" "_a" ))
, i7 A- A; B1 p$ Q - ;=====================================================================
" F8 F( \$ |6 P8 J. `! J - (Defun c:a3 (); y! X0 H% c; Q5 p% g
- (setq mv_sc 100)
* S& _& D" x F9 o - (setq x3 420)/ A/ Q q5 N4 `2 e3 K' f0 k
- (setq y3 297)
6 Y2 p# x5 r% {; ]& A - (setq x3 (* mv_sc x3) 3 m8 z% C0 u) Y) E0 ~
- y3 (* mv_sc y3) )5 Z7 Y6 C# }$ ~5 r# z+ h
- (command 8 T! w* ~" Y: a2 p
- "LIMITS" "0,0" (list x3 y3)
% A* G$ a" x, @4 G% } - "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
4 M4 |! @: w" b - "RECTANG" "707.14285714,707.14285714" "@40590,28285.71428571"6 d9 r1 X% c; Z' H
- "RECTANG" "990,990" "@40024.28571429,27720"8 n, L" _9 \4 v& }
- "ZOOM" "_a" ))
0 H. a0 L. {# |4 O, m' j7 d - ;=====================================================================
# c5 T, h( C( y8 f& ]8 r" C1 P7 U0 l - (Defun c:a2 ()6 u+ P9 {. k0 l% A! O( c; F
- (setq mv_sc 100)3 \. x$ V, ~+ T! ]( H6 o6 z/ t+ H
- (setq x2 594)
4 B2 k; X& _: [7 V8 c - (setq y2 420)/ \$ Q: g Q9 u, |% ~
- (setq x2 (* mv_sc x2)
* W8 I7 v* ` h8 k. Q" l1 F s - y2 (* mv_sc y2) )# {# H" B, ]) ^6 a1 r
- (command ( D6 }: L2 N$ m+ J! ^& f& b. X* Q( R
- "LIMITS" "0,0" (list x2 y2)
5 A6 S, n* s" r9 N - "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"' k8 w6 {; _1 b1 w( E5 ]2 M; H
- "RECTANG" "1000,1000" "@57400,40000"
( Q; M/ u) ~% n3 [% m. U - "RECTANG" "1400,1400" "@56600,39200"! R/ A# }$ c5 q9 M0 i
- "ZOOM" "_a" ))% C4 k, Q5 I% S7 E' A
- ;=====================================================================
+ r+ H5 z# e; @ - (Defun c:a1 ()
5 P( U$ i7 v0 S, N" R: h# I8 M+ G- g - (setq mv_sc 100)
* o; x# {( P# {; m- Y& ^ - (setq x1 840)
5 }9 R2 S" ~; S* ^7 } - (setq y1 594)2 m8 V" t! q% d
- (setq x1 (* mv_sc x1) . K" ]) R6 K& d6 A
- y1 (* mv_sc y1) )9 q9 z/ ~+ C9 O, p8 u e% b
- (command
& C" w, P1 @( I0 l - "LIMITS" "0,0" (list x1 y1)
0 B0 x8 K3 P- f) D# `2 g - "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"+ S; d; w+ o& o5 f5 U
- "RECTANG" "1414.28571429,1414.28571429" "@81180,56571.42857143"7 N9 N* U5 j6 C: ^: N, w
- "RECTANG" "1980,1980" "@80048.57142857,55440"( O" F- z4 q8 U$ H4 n2 R4 C
- "ZOOM" "_a" ))& q9 b1 |, L7 q. @% ?
- ;=====================================================================
, C# G+ d/ c4 N - (Defun c:a0 ()% k1 X+ g9 s; Y2 \
- (setq mv_sc 100)! @$ a* A" L& d: z$ d3 o
- (setq x0 1188)% W4 X5 y. q: [" A
- (setq y0 840)9 j: I: O+ s* T( f b
- (setq x0 (* mv_sc x0) : d) `6 y+ u& Z* E4 ?
- y0 (* mv_sc y0) )
/ ?; A; ~. {% }) E - (command 7 v: I- Y \( l j
- "LIMITS" "0,0" (list x0 y0)
! Y7 b8 w1 O3 d1 k) M/ Z6 m - "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"
. G; z6 h) K, i. \" E, w - "RECTANG" "2000,2000" "@114800,80000"6 C/ Q* m7 x6 R2 A5 g1 _/ z
- "RECTANG" "2800,2800" "@113200,78400"9 x6 ~/ v. a1 a7 [4 U
- "ZOOM" "_a" ))+ X6 z3 j6 K3 o7 d* |* T( u6 R# @
- ! j6 ? x& ^" P1 u4 A# W# r
- ;=====================================================================
c0 K# `7 C h" V% d - ;=========================DAT KHO GIAY BAN VE - KIEU 2=========================# F, Z3 ~8 I$ X) t8 a
- ;=====================================================================. t8 Y: T' B; c" Z
- $ N/ \: a5 }# m4 ]: l
- (Defun c:6a ()3 Y t3 s5 f3 o0 U6 _4 R- B5 X3 J8 E% F
- (setq mv_sc 100);Ti le ban ve
. W# O/ H& |8 ]1 @ - (setq x4 74.25)
6 G8 \8 t' ?& r4 k. ~0 w! v9 K - (setq y4 52.5)
7 Z* `, w1 ~+ m - (setq x4 (* mv_sc x4)
2 L1 l. S' @) | - y4 (* mv_sc y4) )
( i# B0 p2 O* n& c" O2 A; `; q/ ] - (command 7 g* Z8 N$ r8 g" Q; z; Y
- "LIMITS" "0,0" (list x4 y4)# A' D+ a. v$ ]
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
- H& t. b$ B* F# c - "RECTANG" "505,125" "@6800,5000"
& R# p2 M! c' ~ e) @/ ` - "RECTANG" "555,175" "@6700,4900" f0 `9 p$ ^1 D/ \
- "ZOOM" "_a" ))4 F2 x1 e- h9 e2 Z$ {
- ;=====================================================================
4 C3 B1 z8 F! Q0 v8 J/ x - (Defun c:5a ()3 W- Y/ a5 }/ v/ u
- (setq mv_sc 100);Ti le ban ve& C# v" K8 y- K1 t& y
- (setq x4 148.5)
; e' S# v5 E3 ~8 v) `1 S5 }! l& y - (setq y4 105)
$ A( e _6 e# z$ w2 E3 @: y - (setq x4 (* mv_sc x4)
v7 i @( B5 P! M+ M! N - y4 (* mv_sc y4) )* W4 L. H0 h( q5 y @
- (command 1 e8 l4 r, q% ^5 ]
- "LIMITS" "0,0" (list x4 y4), g- m. k6 E5 l5 r! m; l8 g
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"5 h8 C2 i: X7 I
- "RECTANG" "1000,250" "@13600,10000"
, V( s- [9 N2 r: v$ T1 ?! l/ X - "RECTANG" "1100,350" "@13400,9800"
$ o- a e9 @+ ]2 \0 T! \, P - "ZOOM" "_a" ))
, f8 N9 k! i3 r& W$ v d* ]: K - ;=====================================================================! Q1 H& v: d# q, l) B1 L& ?
- (Defun c:4a ()
3 c8 Z5 j/ W/ C( X& |$ u - (setq mv_sc 100);Ti le ban ve
! I9 N4 n3 r0 I - (setq x4 297)
6 |+ p$ i; B7 v" ^7 p) u6 e - (setq y4 210)# [$ ~$ d9 M) F6 C
- (setq x4 (* mv_sc x4) 6 Y! Z9 B. U: c# l7 z% x
- y4 (* mv_sc y4) )( X, m1 o: _8 y+ O" h
- (command . v8 `2 ~) ~! x$ K& u6 x! Q
- "LIMITS" "0,0" (list x4 y4)
" K2 f; @4 F8 x5 P; O- P- E" M6 }+ K - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"0 ~+ g% [0 K3 ^0 i( I$ E2 M$ {8 o
- "RECTANG" "2000,500" "@27200,20000"
" Z l+ {1 G% ^' E' K2 \/ ^ - "RECTANG" "2200,700" "@26800,19600"
+ N( j+ d% p% w: v% x - "ZOOM" "_a" ))
4 }" o- a' Q( h' Q% g - ;=====================================================================% t$ F A& F4 i- V: Y
- (Defun c:3a (). E5 ^) E6 v6 x. r
- (setq mv_sc 100)- m1 X% q( \6 i9 |8 p/ s; c
- (setq x3 420.0428571429)& ~5 G* r+ E6 Z
- (setq y3 297). T, L8 c a4 q3 m* Q
- (setq x3 (* mv_sc x3) 5 k) V/ ^' i# \$ J, N
- y3 (* mv_sc y3) )
4 z5 e& ]8 q. o" E8 l0 a; ~2 @ - (command * D6 j* w4 p6 q* o, B# m! h. w
- "LIMITS" "0,0" (list x3 y3)
6 l& _ u% X! C" ]) w - "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
- E( _2 G8 H0 U- C% I X - "RECTANG" "2828.57142857,707.14285714" "@38468.57142857,28285.71428571"# T5 v# [7 E4 Z
- "RECTANG" "3111.42857142,989.99999999" "@37902.85714287,27720.00000001"+ A6 F% I0 Q# X* U4 j3 \
- "ZOOM" "_a" ))7 |9 E V, |, O- r$ @
- ;=====================================================================0 d/ i3 i( @: x& `# ?; E
- (Defun c:2a ()4 G2 ` [7 |% J" [5 i
- (setq mv_sc 100)* u4 j2 Q7 g% z
- (setq x2 594)
F1 v. }0 D9 |5 ~1 T - (setq y2 420)8 F" l F4 p* R4 @
- (setq x2 (* mv_sc x2)
+ b; E2 y f5 L: ^3 r Z - y2 (* mv_sc y2) )( _, X. W3 d, @/ ~& l( |
- (command
/ W( S6 ]% d; C( O- A0 Z: k - "LIMITS" "0,0" (list x2 y2): \9 I. T# T& B( T; U- z
- "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"1 ^# A2 g+ R) }* \6 V9 y! T
- "RECTANG" "4000,1000" "@54400,40000"4 E' z" C7 F5 i: a7 f1 u- ?
- "RECTANG" "4400,1400" "@53600,39200"
( \( V3 }9 t( Y& g I9 u5 F - "ZOOM" "_a" )); i) v4 F5 W6 j8 x. N# s5 Q
- ;=====================================================================9 S, y. t8 |4 v: W" [
- (Defun c:1a ()1 V* v; O$ }, R1 S! Y
- (setq mv_sc 100)+ z. e4 q% s+ ~$ e# `2 H% O l
- (setq x1 840.0857142857)4 L2 ?+ \4 h8 f. ?$ G
- (setq y1 594); B& H5 t$ B5 b; N
- (setq x1 (* mv_sc x1)
6 |; P9 w, w e! v3 p8 H w' { - y1 (* mv_sc y1) )
9 e7 z: O+ D; q+ Y, s. V - (command $ U4 N1 K V! D8 t7 C
- "LIMITS" "0,0" (list x1 y1)
; G. n* ~& |/ y7 X# A. L - "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"
0 l4 e T& |, t0 ]% n' \6 g9 a - "RECTANG" "5657.14285714,1414.28571429" "@76937.14285714,56571.428571436"
/ \! n1 L& Y7 ~ - "RECTANG" "6222.85714286,1980.00000001" "@75805.71428570,55440"8 m8 ^& }: T; ?: b
- "ZOOM" "_a" ))
: |9 p1 j' ^" ^ - ;=====================================================================
0 }' a; Y( H: K2 B- P. r - (Defun c:0a ()
9 s7 l/ Q7 `- l$ @% h$ l - (setq mv_sc 100)
" e( y. Z4 r+ B$ S - (setq x0 1188)
; W8 J1 _4 R( \/ x- ~4 Y' u - (setq y0 840)) ~5 n6 _. L7 a* ^& s u
- (setq x0 (* mv_sc x0)
6 d3 T$ F' l9 @4 a) R N, L) k - y0 (* mv_sc y0) )
5 N+ Z5 _9 U0 I7 y/ A& _; Z - (command
% d' i$ i9 _4 B* ]' r1 Y - "LIMITS" "0,0" (list x0 y0). m3 s. _ V P& N# w; F
- "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"
6 I9 ^0 H0 F$ d# S& p: k) U - "RECTANG" "8000,2000" "@108800,80000"1 V4 w" c: ~- ]$ l+ i
- "RECTANG" "8800,2800" "@107200,78400"
$ p2 I& v. ?4 X: e+ K$ h7 q: g* S. D8 i - "ZOOM" "_a" ))- I$ p( L! i }
- 7 {2 ?* f3 m2 R: I0 a) Y( L
- ;=====================================================================
, ]0 k0 g+ u5 @# \2 d" j: i - ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================
% G q) u+ q" @2 y - ;=====================================================================
+ \/ y; i* D8 J" L, X% ^5 ? - (defun c:khogiay (/ oldlst a b c d e f g h kho TL); J' K4 r$ K" K3 m+ b/ `1 O
- (command "undo" "be"); Y, o# \ v X$ O; s
- (setq oldlst (mapcar 'getvar (list "CMDECHO" "OSMODE" "cecolor")))2 A( h1 l9 C1 D
- (setvar "CMDECHO" 0)
$ h* u$ E, Q) v - (setq a (getpoint "\n chon diem chen :"))
W5 Y9 @ y, d" a2 t1 N - (if (not TL) (setq TL 1.00))) N( w; q( D6 D& k, `. g# g
- (setq TL1 (getDIST (strcat "\nScale <" (rtos TL 2 2) ">:")))5 y1 z. A" [( F' B9 t8 \
- (if TL1 (setq TL TL1))9 t i6 o+ X+ f7 i+ z
- (setvar "osmode" 0)- e! f4 V0 G/ B0 ^2 c& Q
- (if (not (tblsearch "layer" "Defpoints")) (Command "layer" "N" "Defpoints" ""))/ l! n5 t0 q$ D9 x. d
- (initget "0 1 2 3 4")
$ l* G/ S8 Q# Y7 P" h, {4 s/ J - (setq kho (getkword "\Kho A0 _ Kho A1 _ Kho A2 _ Kho A3 _ Kho A4 [0/1/2/3/4]? <0>:")): }* ]# @7 \+ x
- (if (= kho "0") a9 E* ^# I3 K- [
- (progn
% E) B/ m& ^7 F+ T - (setq b (polar a 0 (* TL 1189)))
: V! ]) [' i* O - (setq c (polar b (/ pi 2) (* TL 841)))- v' E- O' N# @& m. z( ] {$ \
- (setq d (polar a (/ pi 2) (* TL 841)))8 G6 [! T+ N6 I, Z; K1 f* p
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))
& D' E% w/ Y, U0 M - (setq f (polar e 0 (- (* TL 1189) (* TL 24))))7 D E4 i9 r+ M5 a6 [
- (setq g (polar f (/ pi 2) (- (* TL 841) (* TL 24))))
1 D4 C. _0 v- q- p* L0 y - (setq h (polar e (/ pi 2) (- (* TL 841) (* TL 24))))
. F- \; f& r; a; R - (command "Pline" e f g h "c")
( x1 j8 |5 Z+ s( `( ] - (command "change" "last" "" "properties" "layer" "0" "")
1 A0 x; I7 q# x2 [ - (setvar "cecolor" "4")7 k' T; K6 Y: @3 B! o
- (command "Pline" a b c d "c")$ n+ u' W2 z6 @; j: s: p4 v' d% v
- (command "change" "last" "" "properties" "layer" "defpoints" ""))) / c; R+ f% `6 [- n, B
- (if (= kho "1")) N; M% p9 y, q- T: ~5 F
- (progn
8 M- L8 j/ ^2 |) S4 ] - (setq b (polar a 0 (* TL 841)))
- Z5 i+ _ O' b# c! \" O - (setq c (polar b (/ pi 2) (* TL 594)))
* a; P8 e3 q- N4 @7 c, C. O - (setq d (polar a (/ pi 2) (* TL 594)))! \% ], {$ D# y* H' l( U5 n
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))
X+ j" Y7 _3 B, {9 i3 w - (setq f (polar e 0 (- (* TL 841) (* TL 24))))6 H2 l6 V. J& }/ M" V" W9 k
- (setq g (polar f (/ pi 2) (- (* TL 594) (* TL 24))))
" A$ C9 V1 D, Q. t# c5 D - (setq h (polar e (/ pi 2) (- (* TL 594) (* TL 24))))- \2 v) J6 L; } H. Z+ p
- (command "Pline" e f g h "c")
; |, C" n+ Q y& D - (command "change" "last" "" "properties" "layer" "0" "")
' T& y* g3 y3 q0 V8 V7 | - (setvar "cecolor" "4")
3 m8 z& v, ^! O7 K- Y7 ~, u& r - (command "Pline" a b c d "c")
( ]/ u. l# W/ H# J - (command "change" "last" "" "properties" "layer" "defpoints" "")))) \( y3 \; K, s9 ?* F
- (if (= kho "2")9 b5 }1 h" o" J* U; B2 q+ o
- (progn, S5 _! E3 Q: V( C5 b+ p8 m
- (setq b (polar a 0 (* TL 594)))! U" G/ t: c9 U- f6 j7 S
- (setq c (polar b (/ pi 2) (* TL 420)))
* ~- K: s, T8 i4 V- x! o - (setq d (polar a (/ pi 2) (* TL 420)))3 `0 W& {, N" T- T" j
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))8 a) {( K, ^& w3 S) T9 E9 J
- (setq f (polar e 0 (- (* TL 594) (* TL 20))))$ i* m7 L0 ?/ b9 S3 F+ n
- (setq g (polar f (/ pi 2) (- (* TL 420) (* TL 20))))
- |% n. A+ c& B1 a; ^$ X9 W' ~ - (setq h (polar e (/ pi 2) (- (* TL 420) (* TL 20))))( i2 v* ?$ R3 r U! \$ J/ S
- (command "Pline" e f g h "c") ) @0 Y6 Q8 e" M0 g7 |
- (command "change" "last" "" "properties" "layer" "0" ""). [) W) L! F# }& S
- (setvar "cecolor" "4")
; v$ Y+ z A6 @7 G) D - (command "Pline" a b c d "c")
/ c. i" h+ ?4 y8 B3 s4 B - (command "change" "last" "" "properties" "layer" "defpoints" "")))1 B" n: \6 P4 M/ e. K
- (if (= kho "3")
8 P" @: Y: `5 J - (progn7 u( X' X8 s1 s- Z
- (setq b (polar a 0 (* tl 420)))
% O. W2 v3 c, Y4 r# J: p( s - (setq c (polar b (/ pi 2) (* TL 297)))2 n! F, ^' K; h& m
- (setq d (polar a (/ pi 2) (* TL 297)))
$ h* G) c9 j+ X! o/ a! m - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))
0 F8 K. H2 l9 E5 q' X8 l( f; c - (setq f (polar e 0 (- (* TL 420) (* TL 20))))( S; a. G5 R' x8 @2 j
- (setq g (polar f (/ pi 2) (- (* TL 297) (* TL 20))))9 ]( N% N0 d! V4 ^
- (setq h (polar e (/ pi 2) (- (* TL 297) (* TL 20))))
2 {9 h6 N( e# n) B% j' G - (command "Pline" e f g h "c")" |2 u4 y( E5 x2 ]- J+ B5 v! B
- (command "change" "last" "" "properties" "layer" "0" "")
+ p* t$ s0 b5 h7 d; V - (setvar "cecolor" "4")
/ |) f( j" l2 M+ h( ?& F, t - (command "Pline" a b c d "c")
* _" l! H7 u# v+ W W$ T* m - (command "change" "last" "" "properties" "layer" "defpoints" "")))
) [& s8 X) Q) ?1 c6 u$ ?9 O9 p, W - (if (= kho "4")
; R: A& t( b+ s I5 h2 n* L: C& d - (progn6 A: ~( `9 S6 |4 v
- (setq b (polar a 0 (* TL 297)))/ |7 U4 V* O2 E9 g: C
- (setq c (polar b (/ pi 2) (* TL 210)))1 }! G( c! ]8 [( x9 \) T' }9 W
- (setq d (polar a (/ pi 2) (* TL 210)))
]. O; p* w+ e7 J9 z3 {/ x# R - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 81)))))6 a0 B3 |! R$ z% a4 w8 b7 j, `
- (setq f (polar e 0 (- (* TL 297) (* TL 18))))/ v0 ^, H0 t5 v# Y& W- {- q
- (setq g (polar f (/ pi 2) (- (* TL 210) (* TL 18))))1 _, a: |& C9 L! U% D
- (setq h (polar e (/ pi 2) (- (* TL 210) (* TL 18))))% q4 {2 S) F7 _7 V
- (command "Pline" e f g h "c") d [1 m+ s8 A% m9 U) |# @
- (command "change" "last" "" "properties" "layer" "0" "")# A- _( d% y; h( @$ n4 n
- (setvar "cecolor" "4")
- a% p. j: M! U6 g6 P% ?2 I - (command "Pline" a b c d "c")
% f7 K9 `9 t9 e2 g) ? - (command "change" "last" "" "properties" "layer" "defpoints" "")))
7 p# P8 f2 x' T) J0 b/ i1 ] - (mapcar 'setvar (list "CMDECHO" "OSMODE" "cecolor") oldlst)6 F* ]3 c8 N% d1 ~( V- v2 w5 B/ C
- (command "undo" "e")( T$ S4 s, G& D1 x3 T0 N8 H# @) p
- (princ))7 \! f' [. ?* q1 `0 G: v& ^
- ;=====================================================================& B. {* R" ?( t1 f1 B$ |
- ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================
/ Q- b8 G/ Y( a - ;=====================================================================
# ^2 D; e1 Q2 Z9 P3 E8 d - $ Y$ s4 \# l2 E+ q$ g4 p; B
- ;=====================================================================9 O( y% V2 v; w' r* I
- ;===================DAT Ti Le Theo KHO GIAY BAN VE====================- u" L( E: j) W8 T% k1 q
- ;=====================================================================
9 ]9 ^7 x3 u+ a - ( n; a+ m5 ?- ~- g( g% o9 b
- (DEFUN C:SA6 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.1" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""
/ K6 b' ^8 ?% D G1 N - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.3" "": [# S$ l& v6 }) N
- "M" "MANH" "C" "9" "" "Lw" "0.1" ""
2 q" r s: [) U' W* V; V+ ]- F - "M" "TEXT" "C" "7" "" "Lw" "0.12" ""3 X: y( _6 m# ?( u" N8 e9 [7 b+ F
- "M" "DIM" "C" "1" "" "Lw" "0.12" ""
$ Y# A6 f! E9 V - "M" "THAY" "C" "7" "" "Lw" "0.2" ""0 F7 O! W. H! W9 j7 ]
- "M" "NOITHAT" "C" "3" "" "Lw" "0.12" "", p5 V" L/ M# M* Y2 A3 y
- "M" "HATCH" "C" "5" "" "Lw" "0.1" ""+ o6 A2 U; c/ ~" L9 L; ]: \. D
- "M" "COT" "C" "1" "" "Lw" "0.3" ""# d/ N% I, f& e" S# F+ o2 I+ t3 `
- "M" "Defpoints" "C" "7" ""9 m5 f2 z. E) x) i5 ?( }4 I0 [% p
- "M" "0" "C" "3" "" "Lw" "0.12" ""* B- c: |/ j+ \9 ?9 y0 E
- "M" "CUA" "C" "6" "" "Lw" "0.12" ""
; F, W {/ [5 W5 c' o% U* }& F8 s - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""( H8 E/ d" Y# [* l/ j, D @
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.1" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "3" "")) ^9 Q, S4 P1 {* ~) I
- (DEFUN C:SA5 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.12" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "10" ""
5 U7 J. W# ~/ K+ U2 } - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.4" ""
$ L n3 i2 ]3 V! f% o% e - "M" "MANH" "C" "9" "" "Lw" "0.12" ""
5 o- y' w& z! Q# E2 R, O - "M" "TEXT" "C" "7" "" "Lw" "0.12" "" U% |8 j1 D" ~( h) g! J
- "M" "DIM" "C" "1" "" "Lw" "0.2" ""
- {6 q! o; x" D5 i0 N - "M" "THAY" "C" "7" "" "Lw" "0.2" ""
4 v1 L) o6 ?( f- l - "M" "NOITHAT" "C" "3" "" "Lw" "0.2" ""; |9 F) M2 v- a" ?7 P& i
- "M" "HATCH" "C" "5" "" "Lw" "0.1" "". g6 T$ K7 {. i' m
- "M" "COT" "C" "1" "" "Lw" "0.4" "" e! d6 [* x. S% X
- "M" "Defpoints" "C" "7" ""
; o }, L4 [6 U - "M" "0" "C" "3" "" "Lw" "0.2" ""! y: f7 c5 z7 G3 W; p
- "M" "CUA" "C" "6" "" "Lw" "0.12" ""
8 A: {3 V! ?3 p" ] - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""
) Y T$ c! O7 Y- f ^; d0 K - "M" "TIMTUONG" "C" "5" "" "Lw" "0.15" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "5" ""))9 p8 e+ p$ a3 ^# X& i% K
- (DEFUN C:SA4 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.2" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "20" ""8 }+ ?! T7 r# K& U9 j/ R
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.6" ""
6 R- ~% O3 e7 K; e: X4 z R$ N: p - "M" "MANH" "C" "9" "" "Lw" "0.2" ""
& a! k! i2 A2 e8 i - "M" "TEXT" "C" "7" "" "Lw" "0.2" ""3 P* m# |* X* w- L/ x: O
- "M" "DIM" "C" "1" "" "Lw" "0.25" ""# S* d* T* G; q* v, c
- "M" "THAY" "C" "7" "" "Lw" "0.35" ""
6 P- y. v& q5 X) i' _/ v+ A - "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""* p: m5 V; @7 ]$ i7 |
- "M" "HATCH" "C" "5" "" "Lw" "0.15" ""
$ U4 b1 I' B# |# t% S: a - "M" "COT" "C" "1" "" "Lw" "0.6" ""- z% M! N ]) O9 |( C; b* p" c* C
- "M" "Defpoints" "C" "7" ""- ^6 O7 d0 K" ~* ^0 Q# f
- "M" "0" "C" "3" "" "Lw" "0.25" ""
7 x4 u9 f4 }8 f( N% T+ X5 P$ X - "M" "CUA" "C" "6" "" "Lw" "0.25" ""5 N4 T# s+ ~7 d7 }6 ~
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.25" ""6 ^- O; m8 x: ]0 x2 H {
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.2" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" ""))4 x3 |& C0 ~4 ~
- 5 }2 ?* k7 h# Z8 X6 v
- (DEFUN C:SA3 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "30" ""* ~- d! K) `& P$ R' I
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" "", F T$ g3 I8 S. f+ L$ A
- "M" "MANH" "C" "9" "" "Lw" "0.25" ""& M4 l5 e% @: `
- "M" "TEXT" "C" "7" "" "Lw" "0.2" ""
8 ]. n( f1 p% e( d# Q4 M; ] - "M" "DIM" "C" "1" "" "Lw" "0.35" ""; \+ ~% {: k9 l$ t3 o7 c/ z4 y
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""
! V" I9 H- S- g4 m6 ? - "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""4 @. J+ A- H" O- ]# G7 e
- "M" "HATCH" "C" "5" "" "Lw" "0.2" ""8 Y; V% n, {; n1 g0 F
- "M" "COT" "C" "1" "" "Lw" "0.7" ""
( X# Z' ^; |6 c K - "M" "Defpoints" "C" "7" ""
- _# i9 A+ M5 G! @! \' L - "M" "0" "C" "3" "" "Lw" "0.25" ""1 A5 `0 ~% [8 U$ X2 M; P3 u) q7 U$ b
- "M" "CUA" "C" "6" "" "Lw" "0.35" ""
: z0 o2 B- X# i - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""
5 R6 b! A5 Y8 o - "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "20" ""))(PRINC), [$ k$ Z* |3 C3 p
0 e; T) C: O. B- (DEFUN C:SA2 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "45" ""& M1 L$ x$ ^# I+ F5 E
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""( k; g8 b; Z n9 M% J! l
- "M" "MANH" "C" "9" "" "Lw" "0.25" ""' Z) i6 C, y8 _; \& ~
- "M" "TEXT" "C" "7" "" "Lw" "0.25" ""
% U f2 V3 P# L - "M" "DIM" "C" "1" "" "Lw" "0.3" ""
! M8 p/ F @: N: D4 | - "M" "THAY" "C" "7" "" "Lw" "0.4" ""
3 D0 E4 x# C( ~/ C# M8 [ - "M" "NOITHAT" "C" "3" "" "Lw" "0.3" ""& N4 O; G9 u: {# ?! z2 H6 e
- "M" "HATCH" "C" "5" "" "Lw" "0.2" ""
4 C: f4 T3 O$ n' f4 l1 m - "M" "COT" "C" "1" "" "Lw" "0.7" ""
# A+ _- j$ z9 y. s# P - "M" "Defpoints" "C" "7" ""
; d1 J5 z& q; v9 h+ V3 a4 v - "M" "0" "C" "3" "" "Lw" "0.35" ""+ X% J6 |: R5 q3 u" ]: R5 p' C+ w- c
- "M" "CUA" "C" "6" "" "Lw" "0.35" ""
m4 s2 G% F2 O7 V - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""
' [6 s4 r& B% \8 ^1 f$ H# z - "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "30" ""))
2 u' o# K' n6 t: e
z/ b# x! q" l4 ~5 \ j6 G- (DEFUN C:SA1 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.4" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "60" ""
6 Z3 I, {) P5 B1 h3 Y" F9 c, | - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.85" ""; F5 n' z/ i* R9 E
- "M" "MANH" "C" "9" "" "Lw" "0.35" ""
% v B. m9 m1 L* V0 ? - "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
& C& }3 m/ _; |* |- y - "M" "DIM" "C" "1" "" "Lw" "0.35" ""0 B& K6 {7 y$ u! K
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""
0 Z: S7 |% U4 L2 G - "M" "NOITHAT" "C" "3" "" "Lw" "0.35" ""
* m5 ~! R4 T0 @: b - "M" "HATCH" "C" "5" "" "Lw" "0.25" ""
$ Z6 R; o" X6 ?2 W @ - "M" "COT" "C" "1" "" "Lw" "0.85" ""
$ O' ^7 ^' P' A2 i2 y# m - "M" "Defpoints" "C" "7" ""
+ I/ w$ [+ f# h. k f - "M" "0" "C" "3" "" "Lw" "0.35" ""% T. D: v' G) J2 A; H$ w
- "M" "CUA" "C" "6" "" "Lw" "0.4" ""+ K+ ^; u8 G* E/ V
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.35" ""
; D1 l6 J6 H/ Y' S - "M" "TIMTUONG" "C" "5" "" "Lw" "0.3" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "40" ""))1 u- ~; x2 J6 v: a0 P. h6 r3 I
-
4 m- o& k4 ?, D) P; C - (DEFUN C:SA0 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.5" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "85" ""+ B S; F! n& Z' L7 G2 T: l# Z# [
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1" ""
" a R& f0 c1 L) m! t - "M" "MANH" "C" "9" "" "Lw" "0.35" "" y3 x$ M% W$ V# Z9 B6 X/ m
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""! f. j8 Z; a% m$ H7 l' M5 u3 K) c
- "M" "DIM" "C" "1" "" "Lw" "0.35" "". @6 v }( J+ L4 N q
- "M" "THAY" "C" "7" "" "Lw" "0.5" ""* d4 f. @6 n. q, H1 r* H2 t; i9 [
- "M" "NOITHAT" "C" "3" "" "Lw" "0.4" ""; ^9 o# V% s) a7 V
- "M" "HATCH" "C" "5" "" "Lw" "0.35" ""
4 ]- z( u+ ?0 O! I; t" A" | - "M" "COT" "C" "1" "" "Lw" "0.1" ""
# @# J% i) v0 F1 q$ l6 e, A - "M" "Defpoints" "C" "7" ""% {8 u) _* ?2 f! [
- "M" "0" "C" "3" "" "Lw" "0.5" ""8 d: s! X) g6 w8 T
- "M" "CUA" "C" "6" "" "Lw" "0.5" ""
+ I' e9 \2 O; }0 f% e l" { - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.4" ""
/ Y. \5 E$ d; [9 }5 R2 B9 J - "M" "TIMTUONG" "C" "5" "" "Lw" "0.35" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "55" ""))9 Q/ G7 y3 V" c% Q! L. P& r
- (DEFUN C:O () (COMMAND "OFFSET"))
8 r& s% H# M# U- b6 `* [' Z - (defun c:s1 () (command "surftab1"))# b* P' `( Y' l. ]' I# ]) A( n
- (defun c:s2 () (command "surftab2"))
: l7 i4 D3 y# [- `3 L, ~) F+ F - (defun c:ep () (command "explode"))
/ `4 y& i* f' c* I - (DEFUN C:QS () (COMMAND "AUDIT" "Y" "purge" "all" "*" "N" "QSAVE"))
! f/ d9 t$ f. l - (DEFUN C:QV () (COMMAND "QSAVE"))
0 B" j( `8 P. z1 J1 I2 N& J; @ - (DEFUN C:S () (COMMAND "STRETCH" "C"))& q8 X% v. |5 F2 G
- . S( X" g0 c F. \& u
- ;************************** CAT DIM **************************- f N) N7 s, t9 [" \
* Q9 @/ I7 P) m+ [9 d4 Z- (DEFUN C:DC (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I3 t# w6 E8 v, i3 W
- PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)
/ ^+ C6 e- G8 i: d+ \ - (SETQ CMD (GETVAR "CMDECHO"))9 o* u0 T7 N6 `4 g: y1 a8 V
- (SETQ OSM (GETVAR "OSMODE"))
, ^* l4 Z( D! b) `" A% ] - (SETQ OLDERR *error*) c" p7 k" W4 P2 Z' r
- *error* myerror)
; x, n* j+ E' Y* u& ^, Y - (PRINC "Please select dimension object!")
4 C; L- M& @" q+ c( H+ Y/ ?! k - (SETQ SS (SSGET))
1 S8 U0 u2 S* B5 T: F/ } - (SETVAR "CMDECHO" 0)
2 c( [( \3 |0 R4 P - (SETQ PT (GETPOINT "Point to trim or extend:"))- F8 O5 I' ?+ z. Z2 l$ u* t
- (SETQ PT (TRANS PT 1 0))
% G- r# K" [& W: P! g/ Z - (COMMAND "UCS" "W") e" G0 ^* G$ H$ z- S6 ~; I
- (SETQ LTH (SSLENGTH SS))
6 d/ |' i a, i ]) y% v; \, s - (SETQ DEM 0)3 i) \ u* T L# o2 S1 ]' m: c( }6 Z5 Q
- (WHILE (< DEM LTH)
) f/ Z [9 v9 |2 ^ - (PROGN
& I. {8 r$ x0 E8 K% k/ W - (SETQ DS (ENTGET (SSNAME SS DEM)))
: g( U- D" ~8 c- H0 N n - (SETQ KDL (CDR (ASSOC 0 DS)))
5 E8 l4 a8 k1 o- B& r - (IF (= "DIMENSION" KDL)
5 V. v* U" p; P4 t3 N - (PROGN$ q5 y6 l( d$ ~
- (SETQ PT10 (CDR (ASSOC 10 DS)))& n9 G0 b6 n% m7 o) ~
- (SETQ PT11 (CDR (ASSOC 11 DS)))
4 l0 T8 i/ O/ Y( f/ ]8 \% ? - (SETQ PT13 (CDR (ASSOC 13 DS)))
! {+ A o" t$ x7 F: t( x8 W2 h - (SETQ PT14 (CDR (ASSOC 14 DS)))
: l: H/ N$ w* y' M8 L - (SETQ N70 (CDR (ASSOC 70 DS))) B) G+ W' @/ N# S
- (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))5 _3 v" @9 W& T0 B
- (PROGN+ Y6 H+ V. |; T' {
- (SETQ GOCY (ANGLE PT10 PT14))
2 S0 F0 F9 F! _1 y. g - (SETQ GOCX (+ GOCY (/ PI 2)))
1 C0 m; e( O) Q8 D( V) j6 c - )8 o& [5 l) p% ~! d4 e
- )
4 t) p8 m) ?7 S; X* M" i1 ?4 A - (SETVAR "OSMODE" 0)0 i" F7 r5 s* Y
- (SETQ PTI (POLAR PT GOCX 2))1 F: q7 g: N4 o3 \. `
- (SETQ PT13I (POLAR PT13 GOCY 2))
" W7 `3 `/ u1 y( q. M; m; a! g - (SETQ PT14I (POLAR PT14 GOCY 2))
7 k4 X" ]# A5 V- O - (SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))( I/ T- \9 `3 ~% Z, M, |
- (SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))" y4 N6 z- r+ p* x
- (SETQ O13 (ASSOC 13 DS))3 r0 l. r3 |7 G# n$ h" { Y
- (SETQ O14 (ASSOC 14 DS))0 n2 l, P9 x; ]3 m9 M6 f
- (SETQ N13 (CONS 13 PT13N))
/ O- y7 W& Z* C - (SETQ N14 (CONS 14 PT14N))
1 N3 z' V; u) `0 G. `" M( a - (SETQ DS (SUBST N13 O13 DS)) |5 }* ]5 _! j' _- [' `2 p9 t
- (SETQ DS (SUBST N14 O14 DS))
& t7 w: s% l/ W4 j9 b! m: G( u/ _ - (ENTMOD DS)5 H- p( t: D: c6 a
- )
. N0 h2 j& L# |& T) g4 C - )+ p( V/ l! n/ d- G
- (SETQ DEM (+ DEM 1))8 g. C4 G. D8 s3 d: r
- )
' ?8 D5 S0 m! _, V C+ ] - )) F$ Z5 S9 X) q" p
- (COMMAND "UCS" "P")
0 ~! R' B/ n9 e: A - (SETVAR "CMDECHO" CMD)
B* \# k `' q3 M# z - (SETVAR "OSMODE" OSM)$ C' i% [5 V0 ^9 o
- (setq *error* OLDERR) ; Restore old *error* handler# {0 O, c) c# J/ ^
- (PRINC)
# h& r C3 c+ j/ I* w - )
* D2 g& Y5 l; N3 ~
. f& Q4 B6 P) v# S/ x! C+ }- (DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI
& s, u: b+ O! I, Y9 z0 P$ V# G0 R* O - PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)
9 T# p- Y. I* u( n/ V1 S - (SETQ CMD (GETVAR "CMDECHO"))
2 Q+ ^: v, Z& S- g. B5 i - (SETQ OSM (GETVAR "OSMODE"))
' \/ Q7 O$ f, p$ @ - (SETQ OLDERR *error*
{# _) `- d7 V6 y - *error* myerror)% i- e) S$ C' c, x
- (PRINC "Please select dimension object!")- z% R- ]; G; [ |2 }; r% h
- (SETQ SS (SSGET))
+ g! M X5 M# _ - (SETVAR "CMDECHO" 0)* n1 @- ^6 f& |5 T' r1 z# o7 q4 C
- (SETQ PT (GETPOINT "Point to trim or extend:"))" B& p# D! y; J
- (SETQ PT (TRANS PT 1 0))* g" v, x- ?, m+ J8 c
- (COMMAND "UCS" "W"): K* |4 M2 k9 B7 S7 ^8 Q( e
- (SETQ LTH (SSLENGTH SS))
1 S" S7 x4 A! ] - (SETQ DEM 0)
) S% U0 c1 O& h& I" @; e& ^ - (WHILE (< DEM LTH). b5 U' {1 a: H/ Z4 Y
- (PROGN
: c; s* x4 l& M d5 w3 `% ]# J - (SETQ DS (ENTGET (SSNAME SS DEM)))
6 ~/ h8 P6 s( M' a - (SETQ KDL (CDR (ASSOC 0 DS))), @7 [' l b$ s& o
- (IF (= "DIMENSION" KDL)
- r& C$ q' Z& k$ q5 O6 y& _( i - (PROGN
$ w# n; u, u4 B% _3 E - (SETQ PT13 (CDR (ASSOC 13 DS)))
3 L$ k( s, L4 k$ I! T( w - (SETQ PT14 (CDR (ASSOC 14 DS)))$ F4 S+ Q0 }. {5 ~% y# P: w
- (SETQ PT10 (CDR (ASSOC 10 DS)))& U/ S& y) H* l. f
- (SETQ PT11 (CDR (ASSOC 11 DS)))% Z+ R3 B2 i @& I$ p$ o
- (SETQ N70 (CDR (ASSOC 70 DS)))
# m: b, D2 [0 g/ x- _3 [, t - (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))3 ^7 t& G3 ]0 O8 q, H, J9 ?7 g' v
- (PROGN
4 H, P$ {( X8 j) N; h* `; o5 J& ~+ n - (SETQ GOCY (ANGLE PT10 PT14))1 ^6 j# }3 Z' G. \, L+ K
- (SETQ GOCX (+ GOCY (/ PI 2)))- `$ q& I' Q; T- r
- )
* e" z# o& g! C% k9 i - )7 c3 Y: P4 \2 r0 P- G
- (SETVAR "OSMODE" 0)1 R& h2 s5 m4 Z. r4 @. C% a' Z
- (SETQ PTI (POLAR PT GOCX 2))
. E5 @* [( S' n2 i& i, W# C' r - (SETQ PT10I (POLAR PT10 GOCY 2))9 Y" j* j# i( n2 v# @4 E
- (SETQ PT10N (INTERS PT PTI PT10 PT10I NIL)), j, ^8 @9 Q: f
- (SETQ KC (DISTANCE PT10 PT10N))
! {3 I' t% T$ y* P; a- ]& g% h - (SETQ O10 (ASSOC 10 DS))( l. A6 U9 P/ U8 i0 X1 b% ]
- (SETQ N10 (CONS 10 PT10N))$ m' r6 j- N: F* Q
- (SETQ DS (SUBST N10 O10 DS)); j/ `6 Y- X! P
- (SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC))1 O& B) Y2 }! x4 a
- (SETQ O11 (ASSOC 11 DS))* q. g% d* N- c, W _+ n' M5 V& S
- (SETQ N11 (CONS 11 PT11N))+ {" \0 x5 q8 {$ m; c
- (SETQ DS (SUBST N11 O11 DS))
3 X# k4 T" V' X; u$ G1 j - (ENTMOD DS)
3 b2 D, e+ B4 v! U+ ?6 E. F - )2 t4 S" k f& D4 D5 T2 q
- )- R5 c- g* ~$ y
- (SETQ DEM (+ DEM 1))
5 K- K0 {: `% d4 x7 o - )$ D, W1 N+ x B! u
- )
4 z2 c6 ]1 Y: f - (COMMAND "UCS" "P")
+ R4 k1 d0 X' n8 q+ k, `' o4 F - (SETVAR "CMDECHO" CMD)
% z6 u2 F2 p* E* I - (SETVAR "OSMODE" OSM)4 D# F0 K; J; J' A% c( Y$ t p
- (setq *error* OLDERR)+ d* H, m0 e. W0 K- f8 X9 e- _
- (PRINC)
9 C$ w& S/ R/ O" b6 N - )
$ u6 F' y0 U8 R0 ]" @ - * }; l# g) @: |- j$ [
- ;;; ================ BAT - TAT CHE DO GACH CHAN TEXT (TU) =================
# u% P1 o4 F6 F' T9 r \1 a0 n. ^ - ) e! K! [9 `% h% [$ N
- (defun c:tu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can gach chan ")) L( u- S! u% j0 @' N/ p
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
7 V1 v& ^& N4 i - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt& t1 i. S% P! c3 g5 J Y
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
7 \6 V" Z; X$ o - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%u"). g1 _/ M* y" B& r( o6 b- e
- (= testxt "%%U"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%u" txttxt)))5 @- r2 a: Z# ?* q2 B8 C
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
K3 T2 @3 b. d% w0 r6 s( j) d5 `7 h& ` - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
2 D" i* D, ^2 V
/ w! @5 k) R: X( M0 {5 v+ D- ;;; ================ CHEN COT (TUU) =================+ N% w: ^0 m, f5 P
- % I( h1 {- p! {( f# S
- (defun c:tuu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen cot ")$ j% r3 z/ s7 R$ a, _1 N
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")* u5 N! K! }7 F/ O9 F {
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt+ e; j% c1 ~: E
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))2 S# ?: f% r6 V; U, F9 W# m- a
- (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%p 0,000"). H8 A# ^# |9 H+ U& n1 n- `
- (= testxt "%%P 0,000"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%P 0,000" txttxt)))/ N9 P1 B! M) b/ }/ q7 w+ {* c
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt))): E% Z" ^1 I; a; t2 s; i
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
6 H: t' `1 |$ B; l- R' o' U
. v/ ~9 ~6 B% C8 Y: Y- ;;; ================ CHEN KY HIEU THEP (TP) =================0 L6 v4 r" N6 c, S
- 3 r3 d3 w+ L: Y7 X
- (defun c:tp () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen ky hieu thep ")9 Q+ u |8 Z! p/ U" B
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
2 f( v8 v7 }* l: j: g - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt2 z! a* V) ~$ f/ |
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
/ j+ _- p: c2 D: X |: _ - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%c")
7 v) u3 [4 T2 Y/ x+ L# f+ Q - (= testxt "%%C"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%c" txttxt)))
r" l4 P' l: i2 H1 `. I% b8 z - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))& s1 V$ @9 b) A. U. S8 K
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
" Q# s0 b5 d! s! m& X
- p- S- u& Q* f6 Y8 t# `7 H) _- ;=========================== TAM TUONG (TAM) =================================8 Y) [/ `, a; J! e& i
- 2 V. V7 J- v6 d% F& _7 A3 Z
- (defun c:tam(/ data_m)
4 E% s. V% P0 }8 ` J! G - (defun import_data(/ i)(setq data_m (ssget))(if (= nil distan_m) (setq distan_m 110.0))
! E1 `% T2 z9 C/ F ~: Z$ V - (princ "Distance (")(princ distan_m)(princ "):")(setq i (getreal ))(if (not (= nil i))
* T2 d' c# H% l; s( D - (setq distan_m i)))(defun process(/ ent check)(defun p_check()(setq check 0)) q; L) L0 L/ e6 P1 g9 K; H
- (if (= "LINE" (cdr (assoc 0 ent))) (setq check 1))(princ))(defun p_d_offset
% l9 b7 l5 x* K5 Y7 m7 E3 W& _- w - (/ p1 p2 p3 p4)(defun makeline(/ e2 e5)(setq la (list (cons 0 "LINE")(cons 5 (cdr- @# c6 N* v& c
- (assoc 5 ent)))(cons 8 (cdr (assoc 8 ent)))(cons 10 p3)(cons 11 p4)))(entmake la)(princ)# j8 r. }% x! P- k1 ]
- )(setq p1 (cdr (assoc 10 ent)) p2 (cdr (assoc 11 ent)))(if (not (= p1 p2)) (progn (if7 b5 T& D, E7 c6 G
- (< (abs (- (nth 0 p1) (nth 0 p2))) 0.000001) (progn (setq p3 (list (+ (nth 0 p1)9 h0 P8 B- u5 d5 F0 M3 K
- distan_m) (nth 1 p1) (nth 2 p1)))(setq p4 (list (+ (nth 0 p2) distan_m)(nth 1 p2)
% t+ F# D8 u0 N m- h7 x - (nth 2 p2))) (makeline) (setq p3 (list (- (nth 0 p1) distan_m) (nth 1 p1) (nth 2 p1)))6 h) r' f, w( T J. T
- (setq p4 (list (- (nth 0 p2) distan_m) (nth 1 p2) (nth 2 p2))) (makeline)))(if (<
5 }0 K! t/ M- U2 `7 ?* N - (abs (- (nth 1 p1) (nth 1 p2))) 0.000001) (progn (setq p3 (list (nth 0 p1) (+ (nth 1 p1)
$ _. Z% W5 F7 c4 z" R - distan_m) (nth 2 p1)))(setq p4 (list (nth 0 p2) (+ (nth 1 p2) distan_m) (nth 2 p2)))1 W' [- T4 c( l/ f0 ~0 {
- (makeline) (setq p3 (list (nth 0 p1) (- (nth 1 p1) distan_m) (nth 2 p1))) (setq p40 g7 k" Y5 c/ V
- (list (nth 0 p2) (- (nth 1 p2) distan_m) (nth 2 p2)))(makeline)))))(princ))(if (not/ S( ~# q5 z2 [: L( S, Y, I
- (= nil data_m)) (progn (setq i 0)(while (< i (sslength data_m)) (progn(setq ent (entget
8 G$ B' F& J- W( Y. P, ~! v - (ssname data_m i)))(p_check)(if (= 1 check) (p_d_offset))(setq i (+ i 1))))))(princ))
- }) g" L* N) h- J- ?: W - (import_data)(ai_undo_push)(process)(ai_undo_pop)(princ))! a- H+ a% f4 \, Z; p8 g5 Y
4 W0 w8 H [2 S- ;============ GHI CHU PHI (T1) ================
+ v6 `3 N& L, i! Q9 A, y
5 F+ S' P. w; U4 s5 E- (defun c:DuongDan ()(setq D1 (getpoint " Diem thu nhat: "))(setq D2 (getpoint "Diem thu hai: " D1))6 Z8 R. l7 t% @+ M' j. V$ s
- (if (> (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (< (car D2) (car D1)) (setq D3
3 t6 L: ^7 f, W& ? - (polar D2 PI 16)))(if (= (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (> (car D2)
( `/ S+ C, L8 ~1 y& l- t) j - (car D1)) (setq D4 (polar D3 0 3.2)))(if (< (car D2)(car D1))(setq D4 (polar D3 PI 3.2)/ K6 y7 `9 r5 I; g$ m# |% H/ j
- ))(if (= (car D2) (car D1)) (setq D4 (polar D3 0 3.2)))(if (> (car D2) (car D1))
3 e2 o# W) T9 B4 a - (setq D5 (polar D2 (/ PI 9) 3)))(if (< (car D2) (car D1)) (setq D5 (polar D3 (/ PI 9)+ }% _. P7 o+ Y1 S' ^+ p& d
- 3)))(if (= (car D2) (car D1)) (setq D5 (polar D2 (/ PI 9) 3)))(command "color" 1)
* Z7 \. C9 `$ j/ p& j - (command "line" D1 D2 D3 "")(command "circle" D4 "3.5")(command "color" 7 ). C0 ^% @ V& c
- (command "text" "m" D4 2.5 0 "1")(command "text" D5 2.5 0 "%%c6a150")
. t: }' U9 Q, z2 w6 z - (command "ddedit" pause))& a; g3 ~1 v7 m# d7 S
- 9 \3 X G& {! c
- ;;; ========================== Join (J) =================7 q! k# A* w7 b8 y2 \6 ]' `
# R# E8 b2 M# @- (defun C:J () (Setvar "cmdecho" 0)(setq m:err *error* *error* *merrmsg*)(setq sset (ssget))
' L; C$ C: x( Q' Q1 A - (if (null sset) (exit))(setq kt (getstring "\nJoin all (Y/N) <Y> ? "))
7 M" ^! l0 P/ @8 s - (setq ssl (sslength sset))(setq temp (entget (ssname sset 0))etype (cdr (assoc 0 temp)3 U% @$ h6 p& N6 P
- ))(cond((or (= kt "Y") (= kt "y") (= kt ""))(progn (cond((= etype "POLYLINE")+ f5 ? O7 V" Z/ v& N
- (COMMAND "PEDIT" sset "J" "all" "" ""))(if (or (= etype "LINE") (= etype "ARC"))- k1 H& B/ K7 T$ }0 m, z" m
- (COMMAND "PEDIT" sset "" "J" "all" "" "")))))((or (/= kt "Y") (/= kt "y") (/= kt "")), w& [* b( v4 p) L9 p
- (progn (cond((= etype "POLYLINE")(COMMAND "PEDIT" sset "J" sset "" ""))
# U3 m# Q$ d" O0 O - (if (or (= etype "LINE") (= etype "ARC"))(COMMAND "PEDIT" sset "" "J" sset "" ""))))))
& G+ c+ ?. `% r3 a" ^5 G4 _% ^ - (setq *error* m:err m:err nil)(princ))
0 i( f" F/ s& p+ w
* m6 L8 W3 ?% p5 W9 K. _6 z- ;=====================================================================
/ J/ \. ~7 W3 p, |) n1 M - ;;; DOOR.LSP 1.0, Copyright (C) 1998 by CAD Department, HUCE.: b; |! ^" y2 p* z8 K2 a
- ;=====================================================================
3 y' S/ _& s/ V0 t* ^% L/ T( q) F
4 c0 i% q/ V( K y' f- (defun C:D1 (/ p1 p2 p3 p4 side dis wid ang angsile old)+ R. Y# B0 A# A, o; {9 j
- (setq old (getvar "OSMODE"))
, ?4 h/ j; ~( `* J& K: H6 O - 6 Z4 B, a& J9 I$ f( I+ G: H9 r' B
- (setq p1 (getpoint "\nStart point:"))
7 p/ j% Y2 r9 S `" d* B - (setq p2 (getpoint p1 "\nEnd point:"))
0 N: s! T; k0 ]8 o - (setq side (getpoint p2 "\nOpen side"))
. {' j& `# ~8 o/ Q- X - m4 N% I, ?, Q, T5 |5 X
- (setq dis (distance p1 p2))
* @1 G1 b/ Z/ r$ S" o) B - (setq ang (angle p1 p2))
) c0 J0 e# o: Z' V5 T6 M1 X - (if (< ang (angle p1 side)): I+ q( b9 u6 q% H5 O5 o
- (setq angside (/ pi 2) )0 W7 _$ Z2 K1 S! m! }
- (setq angside (- (/ pi 2)))
& q% V1 F" D, }, i - ); B: H8 }5 c1 r, d# x
- (if (>= (- (angle p1 side) ang) pi)& i. V% }9 M4 N& q3 H9 C
- (setq angside (- (/ pi 2))): v7 \+ U6 t( J. E# d i
- )
( I5 D) r% s1 w9 v - (if (>= (- ANG (angle p1 side) ) pi)
) i# E6 y/ ]. U6 ~ - (setq angside (/ pi 2))
* s1 S- m; ]) l) o. t' V3 f4 @( O - )
5 q$ n6 t: r5 y+ j3 ^; |7 C+ e - % _( f5 i9 w/ T5 N+ [/ A. @2 g* h
- (setq p3 (polar p2 (+ ang angside) dis) )/ L5 n: X* G/ R8 B' J
- (setq p4 (polar p1 (+ ang angside) dis) )' c! c* X% s' P" q
- (setq wid (/ dis 15))1 y9 z- ^* g0 b5 k( f7 Q0 P3 f
- 4 a/ F: @, E/ u3 v; l0 L9 b/ \7 S
- (setvar "OSMODE" 0)
6 X6 j8 u, h3 m& s; q - 0 q/ Q, z3 S. V4 s9 Z7 t, B# L2 _
- (command "PLINE" p1 "A" "D" p4 p3 "L" p2
5 ^+ P+ o! b! J1 Z" X- H9 q - (polar p2 (+ ang pi) wid) ( }3 v" }' E- X- C" v3 X0 B
- (polar p3 (+ ang pi) wid)
4 G( R$ n; H$ K% f6 L - "")
! S' h a/ X2 L4 r
9 F2 \6 y- l+ K, m- (setvar "OSMODE" old)
. |- G/ D* t. c, V$ K) ~ - (princ)
$ o) a0 O7 U) x9 K - )4 _, O: g6 o9 H: `2 l) l" Y
- ) S; n( N6 S: r# S5 x
- ;=====================================================================6 J9 ? I6 J7 D+ h
- 5 x* g4 ?1 Y( N1 g- I3 G
- (defun C:D2 (/ p1 p2 p3 p4 side dis wid ang angsile old) K& D5 ]3 X: a
- (defun cua1 (pt1 pt2)9 r% I1 F, r& K5 B
- (setq p1 pt1
" K2 e6 N( O$ }1 K/ R8 G - p2 pt2)4 n. {4 B* w7 T
- : x# a) p7 ^2 e4 Y! B g* z
- (setq ang (angle p1 p2))
% N$ {. N: c f4 c - (if (< ang (angle p1 side))' y" K& w+ Z% ~% N: t5 e. a) v
- (setq angside (/ pi 2) )
8 P: Y: i6 d& E- q& N' v: y - (setq angside (- (/ pi 2))): e8 F& N: Y' J. O! i+ ]- S
- )/ }! f8 ~# \$ x, s
- (if (>= (- (angle p1 side) ang) pi)
/ D! |& Q3 T- h7 L5 j# q& C2 [" R - (setq angside (- (/ pi 2)))
# S( b& g* b2 R1 J' P5 l - )7 R7 r9 z& P) p v+ {" ]
- (if (>= (- ANG (angle p1 side) ) pi)9 p" L# t% c4 t0 P0 l8 V* ]# [3 l/ m9 o
- (setq angside (/ pi 2))& a: _* z( C" t. H
- ). p% C" G8 p! `5 q3 K2 y0 U
- % U) t3 m) h- R" [8 O: A, t
- (setq p3 (polar p2 (+ ang angside) dis) )
& F( K% Q* K3 v: l8 k" K - (setq p4 (polar p1 (+ ang angside) dis) )8 N7 ]) h4 X5 H
- (setq wid (/ dis 15))
5 u/ A- S& w' v - : {( H8 p4 r+ _$ A9 s* [$ A
- (command "PLINE" p1 "A" "D" p4 p3 "L" p2
. H! c7 E- S+ E4 `3 D% p - (polar p2 (+ ang pi) wid) - H7 i) M& r- E
- (polar p3 (+ ang pi) wid) 3 _# g: Y6 j9 I9 w( S6 D
- "")
: ]1 P Y; S2 M) Z/ `: p7 k - )
- O1 l8 h) p6 l& Z" V7 O& ~7 P, T - ;=====================================================================% t8 F5 a( S6 o) O; K! r* e
- (setq old (getvar "OSMODE"))
# x. O8 \" [6 G" z
* i- U v) `4 Y# b- (setq p1 (getpoint "\nStart point:"))
6 K# F& v. P. C7 y* v$ K8 [ - (setq p2 (getpoint p1 "\nEnd point:"))
% Y5 {9 N* g0 g9 q1 t/ e. d v - (setq side (getpoint p2 "\nOpen side"))
+ m1 u2 h- z) N5 P - 6 B* P. X, ?5 \( Y( W) l' j6 M
- (setq dis (distance p1 p2))# G, h ^8 d/ c2 r, ~. Z x8 t: U7 v0 j
- (setq dis (/ dis 2))7 c" R$ o$ R& B# p' E5 L8 n6 b+ g3 S
- & U7 a. o0 x, X1 t, m+ h
- (setvar "OSMODE" 0)' x1 y' J; `* w A7 ~1 _
% ]% J& k% P+ O- (setq p1 (polar p1 (angle p1 p2) dis))/ O: x9 l# o K ^' R# u% f
- (cua1 p1 p2)
' R1 a" H4 C6 t- P) }! d7 D1 j
. |) y, G. L0 _" i1 K' T- (setq ang (+ ang pi))3 ^ j2 x) ]# @
- (setq p2 (polar p1 ang dis))& l/ N1 ~6 B, W' K6 b1 X
- ; (setq side (polar p1 () dis))# V8 _+ ]- n0 ]) ~7 k: g s9 J( g
- (cua1 p1 p2)
9 @# l2 H* D0 ]' T p) Q5 D- u
9 P5 a( Q# E0 v, W- (setvar "OSMODE" old)' `. I2 i; K( j* A" N
- (princ)& d+ F$ p' X2 m! B1 y7 f; X' | W
- )$ t, z, l. {7 ^ W2 T
! |# g' f" d/ c1 a6 N; }: I- ;=====================================================================
' p2 ~7 I' D3 j% v( v9 R - ;"Glue" text strings. All adopt first's properties.- _# c% g2 F) Z7 X3 W
- ; Author:
' @2 @1 m/ R; p# `& k7 s6 ` - ; Henry C. Francis
* i7 g6 p! M2 a' ]$ A& u' G' K - ; 425 N. Ashe St.7 g$ ?, T1 O' ]/ |1 b( L
- ; Southern Pines, NC 28387
# Z" A( O- e! F' I/ F& L) a - ; http://www.pinehurst.net/~pfrancis
! S/ [' r$ F, A0 B' r! T- L - ; e-mail hfrancis@pinehurst.net8 _3 i& H/ P. v+ `2 f% R
- ; All rights reserved.
' j& W2 M: n* f - (defun c:gst ( / ename ent1 ent2 old1 oldsl old10 old11 old40 old50 newstr newsl new1 new10 new11)1 e( T" A3 N) `7 s, _8 z
- (while
, ?5 }5 a7 v/ m5 z3 } - (not P* A% X. ?- ~, Z0 g
- (and
& d4 q* _& C& Y" ], f5 I$ ^4 { - (setq ename1 (car(entsel "\nSelect first text string to join: ")))
9 T# H: Q$ q5 {) I - (setq ent1 (entget ename1))0 J3 p2 F( x: T
- (eq(cdr(assoc 0 ent1))"TEXT")
5 O6 {* K1 ~5 ?/ E. y4 k - );and+ l+ [! C7 J: X
- );not8 Q% T! t$ S9 \$ U# g8 G
- );while
' _- o* i6 V$ I! R - (setq old1 (cdr(assoc 1 ent1)))
5 y3 p! C% J) z3 b' N - (while
3 m* P7 z! E) d* b - (not
& K8 u1 h6 r# Q+ @3 m8 j4 o/ p - (and
L$ F* X/ t: n4 \! z - (setq ename2 (car(entsel "\nSelect second text string to join: ")))
1 P3 b% S3 y; m* M0 a - (setq ent2 (entget ename2))/ o8 r. y5 f% _3 v0 z8 H
- (eq(cdr(assoc 0 ent2))"TEXT")
, g0 r' S% s% z& g) i - (not(eq ename1 ename2))
3 ]: Q! N5 g3 l5 E# \. S - );and* c1 d4 `& |* Q% c) C6 n) b
- );not
! D- N/ }; }* Z - );while
( k* j. G* ~% k8 D4 T& u - (setq old2 (cdr(assoc 1 ent2)))/ e, p9 x1 X! D3 ^7 b1 R& r
- (setq new1 (strcat old1 " " old2)
, k! \) |) a# a4 Z1 ]9 e - ent11 J( n1 V7 m9 ?4 l) Q2 k
- (subst (cons 1 new1)
: }, Q Y8 `3 e% X - (assoc 1 ent1)
4 p+ |* O0 k5 C$ M4 u# I - ent1)
- \3 o$ v, O; v, C - );setq. Y$ n4 o% E P! F4 _
- (entmod ent1)2 }9 S, O |5 K: Y* r/ d( }& T& \
- (entdel ename2)5 M9 ^( ]$ B% t- t' J
- (princ)
( Z. p9 e$ l! `% ~ - );defun
$ n x- [, F" e! m9 [+ I5 y& D - ; D# m, O. A3 }+ ~
- ;=====================================================================
- ]! g8 F7 F* G" {+ @8 _ - ( N& c, y/ F t" s7 H, s0 m
- (defun c:nt (/ g1 g2 ss1 olderr nterr l i temp e1 e2 new old dd dc)
8 E4 q! h. v' c/ M - & [- `8 O R5 ^- Q+ J+ b2 u
- (defun nterr (s)
( [; Z6 e2 y$ K - (command "_.UCS" "" "_.UNDO" "E")5 B' m0 M- H, V8 I- y/ g& F; O3 F
- (setvar "cmdecho" 1)8 D; Z0 j8 ?, s; }+ z0 V
- (setvar "blipmode" 0)% B: A2 s. l7 `# g, _
- (setq *error* olderr)
! C# ?' R/ F' Z. q4 |7 R* l9 u - (setq g1 nil g2 nil ss1 nil e1 nil e2 nil olderr nil
~4 j' h F2 a# B - nterr nil temp nil i nil l nil new nil old nil dd nil dc nil)
% R# }/ J4 p% s$ c6 i% `( d - (princ)* K/ W9 n0 x5 m) E5 z
- )
: j, P" a" e* z" `7 j5 d/ m7 N* K. ~ - ( F8 ~) `3 J8 ?% \ @' r
- (defun tim_in (dt / p01 p02 ktra)# A' ?/ p8 C r8 B2 f" p3 p" J) X
- (setq p01 (cdr (assoc 10 (entget dt))))
9 D) f) \* H/ P0 C# f. ^# g: H8 X - (setq p02 (cdr (assoc 11 (entget dt))))
# C4 v7 W! r! t, Y* v - (setq ktra T)
+ Q( Q$ V. _6 O o3 o. z - (if (and (> (car p01) (car g1)) (< (car p01) (car g2)) / K9 s( R; l0 F3 o
- (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))1 L; p0 C" y3 ` E( ]( J! Z" h
- (setq ktra nil)
% @( Q7 e( s+ s E# T - )/ d4 ~- |8 Z& M
- (if (and (> (car p02) (car g1)) (< (car p02) (car g2)) 8 Q) ^/ ?) v( \
- (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
, `0 T Y* l' s, R# x6 s, b) ~ - (setq ktra nil)9 N& d! R) D! w2 a
- )
5 V* ]4 e5 S, y+ l( h+ ^ t - ktra
7 B1 {: t0 D# U1 C9 {5 _+ p - )$ V0 R/ T3 [8 l1 v. u: I: a
- 1 l! n' |" `5 b! H) s
- (defun timdt (dt1 dt2 / p01 p02)! r! t; b. `. ^( Z
- (setq p01 (cdr (assoc 10 (entget dt2))))
* v b" S8 B9 P" [: |' d0 r( n - (setq p02 (cdr (assoc 11 (entget dt2))))7 k6 p, a$ _" q- Z& [
- (setvar "ucsicon" 0)$ L1 W; F: D2 ~) {0 b
- (command "_.UCS" "E" dt1); V% K8 o0 s8 j
- (setq p01 (trans p01 0 1))2 L' @* }) S. q3 U. P; i/ ^
- (setq p02 (trans p02 0 1))/ j9 U. O R8 k8 a0 p: N
- (command "_.UCS" "")
3 J& h( b' W" t+ k8 \ - (setvar "ucsicon" 1)
8 f/ @3 ^% ^4 ^" D" L3 q - (if (and (equal (cadr p01) 0 0.001) (equal (cadr p02) 0 0.001))& Q1 Q4 y' L& o
- T
2 |- n1 \' E& y {: \% |6 @* U) \ - nil
) x7 c" P' T: W6 l4 R1 ]/ w. W - )
* @2 `% S0 Z- V# D. j0 v - )
5 P& d: V$ m. e$ [
; V5 J2 N3 @4 N3 e, i* s# R- (defun tim_out (dt / p01 p02 kt)
A1 ^2 c2 n9 n- t- d, P$ b/ ~ - (setq p01 (cdr (assoc 10 (entget dt))))
& e% o$ j: i; x8 h# U4 B - (setq p02 (cdr (assoc 11 (entget dt))))* [0 x: i6 R, P
- (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
) H/ G) M4 k+ [- Z - (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
2 ?1 O/ q; R& i1 X9 o - (setq kt p02)) o1 |7 y! I! n; Y
- )) X) p7 K1 O; N4 i$ t# U% f
- (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
+ q0 P0 y& n1 e4 C( ?5 u - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))3 e5 v5 ~- ?- d3 h z; j
- (setq kt p01)
! x5 O: G9 j# r3 o: t6 Y - )
$ V, H+ ^% }* v' [, U - kt
" b( ^+ x% g9 H( C7 [, {3 O | - )
/ x0 i8 v2 a8 S1 l/ g3 N1 P# w - % d2 O$ O$ c; u
- (setvar "cmdecho" 0)+ l/ y) s6 T- q9 U' O
- (setq olderr *error* *error* nterr)
@# S* m2 f1 {% a7 ]5 w8 o - (command "_.UNDO" "G" "_.UCS" "")6 E" q# F% m; j$ \# E
- (while (null ss1) p8 _! Z2 L! N; s# ~* R
- (princ "\nChon tuong muon noi...")
, K1 z9 I5 e% \* Z, i$ D( T1 M9 k - (initget 1)1 m) x6 i$ O, \, c, P
- (setq g1 (getpoint "\n>Goc thu nhat:"))( w6 H. o% e7 l+ n
- (initget (+ 1 32))$ P5 B: J0 h. a
- (setq g2 (getcorner g1 "\n>Goc thu hai:"))
7 z- k3 E0 f4 q$ J) C/ `! l' P - (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))
1 j9 k$ I* }) Z9 O: n - (if (null ss1) (princ "\nKhong tim thay doi tuong!"))0 d* _) j% Y3 _, V$ O! @6 O
- )
}6 c$ d- q+ n) ?5 |) i* r2 Y3 U - d6 s( E; v9 j' b2 T
- (setq temp (list (min (car g1) (car g2)) (min (cadr g1) (cadr g2)))
7 z; u G: S3 E; ~$ I$ Y0 J3 t - g2 (list (max (car g1) (car g2)) (max (cadr g1) (cadr g2)))3 l8 `8 f ^. r0 Q
- g1 temp)
" F; Z- ~* E' m$ E( X% Q- _, G - (setq ss1 (ssget "w" g1 g2))
; q! i8 }7 U; l" l+ f" V - (if ss1 (command "_.ERASE" ss1 ""))% [" C) Z3 X" [" `3 `
- (setq ss1 (ssget "c" g1 g2 '((0 . "LINE")))); R$ ]! m$ ^- s1 n" k3 L% a6 f
-
; s* N7 N: y/ @; I, T7 A - (setvar "blipmode" 0)
4 z; d: @$ L0 b; ]5 u* u - (setq i 0 l (sslength ss1))
3 b3 k. s- n: l& \; i* G - (while (< i l)7 h0 {! m; }9 |7 W' U1 X D
- (if (tim_in (ssname ss1 i))' E+ r k4 _% q" g) v, ]
- (progn ' r7 B% K3 y9 @$ \3 x: g
- (ssdel (ssname ss1 i) ss1)
: g, Q# N( d9 \% s - (setq i 0 l (1- l))
" c/ n, D+ E4 J$ e - ) 3 `. b b8 u( A3 X: Z
- (setq i (1+ i))) q( L2 u3 E. s+ g3 n
- )# r4 f" P7 i$ c! F+ n7 e. G
- )
' g) p2 \9 h( W7 z3 O4 O; s4 ~ `% ~+ ` - (setq l (sslength ss1))3 M" k0 Q* p, c! v1 s5 V. P
- (while (>= l 2)9 b1 X' T9 z8 `! \0 V1 P# F5 H; ?, X/ A
- (setq e1 (ssname ss1 0))
9 H/ [1 I( h& m7 ^. m6 V3 { - (ssdel e1 ss1)2 a: T1 }; m( X( D
- (setq e2 nil i 0 l (sslength ss1))( ~$ ?2 ~6 s7 h: T/ r9 N6 r* c
- (while (< i l) . I, N' g0 J3 m9 b" G5 G
- (if (timdt e1 (ssname ss1 i)), M! n7 K, }( l" i) f) j
- (progn6 d) o! P, r/ R9 s3 G6 j
- (setq e2 (ssname ss1 i))
7 L+ h8 w5 b4 p4 X - (setq dd (tim_out e1))% T& P+ F/ }7 [2 Q. ] @9 W, M
- (setq dc (tim_out e2))
6 c& c8 T; A: M- \" p8 D. p( b+ z, W( ^ - )) x- @; g! @ U& c# k% }
- )
' o8 m, t- r( m. G - (setq i (1+ i))0 a# z5 K, U. k ~6 B5 h
- )% z; _4 G6 H& j! u5 w* W+ V' b$ ~$ U @
- (if e2 (progn
/ S3 d k" i9 j$ u E. h% I& ? - (ssdel e2 ss1) 9 L, t+ f% I! y+ W' G
- (command "_.ERASE" e2 "")/ c" V5 V4 y- u, j P8 Z
- (setq temp (entget e1))
J) Q. R& R6 Q: p" ?% z' D+ K - (setq old (assoc 10 temp))
. C1 e' }: u3 {( C - (setq new (cons 10 dd))
( G* `8 R C" g2 U4 U0 l - (setq temp (subst new old temp))
+ |/ ^- q/ \4 c6 N: {2 L - (entmod temp)9 J3 n% { b; J# _
- (setq temp (entget e1))- [* v: _& C" D/ v+ Q1 Z
- (setq old (assoc 11 temp))
1 y, R9 W u) e - (setq new (cons 11 dc))6 A+ \; }" M1 X5 e7 E) [, j7 M- E+ p
- (setq temp (subst new old temp))
2 U* B2 P8 ^% H+ h+ k4 E - (entmod temp) M) M# J% |! z6 w% Z2 j& u
- (redraw e1)! t7 y( I; g1 g/ g$ ?' G
- (setq l (sslength ss1))
6 o! m" |' k) p+ [. j' k - )$ U9 @* O% [4 E" y/ {& P; r: g) e
- )
- O: |. n3 h+ k - )5 }+ V% t- w% w R% Y: p
' D) M- j; }$ d" `; R; p! P- (command "_.UCS" "" "_.UNDO" "E")
# l8 A! C- D8 g( w& O - (setvar "cmdecho" 1). i" J4 }5 B' h. b
- (setvar "blipmode" 0)% a5 U0 a- g5 x4 N/ P. d
- (setq *error* olderr)" J; Q$ \% B- [3 M
- (princ)
% l5 ]# G6 \/ W - )
i* g2 i( c O% G7 r. E2 i) F - ;*********************************************************************1 h3 v# }& L' w
- (defun ketthuc ()
$ y' W- q4 P4 V5 S( A3 Q - (setvar "cmdecho" luuecho)/ }( a/ o B0 W: v, o+ d' {1 Z
- (setq *error* luu! d8 y4 z! G4 \$ r! M
- luu nil : L& s# }5 j, O t
- luuecho nil% g# E% `. f/ V; ^
- );setq
7 _, o8 U7 U! e1 ~. M A& {5 M - (princ)
7 A, x& _5 G7 } - )
; O4 T2 o5 |0 H" R3 I$ S" N, v - ;*********************************************************************% T1 @& A# N7 P5 c" c( c
- (defun modau ()' z# T. s. S, X, }0 R
- (setq luu *error
' J, H7 \9 a5 z! j& W" _) o - luuecho (getvar "cmdecho")
5 S, i7 v. N# b" p. P3 x; ^2 g - *error (ketthuc)( K" ^1 u2 C1 o5 x5 L2 O8 C& z E
- ). ]: |$ s7 _% \- a, g5 f8 I
- )" V l# V# @! l: Q+ I
- ;*********************************************************************
, W6 w- I3 X: V; {" l; e4 N& J - (defun xulytext (text / kytu ma sokt luusokt lui )
& t/ b: u+ E n - (setq kytu (substr text (strlen text))
+ J0 x9 A$ B) Z& C q - ma (ascii kytu)3 j1 R i& t! _! a: m6 F) g+ |$ t6 o
- sokt (read kytu) , }! T! e% }6 z& I
- lui 1; Z! z1 q- Y4 k6 W/ d
- )
4 {7 P$ j" ~+ P# q2 x5 h - (if (numberp sokt)9 Z3 u$ O. n7 C5 d
- (progn" M. S5 L& R: R0 \) W
- (setq luusokt (1+ sokt))( F/ J- N( V% e" ~0 J/ c4 w
- (if (and (numberp sokt) 9 Z3 G/ i8 ^0 h0 {- Y, p4 F2 }- r6 Y
- (> (strlen text) 1)
* Q: V; u" a+ F7 d# w0 B - ) ! b. W; t; ^, Z; d' K" o
- (progn* v, z9 }9 A w& D; E6 y" Y. h
- (setq kytu (substr text (1- (strlen text)))( p: y9 O- e6 O" _; |# p
- sokt (read kytu) 7 Q3 Z! |: m! ~1 ~0 D
- )
; R x8 x* Q$ F, b1 i9 d+ F( O4 \ - (if (numberp sokt)
1 i8 @) e. O4 w, t% U - (setq luusokt (1+ sokt)/ {+ Z# C2 q" P* P1 }7 [% h ]+ @
- lui 2
# F% ~3 l7 Z* C# r' f) m
4 r* v6 \/ [1 A& t- S+ A- )
' O5 }% a$ O1 H. _* Y+ v - )
. I- b2 P; {; P0 S! h - );progn + V$ w( z, H% O) F4 ~2 r
- )
8 p6 v5 L, ]9 {1 \9 V9 |/ F F - (if (= luusokt 100) (setq luusokt 0))
' N+ s" w7 ]( I9 c: B# n! Y - (setq kytu (rtos luusokt 2 0): e% L! n/ B0 i; p- |
-
/ ~6 M. P8 k3 @8 K# M - text (strcat (substr text 1 (- (strlen text) lui)) kytu)
1 p0 }! s% ^% p1 m! ^ - )4 s& r! R* b7 _
- );progn
( b1 V6 d! S, F3 C& x% R: i- r0 X5 ` - (if (or (= kytu "z")' P! }& c- B% Y/ [+ n# s
- (= kytu "Z"). H% B9 J% S$ F* Y7 R
- )5 b& @8 [! l6 S0 D* B9 |
- (setq text (strcat text "0")
2 N+ D! S& X( I6 J# y( N - textxl "0"
. y- f5 i* L) |( W' ^ - ) A* | B9 D+ h. N
- (setq ma (1+ ma)
# Y8 [: H9 W3 R' _6 r - text (strcat (substr text 1 (1- (strlen text))) (chr ma))
h0 {' W/ b) c0 K. I( f1 m6 g, D - )0 V y- G+ O% ?
- );if
. R+ @: l' Y% F) l# s - );if
5 C0 c/ m# f0 v+ |, k+ A - )$ L( R& C- _3 ^! [
- ;*********************************************************************/ c* X. r. g( k; p
- (defun doitext(tendoituong / chuoi doituong thoat tam dsach kieu text vitri10 vitri11 dem canle)
5 O; g- ^( [4 H: } k* ?, @; y! p - ;Neu doi tuong la text thi tiep tuc
( ?/ P9 V; s% c: \5 @# Z U$ _3 X- [ - (setq doituong (entget tendoituong)1 E( J6 g* W' Y. [* y' J* |
- kieu (cdr (assoc 0 doituong))
* Q7 _; R0 C; d0 z+ m - canle (cdr (assoc 72 doituong))
' A7 w; m! o+ ]1 {9 c - ) & H. L- M4 H1 y4 p
- (if (or (= kieu "TEXT")
8 w# V9 N% v; k6 T% {) G7 G/ t - (= kieu "MTEXT")
1 T F, Z N3 }6 g% N% w - ) & b- S3 T( B4 f: }& ~3 i
- (progn# z, f" ^$ o5 J: ]
- (setq textxl (xulytext textxl)
& R3 t& p# B+ d5 M - text (cons 1 textxl)
& X, e2 s$ o- \9 | - vitri10 (cdr (assoc 10 doituong))' b3 {7 P1 |% e- Y0 @5 v0 Z
- vitri10 (list (+ (car vitri10) (car vitrilech)) (+ (nth 1 vitri10) (nth 1 vitrilech)))
: X& i( O8 c) M" C/ l. [ - vitri10 (cons 10 vitri10)$ Z+ b2 _9 L0 W6 t, x7 ^
- vitri11 (cdr (assoc 11 doituong))
$ H$ b/ T* }6 [. U+ L2 a - vitri11 (list (+ (car vitri11) (car vitrilech)) (+ (nth 1 vitri11) (nth 1 vitrilech)))$ ?; v4 f- {% B3 ]9 b
- vitri11 (cons 11 vitri11)! H3 \5 H, P& v7 G; U0 l
- dem 01 I3 C: `2 G6 J$ w8 L; M6 H
- dsach nil
6 r3 \9 P$ A. `9 a( b! w. ^ - )
* j2 x6 [% M0 j: H) ]7 g5 k- z - (foreach tam doituong
! e- ~4 i A8 F# D( S9 ]7 k - (cond
$ o) ^0 W+ T; V$ Y D - ((= (car tam) 1) (setq dsach (append dsach (list text))))
2 C( X; v6 k) z8 H- c0 V5 N- F' F - ((= (car tam) 10) (setq dsach (append dsach (list vitri10))))
, V" a7 B4 z+ v - ((= (car tam) 11) (setq dsach (append dsach (list vitri11))))
- {4 n! n. K1 g; T0 u* f - ((setq dsach (append dsach (list tam))))- F. Y1 P) M# v: K' c0 n
- ); E) [$ n3 F$ |% ?: q
- )
8 B% j R. [$ Z5 O { - (entmake dsach)
2 `. \( E4 |+ m9 q' z0 F5 m - );progn
m$ s) T: T3 J- |5 q - );if
& F, r/ c; M7 h+ W( \# D - );; y; \/ B6 X7 L8 C# ^
- ;*********************************************************************6 |# q2 q2 L' f% K0 t
- ;sao doi tuong cu sang vi tri moi# h; L+ ?6 h- G+ K2 h1 n
1 m3 T0 e/ |( [- (defun copy_dt (tendoituong )
$ ` i- w4 X p' E! B - (command "copy" tendoituong "" goc toi )
- a; P: a; d6 v* ~ - );defun
5 t: v7 E0 ~, ]$ y( x7 Y1 [
, a/ j4 M1 B! x2 Y- ;*********************************************************************1 ]1 `+ B- H- U8 L
- ( {# g! k, ^& s
- (defun c:ct ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
/ d k: y; r) O# d9 U - ; Khoi dau cua chuong trinh# W9 d+ c6 u4 T8 L* q
- (princ "\nCopy Inteligent...\n")9 V8 a: b+ o( G4 O$ a1 h6 c
- (setq luuecho (getvar "cmdecho")
/ S# W3 O* l" H; I - luu *error*
! N2 \; ]' p/ c9 M3 I7 @/ ?, b - *error* ketthuc( X& I# k X9 c7 c% R. g
- cumdt (ssget)7 k6 ?, f/ d: Y' G0 W* F+ e; s2 \
- dodai (sslength cumdt)' M) O/ L: d: p, r0 Z% Q4 u
- goc (getpoint "\nSelect base point:")
% P: g1 B2 V: \; u8 G8 X - thoat nil* e, O; u: d5 \ K6 z. {
- dem 0+ E6 o h* l( _8 q8 ]) I( f2 p8 \
- textxl nil
# _0 T1 @) A. p8 U - );
E: s8 x9 X0 R+ u3 ~0 o# W& H - (setvar "cmdecho" 0)$ K8 x8 T" E2 ~! ]& |
- ; Loc ra duoc ong text de xu ly
- y3 W$ s* K" V- P, W% \ - (while (and (= thoat nil), S5 u8 V3 g. M! P) V5 t- W
- (< dem dodai)
$ v: s i3 h" j& P - )
6 L/ I/ S; _3 }! a% W# _ - (setq ten (ssname cumdt dem)8 p* R1 h. G/ R+ t
- dem (1+ dem)! |$ }1 Z3 D1 V" |+ P
- doituong (entget ten) p2 | y. J! {0 y; {1 A( w/ @+ W
- kieu (cdr (assoc 0 doituong)) ' \: ^1 ?: B+ D; N1 |
- )
' ?8 F; U' c9 p* J* K: z3 }; w -
% M2 h6 T: P# p2 J" e7 I - (if (or (= kieu "TEXT")
/ Z7 W. _3 i$ t8 T - (= kieu "MTEXT")
) |0 _$ t5 L2 o8 N- ^ - )* T) g1 v. @4 C+ n1 t% s7 R
- (setq thoat T
4 b5 Y7 Z1 c7 i9 Z. L: ]# a+ \ - textxl (cdr (assoc 1 doituong)) # h4 H* O* K, {, n- B* r0 V; X
- )
* }3 J4 f4 E' Y" e2 j8 }+ X7 Y2 I - )" `) d3 E! K6 N4 I/ D. a
- );
0 S9 @" [! O; |: I( G3 E% m$ E" C9 X - (while T 5 V$ M# ~( S7 e/ j( V, q
- (setq toi (getpoint "\nSelect next point: " goc)
}: t3 F& k: ~! A1 }7 }! a( X, i. p - vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))) {6 n( N2 U! @: p3 I2 W( l6 J/ z
- dem 0" R" M6 C+ u$ _! G. K+ j
- )
4 }# v: _- D) E* w% v) `5 O - (while (< dem dodai)4 G% H1 t& U) c. O% N$ v& [. |
- (setq ten (ssname cumdt dem)8 ^* l. V2 x/ X% @4 \
- dem (1+ dem)
! G6 R/ H/ x$ L - doituong (entget ten)
, I1 Y' c W' Z9 f! ?+ m - kieu (cdr (assoc 0 doituong)) 2 N8 e! J2 S0 Z& k# r, c
- )
6 L# y v) c* [1 Q+ Q8 d* a& J, U
" A+ `% c' j* [ `- (if (or (= kieu "TEXT")$ i& @; M2 B1 U. J
- (= kieu "MTEXT") : y* P) c* x4 M* |3 D* v# [
- )
8 R! Z, I" c4 n - (doitext ten)
+ K( _6 k) j( t( I7 k% A, ~0 x - (copy_dt ten)
. u- Z% T, H: k; o; } - + r/ v6 u, ^% d5 I
- );if
# ~# Z8 ~3 ]. |6 \ j, _& z - )5 @+ C# L6 Y5 |4 G* b
- );while
$ ~0 `8 R* n* l4 @2 ~ - (ketthuc) }: N, a# r4 {- c' V) r- M. W4 F
- );defun
& d \* Y. R1 |4 G8 w - (princ "Type \"DG\" to start")
1 @; ~1 T6 V+ U( R9 E/ n# z - ;Note: bien toan cuc: textxl vitrilech
4 h m m @& ?3 L* N; N - " X, v* e1 E% U* C: [
- ;=====================================================================
1 A A& f7 E' ]# q8 E u" V* _) S$ H+ @ - ;;; PLJOINFUZZ.LSP* H- J" D' ]- |$ K% Y
- ;;; Joins lines, arcs and polylines using a fuzz distance+ ?; C9 e+ L0 y5 R; b. b* W
- ;;; If only one object is selected it tries to join to all objects that are possible2 V, g2 x' ~" @6 l
- ;;; By Jimmy Bergmark
. f& R, o( G# U6 ^ - ;;; Copyright (C) 2003-2004 JTB World, All Rights Reserved
6 e) {1 N. D( U8 u9 g, Q - ;;; Website: www.jtbworld.com
+ _& C. ?$ j# m/ s3 n - ;;; E-mail: info@jtbworld.com
* Y2 X/ Y' S+ |" O - ;;; Tested on AutoCAD 2002,2004 and 2005
+ q6 I; Y) ?- q7 h" x - ;;; Latest revision made 2004-11-11
% k4 r6 }- T; o - ;;; Minor code cosmetic change made 2004-11-13! d# e1 {, Y+ {8 g0 O$ S1 y8 e( W
- ;;; Bug corrected 2004-12-235 J8 E* r3 S! E# Q
; n: t3 M R9 k- (defun c:jf () (c:pljoinfuzz)) ; this line can be commented out if there is an existing command called jf* z8 s. D* g7 W$ m0 M9 v$ |( q
- (defun c:pljoinfuzz (/ ss1 entLine objType oldcmdecho oldpeditaccept fuzz okObjects)
$ z9 P" i6 j8 r% i8 ]9 N G4 t - (setq oldcmdecho (getvar "cmdecho"))3 i6 W; }% w! h8 }: I; j
- (setq oldpeditaccept (getvar "PEDITACCEPT"))
* _5 ^+ q# W3 Y, g1 m3 s: g - (setvar "cmdecho" 0)1 |# l7 j2 r: ]! f3 {7 h& s
- (setq A2k4 (>= (substr (getvar "ACADVER") 1 2) "16"))
& H8 u9 o" g9 G: w - (if A2k4 (setvar "PEDITACCEPT" 0))
* L: y0 y$ f; z7 r; n) Z! R# @ - (setq okObjects '((0 . "LINE,ARC,POLYLINE,LWPOLYLINE")))$ Z0 Z3 X& S J" ^0 T
- (princ "\nSelect object to join: ")
' _! ~/ d( u7 H( `+ S' X' f - (setq ss1 (ssget okObjects))7 k1 `3 c6 w) k+ m9 O: m( ^
- (setq fuzz (getdist "\nFuzz distance <0>: "))
- r! l$ T. w6 @1 c$ j# q - (if (= fuzz nil) (setq fuzz 0)): o! ~# _# S. V! x1 H% o
- (if (/= ss1 nil)
0 h/ B6 H9 u+ S3 Q. R3 b0 P( o) x - (progn
% ?6 z+ D+ o+ C/ G1 x - (setq objType (cdr (assoc 0 (entget (setq entLine (ssname ss1 0))))))$ ^$ y2 j; r! ?+ H4 n3 u
- (if (= (sslength ss1) 1) (setq ss1 (ssget "X" okObjects))) T0 X% X0 Y7 a& @* {' N6 L2 r8 k' ^
- (if (member objType '("LINE" "ARC"))
' t1 n4 e O" {1 a! L9 \ - (command "_.pedit" "_M" ss1 "" "_Y" "_J" "_J" "_B" fuzz "")
3 Q' [- q& _8 B! o* F) J0 p - (command "_.pedit" "_M" ss1 "" "_J" "_J" "_B" fuzz "")
, P% U; J! ~7 y: T - )
: M ?( V# n% n! T& E o: f. p - )3 g1 b! W, p7 M% T
- )' `& N# e$ R+ ^; j% \. k( {5 F
- (setvar "cmdecho" oldcmdecho)! B; a& k" `& v" n/ R, S: F d2 k
- (if A2k4 (setvar "PEDITACCEPT" oldpeditaccept)). j: e* _; V" I% `. h* u+ O
- (princ)
: j4 H' c: F+ H% E2 \( o0 e - )
' Y. ?; \4 G! D
3 ~6 o0 i+ u6 R+ Y/ b; o# d- ;===========================VE CAO TRINH===========================
" _& m" q: V5 a8 b; Q, T
6 h W# r* B5 s/ j9 L& @- (DEFUN C:Cotcao (/ CMD PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 NPI TX DX DY TL OSM OLL
' r7 |6 v8 q8 h. t - CRST RSIZE TSIZE STR PRMT FCH NBC OLDERR)
3 s( l, S) s4 [- n. y) z - (SETQ OLDERR *error*9 b9 Z3 W* P0 h# J
- *error* loisb), C# `" ?: x0 {4 ~+ Y* V+ p3 q
- (command "layer" "m" "dim" "c" "" """")
! J8 ]/ Z$ w P) p - (SETQ CMD (GETVAR "CMDECHO"))+ h: `' n: R- h% A- ^
- (SETQ NBC (GETVAR "CLAYER"))( z, f8 `! X% i( X% C6 Z+ T
- (SETQ OSM (GETVAR "OSMODE"))5 F+ ]$ @$ L4 e9 b
- (SETVAR "CMDECHO" 0): x, v4 } ]% g+ u* N4 S. N
- (SETQ PT1 (GETPOINT "\nDiem cao trinh:")). x5 p+ q6 I* J( A
- (SETQ TX (GETSTRING "\nCao trinh:"))
; X; _9 a" o C1 @+ A - (SETQ FCH (SUBSTR TX 1 1))+ f) }4 Y8 {8 P5 F; M2 X
- (IF (= FCH "@") (SETQ TX (STRCAT "%%P" (SUBSTR TX 2 (- (STRLEN TX) 1)))))0 h/ e/ B3 Z: H& I# q% d4 z
- (SETQ CRST (GETVAR "TEXTSTYLE"))
6 Y% X8 k4 m/ k" ~ a - (SETQ RSIZE (CDR (ASSOC 40 (TBLSEARCH "STYLE" CRST))))# h) p& C! F- \8 M7 {" Q
- (SETQ TSIZE (GETVAR "TEXTSIZE"))
1 G; O9 u7 y$ X: n# s - (SETQ STR (RTOS TSIZE 2))
; ~0 j- K* t& I - (SETQ PRMT (STRCAT "\nText height <" STR ">:"))# H; v! ~% k; T0 p- p4 F! E
- (IF (= RSIZE 0)/ |4 ^; R* [, Q: P J: O' v: g- u
- (PROGN
3 }$ n% u# ? C, A. O - (INITGET 4)" }% b( z) P/ }* p$ D7 P o6 i
- (SETQ TSIZE (GETREAL PRMT))8 x) A& k; A! x1 q" ^
- (IF (= TSIZE NIL) (SETQ TSIZE (GETVAR "TEXTSIZE"))# `* x) R) G. |5 `! g+ @8 ^
- (SETVAR "TEXTSIZE" TSIZE))' u5 V' e! m7 L2 Z) c
- )' U* z/ |- K* [' G
- ) `9 Z" g& ]$ P* X6 S
- (PRINC)
$ v! Q) o6 E1 E6 O( w/ ], X3 J - (SETQ TL (/ (GETVAR "TEXTSIZE") 2))
: T+ g- e8 L' ^ - (SETVAR "OSMODE" 0)
) L6 [ o9 q, z, l0 T3 }. E4 j" Q( N - (SETQ DX (CAAR (CDR (TEXTBOX (LIST (CONS 1 TX))))))
* g" h3 x; B" A5 g, x - (SETQ NPI (/ PI 2))/ r; v0 D5 x+ G8 ^ n7 O4 u
- (SETQ PT4 (POLAR PT1 NPI (* 1 TL)))
, Y1 N; E! j% Y5 A$ c/ q t' d - (SETQ PT2 (POLAR PT4 PI (* 2 TL))): Y/ {& N( J! `3 k, F" z4 s. m, r
- (SETQ PT3 (POLAR PT4 0 (* 2 TL)))
, N, A' r; u* ] - (SETQ PT5 (POLAR PT4 NPI (* 5 TL)))7 y8 A6 W0 {9 M
- (SETQ PT6 (POLAR PT2 NPI TL))* d( t% I1 N7 ?6 Z% r9 `
- (SETQ PT7 (POLAR PT6 0 (+ (* 3.7 TL) DX)))
; ]; }% Q2 F; W( y$ b3 ] t - (SETQ PT8 (POLAR PT6 NPI (* 1 TL)))
6 w$ K1 m, I/ U! c& K - (SETQ PT8 (POLAR PT8 0 (* 2.5 TL)))
5 ?( \1 Y; ]: x2 o( H# G5 ~5 C - (SETQ PT9 (POLAR PT1 pi (* 2 TL))), ~( y0 ?- D/ T
- (SETQ PT10 (POLAR PT1 0 (* 2 TL)))( L e" ^3 O- t+ t9 U7 ?& Z
- (COMMAND "COLOR" "7" "")7 I- H% _# V1 W6 w8 @- e$ p5 S. Y
- (COMMAND "STYLE" "COTES" "Verdana" "" "" "" "" "")) Q7 m+ g% P% p1 l3 w! q$ J5 V3 X
- (IF (= RSIZE 0)(COMMAND "TEXT" PT8 TSIZE 0 tX) (COMMAND "TEXT" PT8 0 TX))
" z8 v/ ?! T t- w# X9 y0 e - (COMMAND "COLOR" "BYLAYER" "")7 u# J [3 e! \; h1 Y9 E& b
- (COMMAND "SOLID" PT1 PT2 PT4 "" "" "pLINE" PT1 pt3 pt2 "")& ]! S- J. I5 i
- (COMMAND "COLOR" "BYLAYER" "")
9 D2 T: p& N+ I0 d7 d% H, {. o3 F - (COMMAND "pLINE" PT1 PT5 "" "pLINE" PT6 PT7 "" "pLINE" pt9 pt10"")
- {7 P, _5 G. j' G: g - (SETVAR "CLAYER" "0")$ C+ W: Q. M0 q. F
- (command "ddedit" pause). ?( n* p% m7 _! F( t
- (COMMAND "COLOR" "BYLAYER" "")
3 O5 S; R+ t: U4 I; j( x - (SETVAR "CMDECHO" CMD)
' }3 N2 S$ A' m: ` - (SETVAR "CLAYER" NBC)$ s$ C- n6 ]% `' B
- (SETVAR "OSMODE" OSM)
3 I- U& C2 K( \ - (PRINC)8 x7 h$ o& j, L8 ~
- )* H+ Q+ }- J+ g8 X5 z
- 5 E: g/ C4 i3 }, u4 Q% p& f3 B& s
- ;;; =========================== VE NET CAT CHEO (GC) =============================9 U9 U6 n) v+ B8 D3 [3 u' { W
- $ V6 M$ E$ a6 S& I* E
- (Defun c:G1(/ p1 p2 p3 p4 p5 p6 p11 p12 l ang); @$ m' ^5 x2 E$ w* r: T% M% ~8 h
- (setq x (getvar "osmode"))8 y4 f' k" [9 J8 c1 l2 N% e
- (setq p1 (getpoint "First point : ")
3 T0 E. k: G7 y: l$ J1 i - p2 (getpoint p1 "Second point : "))& P- h6 _' ?. {+ A" f
- (setq l (distance p1 p2))8 z* u. }3 d# ?2 q5 y
- (setq p11 (polar p1 (angle p2 p1) (/ l 5))! K. \3 t0 | k) f+ f4 Z
- p12 (polar p2 (angle p1 p2) (/ l 5)))
( M e6 o/ b, s% V. ` - (setq ang (angle p1 p2))% g8 [- H4 L+ j0 b3 v
- (setq p3 (polar p1 ang (/ l 2.5)): j% T4 N, _- h2 x
- p4 (polar p3 (+ (/ pi 2) ang) (/ l 5))9 I3 w- d4 P: T* U
- p5 (polar p3 ang (/ l 5))9 J7 b* e& S4 b, Y5 Y* f" t
- p6 (polar p5 (- ang (/ pi 2)) (/ l 5)))/ _5 k2 a; U% U2 r4 Z. l( t" k% S* U
- (setvar "osmode" 0)
0 F) a- c O6 s* H v4 x- ? - (command "pline" p11 p3 p4 p6 p5 p12 "")
. L* k+ Q: h: i8 i3 R& F/ p( ? - (setvar "osmode" x)
, Y& i+ ]7 |. U - )4 s2 `' R! h- N: B2 p- B
- ;----------------------------------------------------------------------------------
' W4 X' V4 K# Z - (Defun C:G2 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6. Y1 p8 U) X) w" k+ ^
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
: _6 \5 W. Z9 F) ~; d - (setq ps1 (getpoint "\Chon diem thu nhat: "))- Z9 e& E- f$ u* H) X, D8 H- f2 M
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
- x' R1 |1 F0 v - (setq sb 50.0 sh 200.0 se 20.0)
" Z$ T5 U! O% J' v; a J - (setq ang (angle ps1 ps2)), D" O8 H% j" Z$ k# N" @
- (setq pf1 (polar ps1 ang (- 0.0 se))); k* w: n/ ?0 v( P
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
i8 |5 Y! a) q2 k, C$ @* k+ j - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
, W- E1 w( G3 t - (setq pf5 (polar pf2 ang sb))7 `2 m0 W0 w2 |0 F1 [$ _# @
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))1 M o$ F7 u7 x8 g2 K
- (setq pf6 (polar ps2 ang se))- X2 ]( G' O- a2 j8 s
- (setvar "OSMODE" 0)1 H3 C7 {$ ]5 u$ f+ Y% `
- (setvar "BLIPMODE" 0)& {. Z# a3 t, [, f
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
, N2 g1 `4 v" v P* D - (setvar "OSMODE" 703)2 J- R8 G/ x, c$ T8 U- l2 f% b
- (princ) )
2 v4 L. @8 |0 \; a0 H8 T# \ - ;----------------------------------------------------------------------------------
6 q6 C5 L0 i' N3 j) K - (Defun C:G3 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
; P, G% x9 `5 L4 b2 z: S6 }3 f - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
C1 I: I0 K( ?. Q: j3 }( C7 k% z - (setq ps1 (getpoint "\Chon diem thu nhat: "))
3 V- M0 ] L6 h0 v3 x( s - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
. C% Q$ R9 l: @" L7 \ - (setq sb 100.0 sh 150.0 se 20.0)
! C2 l. x0 N) }* f( Y - (setq ang (angle ps1 ps2))# k, u0 h t# c+ U
- (setq pf1 (polar ps1 ang (- 0.0 se)))' B7 ^9 R4 D* R) ~0 l* Q
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
, }% F0 |) Z7 I# w - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
3 f+ X, ?: l5 f& X0 O p - (setq pf5 (polar pf2 ang sb))
0 j( _: X2 e; A) z+ E" D - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0))); Y: l( w( Z/ g+ A# ^
- (setq pf6 (polar ps2 ang se))
: U1 U) r! @& @ - (setvar "OSMODE" 0)2 v. z w v6 q* C7 A1 y2 J7 r
- (setvar "BLIPMODE" 0)
; Z0 T' J& Y6 y O - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
+ s% ^* G$ N. Y d& p* W( N - (setvar "OSMODE" 703)2 l$ Q4 P5 B. f( y4 u
- (princ) )- c) o! a/ ?& }- s' ~/ ?- D
- ;----------------------------------------------------------------------------------
+ E& ]9 o% E0 V' f) t. q - (Defun C:G4 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
$ @$ M; n; q e! X - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
! N9 b" Y+ i+ h, n$ K. h4 ~- l - (setq ps1 (getpoint "\Chon diem thu nhat: "))
" g& ~1 W; C# W4 |& z9 M- W - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))/ K m+ y( Z2 ?: o( }
- (setq sb 100.0 sh 250.0 se 20.0)
& M" {' T2 k" E' ]- t - (setq ang (angle ps1 ps2))
6 D3 \+ ^0 M8 [& k5 G% X - (setq pf1 (polar ps1 ang (- 0.0 se)))- z2 C0 |, N# `
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
4 E' M* m" C, f3 y$ C" Q/ K1 b3 Y - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
( h: C( T$ b* I7 G% ` - (setq pf5 (polar pf2 ang sb))
8 D2 H+ A3 e# w7 ?7 | - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
3 e' e6 j5 b( O/ } - (setq pf6 (polar ps2 ang se))/ B: j/ v0 j, i
- (setvar "OSMODE" 0)
7 B: c- A2 {" e6 I# Z3 A3 _8 n - (setvar "BLIPMODE" 0)
9 K2 M+ }" }; w# U8 ] - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
* c! _# Q0 K. u8 b - (setvar "OSMODE" 703)
2 M/ L! M) a/ H1 |- A4 @- I' A - (princ) )
1 T7 |5 e+ t- K9 h" n- |, }; u
% }9 `" P8 S B. ?- ;==================================================================================
8 T- I$ U+ f4 L O8 r% ~1 u - (defun c:ang (/ ent pt1 pt2 ang)
- x8 J2 Y! x1 A# i - (setq cmd (getvar "cmdecho"))5 \* C. X9 ]( U# y! C$ m7 z) \
- (setvar "cmdecho" 1)
1 ~9 `# E, }- b- D - (prompt (strcat"\nThay doi truc toa do theo duong thang chon truoc"))5 d( ~) W# [' h3 k V I
- (setq ent (entsel "\nChon duong thang:"))
0 {- I7 |5 n; |8 L8 _: A O( s - (if ent + O v! B) [; P# t: H
- (progn5 X0 G+ M2 }7 l- Y" l w" q% C9 \# O
- (setq ent (entget (car ent)))! ?2 w5 m v% I
- (setq pt1 (cdr (assoc 10 ent)))
) s+ M& o% Y8 p, t2 q* U - (setq pt2 (cdr (assoc 11 ent)))
6 x* H! p1 y) u; t$ U, Q0 w - (setq ang (angle pt1 pt2))
! ]3 ]2 O0 i1 i, A" X5 \ - (setq ang (/ (* ang 180.0) pi))
9 } s6 m, P" H% e) H1 O/ y8 L - (setvar "cmdecho" 0)- \/ Y& r" M5 x" T
- (command "setvar" "snapang" ang)
, ^3 I% Z( N5 [, M& p - (princ "\nGoc cua truc toa do moi : ") \( j9 Y" A v* S# f c
- (princ ang)% K# y6 x, i- S+ I
- )/ t6 ^) v0 P9 B/ i2 ?& G" h/ g$ A' ]7 J
- )( W E; @; m$ y1 j; d" Y
- (setvar "cmdecho" cmd)
* u6 z9 S3 K6 L1 M* |- x4 Q - (princ)6 Q5 y6 _7 H& _- J
- )& D1 G# D g/ \1 w- J+ [
- ;==================================================================================7 d+ p. I; o$ Z7 V! b$ E! _
- ;============================== KY HIEU DOI XUNG ==============================
4 N3 T/ N$ @' ], k/ [% \- O - ;==================================================================================
( \+ b: ?9 |5 P; c - ! s% ]9 `/ Y* W% o7 E9 f0 _! y* A
- (DEFUN C:DX (/ CMD OSM OLDERR PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 PT97 Q6 O- l. C d Z4 C: [
- SZ G45 G135 G90 G180 SS loi)
/ o/ I8 z' i: X: p3 E4 v - (defun loi (s)
: m$ c& ]8 {' p% E - (if (= s "Function cancelled")
% Y7 x0 k6 \- m0 d - (princ)
0 D( V6 q' C' J! a* {: ~ - (princ (strcat "Error:" s)): q5 ~! I# a% g9 |; L' f
- )
6 c6 Z* z- _! G1 Z- r1 w. i - (SETVAR "CMDECHO" CMD)
7 }7 a/ k4 _% ^9 m - (SETVAR "OSMODE" OSM)3 u6 @4 Q/ J N( r! B9 Z2 D1 L L/ @
- (SETQ *error* OLDERR)
9 R, T! v1 A9 J. ^, T8 j1 A/ ^ - (PRINC)! Y- {4 j% `9 Z/ j& G
- )
0 `$ N* M3 [" r - (SETQ CMD (GETVAR "CMDECHO")). a" X0 f \/ s) @
- (SETQ OSM (GETVAR "OSMODE"))
4 o% f+ J" [# u7 I" K) v' L; i3 K - (SETVAR "CMDECHO" 0)
, L0 i; \2 Z2 i! X - (SETQ OLDERR *error*
4 J; ^; I$ ?% i5 y3 B" C* ] - *error* loi)1 U' x: s0 P- p
- (SETQ SZ (GETREAL "Size <1>:"))% \: M' l3 y) {" |; d p* i
- (IF (= SZ nil) (SETQ SZ 100))
! \; g5 K; r$ C) I& D5 o& C- Z - (SETQ G45 (/ PI 4))& m/ L; V5 e# s2 v9 k: a. D
- (SETQ G135 (* 3 (/ PI 4)))
4 l7 } ]) p) P8 V" T' Q - (SETQ G90 (- G45 (/ PI 2)))
7 ]/ c* J% a& Y1 V8 ]5 y - (SETQ G180 (+ G135 (/ PI 2)))8 T$ _# Z- @6 P) z7 p
- (SETQ PT1 (GETPOINT "\nDiem doi xung:"))5 T8 y9 i% F' N m4 E
- (SETVAR "OSMODE" 0)
* @$ h Z; c* C5 X; d - (SETQ PT2 (POLAR PT1 G45 (* 2 SZ)))
3 P1 [9 W& V& U3 A& l" e$ r9 l7 W% B9 c - (SETQ PT3 (POLAR PT2 G90 (* 2 SZ)))* J: F/ u3 R2 i3 s: T) ^. L
- (SETQ PT4 (POLAR PT1 G45 (* 1 SZ)))# N0 Z7 U& }) }
- (SETQ PT5 (POLAR PT1 G135 (* 2 SZ)))/ q: `/ x9 @# g
- (SETQ PT6 (POLAR PT5 G180 (* 2 SZ)))6 F5 q. s( ~- ~/ C& \' O8 M8 B
- (SETQ PT7 (POLAR PT1 G135 (* 1 SZ)))
( {1 h% m/ a. o% U9 D+ ` - (SETQ PT8 (POLAR PT1 G45 (* -0.7 SZ)))
" G3 w8 |0 r! `& l - (SETQ PT9 (POLAR PT1 G135 (* -0.7 SZ)))7 w/ D1 w8 Y9 Q P) B. E) H) @+ o. R5 X
- (PRINC "\nGoc quay:")( r/ ~! J: [8 ?- r. w
- (SETQ SS (SSADD))
7 Z, q; ` y: g# ^' Q$ m& d4 D; U - (command "layer" "m" "Dim" "c" "" """")7 ]# y4 q! F: D4 e/ }
- (COMMAND "COLOR" "1" "")4 [& w$ f" ~" p1 b) H% p
- (COMMAND "LINE" PT8 PT2 "")5 O+ H8 [$ l4 V- E& `
- (SETQ SS (SSADD (ENTLAST) SS))& v/ x; r$ p/ L
- (COMMAND "LINE" PT9 PT5 "")* B! p! L2 \. x8 h5 g! i. ~3 U; d
- (SETQ SS (SSADD (ENTLAST) SS))& |" Y* A1 Y3 _
- (COMMAND "COLOR" "1" "")
. ^9 @0 ?7 W( C$ I) h7 u+ x9 _ - (COMMAND "SOLID" PT2 PT3 PT4 "" "")9 Q) |3 c+ N6 j6 k! m3 u5 }* J
- (SETQ SS (SSADD (ENTLAST) SS)). ~ k5 d {& u; v2 X+ Y- G
- (COMMAND "SOLID" PT5 PT6 PT7 "" "")
- @# }/ R0 J' C* v( r - (SETQ SS (SSADD (ENTLAST) SS))
8 }" [+ |( V& h( \$ |) C, d |) L - (COMMAND "ROTATE" SS "" PT1 PAUSE)/ K5 t3 [' v P0 ~
- (COMMAND "COLOR" "BYLAYER" "")- `: T4 E- D% M7 G; h- D
- (SETVAR "CMDECHO" CMD)
; [) r2 x/ U3 F; J$ r9 ~ - (SETVAR "OSMODE" OSM)
4 ~* N+ t4 o& J - (SETQ *error* OLDERR)3 }* o: v5 O5 y
- (PRINC). d. q7 p* m7 d2 ?) g
- )
( L; @6 a/ l% p( t, C8 X - $ a1 o* o3 {1 j) g4 F4 L) s0 L
- ;==================================================================================2 _& J! L @! [2 L- v/ l: L% o T0 R6 G
- ;================================= KY HIEU TRUC ===============================5 ~' G2 f0 f& |8 ?: v
- ;==================================================================================6 `4 r+ t5 u# `9 U4 n8 n$ S
- 6 s0 ]2 f5 v" V8 V1 W; a& Q
- (defun C:vetruc ()1 Y+ s" ]- @4 A. V! {) {
- (setq bk (getvar "USERR3"))
: l: M' Y% l, C! t - (if (= bk 0)
& g) M) u( ]( f( y - (progn
% `, N, T( K" `+ X/ g: r% p. i - (setq cont "1") |) i; q6 S2 e! a1 u+ c
- (setvar "USERR3" 1)7 M' S/ [) X! m. [+ l' {& U8 I
- )3 a/ `8 G0 C$ S' d
- (setq cont (rtos bk))
+ N* e4 l7 |5 \# v5 c. ` - )
) }7 G5 Y* S, W L1 u - (setq pt1 (getpoint "\n Nhap diem dat:"))
: C4 Y, a/ j% T9 y! K" P' r - (command "layer" "m" "Dim" "c" "" """")+ X3 J$ o; U+ [8 h+ G# M0 R' f
- (command "osnap" "")5 ^, m: y# {% A; \2 Y" h' U
- (COMMAND "COLOR" "7" "")
1 a" W0 I$ v0 P# R; w. Y - (command "circle" pt1 150 "")
) I, h3 }8 c5 u5 l2 x - (setq pt2 (polar pt1 0 150))0 D/ g/ `# k. M: ~! [7 g) V
- (setq pt3 (polar pt1 (/ pi 1) 150))5 C1 i% d7 L2 F* g2 I4 Z( b) M
- (setq pt4 (polar pt1 0 300))
* m% F5 A: Q8 p - (setq pt5 (polar pt1 (/ pi 1) 300))
) O X% ^4 u' Q1 d; b! a - (setq pt6 (polar pt1 (- 0 (/ pi 2)) 150))
! P0 U J" M5 t' R$ _% G' e - (setq pt7 (polar pt1 (- 0 (/ pi 2)) 300))7 D+ F# a; |& I
- (setq pt8 (polar pt1 (/ pi 2) 150))6 Y; H/ B7 X# `! t. Z2 a, I
- (setq pt9 (polar pt1 (/ pi 2) 300))9 G# |# m# R R- ^
- (setq pt10 (polar pt1 0 150))
. R8 R3 q2 e2 L7 }- o+ u% d- w* g - (setq pt11 (polar pt1 (/ pi 4) 150))2 T' @7 D2 S+ S2 D* m
- (COMMAND "COLOR" "BYLAYER" "")* {, i, J* C1 k8 s$ R
- (command "line" pt2 pt4 "")! t1 s2 l, ^8 Z$ y! U
- (command "line" pt6 pt7 "")- m( U& C4 h6 @. A$ h
- (command "line" pt3 pt5 "")
% M# g) W' Y+ {: T" R9 a' y - (command "line" pt8 pt9 "")5 Y, [ M' N6 G6 Q$ B5 S6 H' t
- (setq dk (strcat "\n Size:<"cont">"))
5 l* }9 t$ \7 t; j. \7 M6 @. J - (setq bk (getreal dk))
+ S0 ?" C4 l! {- G$ ~$ S) m - (if (= bk nil)
& c$ R6 J' _* x: b1 V( \ - (progn8 T1 R& Y( h/ V
- (setq bk (getvar "USERR3"))1 ]. ]: K1 z/ c6 R5 C j
- )( x( @6 C1 ~/ h% b! W1 c3 a
- (setvar "USERR3" bk)/ u# R3 ?" d5 {, t; s5 h+ ^4 n2 F$ V+ b; W
- ); H3 G1 w9 K% v. w1 J
- (command "scale" pt4 pt5 pt7 pt9 pt11"" pt1 bk""): j; Y: S: _: q# g
- (COMMAND "COLOR" "7" "")$ o6 N# y2 r# J& Y. P# q6 Y! }( \
- (COMMAND "STYLE" "Truc" "impact" "" "" "" "" "")* n8 T! o- a3 t/ B5 X
- (command "text" "j" "mc" pt1 (* 150 bk) pt10 "A" "") 2 Q% ?. F3 h) i9 Y
- (COMMAND "COLOR" "BYLAYER" "")
$ _) S0 |* o% j% A+ u - )
. w# t8 E& x( x( s2 \( D
! ^1 n3 U& O& }* l- ;=====================================================================
' z+ u9 z# ^- G* L' ^ R - ;CA - Reverses the case of text. (Upper to Lower and Lower to Upper.)
1 b4 [0 a" W- X8 Y$ s1 i - ;) M( Y" P; C- `' O" |. v( N, k
- ;Jeffery P Sanders
( [3 Y. q; Q9 B - ;' s* {; G% ]9 e: p7 c4 T: F
- (defun C:CA(/ en enlist tx newtx cnt tp asc note)$ y u# g# ?3 R( y
- (setvar "cmdecho" 0). i& D5 L6 l# _* ]2 Y
- (if(setq en(entsel)) _- ~' `6 t* S3 i6 E
- (progn7 q& i' p$ f9 _2 z" L, F7 _% r
- (setq enlist(entget(car en)))
. u& p u3 e" @ - (if(= "TEXT"(cdr(assoc 0 enlist)))$ t9 |, |9 }: s. s
- (progn ^1 y \3 q' j- I
- (setq tx(cdr(assoc 1 enlist))* Y* S+ f$ v$ j
- newtx "" cnt(strlen tx)2 {/ W$ t5 M0 b$ K8 j( u2 ]* }9 v
- note "\n...CASE Reversed. \n "
s- H% }; a+ G( @) C' \- l C0 u Y - )/ Y6 }5 P3 _2 U8 k6 f4 M: k0 K
- (while (> cnt 0)
. W+ i+ z7 q. p5 X! g r - (setq tp(substr tx cnt 1))0 o+ M7 y. D. U V
- (setq asc(ascii tp))% O& i& m) L3 z/ _
- (if (> asc 96)
- K& W! x4 e5 `* Y/ n" b - (setq tp(strcase tp))5 I5 X7 I' e: N+ q% Y6 d: w8 L
- (setq tp(strcase tp T))
- _& J- B& Y% K3 J6 `1 e# Y. q - )3 H1 E1 a1 A' w: A5 g
- (setq newtx(strcat tp newtx)): t0 ^9 |$ \. J2 O( B! f
- (setq cnt(- cnt 1))" k8 O* @# l0 K" d
- )
/ t1 @$ p+ Y9 a' v2 Z - (setq enlist(subst(cons 1 newtx)(assoc 1 enlist)enlist))
- E0 l' \9 S5 S- @ - (entmod enlist)* `3 j- j8 k6 `" i' K$ _
- ). J/ q* A0 F" G1 p2 {% w1 X' ?% d' N
- (setq note "\n....Text Only Please. \n "): z( \0 v. `7 P3 ]% s4 _
- )
7 @. h7 N, r3 T: ?4 ^! v" y+ }( d5 O" a - )
0 ~* z9 l! h6 Z - (setq note "\n....Nothing Selected. \n ")
0 C* @4 Y, N, a# f: _6 z; p5 u - )* o9 B- h% t- [" P c
- (setvar "cmdecho" 1)9 T5 E. F, o2 a
- (princ note); K Z# o; K) Q" i! I, h
- (princ)
+ M: m0 V: n- c! P' j+ i; f3 u - )
8 ?9 d, ?0 e: s - 2 M# M5 T$ H/ a+ r6 Y
- ;=====================================================================
. N2 R- d. A' U" O0 A' X - ;==================== NEW TEXT STYLE UPDATE ==========================
& ]. s& X. N u& @ - ;=====================================================================$ J/ _/ ]6 L7 W2 k, {9 H
+ ]+ r- j- \2 a$ p- (defun c:nS (/ tdt ssdt sodt index)2 M) ~$ X, x: `, L" c
- (defun ObjName (ssdt /)
" J+ j$ U, Z, p9 Y# K4 w - (cdr (assoc '0 (entget ssdt)))
9 ?9 i, S5 X5 a- n M - ); i5 Z5 V+ H: O1 Q
- (defun MoPL (ssdt /)+ q6 G/ U% V6 i" ?! R
- (= (cdr (assoc '70 (entget ssdt))) 0)0 s! `7 m4 @0 ^% I9 ?* K4 q
- )
8 Q( E0 p1 Q0 \) c9 _ - (defun NoiPL (ssdt /)& @1 {3 U6 f2 |
- (if (MoPL ssdt)
; ^0 q' D! t" J7 h& O |' @ - (command ".PEDIT" ssdt "J" "All" "" "X")( g5 w& n& }, N
- )0 l5 g! U' T0 E7 E
- )
4 \% m$ u* W- C; O - (defun NoiLC (ssdt /)( S: y; g6 \2 o( M1 D/ q
- (command ".PEDIT" ssdt "Y" "J" "All" "" "X")
2 d( G! ]! `7 _- b! ~, F - )' }7 N2 F$ P- I. J1 b
- (setq
3 u! u. ~& N! {- E' { - tdt (ssget): w! _7 p' C+ X2 I* Q, B
- sodt (sslength tdt)
! b. \: b; C- u% [$ c - index 0
4 }5 d7 |- R- ^3 D2 T/ j8 f8 V9 V - )
0 B' \( I! {6 R) P& [ - (repeat sodt
8 c6 s( l( C1 ` - (setq* x- c9 Z/ U0 z# a
- ssdt (ssname tdt index)
9 l- \' N! |( f. ~( n* T3 c% s - index (1+ index)
) k$ p" D' t( H. _* c* A. n7 ? - )! q" N8 i" V5 P6 V
- (if (or (= (Objname ssdt) "LWPOLYLINE")4 `. ~4 A/ a8 z# r T
- (= (Objname ssdt) "POLYLINE")
5 R2 O. c$ j) F1 c - )
# w# }: I0 x5 W+ M - (NoiPL ssdt)
/ R, d8 J/ r; a- K o+ a) \ - )
4 u1 X, f. ^2 R/ t _2 h, Y; F1 g6 S - (if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC"))
; Y ?4 h0 W$ [& I, ^ - (NoiLC ssdt)
4 V& H, v& Q8 m - )8 _# M/ P- ?1 H2 s
- )
9 k: _) C3 g* K7 }/ q3 _# |4 U1 U" v - (princ)
- |# }5 l6 d' X' k/ ^4 i# f - )
' J9 Y, w# z+ U& U+ v% v
' U" w' I% i6 i( O+ e/ W9 r- ;=====================================================================7 z8 F+ \8 D; j$ q
- ;;; AREAM.LSP
7 V3 X4 Z7 n+ j - ;;; Function: Calculates the total area of selected objects
4 x, [; W% g% v2 | - ;;; By Jimmy Bergmark- `2 z9 U& T: H o x# G
- ;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved
8 c- c. M% u5 Z8 n# o6 @ - ;;; Tested on AutoCAD 20008 E7 D6 P# C# K
- 3 @% ^' ?! L& u0 B4 C
- (defun c:ea (/ olderr oldcmdecho errexit undox restore ss1 nr en tot_area)# B& S. e. t R! T
- (defun errexit (s)
: ~' ]. ?& W' t6 K( S - (restore)
" C9 f* i6 m+ Z, ~. Z- `$ p' m: d - ): m9 L' m; X2 E9 v* M9 ?3 d( E
- " t: P) }! P" N2 P @, z
- (defun undox ()1 g7 l: z. O) G- j; c/ q
- (command "._undo" "_E")2 e+ m. {* M7 X, Q4 d6 D
- (setvar "cmdecho" oldcmdecho)
9 i1 o) }, K4 k1 u9 k; T/ U# u - (setq *error* olderr)
- V% Z" T- G8 \" i: H+ o5 H - (princ)& Q; s/ r4 }6 d! `; |
- )' F+ G/ C: `1 V, D4 J. m: U
8 t3 P$ c: R6 X1 b, j* M# ?2 M+ o- (setq olderr *error*
+ H9 D% N) U- m0 d0 x) w3 Z( Z - restore undox
% l/ q N0 Y) E3 l$ m$ \ - *error* errexit i9 F6 X1 ~/ P4 I, f
- )5 x3 S/ y, a- F
- (setq oldcmdecho (getvar "cmdecho"))
( _( f6 h# y+ z( G2 Z - (setvar "cmdecho" 0)
1 R' J2 \; { X0 ~: x9 G; C - (command "._UNDO" "_BE")
6 ^8 \, N* @" T5 \8 O, _ - (if (setq ss1 (ssget '((-4 . "<OR")
! D/ n ?7 `" C8 [5 m6 J1 W - (0 . "POLYLINE")( n1 l/ Q" `$ @) I5 K
- (0 . "LWPOLYLINE")
8 ^) E5 d* t5 Y! N. \. d - (0 . "CIRCLE")9 u: T( E/ V( g( S C; |
- (0 . "ELLIPSE")% M* Q- a x) v$ I. s% x0 h6 c
- (0 . "SPLINE")7 R, A) \2 p% W0 Y7 ~8 k- t2 ~6 m$ C
- (0 . "REGION")
; `1 G/ U, ]; d0 R$ K! ]0 Y2 y* [ - (-4 . "OR>")9 X" G" T0 p0 g3 r0 x0 A
- )' G( }0 y8 k# k) b
- )
, \' K# |2 s$ V! }" g - )0 `) Y W! N9 u9 R/ g
- (progn
$ T5 ]- _9 m7 ~ - (setq nr 0)
3 I- _. n7 L9 |# ]* p& ^$ | - (setq tot_area 0.0) B/ _$ `0 a6 u' y c6 I' h4 b( l
- (setq en (ssname ss1 nr)) i4 y7 {9 H: w6 s
- (while en% S/ c$ e2 a' `! w
- (command "._area" "_O" en), C9 U; w b i$ x
- (setq tot_area (+ tot_area (getvar "area")))
" Y2 Y( P! W% u - (setq nr (1+ nr))
+ Y& y* p' X) Z/ c- g5 Z - (setq en (ssname ss1 nr))
5 ^& }+ d2 u" F7 C* k# D5 v) P - )
) m$ h) G f4 \+ z - (princ "\nTotal Area = ")
+ Q9 ]. m5 @ b& o8 D - (princ tot_area)
; L/ o, |; J: ?, v% t, T - )1 I- W, L, V# Q/ v+ o
- )
/ I3 p9 [% ~8 e4 M& C. J1 |' | - (restore)
$ Q! y4 b3 s8 h1 @# x; u - )
( u% I I) U( u9 t7 j - . |) m% ]! y. ?5 T, F7 }
- ;=====================================================================
2 N1 `: [1 Z4 J - ;;; By Jimmy Bergmark6 }" v$ \5 p# o9 u, W5 y. V2 ^. F
- ;;; Copyright (C) 2008 JTB World, All Rights Reserved
9 V9 D( z) Q% p' N3 e! f - ;;;3 b$ i+ }0 k" e
- ;;; Created: 2008-03-31( H5 |9 U+ e% R- f" ^7 c
- ;;;
+ V7 a; H& O0 z2 t3 ^. l6 J+ ^ - ;;; Convert Attribute definitions to mtext R" c( h0 W5 V/ l$ I1 d
- ;;;
( K' ~% }0 X) a4 _ - " w& P1 H- [9 t, t% X+ I
- (defun c:ATB (/ eset1 blkcnt en enlist tag1 ht pnt vl space)# E% g; h; k0 k1 o' M3 L1 M( ~0 X
- (setq eset1 (ssget (list (cons 0 "ATTDEF")))
( O# W- n5 B6 E" I) J9 C; ~ - blkcnt 0
2 g1 _& y6 x' [8 ~3 s - )
/ m9 g! p( X" B7 m1 i3 q8 V2 v
! ^( A/ J3 D; X* o' P8 n- (if eset17 L* U9 G ]$ `. Y, O
- (while (<= blkcnt (- (sslength eset1) 1))
) B% l, M( _; B5 Z3 W4 M* E1 j1 b - (setq en (ssname eset1 blkcnt)
k: s; @2 K C. `" H( N - enlist (entget en)8 n" C, e( v; V1 u# J
- ht (cdr (assoc 40 enlist))
9 \% R1 p" G* C3 ^4 e - pnt (assoc 10 enlist)0 ^, _/ m0 d' v: X* R; m
- pnt (subst (+ ht (caddr pnt)) (caddr pnt) pnt)4 `+ M2 e3 d* l h+ w) E# k8 K
- space (cdr (assoc 67 enlist))/ ~6 S9 R" s5 K) T
- )
1 A. q& b& R$ b( V - (setq vl (list( z0 v2 ] k u7 Z
- (cons 0 "MTEXT")4 m" a* V( }, r
- (cons 100 "AcDbEntity")5 E: _- b2 }; ^
- (cons 100 "AcDbMText")2 A. k# q- K% q3 {# l
- (assoc 7 enlist)9 F# C8 r8 p2 E5 v
- (assoc 8 enlist)
3 R+ B5 i) W+ l0 x* s9 Z q - pnt
6 @% T/ X% s/ K; J ]" f0 B9 i - (assoc 40 enlist)
4 D. Q1 F: n6 K" ?( x2 b; e! C9 K - (cond ((assoc 62 enlist)) [* K' |9 a4 T& N$ c1 Z# i
- ((cons 62 256))3 J, l# l8 z. g' B4 H$ T; R
- )
# L" B# y1 D9 T: F+ w5 Y - (cons 1 (cdr (assoc 2 enlist)))
: Z- `5 L' c' J5 O) W; t6 @ - (if (= space nil)3 M* f8 J! d [4 t( ~7 C0 t
- (cons 67 0)
+ {4 O% B) Y' F2 d% G; `+ E3 I: S - (cons 67 space)
; ? M+ z; V9 H1 D5 I- u - )5 R6 G' u. x' {2 s) j: y' G, w: V
- )
8 J/ m }9 w7 [3 e2 A - )
' F) {3 W. I" \ - (entdel en)
' c$ p7 L. I0 L* o! K - (entmake vl)- q [! P7 ]" L- q4 h- i9 d# }6 z
- (setq blkcnt (1+ blkcnt))3 q% }& z# E( Y( s- @; e
- )% l/ k3 p% K: f1 \3 u
- ): q1 n, Q# E# {9 W
- )
% d8 x: Y: R8 |4 ^* Z" C9 O5 r1 z
" ?& {1 w; k3 [* ]/ X8 M* U' c- ;=====================================================================
1 V# h V P) z1 l& x* w$ L - 8 Z8 N' F5 ~# b k
- (defun c:xxx ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)( S6 S# K( o1 `; Z& o4 j
- ; Khoi dau cua chuong trinh8 j0 Z! ]/ o0 t3 j
- (princ "\nCopy Inteligent...\n")
/ p7 s3 e0 N9 v6 q* T0 Y3 l! \ - (setq luuecho (getvar "cmdecho")
A; \2 H5 o7 p2 u - luu *error*
0 B% O w# `0 ^! l; s; y - *error* ketthuc
2 u" m3 f% L) F6 b& l - cumdt (ssget)
: _" J% N; E% ^8 r - dodai (sslength cumdt), Y1 H4 S6 N+ [% [/ p
- goc (getpoint "\nSelect base point:")0 X ?- |+ M. b( a2 c
- thoat nil1 A( d/ Y5 k* M- B" w! |
- dem 05 [3 ~; \$ n ?* ]( M+ N! q4 e# z
- textxl nil" {: s# z; p1 ^7 r! y9 Q
- ); B; z! r: R' v
- (setvar "cmdecho" 0)# d, G; x2 n" V7 Q% B9 d
- ; Loc ra duoc ong text de xu ly
# X. K+ X4 h4 @, w( ` - (while (and (= thoat nil)9 `+ p" q# F8 {
- (< dem dodai)
8 n% P6 }5 z6 ^# Y6 l4 D - )4 a. s; ~7 D' q# H0 k2 F2 H2 d
- (setq ten (ssname cumdt dem)
! h! c# u+ }3 J6 E - dem (1+ dem)5 `4 m1 F: O9 j8 ~
- doituong (entget ten)
4 T9 M% b, I* s* | - kieu (cdr (assoc 0 doituong)) ! W |' T5 T0 l7 C( j8 `
- )
8 b1 Q7 D. Q o( U5 }6 r& p, i - - Y" j8 r3 Y* b e
- (if (or (= kieu "TEXT")
0 b9 F) v f7 W - (= kieu "MTEXT")
7 S% I2 l5 e: U& W2 I - )% F- F& J" L$ u: }: Y& P
- (setq thoat T
' E, {/ W6 N3 v B# K+ H - textxl (cdr (assoc 1 doituong)) * B' S) d7 X, l4 w7 `
- )
+ Z' B3 R8 j R/ Q. O9 v9 V - )
! C% G8 q3 S' D/ ?" @/ m - );0 q0 {+ ]$ K h G- n! u
- (while T * n6 i; J0 t% p0 U
- (setq toi (getpoint "\nSelect next point: " goc)
: |4 O7 F8 \5 V3 b - vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))+ F6 j7 ?5 o' T2 l K8 Y
- dem 0
& U- a8 g9 D) j1 k - )
6 j6 N: X" ]( Z7 } - (while (< dem dodai)
; C4 A5 S9 h! v# G, x1 k+ W) o% M - (setq ten (ssname cumdt dem)* d/ E$ L, w( N6 l3 I8 {* L
- dem (1+ dem)
3 T- }+ Z: F3 ^' p) m8 J* t2 h8 U7 _4 M3 C - doituong (entget ten)( ]/ K' k1 o* |5 ^ c. e$ y
- kieu (cdr (assoc 0 doituong))
) z. e( b; _. [ - )
! N* _9 v/ i8 S& u6 d* O( I* \ - 4 D6 q& q: S3 T. \7 o
- (if (or (= kieu "TEXT")
+ }1 q1 p) x' a& t2 I+ S - (= kieu "MTEXT") ; a) x4 S% p' J9 v) p. j
- )
) E3 F$ [0 u) n - (doitext ten)
7 x% \: C4 @- @) | - (copy_dt ten)
( N, v+ A. y* `. M6 B
% b, ~% `4 o- r3 @5 Q- K- );if7 R A$ `! K. U/ w: ?/ p
- )" U' C+ u6 ~& R0 y3 J! _8 y3 V
- );while- w( ]6 b- {6 _2 w+ w
- (ketthuc); J7 Z! P0 H& L
- );defun3 o/ b, F6 u0 X/ v! N/ O
- (princ)
. t5 S8 Z' ?! l- W! n/ A
7 a9 [( N4 I4 G) n% j" M9 u3 \- ;=====================================================================
% v" e! e: S2 m ^ - ;;; By Jimmy Bergmark
4 F) l' S3 _% O+ \$ D# A - ;;; Copyright (C) 2008 JTB World, All Rights Reserved
1 Y" y1 F( }5 v9 T - ;;;
: X2 _! v7 i/ I7 @6 a$ W: G2 O/ y - ;;; Created: 2008-03-31
" e4 B, `# j0 S - ;;;% O$ y! t* }9 e, ~& n7 v
- ;;; Convert Attribute definitions to text. |2 d/ ~ i- m' I7 d: [7 o- Z
- ;;;
4 [6 }! M8 ]7 N9 I& a - $ z# ]3 I. p+ |# n h" f
- (defun c:ATT (/ eset1 blkcnt en enlist vl space)9 u$ U) S1 a. E# P! T& O4 W
- (setq eset1 (ssget (list (cons 0 "ATTDEF")))
+ U5 E) \2 O3 Q1 m% Y3 y; K - blkcnt 0
% y, F* g2 e4 g* p4 E - ), x" r4 L* B$ U8 K- j
- 4 h; E1 W8 w% Q0 P' I
- (if eset1, r6 f, ?3 g, ]9 l: k2 X k6 I, T
- (while (<= blkcnt (- (sslength eset1) 1))+ b. |5 X) [" |
- (setq en (ssname eset1 blkcnt)
7 \% ?; b+ ~7 N+ ?) s7 O) n! Y - enlist (entget en)
# ~% K# C0 A, y$ u8 O- d1 q - space (cdr (assoc 67 enlist))- |) A( ?# I2 L/ u$ h- Z
- )
3 ?2 O/ i/ W& ?2 D: c7 U. A" P - (setq vl (list- Y4 u( B% ]9 C* q& C& J4 O6 S
- (cons 0 "TEXT")0 z. r, Q6 I0 n
- (cons 100 "AcDbEntity")# @. Y! c# E' k; v; v: \* m+ A
- (cons 100 "AcDbText"); ?- q" ~: L( g& Y! z, C
- (assoc 7 enlist)9 c3 n. J/ n2 z. Y! f2 i
- (assoc 8 enlist)" ?* _, G8 Z- O& B: F( q V
- (assoc 10 enlist)
6 A P# l# C. i+ W- z1 x! | - (assoc 40 enlist)9 |6 I: y! a/ l K6 w1 n
- (cond ((assoc 62 enlist))4 g. m; h d: R! t. X
- ((cons 62 256))3 l* P; B, P& x7 k6 a; ~7 \ g
- )
! a: x9 w8 ~5 e8 p6 h - (cons 1 (cdr (assoc 2 enlist)))8 @( _/ E3 S% s4 z8 w+ N+ F7 W
- (if (= space nil)
- _: Q) X! H+ y x- d4 P8 N x - (cons 67 0)' l% v. A1 r6 i9 C/ T
- (cons 67 space)' m% X) B D2 \
- )
5 k1 ~: U: x; U6 h3 V( A# ~ - )% A; ]$ {8 S0 J- n9 t# j( y2 T
- )
! |# |9 f' n8 V - (entdel en)0 g6 C# e4 _+ k- x$ d) H" N/ B
- (entmake vl)( Q+ O9 @4 u$ {9 s6 e' N2 l9 D S
- (setq blkcnt (1+ blkcnt)). K! }+ ~; Y7 w" L9 P7 {
- )
! X9 h8 V8 B: c2 Q- }1 ?' ] - )
0 o5 M8 G- n6 @4 s% T% g - )* K% r/ L, q( x) q: Y x+ U* K
- ;=====================================================================
6 q, _+ c G$ I( x4 O! R - ;============================ Doi Truc ===============================
5 m9 P) L& J& Y+ P6 U. H - ;=====================================================================
. F8 }7 i+ l9 w' T
6 t. n5 L; p/ X. {! R; Z- ;=====================================================================
8 A* Q! m& O9 l- ~; r - ;=============== FUNCTIONS GA 1+3+5+7+9+11+13+15+17+19 ===============
# Z' \8 p- A( h( _5 y4 ^ - ;=====================================================================
9 `0 v- G+ J( J6 F% |* A - (defun c:ga1 ()% k* l3 z* [# g4 s0 R
- (setq a (getpoint "\nChon diem: "))! H/ W/ y& F' V
- (setq b (getpoint a"\nChon diem: "))- L5 ?0 n5 |1 w8 [( E3 I8 |
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))0 b. _8 }( I2 l h; w }
- (command ".circle" c a)7 W. |2 Q. C* C3 h# M
- (command ".line" a c "")
: w( w0 X3 P5 p" f) w5 ~' X6 B7 n7 a - (command ".array" "last" "" "p" c "1" "" "")8 X8 W) u8 [' c: D3 ?6 X
- (princ))
) h6 k6 G. J! h' _) h/ u
/ @2 ^. D$ u8 D6 D/ I8 ~7 H6 T- (defun c:ga3 ()4 d. ~# L$ o9 @( h1 |4 O
- (setq a (getpoint "\nChon diem: "))* N+ C3 E A6 O' q- d l
- (setq b (getpoint a"\nChon diem: "))
" N1 h. |* P; ]7 O - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
4 J7 W- ^3 T8 O4 M4 D - (command ".circle" c a)
2 U# R9 C3 e1 { | - (command ".line" a c "")& b: h# I" e% i' _/ `# u9 c
- (command ".array" "last" "" "p" c "3" "" "")
' D8 n x, q% H, F! |7 c+ ] - (princ))
9 X$ z1 {5 N$ b; k6 a' |3 _+ j( q3 j - 8 [6 K9 g" C/ q2 w! n
- (defun c:ga5 ()4 \. @- _) \- z1 U j
- (setq a (getpoint "\nChon diem: "))! u7 _! Q7 J- y% q0 B+ X! H, ^
- (setq b (getpoint a"\nChon diem: "))
, d( f1 d% I0 M - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
# p6 G. A o8 l# } v1 Z0 p f - (command ".circle" c a)
g/ R3 A& M* }% S0 u/ f* Z - (command ".line" a c "")+ ]9 r7 n! A3 k: Q0 ?9 ^4 Z
- (command ".array" "last" "" "p" c "5" "" "")
2 ]! {4 n* B: i& O1 v - (princ))
+ M. f/ a) I6 W+ }" d8 S - ) P+ B0 Q1 D6 t |8 B; d
- (defun c:ga7 ()4 V& ~& c M$ c* H* q
- (setq a (getpoint "\nChon diem: "))
( i/ e* w1 g. w% s2 I/ q5 l - (setq b (getpoint a"\nChon diem: "))
$ L5 w9 X4 h; [1 M - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))$ m3 @( B$ s) V5 m. H8 u7 D
- (command ".circle" c a)
" X% g) x H# y4 N+ ^7 V - (command ".line" a c "")
/ d2 h& {& o4 g! H - (command ".array" "last" "" "p" c "7" "" "")) ]! e) }, u4 c2 q
- (princ))( }7 D5 S7 ?5 S0 e& z. }* W
- - n- A2 d0 ?: k! Q
- (defun c:ga9 ()
+ P) d5 q4 y4 O" U# Q) E9 f - (setq a (getpoint "\nChon diem: "))
( n' g+ z) X# z+ j: U% { t - (setq b (getpoint a"\nChon diem: "))' Q" r' p" h+ F+ L; J) Z" y
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
" g2 O* a8 R% K$ D - (command ".circle" c a)0 o- d3 o, M, u4 S7 t: ?
- (command ".line" a c "")
. `' S* c- b5 H% j$ \ - (command ".array" "last" "" "p" c "9" "" "")
. j7 S/ U2 {' a5 v' x$ j - (princ))/ L' l$ @* i7 ?" z9 `" z! s; |
! \. Z' y: D0 X1 u- J2 _5 d x3 N- (defun c:ga11 ()3 F0 Q9 Z9 |8 r% n
- (setq a (getpoint "\nChon diem: "))1 r. k7 R* q+ `- v* l8 P
- (setq b (getpoint a"\nChon diem: "))
5 y8 V6 u" w) N2 x# Q - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))( o# q: {! r% G5 _; U% s5 M: V# O6 ~
- (command ".circle" c a)
1 Y7 J, w, Y |& O8 Y7 Q) N - (command ".line" a c ""): U+ ^3 X0 G% ]- ?
- (command ".array" "last" "" "p" c "11" "" "")5 F5 f$ C }9 b) v; q8 e6 [
- (princ))7 d/ N/ T9 M# ?% k2 ^# i
- . h9 {- _2 u' o& Y2 y$ z( V
- (defun c:ga13 ()
& \% \* Q7 m4 |2 X$ t - (setq a (getpoint "\nChon diem: "))
# [: e/ ^% f+ t0 D# l' ~5 @ - (setq b (getpoint a"\nChon diem: "))
8 @/ ]* @6 I. S o - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))% m/ H% O) t3 k9 l- v) W
- (command ".circle" c a)
# J; K6 F' F* k* f - (command ".line" a c "")9 S+ ?7 |( j3 P. k0 J6 t
- (command ".array" "last" "" "p" c "13" "" "")
7 g; g% ]3 ^" Y1 a( R( K% C - (princ))
- l, _/ [5 S% h# j3 N/ {2 b
% u# I( j9 m8 ]8 b, w6 w- (defun c:ga15 ()
$ r* L4 ]! u' C0 ? J+ } - (setq a (getpoint "\nChon diem: "))
! |& M6 q. F/ E8 O - (setq b (getpoint a"\nChon diem: "))
1 o- y7 c8 L# K% N4 d/ v+ ]. X - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
7 a, o4 o6 u {/ H) B. C& R9 j- R - (command ".circle" c a)
& J- D) z$ e5 \# y2 n& g0 O - (command ".line" a c "")8 t; q9 e L% y9 y
- (command ".array" "last" "" "p" c "15" "" "")4 L ^" [' c, ]$ b# b" I
- (princ))$ X* F5 ^: F- f: d6 `
- ; P* L2 r/ O5 e" N/ ?! p& ]; ^, u) H
- (defun c:ga17 ()
/ Z& {5 T; [% ]- R v# ^$ j2 @0 Q - (setq a (getpoint "\nChon diem: "))0 `) ^ j& c, p; D
- (setq b (getpoint a"\nChon diem: "))- c( k) \" m0 Y4 C: K0 p1 }
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
7 o( J* H3 G, j8 n - (command ".circle" c a)
4 U2 J$ n6 a9 O( G$ R - (command ".line" a c ""); \6 F: X2 k* {3 h+ F, H9 S7 E
- (command ".array" "last" "" "p" c "17" "" ""): h" `8 C7 a/ {6 @! X9 |
- (princ))
3 S) C9 x ~; F& l8 s - : Y9 h, G9 k ~$ s. c* G
- (defun c:ga19 ()
4 E# P G% i- U% U2 L! f - (setq a (getpoint "\nChon diem: "))* ?4 G+ d7 P7 [! [$ \; }
- (setq b (getpoint a"\nChon diem: "))4 T& f! ?7 n# B
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
2 a9 [) w8 p) I9 P) ]) b& B+ R - (command ".circle" c a)$ m$ d0 F, Z5 d H( l( ]3 d
- (command ".line" a c "")
8 j9 {8 e9 @# H0 J& Y - (command ".array" "last" "" "p" c "19" "" "")
) f* O7 _0 ^/ U* b+ m, y+ E2 V - (princ))& e- C* \$ }0 q! D& l
- & v0 K+ h+ ~0 V+ g1 o
- ;=====================================================================" Q. v/ N% H! M
- ;============== FUNCTIONS GA 2+4+6+8+10+12+14+16+18+20 ===============! x$ Q4 ^7 M; P; W
- ;=====================================================================
5 ~2 z. |6 i8 v - (defun c:ga2 ()
6 a/ v. L E' B0 l - (setq a (getpoint "\nChon diem: ")); Y! I% J% K2 F9 q Q: [
- (setq b (getpoint a"\nChon diem: "))1 C& t4 M, _# N1 R
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
( d+ `; p' B7 I& k, X7 }8 w, N5 D - (command ".line" a c "")1 g) E7 w" I9 F3 i
- (command ".array" "last" "" "p" c "2" "" "")+ y" b6 |/ }4 M6 j1 p9 ?/ B- V+ A
- (command ".circle" c a)) g8 _# P# g" R
- (princ))5 r* p5 m/ c7 j5 s" j
- ' a0 n) s. O @) i
- (defun c:ga4 ()
6 l8 A, r- }/ Q& o - (setq a (getpoint "\nChon diem: "))
% D$ Z4 O t/ R' c) B; n i - (setq b (getpoint a"\nChon diem: "))! @7 }0 b9 [: Y/ R5 z
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))( C8 M+ I: j" G1 ]3 h; ^) I3 u
- (command ".line" a c "")1 _/ x4 W5 C m, f5 j$ q
- (command ".array" "last" "" "p" c "4" "" "")
* D$ R% B' u% n - (command ".circle" c a) f; S7 u9 L: A7 s$ y/ h( L6 a
- (princ))
5 X8 p" r( k) J) [
/ k! k. |' l3 ]7 W- (defun c:ga6 ()
' T4 N4 W: Y9 Z) ? - (setq a (getpoint "\nChon diem: ")), i& L+ l# g. R* W: t9 d6 w
- (setq b (getpoint a"\nChon diem: "))! ?4 e5 i M. o# D7 `
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
6 N" ^6 \: m. A - (command ".line" a c "")
) F/ O+ q2 S1 T6 j/ X6 p& Z - (command ".array" "last" "" "p" c "6" "" "")
/ ?. P9 S& H, L3 s - (command ".circle" c a)7 U, G- i1 _5 c7 l2 N7 {
- (princ))5 r( @( Z4 i* s( W( A! H5 b
" |- T' v4 {: D9 x- (defun c:ga8 ()$ S& b* n, ~- F! N/ w0 q
- (setq a (getpoint "\nChon diem: "))- V' f8 A7 Q: j7 k: R" J9 x
- (setq b (getpoint a"\nChon diem: "))5 ^8 V+ X* k; Q r5 p. Q: Y
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
# g# D+ {! B. `3 n2 k. r - (command ".line" a c "")
. f8 \ b/ n7 x1 r h [# W - (command ".array" "last" "" "p" c "8" "" ""): M6 ~8 m4 Z1 Y* K* E; d, [
- (command ".circle" c a)! c8 b& F& A3 q% x4 m/ W2 a
- (princ))
* T3 k1 i& w9 i/ L- _ - - k' r1 d- X6 e% D: L1 S( Y
- (defun c:ga10 ()
8 Q5 Z F$ W+ ]6 Y - (setq a (getpoint "\nChon diem: "))6 ~) x# b7 {! n; j
- (setq b (getpoint a"\nChon diem: "))
& U* l: w2 w$ {# m+ d, N+ C6 C - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))+ z& q8 }$ L( B% d
- (command ".line" a c "")
1 v+ e( N: N5 S3 [6 ^3 v" r- C - (command ".array" "last" "" "p" c "10" "" "")0 F. z$ b! M) l' M
- (command ".circle" c a)
, K: \9 |# a0 @% ?. e - (princ))
! y) z. ?' t+ q5 ]) D3 D5 e - v; ^/ j/ h1 F- }$ B
- (defun c:ga12 ()
# [1 b, v+ y$ g ` - (setq a (getpoint "\nChon diem: "))
5 p" e( [/ ^" @1 O7 J* E2 @9 e - (setq b (getpoint a"\nChon diem: "))
% j' w0 b) f2 |1 m* O7 q6 y' R' D - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
2 J A( R, Q8 s* T( V- H# m - (command ".line" a c "")
) y" p+ m" G K t6 L - (command ".array" "last" "" "p" c "12" "" "")9 Z$ l Z( e' |. y1 k' ~% ~, J
- (command ".circle" c a)
+ d& C: c: j+ _5 H2 }) u - (princ)). N# e. s! o% e. ~$ g
3 s" p F+ a$ P4 R# K- (defun c:ga14 ()) J0 M1 s$ \* ?
- (setq a (getpoint "\nChon diem: "))
+ \. a! ?7 F7 w0 C L/ X i - (setq b (getpoint a"\nChon diem: "))7 e0 Y6 B: V) Z/ N/ z9 M
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
8 Y2 C y4 G- M$ V - (command ".line" a c "")
2 p" H2 _% \( k: t# b - (command ".array" "last" "" "p" c "14" "" ""). n# K5 g: F( ^
- (command ".circle" c a)
1 f, s" c# I7 z. U$ O8 k2 ` - (princ))
; ^/ X. ?" U+ [2 a u( R
/ \5 U6 ?, E9 q$ x7 e; f- (defun c:ga16 ()
3 ^: T& E/ \. ?9 y% X" j6 V - (setq a (getpoint "\nChon diem: "))
2 V; b3 e+ o' \* u( M) [ - (setq b (getpoint a"\nChon diem: "))
2 _0 ]4 a. {5 O6 X% | - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))! U. g9 [8 m& J
- (command ".line" a c "")/ v+ ^! k% I3 M! K L! Y# u( R
- (command ".array" "last" "" "p" c "16" "" "")$ S, p S; X% Y# S2 _6 w9 i
- (command ".circle" c a)
2 \& I1 U, z0 v6 Y& a1 _5 o; [( G) n - (princ))" L# c* r8 y+ p
- 7 t) N2 c% E3 M; P. N
- (defun c:ga18 ()
: S: o: N7 B0 l2 B( h7 p - (setq a (getpoint "\nChon diem: "))1 l7 b. K5 d) _/ t j) i
- (setq b (getpoint a"\nChon diem: "))
% v7 h- D* y+ b - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))% D: u5 D! D, r9 E
- (command ".line" a c "")2 h$ }* k6 H, A! N
- (command ".array" "last" "" "p" c "18" "" "")
3 z$ Y/ k( f, @2 V! K; H - (command ".circle" c a)
# i9 x$ v: I4 w: Y! P - (princ))
& o0 F+ y% E* I. N2 ]
% R$ C: u% M: h4 [% B- (defun c:ga20 ()
/ ]4 E! R1 h* k1 U; i) ` - (setq a (getpoint "\nChon diem: ")): D: `- K% c7 z, j5 [5 y% s
- (setq b (getpoint a"\nChon diem: "))( G% n: i$ m' u. P3 T
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))- P$ o8 G, f5 z$ o# `
- (command ".line" a c ""); C/ H- w( F* F% W3 s- b
- (command ".array" "last" "" "p" c "20" "" "")
8 R1 X% U: b: ] - (command ".circle" c a)0 m% x4 M; o: g' l, I
- (princ))0 T$ G% P6 e5 Z# N' S; }# Q
- 4 \5 M, b! P9 Z
- ;=====================================================================
& }! S5 e4 Z, V% N0 C- v - ;============== FUNCTIONS GA TUY THICH : EVERYTHING IF ===============
7 s* V4 K! B( d; f" W - ;========================== 06-11-2016 ~ 18h00 =======================
/ `9 s* r( o& v - ;=====================================================================* `1 q, V6 t5 X% v; e% E" h( F
- (defun c:ga ()5 W$ ?6 V% q- r* x6 W* J4 ^
- (setq a (getpoint "\nChon diem: "))% H, B! V* N% U9 I0 u3 c
- (setq b (getpoint a"\nChon diem: "))
6 e& M) G% F! F, @: I - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
/ ~7 q1 X7 H: b L" ]7 T K - (command ".circle" c a)$ m& c0 w' v2 Z" |: o& ^" X
- (command ".line" a c ""), k" d" O( }+ a
- (command ".array" "last" "" "p" c "NUM" "" "")5 |: _( E7 g& p& O
- (princ))2 M( L: g% ]9 M8 b) |3 \2 G
- % q! v, q( o8 x# ^$ H
- ;=====================================================================
' S H9 z" E$ F% K - ;=========== FUNCTIONS HOA THI TUY THICH : EVERYTHING IF =============* n5 {& F2 a3 ]/ k" a
- ;========================== 06-11-2016 ~ 18h40 =======================
J- L# }2 S6 m, A) m& K - ;=====================================================================( d7 q4 j: _ ~! D$ `* G# h6 a( R
- _* a% M- D4 |/ I" t. m- (defun c:hoathi ()+ z1 d. J4 F7 I% F2 y
- (setq a (getpoint "\nChon diem: "))4 W! A0 ^+ ?2 B2 a) E) I) ]% g" A
- (setq b (getpoint a"\nChon diem: "))( D( E% ?) P5 D2 R5 d7 E
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))/ b! m* j- {5 M3 p: Q3 b
- (command ".line" a c "")
8 \2 Z9 I) }4 g- I% v* C - (command ".array" "last" "" "p" c "NUM" "" "")% ]# ~+ T2 w$ G. @8 h0 F5 U K% `" p
- (princ))
0 ?; W' o0 @2 s. F" X+ z, m& z- M
' w/ e! x; n+ b7 G5 z T8 b3 n- ;=====================================================================$ ^0 E1 O5 C: X6 M
- ;============= FUNCTIONS CUNG TUY THICH : EVERYTHING IF ==============
3 w0 ]! W1 Y% o& k - ;========================== 03-11-2024 ~ 19h33 =======================
: y: q/ G5 x$ e) Y - ;=====================================================================
4 H$ s9 O" T' Y% h6 M6 a/ D
: Y6 b- ~* d0 b1 p- (defun c:cung ()
; c. N( _- E' j - (setq a (getpoint "\nChon diem: "))' y6 ^7 u* y& x) W; Y+ a
- (setq b (getpoint a"\nChon diem: "))
% d' I( q3 q+ \ - (setq c (getpoint a"\nChon diem: "))- B- V5 O z! \2 }
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
2 S3 N6 b- E5 r3 r I5 w7 A; e# q3 R1 O - (command ".arc" a b c "")+ R& W: j4 y M! ?
- (command ".array" "last" "" "p" c "NUM" "" "")
4 @- X* I: q6 F* R) Q" O/ o7 |7 ~ - (princ))
2 c1 m3 |+ N# S7 ~/ Z
* b3 ~% N5 \3 t6 _) K6 f' Z" @8 ]- ;=====================================================================/ X% ], ]1 y: ]7 ?* [6 q) \+ H# D, Y
- ;============ FUNCTIONS HECLOIC TUY THICH : EVERYTHING IF ============
. j+ H1 T9 w# a9 m/ Z" Z+ r - ;========================== 03-11-2024 ~ 20h02 =======================5 m. }; b3 Z: w: k, z. e6 D
- ;=====================================================================
# L2 Z" Y( N8 ~9 n: e+ k( P - g/ A. J, K% q( B) _9 z- s
- (defun c:hecloic ()
% x& R- T& O0 t0 @: e - (setq a (getpoint "\nChon diem: "))4 R+ Q e' g& v# H
- (setq b (getpoint a"\nChon diem: multi "))
' V5 R: ?/ h* U7 ~6 l& } - (setq c (getpoint a"\nChon diem: "))(princ)
" x7 Z; q3 Q" {# W/ _8 L% G- x6 m/ f - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))& Q- O$ @, D. L) N5 }/ n2 J4 \
- (command ".arc" a b c "")
& {1 B' `/ b* H, N+ \. i - (command ".array" "last" "" "p" c "NUM" "" "")
3 I1 O( q1 ?) ^7 i& w8 T) w' ^: d - (princ))! d' [6 g3 R8 E- O* d
- 1 b! h6 S. i) J
- ;=====================================================================1 t, }5 k: c. l P* q
- ;============== FUNCTIONS GAY TUY THICH : EVERYTHING IF ==============
- {! w) b% A* g5 o& w/ l - ;========================== 03-11-2024 ~ 19h38 =======================
! h# x/ n, c0 X' V, ] - ;=====================================================================
; k3 i) F. ^0 x) p4 E# ~# z$ n - & R; y7 O$ f+ r' e
- (defun c:gay () l4 O4 T6 J8 p/ d% `
- (setq a (getpoint "\nChon diem: "))" b& H8 w! D& {: o3 d* G, m
- (setq b (getpoint a"\nChon diem: "))
& p& q) M7 i$ t - (setq c (getpoint a"\nChon diem: "))(princ)
$ |) j0 p( ~+ V3 ^5 o - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
: u3 I( u3 o: R) j/ q' ]# k9 v/ c/ [ - (command ".pline" a b c "")6 z, [7 \' X, M( f! |6 t4 n: q
- (command ".array" "last" "" "p" c "NUM" "" "")# L; z0 D' Q+ f9 d2 E A( @; ~
- (princ))% i O o5 }; b3 U
" n: T4 \1 j. J4 |7 `7 C1 x- ;=====================================================================% E) d; j, S9 e# R# |
- ;============ FUNCTIONS HECLOIT TUY THICH : EVERYTHING IF ============/ O7 ~7 C) g: W8 {
- ;========================== 03-11-2024 ~ 20h02 =======================. d0 h' Q9 [) J8 v+ c& I# @3 k
- ;=====================================================================3 [; ` k% R% h( y: H- D4 X: `
2 o/ _/ m! ^3 X1 a: H- (defun c:hecloit ()
' E, s {" L( h ^3 F$ M! Q - (setq a (getpoint "\nChon diem: "))
+ J. n. R1 g' d - (setq b (getpoint a"\nChon diem: multi "))
3 C3 D# a2 C8 s. \ - (setq c (getpoint a"\nChon diem: "))(princ)
, h) [4 K/ p( j) I% N - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))5 [! w0 p2 V' e# f8 d! z
- (command ".pline" a b c "")
6 \* K* V* t, A+ T7 R - (command ".array" "last" "" "p" c "NUM" "" ""), g- L2 M0 r; {/ n& d. _( I. h
- (princ))
: B+ j! N6 P$ L; ? - ) b. ~2 R' m% N8 Z8 G f
5 q" ^, X& l a5 F- ;;; ============================ Merge Hatch =============================
1 n1 k& Q; k& G. I9 U- M; K
O8 B/ A6 \9 u: x8 k1 A+ I- P- (defun c:mh (/ ss entht sl i dt dtht)
+ D$ ~& x. n4 o! }! e; ^4 r - P7 W- B( s3 o( Z) B6 V# o
- (princ "\nMerge Hatch - free lisp from CADViet.com")6 N7 Z$ t6 W% m! \' M y
9 E- |) T4 [3 \" H) I: X7 N E5 g- (setq
( M1 ]$ G: T! {, E# {/ t - ss (ssget '((0 . "HATCH")))6 o" q: {: v2 }/ r9 U
- sl (if ss
c' |+ U: e! R( @1 d- f: s. a - (sslength ss). s! D k; \/ @, g
- 0
O! `5 E/ R, Z. m0 k, V$ c! N - )
0 s. H/ z4 N- N/ v& D) q - i 0
) H, C" l4 O s8 h5 @ - l 0' r9 {* _( R. G) j. c: W
- )
9 m# v9 B" [( \6 `1 p2 Q/ a
7 u1 N) j7 \+ m+ s0 n- (repeat sl
) m0 f* B' J C2 X0 d( A- ?, I - (setq
% |) P# u+ V0 M0 F" U# c1 F - entht (ssname ss i)* d( G \/ z) j, \: Z
- dtht (getbdata entht)
" t$ s+ H6 {! s6 r% ]1 ] J4 X - dt (append dt dtht)# z1 U' |8 R& l6 Z Q
- l (+ l (cdr (assoc 91 (entget entht))))
2 o7 U) {# y, A, @3 j3 z: f - i (1+ i); }# P! `* X8 E5 p$ @" H
- )4 u; ?& n1 R$ v0 S0 m/ L. i
- )
) f- p2 e6 O* O1 p8 Y# `
9 Y: a6 m) p; n+ k! _2 q- (setq ent (ssname ss 0)
- y+ {3 a2 j' I7 a - ss (ssdel ent ss)
9 q9 D) I6 B$ D# T/ c - tt (entget ent)
6 @* f# \# D" x- A& O* C - duoi (member (assoc 75 tt) tt), C* P- w0 g9 v4 _
- dau (reverse (member (assoc 91 tt) (reverse tt)))4 Q, C6 b2 t% o# A1 U2 J a
- tt (append dau dt duoi)* D5 V: ~- J/ ], s6 P
- tt (subst (cons 91 l) (assoc 91 tt) tt)$ p' b/ j% z/ s( [
- )
l! z1 Y" X4 K0 e - (entmod tt)
9 `/ l& y/ `5 z1 ~# a+ V - & k/ h, C. U% R3 K" g
- (command ".erase" ss ""); M' l1 I% X! S. L& }0 W
- (princ)
E, @% a1 T8 O' | - )
( ^7 P! y( _ S" y - 1 F: {3 f. F7 J! e# E' U
- (defun getbdata (ent)7 x( @, l F) M7 C( ]( A7 F3 w
- (setq tt (entget ent)! H1 ?* I$ h( `$ N7 A
- tt (cdr (member (assoc 75 tt) (reverse tt))). R [* T& o1 B' H o8 f
- tt (cdr (member (assoc 91 tt) (reverse tt))) U3 v @6 N6 K( H( _ \
- )
/ o- T7 d2 U1 _ I. @# Z# I - ) ^9 x, y/ [. Y: M
- $ W2 |3 g- a- p+ @, B" e- j# H0 [
- / p, x. S; @) c
- (princ) E Q* _1 c" h
. [9 V2 B3 y: o: _" v |3 ]/ `' M: ~- ;;; =========================== CAC LENH LAYER ==============================
% g3 o; n* t: D' s4 x' q - ;;; =========================== Layer hien hanh =============================
- C. i5 x# [' c$ `: O% a
1 C$ @5 _' B6 u- (defun layset (/ LAY) (setvar "cmdecho" 0): d! {- P- ]& o- [
- (setq LAY (entsel "\nPick vao doi tuong muon Layer hien hanh la Layer cua doi tuong do : ")) G, c+ r0 g: N- O' t5 D3 |
- (if LAY (progn / \- }) X" N% B# R
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))
- H4 H( k- c9 ~' k1 u6 W - (command "_.layer" "set" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) )
, {6 Z: |; S7 [8 A - (progn* M2 q. u1 _! y7 d! r0 R
- (if (not ddlop) (load "ddlop")) (if (setq LAY (ddlop))
! u( z$ W' q7 t! \$ P - (progn# ^4 X! t+ ] |
- (command "_.LAYER" "ON" LAY "THAW" LAY "SET" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ) ) ) )(princ) )9 {. G8 M; O$ G# V6 u
- (defun c:LLL () (layset))(defun c:LAYSET () (layset))% _$ v1 G; O5 u
& I1 Q+ T; B) I0 g5 ]8 S- ;;; ================== Cap nhat doi tuong vao layer hien hanh ==================" h& j, W3 s4 o0 H& m5 j& k
3 G9 a) Z( x( |3 R" A! `- (Defun LAYCUR (/ SS CNT LAY) (setvar "cmdecho" 0)
7 A5 f( X2 _/ f2 g* { - (if (not (setq SS (ssget "i")))
' X- r3 y& A, S/ R/ s/ s - (progn (prompt "\nChon doi tuong cap nhat vao layer hien hanh: ")6 e; |0 q/ E. q5 b f1 ]/ P
- (setq SS (ssget)) ) )4 d* U+ D |* H) I
- (if SS (progn
7 p' G5 j/ l+ L" [* E! j9 c - (setq CNT (sslength SS)) (princ (strcat "\n" (itoa CNT) " doi tuong tim thay.")) (command "_.move" SS "") ; r/ w4 B7 E; u! P4 y
- (if (> (getvar "cmdactive") 0)
: C& x! T& a N& H! L3 B6 G - (progn# B2 H2 e8 Z3 \1 P
- (command "0,0" "0,0") (setq SS (ssget "p") CNT (- CNT (sslength SS)) ) )& j+ o8 s! Q& m& @$ R/ d: a
- (setq SS nil) ) (if (> CNT 0)
5 K5 b. u+ \; f. ^9 S - (princ (strcat "\n" (itoa CNT) " doi tuong tren layer LOCK.")) ) ) )
, {- M/ m: d% ?+ |' Q$ [ - (if SS (progn+ [8 c, [$ B/ b$ f+ q0 T
- (setq LAY (getvar "CLAYER")) (command "_.chprop" SS "" "_la" LAY "")
! A' \0 T j k( L2 n3 L - (if (= (sslength SS) 1)
& Y0 Y+ R; A' | U. Y/ Z1 k4 }& q - (prompt (strcat "\n1 doi tuong da cap nhat vao layer : " LAY " (layer hien hanh)."))# C* D4 ?! M( k- i. g1 G P1 q8 X+ ~
- (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")) ) )) (princ) );end
6 M8 ]+ I2 W4 N* R. b# ] - (defun c:LAYCUR () (laycur)) (defun c:LHH () (laycur))
" `+ x" C4 Q, t* g% Y, X- ]* m - - e0 U" {. \6 s
- ;;; =========================== Layer Iso ===================================, {1 B V% z& I- n! Q& B* o
( O. b0 c- \5 \+ o" o! W/ [0 J- (Defun LAYISO (/ SS CNT LAY LAYLST VAL) (setvar "cmdecho" 0)
$ L* \; t/ z0 K& @3 i, u - (if (not (setq SS (ssget "i"))) (progn
7 M7 w1 L3 \+ }9 |0 S$ c( E - (prompt "\nChon doi tuong tren layer(s) muon lam viec doc lap: ")7 J* s0 _+ h# l( ?
- (setq SS (ssget)) ) )
+ V- \: H7 o9 r8 x3 z0 W - (if SS (progn (setq CNT 0)# g |0 U/ u1 g$ s0 U5 j. H6 }' H
- (while (setq LAY (ssname SS CNT))
% Y" Z4 ?5 N/ k - (setq LAY (cdr (assoc 8 (entget LAY))))9 S H3 x1 B2 ]# P, m
- (if (not (member LAY LAYLST))
" j" G4 A2 W9 _+ G1 R2 d - (setq LAYLST (cons LAY LAYLST)) )9 z! z& Q% e, o; R$ R
- (setq CNT (1+ CNT)) )0 F& {4 `5 x" d/ g e' l
- (if (member (getvar "CLAYER") LAYLST)
+ C9 J: g+ U/ O& [# p( f. t# I - (setq LAY (getvar "CLAYER"))
6 R1 G1 L8 W9 W! r7 e9 L# ~ H - (setvar "CLAYER" (setq LAY (last LAYLST))) )
& [2 m0 j1 N7 b0 r - (command "_.LAYER" "_OFF" "*" "_Y")
/ A1 Z! v3 w; v: k3 Y0 F - (foreach VAL LAYLST (command "_ON" VAL))
$ x( R/ V. H. Y. h4 Z - (command "") (if (= (length LAYLST) 1)
/ a- G: [' Y2 w& \* k9 X% y0 X* y - (prompt (strcat "\nLayer " (car LAYLST) " da tach ra."))
( c; j8 p# S% x - (prompt (strcat "\n" (itoa (length LAYLST)) " layers da tach ra. "
) R9 I: d' Z& d - "Layer " LAY " la hien hanh." ) ) ) ) ) (princ) )1 @$ A9 z z" Q' a$ c: ]1 r$ y
- (defun c:LAYISO () (layiso)) (defun c:LI () (layiso))
: x; k. |) C2 k7 T5 Y! ^) ]) o - ' }2 U) U3 \9 _0 h
- ;;; ========================= Layer Match ==================================# o& A8 o; B- Z- ~3 D3 Q# L
& v+ u. I+ K* J7 U- (Defun LAYMCH (/ SS CNT LOOP LAY ANS)
' a2 L, `9 \2 W4 y9 [ - (setvar "cmdecho" 0)
! ?! N# U- \# F2 r+ t - (if (not (setq SS (ssget "i"))) (progn
+ T, a5 c6 [$ Q! i1 u7 H0 q$ l - (prompt "\nChon doi tuong muon thay doi Layer : ")" A& Z0 d4 |; L- q v( p
- (setq SS (ssget)) ) )9 C; q* S1 n( X/ M& s7 a9 R3 ]
- (if SS (progn. t7 [7 x$ G$ X2 i
- (setq CNT (sslength SS))
: H% q' G8 A% I$ P2 A$ Y - (princ (strcat "\n" (itoa CNT) " found.")) (command "_.move" SS "") 1 D, ~8 z; E' H
- (if (> (getvar "cmdactive") 0) (progn
6 Z) a+ a: X& t1 x - (command "0,0" "0,0") (setq SS (ssget "p")0 Y$ p; T/ F6 D, n4 ^0 X) T
- CNT (- CNT (sslength SS)) ) )
6 i: ]- C# v4 M) f- V& I% w3 o - (setq SS nil) ) (if (> CNT 0)
. L/ @8 {: @/ o7 i - (princ (strcat "\n" (itoa CNT) " tren layer LOCK.")) ) ) )
% x6 q0 e0 }: C" F0 R+ g" D6 g - (if SS (progn. W! V' U/ Q6 V2 M
- (initget "Ten") (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ") LOOP T )+ p w4 {& a( @0 ?4 o' S) r' G
- (while LOOP (cond2 C2 \& K! V |- p6 d
- ((not LAY)- _& a$ j/ k, R
- (prompt "\nKhong chon doi tuong.")
+ W$ v4 Q6 R( \% D - (prompt "\nSu dung layer hien hanh? <Y> ")
' s/ A* K5 J% M1 m4 u: F - (setq ANS (strcase (getstring)))
8 s' G1 W# e$ A - (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))5 V- ?; C/ v* f2 D0 P
- (setq LAY (getvar "clayer") LOOP nil ) ) )6 s% B) |# u: F- L
- ((listp LAY) (setq LOOP nil) )( Y ?0 J4 u n/ g
- ((= LAY "Ten")
7 ^& }8 y. R% y4 x$ _ - (setq LAY (getstring "\n>Nhap ten layer: "))& `+ W4 I+ d7 I8 H5 V+ b8 K
- (cond& W u9 ~8 f; _! z" c& j& Z
- ((tblsearch "LAYER" LAY) (setq LOOP nil) )3 u/ J6 e5 j1 k6 V9 j `: B5 t: G
- ((/= LAY "")
. s4 m3 q2 i* K5 V" u5 n7 G - (prompt "\nLayer chua co trong ban ve. Tao layer moi? <Y>: ")" T6 I% L* w) |* B3 l0 |7 r6 P0 S9 k
- (setq ANS (strcase (getstring))); ?3 b+ a) C7 I! k) X0 r! U
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
4 M7 C" H- d* y) V! }$ X - (progn0 {5 H4 J1 j* ]5 t
- (command "_.LAYER" "NEW" LAY "")+ u3 ?6 C( R& Y
- (setq LOOP nil) )4 u6 S6 l: j0 G8 W0 x2 R# b0 s
- (prompt "\nLoi ten layer.") ) ) ) ) )& Q8 r& g' }, }& b, y$ e
- (if LOOP (progn (initget "Ten")' q6 m) S/ A1 S: ]/ ~3 R# p2 G/ F1 \
- (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ")) ) ) ); while LOOP; ^' j& y+ v5 C$ k1 ^1 v0 V
- (if (listp LAY)
4 N9 s! \, S5 p5 I: p - (setq LAY (cdr (assoc 8 (entget (car LAY))))) )
9 u: ~4 }- i! U5 m, v2 d6 M - (command "_.chprop" SS "" "_la" LAY "")
; L( W! Y7 A! Q8 {9 Q9 f - (if SS (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong thay doi toi layer " LAY )) )
) h4 `6 `' D# s5 y- _ - (if (= LAY (getvar "clayer"))
$ A# f- ^) }0 s: Q - (prompt " (layer hien hanh).") (prompt ".") ) ) ) (princ) )1 b4 T' B4 o- N6 a" A6 M
- (defun c:LAYMCH () (laymch)) (defun c:CLL () (laymch))
9 e- B. J2 {) V/ L' y# z3 l# j
( G' W. d3 |" G% i- ;;; ============================ Layer OFF =================================
8 j+ ^4 ^3 V0 ?3 X' `4 i
1 _8 C( U) }' S0 I! ~* Z- (DEFUN C:LJ (/ SSET SSL ENT LAY I MODE)
6 h5 b8 p% C2 ]8 Y( I2 J - (SETQ SSET (SSGET))1 \5 }0 A- N2 w6 _1 W- }% K# X
- (IF (/= NIL SSET) 3 R1 e0 Y( o- d6 h+ c& K
- (PROGN: h9 |9 w. T" E! v# S8 V
- (SETQ SSL (SSLENGTH SSET))
m+ Q2 r& \& b. {( z* T - (SETQ LAY "")
( Y- M: y$ l2 \3 o1 }* x4 S - (SETQ I 0)
1 I, Z& R0 t2 h - (SETQ MODE 0) 1 v. [$ i3 Y# e0 n
- (WHILE (< I SSL)
4 }6 M5 B( ^ F7 W - (SETQ ENT (ENTGET (SSNAME SSET I)))+ W. U& x% t d1 {
- (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )+ j, Z7 c2 v1 u3 m* \
- (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) ))
4 X4 j; b, g0 ~- U! }0 H( ~# U1 m - (SETQ I (+ I 1))
; G3 @7 g$ N4 l. o - )# L3 Z$ P L/ G, s9 e. q
- (COMMAND "LAYER" "OFF" LAY "")
% [0 x s% u2 y' \ - (IF (= MODE 1) (COMMAND "") ); N) A% x0 W* U3 A. f4 ~
- )
# D, a# B$ X! ^6 O% p - )
# G+ a! @' T" c0 M9 f4 \+ i+ A - (PRINC)
: h% }8 A3 u; a' Z+ f! \' z - )
: |) B. p8 u# r( i' G
" ]7 V# |9 ^! c& L3 _7 o1 |4 T- ;;; ================================ Layer ON ==============================9 B, Z* Y: N7 E1 b' K; f9 ]
- , ?. d& M% d* @6 U, O c5 E' y+ ~ s4 q
- (Defun LAYON () (setvar "cmdecho" 0)
" X; P, o3 h) O$ ^$ m- h. {/ x5 i4 { - (setq Lay loff1) (setq Loff1 Loff2) (setq Loff2 Loff3) (setq Loff3 Loff4) (setq Loff4 Loff5) (setq Loff5 Loff6) (setq Loff6 "0")! H6 L5 C8 L3 U+ T
- (Command "LAYER" "ON" Lay "") (princ (strcat "\n Layer : " LAY " da ON.")) (princ))
, D1 G% d e( Q9 x - (defun c:LAYON () (layon)) (defun c:LOO () (layon)), t0 b+ @7 t3 W
- (Defun C:LO () (setvar "cmdecho" 0) (Command "_.LAYER" "_ON" "*" "") (princ "\nDa ON toan bo cac Layer !") (princ))
9 s7 y/ q& i/ O& g5 K1 \/ i( @8 N - w& L* ^' v1 w# e
- ;;; ============================== Layer Freeze ===========================5 c' q4 i8 T. L( ? c% \( _
% G$ W5 m- ^: e( W! g- (Defun LAYFRZ (/ LAY TEMP)(setvar "cmdecho" 0) ! k1 j: d! J& X# Q2 {( P+ F
- (prompt "\nChon doi tuong tren layer(s) muon FREEZE: ") (SETQ SSET (SSGET))
4 s- }; D2 M$ X, b9 F+ [* z - (IF (/= NIL SSET) (PROGN8 n/ e- E3 Y" |. x% d' O: _; u
- (SETQ SSL (SSLENGTH SSET)) (SETQ LAY "") (SETQ I 0) (SETQ MODE 0) + t6 @0 z8 ~5 R7 M3 ?6 @: m
- (WHILE (< I SSL)9 H, n( i1 z, D0 x5 b. u. }
- (SETQ ENT (ENTGET (SSNAME SSET I)))$ O( V2 \6 V( Y/ v
- (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
0 q& |) s- c* n4 R* f- h. o8 ] - (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )) (SETQ I (+ I 1)))0 R. r1 R# J3 G* B: t' e
- (COMMAND "LAYER" "FREEZE" LAY "")
`0 w3 m% B* n& V& p! A0 h - (IF (= MODE 1) (COMMAND ""))))) `5 v9 i7 Y1 Y0 ]
- (setq Lff6 Lff5) (setq Lff5 Lff4) (setq Lff4 Lff3) (setq Lff3 Lff2) (setq Lff2 Lff1) (setq Lff1 LAY)( e- g+ d+ X- X5 w
- (princ (strcat "\n Layer " LAY " da FREEZE."))(setvar "cmdecho" 1) (princ) )
- r/ U& u1 D. k) J - (defun c:LAYFRZ () (layfrz)) (defun c:LF () (layfrz))5 r$ I' |6 U$ _( ~ s
- 7 [ u- A8 o) i& a
- ;;; ============================== Layer Thaw ===============================
f% x1 L% |1 e" ~
/ y( l) @9 c7 `1 p7 `* Q- (Defun LAYTHW ()
- s' v0 X( a7 ]+ I - (setvar "cmdecho" 0)+ d. t# Y( w9 y3 h* O
- (setq Lay lff1) (setq Lff1 Lff2) (setq Lff2 Lff3) (setq Lff3 Lff4) (setq Lff4 Lff5) (setq Lff5 Lff6) (setq Lff6 "0")
, ~0 k1 v( d5 C3 k - (Command "_.LAYER" "_THAW" LAY "")
. M2 y; e& i, E2 _* X0 s! X - (princ (strcat "\n Layer : " LAY " da THAW."))
0 w: {3 w& }. e - (princ) )
1 A# U* b5 G- f9 R# }' s - (defun c:LAYTHW () (laythw)) (defun c:LW () (laythw))+ X# A" b- P3 H0 F0 F- m3 c! Q# ]
p* k6 y$ S5 K; N; q5 u; }- ;;; ============================== Layer Lock ==============================
. k" e8 X- a9 x; B - 2 _, ~* K: H/ G; Y! n$ T
- (Defun LAYLCK (/ LAY)
L p8 A+ Z$ ~9 y1 N7 Z - (setvar "cmdecho" 0)
7 Y' v0 C$ b* ]2 q% K' e# N" M - (setq LAY (entsel "\n>Pick doi tuong tren layer muon LOCK: "))
& j. _0 I- \% F* E. T& s - (if LAY: F _. M" X8 K
- (progn
7 c" O+ L- X( B% z/ w, \) Y - (setq LAY (cdr (assoc 8 (entget (car LAY)))))
0 i* a7 r Z: e/ j1 V - (Command "_.LAYER" "_LOCK" LAY "")2 a% ?! B5 q7 z- M6 N; J: K1 D
- (princ (strcat "\nLayer " LAY " da LOCK.")) ) ) (princ) )
4 o! x, l9 M" s - (defun c:LAYLCK () (laylck)) (defun c:LK () (laylck))2 r+ D# A: X: {0 c0 z. H4 f2 x
- 0 h$ E% M3 w; B$ L0 Q
- ;;; ============================== Layer UnLock ==============================
6 m; R. g. g3 p( J - " A0 v8 |; ?) Y% O) l" r+ R
- (Defun LAYULK (/ LAY)
9 v$ O( ^6 `6 {; i - (setvar "cmdecho" 0)
7 M1 L$ r1 O4 f7 R0 g& T - (setq LAY (entsel "\n>Pick doi tuong tren layer muon UNLOCK: "))- Y% E4 M0 N8 p& ?6 c0 I
- (if LAY j) i# R, {, V- G
- (progn
1 J; V+ t, B0 R0 o+ N) w; R6 A$ ~' ?8 | - (setq LAY (cdr (assoc 8 (entget (car LAY)))))
8 N0 L/ j |2 G* E: G8 b; H ~ - (Command "_.LAYER" "_UNLOCK" LAY "")
( ^3 Y# L& \# m8 g1 | - (princ (strcat "\nLayer " LAY " da UNLOCK.")) ) ) (princ) )
1 A" ?$ X1 B0 B g4 ^4 L& T' b - (defun c:LAYULK () (layulk)) (defun c:LU () (layulk))0 g# q/ p# a3 {, H6 {# ^+ U
- ; v0 G( Q' N3 ]( A2 L7 ]. M4 n; U9 P
- ;;;===================== Delete all objects of Layer ========================
& p6 @" W4 ^: g# |
# _% u# g+ K+ i5 `- (defun DELAYER (/ ocmd L S)
9 } q7 ^2 ]& ^8 R# M+ `- I - (setq ocmd (getvar "CMDECHO"))6 O$ N5 H$ J( H2 z- `# j
- (setvar "CMDECHO" 0)
7 b+ P" b! g! `: V3 `* @- s8 } - (setq L (strcase (getstring "\nLayer(s) to delete: ")))
: Z" f5 v' x* l/ P; z - (setq S (ssget "X" (list (cons 8 L)))) ; k7 D+ c4 I; ~$ ?
- (if S
& L x: M. a( z6 j - (command "ERASE" S "")
3 D. |8 Q+ n5 N( k$ a& T4 O - (princ "Layer empty or not a valid layer name.") )
8 U4 j; Q/ N0 k0 d' W7 W+ h - (setq S nil)
3 ?7 o" ~ w$ F; f - (setvar "CMDECHO" ocmd)
# s* F. Y0 K; T" X& u# E# C - (princ) ) 5 Q% v X+ x# l& {
- (defun c:DELAYER () (delayer)) (defun c:DELLAYER () (delayer)) (defun c:DEL () (delayer))& Q9 K$ O% v z: s1 W+ M
- % ?- h& \# V( h5 Q7 i3 D
- ;;; ========================= HET CAC LENH LAYER ===========================
! F2 [' u) ~+ l m( s9 J - , l. r' y6 D7 u1 m+ c0 J
- ;;;====================== EXTEND NHIEU DOI TUONG ===========================+ h/ |6 {& A0 a9 W$ m$ o4 G
3 U! U: w) j4 A3 L- (Defun C:EET ()
5 z5 P: `6 T% ? - (Setq CVAR (Getvar "CMDECHO")) (Setvar "CMDECHO" 0)
) W- r$ t y2 i7 R - (Prompt "Chon doi tuong dich cua EXTEND :") (Setq CUTEDG (Ssget))0 T O" | Z5 m6 `: x% \/ d8 f$ Y
- (Prompt "Chon doi tuong de Extend :") (Setq SS (SSget)) (Setq LEN (SSlength SS))
. ~* m; z w, i+ h- M+ d8 q% s - (Setq I -1)
" A) E0 T d( E7 \6 v6 Y+ [) c2 Y - (Setq SIDE (getpoint"Chon phia de EXTEND")) (Command "EXTEND" CUTEDG "")
" n2 a \% U5 V5 F! b - (Repeat LEN* X0 `5 {5 l2 x" S, D% ~
- (Setq I (1+ I))
1 m9 H2 q0 d5 S1 S/ j4 f) X - (Command (List(SSname SS I) SIDE)) ) (Command "")! }7 T/ \$ a# ]. w' F1 A
- (Setvar "CMDECHO" CVAR) (Princ "Da Extend xong moi ban lam tiep") (Princ) )
- C% D/ n- Q# E3 k
, `. q& b2 q; Z, m% [6 C. I- ;;; =============== EXTEND 1 DOI TUONG THEO KHOANG CACH ===============
3 ^ F0 _* B5 I8 J
/ q# m) G" A' x8 h- (defun c:ETT () (setq os (getvar "osmode")) (setvar "osmode" 512)7 ?$ [; T6 q; o- O9 Y+ C
- (setq pt1 (getpoint "\nKich vao 1 dau doan thang can EXTEND "))! Y2 V4 v1 ?& K6 |- t
- (setvar "osmode" os)
8 ]+ b% N. ?1 r0 ? - (setq dis (getdist pt1 "\nKhoang cach can EXTEND :"))2 g; p3 o8 ^3 G* p. y1 s
- (command "circle" "endpoint" pt1 dis) (command "extend" "last" "" pt1 "") (command "erase" "last" "") (princ))
# Y4 `; m9 l+ e
# b: O- h1 p- h$ t3 D- ;; ================ Change width of polylines =========================% H5 ?- Y# G* ]9 A, c% [- v
- 6 k# J! Z, S9 |1 {, _4 b+ F6 @* B/ K
- (DEFUN wp (/ a b sophantu sodem list1 ha:wid)
+ H* Z7 w+ g6 N9 L9 d* l - (PRINC "\n Chon doi tuong can thay doi do day (Width) !") 9 [+ ], Y- l6 ~' U5 v: P/ U
- (setq b (ssget)) 4 n4 _( U% V. w5 m
- (setq sophantu (sslength b))
& f$ Z& l# l" e - (if (null ha:wid) (setq ha:wid (getvar "tracewid")))
' ~0 x3 H1 x& U - (princ "\nDo rong polyline <")
. V2 e6 J" J7 i3 | - (princ ha:wid)
, C3 R% `+ L+ [% e" |# b5 [ - (princ ">: ")8 W/ I, d5 F) r' G# W
- (initget 4)
3 O5 u0 @" @3 r/ l s - (setq ha:wid (getdist))
& v' J& R" L, ]1 J" ^; G$ J - (if (null ha:wid) (setq ha:wid (getvar "tracewid")))
! s1 ?7 a8 |) V1 E' r5 P6 N - (setvar "tracewid" ha:wid)$ r! Y0 ^- u6 x V. t6 `! b
- (setvar "cmdecho" 0)
4 H: {: }) x- p' J0 V - (setq sodem 0) ; {! j, I; |& I! b
- (repeat sophantu
) }5 o; N* }: D7 v j - (setq a (ssname b sodem))
r/ l; V6 g% U. o - (setq list1 (assoc 0 (entget a)))- j. Z7 a' F! J, w
- (cond
4 ^% |; u7 W3 f/ }) K - ((= (cdr list1) "POLYLINE") (command "_Pedit" a "w" ha:wid ""))& c7 j- K6 \/ t; w* {
- (PROGN (command "_Pedit" a "" "w" ha:wid "")) ) 3 W6 w8 }7 H& U/ }6 J) y7 Y7 V
- (setq sodem (1+ sodem)) )(SETVAR "cmdecho" 1)(princ)). \) @7 f. |; y) z
- (defun c:wp () (wp)) (defun c:pw () (wp))
+ {1 N! H) F4 m3 {+ S/ ?' U: k - ( k: }+ F' T' D; A' |3 o- k. t
- ;; ================ Change radius of circles ==========================0 }) u3 l4 h; |( [' ]! T z+ O
- . I4 i% O* R c- |$ q
- (DEFUN C:CHR (/ SSET SSL M RD I) (PRINC "\nSelect Circles :") (SETQ SSET (SSGET))
/ X. u" P! l$ p, E - (IF (/= NIL SSET) (PROGN (SETQ SSL (SSLENGTH SSET)) (INITGET 4 "") (SETQ RD (GETDIST "\nNew radius : "))3 [. O; @0 y+ Y6 O
- (IF (/= RD NIL) (PROGN (SETQ I 0). k! K, c! z# r4 y0 y! x
- (WHILE (< I SSL) (SETQ M (ENTGET (SSNAME SSET I) ) )
" a3 o' P' e& @) y - (IF (= (CDR (ASSOC '0 M)) "CIRCLE") (PROGN
N" V! | b* i' u+ | - (SETQ M (SUBST (CONS 40 RD) (ASSOC 40 M) M)) (ENTMOD M) ) ) (SETQ I (+ I 1)) ) ) ))) (PRINC) ) G) b) a0 g$ z0 ^. ^0 @/ v/ G* ]
- & q0 O6 O7 R/ C }3 o
- ;;; ============================== TEXT Hight ===============================
' a- E4 P, u0 o9 p
3 n6 m$ U6 N1 | l- (defun texthght (/ ent hght)
" J4 z0 l; U( ~- r' u6 C - (setvar "cmdecho" 1)+ e9 B2 s* w+ L' f
- (prompt (strcat"\nSelect text entity with required text height"))3 F V5 M6 Y y* I/ w1 `5 q
- (prompt (strcat"\n."))* L7 U6 t5 j4 }9 z: @1 K
- (setq ent (entget (car (entsel))))
m: v, d* ^( t$ h) X4 ^0 @ - (setq hght (cdr (assoc 40 ent)))7 ^: `' ^9 G4 V7 G7 w% z
- (prompt (strcat"\nText height now set at "))(prin1 hght)5 ]6 M1 F+ E0 N ]- f
- (prompt (strcat"\n."))
9 Q9 b# z& y6 ` - (setvar "cmdecho" 1)" x" N5 O9 G3 [5 L
- (command "DTEXT" PAUSE hght "") )9 |& T3 o2 M! e& a# H; |" \0 x
- (defun c:teh () (texthght)) (defun c:texthght () (texthght))
$ P! v' l& ^! q/ A) G - ) }9 ?: {1 s- Z. w, P$ t ?
- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================
+ J+ T: K4 s, D4 {/ C: V% p* [ - ' r; I, o! b2 Z3 y
- (defun c:tuu () (setvar "cmdecho" 0)
$ f1 K- H' _( k% {' X - (prompt "\nHay chon dong TEXT can gach chan ")3 Q5 i+ x3 b( l( C' u% K
- (prompt "\nSelect objects: ")
0 L- K. |! J4 h - (command "select" "au" pause)
' j ]* L& B7 m3 T& N - (setq sstxt (ssget "p")0 H+ v9 M5 r; |
- sslen (sslength sstxt)# f2 `- T' q1 J
- ctr 0 )1 O8 G( V& z; b) J7 I; n; i' { z
- (command ".undo" "mark")" R0 j0 k7 E5 l7 _: ^3 u0 r
- (while (< ctr sslen)
& Q1 _% N! Z8 H& u/ B - (setq listxt (entget (ssname sstxt ctr))
! l/ x+ n! O7 b - txttxt (cdr (assoc 1 listxt))3 L" \. P' u( y1 \" q
- enttxt (cdr (assoc 0 listxt)) )
$ u5 P$ G( _# a, s& C- s - (if (= enttxt "TEXT")3 }/ X# u# [" i
- (progn
! W) Z# i7 [+ ? - (setq testxt (substr txttxt 1 3))* ?) m8 l: w% B% N9 {8 P; B: h
- (if (or (= testxt "%%u") (= testxt "%%U"))7 t# Q- @7 |: F
- (setq newtxt (substr txttxt 4))
, M. R+ a, {$ ~3 e1 k. b - (setq newtxt (strcat "%%u" txttxt)) )
* d ^6 v2 o) V B6 r3 Y/ T - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))" T9 F; M* [% M: p. d
- (entmod listxt) ) )7 i5 m; g9 ]8 g$ x
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
5 [5 d6 C9 i( V - % D- C l0 @! G0 U+ e
- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================
! b4 @) p @! O9 @) [ - ! s2 C$ U: A( ?2 e5 l* K3 q1 T9 e
- (defun c:tob () (setvar "cmdecho" 0)
3 b* |$ I- Z4 ?4 Z, ^+ }7 Y - (prompt "\nHay chon dong TEXT can gach tren dau ")
! `& l( k7 t) O+ |, V - (prompt "\nSelect objects: ")8 s* t& R5 V4 [: g4 k
- (command "select" "au" pause)+ P5 Q, C, U, V" b
- (setq sstxt (ssget "p")
* q4 U( C7 U; v% u. i5 n1 @ - sslen (sslength sstxt)
) T% h7 ~8 r, h# C4 [& B4 V - ctr 0 )6 K7 y% H: S" B" T$ d" k
- (command ".undo" "mark"), A5 l* k% x, |
- (while (< ctr sslen)* i4 E9 T! \& B" k1 S: T7 s
- (setq listxt (entget (ssname sstxt ctr))1 J6 T8 B. U3 O2 v4 x) B
- txttxt (cdr (assoc 1 listxt))
) T) R: S) v. f/ A - enttxt (cdr (assoc 0 listxt)) )
3 L# P7 \/ ~- A - (if (= enttxt "TEXT")1 g; S, V, Y% P+ C5 E* p+ n
- (progn: }9 k8 P9 ~5 `% g& q0 Z" L+ E
- (setq testxt (substr txttxt 1 3))
! g0 l' } G- j% m1 M - (if (or (= testxt "%%o") (= testxt "%%o"))
0 T, H3 M, A: ?+ v! O) ] - (setq newtxt (substr txttxt 4))
6 o: v" ~% h7 n J - (setq newtxt (strcat "%%o" txttxt)) )/ |$ M# Q' w* d1 d1 N {7 T; z
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
. J* n) F. p, k - (entmod listxt) ) )$ X! m& c7 k) ^' X
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))! Y5 H5 Q# o3 g" u/ C. N; y
- , T3 p, X) F. v2 K% D
- ;;; ========================== Tim & thay the TEXT ========================== g7 v! B1 W( X0 ]9 T# \3 n
- : s3 c' e. p) O1 d0 @/ s3 ~9 f6 b
- (defun frstring (str search replace / str1 str2 index find)
# T2 g: ^& @7 g, n: D6 g; V - (setq index 0) (while (<= index (- (strlen str) (strlen search))) (setq index (1+ index))
, K0 B+ ]. S: y8 A# b; ? - (setq find (substr str index (strlen search))) (if (= find search) (progn (setq str1 (substr str 1 (1- index)))
6 ~) o# J$ p, }; ?( m; G; | - (setq str2 (substr str (+ index (strlen search)))) (setq str (strcat str1 replace str2)) ) ) ) (setq str str))
0 B% ]: `& B+ t - (defun hai (/ dial)
- N3 f: U& @8 \8 p7 m. m - (setq dial (load_dialog "hai.dcl")) ;;goi dialog5 k, K n5 O9 R' k" T% T
- (if (not (new_dialog "find" Dial)) (exit)) ;;
! }2 E7 |* p: Q G - (mode_tile "find" 2); Tao dau nhac tai hop thoai! _6 J5 L( I" w# X+ i0 b
- (action_tile "find" "(hai1)")
4 U; _: V( i0 a/ a+ J$ [ - (action_tile "replace" "(hai2)")
' S0 j. k4 ]3 _1 d - (action_tile "cancel" "(done_dialog) (exit)")+ z; D, P/ h% r, y/ ^: R
- (start_dialog) . D. |5 Y4 ? |/ q
- (unload_dialog dial))
% T" ]# x2 G' v% P5 @% V5 p - (defun hai1 () (SETQ str1 (get_tile "find"))): \( S: f2 x7 G" S, c( Z, [) \
- (defun hai2 () (SETQ str2 (get_tile "replace")))9 G& {3 B' ~# g9 U7 ^
- # a% P/ |( H8 R
- (defun c:TTT (/ a str str1 str2 newstr taphop sodem)
' }2 `$ `) d7 z! v9 W, C: F - (hai)
2 n' ?6 x4 L3 P( ~; A6 }- U - (if (or (null str1) (null str2)) (princ "\nDu lieu khong hop le")
! D* G8 h( E W2 l9 ?1 Q5 C6 y - (progn
7 v' G* V9 s( O9 x - (setq taphop (ssget '((0 . "TEXT")))). j" E# P; k1 R/ I! |( w' q
- (setq sodem 0)
8 V* u/ T" i/ } - (if taphop
' t# E& ]- }9 y4 _ - (progn8 `5 _+ S( f# i4 T5 I ]: O- }" N: y
- (Repeat (sslength taphop)+ O+ g5 r; X1 J" d
- (setq a (entget (ssname taphop sodem)))
3 c" x1 H; \) s% T( G/ z5 e7 K c - (setq str (cdr (assoc 1 a)))# I# V' c- Y9 Q' D; |; u: I' {% V
- (setq newstr (frstring str str1 str2))
& h x+ t5 _& p! e8 _3 e) E - (setq a (subst (cons 1 newstr) (assoc 1 a) a)), `5 A/ d4 u% G& u' D
- (entmod a)$ A( U2 V% q' j
- (setq sodem (1+ sodem)) ) )
( }1 ^. O# A& s - (princ "\nNone "TEXT" selected") ) ) ) (setq *error* olderr) (princ))
8 g& A9 I% \% q3 U. X
* ]9 `3 z5 {& V; S! t8 t- ;;;============================= CHTEXSTY.LSP =============================: K+ U# F# N* S: b+ a
( T, V2 J, x# b6 k) K) q7 O' K- (Defun C:TXS () (Setvar "Cmdecho" 0) (Initget 1 "SE ST ")9 k3 {3 w% n& h# a
- (Setq G (Strcase (Substr (Getkword "STyle/<SElection>:")1 2)))
, P" G; E# p0 W- U7 e( O6 @ - (Cond ((= G "SE") (Setq A (Ssget)) (Setq B (Sslength A))
) X. ~8 V7 X, b - (Initget 1) (Setq C (Getstring "\nEnter new text style: "))( ]; @5 `3 m f. x8 y
- (Extang C) (While (> B 0) (Setq B (1- B)) (Setq D (Ssname A B))6 L4 y* |& K/ _ D3 O
- (Setq D (Entget D)) (Setq E (Assoc 7 D)) (Setq F (Cons 7 C)); g( s& [6 n9 q3 l1 Z
- (Setq D (Subst F E D)) (Setq H (Assoc 51 D)) (Setq I (Cons 51 J))* ^0 v, g9 } ]; Z
- (Entmod (Subst I H D))) (Setq A nil)) ((Or (= G "ST") (= G ""))
7 @2 {3 e# K1 ?( P$ j( b - (Initget 1) (Setq A (Strcase (Getstring; |) j* l' r# v
- "\nEnter text style to change: "))) (Initget 1)4 Q: E% D) y% h/ R/ E8 H, B* D
- (Setq C (Getstring "\nEnter new text style: "))(Setq D (Entnext))1 V" C; C: Z' [$ f7 c3 _
- (Extang C) (While D (Princ ".") (Setq E (Entget D)) (If0 l; B8 |$ k) I e+ ?% N
- (And (= "TEXT" (Cdr (Assoc 0 E))) (= A (Cdr (Assoc 7 E))))
0 m/ O& x* ~: j: U5 x' |) X, J. e- | - (Progn (Setq F (Assoc 7 E)) (Setq G (Cons 7 C))
% N% O. d$ v, ? - (Setq E (Subst G F E)) (Setq H (Assoc 51 E)) (Setq I (Cons 51 J))5 i2 r. j" m0 N. D
- (Entmod (Subst I H E)))) (Setq D (Entnext D))))) (Princ))
; W/ s3 W# h6 w6 W' @, n% I7 n4 ~6 e - . j( g x" t6 G* ^4 V
- (Defun Extang (A) (Setq A (Tblsearch "STYLE" A)), I( Q; V0 m( ]8 Y, w9 w8 N+ c$ B7 C
- (Setq J (Cdr (Assoc 50 A))))4 W+ P. t9 G' V
- * D. }( t$ y( y& V
- ;;; ============================ DRAW CLOUD =============================5 k a! s1 M8 _+ A4 n, F' n- D
- ; l D s8 s5 S8 A$ h
- (defun CLOUD (/ pt1 pt2 arc1 cnt ss la) (setvar "cmdecho" 0); f8 s6 L3 U( a/ P; M: i- `
- (prompt "\nVe cloud (may) khong khep kin - Tu khep kin ve diem dau!")6 C' G Z. {, F! |
- (setq la (getvar "clayer")); n k) m5 i3 J. n# h( v
- (command "layer" "m" "cloud" "c" "5" "" ""), n _, K6 o* u, |% f
- (setq pt1 (getpoint "\nEnter first point of Cloud: "))
" j1 m t, a) b5 ? - (if pt1 (prompt "\nProceed in a COUNTER-CLOCKWISE direction..."))8 \( U+ I7 [3 N0 z% Z
- (setq cnt 1 ss (ssadd))
_) B1 A5 N3 Y3 Z! B - (while pt1 (setq pt2 (getpoint "\nEnter next point - and close: ")). A2 K. ?1 e, @9 r7 ~
- (if pt2 (progn (command "arc" pt1 "e" pt2 "r" (/ (distance pt1 pt2) 1.75))
) F! }8 z( n1 A8 G0 C/ k - (if (= cnt 1) (setq arc1 (entlast) cnt 2) (ssadd (entlast) ss)) ))
) x6 l% n; e( @8 S( Y - (setq pt1 pt2) ) (setvar "highlight" 0) (if (> (sslength ss) 0)
2 z Y" r0 Q) Q% C9 B - (command "pedit" arc1 "y" "j" ss "" "x")4 t' g/ l# x$ s. |. c
- (if arc1 (command "pedit" arc1 "y" "x")) ) (setvar "highlight" 1)' s2 ?' I& ?% z; J- v" J: F1 J
- (command "layer" "s" la "") (setvar "cmdecho" 1) (princ))
% S3 A7 z7 e4 x. h8 u - (DEFUN C:CLOUD () (CLOUD)) (DEFUN C:CLO () (CLOUD))
$ `3 \0 _0 l: f) s - ( I' `" E& M5 v% U5 v- c
- ;;; ================================ Funtion-Dulieu ========================9 b0 B3 C5 d$ ]8 ~! o6 q/ r# A
- ;;; ================================ Funtion-Dulieu ======================== V3 Y* R# u$ b+ M% c/ q
- ;;; ================================ Funtion-Dulieu ========================
9 X: g5 k8 O* S. X4 i! }6 | - 0 g( V: H- [: y% z
- (defun ha:nhap (kytu thamso) (princ kytu) (princ thamso) (princ ">: ") (setq key (getint)) (if key (setq thamso key)) (princ thamso) )
. `, }6 j3 i x/ V/ j: j - (defun ha:thoat () (reinit) (setq Temp "Da thoat khoi chuong trinh")); f1 z$ R3 `6 M, V+ k w6 Z3 M# W
- (defun khoangcach (kh khq11 khq12 / h0 h1) (setq h1 (polar kh (angle '(0 0) (vectophap khq11 khq12)) 500)) (setq h0 (inters khq11 khq12 kh h1 nil)) (distance kh h0)) P7 b1 Z2 f2 e; K1 j) Z v
- (defun hacat (hacat1 hacat2 / hacat3 chon) (if (and (/= hacat1 nil) (/= hacat2 nil)) (progn (setq hacat3 (polar hacat1 (angle hacat1 hacat2) (/ (distance hacat1 hacat2) 2))) (setq chon (ssget hacat3)) (command "break" chon hacat1 hacat2) ) ) (princ) )# i$ J0 k8 D4 d6 h- E0 X
- (defun hauon (hauon1 hauon2) (command "fillet" hauon1 hauon2))# L: X4 m9 \$ w0 M+ E
- (defun init () (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "angbase" 0))
6 Z8 N9 c& U( e: ^7 Y& s3 @7 ? - (defun reinit () (setvar "cmdecho" 1) (setvar "osmode" 0))
: K/ @1 a; W* F/ J @5 B) |; I - (defun tichvecto (vecto1 vecto2) (apply '+ (mapcar '* vecto1 vecto2)))! f. z: Y5 I9 a6 N8 d: _# G$ L1 q' e( v
- (defun vectophap (v01 v02 / vectochiphuong) (setq vectochiphuong (mapcar '- v01 v02)) (list (cadr vectochiphuong) (* -1 (car vectochiphuong))))
$ v6 N1 j" ~; U - (defun ha:giaodiem (dc1 p1 p2 / hc hc1 diem1) (setq diem1 (vectophap p1 p2)) (setq hc1 (polar dc1 (angle '(0.0 0.0) diem1) 100)) (setq hc (inters p1 p2 dc1 hc1 nil)))6 s O( y; q: O* I8 N
- (defun dtr (dtr) (* pi (/ dtr 180.0)))
# B9 G4 s6 [, \) X: [* F2 a: [ - (defun rtd (rtd) (* 180.0 (/ rtd pi)))
l2 b; P$ i9 s; }
: A5 F! J5 a, p- ;;;==============================PROGRAME===============================+ ]6 u0 M; _# O3 i! @
- ;;;=====================EditDiM Hien Hop Thoai Dep======================( V; l1 R- M3 W8 W
- ;;;==============================PROGRAME===============================* S6 c$ G" K4 k6 P$ x4 ]8 M+ `
9 Z$ m) J7 Z$ v- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)
# ]: y3 G7 q7 ^& {1 c - ;;Chay Cung Du Lieu.Lsp & Hai.Dcl
# J- m! r% h- T; _" t) {8 } - (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)( z; ]3 \ D) y
- (Setq Oldlis (Entget (Car Chon))
# {! t2 q) j8 a- u2 S- S - Pt10 (Cdr (Assoc 10 Oldlis))! G2 k+ f7 S1 T/ d8 i4 v
- Pt13 (Cdr (Assoc 13 Oldlis))
1 p. }$ T1 _4 \) l4 m - Pt14 (Cdr (Assoc 14 Oldlis))
) ~- X; ~9 |3 x3 Y/ D - St (Cdr (Assoc 70 Oldlis))7 ~2 M2 N7 P9 O$ w Z; _: o D' a, j( ^
- Dimdefault (Cdr (Assoc 1 Oldlis))
, a: Q4 j8 w* \7 _: Q+ h8 ` - )' c+ ~( `9 o& E2 j# f: W
- (Cond
* @" \- G' _! g: p a7 T* ~ - ((Or (= 32 St)(= 0 St)(= 160 St))
E' H' ^6 q/ ^9 ]5 t3 o$ c - (Progn/ L2 v' _: p" l8 v
- (Setq Ang (Cdr (Assoc 50 Oldlis))
3 n/ _& V3 k+ Z% d - Pt (Polar Pt13 Ang 500)- U+ F3 C# j ]! ^) D6 D
- Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)% s* Q; t& n h! w' W: x: R0 s
- Dis (Rtos (Distance Pt13 Hc))
, f8 X/ t) K R7 _, ?2 N! x5 | - )
1 `, i l/ h0 O* K( s7 \" X - )# E5 t( o" \! B3 c5 i, w2 g
- )
( @! N c. X! B0 h6 f8 e4 O - ((Or (= 33 St)(= 1 St))' Z$ ?% ?$ \1 B, B7 B! ~' q; @
- (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
% S' s) D9 I' G1 \1 w# P - );;End Cond
7 g1 U" i. U S - (If (= Dimdefault "") (Setq Dimdefault "<>"))* h6 y, D1 u5 O) K" k3 B/ }. G' I+ E
- (Setq Dial (Load_Dialog "Hai.Dcl"))
+ X1 s B; @* _3 ]! x! s - (If (Not (New_Dialog "eddim" Dial)) (Exit))' f, Q4 C' E V# L* N
- (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))
0 W' F" c* ?; E. k! v B* `8 Z - (Set_Tile "text" Dis)); y+ T8 u u& P' @8 m, P
- (Set_Tile "ha:edim" Dimdefault)
" e! e/ G" [% l* _7 w% W - (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai
/ |* E" F, \% N - (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")
2 N( a7 `3 c& w9 a - (Setq State (Start_Dialog))(Unload_Dialog Dial)
8 ], w" d- N+ m0 @8 n3 y - (If (And Str (= 3 State))2 S! w- c X% O( D* v
- (Progn
) P! [5 L! K3 A5 \ N5 t - (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))- b- B* F7 y0 W2 k$ A
- )
- ]# F" G3 l: S& q% T D - (Defun C:EH (/ Chon Name )/ d3 f9 }& S, S1 z
- (Defun *Error* (Msg)
* s3 @8 E; j# r$ E l9 p3 V; A& F - (Princ "\nerror: ")(Princ Msg)(Princ " ")0 J% X+ M( d0 B6 a9 Z2 B
- (Start_Dialog)(Unload_Dialog Dial)! J$ t% X; u! @7 A% v
- (Setq *Error* Olderr)(Princ)
# x$ }9 O" g0 e0 [4 b - )
7 y2 @% U3 U* ?' y+ F4 y" G - (Setq Olderr *Error*)8 U4 z. { f; C" ? `2 h4 Z: P
- (Setq Chon T)
. b6 H8 x9 @8 l% E @ - (While Chon
/ ]) l* y4 e$ D3 y: G0 A - (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))# k( o5 `! i# h g$ P2 p
- (If Chon
% c, O) M4 @+ x- v; Z+ O) k" G - (Progn
+ I S1 S/ N. s5 O! L: z - (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))
0 P6 L$ M8 i/ p5 \: J7 r - (Cond
9 t7 W* A5 ?# Q) | - ((= Name "INSERT")(Command "Ddatte" Chon))
# h2 S6 M% B% j) ?/ O0 o- g - ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))
8 Q6 b6 W5 _# Z8 H$ y; z& i - ((= Name "DIMENSION") (Hai_Edim Chon)): t) F* p4 N% L0 f- x) |0 b
- )
4 C; p9 s0 q2 B$ k - );End Cond, s, p8 b8 M8 v( Q; I' F$ e9 ^
- );End Progn
% R' ^+ b/ N9 C* C. Y3 D9 Y - );End While
: C! f. Q2 L5 O' W# z1 b) X - (Setq Olderr *Error*)(Princ)& u5 |; D5 q# ^) b
- );End Program; x0 l. H. `! f+ c3 L$ u
- 4 U4 i# X# F) }; j
- ;;;====================DDeditDim=====================
2 o$ v& F$ ]0 J/ }2 h, G - ;;;=====================Hai.DCL======================
# c% h& w2 M8 k9 b3 [- _6 k% M# E - ;;;====================DDeditDim=====================* B2 V# A" R ~: {/ u
- 8 k% z: d0 S" e& c9 k
- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)" q" T: w$ v* p2 u5 L6 G) \' W6 ]9 i2 P' a
- ;;Chay Cung Du Lieu.Lsp & Hai.Dcl0 l: Z' g. V" d
- (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)
4 X7 u E1 G6 i+ o a) h1 g/ p* P - (Setq Oldlis (Entget (Car Chon))# A' e' v8 {2 B. M, B
- Pt10 (Cdr (Assoc 10 Oldlis)). t, F2 e* W2 H& @
- Pt13 (Cdr (Assoc 13 Oldlis)). z' g' Q4 C( ~5 H
- Pt14 (Cdr (Assoc 14 Oldlis))
A' C4 v/ [/ l7 f% B - St (Cdr (Assoc 70 Oldlis))
, T; k3 m: Q9 _- K! A - Dimdefault (Cdr (Assoc 1 Oldlis))
, F% r$ @( J/ G9 R) ?& b2 I - )
6 m' v3 P: q. H8 h1 u' y% [ - (Cond6 T+ e0 o0 t2 A" B% c+ x" k* X7 [
- ((Or (= 32 St)(= 0 St)(= 160 St))( e% A, `4 m* {
- (Progn
" j! c' X0 Q+ L5 T - (Setq Ang (Cdr (Assoc 50 Oldlis))- @* h5 K0 q0 P3 e& c
- Pt (Polar Pt13 Ang 500)
# v' a0 u6 a9 S/ j# I% Q - Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)
/ T( m1 \9 o3 A9 [6 p# W - Dis (Rtos (Distance Pt13 Hc))) G! [1 e; z; k3 }, N- L
- )
! ~) G+ R' h7 _/ N0 c! C9 K7 l. r0 n - )$ p% C4 A" A5 s2 b3 [
- )
9 w G, s- Z1 A0 a. ]) {( R2 B6 n! a6 T - ((Or (= 33 St)(= 1 St))
6 V2 p7 P' _( d! M' } - (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
& Q: M% y) \) z - );;End Cond! ]- ^" e/ S# s9 s' N& F1 j) Z
- (If (= Dimdefault "") (Setq Dimdefault "<>"))% x) L* H; T; Z) d3 w0 h
- (Setq Dial (Load_Dialog "Hai.Dcl"))3 _$ N) e4 W/ ]2 ~/ m0 E3 P; N
- (If (Not (New_Dialog "eddim" Dial)) (Exit))- ]7 ^' I2 p! S1 P
- (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))" K9 |# \6 |: Y. \1 \) m$ n
- (Set_Tile "text" Dis))
" p: j! o2 Y% P* ?. Z! O/ [ G. l - (Set_Tile "ha:edim" Dimdefault)/ h! R/ g, U" |2 ~8 L9 j
- (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai; e; H* V+ `4 S% E
- (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")8 Y* A- J8 [8 _
- (Setq State (Start_Dialog))(Unload_Dialog Dial)
2 G* _ R1 f$ e. D, V - (If (And Str (= 3 State))
" ~/ C. k2 a$ ?+ |1 g- J* j2 Q - (Progn6 i3 E5 Q: a. E) S" ?* n# D
- (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))
7 B3 }9 i. A# B - )9 k8 y$ B# _. {: z3 P9 s
- (Defun C:EH (/ Chon Name )* o {9 a9 n: S, B6 f
- 5 x4 Z2 e! G" F2 O# P# V
- ;;;********************Du Lieu********************1 \9 {9 O8 [0 q3 i' y
Z/ Y# A2 _: v- (Defun Ha:Thoat () (Reinit) (Setq Temp "Da Thoat Khoi Chuong Trinh"))0 f$ C" P3 i; H& P7 U* j
- (Defun Hacat (Hacat1 Hacat2 / Hacat3 Chon), s- l8 e' E% _) d6 T& V) U
- (If (And (/= Hacat1 Nil) (/= Hacat2 Nil))( S7 X1 \0 @3 r; ?( B: r5 A; t
- (Progn
# y( ^2 Q$ N* l. k! f- a3 i+ @4 d - (Setq Hacat3 (Polar Hacat1 (Angle Hacat1 Hacat2) (/ (Distance Hacat1 Hacat2) 2)))& @6 }; B0 Z* b, p* f. o/ n
- (Setq Chon (Ssget Hacat3))7 ~, D6 A- |& e+ I6 m, u
- (Command "Break" Chon Hacat1 Hacat2)
; l; _) j2 T8 c$ l - )* c v4 p* @4 L( A: H
- )" x3 X3 |0 ?. G! ]4 z& r. K9 w3 P" t
- (Princ)3 i5 U9 H) \6 ]
- )+ ` I q6 M7 {7 ?0 Y
- ;;
) _; ]4 E' |% r3 O; U - (Defun Hauon (Hauon1 Hauon2)(Command "Fillet" Hauon1 Hauon2))
' b+ T* l/ p1 q+ I! w# w - ;;9 ~8 {: p" F0 F9 ]/ {1 w
- (Defun Taolop (Mau Lop / A)(Setq A(Tblsearch "Layer" Lop))(If (Null A)(Command "Layer" "_N" Lop "_C" Mau Lop "")) (Setvar "Clayer" Lop))$ x& I6 u/ N7 M
- ;;
) \7 w* V9 H9 n) _8 u. O1 W8 W - (Defun Init ()(Setvar "Blipmode" 0)(Setvar "Cmdecho" 0)(Setvar "Angbase" 0))
\0 X5 ~! G& c0 ?" ?, Z+ O - ;;
2 A& f+ F* F: N$ h7 v8 v7 z( \( Y - (Defun Reinit ()(Setvar "Cmdecho" 1))8 r* x! u7 }& Q' i _& b' ]
- ;;
% |6 U0 N) P9 j8 i# C6 W! f - (Defun Tichvecto (Vecto1 Vecto2)(Apply '+ (Mapcar '* Vecto1 Vecto2)))6 ?& Z' v! B9 \# J
- ;;; u k) P4 K$ x/ ?
- ;;Cho 2 Diem Tinh Ra Vec To Phap
5 p" `+ V' e m& K8 P/ Z - (Defun Vectophap (V01 V02 / Vectochiphuong)(Setq Vectochiphuong(Mapcar '- V01 V02)) (List (Cadr Vectochiphuong) (* -1 (Car Vectochiphuong))))
8 V. z' i' D9 ? - ;;Xac Dinh Vi Tri Hinh Chieu 1 Diem Len 1 Duong Thang" D% v4 d0 b1 B& B5 J D
- ;;Da Biet 2 Diem Thuoc Duong Thang6 C2 l" W2 X$ n. z6 G2 Y" b
- (Defun Lay_Hinh_Chieu (Dc1 P1 P2 / Hc Dc2)
1 B& u' Z, C/ J; `; } - (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)
* L6 r5 e6 b: o - Hc (Inters P1 P2 Dc1 Dc2 Nil))), c) L% S9 G8 A: A9 e2 S$ q
- ;;Xac Dinh Khoang Cach Tu 1 Diem Len 1 Duong Thang, ~' I7 E# `' P6 I* j4 n5 G A
- ;;Da Biet 2 Diem Thuoc Duong Thang, g3 x" }/ z4 N# {5 e2 Q5 ^) l
- (Defun Khoangcach (Dc1 P1 P2 / Dc2 Hc)
& J) F* U4 K$ S' [9 o# t - (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)
; u: X7 b$ B* H+ p4 Y# R$ T0 N8 p - Hc (Inters P1 P2 Dc1 Dc2 Nil))8 Z. @8 \; [0 R8 u x
- (Distance Dc1 Hc)
: g3 a4 [+ s4 r+ m5 B, Q8 B - ), q! _: I4 N# o8 P K5 x
- (load "nhapcua.lsp")+ H: G- ?& f" a
- (Defun *Error* (Msg)
0 h& w7 I& t$ X% [ - (Princ "\nerror: ")(Princ Msg)(Princ " ")
/ @6 n2 G5 s4 H9 G% [9 [( l - (Start_Dialog)(Unload_Dialog Dial)
% N/ b6 j4 C. z5 V# i - (Setq *Error* Olderr)(Princ)
: `0 P9 m! U Z- i - )3 C0 G4 ^: {% W9 G' |
- (Setq Olderr *Error*)6 [' F8 E4 {* y ?
- (Setq Chon T)
* [8 G$ E& z# D+ l% F$ [ - (While Chon( |# \; Q8 M0 T; Q1 A6 k* m# m! ~
- (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))$ K2 e& p5 V6 v: p* ]' o5 _
- (If Chon
1 }; n- l8 k: M* ~) e5 J7 c8 N6 [ - (Progn6 [+ I% o6 n$ [5 [% J
- (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))1 L* v/ q5 Z! M9 S0 g
- (Cond; z7 \ {; Y* d5 S
- ((= Name "INSERT")(Command "Ddatte" Chon))% k+ Z( z A: ^( S
- ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))
6 {1 @: H0 F/ L$ q3 K0 v/ ~ - ((= Name "DIMENSION") (Hai_Edim Chon))- |2 c* ? s/ o1 G( }$ O
- ); X A- ?: K# i( H% k
- );End Cond
7 ?) Z2 s2 D& g* C4 y4 x - );End Progn } f$ j& M r l/ N3 ~
- );End While
! }, m& j5 H9 u* s8 c" t2 b/ x - (Setq Olderr *Error*)(Princ)! C2 w! z& O( Q3 N3 V9 K) s
- );End Program
) c7 L. e1 a: D+ k0 c - 0 z6 V( Q l, y5 }0 n/ C" o$ x& a
- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================
* h3 \# u- S% t- \ - ;====================================Nhapcua.LSP====================================' z8 T0 N# R+ J; u# o, h7 E
- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================
9 Z" j `9 R' k+ B& `4 a
4 o, X/ {4 Z" ?" R! [+ E
* P& \/ s1 z. ~( {% X5 A- l
' z3 [1 S+ M3 N; n8 \- ;*******************;*******************;*******************;*******************
$ D1 B' a m- e: F6 J3 `3 T - ;****K E T C A U****;****K E T C A U****;****K E T C A U****;****K E T C A U****8 K9 F* ~1 M0 B' F9 n3 o
- ;*******************;*******************;*******************;*******************
! A F6 o0 s1 y1 a$ Y" y" _9 D - ; {" D8 i: z- v- o" d
- ;VE HINH BINH HANH
! R8 ~: O( p. r - ' }4 p0 A! i6 j$ a A) l
- (defun c:binhhanh (/ p1 p2 p3)
, P* O9 R1 e0 q) t - (setq p1 (getpoint "\n Nhap diem thu nhat:"))7 `( E! K( I# a/ y8 o' ]& `* _
- (setq p2 (getpoint p1 "\n Nhap diem thu hai:"))6 l. Z' B9 D% I1 _4 R1 p) J; X; F
- (setq om (getvar "osmode"))+ u* Y$ n" C, `3 ~
- (setvar "osmode" 0)3 i& n3 m8 e* _7 r. {) j
- (command "line" p1 p2 "")
" L/ o3 T7 A# a - (setvar "osmode" om)1 ]" }/ Z8 p1 R! G
- (setq p3 (getpoint p2 "\n Nhap diem thu ba:"))' U t' M! S' f
- (setq a (angle p2 p1))2 _# X% w y) J$ t
- (setq d (distance p1 p2))
% d- x, N* a8 U! Y, \; i. a - (setq p4 (polar p3 a d))3 v4 ~. h1 E- U+ x/ U1 N
- (command "OSNAP" "none")
3 l' s8 V+ n7 ` - (command "erase" "l" "")
$ x$ g' o2 e0 e2 S7 z; a, u - (command "pline" p1 p2 p3 p4 p1 "")
. g$ e I9 q+ @1 P, ]) M& Y - (setvar "osmode" om)
) O: u6 ]5 P. r9 A6 A9 K1 R$ [ - ): ^% Y. z8 c2 f. W* M* n& y3 b" J
- 6 t ^ n# P; z' S5 u
- ;VE LUOI COT
9 L4 @1 u# H6 ] E$ K - 6 C) u& u3 C! G/ ?# {* S5 @
- (defun c:LuoiCot () C0 o! h0 O& I8 v( d
- (setq om (getvar "osmode"))+ ^, J6 b. F) N
- (setvar "osmode" 0)( k, Z8 E! n) `/ w1 }7 g
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))* R! k- l* t, q
- (setq p0 (getpoint "\n Chon Basic Point:"))6 g5 \5 W1 S# N* l" [' U" _& P }
- (setq nc (getreal "\n Nhap chieu ngang cua cot : "))
$ ^4 M* ^3 x6 W" p* d7 t - (setq dc (getreal "\n Nhap chieu doc cua cot : "))
1 ^2 w( w$ F& K: _ - (setq p1 (polar (polar p0 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )
! g% V- @ w/ \' h6 u& q- M( H( b! l - (setq p2 (polar (polar p0 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )+ v) P! x/ w% a, N4 F
- (command "rectang" p1 p2)
& h. N9 S0 A9 B) A9 D - (command "hatch" "solid" "l" ""): G) L0 K" `' s Q$ O/ H
- (setq bcn (getreal "\n Buoc cot theo phuong ngang : "))
2 c0 `, B: Y" X% H) X' H$ T - (setq nn (getint "\n So buoc cot phuong ngang : "))8 x a& U4 J! C+ E l" F- S
- (setq w1 (polar (polar p1 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )
0 q T4 d2 a# t1 L, u" V4 D6 a! Z5 b - (setq w2 (polar (polar p2 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
# d& N. p' S- k6 X" S - (command "select" "w" w1 w2 "")( f) i- ?* Y+ q( O3 d
- (command "array" "p" "" "r" "1" (+ nn 1) (/ (* bcn hstl) tile) )5 b6 I; X& i, J( Y
- (command "line" (polar p0 pi (/ (* 1000 hstl) tile)) (polar p0 0 (/ (* (+ (* bcn nn) 1000) hstl) tile) ) "")
8 k! L0 w6 q) H! I }4 I2 X$ v9 J - (setq w1 (polar (polar p0 pi (/ (* hstl 2000) tile)) (* pi 1.5) (/ (* hstl 2000) tile) ))4 q' l: q4 q0 ^- P
- (setq w2 (polar (polar p0 0 (/ (* (+ (* bcn nn) 2000) hstl) tile) ) (* pi 0.5) (/ (* hstl 2000) tile) ))
, T/ B9 C- M% C - (command "zoom" "w" w1 w2)
. [* O& i" f S - (command "select" "w" w1 w2 "")
2 v R2 p5 e+ v- F0 x - (setq bcd (getreal "\n Buoc cot theo phuong doc : "))
, [+ S. [$ g& ~* W8 J+ N" y - (setq nd (getint "\n So buoc cot phuong doc : "))& d5 z2 n2 j' L8 i- n8 a
- (command "array" "p" "" "r" (+ nd 1) "1" (/ (* hstl bcd) tile) )
' c& @3 X" L6 |5 m6 B8 O0 X7 d1 e - (command "line" (polar p0 (* pi 1.5) (/ (* hstl 1000) tile)) (polar p0 (* pi 0.5) (/ (* (+ (* bcd nd) 1000) hstl) tile)) "")0 K' a( s* V) @: E+ z
- (command "array" "l" "" "r" "1" (+ nn 1) (/ (* hstl bcn) tile) )& C# D3 [. l$ Y& n5 n; E" v
- (setq w2 (polar w2 (* pi 0.5) (/ (* (+ (* bcd nd) 2000) hstl) tile)) ) 3 |4 U4 `* |* E' t
- (command "zoom" "w" w1 w2)( h- ^7 V: M; D7 N r* a( M
- (setvar "osmode" om)0 k* f. X+ Y* r4 S
- )
+ A2 O+ \9 M8 T7 S5 y0 X+ j0 O - ; \' S8 z* |! _0 b" }: H
- ;VE CUA DI
* k( t. u, s# L9 H - ' k. }( P; J3 `' R% |% X; x
- (defun c:cuadi ()5 O: v3 _1 g7 { ^, u8 N
- (setq om (getvar "osmode"))
, ?& F2 f; S/ x" K4 I* q - (setvar "osmode" 0)+ q: @% s* V2 o3 P$ t( S
- ! m7 \4 l, `% g6 R; n) A
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
6 E4 K: I5 K: F5 R/ c# L - (setq b (getreal "\n Nhap be rong cua : "))! O% v4 Q1 C4 S4 W" w$ O
- (setvar "osmode" om)$ W" B$ J/ U3 n. r& o1 w. S
- (while (< 0 1). V( w- `- w/ [) d+ N
- (progn1 M q6 a' b& q- R
- (setq p0 (getpoint "\n Chon Basic Point:"))
\9 V; e" u3 C - (setq p1 (getpoint p0 "\n Chon diem de xac dinh huong cua cua:"))
6 D1 _ [& y; T {9 q/ ]' @# _ - (command "osnap" "none")
4 _$ z5 z/ {/ V; q% C - (setq p2 (getpoint p0 "\n Chon diem de xac dinh huong mo cua:"))8 b/ i9 |4 [5 n1 U7 a& ]" M
- (setq a1 (angle p0 p1))
4 `( j8 X! s; @$ X3 R. C( E9 ~ - (setq p1 (polar p0 a1 (/ (* hstl b) tile)))
4 T4 c5 @- A1 p. p- t1 h - (setq a2 (angle p0 p2))2 ?. s/ C% x+ g0 B- t
- (if (< (- a2 a1) pi) (setq a3 (+ (/ pi 2) a1)) (setq a3 (- a1 (/ pi 2))) )) x1 S$ k1 \; j& i" V
- (command "pline" p0 "w" "0" "0" p1 (polar p1 a3 (/ (* hstl 40) tile)) (polar p0 a3 (/ (* hstl 40) tile)) p0 "")
6 a% x% P5 K3 J& D; L; l& d W - (command "rotate" "l" "" p0 (/ (* (- a3 a1) 180) pi))
) _" }9 F& y: L) ~4 G - (command "arc" "ce" p0 p1 "a" (/ (* (- a3 a1) 180) pi))
2 a6 l1 |! l+ b& m) i' c. p, B - (setvar "osmode" om)0 u3 f& h5 P3 A- H" Y& P
- ))5 r& W# |# g6 b5 F/ q6 n
- )
; S4 [: x/ U( j* Y1 a M - ) F: w( Z" A$ M1 J0 J
- ;VE CUA SO
& a4 R% F! s& }5 ^9 V' e
/ A2 |* q0 h# M" R2 \- (defun c:cuaso ()
$ |& g; J& _$ a3 m4 R - (setq om (getvar "osmode"))
/ F' q, Y' `1 P6 {$ S/ W - (setvar "osmode" 0)
; x# G. d7 h$ z5 | - 0 f1 p% g$ g) `9 L ^$ K* V
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))6 ]9 N G! I3 ~. L4 i5 T" ^
- (setvar "osmode" om)
$ |8 ?, P7 O( j) i - (while (< 0 1)+ r/ L& r# J4 E$ w3 L6 W
- (progn) ?4 `+ u" `/ _
- (setq p0 (getpoint "\n Chon Basic Point:"))
/ t6 s: L7 b: Y5 z6 E! Q- N4 m- W - (setq p1 (getpoint p0 "\n Chon diem de xac dinh be rong cua:"))/ ~3 o! q7 B( ]3 f+ y& Z/ R
- (command "osnap" "none")
, R6 [9 A* y+ k - (setq p2 (getpoint p1 "\n Chon 1 diem o trong nha de xac dinh huong cua so:"))
! _, Q( e0 d* D% q$ D5 X, D - (setq b (distance p0 p1))
% b$ z! R, h) }8 U1 P6 |0 @8 i8 W8 n - (if (< b (/ (* hstl 600) tile)) (setq du 50))
; H; k) h2 ?3 R5 _ - (if (> b (/ (* hstl 600) tile)) (setq du 150))4 G( H! s* s4 e% r( i$ p6 `
- (if (> b (/ (* hstl 1800) tile)) (setq du 200))
( k& {8 S) ^( C w/ X - (setq a1 (angle p0 p1))
( r6 c+ }) w: W) _' q8 K - (setq a2 (angle p0 p2))
: O( k, E7 s$ x% N - (if (> a2 pi) (setq a2 (- a2 (* pi 2)) ) )
% U& _9 p- D8 Z& q o ?8 A - (if (> (- a2 a1) 0) (setq a3 (+ (/ pi 2) a1)) )
" Y$ w2 N) _* B$ ^ - (if (> (- a1 a2) 0) (setq a3 (- a1 (/ pi 2))) ): a$ `2 ~; ~# [3 q' `. o$ U
- (command "pline" p0 "w" "0" "0" p1 "")
/ m& ~: ]: }8 {( Q. e" E, u6 x - (command "pline" (polar p0 a3 (/ (* hstl 50) tile)) (polar p1 a3 (/ (* hstl 50) tile)) "")
* ~: Y% |- i: |* H. D2 R% u/ u/ X - (command "pline" (polar p0 a3 (/ (* hstl 100) tile)) (polar p1 a3 (/ (* hstl 100) tile)) "")9 X0 n6 ^1 x6 s# ?9 }
- (command "pline" (polar p0 a1 (* (- du) (/ hstl tile))) (polar (polar p0 a1 (* (- du) (/ hstl tile))) a3 (* -100 (/ hstl tile)))
5 o8 E- Y7 o$ p* A - (polar (polar p1 a1 (* du (/ hstl tile))) a3 (* -100 (/ hstl tile))) (polar p1 a1 (* du (/ hstl tile))) "")2 u3 N3 b7 {7 |0 Y( Z$ r
- (setvar "osmode" om)- [8 t2 q, {* z- N
- ))
# i9 ^: r, K/ ^$ Z0 p - )3 r& E4 e% g* H& j- _
- ( B0 q) }1 Q4 v2 F0 {
- ;;;=== General Utility Functions ===- n( t- C; n2 g! C' Q6 r
- - K( i; p+ [) v) G' y; b
- ; R12 compatibility - In R12 (acad_helpdlg) was an externally-defined ( k1 q* K! d l9 ?5 s
- ; ADS function. Now it's a simple AutoLISP function that calls the
+ w( G' u% K6 R% d4 G5 u - ; built-in function (help). It's only purpose is R12 compatibility.
+ J O. o+ ^0 r2 b" b, W/ h - ; If you are calling it for anything else, you should almost certainly , E7 e4 y2 _" r8 C! ^; T
- ; be calling (help) instead. / A* @* d; y; q6 n: Z0 {
- ) W% s4 q2 i* D! p. F
- (defun acad_helpdlg (helpfile topic)# f) B6 U0 H& e$ _0 Y7 _
- (help helpfile topic)0 v4 s) Y; K' t) {- I3 o
- )
3 @4 j( ?% r1 E# X7 }
# k0 l; Q) @3 E% O! h ?( j
# w0 T! r( X$ y- (defun *merr* (msg)# T* ?. V J7 g6 A: G6 j7 [
- (setq *error* m:err m:err nil)
$ Z/ i6 J! q/ v2 r. [! ~7 X& I/ | - (princ)3 Z1 z/ S5 O& {$ q5 \
- )" u8 z* N4 n7 ]) A0 r1 ^ W
5 J. D5 D. r6 h) p4 v; x- (defun *merrmsg* (msg)1 t* j' n: f7 j9 K
- (princ msg)8 G5 f9 D/ T2 e* ^# F8 X7 B
- (setq *error* m:err m:err nil)
6 ]0 ^9 g$ Q. f - (princ). ?4 ]1 [) P- ~+ b
- )
/ b2 H9 _8 p; E8 h - # r/ Q; Y* ^" ]) y% ?5 z0 O: C0 `
- ;; Loads the indicated ARX app if it isn't already loaded5 [) v* j" i' H) M; {# E0 V2 h
- ;; returns nil if no load was necessary, else returns the
9 P: B" x+ \ m# f6 L - ;; app name if a load occurred.3 G5 m7 r5 r0 _
- (defun verify_arxapp_loaded (app)
) F7 l6 }" u- A - (if (not (loadedp app (arx)))
. p; W: u& ]# p- V0 F3 { - (arxload app f)# `( [" f, S" `; s: y
- ); A; u J8 W# t- n8 }- k, {
- )
3 V- k. R+ q2 s - - p. Q3 Y9 |8 W+ ^+ X
- ;; determines if a given application is loaded...
% V! r# Z$ C) X z% @0 O# I - ;; general purpose: can ostensibly be used for appsets (arx) or (ads) or....
& p3 b7 D3 S& @3 Q6 @, Q8 y - ;;2 F `6 j; Y' P! x i) y
- ;; app is the filename of the application to check (extension is required)3 S% {! c6 o* S. ]
- ;; appset is a list of applications, (such as (arx) or (ads)) P$ H r+ z# I8 Q0 x. B
- ;; ( t/ X8 c+ }; A& h
- ;; returns T or nil, depending on whether app is present in the appset6 k; ?1 n: B3 b& f6 a. l' ^) p) {. `- h
- ;; indicated. Case is ignored in comparison, so "foo.arx" matches "FOO.ARX". `$ S" Q1 g+ w9 M' E: o( K: T
- ;; Also, if appset contains members that contain paths, app will right-match; c9 ]0 E! [4 a) N: t* h
- ;; against these members, so "bar.arx" matches "c:\\path\\bar.arx"; note that% Q% P' p1 T! X9 c( Q' ~
- ;; "bar.arx" will *not* match "c:\\path\\foobar.arx."/ g/ b" W5 P, Q+ u7 ^
- (defun loadedp (app appset)
. |( S5 _* e; ~; z& T9 c - (cond (appset (or
% g, U- O9 ^ G. F - ;; exactly equal? (ignoring case)! ], L4 ]" H" N" }
- (= (strcase (car appset))
: f9 }8 U( Y' Z - (strcase app))8 T& i; l, l4 } \3 @. {
- ;; right-matching? (ignoring case, but assuming that
2 y; p; |4 p! w - ;; it's a complete filename (with a backslash before it)
8 k s) X: F" B% f& X - (and
0 v' d( P1 W% n5 F# n - (> (strlen (car appset)) (strlen app))
5 j5 E! k ^7 i: A5 r! K, Z - (= (strcase (substr (car appset)
6 g4 K, c/ H: z5 X: z! [2 }$ l - (- (strlen (car appset))
" Z& n) x( c: D; x - (strlen app)
- s7 \* ]$ t; S; u! S/ F+ v - ) % P/ R5 ^! l2 i" L5 K1 W# u
- )
1 {" p; W* x$ m( W6 f - )
* P7 u/ A; U' z6 A1 l - (strcase (strcat "\\" app))- x6 D" G2 }: X7 w
- )8 \9 n) T; o' E& j5 ?/ u
- )
% ?" P/ R+ k6 _: a6 Z - ;; no match for this entry in appset, try next one....
$ ~! Q7 O5 a0 x8 F( U& ] - (loadedp app (cdr appset)) )))
* [/ @5 K0 e+ }9 C - )5 @" W M/ X' [: }
- ; z" s( H; m3 I
0 p% _8 |9 K2 \; ~# S' j$ y9 U- ;;; ===== Single-line MText editor =====
2 W& Y* Y/ X, k8 ~! L" L - (defun LispEd (contents / fname dcl state)
' `2 Q1 D0 r$ {: ?* f9 n - (if (not (setq fname (getvar "program")))& z/ u# T9 E8 o4 N5 _, j. n* w
- (setq fname "acad")
5 o) Z& @6 U" z F7 X3 ]) E" n - )
( c+ j( Y' D. H2 g* Y) O0 X - (strcat fname ".dcl")+ u1 t7 \' M# w$ G J
- (setq dcl (load_dialog fname))
$ B1 J# s' M, _6 R4 C - (if (not (new_dialog "LispEd" dcl)) (exit))& f1 m# o) w& i+ W1 V
- (set_tile "contents" contents)) ^4 {- J% X! c ~4 K! c0 }
- (mode_tile "contents" 2)
2 J; k$ l# N$ g/ ^9 H( ~+ Q* h9 } - (action_tile "contents" "(setq contents $value)")) V) v' d3 D9 h9 s, v
- (action_tile "accept" "(done_dialog 1)")2 O9 p; v5 b& K' S7 f! Y( v" M
- (action_tile "mtexted" "(done_dialog 2)" ) S; u0 Z; A: p! ^) b0 a# x
- (setq state (start_dialog))0 s& [4 E. m6 w
- (unload_dialog dcl)7 T% u+ l6 U# [/ T X8 Y
- (cond
# |/ M( M/ V8 _$ T - ((= state 1) contents)
6 p( @6 ]7 z! e" T; M8 m - ((= state 2) -1)
# L+ I# Z# q& U& { - (t 0)
- }3 a' ~# q, a$ ?3 Z - )$ c, n! p- I( l4 u8 ~
- )
% _' s+ H$ R$ I) i% V - : Z O4 ^, Z8 L% L2 W2 j: }" I
- ;;; ===== Discontinued commands =====
; L7 l3 M5 B' ?5 |( B9 }/ B" T3 z - (defun c:ddselect(/ cmdecho-save)
4 u3 o1 p: U3 j: E2 `4 m$ Z' { - (setq cmdecho-save (getvar "CMDECHO"))
2 M9 }" o& |, [+ e) g) y4 R - (setvar "CMDECHO" 0)2 k* S" h" t4 A5 a2 I& F
- (command "._+options" 7)
" u. W( A9 o6 L6 W) s# d - (setvar "CMDECHO" cmdecho-save)6 F9 {; W, z6 I: {) r: G6 J
- (princ)
9 A# ]# a' H' A" t! k3 o. B$ ? - )
{- ~& \! H- Q* h% J9 z - + h) N7 d0 G& H
- (defun c:ddgrips(/ cmdecho-save)
2 ?. T) I( i r6 f" x" B$ h, h6 A - (setq cmdecho-save (getvar "CMDECHO")): z6 K0 w/ y5 _0 H
- (setvar "CMDECHO" 0)! q# I: j* V) f* \2 Z
- (command "._+options" 7)
6 Q& u2 K, Z) B0 W5 `2 m' f - (setvar "CMDECHO" cmdecho-save)
) n a/ c5 P( D9 `. P& {, A/ } - (princ)/ _1 O* i3 ~4 ^6 K; l
- )
0 T6 ^( ~# ~9 I8 @/ B+ y& F5 T
) L9 H4 n9 a z2 d- F# ~- Y- (defun c:gifin ()
7 p) V4 \$ p: t: Q/ w" r3 k6 F' v: a' G - (alert "\nThe GIFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")6 J; v' ^7 X( O/ W* d! r) E: B
- (princ)
( \1 l0 L/ u9 [. ^! ^" z _ - )
3 K( _7 I3 I4 x3 ]; g5 |
3 D8 d& b) C% p3 w5 P- (defun c:pcxin ()
' Q2 E9 K4 T3 Y - (alert "\nThe PCXIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")' r% e/ N- r4 d g& h' C
- (princ)
1 P7 s* @9 @- c) G; h* d4 h' W: e - ), c9 ], ~% N) }1 V; z
- - ~' p: e% E& Z0 z; U% L1 I; g3 L# y
- (defun c:tiffin (): o7 N3 [3 S. c3 O- m
- (alert "\nThe TIFFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")2 }1 T/ W+ Z2 p
- (princ)
& u/ Q: l# J. Q4 h0 I6 N - )
+ q p( [) Q" k9 d; r- d A
! M" y8 C6 G7 x, t$ L/ N- (defun c:ddemodes() @9 b5 h( h4 G3 x. g5 s
- (alert "The Object Properties toolbar incorporates DDEMODES functionality. \nDDEMODES has been discontinued. \n\nFor more information, select \"Object Properties toolbar\" from the AutoCAD Help Index tab.")* C: G& p& I0 l, ~' m
- (princ)- z& ? f* H0 V9 J3 C) j; c7 r
- )
, H2 \# C; D1 y- o$ @2 Y( Q; E - 7 |$ g: z( R2 a! F
- (defun c:ddrmodes(/ cmdecho-save)
% ^3 u0 Q% j: H7 _ _" l - (setq cmdecho-save (getvar "CMDECHO"))
( H8 y. O# x& {4 @# h' A! G5 Q - (setvar "CMDECHO" 0)
% N/ b: L5 J8 m# Y4 i r1 l - (command "._+dsettings" 0); H, J: p# X! o/ @/ Z' l9 t' B
- (setvar "CMDECHO" cmdecho-save)
4 m' x- g. p: r3 _! I - (princ)3 R6 E4 I1 q+ Z3 k
- )
9 S" `" u) ^" n4 @
0 z; U1 E4 R& |$ b ~) V- ;; HPCONFIG
: }. ]% s" b8 n) ^$ a - (defun c:hpconfig (/ hlppath)
: ]5 e# G5 B p0 d) x# h. t) d - (if (not (setq hlppath (findfile "acad.hlp")))
" i9 T2 J* s/ F - (setq hlppath ""))+ D& h: P3 w! l R1 v+ K. k
- (help hlppath "hpconfig")1 q9 u B# X% `
- (princ)- h+ A2 G4 Z2 s7 i' Q
- )' ?# \# \( M& o$ y' b) T
- # o7 C6 T# ~% k
- ;; OCECONFIG
9 P( l$ z0 o9 ?2 R - (defun c:oceconfig (/ hlppath)) l8 i3 n0 n7 X7 D
- (if (not (setq hlppath (findfile "acad.hlp")))
* X2 ?; R6 G i0 C6 i3 g; S - (setq hlppath ""))
. `7 M- g2 N3 G& x3 p6 C - (help hlppath "oceconfig")
) y" W9 J/ M' T - (princ)
( \+ ~- H& S6 _* t, d0 h$ i) O* ]5 e - ): A& H9 V% ^) o6 ]4 p* Z
' a/ w$ S1 u& W9 q7 b+ B- ;; CCONFIG
2 H. D) a5 E4 t4 E$ J% `" q - (defun c:cconfig (/ hlppath)( {- v+ k( n0 p! V
- (if (not (setq hlppath (findfile "acad.hlp")))" B, R W/ Z1 e/ q( @; I( S1 j) r, ?
- (setq hlppath ""))/ O) H5 m7 j1 [6 l/ S
- (help hlppath "cconfig")
8 A/ m8 V) {$ M, H& \* g8 J, s - (princ)5 j- k& O8 K4 m) A9 I
- )2 s, ~* ?. `% _; z0 Q
. D) B$ s8 I! v6 v- ;;; ===== AutoLoad =====
, }8 a% Y! p+ Q4 a$ x - 6 O, K& S, r* |) [( t; t& {; K
- ;;; Check list of loaded <apptype> applications ("ads" or "arx")
( q* G3 {+ ~( }* Y7 L& N) X - ;;; for the name of a certain appplication <appname>." A" c. C' Q' S6 e' G3 K
- ;;; Returns T if <appname> is loaded.
& N, H% e7 ^: l ? - 1 l# g# m& `1 r1 p! C/ t: t7 ?
- (defun ai_AppLoaded (appname apptype)9 o- l9 F( Z- N
- (apply 'or7 t" I! x6 A# L/ Z1 a- n- E
- (mapcar
! n7 Y) o- _/ M. e# O - '(lambda (j)5 F; u: h) Y( `# \4 D8 `5 d
- (wcmatch
/ G* f0 a% s {5 b9 w - (strcase j T)
k1 Q1 l# n1 V8 d - (strcase (strcat "*" appname "*") T)
6 @& T; k5 ?8 o8 i! b# g/ M3 S - ) ; ]5 {) U2 u+ V( y1 A
- )) G# b% z( O! a) S/ R& T1 U0 Y
- (eval (list (read apptype)))/ G. k* m8 u2 {) Q' X* w# ?
- )! c! b! p) l* S. J3 c4 k; z: @( z
- )
6 g3 b0 p" A% q4 g; F* K - )
0 s4 z* s/ W# X& ^$ S/ y2 m
! t5 r2 E8 j* C0 i) j- ;;
; E W1 h+ Z3 ^9 g1 k" D1 ` - ;; Native Rx commands cannot be called with the "C:" syntax. They must 6 L6 ?& f- x2 K! f
- ;; be called via (command). Therefore they require their own autoload ; q, x5 ~9 h3 d7 G1 O" A0 G6 U4 X
- ;; command.# @( P, r6 M& \9 }4 a4 K# [
- 6 N2 N& L5 @3 \+ u
- (defun autonativeload (app cmdliste / qapp)/ [+ e2 c# }* w" y' P
- (setq qapp (strcat "\"" app "\""))
. N9 `5 x1 g4 l' D& p1 b0 Z9 i - (setq initstring "\nInitializing...")
& I% Z- \8 k( R% d - (mapcar
( T9 _0 Q7 d0 r7 W: c& Q* h: I7 B - '(lambda (cmd / nom_cmd native_cmd)/ N! s- ]/ g4 R; T4 P$ \; p3 j
- (progn
. D! o7 f5 Y/ n/ N- R7 ^( V! S - (setq nom_cmd (strcat "C:" cmd))
$ {3 e, N* W* t Q( D - (setq native_cmd (strcat "\"_" cmd "\""))( q# l+ A6 o8 |) E2 I8 n' G3 f! \
- (if (not (eval (read nom_cmd)))
; s4 K; {3 C0 x* F$ v - (eval
7 f7 U% O7 }0 G3 l: G) G - (read (strcat
/ s* x5 R E8 V& k - "(defun " nom_cmd "()"
8 L0 _+ X2 |9 E& F - "(setq m:err *error* *error* *merrmsg*)"$ _* A' T, C- {3 D) V3 H" {
- "(if (ai_ffile " qapp ")"
5 s, V$ E4 u# e6 d* }3 Z - "(progn (princ initstring)"- X; x" `( \0 a4 A3 F) ~
- "(_autoarxload " qapp ") (command " native_cmd "))"
+ T9 Y: G0 C2 [2 Z9 Q - "(ai_nofile " qapp "))"8 ]2 d) U' p1 G. M# v8 F, K% k
- "(setq *error* m:err m:err nil))"
# `0 d/ ?' D/ S0 x( Z9 |) g - ))))))( d: `4 i0 S4 [0 m0 L
- cmdliste)2 [8 S" M1 D' m) r, g
- nil
' U: V' x# j/ Z6 k - )3 |4 B. N0 i- F+ X
- & e7 o/ K( @2 D
- (defun _autoqload (quoi app cmdliste / qapp symnam)
' c8 r/ S9 I" ]: k0 \ - (setq qapp (strcat "\"" app "\""))* g j' S5 |! }# t6 Z7 h" N; X7 G
- (setq initstring "\nInitializing...")
) j7 G. W. E3 X& n" L$ p - (mapcar' n3 T+ O/ _: Z
- '(lambda (cmd / nom_cmd)
: {2 Q6 u# [* x+ ~ - (progn
2 X/ B/ E4 b8 v V) c" ~; c0 @ - (setq nom_cmd (strcat "C:" cmd))! N2 l1 Y: [/ B4 V4 T" ?& t% F
- (if (not (eval (read nom_cmd))): ]; M, E$ O5 ^7 E x/ @
- (eval/ l6 T3 s0 Y: U( Y) Q
- (read (strcat
! m% o7 Y U, {+ V3 A' K" j - "(defun " nom_cmd "( / rtn)"5 d% Z7 U6 j" }& N* X# a
- "(setq m:err *error* *error* *merrmsg*)"
! d# P, U/ W" U+ J% X, M - "(if (ai_ffile " qapp ")"
2 L, e+ ]! w% b- n' j4 \7 L - "(progn (princ initstring)"
Z6 A c/ ?- C( I+ N8 K5 I - "(_auto" quoi "load " qapp ") (setq rtn (" nom_cmd ")))"! }% J2 n# X' q3 z" f& m! n
- "(ai_nofile " qapp "))"$ d% ^0 y% [; b/ ]4 `8 T1 n
- "(setq *error* m:err m:err nil)"
3 p2 a% ]. S% q% |, ^ - "rtn)", |; { X: k: j
- )))))); [; Q8 s4 a y$ K3 g0 ]$ J) S) c
- cmdliste)) ~, X+ u: \1 V2 z, a9 w$ |
- nil W0 \" v1 R8 u- |+ |! X
- ): n" x8 `, P6 a7 r* X' W
$ y; f. X: w$ d: a+ r- (defun autoload (app cmdliste)7 V' ~4 j. H$ t' J7 A! I. P
- (_autoqload "" app cmdliste)4 P- B( r1 ` Y* b/ U0 t
- )
) P4 [' v0 C0 [
$ N) E! r6 H- U) x! \* U% h/ R- (defun autoarxload (app cmdliste): o% h/ G# f4 V- H# a+ g- C2 @$ k
- (_autoqload "arx" app cmdliste)2 |2 y$ s k9 f9 t' P' J% r G
- )
' p: @1 I, j2 Z$ o# A& |( a
+ |# `7 P6 h J& W8 n# V0 y: S& f- (defun autoarxacedload (app cmdliste / qapp symnam)
: c' O. [) U% c - (setq qapp (strcat "\"" app "\""))
; k; t2 _ D3 V! }1 f3 H; w - (setq initstring "\nInitializing...")
$ {0 V8 @5 g0 Z0 Z( _& L - (mapcar/ v$ b8 O/ q( ^3 v6 V1 g. j# Y
- '(lambda (cmd / nom_cmd)
' x6 @) j* Y; i" Z$ e* o5 R - (progn
. w7 D, ^( |/ d) E0 s# h5 k# ?9 B - (setq nom_cmd (strcat "C:" cmd))8 n6 ]8 ?; y4 d3 _7 }& q
- (if (not (eval (read nom_cmd)))
4 p* u$ d4 z& V+ u- Z - (eval/ [6 v9 }/ ~- }) X& q
- (read (strcat
+ [. ^0 ^* X4 I4 j, H, j; \( z- S _; p - "(defun " nom_cmd "( / oldcmdecho)"! g% Z' i( B7 Q# s! A
- "(setq m:err *error* *error* *merrmsg*)"
; y( b* t& H" f$ f, C; M9 b- p$ |- s1 m - "(if (ai_ffile " qapp ")"
6 ^5 X# Z1 g( q2 x4 _ - "(progn (princ initstring)"' }7 p9 @) }$ Y9 C( U
- "(_autoarxload " qapp ")"
5 e$ s' y8 {8 t% y0 x1 o - "(setq oldcmdecho (getvar \"CMDECHO\"))"+ a# I/ p& J; v8 H9 ?
- "(setvar \"CMDECHO\" 0)"
5 ], G+ v' M' P - "(command " "\"_" cmd "\"" ")", P2 r: Z8 F3 s$ \+ @# w
- "(setvar \"CMDECHO\" oldcmdecho))"" d2 m* n2 ?5 L- T5 J7 T& n0 k
- "(ai_nofile " qapp "))": ^& @+ [7 n3 }) h# H c$ n
- "(setq *error* m:err m:err nil)"
5 D: Q7 `3 }+ }0 Z - "(princ))"
% ^5 f% X( i- f- f: k: v - )))))). B4 Q C: q) d9 `
- cmdliste)
" V% u5 \0 O5 o* l0 O4 q, `4 H2 Z - nil
2 Z9 J/ z R7 e/ k7 D! a. v - )
' w) H6 M+ x' k+ Z4 c* }
; T% S/ c# E n" b- (defun _autoload (app)
' U- U2 ]6 |. c, J3 B4 f - ; (princ "Auto:(load ") (princ app) (princ ")") (terpri)# d, E5 V5 k; e
- (load app)6 y; g# D' x( A$ S; E i! V3 g
- )
# b) T3 `3 V# z8 b D - : E: ^3 c/ e7 y
- (defun _autoarxload (app)
. A' ?7 K! D, K- o; T) u - ; (princ "Auto:(arxload ") (princ app) (princ ")") (terpri)5 |* j% C. r U# ]" V& K- l* Q
- (arxload app)9 _, {. X) [: u4 l% X6 w1 l9 k
- )
$ K# z, O, ?) k" y - ( Y8 E# I1 {0 L! @( F- p( g# K
- (defun ai_ffile (app)
7 p& J- z* ~3 O/ o - (or (findfile (strcat app ".lsp"))( L" n4 Y ]! \- }; |/ N$ c, d
- (findfile (strcat app ".exp"))
0 [ n) _$ D9 c4 c" a7 D- `, O" k+ n - (findfile (strcat app ".exe"))9 J2 K* J6 C# I0 c; x+ N7 U8 E3 g2 }
- (findfile (strcat app ".arx"))
$ G4 m& O" g" F - (findfile app). L x# U( @1 |; w9 J
- )1 a" [8 h- |" C# q9 W! v9 \4 Q
- )( |$ ~4 s4 w( U% t
- 1 A5 `2 }0 ]# {' D ?% h5 m: B
- (defun ai_nofile (filename)! q; P f# N. V8 B9 A* Z- s# `
- (princ9 j, L# [2 b3 ?, }
- (strcat "\nThe file "
& v8 ~$ O1 I* E5 }' i |" j$ | - filename; Q5 ]3 r b2 c5 c* H" [
- "(.lsp/.exe/.arx) was not found in your search path folders."
# x0 b' c/ l# C/ Y - )
% }7 s* A. M+ d - )
5 U: {: R( ^9 U0 I8 C0 L - (princ "\nCheck the installation of the support files and try again."), n6 b( u# O- U$ z" x
- (princ)/ u _) V4 H+ M# e$ n
- )7 R6 B9 ~7 v- p8 Z0 C
, ~- [- P S7 l$ d S6 `/ F2 f8 c
+ S3 G" O. R' u6 K A" _: F& ?- ;;;===== AutoLoad LISP Applications =====! n( q- N4 {8 A7 r" r* v) ^
- ; Set help for those apps with a command line interface4 ~0 K: Z* o* H1 e$ m l5 q
$ \0 h/ z4 ~8 s$ |' h5 {: t- (autoload "edge" '("edge"))
+ L+ u$ b+ R, Z% }' c( i! M2 H/ O - (setfunhelp "C:edge" "" "edge")
2 g9 Q# C* S8 g5 Z, r, s; l
+ K+ K' O, o( `8 M- (autoload "filter" '("filter " "filter"))) b, m' t4 P" n0 s7 [* G: m1 L
- . E9 ^0 ~& o& d$ k3 g" k# P3 |
- (autoload "3d" '("3d" "3d" "ai_box" "ai_pyramid" "ai_wedge" "ai_dome"0 Z% [& p, ?' E+ C& |
- "ai_mesh" "ai_sphere" "ai_cone" "ai_torus" "ai_dish")
/ ^0 B [: Y, c) P% B - )
! `3 h$ O; V1 l7 ?3 d5 S0 n) C - (setfunhelp "C:3d" "" "3d")
6 Z# ~2 l' E/ L T0 p+ P - (setfunhelp "C:ai_box" "" "3d_box")
% H t2 ]3 H! r5 N! r - (setfunhelp "C:ai_pyramid" "" "3d_pyramid")% }0 a/ v, G7 S; F6 ?8 }* u9 F5 S2 f
- (setfunhelp "C:ai__wedge" "" "3d_wedge")5 A2 b- a, Y2 p
- (setfunhelp "C:ai_dome" "" "3d_dome")
. ?( w3 ^' Y/ n& a, G7 x - (setfunhelp "C:ai_mesh" "" "3d_mesh"). O% Z7 {9 P8 {1 h7 S# @7 `7 l
- (setfunhelp "C:ai_sphere" "" "3d_sphere")* g$ R' J4 b( T x' ~
- (setfunhelp "C:ai_cone" "" "3d_cone")
0 x2 x' t- H! @, k0 b6 X - (setfunhelp "C:ai_torus" "" "3d_torus")7 F( T( I* I5 a. I6 k# z! c; U
- (setfunhelp "C:ai_dish" "" "3d_dish")( v7 Z7 s1 z/ _
9 `/ g, t+ t, [- b1 K- (autoload "3darray" '("3darray"))
% W z$ j9 k4 i( R$ l - (setfunhelp "C:3darray" "" "3darray")7 J R( K$ w2 g6 w c- j
6 n7 E% G7 m1 [2 t- (autoload "ddvpoint" '("ddvpoint"))
1 ], w2 q5 d0 }6 Q; r: s - V. G* a4 T. Z v5 [8 w4 {
- (autoload "mvsetup" '("mvsetup"))
/ C2 K( I, f/ j) u: U - (setfunhelp "C:mvsetup" "" "mvsetup")
$ \% p7 D) M3 Q' X0 C9 \3 I- |# U
$ R- D, a$ l; }- (autoload "ddptype" '("ddptype"))
9 O3 v2 o. I7 i$ ^9 Q+ ]
0 [$ ?, D9 ~+ X5 B- (autoload "attredef" '("attredef"))
; b: \# _" y- V5 R! e - (setfunhelp "C:attredef" "" "attredef")5 R6 K2 b& o$ |% z
5 x" D6 ?9 K8 F- (autoload "xplode" '("xp" "xplode"))
% D, P2 C. G. a V$ M$ R - (setfunhelp "C:xplode" "" "xplode")
* U3 x. ?$ ?% l - 8 k' l- x3 ] W: w
- (autoload "tutorial" '("tutdemo" "tutclear"2 Z8 d# L; T3 g' E8 d m0 E1 v
- "tutdemo"
) q, g% o9 Y2 P" D4 F - "tutclear"))+ ~6 r) ?; S1 Y3 w& S6 |. s
, {8 C8 x! _3 [* U" `+ N- ;;;===== AutoArxLoad Arx Applications =====
( W1 \0 ]" K; Q5 o& \% l
2 K7 ~! B; E- k, G m0 d! v- (autoarxload "geomcal" '("cal" "cal"))
2 R) {4 {8 b/ ~9 H& R
' G* Y4 C% c' [# ?+ H" r% m# [- (autoarxload "geom3d" '("mirror3d" "rotate3d" "align": A! c$ c7 z2 V/ R6 L9 A. M
- "mirror3d" "rotate3d" 0 k5 R0 X" a; ?3 d- y- O
- "align"))
- f3 B! o# w, z5 [* }
$ C. f6 G* U2 \& G6 ~1 d) U' ~
. Y o1 E" r" _9 U% j. j1 \3 p- ;;; ===== Double byte character handling functions =====& O0 a" k- ^. Q _
8 H/ i# n9 i% D, f0 [- (defun is_lead_byte(code)
c8 V8 V3 m' y+ U) K4 s - (setq asia_cd (getvar "dwgcodepage"))
5 a) G! h& ~7 Y: F" v0 D& _ - (cond- F6 W: S; Z. y" |
- ( (or (= asia_cd "dos932")
) H& Q, ]) [6 o1 o - (= asia_cd "ANSI_932")3 _! v$ m4 F9 m% O3 H* i! N& Q9 C6 O7 G
- )+ r- Q8 t) Z+ C6 e8 }: M( h
- (or (and (<= 129 code) (<= code 159))
# n3 j9 e/ p/ Q! i - (and (<= 224 code) (<= code 252))& Y# i1 G; R% ^! I& W0 B7 `
- )! k& f' h2 _) X2 L
- ). U: Z( y/ K7 W$ m% d' l
- ( (or (= asia_cd "big5")
% l; Z0 u- E: k4 |4 F% {- \ - (= asia_cd "ANSI_950")6 R( A1 s2 c' B" _/ U- c2 I
- )4 q. K$ M0 a5 O6 @5 ~9 r
- (and (<= 129 code) (<= code 254))
{! y" {6 ]( V7 ?9 t5 } - )
8 E: @. e$ x- U9 \6 I/ Q - ( (or (= asia_cd "gb2312")# i. |! H7 W% B2 Q# M
- (= asia_cd "ANSI_936")( o8 b4 ^: I) a" L! [: {4 p! u
- )4 l; |$ B, C+ e' P5 k5 l4 O
- (and (<= 161 code) (<= code 254))* s. ~$ D' Q/ {- N$ { c9 k
- ). A3 F" }1 N2 F f
- ( (or (= asia_cd "johab")
1 g5 i. ~8 N/ e3 `3 O - (= asia_cd "ANSI_1361")) {) B- v7 h5 j6 M O
- )( @0 K' q \4 K8 o% {! Z
- (and (<= 132 code) (<= code 211)); ?8 q) U9 Y+ {" |3 B% b+ j2 ?
- )
6 k5 [0 |( U8 j* n - ( (or (= asia_cd "ksc5601")5 k- O R& [" O7 i" K7 h. S3 `
- (= asia_cd "ANSI_949")
; V$ k" h( P: s! Q& P+ \, j( V5 V - )
& _9 S- i. s3 e8 e8 s - (and (<= 129 code) (<= code 254))4 A' g: l4 I* q% a* |7 h2 A7 b
- )
1 D( \3 M% O3 {, y" A: e - )! E# V9 b& j/ @
- )0 A# Q0 A/ N' [. W. _
* i4 `9 a7 b0 p% [, T- ;;; ====================================================
6 s* j- ~1 B% _ - ; U' [7 o+ s) @, H6 f2 _. }, \) l
5 `3 h) \6 C+ V" ?* A$ u- ;;;
; }4 u U1 u @( U( u9 h. F - ;;; FITSTR2LEN
; D; }6 K! i4 o' U, G- x! b - ;;;3 Z/ J+ [+ [' R$ K
- ;;; Truncates the given string to the given length.
4 j3 I- F0 x- ]% H3 G# K' j - ;;; This function should be used to fit symbol table names, that; H$ O) t7 e1 ~; Z6 l, D! r
- ;;; may turn into \U+ sequences into a given size to be displayed B8 s. m d- _: f$ O' P* }
- ;;; inside a dialog box.) D) B$ R# y; ?4 p" a/ N/ O0 f6 K
- ;;;
8 X5 t: P8 X* K - ;;; Ex: the following string:
$ U; M0 Q# {4 G* t4 G) f - ;;;9 V; C n( s: W$ F( h
- ;;; "This is a long string that will not fit into a 32 character static text box."
7 V$ ]8 Y+ V4 f5 v - ;;;
# l7 X: z$ C8 k1 ?$ Z/ g$ O - ;;; would display as a 32 character long string as follows:" K7 U( o; `# o. S; j1 z
- ;;;3 P" Q" x* e8 A. R; n, ]6 I) x
- ;;; "This is a long...tatic text box."- B4 h/ n1 l4 i2 i) z! b7 q
- ;;;
, x ^+ ~$ m7 Y& d - $ c2 N0 B7 Y) Z# c7 V3 h3 O
- (defun fitstr2len (str1 maxlen), V' V$ o/ d7 a8 N1 V @! l
. S- F% R/ S! A5 ~7 c- ;;; initialize internals3 T$ [- b' y; d* o* x( Q; s
- (setq tmpstr str1)" R% P, n* }5 U
- (setq len (strlen tmpstr))
6 M* T- b$ D$ p/ V
" I) E* v8 a9 V- (if (> len maxlen) k: k$ m4 A7 k/ Y) A/ m n# `
- (progn
; i- m+ @, R/ L/ H: Q3 c/ i) q) n: M - (setq maxlen2 (/ maxlen 2)). r" H; k1 z" X, f1 \
- (if (> maxlen (* maxlen2 2)); r$ R4 M) [. K3 K. o6 n
- (setq maxlen2 (- maxlen2 1))5 @: i( J( W* Q, P& k5 k2 D9 j
- )% _9 D3 h8 W1 f) |
- (if (is_lead_byte (substr tmpstr (- maxlen2 2) 1))
! N% Y7 E/ c e0 M7 |+ u& Q! R - (setq tmpstr1 (substr tmpstr 1 (- maxlen2 3)))/ _# k: z# U) X7 j1 b4 Y
- (setq tmpstr1 (substr tmpstr 1 (- maxlen2 2)))
5 S4 b3 X: e3 O* j - )
% a! V6 x% O& A% X4 d" B - (if (is_lead_byte (substr tmpstr (- len (- maxlen2 1)) 1))
* G# s7 d! v' @& V - (setq tmpstr2 (substr tmpstr (- len (- maxlen2 3))))
9 ]$ C+ x+ R3 O* o# @+ W! w - (setq tmpstr2 (substr tmpstr (- len (- maxlen2 2))))* D% i( Q9 n3 i9 E: H
- )
# [2 |6 b, }' \* F- T0 e5 { - (setq str2 (strcat tmpstr1 "..." tmpstr2))
& m9 l- q% h w. M. J- O - ) ;;; progn6 c$ f H( [& O' t
- (setq str2 (strcat tmpstr))
' Q y' t E- E - ) ;;; if
. k+ D) \( G1 Q" t/ \$ ]1 W6 X - ) ;;; defun
4 U8 \& m/ J# h( h* A# s - ; S+ ~( s+ E1 ]+ ?9 ?6 S
" k% V" p% A6 U2 L# b4 P8 w: h% U- ;;;3 S7 ?# \- n! g+ l$ {3 {: _
- ;;; If the first object in a selection set has an attached URL7 ^/ ` E7 l/ p: T( w' Q$ J: P$ A
- ;;; Then launch browser and point to the URL.& `. N% J* |3 L# S" m
- ;;; Called by the Grips Cursor Menu
8 H* D' T( X3 y - ;;;1 ^* @1 @5 }; q6 n
- 3 d( G0 L0 u2 J* ~
- (defun C:gotourl ( / ssurl url i)
- v o$ n5 P# O! l* Y9 } - (setq m:err *error* *error* *merrmsg* i 0)
7 A5 Y& I! \) y0 v6 z - " N) c2 N2 |6 Q4 {! Y
- ; if some objects are not already pickfirst selected, ! X5 | s& f+ |* q% b; Y$ k S+ k: e
- ; then allow objects to be selected5 f; H( k) A' G
- 7 ~5 M, q6 P' X4 q" r& d
- (if (not (setq ssurl (ssget "_I")))1 w: |. z9 G7 X: |
- (setq ssurl (ssget))
/ m& Z; V! c) w9 C - )0 e! Y' {" I: v* e" q. x
" k. A5 f$ U) x- ; if geturl LISP command not found then load arx application) b0 z9 Z1 D: ^- I9 k- p/ Y5 T
- ( }" n' m- Z' ^* Y' I
- (if (/= (type geturl) 'EXRXSUBR)8 W# @( N. b' W$ G3 \0 ~, y
- (arxload "dwfout")* N# E- t5 s( n; A0 R
- )3 m) j2 ]; l5 b& ~
- , s! t- f6 h$ |0 i' ^' P
- ; Search list for first object with an URL6 E- K' e* }6 @4 E5 O8 D! _4 v) N
- (while (and (= url nil) (< i (sslength ssurl)))* g/ D* z; U& C6 X7 I
- (setq url (geturl (ssname ssurl i))
% I# U6 {% V- J - i (1+ i))3 y, L0 ~7 i* ~& y$ y- |
- )2 s8 x* x5 X, {) S3 p% ^+ X
- 9 L) Q: e8 w/ l X6 W
- ; If an URL has be found, open browser and point to URL
; \, S' S5 [ o/ p3 r( ` - (if (= url nil)4 G5 i3 L4 D3 }, R
- (alert "No Universal Resource Locator associated with the object.")
5 |2 `+ c1 {' {+ E, w( l - (command "_.browser" url)
8 [" z) v. G* g - ): W. c! M6 E& ^ n3 A3 Y" m* ]) s
- " J/ I8 ~4 d6 U; n' C/ w
- (setq *error* m:err m:err nil)( c! `1 ~3 K1 _7 I
- (princ)
- i" t3 w4 `/ s - * h* z: u R i$ m
- )- V9 C" ~/ i. ~: F& I
- ) `3 t. t9 \1 A
- ;; Used by the import dialog to silently load a 3ds file
- y) A. x; x& _7 o, P9 s - (defun import3ds (filename / filedia_old render)
# l, s8 ?( V3 f - ;; Load Render if not loaded
6 c; U: }3 p( [& d - (setq render (findfile "acRender.arx")). U a4 J+ B! l8 d3 e
- (if render' N5 R; n; B! ?0 B) W
- (verify_arxapp_loaded render) % k; k c8 \# d L- a$ M
- (quit)% [4 r3 r( j5 w5 r/ Q; P
- )9 R* ]2 a+ N+ F
- 3 \, d9 s( s' Y" M
- ;; Save current filedia & cmdecho setting./ `7 y2 q }7 e- C' O4 n
- (setq filedia-save (getvar "FILEDIA"))3 r) E( a9 B- Z4 C |4 B' @
- (setq cmdecho-save (getvar "CMDECHO"))
3 ]& B8 c1 o1 D4 ^9 a! A - (setvar "FILEDIA" 0)* z5 T: C5 v& e
- (setvar "CMDECHO" 0)
- z; T! \: N0 s% h, \- c, a - 4 K' N' h- i: s1 D: r# h3 k
- ;; Call 3DSIN and pass in filename.' [+ v" M, q& W1 r6 y3 C
- (c:3dsin 1 filename)
r- d4 ]) b q" T9 M3 m
& x' }! L+ x) w# f- Y. N$ M0 U5 Z. S. W1 ~- ;; Reset filedia & cmdecho: S5 u9 {0 D5 L! C$ }9 Z& Q
- (setvar "FILEDIA" filedia-save)
8 M W7 L' r! p* f6 I - (setvar "CMDECHO" cmdecho-save)
8 j2 m6 a& [' d* g9 d. L: |0 w - (princ)
. W7 y% r" W+ N. o) Q4 n9 D- ^ - )* }0 B% [$ O, r* `1 j: W, Q: r$ N
! a2 U3 w: _( i- 7 q H2 n) Z1 E
- ;;;=== Menu Functions ======================================. }& w+ ^& K' v, I" @8 \
- * v: t; X; g4 I
- (defun ai_rootmenus (). J% w* e' m% H& @7 Z8 M7 L
- (setq T_MENU 0)" h, g0 N6 p! F w& n2 M
- (menucmd "S=S")& ~/ \9 g/ _# b4 P
- (menucmd "S=ACAD.S")
- e9 _: [+ e1 L. `& k$ C8 Z - (princ)& q5 {4 m9 o) q' }% t
- )1 Y* a( E* A6 B' t
3 g. A0 I& T) A- (defun c:ai_fms ( / fmsa fmsb)
6 g5 Y5 @+ }- x3 z - (setq m:err *error* *error* *merr*)
, S# H6 c4 m+ S8 Q1 D( `; x - (ai_undo_push)
" {. w; _( Q3 |) I2 I: e+ o/ {6 j - (if (getvar "TILEMODE") (setvar "TILEMODE" 0)). Q. \. ?* P1 O
- (setq fmsa (vports) fmsb (nth 0 fmsa))+ J" c6 O) s0 K) l% K& U! |3 D
- (if (member 1 fmsb)
1 |" E0 o" @1 @1 n - (if (> (length fmsa) 1)
: t7 M9 c8 z0 s! ^2 o - (command "_.mspace")7 H( g$ B: f+ _5 \/ d! x! w. l
- (progn% \8 E; K. O- T' F
- (ai_sysvar '("cmdecho" . 1))
& _" v5 h0 F# B. Q$ N; y - (command "_.mview")
+ [- i/ d: N" J! E - (while (eq 1 (logand 1 (getvar "CMDACTIVE")))( q( Y- q7 `+ B i3 n/ A- X
- (command pause), x2 Z. e# w* M* B2 Q- r9 V
- )
4 \8 n# H+ O8 J8 J( a' Y: n - (ai_sysvar NIL)% {% s: }) @. V
- (command "_.mspace")
7 \/ Q# z4 }/ |' `# M4 v* T# @ - )1 d# S# m |2 H: J4 Q
- )
% O2 m# o9 a* |2 U; g* `; l# j; i" l* d - )# ~! g) W/ h. b, {; I6 V& d
- (ai_undo_pop)
$ L5 E* h+ k) S - (setq *error* m:err m:err nil)
) E0 n7 l9 n# A% T4 \ - (princ)2 u* a0 J) O$ K$ J2 r& A! |) b
- )
\8 s+ \ {' X" A6 } - " a+ \8 w! U6 T- H5 |
- (defun ai_onoff (var)
% q3 R! J' O4 y1 B. ` - (setvar var (abs (1- (getvar var))))- G: d! S) h& a* k4 N+ t& i2 ^3 K
- (princ)$ F# N) w( h# P8 z
- )
! c) C) M: a0 }6 |' N1 l - 4 j; Z& \, B! X! X0 N
- ;;; go to paper space
$ p. L: b8 i, M - (defun c:ai_pspace ()
3 _/ G8 @* j- z3 W& g3 z2 k - (ai_undo_push)
: E6 w, W4 u! r9 v0 ]6 F - (if (/= 0 (getvar "tilemode"))
8 j6 Z/ R- q! O! Z" o: D/ _ - (command "_.tilemode" 0)# k% o/ X/ p0 F8 J5 w* q: y
- )) V: N( H% v. Y8 J2 F2 }% G
- (if (/= 1 (getvar "cvport")). J" V2 M% r; a7 `, m& q
- (command "_.pspace")
0 k/ z( h# Z, h( F - )' o+ t3 f' D# c$ z$ c6 K3 F
- (ai_undo_pop)2 b0 G- N# E( U
- (princ)( j. ?% d2 @3 t; _
- )
9 C) T& j H8 g0 e/ O3 {
( s( C) b" d4 C$ D/ O/ `- ;;; go to tilemode 17 C' H) U+ D5 A# N
- (defun c:ai_tilemode1 (). |; I0 ?) _+ g o; ]. |
- (ai_undo_push)
# I1 @; N6 W2 b" J0 z - (if (/= 1 (getvar "tilemode"))
& a. j# i1 d" L# Z6 d# U6 g - (command "_.tilemode" 1)+ L2 G" T" {# s: t- d
- ). P/ H: }4 K+ q, N* i6 v1 \) r
- (ai_undo_pop). L U# y; b% d7 d7 W7 R3 o1 S9 n/ @
- (princ)% A/ R* J# x4 x& {) q
- )7 R$ ?. b1 t% h* h4 \, n- }( A9 @
- ) w' d/ W0 e& y( f; Q$ x
- ;;; Pop menu Draw/ Dim/ Align Text/ Centered
) R. V$ v n9 f' u - ;;; Toolbar Dimensions/ Align Text/ Centered
1 k- s: O6 `3 j6 j1 ^& t& ^ - $ o0 U6 N3 y" I% I
- (defun ai_dim_cen (/ ai_sysvar ai_dim_ss)4 w# Q" j3 y Q! f/ t X; r1 V
- (setq ai_sysvar (getvar "cmdecho"))
2 Z# G( Y9 } g" J% K1 \6 Z - (setvar "cmdecho" 0)$ ?! h3 {; Z$ ~+ G. k6 S
- (cond; F6 p4 v9 q6 A* j* Q; D& ?. l2 P
- ((setq ai_dim_ss (ssget "_P" '((0 . "DIMENSION")))); r5 Y5 H0 A( R2 D( m) B7 x
- (command "_.dimoverride" "_dimjust" 0 "" ai_dim_ss "" 2 ^; \# O+ W- Z9 c9 R( H) }6 E+ J* n
- "_.dimtedit" ai_dim_ss "_h")
0 Y/ K) f2 ?! {2 l1 a" U - )
, x. \) N; s7 ` B7 { - (T nil)) t, H7 v1 h4 k% u, m2 _2 Y; Z! f9 C
- )
% ]0 _" {2 \" [& ~ - (setvar "cmdecho" ai_sysvar)
+ B# _1 C4 u% ~6 {' K8 B - (princ)' b( d4 s9 j1 Y1 o3 P# H
- )
! Q0 y8 R1 w8 Q, |
( W# A3 H2 X* n9 ?% R( H- ;;; Shortcut menu for Dimension Text Above : b& d: \, [( b8 L2 z/ V
- % ]' e. Y7 {3 g. C9 o2 }5 ?6 ?
- (defun c:ai_dim_textabove (/ ss)% X7 w! }) N$ h9 O( f" f
- (ai_sysvar '("cmdecho" . 0))7 D3 b/ g2 L( X* O1 I+ `
- (if (setq ss (ssget "_I"))
& Y7 |6 m5 q# @0 Y+ d+ F2 f - (command "_.dimoverride" "_dimtad" 3 "" ss "")
+ G! _2 o; b; d9 Q1 R% X M - (if (setq ss (ssget))
% |; N$ b4 e& r+ k2 e - (command "_.dimoverride" "_dimtad" 3 "" ss "")
0 H0 Q, m: [$ L - )
7 A" l& X: F# A8 Y4 m- y- X& m" g - )3 a6 \) s5 j6 _) d
- (ai_sysvar NIL)% d7 P2 R g( d( z% S: r7 o* y' u. h
- (princ)
6 {3 T! V( K3 T* ^# ^) X b: J - )* B7 a' ^) @) v5 ?+ u, ~" d
* K V- P( g8 C$ O, v3 P9 J- ;;; Shortcut menu for Dimension Text Center
3 L4 r* m$ t+ Z; V) L
/ e i) s- z4 V1 s- h- (defun c:ai_dim_textcenter (/ ss)
$ j) S( D. Q# L# A# N* d& @0 u - (ai_sysvar '("cmdecho" . 0)) Q% @% w( E# I
- (if (setq ss (ssget "_I"))
' ?: ^% a. N# L: Y - (command "_.dimoverride" "_dimtad" 0 "" ss "")4 i% S8 o" d- q! A
- (if (setq ss (ssget))
% w& e% |2 I, ` - (command "_.dimoverride" "_dimtad" 0 "" ss "") 1 t- O& A. _3 [& p$ ~; I/ l
- )7 b( B6 W6 E, E5 U) C0 C" L4 E! v
- )4 |8 M! ?2 e4 C
- (ai_sysvar NIL)& _5 z" ?5 N4 j* k) x/ G
- (princ)
$ l. X* i9 d/ ^, G5 { - )8 T# S* q$ Z/ a' Z4 u
4 F3 ?. A1 X7 o* e7 Q: J, Y- ;;; Shortcut menu for Dimension Text Home % o9 w* O+ M; U+ B' ~9 m) N* q. R
/ V8 B( v& T3 S* o; Q- (defun c:ai_dim_texthome (/ ss)
4 F6 H8 [' b8 ~ - (ai_sysvar '("cmdecho" . 0))
/ r( d7 I1 Z( P' I7 u - (if (setq ss (ssget "_I"))
7 }/ _+ Q/ i3 z$ g& K6 A - (command "_.dimedit" "_h")& E5 x0 _2 p3 q+ H U' R3 g, J
- (if (setq ss (ssget))6 ^" n& m- v0 \. A. n p1 f
- (command "_.dimedit" "_h" ss)
3 b9 R" b; d( M* M - )
3 G8 r. c' Y0 L# j - )
- L& N( u/ }* k' V- K: ] - (ai_sysvar NIL)
; I: T9 q, ?- n2 F% W3 L - (princ)
( Q1 F1 H/ j0 v7 a - )' Q, ]% U' ~1 T: [
8 ]" \1 ]) ^. i" ]9 a) }: G: M- & R: W# ^' S% W& p4 x# m
- ;;; Screen menu item for CIRCLE TaTaTan option.3 _0 X1 A& N- x2 O# E& K
- ;;; first, get points on entities0 ^. `! n3 w$ v6 {! ~4 w, N7 g
- (defun ai_circtanstart()/ w$ F5 s, b) T1 L2 }) |" o9 |
- (setq m:err *error* *error* *merr*)
- z. T' X. p5 z- ^3 p$ e0 r - (ai_sysvar : u; i& ~5 J7 y4 Y; c
- (list '("cmdecho" . 0)
* f2 R4 H. [: U: q! \0 W2 g - ;; make sure _tan pick for CIRCLE gets same entity
3 g' g0 M, p( l$ t - (cons "aperture" (getvar "pickbox"))
1 P- z+ N" w$ ~; L& P) J - )
% a6 D0 P3 A" C - )1 N. t5 w0 {& i; Y; h# E
- ;; prompts are the same as CIRCLE/TTR command option. r/ E, P+ _' @ t
- (setq pt1 (ai_entsnap "\nEnter Tangent spec: " nil))3 B- u& p' ~1 M9 P @
- (setq pt2 (ai_entsnap "\nEnter second Tangent spec: " nil))- h& [9 I2 P! n, q) M: q
- (setq pt3 (ai_entsnap "\nEnter third Tangent spec: " nil))
. u/ ]* A/ {" T4 o7 `* Y - )
; O5 ]8 X+ f! y9 h - ;;; Command-line version
$ n: `! r- ~* i - (defun c:ai_circtan (/ pt1 pt2 pt3)
. j5 x( k/ C- [" R, L* ]0 } - (ai_circtanstart)% k* Z h- _6 C3 {" p9 m5 _' }
1 Y. z @- u1 P* n& f( b( Q' B- (ai_sysvar '("osmode" . 256))4 f$ i. r, q' L) P/ L# |5 G
- (command "_.circle" "_3p" "_tan" pt1 "_tan" pt2 "_tan" pt3)/ S/ G6 G4 Z4 a, @1 j
- 6 t: K8 A% c4 ]7 R# E2 E- ?1 @
- (ai_sysvar nil)4 ?2 p' h, o; B3 I& y* s) d2 C- E
- (setq *error* m:err m:err nil)+ |0 [: z; t" s0 K: a; @- n
- (princ)
5 ~) {6 [& o5 p( V' z) q: I - )/ U" @7 a) _! r3 X3 J& c) s" B3 d
- ;;; Use this if CMDNAMES == CIRCLE; I3 J5 A- ^6 @, U; R) B% H' A
- (defun ai_circtan (/ pt1 pt2 pt3); C" ^2 F& V1 P4 s
- (ai_circtanstart)3 e7 b; w, J- D8 W
3 S, `* M) D, f# L7 [6 S6 f- (ai_sysvar '("osmode" . 256))3 T# O2 ~7 B5 e* Q& N9 ^% V+ u- x
- (command "_3p" pt1 pt2 pt3)
2 |' z. z7 h- l$ ?* z+ w -
]% [. u) b7 N0 b! A O - (ai_sysvar nil)
& D2 N W, ?5 R g- n- z! ^' u - (setq *error* m:err m:err nil)3 t1 `- _+ q% G3 S- S
- (princ)
3 q$ {& ]: g5 v/ d7 \ - )
. h8 ]5 N0 B1 @' Y& ?
' H4 ^: ?7 d+ Y
2 \$ u. ` K/ O1 `: g2 R& R- ' a/ j$ o2 \: a# {" p% M6 L# ^
- ;;; Shortcut menu Deselect All item.
! Z) |# [ V2 d$ J% q! X" ] - 6 m3 F! Y4 q$ P. q6 a5 p* O
- (defun ai_deselect ()3 D+ H9 e/ I. m8 c$ A: @* { J
- (if (= (getvar "cmdecho") 0) ;start if
6 f; b0 \4 ?+ e ?5 B" Q- L" r; S - (command "_.select" "_r" "_all" "")6 [; V W/ m$ B- C- f
- (progn ;start progn for cmdecho 15 C, x. x- N9 C# W7 }9 U! r
- (setvar "cmdecho" 0)+ R: [% A2 I! _1 x6 b
- (command "_.select" "_r" "_all" "")# V& A$ l- N# ~' ~ G0 m7 m
- (setvar "cmdecho" 1)
7 W J. B9 {9 ]( y" M - ) ;end progn for cmdecho 1) o+ J n6 u( ?- e* {& A
- ) ;end if- B! M0 z' T, K
- (terpri)
- o7 G* Q" Q# m! I! u6 X - (prompt "Everything has been deselected")
% h6 W4 n6 R4 y3 Y* R - (princ)
8 b0 ^: h6 K( |/ u: ~' | H& K& ` - )
7 }" H+ x+ ]5 W, s - 4 F* V+ k* K6 z- m. ^# z; p ?
- ;;; Command version of ai_deselect to be called from the CUI
3 I) e# z. e; C/ b* @ - ;;; so it gets properly recorded by the Action Recorder7 \) E! A$ _) L Q; g% P, F
- ;;;8 f S$ @8 X# @" h/ V& q! m
- (defun c:ai_deselect ()
4 K8 ?5 R. K0 w' i$ S6 E; y- z - (ai_deselect)( q) ^! V1 S: \
- (princ)
5 v! _- K+ o0 B Q - )
. d1 y1 [% i0 x" @7 ^9 B* b
+ q4 p0 u; s$ d; Y* w- ;;;
6 d. C5 t% P1 N5 V8 c6 ^" j - ;;; Enable Draworder to be called from a menu" O1 O# ~0 f4 e3 v+ H
- ;;; Checks for Pickfirst selected objects: j' }2 h8 G1 y
- ;;;8 i; X3 S [' w; H
- 7 U* y: B* o& l4 e( m
- (defun ai_draworder (option / ss )$ J0 ~& B5 R" R' e p7 W* V
+ [ S3 Q* x0 Y. B; r8 F- (setq m:err *error* *error* *merr*)( O0 c% h/ x, Z+ `& S$ _( g# x
- (ai_sysvar '("cmdecho" . 0))
1 Q( b4 O* v) U/ t
- E/ e0 S! {+ w+ e3 @- (if (setq ss (ssget "_I")); i8 J7 ?- C9 Q/ V3 w' u
- (command "_.draworder" option)
8 ]# h+ p6 n2 q% F' ` - (if (setq ss (ssget))
; r6 ~$ t) S$ a) T - (command "_.draworder" ss "" option)
* i3 M$ Z D5 A1 x, _- \/ q* x4 C - )" M& v8 C/ d; J. Z9 F
- )
. ]# z# ~, K5 A5 B: V+ q - (ai_sysvar NIL)3 W0 {3 Z* R; c1 {5 o+ N6 ?% g
- (setq *error* m:err m:err nil)0 D5 w! i+ P6 h* g f! {, Z7 D
- 0 v* e9 o, v7 J
- (princ)) c. s6 X9 ?4 U5 n; w
- )! i4 b( v' |6 B/ i
* Z( D) `$ \ v9 T& U- ;;; Command version of ai_draworder to be called from the CUI
# ^! p/ G- _( {$ [9 ]- B9 D - ;;; so it gets properly recorded by the Action Recorder& [+ A6 L+ U* i H2 H+ e
- ;;;! B3 z6 i$ |" I1 y8 p
- (defun c:ai_draworder (). ], }* V" K9 o/ Q4 [* {
- (initget "Above Under Front Back")
' ~! R- [+ t) R& `. i" s" S& e7 E - (ai_draworder (strcat "_" (getkword)))6 s9 u# e# G# l+ z. c1 s, J
- (princ)
7 i6 L7 w0 @7 v% j' J+ r7 _; u - )
3 Q" p4 G9 R& C - : J, M1 B' J2 {
- (defun c:vlisp ()/ V- e( T% s/ t" `1 y5 Y/ w' {/ Q
- (if (/= nil c:vlide) (c:vlide))
" j9 o, G7 X4 y( r# c - )* R4 K+ ^ x$ u5 V" g- U( J
- / f8 o3 Z* B$ k: a$ n
- (princ "loaded.")2 h; W' ?: @. }9 e1 Z# M2 F
, V* e* F, w) n9 a- ;; Silent load.7 F# Y# i+ i! H, x
- (princ)
0 o# F5 D0 B! c/ r, V& m - 5 M& C; \' W. l% K, w; I
- ;;;----------------------------------------------------------------------------* J2 |, D0 n. z* J5 ?. c
- ;;;
N8 R3 u: J1 r/ r - ;;; DDCHPROP.LSP Version 0.5
0 f( U$ k3 @' D: F6 s; U - ;;;
, L0 p; g2 B" W - ;;; Copyright (C) 1991-1993 by Autodesk, Inc.1 i v/ U; C7 \2 q
- ;;;, |) Y% B- P, g$ h9 @( w. I
- ;;; Permission to use, copy, modify, and distribute this software# j, x( x! m( B) Y% u( b
- ;;; for any purpose and without fee is hereby granted, provided4 [0 R" U1 F0 W/ X$ R4 P/ W
- ;;; that the above copyright notice appears in all copies and that
. x2 Y9 S$ O! ~3 O - ;;; both that copyright notice and this permission notice appear in
) a3 {1 K$ _$ `) {3 p7 z - ;;; all supporting documentation.
) R$ s1 N, ^5 a, y: Z4 _& h, f - ;;;( a4 o2 C1 O0 x1 f! s
- ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED2 X( C$ e1 L# ?4 v0 o; B. c
- ;;; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR; d' }) q! M! E: {( j
- ;;; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.
/ x# w8 s/ I4 g1 }7 F$ r9 x - ;;;
4 c+ }2 W( i3 r - ;;; 2 February 1992
! M. V H) {& i/ W5 E - ;;; " m8 a4 y2 q0 p& H! n0 f. [
- ;;;----------------------------------------------------------------------------
0 q$ q$ G+ w- \4 i0 [ b+ e - ;;; DESCRIPTION
6 Q1 |7 {( J i5 i - ;;;---------------------------------------------------------------------------- t8 M8 m, r& n" K
- ;;; C:DDCHPROP is a dialogue interface for the CHPROP command.5 B8 A& {+ |. S
- ;;;
, ]# ~& J. |/ v" r* W; }" m - ;;; The command looks similar to DDEMODES. The main dialogue has an image
4 l0 u& A( N- ]. P3 c, f - ;;; tile, 3 buttons (layer, color, linetype), and an editbox (thickness).
Y& w, T2 z, D; _ - ;;; The 3 buttons each launch a sub-dialogue containing a list and edit box.
" |# X' V% S7 h @3 v, w, B, ? - ;;; The dialogues are all defined in the DDCHPROP.DCL file.; z" @6 }+ O U0 j6 U! @
- ;;;8 w" s# S* Z) H
- ;;;
$ H: Z# O& `# e, e% R - ;;;----------------------------------------------------------------------------! T7 J( j& Q) M3 |
- ;;;----------------------------------------------------------------------------# {) Y3 d A! \" q
- ;;; Prefixes in command and keyword strings:
8 m6 b0 v/ i+ p: V* x/ y5 T - ;;; "." specifies the built-in AutoCAD command in case it has been
; l, W7 W/ k k6 y - ;;; redefined.
; I# v0 f, B) y) F! S - ;;; "_" denotes an AutoCAD command or keyword in the native language
/ Y4 p: p) ]7 e; w" D3 x: B - ;;; version, English.0 ?" E' _" \0 G0 p8 q" H
- ;;;----------------------------------------------------------------------------
& J; ~) y0 a+ Z: Y7 W# R - ;;;8 u% u. N- e# b( e* J& j
- ;;;
: ~% P# W+ @+ {" M& a0 C' G - ;;; ===========================================================================& i* G( S) G# z% V) i( j
- ;;; ===================== load-time error checking ============================5 H& O! M M; X% E
- ;;;
, T: d: }$ R- }: Y' A, J
- c2 s' ~7 f: V. X' e. g* |* a- [- (defun ai_abort (app msg)
" h5 Y8 B! [" d0 _ - (defun *error* (s)
) }% R! k) W& c3 Y9 [/ ~* W3 K3 Q: P - (if old_error (setq *error* old_error))
; q/ R: V8 s: P6 r4 @+ U - (princ)
! N. b& _$ O, J: b3 c% N7 S1 Y - ) y1 ^ M( R7 L# R
- (if msg
( |' C. f p: F5 ?; u - (alert (strcat " Application error: ", [& c- B- M6 k5 i( E
- app7 [) S: m2 _2 ]. I! ]
- " \n\n "
( b Q2 h$ O3 D: ~1 x - msg
$ G+ u9 @& P5 X l3 D - " \n"
9 h; a8 X( W3 d- L0 N! u+ v - )
- ~( @& I5 J( e4 c) I* @ - )5 s1 k" d. f7 X0 d
- )& E1 @0 L5 H- R
- (exit)! c2 b; h3 W$ L, \
- )
5 k+ B4 W5 N; n) ?# r5 B. P - : q2 |, }' ~) D- B# ?+ G
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
x/ `+ o9 C( H# P+ w: k - ;;; and then try to load it.
5 n* O0 B: p0 _' R) F - ;;;7 ^! v) P; F L1 s
- ;;; If it can't be found or it can't be loaded, then abort the0 M. V/ g' ^# M2 t9 C- ]! R8 K: J
- ;;; loading of this file immediately, preserving the (autoload)
" Q! T7 V2 J- v6 M9 B - ;;; stub function.: ]; M6 ]9 s, Z! v, q
/ r, t; t1 [6 ^! h- D0 i- (cond
/ h8 ~! d9 J" W, a3 t, q7 w# M - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.% P2 x6 j" w9 R% a- d' E# i3 \" k
- ! J# C- f# ~8 [+ A% ?" l
- ( (not (findfile "ai_utils.lsp")) ; find it$ L* A8 L( [- l" `1 s
- (ai_abort "DDCHPROP"* W9 B$ c& v/ _( O1 C" O
- (strcat "Can't locate file AI_UTILS.LSP."4 G+ N4 h2 I3 b* z6 Y- c
- "\n Check support directory.")))
X3 L6 B" R$ k; P; ?# o, e6 U* |
, j/ V7 ?- I" f3 F5 d* Z$ p$ Y, H" k) B- ( (eq "failed" (load "ai_utils" "failed")) ; load it
, x4 }" D! |; h2 e& `/ s - (ai_abort "DDCHPROP" "Can't load file AI_UTILS.LSP"))4 |4 T2 J/ k" z; z
- ). F9 g N" V8 x( ^9 e2 e
* v8 |1 C# k# B2 o1 J- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
8 M9 ^& d$ a6 u3 d! v% z { - (ai_abort "DDCHPROP" nil) ; a Nil <msg> supresses: s" V8 [8 y9 W+ _
- ) ; ai_abort's alert box dialog.
3 l# x6 o3 A% f3 B9 a
" W" ?5 o' {# o: m, H- ;;; ==================== end load-time operations ===========================; F% z7 h/ V9 K; _
- a* \+ h9 q/ W" A! a$ t2 Q3 N5 v- ;;; Initialize program subroutines and variables.
" ^! M4 l/ ~! y: g, v/ { e' N - & ^( L& N4 N0 L* E2 M6 j
- (defun ddchprop_init ()8 N! m) _) G' r; S* L0 }$ V+ W0 ^( y
- " d: G! X9 A& u' x! q& a6 i
- ;;4 u. w: {( E# L, z% ?" b. n
- ;; Define buttons and set values in CHPROP dialogue box $ g z" @; H7 f) i- P
- ;;; L6 l6 n2 k" s6 D# i
- (defun call_chp ()
8 q; s3 `0 `$ s# N - (if (not (new_dialog "ch_prop" dcl_id)) (exit))
2 h K9 s5 j9 J& q! b - (set_tile "error" "")
) o2 k/ T) g9 h0 d5 K - ;; Set initial dialogue tile values
4 b8 s! L4 l* Y% ?" M) r - (set_col_tile)
9 S$ d3 @ F; e# w% y' G - (if (= lay-idx nil). x" T% I. j( J
- (set_tile "t_layer" "Varies")
- K# c( _- l: ^" S - (set_tile "t_layer" (nth lay-idx laynmlst))6 K- b: \6 y* x* J* F9 f
- )
7 F# n- H+ ]8 G8 T- V - (cond
$ U( @1 m9 I8 i: f* v/ w) d d3 S" y+ q5 Q - ((= lt-idx nil)
# P# D4 y/ }6 A0 y - (set_tile "t_ltype" "Varies")
) G' d" c" E! ?6 Y1 _8 M - )
0 F* |5 k& {; k7 n# Y - ((= lt-idx 0) ; set tile "By layer & layer linetype"
Y3 Z) k+ g" V - (set_tile "t_ltype" (bylayer_lt))5 d0 \( a0 |* K* t0 w% O1 g# G& e0 w
- )
! I/ n/ s" z i& J0 c - (T 0 X3 w6 c: I% p9 C8 _# v2 b+ G. p
- (set_tile "t_ltype" (nth lt-idx ltnmlst))" O$ u1 h+ v% L7 A/ X2 j$ \
- )
/ z O) V9 Z2 d$ Y1 _3 o0 q - ): Q' k, [$ w9 }9 h* I: d
- (if (or (= ethickness nil) (= ethickness "Varies")): o6 E3 ?5 o$ G) R
- (set_tile "eb_thickness" "Varies")4 r3 I- \ `; U4 N/ s% {
- (set_tile "eb_thickness" (rtos ethickness))
5 ^& \& K/ C+ }$ j- m2 o - )2 F: s1 {) Q9 ?; e9 \4 ?+ j4 O6 s
- ;; Define action for tiles: f m4 T4 i4 G9 E
- (action_tile "b_color" "(setq ecolor (getcolor))")
% ~. g% c! Q4 i+ d4 i- p( D- } - (action_tile "show_image" "(setq ecolor (getcolor))")8 `, I& N" v- [8 B6 T. k
- (action_tile "b_name" "(setq elayer (getlayer))")
) H5 d8 z+ ], s# W - (action_tile "b_line" "(setq eltype (getltype))")
6 p$ j4 h/ y) R9 ~0 N2 c5 r8 B - (action_tile "eb_thickness" "(getthickness $value)")
' c, W2 \: {$ B+ `0 M8 P% | - (action_tile "help" "(acad_helpdlg \"acad.hlp\" \"ddchprop\")")
@3 Z1 |7 r0 G6 }2 R+ C% T - (action_tile "accept" "(test-ok)")
" W' ^7 k6 Z, z9 r - (if (= (start_dialog) 1)2 V3 P: n" g& H4 _' n/ n# I7 ~
- (progn6 @5 D+ j `! I( n* e& Y
- (command "_.chprop" ss "")
, l1 q, {% w3 A - (if ecolor
" i7 W0 b0 x0 n u - (progn
( M N$ B F' b- X - (if (= 0 ecolor ) (setq ecolor "BYBLOCK"))# t# O+ A: u% I' [8 P8 y1 X3 x' A" b% G
- (if (= 256 ecolor ) (setq ecolor "BYLAYER"))- f- J; ^: @7 S1 U9 t) x
- (command "_c" ecolor)
5 \4 x9 \1 `& C - )
. c, \* J8 ^# X% d/ Q - )& Q9 X& M- E) b& {) T5 x
- (if (and (/= eltype "Varies") lt-idx)3 m [3 {+ u6 O5 p2 o! n* t
- (command "_lt" eltype)
' b9 M* J! m1 ?8 U- [ - )
9 t4 [! d: ?1 k1 F/ h9 l - (if (and (/= elayer "Varies") lay-idx)
& ~: ?0 z5 @# U* |" `& I - (command "_la" elayer)' }- F% b9 A. r3 O$ S/ j! b
- )
8 J8 h+ A+ i. d4 Q - (if (and (/= ethickness "Varies") ethickness)
1 r3 F* o" Y: E# X' N - (command "_t" ethickness)0 {0 r2 H) N; B% Q
- ). W3 U! P- z, f+ q% i4 `3 X
- (command "")8 j" d$ ?. ?. y D
- )
! J+ K% S, g1 X! C: | - (princ "\nProperties unchanged")# P6 d! S$ k W4 l3 t
- )/ F4 R3 [8 u% D5 S
- (princ) |- R* p) @, \! O( `, y
- ) B2 n+ q' s- n+ y. ~9 j
- ;;
& \/ M/ k5 X( `6 s5 q4 _ - ;; Function to set the Color text tile and swab to the current color value.
' o' R0 j4 J7 l" B8 M- k( l - ;;; Z% f% |' j, r+ w
- (defun set_col_tile()
; e1 b4 ~' I7 _) ~% c& V0 Q$ d - (cond
2 ^7 e% S b+ N - ((= ecolor nil)
: n( }2 J r0 h* O - (set_tile "t_color" "Varies")
( K: H8 [' ~( [; \- b, x5 _ - (col_tile "show_image" 0 nil)
^) L) U: D( r& V - )
; D1 x: r$ i6 z7 o. s$ i - ((= ecolor 0)7 C1 B$ |3 Z: O
- (set_tile "t_color" "BYBLOCK")
5 z3 Y: a2 {1 ^8 B+ b( S0 ? - (col_tile "show_image" 0 nil)
% h8 v/ [% A+ E) L% Z5 D* ? - )' F& V3 U% K$ T6 ]; ?
- ((= ecolor 1)
% R: T6 y! i7 N; ?# ` - (set_tile "t_color" "1 red")1 x$ B; g6 I' q
- (col_tile "show_image" 1 nil). T+ {" [9 Q9 X. _) e+ A9 _+ {
- )
]: E! S* @+ |* G' A+ R& ^ - ((= ecolor 2): U. j& q; @1 R# R2 L
- (set_tile "t_color" "2 yellow")
- O6 i. B: L D) M; A" S - (col_tile "show_image" 2 nil)
+ f2 u3 G$ O1 r2 T0 u: T0 ^6 X - )/ s3 o1 e: f! [
- ((= ecolor 3)
$ Z- i/ y+ r/ ?% H - (set_tile "t_color" "3 green")% A+ O! _- T& m( T) f& @
- (col_tile "show_image" 3 nil) C9 @: E: }6 v H2 ~' N
- )
8 d; V5 D0 E1 y. }- u/ l - ((= ecolor 4): @% Q l" u; R
- (set_tile "t_color" "4 cyan")7 L, W8 q' Y* y) c, r# z
- (col_tile "show_image" 4 nil); b; e# B3 j8 i5 [; x/ _3 ~1 [( a
- )
9 e- N ]* O6 i7 I" x2 G7 y# I - ((= ecolor 5)5 s ?0 }& o! A
- (set_tile "t_color" "5 blue")5 E0 c6 h1 i% Q5 Z0 C0 ~
- (col_tile "show_image" 5 nil)
; ?2 \& w5 r& Y0 k - ); h, n5 q+ l9 Z/ U
- ((= ecolor 6)$ U1 r" l8 a- n6 d9 n- m8 [
- (set_tile "t_color" "6 magenta")+ Z6 |' i& d+ D
- (col_tile "show_image" 6 nil) O3 ~5 h( Y0 e: D! d9 c( E% d
- )
, q: Y2 U0 g( T" j' e6 m - ((= ecolor 7)/ d4 }5 t5 ?% W, c |
- (set_tile "t_color" "7 white")5 v2 x, Q2 }- b6 b
- (col_tile "show_image" 7 nil)5 Z. [# L. O- J$ {
- )6 I+ g+ \6 P: ^0 |/ j! [. l* n
- ;; If the color is "BYLAYER", then set the tile to
( \% R3 [) T Z ]6 l) Z) i3 L - ;; show it's set By layer, but also indicate the2 ?( V. j$ }6 g! n- u, s6 p$ l
- ;; color of the layer - i.e. By layer (red)
2 f" V$ u+ W8 l' n# W2 ] - ((= ecolor 256)
# z! M# F) _% {- X: f - (set_tile "t_color" (bylayer_col))
/ I$ t. ]9 Z C" ?+ D9 P% o - (col_tile "show_image" cn nil)
. G& r% I% p5 k - )& t9 p9 _ h1 o! _ g V( P
- (T + w8 r* {2 i* s( f M
- (set_tile "t_color" (itoa ecolor))9 q. N2 O j0 \( z6 x* o: R& P2 y
- (col_tile "show_image" ecolor nil)5 {9 A; f- j. N
- )
: u6 K3 w7 B! C' e% R# ~0 R - )
' T H/ Z- J3 o# w - )
) J8 J* [0 ?8 K# A3 x4 L) O- z - ;;8 I/ w9 A, F) ?2 }
- ;; Function to put up the standard color dialogue.
6 c6 x3 b: X0 E. D" o5 Z - ;;$ y4 e0 \3 d1 G/ G- {, }: L( R' y5 _3 b; r
- (defun getcolor(/ col_def lay_clr temp_color)
- S% ~ \0 V) s* b; U( F# ~7 h( s1 D - ;; col_def is the default color used when rq_color is called. If ecolor 1 M. w3 `1 H% _- v' V) S' K V
- ;; is nil (varies) then set it to 1, else use the value of ecolor./ T% v6 m/ P5 C2 ~
- (if ecolor
! I1 M5 S) _, t/ p; X' l4 C - (setq col_def ecolor)
6 U- a# A! C% a6 { - (setq col_def 1)
1 J b( ?! ^, R" M/ @2 m8 f - )1 O* t9 f' j8 y, t( d
-
: n7 o6 {2 |0 _9 N& k" y7 V - ;; If we're working with a single layer, get its color
5 Y. y4 ^" o0 ^! i6 j: `$ } - ;; for use in the color swatch if the user selects color BYLAYER.. M. J9 k+ a; x {& f
- (if (/= elayer "Varies")
- k, j5 y* M- D/ z2 O D - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
: P- p. L, H8 C4 e0 y: m, e5 I2 F - (setq lay_clr 0)
& b7 a3 h& m9 @5 a - )7 j/ n' R% Q! d2 N. s+ v
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))6 F5 X) |$ K( r* p
- (progn
& ^7 |7 i0 S( P T. Q - (setq ecolor temp_color): L" G- w% I# e \/ u! x: t* B
- (set_col_tile)
8 I0 J4 u' G" E6 Z3 E+ [3 e - ecolor
. G5 T( d2 j2 F - )
! J# t" `9 C5 E3 i& U/ G5 m - ecolor8 O& f1 f4 f! Y5 J, z7 E" S6 R
- ) q5 ^- `2 q- U: u
- )7 L. a7 ]& l7 l# u7 Q
- ;;
J3 ]+ j8 x) B* L( J& g3 r" A - ;; This function pops a dialogue box consisting of a list box, image tile,
- v$ w9 y4 A+ y. J - ;; and edit box to allow the user to select or type a linetype. It returns
' [8 P8 Y P, J- |3 Z4 h - ;; the linetype selected.5 L9 l2 v+ z) v, l% Y
- ;;' o/ P; g8 ^0 v- h8 P
- (defun getltype (/ old-idx ltname)
! M% Y+ ~( V' x. G$ b' q - ;; Initialize a dialogue from dialogue file' D3 \' M' z$ x. s
- (if (not (new_dialog "setltype" dcl_id)) (exit))
$ N# I" Y; E5 y4 E6 ]' } - (start_list "list_lt")
" X. \6 Z2 z5 v3 w( g9 l - (mapcar 'add_list ltnmlst) ; initialize list box, z( T b( {7 Z0 ]) p Z: w
- (end_list)
, }, h- O* E1 y9 X" i - (setq old-idx lt-idx)
* K* B. l) h; s4 X/ C0 S - ;; Show initial ltype in image tile, list box, and edit box5 ~* a" s# @5 r) f! h" N
- (if (/= lt-idx nil)
1 l1 Q! |+ `. T+ Z4 J - (ltlist_act (itoa lt-idx))
2 q3 O; R6 G. J1 G6 d+ @9 I' r - (progn! _5 R. k: S [$ \- f
- (set_tile "edit_lt" "Varies"): c6 m$ l1 ]" P& O2 z' I
- (col_tile "show_image" 0 nil)
0 E# y* `& K1 _0 k5 J; Z - )6 M5 L. m8 R4 d6 W% p9 n. G9 o) \
- ). I* n6 Y7 {% L
- (action_tile "list_lt" "(ltlist_act $value)")1 U& k5 W: f- v" y. S+ S6 N5 A
- (action_tile "edit_lt" "(ltedit_act $value)")
3 C; y/ S4 B$ H$ g) ?+ F$ ]. S - (action_tile "accept" "(test-ok)")% i8 Z' f4 q4 U% k( y) v/ [
- (action_tile "cancel" "(reset-lt)")/ {9 i1 R0 w9 }7 J; @- Q* D' G8 _
- (if (= (start_dialog) 1) ; User pressed OK. t$ i d1 b4 @ P
- (cond
8 h6 Q! _$ Y: x* L- T" C3 M - ((= lt-idx nil)4 b; H0 B* n/ q9 z7 e G8 U
- (set_tile "t_ltype" "Varies"). Z x8 U5 z! ?( r2 P
- "Varies"7 {* ~0 o' b" }; g( P; w. M4 L
- ), l; h6 \ v. N3 A
- ((= lt-idx 0)
- g) p- b' a- G0 t) E% \ - (set_tile "t_ltype" (bylayer_lt))$ v5 z6 v( v' H+ P. Z# y- K
- "BYLAYER"$ t1 E# t* T6 y% M
- )6 ^/ H; r5 E# x" O5 t
- ((= lt-idx 1)
5 Y+ U+ r& } |+ o - (set_tile "t_ltype" "BYBLOCK")
. E. V( _6 Q5 a% L- t V - "BYBLOCK"
; O3 F, s5 D" t# b - )/ ?# Y$ G. W8 k( U& r9 y
- (T
+ \" c1 A' |, k( w - (set_tile "t_ltype" ltname)
1 _2 n: v& Z0 f - ltname
( `. J; |3 h2 } - )
v; ^4 m2 X: w- i6 h# P - )& ?5 N+ {3 N8 _6 A- y7 L/ q2 u# h
- eltype, Q; [0 _' F @. m& a
- )
) T9 J$ C- l4 l) d - )
5 \& c" J5 z4 E+ u3 j - ;;
( \$ R8 x8 H7 E. o* ^3 Z - ;; Edit box entries end up here
: Q$ ?" }& t9 Q R - ;;+ Q5 Q+ f* \, G' ^
- (defun ltedit_act (ltvalue)
& I& N- X# r$ V: \4 i" r - ;; If linetype name,is valid, then clear error string, 9 r+ c+ o1 c T M" Y- l6 Y. h
- ;; call ltlist_act function, and change focus to list box.$ _. {' v* s: p: e2 _8 O( {
- ;; Else print error message.
& a, [* q6 y, ?' t8 u* o. I( x. F - (setq ltvalue (strcase ltvalue))0 n. k$ R2 p) x; S
- (if (or (= ltvalue "BYLAYER") (= ltvalue "BY LAYER"))
' @- I* U# c& b4 `8 u/ W2 V# M - (setq ltvalue "BYLAYER")
Q/ r j$ B( C M' U6 g0 [' Y" G2 c - )$ ^& K0 H1 ^- |4 m
- (if (or (= ltvalue "BYBLOCK") (= ltvalue "BY BLOCK"))
3 k0 ~8 Q& ^( V* l. t - (setq ltvalue "BYBLOCK")6 {* W% w4 N2 v9 ^- ~8 ~
- )* G: j5 U+ {% j; ], K) a- j( H4 F
- (if (setq lt-idx (getindex ltvalue ltnmlst))
% x1 E- U: ^& q, C; n - (progn$ u* c' U; m& ?+ p; e
- (set_tile "error" "")) x- a+ e8 y" |3 r, i) I4 l
- (ltlist_act (itoa lt-idx))) T; ^2 L; {. ^# \7 f* ], w
- (mode_tile "list_lt" 2)' j' i: ^) k7 j0 f, t
- )
: E' o5 `" Y( ^, F5 u7 s1 q - (progn9 M% T, M% A/ v2 q
- (if (/= ltvalue "VARIES")1 \ _0 t) Q- Q; _# |5 A8 t
- (set_tile "error" "Invalid linetype.")! d7 R5 _9 X" G) X0 Q0 U# H1 T
- )0 U3 G) t9 Z, J8 {/ f7 w
- (setq lt-idx old-idx)
9 u" o/ U$ @9 N: Y; V - )
* B* B6 y1 v1 H1 I9 u2 f1 y, N+ f! U - )" k3 k# `$ T) K% l4 w9 C1 \* M7 Y
- )
0 V4 k9 r. w0 M+ _2 O - ;;
( S* l4 ^; i# [" G. ?0 v: i - ;; List selections end up here# j& d0 J& }1 B5 R* V* D
- ;;
_% L/ R) Q. H - (defun ltlist_act (index / dashdata)
* l- Q9 Z6 f( K0 v- } - ;; Update the list box, edit box, and color tile
$ D* F7 ]- I* t8 H5 d" ` - (set_tile "error" "")
x0 t8 b9 r# w - (setq lt-idx (atoi index))5 l8 O! {: R& [
- (setq ltname (nth lt-idx ltnmlst))
' O9 Q& v( A! | - (setq dashdata (nth lt-idx mdashlist))( e ^; o9 A" |9 C# ~2 M3 ]# e
- (col_tile "show_image" 0 dashdata)
" }2 ]. W8 l; o$ N7 I. K( ] - (set_tile "list_lt" (itoa lt-idx))
- c; o, A5 ^' Y$ f - (set_tile "edit_lt" ltname)1 `& B. x- I: P* j1 `+ w
- )7 o0 [) p. ?7 q" p5 d
- ;;
) O9 f2 D# p/ b3 ^, W! ~( X& o - ;; Reset to original linetype when cancel it selected
& ?% N. `% s) }7 ^ - ;;
0 N4 A D6 l# k& f - (defun reset-lt ()
5 C& F- \4 I, C& Y+ v0 S" T - (setq lt-idx old-idx) m6 u2 \" t: I8 n# B7 v
- (done_dialog 0)4 J4 h( Z# Z3 J. @! B8 j# X
- )8 ^0 l# S4 h! S# L2 d& W
- ;;8 R, o7 [7 B; M
- ;; This function pops a dialogue box consisting of a list box and edit box to
( f. K. a2 A) q7 ]$ L7 z - ;; allow the user to select or type a layer name. It returns the layer name
* l3 Z% F2 v' X2 I - ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the 3 [) a [, H) k1 x$ o% \" G
- ;; drawing.
' T! D1 t, F; `& Y - ;;4 R1 R$ V/ A+ t% @
- (defun getlayer (/ old-idx layname on off frozth linetype colname)$ R: L' n0 g; `3 Z+ I
- ;; Load a dialogue from dialogue file
( q. R' C G# [( j - (if (not (new_dialog "setlayer" dcl_id)) (exit))" L7 D( U! s# _
- (start_list "list_lay"). B# K- M" C+ c" \+ D" }3 \" p s! c. W
- (mapcar 'add_list longlist) ; initialize list box
* t# b x% ]0 L" U7 } - (end_list)
" Y1 O, T7 w8 N$ Z - ;; Display current layer, show initial layer name in edit & S5 \) S! Q% ]* h
- ;; box, and highlight list box.
' {. ^2 g6 {/ q8 W: O - (setq old-idx lay-idx)
P+ @# D* Z0 X2 S; @" I0 x - (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))) v; P1 R9 J7 g, [! W# @# V
- (set_tile "cur_layer" (getvar "clayer"))
' z, h/ }: g* J$ L - (action_tile "list_lay" "(laylist_act $value)")
3 p+ \+ Y9 V7 `3 f; w) F - (action_tile "edit_lay" "(layedit_act $value)")8 Y9 g. w4 d. {; [7 t/ M, h+ [
- (action_tile "accept" "(test-ok)"). _% }6 \+ n, G% @9 d0 j
- (action_tile "cancel" "(reset-lay)")
( m4 \8 |, G% \ - (if (= (start_dialog) 1) ; User pressed OK5 i5 |3 @/ Y ~# h: M8 s" c
- (progn; A! _8 W' |* Z0 g0 J: v3 ^) v
- (if (= lay-idx nil) (setq layname "Varies"))- w$ }2 T5 U- |6 T* O8 i' C& ]9 g
- (set_tile "t_layer" layname)3 a5 g8 o) o! e3 i, ]/ f6 C, k* ^
- ; If layer or ltype equals bylayer reset their tiles0 P& U- ]' z( d2 c
- (if (= lt-idx 0). J; Y0 k" u+ T5 V+ l w2 S' T
- (set_tile "t_ltype" (bylayer_lt))9 T" ]! _" n7 b3 b, ?1 ~
- ) R4 u6 \- k+ W' |7 @
- (if (= ecolor 256)1 ^* _# N/ J4 K& Y) Y, b" Y# T
- (progn
4 q. B) ^, e1 `! P3 Y - (set_tile "t_color" (bylayer_col))
+ i5 h* g( T* p$ f/ |8 B6 D - (col_tile "show_image" cn nil)% a' W, {, i+ ^: _4 q; o, e
- )7 U# i- |- N: s6 H! ?1 U' Y9 m
- )! x! G: \" F7 v; e( ?
- layname
' |! a1 G5 b+ q) D N9 u - )' G2 U7 w' U: e4 z" q, `; y- |
- elayer/ A& Y+ `6 O9 }! c0 {
- )# `8 G7 e( F7 @7 b0 Z
- )) ]8 v5 `' {. P5 u! c
- ;;1 b* ^. ^$ x+ K: s, w& M6 K
- ;; Edit box selections end up here
' |* N0 y9 C$ x- W: r - ;; g# J3 `) p+ }: L( G
- (defun layedit_act (layvalue)0 {( m9 t: J- o' u$ ~! ?
- ;; Convert layer entry to upper case. If layer name is9 J/ }* v, h; p' x7 K/ ^0 [
- ;; valid, clear error string, call (laylist_act) function,
# e1 w0 q) o X - ;; and change focus to list box. Else print error message.
G- B8 ? \# e4 `4 u6 L: B, y - (setq layvalue (strcase layvalue)), T& w7 s' |+ c4 M) K( ^
- (if (setq lay-idx (getindex layvalue laynmlst))
# m7 `. |; ?! d+ L7 I - (progn
1 `" ^( ~- }" q# ^. z8 u0 `5 s - (set_tile "error" "")
+ s! i9 F3 b8 _* n; Z - (laylist_act (itoa lay-idx))
" X7 p$ W, V4 i- w+ p - )# y9 L; h! t( ~/ Q, X* p5 R
- (progn
$ y( c2 z* K8 R2 Z7 U1 N, K - (set_tile "error" "Invalid layer name.")
1 U: p7 x5 C% r$ Q - (setq lay-idx old-idx)
: g0 d1 D. p- ~ - )
P+ P: S1 @8 N( p - )7 b% }- `0 K2 [! b4 M% j
- )7 ?7 w4 ]4 z9 w9 T7 b
- ;;
6 u$ t7 S4 {* K) o+ o - ;; List entry selections end up here3 Q: U) R$ N7 ^! O1 l8 ]
- ;;
3 H/ g2 O) K3 \% t - (defun laylist_act (index / layinfo color dashdata)
2 v2 I4 q0 P; q' S, I - ;; Update the list box, edit box, and color tile) x& D7 v7 J0 N% K5 F0 j" Q
- (set_tile "error" "")
7 i: T+ Y( u) g& s) F* ? - (setq lay-idx (atoi index))
( I3 Q v+ g: {1 _ r. f2 A2 }: m- M - (setq layname (nth lay-idx laynmlst))2 J5 v8 B: r3 G" t
- (setq layinfo (tblsearch "layer" layname))
$ g( C& v8 Y6 R% T7 _" u+ v. d - (if (= (logand (cdr (assoc 70 layinfo)) 4) 4)
/ I6 b7 C, ^8 Q5 M6 z - (set_tile "error" "Cannot change entity to locked layer.")
: h! i6 j* v( P9 T% Z - (progn
& i6 y* A# x* D+ k - (setq color (cdr (assoc 62 layinfo)))
& y7 Q+ h! y( ^1 p) X. t - (setq color (abs color))
. {' J: y- j- t3 W! C7 T3 N - (setq colname (colorname color))
4 C, M3 f& d( q! M& X4 m9 x - (set_tile "list_lay" (itoa lay-idx))
% R& Y' i& l5 \" Z! j$ b - (set_tile "edit_lay" layname)
8 ]' m+ q) u. `& b% S - (mode_tile "list_lay" 2)
2 ]) X) S* K8 { H5 I: [ - )4 P, K2 D& R2 A2 i7 e! V$ V& L# ^
- )
7 a0 a! q7 B+ X! p2 R - )
+ V& O1 e3 B! N: g - ;;9 [: H8 t' Q4 V3 r+ w9 n( y3 W
- ;; Reset to original layer when cancel is selected( o J. {, V& q/ o
- ;;
* u+ }( h; E/ o! { - (defun reset-lay ()2 g8 \2 Y' d' J, A# G6 T; ]( [
- (setq lay-idx old-idx)
- D& s" y' U; e) { - (done_dialog 0)
8 B8 J1 Y9 {( U2 I - ): G# J6 U- @* H6 x
- ;;
% b' c# {0 X, Z6 E& S o - ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a
8 L' s* e# Q" A/ \1 z5 s - ;; string can't be converted to a real, this routine checks if the first
/ C+ z/ i- N1 o' d4 L! G* ] - ;; character is "0". It also checks to see if the value equals "Varies".
: n0 C* b& u% {/ c2 X - ;;6 b9 Y& B5 i4 h5 g, L
- (defun getthickness (value)
3 O) O! f' w7 g- r - (setq value (strcase value))
[! m( T3 T0 r: [ - (if (or (= value "VARIES")
+ S" E6 \$ [/ J. w5 ?9 b( i2 P - (distof value)6 w! y1 }! m7 _. W- C+ X- b
- )
7 k$ f. q- w& [8 a$ y7 e, e - (progn( G$ j$ u |" [1 ?, Y s
- (set_tile "error" "")
% ?5 u6 C) G9 p* U; Z - (if (= value "VARIES")$ {$ H, D# ^% ^. Y) ~, ^$ e9 s
- (progn6 x n E: q% B4 M& V! l8 x7 y3 F2 k- i Z
- (set_tile "eb_thickness" "Varies")
1 t9 i6 \/ C9 s* i: \5 R; }; e. ? - (setq ethickness nil)
. {' }* W1 g& m& w/ r - )
6 I$ W: x& b J6 D0 B - (progn! F+ w1 T5 o) k7 y/ R$ }
- (setq ethickness (distof value))1 V U2 f+ }* I, F1 B
- (set_tile "eb_thickness" (rtos ethickness))9 {- t* Z+ Z6 b; L+ B; R: V) N2 F
- ethickness( ^1 K1 g5 X7 m8 [; `6 p
- ) m5 C% y6 f5 z
- )
' o8 W- u( N) b% N; e A g - )5 i* V _- g+ _% M, f
- (progn
9 H9 Z) J6 I3 O9 S s1 _( ~ - (set_tile "error" "Invalid thickness.")
u5 Z: x4 ^2 H5 M0 F - nil
- U- z% ?3 P6 Y# P - )
6 C+ k1 V+ _* t- {: D; _ ]1 Z% Y5 ?0 P - )
9 r+ Y. F2 `! {0 H7 l$ M7 ~ - ). ]1 L; d$ {1 s2 p' q0 t4 N
- ;;& n0 ~$ X7 _/ M5 |+ S. _' y
- ;; This function make a list called laynmlst which consists of all the layer
2 D0 {& Z/ A0 c; H - ;; names in the drawing. It also creates a list called longlist which
- x8 O- {/ ?2 Z! h2 K3 C* N - ;; consists of strings which contain the layer name, color, linetype, etc. . l! p- F Q- p0 v/ [5 E
- ;; Longlist is later mapped into the layer listbox. Both are ordered the
8 J" x) B3 ?2 v. t- ] - ;; same.( z7 ]: P& K8 U% J0 ^8 B
- ;;
/ _) z8 s0 n9 V f - (defun makelaylists (/ layname onoff frozth color linetype vpf vpn ss cvpname 0 N2 L7 ~! C$ v. C5 j4 C7 g
- xdlist vpldata sortlist name templist bit-70
! T9 z& T! P1 s$ ?9 K0 D& J/ |. N - )
" T( Q. P! q2 _1 ]) h' d - (if (= (setq tilemode (getvar "tilemode")) 0)6 L- [# H$ C8 Q; M5 G) @/ r$ q
- (progn2 U' \/ C, O c0 S0 Q+ h/ p
- (setq ss (ssget "x" (list (cons 0 "VIEWPORT"), e+ y" z0 L: e7 J6 a
- (cons 69 (getvar "CVPORT")), j7 p: w, n# G8 x6 |
- )0 k2 T$ `# H+ ^3 r5 W( Q
- )/ b9 W0 ^+ ~& F5 |+ x
- )
% Q( j% f- ^' s9 s - (setq cvpname (ssname ss 0))
& |8 o3 m5 X5 w0 A9 w3 W. y V4 c - (setq xdlist (assoc -3 (entget cvpname '("acad"))))
+ q9 l5 }% h( z m - (setq vpldata (cdadr xdlist))- g, U/ B& {9 M% k2 b. N! e
- )
7 Y3 g5 @; n2 Q8 T2 d6 Z$ ^ - )( ^' N6 g2 t) e) |' r; H
- (setq sortlist nil)
( f5 R" m4 M7 N* p - (setq templist (tblnext "LAYER" T)); }( n% m/ e5 @4 ~+ K: E
- (while templist$ F* m6 A& [% f+ _
- (setq name (cdr (assoc 2 templist)))
) _7 v a# l- G7 w+ r - (setq sortlist (cons name sortlist))
2 B$ F( Y( @0 f5 w' x6 b/ n& E - (setq templist (tblnext "LAYER"))
( y% G' F6 i: z& L1 m - )
% S: l- m. S: k9 e - (if (>= (getvar "maxsort") (length sortlist))
g" S# O7 k& s/ ~2 Y1 G - (setq sortlist (acad_strlsort sortlist))
: U# y7 j* }- U1 t - (setq sortlist (reverse sortlist))$ C, N3 L1 f. J4 `9 |4 T8 ^
- )
' T# A4 _/ z5 S1 S - (setq laynmlst sortlist)
- b1 S6 Z+ ~- m1 A - (setq longlist nil)/ w; y, h3 X$ m$ q
- (setq layname (car sortlist))
6 G: Y* H* X( U y9 K - (while layname
; W) Z- H1 { F0 O1 O& z - (setq laylist (tblsearch "LAYER" layname)); P% u6 c: ]& \+ D3 T E( T
- (setq color (cdr (assoc 62 laylist)))
( y% i4 n& f S4 O6 k. y4 e( e" e - (if (minusp color)
' @" T/ j! n% H& y - (setq onoff ".")
! W) {9 d- Z7 v' @8 _1 m3 [ - (setq onoff "On")
) l8 V+ K1 n+ r8 T+ t" i; R$ V - )
& h: x S$ Y9 x) x, T" c, z0 P - (setq color (abs color))) O: U, p P" s9 u2 l: _
- (setq colname (colorname color))
5 X0 q- \! P. f3 Y7 X3 L0 ?9 x) o - (setq bit-70 (cdr (assoc 70 laylist)))
/ V0 ?9 w5 }9 ]* x - (if (= (logand bit-70 1) 1) z' q# Y4 F6 v6 U" x* n% q$ x" F
- (setq frozth "F" fchk laylist) M) N3 o5 N! B& O* R; t
- (setq frozth ".")
) U: W+ l) E0 s8 C" {; P5 Y' x: c8 }( m0 U - )
1 m$ W1 x9 ?/ i$ U# H/ @0 } - (if (= (logand bit-70 2) 2)
7 s, x* F, A; K% i1 }. i } - (setq vpn "N")6 \( V1 y' c* ^0 O2 W
- (setq vpn ".")
0 |6 `% H% D8 u, I8 `3 s6 l - ). a1 t. Z: A8 d* K# L" A( b
- (if (= (logand bit-70 4) 4)
4 S+ O, ^0 _% [: j8 s - (setq lock "L")' i8 C. I \* h- d1 d
- (setq lock ".")
' p& D, e( o% Q3 O - )
; _$ D# q' t2 C; e; q( Q# J - (setq linetype (cdr (assoc 6 laylist))); y8 I2 _9 |) R- f3 s. [
- (setq layname (substr layname 1 31))9 D. `+ `& E: D
- (if (= tilemode 0)
# c& e W$ {, l - (progn, c, b4 z4 K. h6 x/ @1 u5 b, p
- (if (member (cons 1003 layname) vpldata)% `6 W( A% u+ Z- m. |# [
- (setq vpf "C")! g( Q5 G4 i( C% O% b8 J( p- ~
- (setq vpf ".")
B& I! o& T# f1 K: R7 I - )" H0 ^% c& q4 B
- )
' R0 A/ `% o. w; {2 Z* ]1 \ - (setq vpf ".")2 C$ x) o2 G) }. X* o; M- y3 J
- )
8 N0 }- j( v$ d) f8 K4 o) X8 @ - (setq ltabstr (strcat layname "\t"
5 w' R, d" g" X7 K0 g; h; E - onoff "\t"
3 t# {" y. X( \0 b - frozth "\t"
' x; t" G: W& s# { - lock "\t"
5 \" l3 l+ D; r& q; i r; T: }9 ]" P - vpf "\t"1 L# d; N' t) W) _
- vpn "\t"
4 G @% P* Z: f/ J+ c( K E - colname "\t"
# q& R' g0 m0 v9 U, i# c - linetype
4 r# }) E- ^8 ^1 S; V6 H( | - )1 O9 @5 C& W+ K' m* Q+ a, ^3 D
- )+ J8 G! _- S; M
- (setq longlist (append longlist (list ltabstr)))( G/ M* k- m( A/ }7 i
- (setq sortlist (cdr sortlist))
/ v/ c9 L. l, V# p# a4 `! Z4 d - (setq layname (car sortlist))
9 G8 V. G! e1 u5 P& v1 t& P* D" A - )
5 u' b4 b0 D; U K' n! O R6 ~ - )& ? i) m z+ U$ M0 X
- ;;
4 V3 R# p2 G$ u9 m2 M - ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of 3 H8 j. G" A3 Z
- ;; linetype names read from the symbol table. Mdashlist is list consisting 1 q5 i. [1 F+ |3 r. l' J i/ l2 T8 y" b
- ;; of lists which define the linetype pattern - numbers that indicate dots,
2 }0 d3 M9 O* {+ j% U - ;; dashes, and spaces taken from group code 49. The list corresponds to the # L7 ~: s. s% G e1 }9 m
- ;; order of names in ltnmlst./ ?0 }$ f$ k# v3 L4 H$ N( a
- ;;
" O( A' ^6 u" k% ~5 m; G3 q - (defun makeltlists (/ ltlist ltname)
! i$ F; n' O/ X: h! l1 M - (setq mdashlist nil)
% o1 g* U a3 | - (setq ltlist (tblnext "LTYPE" T))& q1 }" ]( H. ]: J
- (setq ltname (cdr (assoc 2 ltlist))) Y% N' C* H& Q6 p2 X% z
- (setq ltnmlst (list ltname))
9 L, {! z( y) u' o+ J8 N6 K7 m; F
7 R2 t3 C8 o$ K- (if (= ltname "CONTINUOUS")$ A } W! I3 ~
- (setq mdashlist (list "CONT"))( n5 @9 A# c2 h
- (setq mdashlist ; m, z7 ~8 f& j: r
- (append mdashlist (list (add-mdash ltlist))). k8 u( J2 v' K0 k5 H( x
- )
* A, M4 ^8 h* Q - )2 i' f4 P2 b( W7 F
- (while (setq ltlist (tblnext "LTYPE"))
9 ]3 B- `0 v1 t- F - (setq ltname (cdr (assoc 2 ltlist)))$ _1 r, l5 T1 Z. E( W6 G
- (setq ltnmlst (append ltnmlst (list ltname)))) u! X/ ^# |7 a( G5 [
- (setq mdashlist # A$ k9 [9 W2 e' u! r U% A
- (append mdashlist (list (add-mdash ltlist)))3 _4 j1 R6 p( R
- )0 X, G# w: C# `2 E
- )* i" K, p' |1 y: L4 W
- (setq ltnmlst (cons "BYBLOCK" ltnmlst))
6 p+ }4 |# p9 H1 V' j; g6 k - (setq mdashlist (cons nil mdashlist))3 Z, K- g2 y& ^" V( t" Z n E7 n2 D
- (setq ltnmlst (cons "BYLAYER" ltnmlst))
3 ]: t' [; F$ g" M - (setq mdashlist (cons nil mdashlist))
: g# Q" y# \9 W- Z2 y - )2 n* o! n4 f! C
- ;;5 \/ ~2 P4 y# j ]; A
- ;; Get all the group code 49 values for a linetype and put them in a list " n+ b9 O: H0 v. n: n" [9 j) O
- ;; (pen-up, pen-down info)+ J0 g# H! p% h) Y" q9 V
- ;;4 o2 b1 J) B& L
- (defun add-mdash (ltlist1 / dashlist assoclist dashsize) B b5 G: @) Q2 f
- (setq dashlist nil)
0 h) ]5 L; |1 a1 J, b - (while (setq assoclist (car ltlist1))
2 T5 z) E, `/ C( C6 A - (if (= (car assoclist) 49): G2 a. y) B( {
- (progn
" l% E1 S4 Z& x1 ^6 l* `" m" v - (setq dashsize (cdr assoclist))6 J+ K/ y$ E) @8 w: L4 _* h
- (setq dashlist (cons dashsize dashlist))
2 o+ E% u3 t, `! m* f; n - )
+ e5 {& |4 H/ D( E - ) i( k1 d% U/ k. G( I
- (setq ltlist1 (cdr ltlist1))1 C; h( ^+ e" T: l" h+ _7 K
- )7 j( y6 n6 V. d" c8 A
- (setq dashlist (reverse dashlist))
5 V* y, _* c! N0 f2 l - ); V- B( S. W' @5 F' L0 |( V
- ;;& W$ W8 ]& d! J( k) }" i
- ;; Color a tile, draw linetype, and draw a border around it0 F9 f0 T7 O, F. p4 a2 g9 o4 T3 C
- ;;
0 e7 |1 k6 q, w) E& a - (defun col_tile (tile color patlist / x y)
, @. r" D$ ]% q; n/ n3 T - (setq x (dimx_tile tile))
. U$ T) s) `+ B. L8 p - (setq y (dimy_tile tile))
& @9 |, x. @: G0 ^2 a$ U - (start_image tile)6 G; e7 \8 y* X! d O" r7 w6 X
- (fill_image 0 0 x y color)
9 w/ Q8 Y/ `. o5 S8 z - (if (= color 7)
; N* A J# X* Q8 T$ h/ q) F - (progn
- i- F; J2 D1 n$ Y+ s6 t - (if patlist (drawpattern x (/ y 2) patlist 0))4 w9 H! `: K+ z e( w( s1 `2 k
- (tile_rect 0 0 x y 0)9 C6 h" V+ A2 W6 Z0 |! y
- )# A. a) x/ W3 T
- (progn# `9 @. I7 S. v: W. w
- (if patlist (drawpattern x (/ y 2) patlist 7)): I" }5 @4 }7 H5 @' ?5 B
- (tile_rect 0 0 x y 7)4 U# z% z8 B1 v# y2 w5 z" b
- )
$ V" b% t, Q. `3 h4 i; L* h! b - )
) ] b( c8 G% v - (end_image)
4 @+ u- V, R* e4 c# p - )4 ?. H9 h/ Z( w3 I3 ? E5 N9 G0 Y- ~
- ;;! U! U% I' O. h& t2 y6 i
- ;; Draw a border around a tile* ]% e. K4 A! s' \
- ;;
% z$ @$ `* n2 C9 I - (defun tile_rect (x1 y1 x2 y2 color)$ ?& K/ B. \- \5 \/ Q
- (setq x2 (- x2 1))
$ S) F; k1 @4 G - (setq y2 (- y2 1))
3 q S$ R4 |- q8 W - (vector_image x1 y1 x2 y1 color)
+ k( y( U7 ?/ }0 m* f' g' l - (vector_image x2 y1 x2 y2 color)
! t& R: R S4 K - (vector_image x2 y2 x1 y2 color)% I7 j/ s- V- [5 ?' ~' _$ ^
- (vector_image x1 y2 x1 y1 color)
3 S3 |$ Z, A( N! N7 x - )
: a! x: E6 h' i; u! {' M - ;;! |1 v: Y9 G, ?" r' Z" _
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
/ y8 q" K' m. H$ k% ]( F - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a 7 c, b+ `: R2 `% K7 r& i
- ;; list of numbers that define the linetype, and color is the color of the
/ i! c7 K$ P" \8 R. e* b - ;; tile.2 J3 y8 h3 J0 j: h
- ;;6 p4 D, v, G4 r% c2 A
- (defun drawpattern (boxlength y2 pattern color / x1 x22 @1 r! N7 [) k4 {/ `
- patlist dash)% @: n" Y, C% }; W
- (setq x1 0 x2 0)
0 o" O+ H# K; f6 K* e) X$ B" D* @ - (setq patlist pattern)
1 A7 Q6 \7 z/ F4 f2 {1 M# f4 e - (if (= patlist "CONT")7 R' `) n2 l3 h2 u" i+ [( V
- (progn % Y. ^' p) D" b1 L' F
- (setq dash boxlength)
, W, I! s2 z3 F% }& f - (vi)0 O+ \! u# q/ C* g& Y' |! X; S; Q; t
- (setq x1 boxlength)
% p5 \; p/ J; g" W# I4 G% H - )0 M! @' T/ h; a$ \* I# \) n# z/ o" v
- )( x L. B1 J; s
- (while (< x1 boxlength)) n: O/ d4 g) }, v0 ?7 [1 a
- (if (setq dash (car patlist))0 b F" k. j' A) q, P3 m
- (progn
% ?8 F. L& m' g; E - (setq dash (fix (* 30 dash)))8 ]8 ?2 u R& Q6 H5 D. h
- (cond + T' X& ^ f- m+ e, z
- ((= dash 0)
2 [/ v2 Q$ N2 D& l - (setq dash 1)
2 r, W- q0 u0 C- B* m: V - (vi)
! l: G3 e5 [) B% T! v* t - ); r3 P+ W1 G+ M+ P5 n1 Z: U. j2 |
- ((> dash 0)
( Q: O M) o: d9 [( N; x* ~' { - (vi)
* D2 p, a7 U7 \8 k6 |8 f' W - )0 A, T5 I. r9 s- \
- (T
* F8 o) X$ A7 G6 i& F0 ~ - (if (< (abs dash) 2) (setq dash 2))
6 N0 p" t/ a8 J! [ - (setq x2 (+ x2 (abs dash))): Z' e& q0 w1 k+ Z' u$ K
- )
$ u- b& |; i- W/ `# Q$ T! m - )
. D- }. ` G& @6 Z% Y' o - (setq patlist (cdr patlist))
6 F! V7 T/ m5 \( u) u" l! _* u' A - (setq x1 x2)* T! n: j$ s, G3 k1 o% |2 |
- )
% D# Z4 d& `6 o; O1 t j0 m - (setq patlist pattern): K- r/ q3 r+ `4 G. f+ U! J1 u3 P
- )/ W4 B @8 y! d4 b, u7 i
- )6 q$ T+ \+ T( J! _$ w
- )
/ l* A9 W' l2 c- `. P; u/ j: m- r - ;;, x, I$ m8 ?% l( N
- ;; Draw a dash or dot in image tile# Q6 k2 M" Q$ `; [! D& z. R8 Q
- ;;3 D& h1 E2 a" ?% M; T
- (defun vi ()
2 P. T5 h/ \1 p* _* x! _ - (setq x2 (+ x2 dash))
% u* x% `8 @; q# @2 b% D - (vector_image x1 y2 x2 y2 color)
; r! W H* K" Q: M - )1 V8 H1 t- T n- f0 N& U
- ;;. ~* d2 B4 o) j8 J w( P+ F- c
- ;; This function takes a selection and returns a list of the color, linetype,
4 M- F& y, O' Y( l - ;; layer, and thickness properties that are common to every entities in the
% {6 W { o% u# A+ l - ;; selection set - (color linetype layer thickness). If all entities do not 6 _- c2 R: h3 m! z
- ;; share the same property value it returns "Varies" in place of the
# j ?' ]$ y' f4 ]' Z7 v* z - ;; property value. i.e. ("BYLAYER" "DASHED" "Varies" 0)
" }7 J) p+ u& d2 A$ @7 ^! P - ;;
4 v% u5 v1 U% Z0 `* D0 H; } - (defun getprops (selset / sslen elist color ltype layer. N* d9 g; M' @# ?5 |
- thickness go chk-col chk-lt chk-lay chk-th ctr)# f# D: F7 `. q0 Q0 M+ [
- (setq sslen (sslength selset))
( J# t& P( `5 r- L3 b - (setq elist (entget (ssname selset 0)))
3 k1 m9 c# g* a' X5 c* d8 ] - (setq color (cdr (assoc 62 elist)))+ u( t6 h8 G; a
- (if (not color) (setq color 256))4 h! q- Y0 r" j& l$ D Z
- (setq ltype (cdr (assoc 6 elist)))
- @1 ?0 u1 q' x: e- B- X - (if (not ltype) (setq ltype "BYLAYER")). L( F- l' j0 P+ `
- (setq layer (cdr (assoc 8 elist)))$ J! G5 x* ^% G$ i
- (setq thickness (cdr (assoc 39 elist)))
6 ]$ Y4 v: x% \* \, ?/ q6 c/ l/ W - (if (not thickness) (setq thickness 0))- t8 x0 O; F% C4 L) X# F
- (setq go T chk-col T chk-lt T chk-lay T chk-th T ctr 1)- A4 M( z7 \5 A( g' X4 d" |- h
- 4 Z8 J3 o# R- f! y- ~7 Q5 M
- ;; Page through the selection set. When a property
5 W$ M/ _: `9 e# n8 \' x! j - ;; does not match, stop checking for that property.
) v1 d8 x# p6 | - ;; If all properties vary, stop paging.3 M* l- r5 J; P4 Y Y
- ( [7 n8 N4 X! M5 H& y
- (while (and (> sslen ctr) go)( C3 o, M# x4 A. k8 x. S/ }" L
- (setq elist (entget (setq en (ssname selset ctr))))
+ Y/ A) N4 y/ Y( ?- ?. K - (if chk-col (match-col))
7 q9 h4 G# J3 ~2 n! T3 N7 w0 e - (if chk-lt (match-lt)), j* `% l+ y. D7 C# |
- (if chk-lay (match-lay))# v, [% D3 l, M& ? w; Z
- (if chk-th (match-th))) m4 g/ J' S/ ?& H+ ^
- (setq ctr (1+ ctr))
6 f' r, l4 E4 a. R% M# L7 l - (if (and (not chk-col) (not chk-lt) (not chk-lay) (not chk-th))* W+ X: U& ?$ D. u' ^3 M9 [5 F
- (setq go nil)
+ _7 U1 T6 L% S' ~2 }$ z8 @9 L - ): D0 V) l, @# q8 G
- )* s7 U) k. c8 D
- (list color ltype layer thickness)/ Z! E, u d1 ~; z
- )8 C( |& ]' r+ D) N" ^; I
- . x5 D3 g& Z4 Y1 Z9 f* x& `! h
- (defun match-col (/ ncolor)
0 s, [+ N' R7 a1 ?7 K. k: p - (setq ncolor (cdr (assoc 62 elist)))
' B) m7 G9 ~3 d$ g; Z$ ? - (if (not ncolor) (setq ncolor 256))2 a. t* e! u7 W" E
- (if (/= color ncolor)0 n/ m$ P- l( K2 r3 T" y* N" ~& s
- (progn: |1 p3 C4 n6 p' H2 }
- (setq chk-col nil); q9 R7 O5 d" \5 R4 [
- (setq color nil)
/ I( v3 R9 R( O4 l+ B! b - )
& R& A- z5 z3 d+ `; X - )/ J+ l! l* K; N% v* e
- )
8 B* r) ^/ I3 t* O L$ U
I n1 U" c* n2 L2 v- (defun match-lt (/ nltype) T7 U+ o1 S& x( l; E3 Q
- (setq nltype (cdr (assoc 6 elist)))
, {) O! l! z7 F5 q! h - (if (not nltype) (setq nltype "BYLAYER"))4 @/ F% V; p5 x/ a$ M
- (if (/= ltype nltype)- ~! e) f& [* a7 F6 W
- (progn
( ]7 i, c7 v7 _4 F - (setq chk-lt nil), m0 Y$ c- j3 M \2 J
- (setq ltype "Varies")
9 g! a1 D$ `% F# w! q" ~$ |7 e - )% d3 R& s. V: X9 C& W
- )
6 M+ Q4 \) y8 f9 @! J) z - )
a, J4 _& y4 U: q/ Q* ]( P - 9 @3 H& E, \, n& P" t
- (defun match-lay (/ nlayer)
4 Z4 J: C5 O: T6 P( O - (setq nlayer (cdr (assoc 8 elist)))
% _: g, I4 `1 r& _2 Z - (if (/= layer nlayer)2 S" S8 p s! U# L0 e2 N
- (progn
2 \& X* J ^; S& } - (setq chk-lay nil)
. f6 G% r7 N0 ?2 J) ] - (setq layer "Varies")7 ~) N( _. [" W! _& T$ H
- )
@# U! m, |% t% x( F, A - )3 ~3 p1 R1 r$ O, q! B" \' {: Y
- )9 d& G# T: T" G% V2 J0 u
7 I9 K3 M9 [* o" [" V2 _) z" ~- (defun match-th (/ nthickness) z" C" W0 o- ^) o) s# l
- (setq nthickness (cdr (assoc 39 elist)))
, L1 r5 F6 `+ a6 `$ j/ l - (if (not nthickness) (setq nthickness 0))2 v# `, ]7 I; Y5 V
- (if (/= thickness nthickness)
$ \/ l& ?0 w4 f4 b( f- g - (progn
& G, W7 C; c" K1 q: B5 M: S - (setq chk-th nil)& j0 O$ @4 ]* Q
- (setq thickness "Varies")
0 p/ T7 f; v" n2 T - )
5 \0 I" O5 @$ M' X8 z: N2 W m$ X - )6 g; |6 ]( a& d: O e
- )
9 F: _$ Y" m- o7 _) s) A, p6 E6 [ - 5 r' H0 M$ ]7 a" x9 \! E. ~6 x
- ;;
& b7 _' X0 `/ L3 ~/ z6 n5 F - ;; If an item is a member of the list, then return its index number, else ' ]1 ?* e" v& ^8 q2 Q! B9 a- o; C- a
- ;; return nil.& W0 D9 ^, Z; v5 e; B: E8 ]$ Q$ j
- ;;
) @4 j, k8 l' c! x( | - (defun getindex (item itemlist / m n)
1 O! B. P. S1 @! k. R3 ^ - (setq n (length itemlist))
T+ C/ z6 Y4 l7 y - (if (> (setq m (length (member item itemlist))) 0)2 W& f* f4 A- |4 H E8 M2 j9 z5 Y
- (- n m)# o. M: A2 |* V: |
- nil3 {* Z9 p M- Y0 m6 w
- )
# P. Z3 A4 r3 v - )6 i! h S( {5 Q: K: V
- ;;% }: ? t, A Z1 y- U! m0 X
- ;; This function is called if the linetype is set "BYLAYER". It finds the
/ \/ f+ R+ b* ? } - ;; ltype of the layer so it can be displayed beside the linetype button.8 B/ c3 o: b; g6 i3 i6 ]/ D
- ;;
( T+ v+ z( _" @ - (defun bylayer_lt (/ layname layinfo ltype)
- Q: S4 N0 y, j& D - (if lay-idx
1 V/ w0 b1 B4 n2 w8 d' M. w - (progn
7 @8 r" ^0 i* ~0 l0 S( d9 J1 Y - (setq layname (nth lay-idx laynmlst))% N8 ~- O, s( V" ]( B0 v
- (setq layinfo (tblsearch "layer" layname))
P. \3 m& K' C - (setq ltype (cdr (assoc 6 layinfo)))
0 N+ D& e1 T" j' z - (strcat "BYLAYER (" ltype ")") U7 Y0 n! a5 L% S0 a0 ^$ X- o6 Z
- )
4 I y( z& D( L0 R" j1 ?9 ]# G - "BYLAYER"% R9 S: p k2 u
- )# s( S7 W1 [( f2 H
- )
1 O, I2 X3 A7 u, e9 v - ;;
* e% A @' S9 v, U- G3 D z - ;; This function is called if the color is set "BYLAYER". It finds the
; @$ [% m3 C2 }, { - ;; color of the layer so it can be displayed beside the color button.
% i6 v3 d- t$ _+ z - ;;3 m7 R& c- J% Q" ~+ D7 u+ r
- (defun bylayer_col (/ layname layinfo color)' _$ `8 U$ b: ?; {
- (if lay-idx
! l% b; Z% J7 I, `# R - (progn
/ P# s1 D" Y! M- q7 v: V0 v" J - (setq layname (nth lay-idx laynmlst))
; v, U* f! u* O8 ]( H4 U; A - (setq layinfo (tblsearch "layer" layname))
u1 N, L6 u4 Z& h- g' E% ? - (setq color (abs (cdr (assoc 62 layinfo))))/ }+ }* h3 L6 Y
- (setq cn color)
7 a6 j }/ B# Q) C& F% u - (strcat "BYLAYER (" (colorname color) ")")- F. d- w+ V6 G+ K$ K% g/ x
- )
^* t+ R5 u; Q/ ]+ G ^' h - (progn( Y9 S/ L9 ]) H( Z0 I9 {5 t
- (setq cn 0)
, m; w# V& ?9 F/ [' o5 B. l, S- | - "BYLAYER"
- O4 K; i2 H& J6 `+ B# U# ? - )# O5 ^/ m7 z, M. f2 t" U
- )( l5 N2 h/ I0 |& I# L7 Q. `+ H
- )
6 l" |$ s" U- Q: Y) ] - ;;
$ Q$ J" J; N7 K; C4 J1 I4 } - ;; If there is no error message, then close the dialogue3 X2 X2 B$ Z# M- X" k& z! t g
- ;;
& o7 S- ~& k2 G1 _& S% m% N - ;; If there is an error message, then set focus to the tile- g0 u. S/ S7 G7 ~7 ]8 a$ F; B
- ;; that's associated with the error message.
9 ^4 `( O0 ?9 m `: K0 M* \5 ` - ;;
. `/ f/ C6 [) `# m" ^" K - (defun test-ok ( / errtile)
% a E; C" T, x- l8 T - (setq errtile (get_tile "error"))% } [, m6 ~: O9 |' @; Y
- (cond8 o, F8 Y% ]$ N, u% m) N3 ~7 @1 s
- ( (= errtile "")( f6 O# _$ B5 J' e7 R% M
- (done_dialog 1))) V+ I- x( @7 V; [$ O) N8 _$ \
- ( (= errtile "Invalid thickness.")/ Y' ^6 t# ] Y
- (mode_tile "eb_thickness" 2))
/ \& ?$ D! Y( ^( T$ T' e - )
6 X0 X( X, s* J# ^3 E9 s - )% s7 [1 L) X/ N; P: y$ j) i4 h
- ;;. x& Q- h# s; L6 n& Z: s' K+ B
- ;; A color function used by getlayer.. S3 c+ J/ ~6 k, A! M5 N
- ;;8 d2 X h' v. ^3 F( ]# z- j
- (defun colorname (colnum)
- ]& i3 y- O; F' P- J. v - (setq cn (abs colnum))
* s4 \7 e t- r9 {! [: q - (cond ((= cn 1) "red")
# R+ B5 H- B7 }) H/ G - ((= cn 2) "yellow")& g% \! P) Q: [! e
- ((= cn 3) "green")* K" m: F" ~0 |- J8 g$ T0 K3 n
- ((= cn 4) "cyan"). l. W: L8 K; J* I/ e, Y0 d
- ((= cn 5) "blue")
1 @0 V8 V7 f% q' e6 X7 D. d3 ? - ((= cn 6) "magenta")* K2 q0 ?: L! q7 `* q
- ((= cn 7) "white")
" |- b5 G D3 J" } - (T (itoa cn))
6 r/ D& P3 @$ D; u8 C+ ]" I1 \ - )! h5 f* o2 h0 ~; p; q$ h; N
- )
2 [4 I6 `( u+ {% U$ z2 m
$ Z$ J3 Q( Z3 w' m/ }9 b8 U3 M4 B4 ^- ;;; Construct layer and ltype lists and initialize all8 h7 W1 ^. G/ O- A
- ;;; program variables:
$ E/ }4 k4 B4 a. ?8 H
. V1 R- b, B' H8 y- c7 U6 ]- (makelaylists) ; layer list - laynmlst
1 E# E0 @% }. x7 U. g - (makeltlists) ; linetype lists - ltnmlst, mdashlist/ {' V* b% U, {
- ;; Find the property values of the selection set.
' p# }! b4 ?5 O: i! c3 C2 }9 B; T - ;; (getprops ss) returns a list of properties from
3 z) e5 ], B; D( n6 n- l) u9 V - ;; a selection set - (color ltype layer thickness).
) W& I! }+ p0 t5 ^8 J u! [7 P8 u% O - (setq proplist (getprops ss))' ^, ^+ x7 j8 _. B% i* Z
- (setq ecolor (car proplist))' x9 n; T5 C% v4 g2 F+ s
- (setq eltype (cadr proplist))
. g+ W0 Q1 |% B3 s - (setq elayer (caddr proplist))( j, n' P* e& h `1 \3 }
- (setq ethickness (cadddr proplist))% F3 r/ j, y3 {- j$ R* F0 L1 V
- ;; Find index of linetype, and layer lists
. l- Q% E2 y) P. x- x) C - (cond
8 u5 F5 x) L2 o7 d- c& n! D# z - ((= eltype "Varies") (setq lt-idx nil))
4 o# P/ j$ Y. K( t9 }- E( t% O - ; ((= eltype "BYLAYER") (setq lt-idx (getindex "BYLAYER" ltnmlst)))
& j% [& u. Y0 ]2 K - ; ((= eltype "BYBLOCK") (setq lt-idx (getindex "BYBLOCK" ltnmlst))); D8 ^0 n% b4 W
- (T (setq lt-idx (getindex eltype ltnmlst)))% d0 R; }$ k/ b9 Z# J. x3 c
- ): q* ^# D6 G+ C+ m- F3 w% H! m
- (if (= elayer "Varies")
1 I* w( K3 t$ K1 _' [3 Z7 u5 E - (setq lay-idx nil)
: r, d) p3 ^4 _8 h" X - (setq lay-idx (getindex elayer laynmlst))6 N% `9 V( G# e. i
- )
" |: O5 V5 v! c1 h1 P9 n1 C6 r - (if (= ethickness "Varies")
# \( i7 m1 L `$ R - (setq ethickness nil)3 w K9 [) |# r: M1 m
- )
( d" i: Q9 N4 D7 ]3 h- H+ V
8 ~: y3 S ]; y3 d; I- ) ; end (ddchprop_init)
/ W- b+ K" ` w. }. S7 m - : e1 s3 w# g6 U2 d" P
- ;;; (ddchprop_select)
9 R' n6 ~" n2 C7 s - ;;;
4 M) Q3 {6 _: @: ~ - ;;; Aquires selection set for DDCHPROP, in one of three ways:4 e2 R# ~+ i' I" v. q* P+ i5 C% z
- ;;;) H2 q% ~7 ]; H& ~4 H
- ;;; 1 - Autoselected.# Q. A& A" G; C2 ]; k: c
- ;;; 2 - Prompted for.
- o9 b" I' U; D1 ]5 \2 O+ f - ;;; 3 - Passed as an argument in a call to (ddchprop <ss> )$ h3 e) G Y. Z, i, b' Y5 Q
- ;;;
; t: o2 U- h. t- o% V4 J3 Q0 T' Z - ;;; The (ddchprop_select) function also sets the value of the
* ?/ F5 J# P X- `; t( B( x - ;;; global symbol AI_SELTYPE to one of the above three values to
( j9 F$ w+ P) C |; n$ t/ o - ;;; indicate the method thru which the entity was aquired.& F# I9 g9 ~/ f0 {( r
- $ V; ?5 p6 p, M5 C' o
8 F0 \4 `. _/ @. [1 P- (defun ddchprop_select ()2 v0 I6 E% @2 M
- (cond
8 _4 a+ c( {, H* I1 T' U/ K+ { - ( (and ss (eq (type ss) 'pickset)) ; selection set passed to2 W" }6 c* Z6 o& |+ C y* a. X
- (cond ; (ddchprop) as argument
8 [- Z7 ^/ f$ V - ( (not (zerop (sslength ss))) ; If not empty, then" r; g0 o" d+ w( `
- (setq ai_seltype 3) ; then return pickset.5 o- I/ Q. T6 N! V6 |
- (ai_return ss))))
1 T9 P: D4 D0 O% D% b' s0 R1 U) L, l - 6 ]+ a$ x- p4 @
- ( (ai_aselect)) ; Use current selection
/ w' w O3 |4 s( W5 A - ; set or prompt for objects, ^6 S& I5 w" H6 d. \4 F9 T5 N' y
- 0 P7 o# I' u0 x& S5 `6 F
- (t (princ "\nNothing selected.")
! _, u9 l( y3 m7 g - (ai_return nil))" N: K: p6 t' w! v
- )
* _- U% Q3 P* T; D: [ b - )
0 e i, x$ f+ A$ b( p/ q - / O: R) s+ N2 k9 Q9 b5 E9 G, }
- ;;; Define command function.9 m* P+ {. u1 w2 T" k8 R
- ' Q* v# s: u; {0 L. Q
- (defun C:CH ()0 [2 o+ _# Q- A! p: U7 x5 O
- (ddchprop nil)
0 Z/ `6 I- Z" b3 b+ j - (princ)) M ^' V9 R& n" t9 _
- )& i: a3 F" p" V; V" h" |
' K; y6 }) G$ k! t- 6 \! v/ S8 H d3 \4 i! g" C5 L0 ^
- ;;; Main program function - callable as a subroutine.
4 W) i, O; m6 ]6 l* Q - ;;;' m2 r' X# _. x& g0 a e4 T! e
- ;;; (ddchprop <pickset> )
. r% l) G8 L8 W - ;;;$ e6 t+ v/ ]* K2 M- P
- ;;; <pickset> is the selection set of objects to be changed. v0 z0 {0 S) f$ a
- ;;;$ i! Q0 M$ z7 G% O- e
- ;;; If <pickset> is nil, then the current selection set is
3 S* {. ?, J+ o. k9 ` - ;;; aquired, if one exists. Otherwise, the user is prompted! c9 T( u/ z& _, T
- ;;; to select the objects to be changed.
) A1 ]+ B& T$ E6 N! w; z) A - ;;;
- Y" P N- L& J" }9 _4 G - ;;; Before (ddchprop) can be called as a subroutine, it must$ J4 X' o) P) n1 b/ B) m/ Z( q/ L
- ;;; be loaded first. It is up to the calling application to
5 d b- d" N, Z3 P N$ y9 L* S - ;;; first determine this, and load it if necessary.6 L8 x. e5 L( C
- ) y8 R9 M6 ?* z! }0 ^* C& K4 U- d
- (defun ddchprop (ss /; {$ z) P6 X1 I7 G
5 ^' X `5 l. v4 P4 \- V4 [' R- add-mdash ecolor ltedit_act s
7 R' i2 ?" a3 a" g - assoclist elayer ltidx selset
$ f( `9 K4 c: | - bit-70 elist ltlist set_col_tile
7 u, `' j* _9 H& i9 F/ p - boxlength eltype ltlist1 G! t$ h4 @' w8 }& M' L7 ~
- bylayer-lt en ltlist_act sortlist7 t" M. \! }3 s3 G9 {( R
- bylayer_col ethickness ltname9 p1 i7 R4 g% _: A; [3 f
- bylayer_lt fchk ltnmlst sslen$ h* K9 j& C) L
- call_chp frozth ltvalue templist
4 S. s; Y1 B; J1 M( c8 Q, y, d6 ] - chk-col getcolor ltype temp_color+ t Z( Z1 Q. o3 l4 e0 ~
- chk-lay getindex m test-ok7 E# i/ \3 [& W
- chk-lt getlayer makelaylists testidx! P4 J8 _: I( m8 h8 M
- chk-th getltype makeltlists testlay% }8 G1 _' I% @$ ?5 C
- cmd getprops match-col th-value
$ {3 q1 y" @* h. W" ]) ?/ n& Z6 D$ \ - cmdecho getthickness match-in thickness
. P8 [0 u3 l* m* b/ S - cn globals match-lay tile- {8 m7 Q- G8 ]
- cnum go match-lt tilemode7 ?# U$ c- t! U2 t/ y
- col-idx index match-th tile_rect
" B- y3 R2 X9 ^& X" e0 ] - colname item match_col vi; x& _; s5 k0 C
- colnum item1 mdashlist vpf7 Q: V" n5 z# D
- color item2 n vpldata# u# z7 T) z; B& }' M
- colorname itemlist name vpn4 C9 f# W6 T# s
- col_def lay-idx ncolor x
. ^$ N q$ s) Q7 O - col_tile layedit_act nlayer x1% q7 P& A; L+ T
- ctr layer nltype x26 J& Y4 _; t6 ]
- cvpname layinfo nthickness xdlist1 o7 p6 I: H5 }
- dash laylist off y
9 R! H! F+ ^# ?/ W - dashdata laylist_act old-idx y1
* b! s, b5 b. _: D. b/ i - dashlist layname olderr y22 f) c, `0 C. Q6 N+ V
- dashsize laynmlst on undo_init
+ O( |8 L# m- Z3 M" c5 S - dcl_id layvalue onoff
* T7 B+ v- Y: Q - linetype patlist
, i: e! Q4 c5 J' ]; u1 Y# W: P( p - ddchprop-err list1 pattern. S2 u% N' J3 g. J- R" D3 n9 d
- longlist proplist
/ y* H; S3 g. L! Y" m - lt-idx reset-lay
+ Z$ H' P' y5 f/ C - drawpattern ltabstr reset-lt
3 L( R2 ]! U) Z8 F2 g - )
7 X1 w: I! j% D9 @ - & b; C+ U7 S# U) T4 E
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
/ m+ a' B: k$ H& ?0 w' x - old_error *error* ; save current error function
. S& [) |3 m" Q: k! m - *error* ai_error ; new error function3 O8 v% u* p+ k0 E. m
- )
& N, \+ e) ~- P- P' G
+ b% Z7 B2 {1 C G- (setvar "cmdecho" 0)+ \- n- W3 F% u- V. l% `
; k6 y" Z6 X( g* |0 h- (cond
) Z5 B* t: w4 }' E - ( (not (ai_notrans))) ; Not transparent?$ [- Q- |1 Q% [9 Q, p! \
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?; J w8 s0 I, y8 x, ~7 l
- ( (not (setq dcl_id (ai_dcl "ddchprop")))) ; is .DCL file loaded?
3 `/ |1 c5 F0 {; N8 B3 z - ( (not (setq ss (ddchprop_select)))) ; objects to modify?/ F+ L7 j" V$ B8 O3 R
- 6 T6 R5 k; N$ k
- (t (ai_undo_push)* g* o# P) o3 J* o* `: v
- (ddchprop_init) ; Everything's cool,! z p$ u0 P; v! T1 l
- (call_chp) ; so proceed!3 y8 T( E# s- s! q; P' t! t" H
- (ai_undo_pop)
5 ~0 Z2 ]$ x4 j) o( M3 R - )
$ m! x z& N" Z, I7 U- N4 K& | - ), x3 c1 U2 J% ]0 S, x4 h$ Z6 S9 k1 Z5 n
-
* m! c5 ~" _# | - (setq *error* old_error)
) `" Y' b6 V2 b8 A1 ^' @! x - (setvar "cmdecho" old_cmd)
' `! c! q+ y9 A0 A. a - (princ)8 ^1 o( d, A4 l& Q7 s. F
- )8 S3 S" P& O7 ^# G+ W* P2 M6 L% \
" O" _) b6 p4 @2 W5 H& F- ;;;----------------------------------------------------------------------------' W9 \# |) B; M. @. a
/ ~; q1 W. z" `' N+ `& [- (princ " DDCHPROP loaded.")+ Z9 Q; |2 H9 e1 B6 _5 r
- (princ)
, G9 Z4 V- I- u: m$ k D - * M V/ `4 b( X1 E3 O2 _
- ;;;----------------------------------------------------------------------------9 H3 m! A* o) o+ F0 i
- ) y8 F: Y) y V# u/ b( {
- ;--------------------------------ddmodify.lsp----------------------------------
% R0 @/ X) a7 m) C - ; Next available MSG number is 1111 K }- V3 B7 s# E
- ; MODULE_ID DDMODIFY_LSP_' o6 b% d$ Q. w& Y: t5 N
- ;;;---------------------------------------------------------------------------- f3 S0 L$ b' D0 K9 o7 I8 F
- ;;; DDMODIFY.LSP6 R& @, \- e# h$ U( b* e- S
- ;;;
+ d1 P2 S a; `+ ]) F - ;;; Copyright 1997 by Autodesk, Inc.
" n4 U" ^* X p3 h6 w- z7 s - ;;;: {: I! K* O9 s* ^, J0 I
- ;;; Permission to use, copy, modify, and distribute this software
; F! u- A- x, ` - ;;; for any purpose and without fee is hereby granted, provided
# K- |4 B! Z/ M* e4 c6 a - ;;; that the above copyright notice appears in all copies and
: k9 x) e9 i% B+ N* q: Q T5 i - ;;; that both that copyright notice and the limited warranty and
! P; w$ u; _: _9 ^2 y4 s: z - ;;; restricted rights notice below appear in all supporting
2 O3 q. y3 ^# g% i, x! p - ;;; documentation.3 i m" Q) N" F: W! R
- ;;;
. N) F0 G/ J% Q/ S5 x% d - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.2 v- B/ ~8 V( T# m
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
' Z v! {) t @" D - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
" ~1 a/ w* p- s+ Q$ K# `& F4 U - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE$ c# u0 j7 [" J; S( I9 c2 F
- ;;; UNINTERRUPTED OR ERROR FREE.
% ] T$ _/ |/ c# o' ?/ ~ - ;;;
( u! Z5 S0 N5 R5 |' ?7 Q - ;;; Use, duplication, or disclosure by the U.S. Government is subject to
0 W2 n2 U) }; ^; k - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
. n( f/ y8 V/ @% [0 B- k) w - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)' @# {) g# V6 H( S, ]+ h
- ;;; (Rights in Technical Data and Computer Software), as applicable.
4 `6 Z0 D) C. v2 c% M1 o - ;;;
) x0 \8 V) u$ K9 v/ Q- r+ e' k. ~ - ;;;.1 n2 U' V7 q& i; n+ [4 `
- ;;;
5 H( y! X( J( l' S2 G- G0 B$ M - ;;;----------------------------------------------------------------------------
9 g: O8 t: M7 ~* y - ;;; DESCRIPTION
& G, Z( a4 y6 A: H; f4 I - ;;;% x$ X8 u- m6 V; a
- ;;; This function allows the user to get a listing comparable to the LIST7 a/ b# z- A- p/ D w5 d; x
- ;;; command for most objects. In addition, most object fields in the
9 T, U3 o0 a. @+ M' g6 ` - ;;; dialogue box are editable. Points can be specified dynamically by: I0 b* W9 z. p& ~+ B% e! T
- ;;; temporarily dismissing the dialogue box. Each object has a unique3 Y0 Z9 R- @/ P, D) |8 |! z6 F
- ;;; dialogue.
4 h9 }, ~2 Z$ ?3 e9 ?/ s1 S7 A - ;;;" E" k7 V7 N" Y& s
- ;;; Naming conventions
0 i8 W9 s1 J8 m# Z. d5 H6 V - ;;; Long function and widget names may use an underscore "_"' z$ q5 `. ]- Y
- ;;; in their names to make them easier to read, long variable
# s# s c9 g3 G0 J - ;;; names use a dash "-".7 [3 p. W, c; z! F+ @
- ;;;----------------------------------------------------------------------------
0 j2 F% V; }' m" F+ c8 G - ;;;----------------------------------------------------------------------------, d; |* y# Y# v. X
- ;;; Prefixes in command and keyword strings:/ b1 K! H U5 y
- ;;; "." specifies the built-in AutoCAD command in case it has been0 o( m8 P; p9 {
- ;;; redefined.
6 Y- m" [/ F! x" H4 l7 u. b4 p s - ;;; "_" denotes an AutoCAD command or keyword in the native language
9 F7 K+ z6 ~1 g5 l1 t4 r2 C - ;;; version, English.
+ t/ e7 B: K) b - ;;;----------------------------------------------------------------------------
" t1 ]: N' t& D4 l# H - ;;;
9 a$ A+ D0 ]& C$ Y" c* U, e7 y9 A - ;;; Avoid (gc)s on load to improve load time.3 ^$ e0 D' }1 \ V
- ;;;
. a$ I) ?8 ?6 L - (defun do_alloc (/ old_allod new_alloc); O8 P% \) |. a& [" e) A
- (setq old_alloc (alloc 2000) new_alloc (alloc 2000))
( t7 ~& T0 v% z - (expand (1+ (/ 17000 new_alloc)))
2 h* v! b9 B1 T, q - (alloc old_alloc)
) a& H# G/ b+ Z5 {- H/ [' a$ `8 @% T - )
3 |0 q3 c/ F7 B V - (do_alloc)
/ N( B& q* ?$ K2 p4 l+ c, k' t6 F - (setq do_alloc nil)
4 F3 e5 c) n/ A: u/ @8 ]4 t
2 S( Q5 j4 r9 x- W- ;;;1 O. @, }3 o \% g( t
- ;;;) l0 t" k9 _, U
- ;;; ===========================================================================4 U% }% ?5 }* F; S# Z3 a
- ;;; ===================== load-time error checking ============================/ g7 ]( \& H" H
8 d: h& f, y1 k) t- (defun ai_abort (app msg)
; k; m6 b9 K) H - (defun *error* (s); E) B# }( q: m0 J! G% J
- (if old_error (setq *error* old_error))
" v& b" ^" P9 k' ^ - (princ)
8 n+ a7 S m, N' E& A! S; h; `3 e3 D/ u4 t - )
& t \0 `6 g8 E4 x* {% M+ p5 c9 [ - (if msg+ m3 w! H( b* J8 m. | |
- (alert (strcat " Application error: "8 B4 j/ U2 [. J+ @2 g# E+ Z
- app5 G" Q4 ^( z4 E1 L% t
- " \n\n "
$ Y- }8 |! C o5 K: J: r5 ^7 P - msg
1 ]! G$ o o8 K - " \n"
' @) Y; J+ k2 ~7 f2 w2 T - ), \# w! s0 ~% Z' i5 q9 y
- )$ x) @/ c3 z; `1 i$ R. u
- )$ k7 S# r) P- s8 f3 l
- (exit)
1 I/ F$ v' {# j" A# |; R' `) _! J - )! m0 y9 Z# x% r0 y/ a' O
- S2 a- q( g7 ~3 [) i- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
* g( V' d, @3 o$ c$ g& b/ b - ;;; and then try to load it. If it can't be found or can't be
0 Y1 r% `9 l8 j4 u3 `/ | - ;;; loaded, then abort the loading of this file immediately.5 P5 H# `1 M4 G
- + D; P7 t- b0 `8 t% b6 O& e
- (cond; }" c' L9 X% E5 T ~
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
5 }( U: h2 M9 y, k7 J
a0 i0 X7 A: Z; z& V5 @- ( (not (findfile "ai_utils.lsp")) ; find it
. x1 G: ~' v$ V; L1 I: A" g - (ai_abort "DDMODIFY": X- Q+ ^/ Y6 j$ o& \' u
- (strcat "Can't locate file AI_UTILS.LSP."4 c% u5 D3 C4 A) H% }) \
- "\n Check support directory.")))! t' ~ [1 P0 C, X4 x
- . z1 q5 y- Y, e( E* ?6 U- e1 J( ]2 l
- ( (eq "failed" (load "ai_utils" "failed")) ; load it Z6 n7 g6 [6 [( J8 Q
- (ai_abort "DDMODIFY" "Can't load file AI_UTILS.LSP"))
! f3 r& W5 {- w" M( V2 }' a( [ - ); g% e1 _% n n2 d# W; ~4 L$ F; z
7 A" Y8 l! ~: t. E/ y- ;;; If we get this far, then AI_UTILS.LSP is loaded and it can$ h: H6 m k: d9 a
- ;;; be assumed that all functions defined therein are available.
; V5 c) @( C, l- C d4 J7 t
1 _! Q1 j9 x' n4 b# Q5 H0 f- ;;; Next, check to see if ACADAPP.EXP has been xloaded, and abort
( v1 k3 X3 e& s1 Z" R* [ - ;;; if the file can't be found or xloaded. Note that AI_ACADAPP# _/ j" p5 i" q2 r' Q8 u& Q
- ;;; does not abort the running application itself (so that it can
" K1 J. G, C8 B/ T/ F - ;;; also be called from within the command without also stopping2 T1 z( M4 w- r F
- ;;; an AutoCAD command currently in progress).) @' k2 i* b) W4 u9 o% ^7 c, y# m
8 [- q ^7 E; N- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
6 q' `3 R, S$ h - (ai_abort "DDMODIFY" nil) ; a Nil <msg> supresses' i& z' a M" l% N3 ]2 ?
- ) ; ai_abort's alert box dialog.
. M" _0 e# @0 X! O: d- h4 z7 G - V/ C) P% {/ O
- ;;; ==================== end load-time operations ===========================$ ]* |2 y0 i7 p, A. N* S" @
9 C2 K. k: a+ ?/ }) H- ;;; global variables# S$ W4 a/ M8 o; @5 Y
- 3 Y/ Q/ _ S! T) T
- (setq hatch-elist nil)8 F7 j) n0 F' R; b f5 c- z+ H: n4 p* Q/ {+ `
. _8 e% d$ |; @9 U; y! o0 k' j- ;;; If we get this far, both ai_utils.lsp and acadapp.exp are
( P) k; B& w. b/ l - ;;; assumed to be available.' u+ @; `3 S1 S* i& I
% `1 J8 N+ T1 e, n6 {8 I- ;;; Define and encapsulate all subroutines that are declared
& ]7 l+ a" e, A/ V$ m) }9 P - ;;; locals of the (ddmodify) function.
4 m ?) E9 j' r/ f# y9 ] - 2 n* n3 L' t1 B' I
- (defun ddmodify_init ()& R- H" Z* R( t: m1 v& ~
- ;;# E. j8 x" \/ o, ^- N
- ;; These three functions modify the enitity list for common properties. Since
0 J' w+ G; C4 [; O9 ~: c5 J* O - ;; color, ltype, and thickness are absent from the object list when they are
6 v2 N$ m# Y6 J) X* h+ w$ m& T - ;; set to their defaults (i.e. color = bylayer), a simple substitution using6 w& o. x- S2 g
- ;; SUBST is not possible.- Z& t" b/ b$ c* E2 K4 T4 q& n
- ;;
; [( R9 s' z1 F2 s/ e% P5 M+ Q& y - (defun modify_properties ()9 X3 m+ v2 f$ ^4 c/ M1 c
- (emod ecolor 62)1 N. b# Q. o( D7 p# v/ E2 R' f& j
- (emod eltype 6)' }, j/ N7 m, x& Y3 ^' F8 h2 [
- (emod ethickness 39)$ h$ j1 ]& \, m. Z j% {
- (emod eltscale 48)& l' x! v1 S, C q. ~6 D$ n- `* k9 `
- (tempmod elayer 8 nil) Z7 j' {8 V- ?
- )
; `/ p+ G+ P' t9 U/ }% `9 d - ;;8 Q- m0 k% n, M4 _' R# `
- ;; This function is used for modifying common properties of the ACIS% o9 C4 r w1 o1 I4 S, r- w
- ;; based geometry objects. Thickness is not valid for these objects
7 R) F+ ~& i1 D( I1 e. i7 `( I) ^ - ;; so it is left out.2 |* p- w2 z1 Y5 F" {3 a
- ;;) M6 a+ y( c5 v/ @0 N2 ?- r
- (defun modify_prop_geom (), r0 m0 h4 V6 `- n j A
- (emod ecolor 62)
% u; y) @" `5 h; T' ]7 z/ M0 Q q - (emod eltype 6). [& E1 `6 x7 P9 y
- (emod eltscale 48)% T Y' N+ s$ J1 `
- (tempmod elayer 8 nil)
6 O: ?1 s4 f% C5 v( n; T - )
9 ^0 a0 n, C0 @) ]% u - ! Z% Q0 D- b' K2 k! `/ b9 t+ h2 k
- (defun emod (value bit)% R; o- M, O( Z) L7 |
- (if (= bit 62)8 l/ r7 j9 n4 g' k
- (progn
" m. F' G3 c- h( O0 ^ - (if (or (= value "BYLAYER")2 y+ A( d7 k; G* d8 N
- (= value "BYLAYER")) (setq value 256))+ W; Q- x, M- {. s$ S3 b
- (if (or (= value "BYBLOCK")
+ ^0 l% l1 R K1 N% W* z3 ~8 c - (= value "BYBLOCK")) (setq value 0))
7 H+ |6 e( e( M+ x7 V - )
3 H4 k! j I, M" T - )
! J0 |! L3 _- F' l - (if (setq oldlist (cdr (assoc bit elist)))* Z+ g- w9 z# O$ n" w* D0 k, F4 h
- (tempmod value bit nil): @! n4 F+ b% }9 z* f5 e4 {
- (setq elist (append elist (list (cons bit value)))): K! t! G' U! p
- )
' \+ X! Z- O/ Q+ o2 r - )
# O D( \) [6 \. J( C - ;;2 |% A" ~# Y: Y) B8 G
- ;; Resets object list to original values. Called when the dialogue or
8 Z/ I0 } Q. |0 t; { - ;; function is cancelled.
( v) ^2 w1 P+ S3 B1 w6 C0 `+ X - ;;) [2 F) t; Y9 i
- (defun reset ()
9 {# y% T+ w* ?- X - (setq elist old-elist$ h {/ g1 G# n; U% t) d; x1 k
- ecolor (cdr (assoc 62 old-elist))5 U8 j) ]0 P4 `% H
- ethickness (cdr (assoc 39 old-elist))
% X1 }% v9 ~9 Y - eltype (cdr (assoc 6 old-elist))( V3 A# }& r0 |' e* x! H4 h; K
- elayer (cdr (assoc 8 old-elist))# ^( v% y+ U. b# x
- eltscale (cdr (assoc 48 old-elist))
# R! L& W$ F% l3 w1 A5 p$ u3 w( h - )
7 ^7 O% C% T/ i6 d - (if (not ecolor) (setq ecolor "BYLAYER"))
8 V2 t2 m3 Z' {4 O7 b0 A& y u - (if (not eltype) (setq eltype "BYLAYER"))# z- A$ g) t' m' g9 b
- (if (not ethickness) (setq ethickness 0))
, P. M" C4 D6 V+ p3 D - (if (not eltscale) (setq eltscale 1))
C* F6 S3 ^- E4 O7 [ - (modify_properties)1 L. Z, C4 i5 `$ W4 `5 ~
- (setq reset_flag t)
' [6 y: k4 L7 x/ t; K9 G/ V4 ? - (entmod elist)) Q# U. K4 B3 J/ a
- )
) F* }) h6 f- q5 k# b2 y7 ~4 g - ;;. j9 H( L0 _- [( n" U6 ]' B/ d a
- ;; Modify object when dialogue is temporarily dismissed to reflect latest
) g+ m l6 [" m9 V+ t( I - ;; settings of dialogue. It converts the point from current UCS coordinates to
: U( N6 U4 ~1 M. P) q - ;; the proper object coordinates (world or object).+ W3 {: N$ l+ E+ `2 V0 [
- ;;
# A2 ?( [. m5 n! v: M - ;; Arguments: value - in current UCS coordinates* X- Z1 B! t& q0 _+ p8 \; P& Z
- ;; bit - object code (i.e. 10 for start point)
9 i9 U& n5 i; S b8 E& W) o - ;; ptype - point type 0=world 1=planar
1 X* c* E% A! Y; h - ;;
! y" I$ x. ^* w q, E' n - (defun tempmod (value bit ptype / newpoint)6 ?3 r* q# q- b' i8 z& B j
- (cond1 Q* J5 F. c5 _
- ((= ptype 1) (setq value (trans value 1 ename)))$ C$ i/ D% k) _5 l J6 q+ s
- ((= ptype 0) (setq value (trans value 1 0)))
- T: Z. q5 Y; q - )
# T* @+ c* ~6 b0 ~0 t9 a/ I - (setq elist (subst (cons bit value)
* h9 S0 q" N* Q# t9 q5 Y2 u - (assoc bit elist)
, r; S+ e- s* |! [7 l1 @ - elist
$ {. G# y5 Y y; N p - )& i* e& ~0 M3 ~: p6 f4 w Y8 }
- )# f C1 p F5 i" _! V
- )
% L, w6 {) G0 @# u: M - ;;& w" f: U# Y0 w1 X3 j
- ;; The following functions are called after a dialogue has been temporarily) j. U' X( `3 [3 Q
- ;; dismissed and the user is selecting a point. If a point is selected the
5 ]) V& P& W# y( m; d - ;; object list is modified and new X,Y,Z values set. If no point is selected
+ t" n. M3 D# J5 U9 B; R - ;; (null response), then the point is reset back to its previous values.1 r$ U8 ?1 r0 u$ c3 J$ n
- ;;! x; o# W! q% O4 G( |2 m
- (defun ver_pt1 (ptype)
& B* }8 D- L q' D0 T+ q C' k: l - (if pt1
! Q l. d1 n- J) D7 x E* T - (progn
) {" L1 |; X# F, _. r - (tempmod pt1 10 ptype). }$ V6 }2 i3 u1 `
- (entmod elist)* T: g3 e9 v8 H
- )) ~. g) y5 M$ A1 F1 g( {1 N
- (setq pt1 (list x1 y1 z1))
) N/ h+ ^/ g" b* n6 o% h - )9 ]! L" h2 K& l
- )3 a2 l6 j6 R1 e! h
' w. q, ~& \# k; S5 \8 a- y- ; (move_pt1 <ptype> )* l3 J; L( j; ?- F8 j8 P
- ;
% r6 _4 E ]& T6 N; o - ; Called in liew of (ver_pt1) to translate block insertions which
3 w$ V- ~2 n0 @6 C& k - ; might have variable attributes attached to them. If the distance, t2 Y: S! x, D, \ L7 `0 ]
- ; the block is to be moved is < 1e-6, the move is deferred.
: c3 n! Q" K9 G - ' @' T; s0 y% M2 L4 R6 k# w* v6 u
- (defun move_pt1 (ptype / basept hi)
- _4 ]/ r' ^+ U( Q5 Q. k - (setq basept (trans (cdr (assoc 10 (entget ename))) ename 1))" y/ G3 z/ o A& k3 {
- (cond
$ I4 ^ k. y9 o, |- y7 B B, q! k - ( (not pt1): I1 q4 i8 p* e( C
- (setq pt1 (list x1 y1 z1)))- b) \5 R, X" a. c2 j, r+ b
7 F: X$ W" T [) y7 ]/ w; V- ( (> 1e-6 (distance pt1 basept)))
* t Y" k8 c: W! ^3 [- G - 7 Q- q" I' p, T: z
- (t (tempmod pt1 10 ptype)
" C; m& M$ O) Z9 G; h - (setq hi (getvar "highlight"))
' B) [, e6 P# @& D9 B" k% [$ o6 ` - (setvar "highlight" 0)4 C( x Q7 S/ Y) `( e, w
- (command "._move" ename "" basept pt1)
" B# t3 p$ g/ }2 v7 | a. N& Z - (setvar "highlight" hi)): G8 ~9 t6 j* ^1 }8 |! t
- )) H) o7 ]$ K @! f2 V' S
- )5 E6 R, x$ h. D% r" {- A
- 4 v6 { {+ X+ I' C5 p3 _; q
- (defun ver_pt2 (ptype)- t' F# |5 F. L% O+ x4 @) v
- (if pt2
5 Y# b u' v5 Z& w6 [ - (progn9 g* m4 ^6 }( Y
- (tempmod pt2 11 ptype)/ J' F, H1 O; Z
- (entmod elist)( T* k# m; X9 {5 p1 n
- )
7 o/ u H* J4 D9 v) d c } - (setq pt2 (list x2 y2 z2))6 L# V$ Z3 T! [
- )& o0 T9 j1 }% Z, V. t* h
- )- Y3 U) P( q% x1 s% G; q
- ; G- K3 @& z7 j& |) V9 I
- (defun ver_pt3 (ptype)4 |+ d3 _: _0 d8 q. f( t- C
- (if pt3
9 ]0 U( L. I0 _% g! |* b" h - (progn6 K- a+ e2 W6 u5 o, @9 P2 F
- (tempmod pt3 12 ptype)
% W# ?) A& g% f a, P - (entmod elist)
4 g+ d5 q. P8 W7 N. I& n - ) O! n" l' K1 H! ]1 d! D
- (setq pt3 (list x3 y3 z3))! n) ~9 E; y' \6 e& o6 F1 i
- )" m8 s9 P7 J4 Q- Y- I1 z3 A
- ); r% o& Q5 i1 F0 p1 ^, W& q8 `& R6 _
8 d c5 ^- U% |& s- (defun ver_pt4 (ptype), W. W! ?1 ^( \& w
- (if pt4
! o, i s6 y9 f6 _# M+ D( y - (progn
, M9 H: f8 ~! D" f+ L - (tempmod pt4 13 ptype), s0 ` A0 {8 J; \0 M0 f7 q" o4 I2 f
- (entmod elist)
* a, |+ Y( {1 Y- e) V7 m - )
" s2 P) A& m& x" y) e- V - (setq pt4 (list x4 y4 z4))
+ Y& E% [% t2 P$ H' Y% } - )$ d& M! V- I$ J& L( E
- )# y; T' p! ?, v- p! G
- ;; Xline/Ray, l4 T4 I8 ]( a# |
- (defun ver_xline_pt1()
+ L# x# q' k* E# p' o( A, o3 m - (if xline_pt17 M; s* ?# b# D7 J3 v' g
- (progn
' R/ ~+ o l/ S% Z - ;; convert to WCS.
7 Q3 `7 n* x) w/ Y - (setq value (trans xline_pt1 1 0))
& K* ]+ ^! u; P) F# s. B$ t* ` - (setq elist (subst (cons 10 value) u% A9 J+ B5 |0 s) C, f% z; _
- (assoc 10 elist)
" c0 D6 s3 M% D9 i. ] - elist
/ v0 h2 m2 v; E; K. Q - )6 ` k4 t. j! w/ X% w
- )& k& Y# J/ p* r4 V6 M2 W
- )
( O0 r# m) l4 b4 A - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))4 L1 K1 c' W0 w" P+ g. t
- )
0 ^7 V% s6 T6 f( Y l+ W6 G- L" O - ): v. _3 g8 d8 Z6 G2 X) R
- _, P4 K* r( [; x" W# [3 Y- (defun ver_xline_pt2()9 ]5 R7 Z2 ]. Q6 N: y! J9 P# l
- (if xline_pt2& @) o, g: D- \5 ~ Q
- (progn
; |4 n; X! Y8 a: {$ A. b1 f - ;;# i1 s* E" U8 T9 x$ I9 ]+ b4 I
- ;; Calculate new Direction Vector WCS
0 j O5 F" Z, M9 y7 y1 `; z - ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))$ w( ] z5 T2 s# `4 e8 h' t
- (setq temp_dir (trans xline_pt2 1 0))
X! A: a9 G/ `$ I5 ?- t0 M - (setq temp_dir_x (car temp_dir))
6 q$ ]- S& Y# f* T. @ I- { - (setq temp_dir_y (cadr temp_dir))
* \) v# }+ C( W0 I a - (setq temp_dir_z (caddr temp_dir))( ]5 g6 Q q w5 v- ^$ j
, o0 w- t; [8 t- (setq temp_xline_pt1 (trans xline_pt1 1 0)), |. M* H8 [; M) v4 F1 T
- (setq temp_xline_x1 (car temp_xline_pt1))
8 [" O n* _' V* q1 e - (setq temp_xline_y1 (cadr temp_xline_pt1))+ L/ E$ ~5 j# u8 s( ~
- (setq temp_xline_z1 (caddr temp_xline_pt1))
' X7 \+ [( J7 m# n* L - 2 ~; S6 h- j# Y( b% x( n( Q- `
- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)
* _3 _, P' K$ S* d C2 F+ P$ w* T - (expt (- temp_dir_y temp_xline_y1) 2)
, d& o/ {9 J- E9 b - (expt (- temp_dir_z temp_xline_z1) 2)
5 T6 r& L; q d3 j1 F4 P- d1 w1 J - )))* A2 U: P; Y) k/ P- z
- (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))+ M& q# D, @$ \6 g# T) R
- (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))1 q8 Q, D+ F1 z1 J0 Y( ]! E5 y$ E
- (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))& F# f7 ~% V) ]- { u0 E
- (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))
& R: t1 i% v8 M- }/ ~: d ? - (assoc 11 elist)
5 V0 E* ?3 P8 n1 j$ s# o$ d+ E2 [ - elist
. ~5 G( u, R9 H, n2 A* d2 q - )
" i% K: x0 R+ {' b - )
) t e* F: Q: z0 r - (entmod elist)) U" z( T% W: U( L2 j
- (setq xline_x2 (car xline_pt2))
+ k7 i) G2 D! f% v7 H% h - (setq xline_y2 (cadr xline_pt2)). J$ b: p1 R1 q; h3 l5 D g
- (setq xline_z2 (caddr xline_pt2))6 ^& f* w, L& X7 y
- 2 [/ G; B S* R5 N' u( A+ C4 G; G& Q
9 n" h6 J! C5 n6 M- ), F" {' i( @6 _8 m! Q$ E# m
- (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))! s# F T: R! p; O4 C4 h
- )
3 Y8 ?5 K. f# K/ |9 [ - )
9 u) ~. u3 }! x D: w7 Y$ ^
* Q A6 q; ~0 ?, [; a4 Y- ;;+ b; {0 Q1 U2 A3 a# J# ^
- ;; Common properties for all objects
3 c* ]- ]2 `" ^6 E& w - ;;
& V: K9 H: e6 k; I$ ^& H - (defun set_tile_props ()4 @0 i* @& J( J0 @1 @: S$ d
- (set_tile "error" "")2 C, t3 s0 v- A. l
- (setcolor)3 w; g9 p! R/ z- b" V& A) r, n& o
- (cond ?# ]8 _: C, u$ |2 _, b4 O/ ?8 G H
- ((= eltype "BYLAYER")
+ k% c2 Y( \# s: W& k - (set_tile "t_ltype" (bylayer_lt)))
! p/ O8 x: K: Q$ ? - ((= eltype "BYBLOCK")
% _5 S; A) ~, k- K0 k7 ^ - (set_tile "t_ltype" "BYBLOCK"))
l1 c# w, V( y- x) t, | - (T (set_tile "t_ltype" eltype))$ c2 \% C9 ~9 u. R7 b6 B# i
- )
, b& L d- r& |4 ^ - (set_tile "t_layer" elayer)- d3 d# a" j7 {
- (set_tile "eb_thickness" (ai_rtos ethickness))6 u0 T* C2 T1 Y, P3 h
- (set_tile "eb_ltscale" (ai_rtos eltscale))
; N9 J m" Y" } e2 [8 H L - (setq which_tiles (ai_common_state etype))
! a- ~7 q- f/ f: W/ R" C' j - ;; Disable tiles if need be...
! g' ^ ~1 }" s6 | G: A* g$ t3 S - % w5 [9 s( Q1 ~
- ;; Layer Button and Text Field
: x. f. o u$ i6 F6 @1 a - (if (/= 1 (logand 1 which_tiles))
& V4 d- M# r; a! a1 N- j - (progn- D/ n8 X6 c! s6 Q; Y3 _( c- _/ W
- (mode_tile "t_layer" 1)
/ t4 O: j2 U7 Q- G6 ~9 ]+ m6 b - (mode_tile "b_name" 1)9 M8 k4 O1 X3 ~1 e$ p! @ q) |
- )
2 p+ I0 {# L! E3 {' d' d6 L - )
: H9 a) w- p) u) y - ;; Color Button and Text Field
) l6 S" Z1 n F2 J0 j* D, C0 g( [ - (if (/= 2 (logand 2 which_tiles))
$ F/ m& X3 i$ D5 s6 M+ V - (progn. y6 }# I9 H+ F
- (mode_tile "t_color" 1)* a3 ?; b0 i M+ A, S8 J
- (mode_tile "b_color" 1)
1 _' a( Q& u+ y" \7 A - (mode_tile "show_image" 1)* P( R3 R" \, W" e# _) I
- )
5 [! }7 T# D2 f - )6 ]0 U! @6 ~8 S9 D" d3 ~' [& a
- ;; Linetype Button and Text Field
7 w4 t2 ^2 Q& R! F9 H. a' R) ^; M - (if (/= 4 (logand 4 which_tiles))% _% F( k0 b. M& c b
- (progn% l, A0 J- R5 A6 X8 O
- (mode_tile "t_ltype" 1)
; d) `/ u3 @, I; r, L3 `2 p - (mode_tile "b_line" 1)
" Q) U- U7 i! M - )
! ~ C/ N" k% y' {' C - ), S. k* ?: N1 U) p9 X8 j
- ;; Linetype Scale Edit Field
+ E) \7 p$ ? p9 P* B0 y! @$ g - (if (/= 8 (logand 8 which_tiles))
4 o m% ^0 {7 _ - (progn
* m5 |4 T7 O; K- U6 M8 z - (mode_tile "eb_ltscale" 1)2 M- }8 T/ m+ Y2 r9 \$ J
- ) m" _4 l: \0 z2 D8 I
- ) J9 G- ~" t9 k( D. _
- ;; Thickness Edit Field.* |, P5 x4 L( M5 L$ Z: Y9 i
- (if (/= 16 (logand 16 which_tiles))4 m8 J$ H" u2 E8 U$ @
- (progn
7 n3 Z8 I+ }3 u2 C - (mode_tile "eb_thickness" 1). M! Y0 f `2 r" m* G
- )) [3 n4 \3 b4 x6 H" G0 C+ G
- )7 Z/ A0 ?0 S# n' T, n9 b
- )
5 n3 @% F4 s5 h! R* L - ;;
$ X8 ]% ?4 N9 s6 e1 y, T - ;; XYZ Point values for all enitites
7 _9 [1 Q) O5 F1 N - ;;$ Y" A- m9 E; b
- (defun set_tile_pt1 (ptype)2 b4 f) ~! h: r4 @
- (if (= ptype 0)$ D; t/ `% P. p3 n! Z3 B
- (setq pt1 (trans (cdr (assoc 10 elist)) 0 1))
7 q( k( G4 J3 W5 \4 O) W1 W$ A; ^8 s - (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))+ ~9 x5 A6 E( g7 K' X& W1 P4 a
- )
7 O0 L: l1 d- m- } - (set_tile "x1_pt" (ai_rtos (setq x1 (car pt1))))# u: |) i: [8 Y, [
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr pt1))))
8 F# _% \9 h2 O0 m9 r" q - (set_tile "z1_pt" (ai_rtos (setq z1 (caddr pt1))))
8 b. T+ m; S1 ^( Q8 ?- ^ - )
2 A2 w2 E( O' j! `6 u/ C: T - (defun set_tile_pt2 (ptype)5 {' j3 ^" A Y6 [ {% A) U
- (if (= ptype 0)
4 n; `$ b" W& i# F% M - (setq pt2 (trans (cdr (assoc 11 elist)) 0 1))
( I8 P, F9 B( i+ X+ g' o - (setq pt2 (trans (cdr (assoc 11 elist)) ename 1)): ^& ]$ v; w# o8 r0 @
- )
1 Y! d( b' J$ _7 |6 E# t' Z9 P1 x - (set_tile "x2_pt" (ai_rtos (setq x2 (car pt2))))
: v9 l6 e1 M" i7 R% T3 [3 l - (set_tile "y2_pt" (ai_rtos (setq y2 (cadr pt2)))); l9 ?& S& _5 Z
- (set_tile "z2_pt" (ai_rtos (setq z2 (caddr pt2))))- F0 x. P- ~; {/ d* d! ]' y1 C
- )
|! q' j, `. i' l& @* Q3 X- S - (defun set_tile_pt3 (ptype)& T& a' P1 q+ P. _
- (if (= ptype 0)' m% \4 V. ^: p% U4 M, {
- (setq pt3 (trans (cdr (assoc 12 elist)) 0 1))' J$ M6 y" x# q, C# {& V. C, m) \) E
- (setq pt3 (trans (cdr (assoc 12 elist)) ename 1))+ t* h* }+ }9 v
- )1 }+ {( `2 E3 ?" U# |) o+ Z
- (set_tile "x3_pt" (ai_rtos (setq x3 (car pt3))))9 b4 J8 ^( n! O+ w: O
- (set_tile "y3_pt" (ai_rtos (setq y3 (cadr pt3))))
" d' H# k+ {( h* g5 a - (set_tile "z3_pt" (ai_rtos (setq z3 (caddr pt3))))
. O, B, v# q. Z1 g - )
, R( p2 z. g% C Q$ G2 }8 G _3 S - (defun set_tile_pt4 (ptype)7 N H4 U3 y% l6 W( X: W7 C. [ c
- (if (= ptype 0)
" y- @% F, [1 s2 N - (setq pt4 (trans (cdr (assoc 13 elist)) 0 1))
! R9 z6 f4 F, L: ]. k, L8 k# R - (setq pt4 (trans (cdr (assoc 13 elist)) ename 1))
; ~7 m8 H4 q, g" R/ G4 ` - )* b5 D' S1 a& ?6 n4 g7 x
- (set_tile "x4_pt" (ai_rtos (setq x4 (car pt4))))
9 n6 a5 Z; S* D8 Z T - (set_tile "y4_pt" (ai_rtos (setq y4 (cadr pt4))))
4 Q6 D; x1 R: g5 R. ^& q# l - (set_tile "z4_pt" (ai_rtos (setq z4 (caddr pt4))))1 G$ }7 l* w* ?# h7 K
- )
* J1 S" D: R, _ - ;;
" x3 k4 I: i: L F1 F& e - ;; Xline/Ray' F$ H/ Y5 P+ H) E1 f: S* ?
- ;;$ P6 V% D6 M. N4 F
- (defun set_tile_xline_pt1 ()
! s0 _' C, Z b; Y
. w5 }) D; w' s1 p0 u9 Z- (setq xline_pt1 (trans (cdr (assoc 10 elist)) 0 1))
' U1 a+ @: `, P; b" l - " l+ Y8 f# [4 P, l/ ]
- (set_tile "xline_x1" (ai_rtos (setq xline_x1 (car xline_pt1))))
( i5 t6 G9 u z" k# W( X) o: N6 [ - (set_tile "xline_y1" (ai_rtos (setq xline_y1 (cadr xline_pt1)))), _3 G7 ^6 _2 \/ n6 e
- (set_tile "xline_z1" (ai_rtos (setq xline_z1 (caddr xline_pt1))))5 E Z( J& }+ y8 z. X: Z- C/ G
- )( a* G, k; L6 L u+ u
- (defun set_tile_dirv ()
, T* o: s2 \: d7 Y$ h- p/ B9 V+ Q - ;; Convert 11 group to local UCS (displacement)
~! x2 k! G1 m* Q - (setq dir_pt (trans (cdr (assoc 11 elist)) 0 1 1))4 D, G% p( w- |- f' a6 y3 \- i
- v* C8 i" E- t: Z z
- (set_tile "dir_x" (rtos (setq dir_ptx (car dir_pt))))
0 o% E) |& ]) | - (set_tile "dir_y" (rtos (setq dir_pty (cadr dir_pt))))5 f. t7 ]/ i/ ~% d9 S6 i* {; d
- (set_tile "dir_z" (rtos (setq dir_ptz (caddr dir_pt))))
+ ?4 c; k0 y5 W! W. Y - )
# \9 h; l0 o& s I$ k - (defun set_tile_xline_pt2 ()
. x! `: W1 D7 F5 K! @ - (if (not xline_pt2)
- i, c9 n6 J, h- z+ Z' ^# F1 O/ o - ;; Initial second point is Root Point + Direction Vector
9 \1 \5 @) `% L- t }# N. y - (setq xline_pt2 (mapcar '+ xline_pt1 dir_pt))5 C& ^/ a# y6 r+ N
- )( q" n3 B3 h& O( A* R
- (set_tile "xline_x2" (ai_rtos (setq xline_x2 (car xline_pt2))))$ d) r' h: j- D* g
- (set_tile "xline_y2" (ai_rtos (setq xline_y2 (cadr xline_pt2))))
& Y% L" L3 l: X5 ~9 C( p) v3 i- l6 M - (set_tile "xline_z2" (ai_rtos (setq xline_z2 (caddr xline_pt2))))
7 F; q D$ p$ C1 M - )% Q+ _3 }. `9 A: H+ q g. L+ P
- 2 W' Q( I' h6 S: _2 e$ k
- ;;
( Y0 J' E. d# \6 K( E - ;; Handle for all objects1 I7 C1 u' F/ c: {1 R2 Q. e, s3 I1 ?
- ;;
. N! g( t3 x4 `0 l) D - (defun set_tile_handle (): N7 ~- |) ]4 G, R9 } M' r5 _
- (if (setq hand (cdr (assoc 5 elist)))3 J+ I% R: t: G& Q* i: P
- (set_tile "Handle" hand)1 k# k5 L' _! ]
- (set_tile "Handle" "None")" t2 w0 {2 T( R* R5 d
- )) e) q% X3 X2 O8 K' u9 o- g
- )
- O y3 k [) ^; Q. l9 o" c - ;;
" w2 \( }- V6 y9 f& X; y$ D2 R5 D+ n - ;; Radius for ARC and CIRCLE) @; r* Q- \5 m8 R
- ;;
& _4 Z4 W4 J2 [0 H3 B7 | - (defun set_tile_rad ()9 ^6 b1 Y* I8 m6 T
- (setq radius (cdr (assoc 40 elist)))/ @6 }7 D" Q- }: L2 q( P
- (set_tile "radius" (ai_rtos radius))
: J! k4 R' M c5 \7 B z - )) z0 l6 o: y& a$ N
- ;;; B% l$ T% w8 N! F
- ;; Start angle for ARC
% h' v" Z' v4 G( \6 j) w3 h) p - ;;& [# F0 m. Q' Y4 }4 p
- (defun set_tile_stang ()
7 M4 u9 n! J9 K- R1 N9 L - (setq st_ang (cdr (assoc 50 elist)))2 Y' r. s: S# u/ R6 k+ O0 U. Y% `5 F
- (set_tile "st_ang" (ai_angtos st_ang))0 u& W/ Q8 O& ^. d6 y; j) p8 x
- )
% ]& G# ~ t8 c6 O/ E% ? - ;;1 J/ h9 r1 O# R" c; m5 q/ D" ^9 {- i1 K
- ;; End angle for ARC$ F; R* c2 t: l# b
- ;;
4 B2 H# l: N: E6 Q. ~! v, e+ T* e- J - (defun set_tile_endang ()
; v* G) I. {+ R: ~) e* y - (setq end_ang (cdr (assoc 51 elist)))
8 I: z8 R: t: s/ w; i - (set_tile "end_ang" (ai_angtos end_ang))
/ G* J$ G! O) f8 _% A - )! ^( j- l9 U9 ]9 W
- ;;
& F% f7 W$ b5 [2 Q) m - ;; Rotation Angle - Text, Attributes, Block insertions and Shapes
8 [# l& k) d @4 G. B, u2 z - ;;+ \# }2 X% Q5 P9 `; d: [
- (defun set_tile_rot (): o# {& `9 R# n+ E6 q
- (setq rot (cdr (assoc 50 elist)))
" R `; u! R' S- j: A H" p - (set_tile "rot" (ai_angtos rot))8 _0 O8 z# t1 t) E+ l# s4 X
- )0 G1 n: L6 H' V5 O( Q" g
- ;;
- d% v* D) h/ O& `% ?( b0 Y# c+ |4 u - ;; Height - Text, Attributes and Shapes: n' ?0 X: k4 I0 N- r3 @, p* a/ g
- ;;
8 f/ c$ t+ b; ^/ r& [: W! g7 R - (defun set_tile_hght ()
; X# q) O n: s; x - (setq hght (cdr (assoc 40 elist)))9 A7 b1 o) c5 ]- A0 O; {
- (set_tile "hght" (ai_rtos hght))
( \: D, q# |5 J1 M0 X9 N - )
, b; F( P9 k7 Z, T/ `8 { [; B& A - ;;
8 q7 S$ g. n. q4 A - ;; Width Factor - Text, Attributes and Shapes
( Z( r7 e/ a& A: l - ;;
' i( W/ L9 b" t" l8 T2 J& s, V2 T - (defun set_tile_wid ()! q; O* D: H; T: G: `
- (setq wid (cdr (assoc 41 elist)))# n9 F/ m$ x# \( X- E$ z# z7 @
- (set_tile "wid" (ai_rtos wid))# y2 W( P" f6 f8 T. x" k
- )
" @( h5 `5 N* _2 U( \$ x% x' M - ;;
) f' D9 I6 R' H' y - ;; Obliquing Angle - Text, Attributes and Shapes; C+ x& r9 U. }- X
- ;;
" S% l# M Q) W% X2 J. R% g) i Z" z - (defun set_tile_obl ()
/ W: [. A4 o: | @/ g - (setq obl (cdr (assoc 51 elist)))" M# v o8 y3 I5 O
- (set_tile "obl" (ai_angtos obl))
" J3 U2 y! H# \ - )) P! l* j* y& @; @
- ;;# e1 g3 R ^9 x6 ~3 {8 u3 y
- ;; Text string7 a3 t w+ y, V7 ?2 K1 }
- ;;
/ b& Z9 A H. b# H- t+ n* k$ C - (defun set_tile_text ()) `: V, R1 a! H5 i# \1 Q, }
- (setq text (cdr (assoc 1 elist)))
, S! X! z1 j5 {6 X - (set_tile "t_string" text)- D, @4 L: t9 E
- )& d3 \) H3 A( S
- ;;, U9 `7 ~3 M4 E& Q
- ;; Attribute Tag
' R$ l& }9 c# R2 h" ` - ;;- f' p; L. f2 I3 w
- (defun set_tile_tag ()
+ w. a/ j8 H' N' Y: N: |# j - (if (= etype "ATTDEF")- }0 q0 A1 g1 {% n# _; N' \
- (progn
# }: v, T6 V v - (setq attag (cdr (assoc 2 elist)))
& }/ F5 D: y% t& N - (set_tile "tag" attag)+ ~9 j) p/ G8 X- f3 o5 t; V
- )
; \: W7 f1 ]( Q$ C6 G - )5 E! U# |/ j; Y8 V& F) a
- )0 R* B& e/ S( X" ]7 A
- ;;) T4 C( l$ m" J" _6 {6 n
- ;; Attribute Definition
. w' F7 V/ U. t5 M - ;;
9 N+ T5 e4 g K5 y - (defun set_tile_prompt ()
- T" M8 ^+ J' ]* I) s: ` - (if (= etype "ATTDEF") J% c& i. M C- N: a% O2 f+ \4 u r
- (progn5 a2 l. X* ~ O! O
- (setq atprompt (cdr (assoc 3 elist)))( Y" h0 ]. w' M, V$ [% W, u
- (set_tile "prompt" atprompt)2 F( N, V0 h4 O9 U- K( f
- )
9 H9 _7 w S$ V - )
9 v/ k, Q/ @2 l9 n' b - )' H, h/ P. v/ r* X
- ;;4 W n/ M* e8 }1 M9 k' U
- ;; Justification setting for Attributes and Text. Initializes
$ {$ H% `4 S3 ?: H: K. o - ;; popup list box6 p9 h( k9 @. Y1 G5 i
- ;;+ k$ z, M; E$ ?+ Y+ U# _+ l
- (defun set_tile_just ()- O( ^+ P) \9 @6 h- ^
- (setq ha (cdr (assoc 72 elist))) ; horizontal alignment8 p: u' S2 d# \! a) V/ t5 L
- (setq va (cdr (assoc 73 elist))) ; vertical alignment5 S# M6 M( A9 s& u
- (setq ha-prev ha)
' Q/ o' ~: J' \; ]8 u% r - (if (= etype "ATTDEF")- Y) {$ b5 q% x
- (setq va (cdr (assoc 74 elist))) ; vertical alignment
' \/ j5 V) Y* X4 y( E/ q - )9 L0 U4 i' E/ _- E+ N
- (setq jlist
% w* f5 M) Y* M7 y - (list "Left" "Center" "Right"7 i3 V, P! C0 F6 j0 t8 D/ J9 L
- "Aligned" "Middle" "Fit"
- |5 Y: Z( Z" E3 ]8 h4 f/ M { - "Top left" "Top center" "Top right"
4 y& j) E& S' @& ?" S" c" S - "Middle left" "Middle center" "Middle right"
% N$ [# \) u) o - "Bottom left" "Bottom center" "Bottom right"+ U! E# O& B/ S+ W N1 l& c
- ). U5 \' S& J, T
- )* J- L0 [: b$ v" E8 P+ y# Y/ ~
- (start_list "popup_just")
! l# b8 u7 E: y3 [( f" O7 `# q - (mapcar 'add_list jlist)3 G8 @/ J/ M. t% \
- (end_list)
: Y; G( ^* D" p* B% F - (set_just_idx)5 ^6 O6 m R, U$ P
- (set_tile "popup_just" (jlist_act just-idx))
; O! ~; p! l4 t( r2 f0 c; u - )
8 @! R) O" }. B1 }7 @0 Q - ;;/ Y0 E. q, f0 V
- ;; Style setting for Attributes and Text. Reads symbol table for popup list; M$ p* Y$ T O! F" o7 H2 _1 v( ~3 H9 V
- ;; box.
3 s( K2 `! H" c5 k& w1 W$ F- D1 x- ~ - ;;
+ [! o, }+ f3 L' c2 i: b! c2 l - (defun set_tile_style (/ sname style-idx tlist)# a9 [# M" ~7 a- j4 u& S
- (setq tlist (tblnext "STYLE" T)8 N" a3 i7 E8 ^: U- m- ?
- slist nil)1 g: b: ^* }* h, \- W, p" M
- (while tlist
7 n6 B$ j& y( q* r8 p% L( Y! g R - (setq sname (cdr (assoc 2 tlist)))
! s- z0 E; s- j& `7 u3 |! r& T - (if (and (/= sname "")) f7 \8 `9 b+ P* F/ B
- (/= (logand 16 (cdr (assoc 70 tlist))) 16))
0 W; m1 U/ h" E/ W6 q& i - (setq slist (cons sname slist)))! V H, l9 F6 [ I( Y; E
- (setq tlist (tblnext "STYLE"))): U" J) z' e& a0 K9 C
- (if (>= (getvar "maxsort") (length slist))7 _ Q- |" U. q, V W
- (setq slist (acad_strlsort slist)) ; alphabetize style list0 f8 O5 @, l- ?7 n
- (setq slist (reverse slist))) ; or reverse it to put it in DB order
% u9 K3 X7 N. d6 Q - 9 q8 x0 ^ c8 W0 l+ e, R
- (start_list "style"): T/ S: P F- T6 K
- (mapcar 'add_list slist)
6 n u/ ?) g: V! D) M2 | - (end_list)7 i7 @7 _6 J. l/ g- s. W
- (setq tstyle (cdr (assoc 7 elist)))
# p4 [& w5 A/ P) C - (setq style-idx (getindex tstyle slist))! S, f9 @4 W, o, a! s- r* ]
- (set_tile "style" (itoa style-idx))
- }2 t' J N# b: n w. a - )5 G: N' b/ F! @& F$ e& F
- ;;6 M+ u3 q- ?. p$ w* K- M# S6 p
- ;; Text and Attribute setting - upside-down, backwards2 n/ ]' M" n) ^ M5 s
- ;;! I! j- Z( p) u1 j" _
- (defun set_tile_bk-up (); u* K P& i( O1 ?1 ^4 `, ?$ h1 t4 U
- (setq bk-up (cdr (assoc 71 elist)))( U5 @% T' G; C1 ?! o1 b3 S- T
- (if (= (logand bk-up 2) 2)+ R2 _+ ^1 }7 L, S& y/ z* Z" e
- (set_tile "bkwd" (itoa (setq bkwd 1)))9 ~/ P+ F7 [- i* _7 n8 k
- (set_tile "bkwd" (itoa (setq bkwd 0)))
% B, C3 u, e" W7 s/ ? - )
: _0 P) }( A4 F7 r) {. { - (if (= (logand bk-up 4) 4)( \/ F# |$ j/ z: Z$ q! j4 l9 G
- (set_tile "upsd" (itoa (setq upsd 1)))
- w( C6 m6 j, J. m4 K! K - (set_tile "upsd" (itoa (setq upsd 0))); q! U3 h, i' x( d" d# }3 a
- )6 J3 C# N7 H' d( o
- )4 }5 D, Y9 O9 g9 X- f& }# F
- ;;1 m! S! A# s# H
- ;; Attribute setting - invisible, constant, verify, preset/ h* ]/ W5 z _0 s% x8 t- ]
- ;;
1 C( {- {0 M) u% C" {. v - (defun set_tile_icvp ()1 Y* o2 b7 U6 _8 G/ c T
- (if (not (setq icvp (cdr (assoc 70 elist))))
/ m, c, ~& D) d- ` o! x/ ? - (setq icvp 0)
+ b" s) ~* g- N' i9 h, G* B# ?: _ - ): p% I* H3 n: F) t: x/ o% _+ c
- (if (= (logand icvp 1) 1)
: g/ f1 C2 I: |6 D: }2 s9 y) o - (set_tile "inv" (itoa (setq inv 1)))+ f7 @* Q" K' D( |9 J
- (set_tile "inv" (itoa (setq inv 0)))
3 _$ w2 k( N/ X6 m1 z - )/ _$ o$ P$ \: W4 h7 U/ ^* U/ H
- (if (= (logand icvp 2) 2)
" A9 Q0 U5 O& n- v# U% c - (set_tile "con" (itoa (setq con 1)))( g; v2 j% _3 U& {2 j
- (set_tile "con" (itoa (setq con 0)))
$ L- s1 K6 Y* r- C9 X# C+ r - )
: r! }+ P- D# Z1 H( G - (if (= (logand icvp 4) 4)
' [: P1 i7 x7 e; [ - (set_tile "ver" (itoa (setq vfy 1)))
8 O T4 ]0 q n; n$ v, ~ - (set_tile "ver" (itoa (setq vfy 0)))
b! V. ]( j- I6 q1 X - )
9 |6 o8 d5 J# O: D2 F5 X! h" P0 B - (if (= (logand icvp 8) 8)
3 k: Y, Y) J$ h5 d+ o1 {* V5 a+ f - (set_tile "pre" (itoa (setq pre 1)))
" c4 d& K/ l1 l3 @! c, ? - (set_tile "pre" (itoa (setq pre 0)))' ?4 f' I. M% f% Y; B
- )
' j4 d* t5 w7 R, B" [ - )
. M# p1 [$ L- b ]% H - ;;
* J6 {0 S5 Z: x7 H# X. }! P - ;; Scale factors for block insertions
4 p; W9 E2 J) j$ H - ;;
) e; F3 J. l% p: i. H3 ^( d+ h/ O$ o - (defun set_tile_scale (/ temp)$ ~+ {4 Y5 F" I: m6 ?" T+ a
- (setq temp (getvar "LUNITS"))
2 ?4 f4 t4 q: `% \1 f - (setvar "LUNITS" 2)6 ]% i) z" q8 G4 r! i% m
- (setq xscale (cdr (assoc 41 elist)))
+ J0 D# v- H b - (set_tile "xscale" (ai_rtos xscale))
6 k5 g7 W" |$ |9 T: m) r; ? - (setq yscale (cdr (assoc 42 elist)))
9 _2 N/ _7 y& Q# ^4 V4 d - (set_tile "yscale" (ai_rtos yscale))
$ c F' m; k, K9 H! z+ \ - (setq zscale (cdr (assoc 43 elist)))
6 C- a( f- O+ M) w" G2 O - (set_tile "zscale" (ai_rtos zscale))
+ R8 C/ \* m$ I- w* K1 U - (setvar "LUNITS" temp)8 `4 j$ \0 t1 [' q3 C
- )! x! V+ G7 b/ V2 O$ ^
- ;;0 l% E: v n8 D/ c/ u
- ;; Rows and columns for block insertions# Y4 f& v) x1 P8 \
- ;;
$ @" F! n0 N2 R: ^7 u0 B, D - (defun set_tile_rc (), Q9 M* I8 Y! a4 n: m/ S
- (setq columns (cdr (assoc 70 elist)))
2 m6 t* h( B, ^- z- o- E" [0 N/ t - (set_tile "columns" (itoa columns ))9 g( N u7 u' s* b1 e: }0 @
- (setq rows (cdr (assoc 71 elist)))
) C. W! T' R: r2 H* u- _- S - (set_tile "rows" (itoa rows))7 _2 @$ c; I' g% I- ^( f
- (setq col-sp (cdr (assoc 44 elist)))
/ n9 I0 u2 J/ ]' p0 ? - (set_tile "col_sp" (ai_rtos col-sp))
- c! ]2 S1 Z( c0 {; k - (setq row-sp (cdr (assoc 45 elist)))
! V. F7 E" m5 |% Z% J/ D6 [ - (set_tile "row_sp" (ai_rtos row-sp))# E5 Z, y# @( n( a& U$ A
- (if (/= hasclip T)9 m2 B6 t! Y8 {+ O4 C2 m( Y
- (mode_tile "xcliponoff" 1)! r( G. T. f- A! d. d
- (set_tile "xcliponoff" (itoa xcliponoff))
1 ^! t4 y u' l" G9 s9 f% \8 w - )
/ v* y4 @* Q1 L1 x - )/ c& i7 ~' B& X
- ;;( ?+ A2 }* R6 j, p4 V
- ;; Invisible edges for 3DFACE
3 w& f7 f3 N# B) ]0 o: e: } - ;;
5 R2 G7 V2 n" ~! y' W - (defun set_tile_edges ()
2 q) v9 {9 q. \8 ^: b( S8 h& O - (setq f-vis (cdr (assoc 70 elist)))% A6 y, E$ }+ E0 u
- (if (= (logand f-vis 1) 1)
8 K |+ P$ o0 @7 X - (set_tile "edge_1" (setq edge1 "0")); O( t- V$ J. H2 M# K' V! \; n
- (set_tile "edge_1" (setq edge1 "1"))1 b% ^' h( A' k; y4 z0 T
- )
$ P# ], }4 K: ^* u% G/ l( M - (if (= (logand f-vis 2) 2)
4 r2 q3 [- L- e( _* g" [( T( O - (set_tile "edge_2" (setq edge2 "0"))
E0 ]: p% A9 ]; M8 ?0 X. ~, ?" @ - (set_tile "edge_2" (setq edge2 "1"))$ ?' W# U# [& n% j) w
- )
. N8 F6 D5 I+ _: [+ J - (if (= (logand f-vis 4) 4)/ A5 h- `" B3 _: d8 K
- (set_tile "edge_3" (setq edge3 "0"))9 i: S1 D W9 v( |( w& z( M
- (set_tile "edge_3" (setq edge3 "1"))0 p5 e$ n" j1 ^4 L( i+ _2 P+ N" J
- )" {, P$ K! q V2 _& X0 |
- (if (= (logand f-vis 8) 8), ^) ?; }& L$ }
- (set_tile "edge_4" (setq edge4 "0"))6 R6 Q( a6 U3 W- Q
- (set_tile "edge_4" (setq edge4 "1"))' H* t: e# @! {) P
- )
' y2 O2 ]# Y6 F0 m( @. U7 E4 R - )6 U! c* E. R- D/ i
- ;;* [4 E; T" W9 N s
- ;; XYZ Point values for polyline vertex
1 k, v8 U6 ^( y5 d" f. D - ;;
) n m1 m0 A% X6 \, B1 i - (defun set_tile_vpt (ptype)9 s9 w7 _/ r$ J; Q( ?6 T
- (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")
3 \$ \0 V2 ?+ F+ u - (progn' l( e/ L2 U# S' c: ? ?
- ;; ctr is 1 based, vertices are zero based./ ?& b5 t' W% y0 U: p4 U+ T; Y4 h
- (setq vpt (cdr (getLwVert (- ctr 1))))
( ?1 j& x% X& ^5 o9 D - (set_tile "xtext" (rtos (setq x1 (car vpt))))
, B5 S, D8 a8 h" c5 b1 k$ r - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
! W0 t' G: _9 x$ W - (set_tile "ztext" (rtos (setq z1 (caddr vpt)))). A. v" O K# ] }$ ^1 S
- )7 @% h- W+ G6 @' |' [" ^2 J, D+ N0 c
- (progn2 x& h& d& s2 M4 d9 P9 Y# x
- (if (= ptype 0)
! a+ X* {2 K( Z X8 q* M - (setq vpt (trans (cdr (assoc 10 vlist)) 0 1))
. Q5 v2 S* V2 V, U7 N8 J, i - (setq vpt (trans (cdr (assoc 10 vlist)) ename 1))
# Q. j! W* V2 u/ s1 [ - ), z! v) x& O9 Y. I% ~! U
- h2 ?. |! Z8 S/ h7 M5 y
- (set_tile "xtext" (rtos (setq x1 (car vpt))))+ N" g8 T6 i' h" C- |; g4 V
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
3 o. {6 X' h' s% u& V& e: X. x - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
$ ]/ J+ P3 _4 j - )) q' y2 u& A8 `7 ^* m6 V& e6 @% D
- )5 o3 g! d4 D% R, v
% e1 P) @. v. S& e% v+ N2 f. B6 w6 Q0 J* [- )' L$ O9 k+ b1 h L* I% }
- ;; This is the equivalent to doing an entnext on the heavy weight
: x# H# I* z, I/ U x% A - ;; polylines. The hard coded '4' below allow stepping over the
8 C0 E- p9 B" g6 S! r' ?% T - ;; 40 41 and 42 group code information. The while loop finds the0 K9 _$ J, [4 h7 |/ l" N- r/ |
- ;; first vertex which will be used as the starting assoc in the, u* T( V# D2 ~' e3 j9 N
- ;; call to nth.: N0 i3 n* H/ l* l
- ;;' E7 Z# f/ u' {! ~) ^' w! i
- (defun getLwVert (tmpctr / count tmp)
* s" ~. y% k$ s. w9 @ - (setq count 0)+ f; w. L2 {# i' m6 |6 C. ]+ Z
- (while (/= (car (nth count vlist)) 10) v0 J! U. P7 c) B A
- (setq count (+ count 1))
4 E: a3 S4 h- M, j1 Q; ~7 x, Q - )+ i5 j3 ]; [/ |2 f6 F6 j$ \4 y
- ;; If the counter reaches the number of vertices,8 l; I& }( H. t0 F% O5 y
- ;; reset ctr and tmpctr to zero again.6 X) G( K1 J( j: }" o, o
- (if (= tmpctr (cdr (assoc 90 vlist)))
8 G) I. ^2 x% ` - (progn% v5 p4 y, x" i( {4 ~
- (setq ctr 0)
) _; u# T, `, i2 y* L. N1 q - (setq tmpctr 0)- }2 H, _% p4 X$ L/ L
- )
$ `8 l! [' O$ ^, e7 H - )' q; |! f$ H& q, E
- (setq tmp (nth (+ count (* tmpctr 4)) vlist))
4 _+ P" n9 M4 N1 U9 q( z9 Z+ Q - (setq tmp (append tmp (list(cdr (assoc 38 vlist)))))
7 J. t. h6 d5 e0 j# R1 l - (setq pt1 (trans (cdr tmp) (cdr (assoc -1 vlist)) 1))+ O" w- @& |7 H& H0 s
- (setq tmp (cons 10 pt1))
@ k7 |, u6 i A - (setq tmp tmp)% {& j- L; Y& x6 m! _% |
- )
0 [1 E' m9 | \3 u - ;;
- x$ B$ O7 d" J6 c - ;; Set tiles for Spline properties. If the spline is rational then we
" Q# E$ g4 h; M$ y - ;; need to display the weight values of the control points, so set7 Q) q( x7 A' K6 r& V* u
- ;; flag to 1.9 q1 `, E/ J7 V; R
- ;; 1 = rational spline' e4 ^: J7 k+ P) j/ s$ ]1 J, F
- ;; 0 = non-rational spline
* o8 r' a3 ?8 T) R- n7 w4 t9 O8 ^5 S" Y - ;;) ^1 u# }( y) u7 t" ~
- (defun set_tile_spline_props ()
6 Q8 L. P: U9 _/ v; W0 L2 ] - (setq rational_spl_flag 0) ;; initialize rational spline flag
" o5 g" r. }8 U5 ` - (set_tile "Degree" (itoa (cdr (assoc 71 elist))))( ~# Y. z, {6 d! Y
- (setq bit70 (cdr (assoc 70 elist)))
: c9 b q; f2 ^# Q0 U - (if (= (logand bit70 1) 1)7 F4 a) y, t' c. a. ^
- (set_tile "SpProp4" "Closed")
0 U7 D; K4 ?, ^' z- S - (set_tile "SpProp4" " ")) e6 ^( K! {# I3 x9 c Y! T
- )* W% s2 O. j. z8 [" k! O
- (if (= (logand bit70 2) 2). n6 b3 k2 o1 o8 P( R
- (set_tile "SpProp3" "Periodic")
8 O: f; ^" ~4 k2 H; w0 n - (set_tile "SpProp3" "Non-Periodic")
1 e6 h) k. D" C9 X - )
. [& ^( {! ~! s- z6 g% d* I. t - (if (= (logand bit70 4) 4)
' K* x3 _6 ^' |" \/ s - (progn
, O8 o- H3 v, g8 l - (set_tile "SpProp2" "Rational")
9 g- V( j2 E/ S, ?, L: X - (setq rational_spl_flag 1) ;; this is a rational spline
) S2 C! c) ^- f2 K# r: u7 c) ? - )
! R$ A6 f1 \# l. z# V$ T - (set_tile "SpProp2" "Non-Rational")
6 r( L A9 \4 f' V+ j7 s% E6 D - )
( A/ s- O1 p' O4 ^9 B4 K* H - (if (= (logand bit70 8) 8)
" t& S+ i2 L5 g7 v - (set_tile "SpProp1" "Planar")) |3 y9 ?* u( u, A
- (set_tile "SpProp1" "Non-Planar")
% D# J% K* V0 A2 b& f+ y# H+ W& Q - )
3 E/ L5 r0 G5 Q+ K - (if (= (logand bit70 16) 16)/ y) J, N9 L4 L$ d8 @/ k
- (set_tile "SpProp5" "Linear")
: X. p! r6 W& f1 e# V$ i - (set_tile "SpProp5" " ")
$ j( K; ~7 K# |0 T/ N - ), \" Z8 e! B- o7 ~
- )
8 r7 p" f* V! L4 H! Z$ ]6 ] - ;;
# L- ~9 D9 M2 B. R @ - ;; XYZ Point values for spline points9 e& q; a+ g- g: x% e
- ;; Need to account for WCS/UCS
: y+ l( d* s8 T1 g - ;;
+ Q3 V. ]; S' B+ ?) I - (defun set_tile_cntl_pt (); g* e2 j( C* N2 {& p, L
- (setq cntl-pt (cdr (assoc 10 elist)))
: d: C# f/ C9 a! S2 ?- o - (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))( Y8 T2 e2 p8 `1 Z; j+ c( B
- (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt)))). C: _, _2 B& r; ?) G
- (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))# s/ j, S, h6 o9 r$ r1 }5 d' I
- (if (= rational_spl_flag 1) ;; if rational spline% D# Q+ s& `5 G
- (progn ;; show weight
0 u5 u& v$ ~2 A - (setq weight (cdr (assoc 41 elist))), U9 @/ w1 @/ v+ ~2 @
- (set_tile "weight" (rtos weight))( L5 R" E3 R. u3 [5 x$ \
- ) ;; else
+ c3 l- R; n7 C$ r1 r9 g- Z% C - (mode_tile "weight_text" 1) ;; disable weight field4 a6 D* I' o3 t& J
- )
+ m2 R8 f2 m$ G# f5 d- M5 q - )
7 K/ A; g& v, s4 | - ;;* i- y6 U! T. \0 E9 p) z$ Z
- ;; XYZ Point values for spline points
% M" r U( ]- v! t- B% _8 j - ;; Need to account for WCS/UCS. [8 ]0 v! f% x, h' V. D8 I
- ;;
7 [- h1 ]7 ]% T2 r# u \8 \4 w( ? - (defun set_tile_data_pt ()
* r: @7 z+ d# H# d* l - (if (not (assoc 11 elist))
' A. V2 Y: _ ^1 J. N0 R5 w - (mode_tile "data_pts" 1)1 P$ d# `* S/ Y
- (progn! S# Q) n# ]8 D W
- (setq data-pt (cdr (assoc 11 elist)))
1 E8 l% _) z& u. D' h4 l: L# r - ;; display points with current precision.
, U+ A1 b6 A2 r - (set_tile "dxtext" (rtos (setq x1 (car data-pt)))), Q4 M& ^9 u% p$ H
- (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))9 U% T; g/ ]; K
- (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))
. [% @1 G, w, s+ H; d* {! m/ N - )" r% B. ~4 E0 r7 Y; f. x- c7 d
- ) e/ s9 r2 l1 O3 V' k) \% i
- )
5 ]5 Z- m, w. H/ A1 x* { - ;;
1 E1 g3 [* @( l6 J$ W: Q# W3 d5 s - ;; Fit curve, fit spline, or smooth spline surface setting% ]) q3 S5 H1 a) n% r) s; k' l3 K
- ;;4 W4 a1 f; [/ {# F
- (defun set_tile_fitsmooth ()7 M% i/ R! i9 h+ S" r$ Y1 n
- (cond, g5 D1 H' ]4 M# z
- ((= (cdr (assoc 0 elist)) "LWPOLYLINE")
! z$ G) V& F: f# P9 D! U, C - (set_tile "none" "1")# t/ c q' I1 p, h" s/ O9 M" [
- ) E) c) c: U" z$ g2 U# w
- ((= (logand bit70 4) 4)
4 `" ?$ q V: d) g - (cond
6 A" k, x$ L9 Q( x g& [ - ((= bit75 0)
! W2 g" c/ q& N7 \" P - (set_tile "none" "1")' O3 t. L3 m [4 {* H' m( |
- (setq spltype 0)
% k/ L" \$ P+ B# Q6 E: C - )* f- e, E) Z& Y" b
- ((= bit75 5)* }' G, K3 v+ F8 ?) J$ e& }$ Q V
- (set_tile "quad" "1")
& ^5 {& S( m& \* h! G& D/ ~- P - (setq spltype 5)5 E% l! u+ k, x$ G
- )! n9 n+ O" b) `* \3 H8 O6 f: d4 @
- ((= bit75 6)
% P, s# B4 h8 y# e6 T5 i2 W - (set_tile "cubic" "1")
b2 a) G$ s5 k, M3 n - (setq spltype 6)
1 O. a/ S o* D: I" D v6 [; e - )
, t1 t% U& u2 L( d - ((= bit75 8)4 P# o' Y6 t$ v3 A# E- F. A2 e0 d
- (set_tile "bezier" "1")5 E4 ^' P# q6 r9 ~1 O4 {
- (setq spltype 8)
( @4 Y+ S/ Q; n; j5 X3 {" D - )1 N. t h- [ x$ N: P/ S( C/ s+ H
- )6 r4 H5 E1 o, ~. j' @# T# `9 l
- )
- O# g: K: L4 H, D* b% z - ((= (logand bit70 2) 2)
& K7 c+ k) f0 Q K4 x" z - (set_tile "fit" "1")% j2 c! w' j% G. f0 j8 x
- (setq spltype 1)
! f2 e; j; X. a4 v, u- y/ E& ^! C1 h - )
1 _! k0 F8 C8 f - (T (set_tile "none" "1"))
' l+ f4 ?7 }: {$ C1 v - )
# H& s! L4 ?; o" e - )
! g; A$ S( p* R8 a) \1 b( o - ;;
6 X. j- _! c/ I! I( h {- M: u - ;; Closed or Open mesh and polyline setting m5 M" V0 `3 ]- _1 s
- ;;
% p3 y- J6 Y) R; ]# F - (defun set_tile_closed ()4 C+ o; }% W( {& \
- (if (= pltype "3D mesh")
6 z/ U5 j( T* f: Q - (progn
: }, d Y" n1 [ - (if (= (logand bit70 32) 32)* { r/ I& c7 D" w* u1 K
- (set_tile "closedn" (setq closedn "1"))# W, K8 |( P+ F: R( T, M* o
- (set_tile "closedn" (setq closedn "0"))
; Q& P8 J1 O# L9 E - )* I. f! `0 p R; I+ J
- (if (= (logand bit70 1) 1)# G0 @# ^4 z' [/ W) j8 v
- (set_tile "closedm" (setq closed "1"))
0 Y% C$ @5 b' x* l6 @. z - (set_tile "closedm" (setq closed "0"))9 j- i6 V" b4 Z! ]- k6 [
- )
3 I4 j' `& Y. N c% e# _ - (setq old-closedm closedm old-closedn closedn)
- g ]8 b2 L+ W! ` - )
* D: z+ ^6 A* I: ?1 x5 R4 d5 d/ F0 ]$ _ - )2 C" \! ]" Y% H
- (if (or (= pltype "2D polyline")3 W3 |8 b3 p6 w% O, b' W
- (= pltype "3D polyline")! l3 {. X# m- e" w
- )+ z& M$ y0 J1 D5 f! T3 Y
- (progn
/ e- u" J: J% {+ h m" Q1 R - (if (= (logand bit70 1) 1)
. N6 ^9 {! w" O6 m, n* i - (set_tile "closed" (setq closed "1"))
/ I# ^" ?( e0 I+ J% W - (set_tile "closed" (setq closed "0"))' J. O9 |/ E$ O# j) K0 s
- )8 z! J% b# c3 }- [% o' t4 a6 u
- (setq old-closed closed), }9 Z- }. [% X5 T) x
- )
! t1 d) f6 d/ x \) v6 |7 j+ P8 h - )
& K( }9 w. ]. Z3 K6 w4 m9 h - )) K' \" Q* r5 i5 H, N4 i. ^. _
- ;; Set common action tiles8 B: I* q2 M) E. s/ R* T+ F. d! k7 X& b, \
- ;;
4 |" E' d( I& w' }% | - ;; Defines action to be taken when pressing various widgets. It is called
4 g4 ]0 |/ ^% q - ;; for every object dialogue. Not all widgets exist for each object dialogue,# e' @7 w$ F) q# V& i4 u8 j1 j
- ;; but defining an action for a non-existent widget does no harm.( Q1 b& y3 B# c/ b! g# b4 A
- (defun set_action_tiles ()) R) x; u& Z! F8 j2 e
- (action_tile "cancel" "(dismiss_dialog 0)")1 L0 N7 ^/ ?+ }# l2 w9 b3 F! `# d, h
- (action_tile "accept" "(dismiss_dialog 1)")% x- u0 Z; Q% y: n* p5 `& A
- (action_tile "help" "(help \"\" help_entry)")7 g- K* R) w* `3 X6 Q+ G
- (action_tile "b_color" "(getcolor)")5 [ q5 K0 m3 A# Z9 ]+ _3 Y
- (action_tile "show_image" "(getcolor)"), D k0 N# y/ N! A
- (action_tile "b_name" "(setq elayer (getlayer))")
- v2 v- g8 {' P3 w$ E6 k- l2 T# ? - (action_tile "b_line" "(setq eltype (getltype))")2 z3 l+ g( p. ~$ k1 A
- (action_tile "eb_thickness" "(getthickness $value)")
1 J# X- V s3 f# X# G- j8 R4 k/ P - (action_tile "eb_ltscale" "(getltscale $value)")/ F6 ?# `5 x P0 b: t! `
5 |2 |6 |/ M" ^/ O- (action_tile "pick_1" "(dismiss_dialog 3)")3 W2 s# p) u' q5 C' x1 G
- (action_tile "pick_2" "(dismiss_dialog 4)")
8 L2 T7 X7 x7 s - (action_tile "pick_3" "(dismiss_dialog 5)")
& a) Y s3 r7 a+ O' X# ^: t - (action_tile "pick_4" "(dismiss_dialog 6)")" A* M( O8 |3 E& U" r( n7 ^
- (action_tile "x1_pt" "(ver_x1 $value)")) X; |, V2 }1 T- v3 R2 \- U* G% o4 N. _
- (action_tile "y1_pt" "(ver_y1 $value)")# x( f4 B% o; F( q
- (action_tile "z1_pt" "(ver_z1 $value)")& x7 e4 A1 l8 n# [- B
- (action_tile "x2_pt" "(ver_x2 $value)")' v1 W, ?3 X& T* D; d3 w, q3 E. \( }
- (action_tile "y2_pt" "(ver_y2 $value)")
. f _7 `8 U, h9 m& G - (action_tile "z2_pt" "(ver_z2 $value)")
: m" I0 j3 f2 U+ Q - (action_tile "x3_pt" "(ver_x3 $value)")2 ^" ]% O; H( C5 R5 k# ~0 @* A c* M
- (action_tile "y3_pt" "(ver_y3 $value)")
6 X* K3 u: s) z. D - (action_tile "z3_pt" "(ver_z3 $value)")3 l2 n% D& F7 X
- (action_tile "x4_pt" "(ver_x4 $value)")) Z- V: ~9 @ J5 {
- (action_tile "y4_pt" "(ver_y4 $value)")( a3 L: ], a. D, j4 ^; c( N( g
- (action_tile "z4_pt" "(ver_4 $value)")
' ^4 Y3 l' |$ k2 Q; P
. ^* s) u; N5 G- ;; Action tiles for Xline & Ray
( |5 I/ N. ~5 w# q& e' V. H - (action_tile "xline_x1" "(ver_xline_x1 $value)")
) r* E& z; j) o( O+ W# V - (action_tile "xline_y1" "(ver_xline_y1 $value)")! z' c' v4 K! \: S: m4 @
- (action_tile "xline_z1" "(ver_xline_z1 $value)")
6 _, ~$ i' E1 [$ u6 t& C - (action_tile "xline_x2" "(ver_xline_x2 $value)")
; p; }8 i; ~- D2 I% S$ ^! E - (action_tile "xline_y2" "(ver_xline_y2 $value)")
0 x( J; e9 U1 O& s* D4 B' \ - (action_tile "xline_z2" "(ver_xline_z2 $value)")
9 _9 j# W* x6 V* m - 5 ^, S" F: ^& z D, o# t
- (action_tile "edge_1" "(setq edge1 $value)")
+ z3 f# K& d- i - (action_tile "edge_2" "(setq edge2 $value)")
- `0 _% @! m! p. E - (action_tile "edge_3" "(setq edge3 $value)")+ z3 P1 C. J; o) n
- (action_tile "edge_4" "(setq edge4 $value)")0 g/ E' S4 e l6 g/ u% R% U. m& R
- # t8 U" | [+ `* \4 d- Z4 Y. [. O% j/ G1 O
- (action_tile "radius" "(ver_rad $value)"): k( c1 i) L* `
- (action_tile "st_ang" "(ver_ang1 $value)")
' l3 U" P& `( u& s1 h1 z - (action_tile "end_ang" "(ver_ang2 $value)")
- R( M$ X( K; h - (action_tile "end_eang" "(ver_eang $value)")
' \# l# p1 g9 ^ - (action_tile "minrad" "(ver_minrad $value)")
/ ]0 Q9 c3 t( A& t T( W - (action_tile "majrad" "(ver_majrad $value)")
/ b5 v8 r% Q9 a - , P" |8 M! u/ h! |% D4 \# I7 z" o! F
- (action_tile "xscale" "(ver_xscl $value)")- W8 f: t) z, ^4 m/ {: [
- (action_tile "yscale" "(ver_yscl $value)")9 y/ d$ m8 r; d- x. r4 ^
- (action_tile "zscale" "(ver_zscl $value)")
. {$ u/ Z+ ~; i! g; P2 t, f, z1 a) u* v - (action_tile "rot" "(ver_rot $value)")
: Z# M E1 I& ]* I4 {2 J3 E; B - (action_tile "columns" "(ver_col $value)")
, z3 @* C) F. S2 i( s0 M3 v - (action_tile "rows" "(ver_row $value)")
7 r. M+ O) t3 y6 J( n2 f - (action_tile "col_sp" "(ver_colsp $value)")7 y2 O- H8 |% y F3 S: L8 e
- (action_tile "row_sp" "(ver_rowsp $value)")! I, _+ I" m( |
3 ]! ?2 P3 U! J2 v2 t& ?) b- (action_tile "hght" "(ver_hght $value)"): d( V, T2 `& [ R
- (action_tile "wid" "(ver_wid $value)")
8 U8 k2 k7 {* F2 t! r2 E) j! C7 }0 @ - (action_tile "obl" "(ver_obl $value)")
6 I% `! [6 C$ _( a - (action_tile "style" "(style_act $value)")
, n( x# C' g6 x( L8 H3 v - 1 `( }5 c1 P& X6 m+ x3 |
- (action_tile "t_string" "(ddgettext)")
* \, { O9 k4 ^: B- f8 v( O - (action_tile "tag" "(ver_tag)")
" k0 l! L6 i6 H: l$ B P - (action_tile "prompt" "(ddgetprompt)")
4 P @% ^& a9 l4 A9 Z - (action_tile "bkwd" "(setq bkwd (atoi $value))")
7 J, W7 F. K; n9 F; ~* } - (action_tile "upsd" "(setq upsd (atoi $value))")( U( c2 r; ~, g) D2 v+ U/ [$ i
- (action_tile "inv" "(setq inv (atoi $value))")
7 G! m1 Y J) _8 N - (action_tile "con" "(setq con (atoi $value))")- Z+ w' m: p2 x) I ?2 c. a' M" u
- (action_tile "ver" "(setq vfy (atoi $value))"); X3 q5 n* A. o5 G
- (action_tile "pre" "(setq pre (atoi $value))")/ R2 Z% I0 J' h6 y
- (action_tile "popup_just" "(jlist_act $value)"), _/ n) q$ S+ M2 t
- / k: H1 S& N( U1 {6 [/ F
- (action_tile "closed" "(setq closed $value)")
+ m( G- ]$ d8 Z/ Y) V4 M! z - (action_tile "ltgen" "(setq ltgen $value)")
0 J3 ^5 Q9 |' h" B9 t - (action_tile "closedm" "(setq closedm $value)")6 n' B$ R0 L: t
- (action_tile "closedn" "(setq closedn $value)")1 \1 O4 z$ l/ `( a6 F3 i) h
- (action_tile "next_v" "(next_vertex)")
) L2 k5 n5 H* O; A1 v0 X - (action_tile "xcliponoff" "(setq xcliponoff $value)")
, v* ?/ o- w& [, J v1 Z6 ?! P
) Q" t( _$ `2 [1 e+ Y- (action_tile "next_cntlpt" "(next_cntl_pt)")
/ h1 {7 t/ Q, f- z8 Y% @/ R0 Q! v( s - (action_tile "next_datapt" "(next_data_pt)")
* W( L! n6 [) X0 u, e- d - 9 f+ w# T# V$ K+ q% p1 j0 }
- (action_tile "none" "(if (radio_gaga \"none\")(set_uv 0))")
" D: q' o& v( |# n' @+ i0 A - (action_tile "fit" "(if (radio_gaga \"fit\")(set_uv 1))")
& M6 Y4 K/ D n9 P - (action_tile "quad" "(if (radio_gaga \"quad\")(set_uv 5))")
$ N* A8 h, s( U - (action_tile "cubic" "(if (radio_gaga \"cubic\")(set_uv 6))")
2 g% S5 {4 y- [/ B) U9 a# n: ` - (action_tile "bezier" "(if (radio_gaga \"bezier\")(set_uv 8))")
5 d" I! ?) b/ Q7 B8 H0 N
2 k5 m* V- |) x0 x- (action_tile "u" "(ver_u $value)")/ ~6 j" Y/ A+ T2 t6 |1 Y
- (action_tile "v" "(ver_v $value)")
: @$ Q5 Y* y) ~) p3 w o+ Y9 Q" Y - )
/ P9 Q3 B$ y9 x l0 W8 r - ) L5 R- x5 ~; X
- (defun ddgettext()
5 v1 v0 X R8 \ - (setq text (get_tile "t_string"))
3 o7 b. m; [2 s9 ]/ H - )
# {% l( C% T' Z, F; l9 [/ ? - 0 S) O. A: A5 C1 T9 u6 E
- (defun ddgetprompt() {) U! s( Q& f A { N5 {
- (setq atprompt (get_tile "prompt"))% {5 G; R3 `/ U; K# _
- )3 y# L% I" r$ C
0 n& ]8 n4 i" m! ~! V/ b- ;; As OW doesn't support disabling of individual radio buttons within, t+ e( ~ o* D* Z) p
- ;; clusters, a check must be performed as to the legitimacy of the; Q9 t0 ~# r X) A9 ~( [
- ;; button pushed and reset if necessary.$ Y; g" U" c7 D
- (defun radio_gaga (pushed)
* k' L1 r4 c8 ^# z - (cond
6 ?$ e4 @ ]. l& Y - ((and (= pltype "3D polyline")
# v$ F- l8 R% i9 {8 I - (or (= pushed "fit")2 x4 V# J0 o, }) J/ X6 O9 V
- (= pushed "bezier")! r" u# @3 v& N3 P) R4 ] M$ A" i
- ). J1 Y s: Z8 E: A+ |. q
- )
! f0 a5 S5 ?% z$ C, G - (set_tile "none" "1")+ ]2 p; b C J" O) v* I
- nil3 y3 b- [8 P: k8 R+ j; J0 [
- )
1 o. j* O: I8 C6 R) V# G - ((and (= pltype "3D mesh") F. V9 z( X+ k$ ^
- (= "fit" pushed)
S: g+ y6 D6 ^9 m5 z - )( K/ {$ {: c; Q' A! N- k
- (set_tile "none" "1")' b* |9 E* N7 k1 b: M, _
- nil: X2 c' O, ]; ]3 V& x0 k( K
- )4 K; s- q2 N, t& D& L
- ((= pltype "Polyface mesh")
5 f) f( z. w* L" m- E - (set_tile "none" "1")9 h$ C3 j, e8 k1 H4 I' F! a
- nil3 s, W) s# v- Y4 I
- )
& P4 d# c3 j1 g V - ((and (= pltype "2D polyline")
/ S+ D0 Y2 N3 T; j7 k$ m' m6 { - (= "bezier" pushed)2 }1 x! o. M K& s( Q
- ); g3 L5 p5 q. l) b" a9 p2 ]
- (set_tile "none" "1")
2 M0 E% |# ~4 W$ z% L# W- ` - nil5 Q9 \9 J; i4 T7 L$ D! ?0 R2 n
- )
7 x$ ]+ X2 Z: E. _) o% _+ H - (T)" c; j' s4 ^; H5 D$ Z$ S
- )) Z4 c: @" X. w) G) I
- )) _* g0 o- V- N, J
- ;;
. w; q4 l5 l. z5 H4 h - (defun set_uv (type_n)! j7 G E$ l+ k$ \
- (setq spltype type_n)9 Z3 O! z y2 d0 l/ \5 E
- (if (= pltype "3D mesh")* i7 H [ L; I( N5 z
- (if (= spltype 0)
1 u9 Z9 k0 Z$ s% a$ _ - (progn/ t Q5 H- p3 W9 f6 s3 d C) \# Z
- (set_tile "u" (itoa (setq u 0)))$ m5 C9 S5 M8 ~5 G1 X7 G
- (set_tile "v" (itoa (setq v 0)))
4 r- b& _8 F3 G' @6 l+ O - )
4 h8 p3 @' y7 `7 R4 w- B$ C - (progn
, q8 M) c$ y8 t3 R- |% x - (if (= u 0)) ^, m9 q, f) v) A
- (set_tile "u" (itoa (setq u (getvar "surfu"))))5 M: ^+ n! S& C7 ?/ O8 U
- )
`, k1 i; Z$ |) v/ [" B. T$ O - (if (= v 0)# ]3 D" V! l* M3 z, I
- (set_tile "v" (itoa (setq v (getvar "surfv"))))) K# K1 z9 U; ?
- )% p9 A8 {2 W- ]7 `
- )8 P2 v- Z( Z# H5 r- w; F% |1 k
- )
7 K: s8 r% f( I: K" M - )/ [" Z; {5 o1 I( p. b# v
- ); |$ u+ s) }% _& ~
' f5 Q N+ D0 D7 n- ! {' H! J6 a6 \; l3 P) [7 Q
- ;;5 T& r/ `' M6 i, l4 i w6 \
- ;; Verification functions" R" D5 v+ Q) s+ b; u' r) H9 c
- ;;! }: \- M! w; M! K7 z( [
- ;; Verify distance function. This takes a new X, Y, or Z coordinate or" S& d% ~0 D2 Z& z% w! s, ^ [
- ;; distance value, the tile name, and the previous value as arguments.
8 B% Q4 f# ?' A i - ;; If the distance is valid, it returns the distance and resets the tile.
( n% p' j: E; a - ;; Otherwise, it returns the previous value, sets the error tile and keeps! i* w, g; @2 }5 t& R) Q% X/ M
- ;; focus on the tile. Shifting focus to the tile with invalid value can) c9 C# W( l0 w$ Q, B1 @! x) Q
- ;; trigger a callback from another tile whose value is valid. In order
: `' O* e& d1 N% s, r' r2 p: P - ;; to keep the error message from being cleared by this secondary callback, ~- ~( l' U9 o0 |5 v
- ;; the variable errchk is set and checked. The last-tile variable is set8 n% t, ^# i1 e* [
- ;; and checked to ensure the error message is properly cleared when the) s: H0 f! s4 T6 Z1 s0 ^
- ;; user corrects the value and hits return.: Z4 d2 a4 W, |1 k$ V
- ;;
. Z" l) k0 ]; V& R) D" |4 w - (defun verify_d (tile value old-value / coord valid errmsg)
v4 D4 L1 A: i+ w9 V5 M' o, G, c - (setq valid nil errmsg "Invalid input value.") u3 x. Y, ^+ t d1 c' ]5 P! n
- (if (setq coord (distof value))
5 M0 o0 b7 N) c; G* Y! c: x! f - (progn% M5 g6 |/ W/ O6 b6 x$ Z
- (cond
$ x/ k f7 b( o- |, s - ((or (= tile "radius")
, r! f( z$ L, J5 ?& P1 e* y: k - (= tile "hght")
9 z( H; F0 P U3 b2 Y - (= tile "wid")1 W* Y/ l* ]* _
- (= tile "majrad")* s/ P" W& g. M/ `, j& ^" t- @
- (= tile "minrad")
8 \6 Z8 j8 U9 s! m - (= tile "eb_ltscale")
3 @9 u9 h9 o' r8 ~ o - ). d4 h1 ^5 [* F4 s
- (if (> coord 0)
" G# x9 Z5 ^/ x. H. P - (setq valid T)6 ~8 a& e" H$ p. ~ A+ W
- (setq errmsg "Value must be positive and nonzero.")
0 C# z/ b2 h) {: B7 w - )
" P' W7 v5 p% T7 a' M( z - )' j6 ^# C( A3 D$ R: s/ y0 J
- ((or (= tile "xscale")
8 S# s3 b: X/ ~. v - (= tile "yscale")) N. p; X+ @% X) ~0 ~8 @
- (= tile "zscale")" ?6 z. V( \5 u% j N" o
- )
% s! ^) Z/ \8 q; N6 f - (if (/= coord 0)
% P1 Y; V5 D7 B: r& v - (setq valid T)
; i& u3 e3 K" f6 A7 T1 u - (setq errmsg "Value must be nonzero.")
4 H! J4 _2 O% [7 H" D - ). N% G2 {- O- T2 R2 U S$ L
- )$ C( _! J# K9 R1 y+ M# h5 A8 P
- (T (setq valid T))' }# p5 t/ L6 L# z. e' r/ [* f
- )
( g E+ k% J7 N9 f" S1 } n3 K& x - )
! H0 w2 z8 p1 d' v- G! B7 f) c - (setq valid nil)- r# S1 t3 t( x% F
- )' O$ @6 D0 f, ~$ Y/ u. S
- (if valid9 h; Y% ^/ t, t$ _* `; f
- (progn
% P" Z4 O, S4 N* P( E - (if (or (= errchk 0) (= tile last-tile))6 I M0 q, }! D1 J) w+ U6 \
- (set_tile "error" "")
& X6 Y* f, D# j - )1 |& `( _) }& N! {, k/ Z% F
- (set_tile tile (ai_rtos coord))
2 X: l0 R/ I7 Y% |1 C# ?5 h - (setq errchk 0)
9 O+ c; q1 T7 \! ]2 e - (setq last-tile tile)
+ J! x# i( i. O; U" O+ C7 M' x/ [ - coord/ e" i1 d$ v9 J1 O
- )& P; O8 k) X! [4 U; T
- (progn+ ]5 i% g( ~, R
- (mode_tile tile 2) ; Move focus to offending field! _5 W7 K7 y; p; m
- (mode_tile tile 3) ; Select offending text
/ q' P/ _( H/ i! n& T - (set_tile "error" errmsg)
. n6 a2 i( M5 m1 A, W - (setq errchk 1)
; {' _8 \& j9 i4 Q) ? - (setq last-tile tile)4 v2 n5 `% } P2 \
- old-value
8 q/ ^9 W/ k2 g- {: h$ A - )1 s% B! l- Z4 k3 \
- ) V4 D, E) S$ G
- )7 _1 l2 j- T" c
- ;; Function for Xline coord edit box checking.5 e) ^) v1 v6 k. E# T2 y9 s% K
- (defun verify_xline (tile value old-value / coord valid errmsg)
* [( g0 w" K$ ]6 d - (setq valid nil errmsg "Invalid input value.")' n8 W( d9 J8 A! b& I9 i
- (if (setq coord (distof value))! y% y! b4 B2 r- s% ?* `# s
- (setq valid T)
% r7 A& }- R9 y& ?0 B; X - (setq valid nil)
" P4 G- N2 K0 {3 c4 e& i( [ K - )
' o0 ~' p3 s9 u - (if (and coord
, G4 V9 [+ v) v1 T - (and (= (atof (get_tile "xline_x1")) (atof (get_tile "xline_x2")) )/ {1 m+ P* d# J4 R) ^' u* O
- (= (atof (get_tile "xline_y1")) (atof (get_tile "xline_y2")) )
9 a* Z' \+ u& d - (= (atof (get_tile "xline_z1")) (atof (get_tile "xline_z2")) )
! D9 t; Z* o' @ @" ^( ^ - )
- A" Q. G/ w! n6 V1 O - )4 G$ ` | w: e+ k; ?
- (progn
5 E7 N ^8 a6 C$ J3 E# b1 I: x. a - (setq errmsg
5 ?; x& w( Z8 r' t - "The Root point and the Second point cannot be equal."). g6 @4 u( G, Z- ?4 {, X. L. U
- (setq valid nil); C: V5 F5 [( r" z; U& U
- )5 G' y) `6 ?- C
- )$ |3 ~4 f* V, }0 t0 |, E Z4 j
- (if valid
9 z1 e9 ~7 z! R8 S8 F! T - (progn
" O' E: F( G1 g [3 [& W- z - (if (or (= errchk 0) (= tile last-tile))& d3 y7 H# y# ~$ Y
- (set_tile "error" "")* @5 Y2 E! ~% e1 f
- )
" {, E7 V: v0 S2 S( Q3 } - (set_tile tile (ai_rtos coord))4 G' O( g# @; P) b5 L2 J
- (setq errchk 0)
( J8 L$ Q" ]/ x - (setq last-tile tile)0 W4 O n# y* j5 M
- coord# W) J6 r O' T3 ]
- )
) I, _) [# n3 ?5 o- i& } - (progn; Q( T4 {8 L& S, K$ T& N) ?) a3 w/ H
- (mode_tile tile 2) ; Move focus to offending field0 b* N1 l7 z9 E" l0 D: S% r6 }
- (mode_tile tile 3) ; Select offending text! T: E# v1 X/ i$ b* ^# T
- (set_tile "error" errmsg)* P6 V& D2 j. \5 z% ^8 X& P! G& |
- (setq errchk 1)
5 \* V# m- } D$ h9 e: t - (setq last-tile tile) Z. E, H! [% l, [8 n+ Z
- old-value, Y+ ^3 _) A' C9 B* r: Q, F3 G
- )( H2 |* a. p" D" l, X) N
- )
, I$ ~+ y4 ^) n8 v9 I% R - )
) K* W+ O+ R# V& v* C, S
, K+ X4 f- m1 T" {& R$ O) l: ?- ;;
4 ]6 }: e Y w; ~& m! U - ;; Verify angle function. This takes an angle and a tile name as arguments.: v8 h' m2 T& O. {
- ;; If the angle is valid, it returns the angle and resets the tile.- A$ l" h! Z) C! L4 `* g) Y
- ;; Otherwise, it sets the error tile and keeps focus on the tile.
# ]# Q" r4 D9 n" A) ]7 { - ;;' q6 D" G: h- e7 {+ g
- (defun verify_a (tile value old-value / ang valid errmsg oblqmax)/ q7 j+ t o, J3 G
- (setq valid nil5 \. }3 a2 Z) A$ C3 o2 ~1 a
- errmsg "Illegal input value."7 B4 t; P8 Y6 v6 N
- )- _, L0 f0 X5 \. A. G, [
- (if (setq ang (angtof value))
% l- i# a! \% e9 B - (cond% K8 t: ~' q" A. L
- ((= tile "obl") ; Restrict obliquing angle
. ~+ z' O3 }9 v f3 m2 d - (setq oblqmax (+ (* (/ PI 2.0) (/ 85.0 90.0)) 0.000001))) {( ]) d+ q- s8 j, F; x
- (if (or (<= ang oblqmax)
3 L7 c7 S. p4 Y5 J - (>= ang (- (* 2.0 PI) oblqmax))" I0 \- f1 N2 Z0 D# E8 n
- )/ p' p: s3 n0 ?5 I' S3 S
- (setq valid T)
+ G6 a' I5 o# K! Q - (setq errmsg
4 [" ]1 K0 `$ P$ _ - "Value must be between -85 and +85 degrees.")
! x! b i& v' y4 J8 Q9 { - ). I& @ G: ?! i# a
- )
) k) V! `& r, _5 l - (T (setq valid T)) ; Other angles not restricted! M, b; |0 V$ f7 U7 ?7 x
- )
& \$ z# }! D- M3 ?+ X+ x5 y& ~ - (setq valid nil) ; Invalid angle input
" f6 ?, U* P" n- W' d' F - )) S1 A( \" P& S. G+ p+ X/ Z
- (if valid: \, D% U( f4 _
- (progn
& ?/ z+ Z5 T! F4 E* ` - (if (or (= errchk 0) (= tile last-tile))
6 z" ~9 K' I. O7 q4 M5 G - (set_tile "error" "")& |1 A4 e! ]5 n
- )2 n; v& d7 I: y' P' {
- (set_tile tile (ai_angtos ang))
; C( {3 X/ ~7 N - (setq errchk 0): s0 \8 W" z; z c( L0 _" q8 c
- (setq last-tile tile)
5 ?8 Q( f# A6 P+ z - ang1 {! u5 C, N# z
- )" ?. q& e, e/ n0 K, m1 c
- (progn; }' l! I+ g: |/ a" L, r
- (mode_tile tile 2) ; Move focus to offending field' p( M! m# I* M5 H& q c3 {4 N
- (mode_tile tile 3) ; Select offending text' c5 |! X1 D8 \6 K5 X
- (setq last-tile tile)6 T* P, x' ?% Q9 }3 `
- (setq errchk 1) j: |' Z% u y9 v* ^1 q1 B$ j
- (set_tile "error" errmsg)
p; Q! o6 K5 ~/ y9 R* w2 W5 a - old-value
* H6 _3 d' Q8 h# n8 E! b c - )6 R( i# i* S* G9 R8 n
- ), Y. _+ b- \$ G
- )
1 Q- j0 _& t, X' g$ [' z - ;;; N# G) j1 f9 j
- ;; Verify angle function. This takes an angle and a tile name as arguments.
& [( o; T+ c* L# e# I1 r% z) X4 ] - ;; If the angle is valid, it returns the angle and resets the tile.
- p$ L0 [! |) k- \) H - ;; Otherwise, it sets the error tile and keeps focus on the tile.* z4 i( }$ k9 a, a
- ;; This function is specifically for the end angle of the ellipse object. If( x8 \ b( U8 S/ L
- ;; the end angle resolves to zero then we want to display it as 360.- z3 J# I6 N' t. L- k
- ;;
9 P* h" K# m R7 ~8 I0 c9 f) q - (defun verify_ae (tile value old-value / ang tempend)
: D3 F* \3 e) ]$ `7 v. W' G - (if (setq ang (angtof value))
9 A+ k- ]! r# S9 B2 b - (progn* |- }1 z/ J( o$ C0 I# ~/ h5 d
- (if (or (= errchk 0) (= tile last-tile))
A- F2 S8 q- {9 |9 L$ X - (set_tile "error" "")
8 g/ c6 A' o- g - )0 k6 u% u& p; R5 }9 G4 @$ i( a
- (setq tempend (ai_angtos ang)); b6 z. g) ^8 y6 p
- (if (= tempend "0")5 M3 r- _+ n8 S2 R, Q
- (set_tile tile "360")
4 y8 k$ k" U2 C7 N4 \, p - (set_tile tile tempend)% a* f/ b3 u% C; V" E' O
- )
0 x. N( _: L3 F. M# X. ]6 x' r - (setq errchk 0)
! n& C( N% ?. |. s* v* r2 `! \ - (setq last-tile tile)
) \! U5 h6 x+ S - ang+ M) c" K5 O$ |1 D1 ^% S
- )2 y; U3 D5 J+ Z: @$ r! V) V* ^2 R
- (progn
9 J8 P7 t6 K9 j) s+ h8 A( J! s2 { - (mode_tile tile 2) ; Move focus to offending field4 w, l9 `/ p% `; Z
- (mode_tile tile 3) ; Select offending text/ h$ b) k. k# {! D( {' Z/ E
- (setq last-tile tile)7 j% T) d# S/ N3 x: {& e/ o
- (setq errchk 1)
, g! P2 ~- H9 D9 _6 J# C - (set_tile "error" "Illegal input value.")
t0 }/ F* q% V! S+ z/ w - old-value
1 H* W" D6 w5 ]1 I9 b - )( i$ k& W3 Q. {
- )
7 R# ^/ n, n9 n2 W4 B; \8 _$ q - )8 j1 V2 a$ G& P, F# n, v& ~/ c! g# L
- ;;0 `7 v& U- o9 _/ J
- ;; Verify integer function. This takes an integer and a tile name as
! q5 v M4 S; P - ;; arguments. If the integer is valid, it returns the integer and resets the) c) d% ^& `. r" J0 ?
- ;; tile. Otherwise, it sets the error tile and keeps focus on the tile.
1 ~1 x# t7 R M3 |$ U3 ^ - ;;
6 C: p0 H4 E& G- S4 f* o. m& ] - (defun verify_i (tile value old-value / int valid errmsg)
% }; E7 J8 A3 ~6 j - (setq valid nil)9 L7 S _$ q( _ P. m0 W! M/ C9 }2 W
- (setq errmsg "Value must be an integer.")4 @* O% K& g! @. D+ x
- (setq int (atoi value)), ^# n# ~9 `3 @" ], Y* z8 d7 R
- (if (setq intchk (distof value))
% {$ Y7 I$ l6 M9 ? - (cond
5 ?4 R5 E; j- W, \ - ((or (= tile "columns") (= tile "rows"))' O* l; P6 w$ w( C- ?2 r/ n
- (if (and (= int intchk)
& x0 ]! r( c/ | - (>= int 0); f2 j) ]' p' F) k" [( X
- (<= int 32767)
/ c F! K6 `! W - )2 [( a2 I2 D; x" |, R% N
- (setq valid T)9 L. [5 ]! f6 O. S
- (setq errmsg "Value must be an integer between 0 and 32767.")
1 n3 d1 z+ l6 R' t. y+ e1 I; q - )8 B. a& [4 d. D p. a# \/ U+ Q
- )
8 h9 W2 z- r9 Y5 L( }; v1 Z4 N' W - ((and (or (= tile "u") (= tile "v")))
! P+ D1 h, |7 D. P/ B - (if (and (= int intchk)- b" J. L- q0 q5 y' S, p n
- (>= int 0)
8 W) c8 ^+ m3 n: c7 p( S - (< int 201)! F/ r4 x, m5 h/ ]" o( `+ }
- )
* E0 r/ u% t9 ?. Y! } - (setq valid T)8 t& e6 {# ~( I) P. w0 { [2 a
- (setq errmsg "Value must be an integer between 0 and 200.")8 a% ~4 z, [7 N3 l$ T) C
- )# e4 V+ c5 x# H" {! D: W, R
- )
3 K/ B7 g$ v( f1 J - )
: ]- D& u1 v7 b% v1 ~ - ); k! D: }8 z1 B& _# C3 q; W
- (if valid4 i, R6 D0 d: E3 y
- (progn
+ W" F- U) Z8 a! N: E9 ~3 f - (if (or (= errchk 0) (= tile last-tile))) k& ?1 t$ ?4 s4 h1 [" l2 ]
- (set_tile "error" "")
. W+ E( c$ j! P* F4 g2 C# ] - )
1 Q2 b. ?/ B% P$ m9 C5 ]$ R - (set_tile tile (itoa int))
& @5 X' t) u: d( C6 i - (setq errchk 0)& g, T. V$ j) z3 g! s; R+ r
- (setq last-tile tile)
+ J: u7 Y q4 i - int
" w% y) n% P1 \8 q% s - )6 k6 Y: }) h& N1 X; u' }
- (progn" U9 l$ S6 Y" v V2 q1 `
- (mode_tile tile 2) ; Move focus to offending field. t% f; [3 |7 o3 e/ a
- (mode_tile tile 3) ; Select offending text0 x4 F @: \* e! Y
- (set_tile "error" errmsg)
, @5 L" Y; {( ~/ Z) } - (setq errchk 1)8 H% g' U8 H6 a+ G" U5 R
- (setq last-tile tile)
U5 N( n- C* v, o- P9 P - old-value! ^1 L) ?* O$ ^- J# [3 U/ K
- )2 H) {+ p, t' S; u: n; a
- )
& }; \* r8 e/ L3 B" H# N - )! w% i" v _' Q4 R# n( S
- ;;
5 _: V& Q6 O# R! P! W. \- S - ;; Functions that verify tile values for integers" |4 r+ c& z- H5 Z2 L3 d1 x+ w
- ;;5 ?( d1 g$ Y- g; a
- (defun ver_col (value)
* L& z% b7 n' t! Z - (setq columns (verify_i "columns" value columns))# u& I( p; V7 l
- )
& `8 V1 T0 o) Q; J9 |8 {# f - (defun ver_row (value)
. W: y: z9 X" ?" h) K - (setq rows (verify_i "rows" value rows))
' o2 j6 {8 ^2 @' c - )0 G5 o {0 c' p
- (defun ver_u (value)
: q6 V) C8 ]" a5 _ - (setq u (verify_i "u" value u))! j! y3 @: S: k S
- )( C; K2 y" c- U6 J) k9 u" U
- (defun ver_v (value)& K+ U2 Q- J5 c |
- (setq v (verify_i "v" value v))6 ~) c! Y6 P/ D3 D8 f' Q
- )
, v3 y2 y1 l5 J6 A( Y9 X - ;;
/ e- _: k5 F7 k0 S2 i - ;; Functions that verify tile values for reals
: q! x( l3 I/ z. }- H. F+ j - ;;* G3 Y( w9 j, d) q0 W$ o
- (defun ver_x1 (value)
. z* Z8 _; Q6 C- e p& |4 m! X* G - (if (setq x1 (verify_d "x1_pt" value x1)) (calc))
( K' t y; n6 P( X7 k/ j% l6 ~ - )' a5 E& C- [7 Y$ q" f
- (defun ver_y1 (value)
! Q7 M% Q- y8 H/ Q9 J6 U) J0 B - (if (setq y1 (verify_d "y1_pt" value y1)) (calc))
4 U4 m1 |9 _8 h0 ` - )
- j6 {" y6 w& j- c1 f - (defun ver_z1 (value)
# H! C" x1 ^% a! X) | - (if (setq z1 (verify_d "z1_pt" value z1)) (calc))
% l/ c; z4 ~+ t, E+ E - )0 K( n1 q( U0 {- I8 C) o1 u q
- (defun ver_x2 (value)
5 P% H0 x2 Z6 X - (if (setq x2 (verify_d "x2_pt" value x2)) (calc))
- I% H" |& w' L+ |4 E) q# F - )
& h8 {% W+ S) g+ A G/ w- q5 h - (defun ver_y2 (value)% E. H$ \* a3 w: `( r2 x
- (if (setq y2 (verify_d "y2_pt" value y2)) (calc))% J U1 X/ m3 |' F( Q: [- {
- )
4 C: U+ Z/ m: U+ F0 s* [ - (defun ver_z2 (value)! d( f) j& H. [: p& {3 n
- (if (setq z2 (verify_d "z2_pt" value z2)) (calc))
7 F3 Q, r" Y: j; a" M6 Q - )
, w! F& K5 j% [( V - (defun ver_x3 (value)# H0 y, U) e `
- (setq x3 (verify_d "x3_pt" value x3))
% w# V C. H+ ^" v - )3 w/ Q) h3 n, J0 g" S/ s
- (defun ver_y3 (value)
( a* T- l3 P" o - (setq y3 (verify_d "y3_pt" value y3))
' |. k( k. \( e/ G# ^ - )
# o( J% g8 n3 Q- [# V - (defun ver_z3 (value)
9 ~0 x5 H3 k3 I) f V - (setq z3 (verify_d "z3_pt" value z3))
' N% ^9 a8 E) S$ A+ ^! @, ^& Z - )
# e( G6 s$ R6 [3 [ - (defun ver_x4 (value)3 M# y$ t" s) ^
- (setq x4 (verify_d "x4_pt" value x4))9 E( f7 ` c' o4 }1 f
- )3 v6 l; Y1 W/ A
- (defun ver_y4 (value)
8 `0 z" v% o/ ^: T/ _- J0 O - (setq y4 (verify_d "y4_pt" value y4))/ U& D9 u6 B M2 I, g# ?% P
- )8 E. T5 i! b: g$ f2 r: W
- (defun ver_4 (value)& F% z" o- z" r- w; j
- (setq z4 (verify_d "z4_pt" value z4))
8 z1 E( d/ y9 r2 m - )
0 H' z2 S, @: v1 E/ L - (defun ver_xscl (value)# j7 I' d3 K- n+ H" {6 Z3 ~
- (setq xscale (verify_d "xscale" value xscale))1 c( A$ u" @0 |) U
- )
5 Y5 n; j& i+ w9 K: W$ K* D - (defun ver_yscl (value)7 ~; G1 s4 ~8 j
- (setq yscale (verify_d "yscale" value yscale))
8 E6 ~/ ^1 K @' J6 ` - )9 _' ^) y9 K7 o; u* S
- (defun ver_zscl (value)
' n5 g7 S# c- Q( d4 v: C - (setq zscale (verify_d "zscale" value zscale))* `$ r, P0 a% ^1 Q0 _6 b
- )
. m- c- V8 k. l5 W' Y- d# L - (defun ver_colsp (value)5 q A6 B9 c0 u, y" ]
- (setq col-sp (verify_d "col_sp" value col-sp))* _( |$ L9 O! U) l3 A; I
- ). }0 }+ ~3 a* Y6 J! h! V c
- (defun ver_rowsp (value)
7 n) Y* T9 s( G, J - (setq row-sp (verify_d "row_sp" value row-sp))
- Z# N3 b; i G; ?( f# | - ): _9 {- v9 l8 s8 x' }4 r2 I& T
- (defun xclip ()6 K% m. d' R2 m+ `
- (setq xclipmode t)
* u& q7 q& |: K5 H - (if (= xcliponoff "1"). B& H3 V- w- \' ~6 z
- (command "_.xclip" (cdr(assoc -1 elist)) "" "_on")4 @% L& o) f, R- S8 \8 ]" C0 A
- (command "_.xclip" (cdr(assoc -1 elist)) "" "_off")
/ Y+ [$ b7 d0 Y- { - )
; W, U7 F3 `7 d0 k1 ]; G$ ^0 C - )
4 _6 ?, o, ~" C7 \ - (defun ver_rad (value)
8 Q$ W# K6 d, t! K" P% N4 ?" B - (if (setq radius (verify_d "radius" value radius)). U2 P8 w3 T" l. f" b f: g
- (calc)8 y0 c$ \7 f5 A4 J0 r1 [
- )
4 Z8 e: l( f3 n( e, t- [ - )& d+ v& `/ C6 Q l( _+ @' S
- (defun ver_majrad (value)& t0 f6 t2 Q8 p" m
- (if (setq majrad (verify_d "majrad" value majrad))/ T) [( P! m& z L5 t( v! p
- (ell_calc_newval "majrad")) r1 A& p$ o) q8 L+ |, V4 z+ }7 V
- )) M/ C6 e' f: Y
- )' z: A f; Q8 K# I' W
- (defun ver_minrad (value)
# I, B. j o0 B9 L% w% X& s - (if (setq minrad (verify_d "minrad" value minrad))* h3 L, m, N6 J" _, X% I
- (ell_calc_newval "minrad") J, n1 v9 Y0 B( d
- )3 l: M' e9 f7 T& | Q
- )
0 S( a, o. C, p0 C5 b - (defun ver_hght (value)/ K$ Y6 }. v& _! p/ d" r/ A9 a3 A
- (setq hght (verify_d "hght" value hght))
& ? K; L, m. u0 L% s( @8 ~ - )
9 d4 I* g$ Q* f+ j4 a# Z - (defun ver_wid (value)' a2 D, L5 w2 U3 g5 p& g x4 Y
- (setq wid (verify_d "wid" value wid))
6 c$ v/ R, x1 s' X% h - )
9 R- W# K& Y5 q' m) W - (defun ver_xline_x1 (value / temp)7 N3 Z k5 W0 F7 y' V- _
- (setq temp xline_x1)
4 k! Y/ Q# a& a& C- F3 n( ~: }% I - (setq xline_x1 (verify_xline "xline_x1" value xline_x1))
$ T' }) f$ k0 g4 [ - (if (/= temp xline_x1)5 S% Z: A8 e$ R5 I, l- `: N! q
- (progn (modify_xline 0) (set_tile_dirv) )
- z9 d t6 u; T; { u$ Q - )
' K( N0 a' j! z" P - )
9 j& d: W1 V, G4 a% x0 g& w3 _ - (defun ver_xline_y1 (value / temp)
* g" ]4 E. t/ V% N, ^- f - (setq temp xline_y1)4 H7 o( u, h3 ]3 a+ u! n
- (setq xline_y1 (verify_xline "xline_y1" value xline_y1))
. b" o+ W& m+ I - (if (/= temp xline_y1)
5 O4 i6 l. B: J* e# r- O - (progn (modify_xline 0) (set_tile_dirv) )
l5 w* D% h; v# W - )
2 @: K% E( ]% B0 N- s9 T& L, K - )
# h/ `* r5 [5 S% E/ B" T; P - (defun ver_xline_z1 (value / temp)% z# _2 _4 u" X7 f6 ~5 A& }9 M
- (setq temp xline_z1)
( B- E! l# _- ^" I& L4 i0 F - (setq xline_z1 (verify_xline "xline_z1" value xline_z1))2 P. L9 h0 b, W/ O1 ~2 r: e1 E
- (if (/= temp xline_z1)& v2 y" ^7 M* P
- (progn (modify_xline 0) (set_tile_dirv) )( ~2 Z2 q# t4 @! R3 R1 d8 f
- )
! j( Z& c A6 L. E - )6 y8 M8 S; C% _. u7 m
- (defun ver_xline_x2 (value / temp)8 ~# Q( s, Q2 h. d) }4 U
- (setq temp xline_x2)
8 Z% J3 H$ o$ [/ d/ b( } - (setq xline_x2 (verify_xline "xline_x2" value xline_x2))% z0 n7 \+ w9 v1 \
- (if (/= temp xline_x2)
. D( e8 t2 n) j, V - (progn (modify_xline 0) (set_tile_dirv))
' p6 Z7 R6 Z& A2 }( e j* ` - )3 H+ a" g& R! b }
- )3 D1 `7 f$ Y- |2 W
- (defun ver_xline_y2 (value / temp). [, z/ C% m d0 n A- t
- (setq temp xline_y2)" X8 e; z# @- c t- C4 t
- (setq xline_y2 (verify_xline "xline_y2" value xline_y2))5 L/ d6 X7 J% x. y3 ]3 r
- (if (/= temp xline_y2)
[' B; f8 L/ {* n - (progn (modify_xline 0) (set_tile_dirv) )# i+ e' z0 X" P5 L
- )* [# w" i; v0 ]% I4 \
- )
) P$ I$ O% `) C/ r; X - (defun ver_xline_z2 (value / temp)( m& K2 f# y, i' @% {4 u' G, O
- (setq temp xline_z2)( P4 L) W' S7 ?1 Y/ O3 z
- (setq xline_z2 (verify_xline "xline_z2" value xline_z2))% T! @0 M6 M* @ Y9 l' i
- (if (/= temp xline_z2)0 `- i2 y; J* D" @& C5 X
- (progn (modify_xline 0) (set_tile_dirv) )
2 a0 g) m3 {" Y) x, V9 b! v - )
5 r( Z* Z g7 R' T# w2 C - )' G- r n3 \- @0 P4 p* T" h0 R. |
- ;;
$ o; v4 p$ S7 q4 j: x - ;; Functions that verify tile values for angles
3 G; M/ x2 h/ M' M. ? - ;;
! n( x6 u4 ?- D4 o - (defun ver_ang1 (value)
- T7 [$ n' ] p* o/ ~; U9 W - (if (setq st_ang (verify_a "st_ang" value st_ang))
; y. J/ a# @' `2 t; C6 g. z$ r - (calc): {0 b) P5 t j$ E3 L
- )
; o8 s% f& c& W6 ]; L9 k - )$ y6 b. S q) d8 E
- (defun ver_ang2 (value)
% x8 O* U/ \* N9 Y* A - (if (setq end_ang (verify_a "end_ang" value end_ang))
9 K# H7 K2 I z' ]5 b* n+ [ - (calc)" l" w, x+ C$ |& p
- )' ]4 v8 z3 R( x8 K$ J
- )
7 _4 L& A4 e; w2 i n - ;;- e& O3 N% J7 H
- ;; Verify tile value for ellipse end angle. Handled slightly
1 g/ P6 G1 g+ P- w" r3 r) s - ;; differently than the other angles.- W9 G7 m: _8 t K
- ;;) w2 \2 ~! U, b" e" i: G; Y% \
- (defun ver_eang (value)
9 m. T. f+ w8 `$ i" D% G4 K - (setq end_eang (verify_ae "end_eang" value end_eang))( i2 I4 `8 ^, O8 n) k) F- o
- )* Y$ d" E; X+ a, ^6 M" S% y8 w
- (defun ver_rot (value)
7 x+ M9 C; S, D z1 J3 {% a3 k1 N - (setq rot (verify_a "rot" value rot))
0 I6 l) V8 R; P( h( l/ g, `! E3 B - )" ~) U/ Y' ]% Z3 B5 s0 r
- (defun ver_obl (value)
4 y6 L" G1 p+ W$ a - (setq obl (verify_a "obl" value obl))
; c# ?% @) @* ~1 T5 d' A& G - )3 {; z7 }5 ]7 z& G# |9 f
- ;;
: O( [2 g6 L0 ? - ;; Function that verifies attribute tag field for null string,
9 G3 d% N i# G8 N z - ;; or a string that contains one or more spaces. Tile value
/ ]2 _) r) r7 a, s - ;; is also converted to upper-case as well.
1 w5 _8 T# \7 g# W3 t" j - ;;
3 d# ?# O* K5 G6 } - ;;
$ f5 n4 w' g: f0 ^3 _# D - (defun ver_tag ( / tval), _( Q: c+ U1 p, a
- (setq tagval (get_tile "tag"))
, V/ j: Y' t& c - (set_tile "error" "")
# |5 z# I2 v' U1 d) L0 b: e - (cond4 I" b1 M/ R( M7 m3 Y; G7 v2 c
- ( (or (eq "" (setq tval (strcase (ai_strtrim tagval))))4 [3 G: h; U/ |$ j' F" H
- (wcmatch tval "* *"))" I9 c H. J. P
- (set_tile "error" "Invalid attribute tag.")
( {" ~0 s7 G* c6 m3 n - (mode_tile "tag" 2)
5 ~2 U W) O8 I _4 E7 W: T - (mode_tile "tag" 3))+ }5 W% K/ O+ k# Q
- (t (set_tile "error" "")
3 \; l8 s" X: H$ v- O1 ~8 G0 U3 x - (set_tile "tag" tval)8 H" [& c. [, q z, I4 K& k: G
- (setq attag tval)))+ p* v: f/ m$ z8 {- ~
- )
- G& N- K# ^3 j4 S$ ~3 w% M - ;;0 w2 | o T6 E1 v9 T
- ;; Calculation functions3 g" r5 Z, T* E* Z1 {) M% A5 J
- ;;
6 i4 |* c% f8 J; `, U/ ] - (defun calc ()
% i! c/ d: q" }4 ?# J6 \5 ` - (if (= etype "LINE") (line_calc))! y5 J" j, ?0 o" m, S
- (if (= etype "ARC") (arc_calc))9 o4 G/ L0 Y% g0 J
- (if (= etype "CIRCLE") (cir_calc))
& n( x/ w3 q) z/ e' F) [- h. z - )
$ K: W3 N, @' E8 u - ;;% F! p2 g. U: V* H" M. I( y
- ;; Calculation functions for lines, arcs, and circles
0 f, b5 W/ ]; m8 {- a$ C4 u - ;;! N( F w5 {( Y: D b7 i
- (defun line_calc (). C/ B* X7 ~' |5 {( j2 m
- (setq stpt (list x1 y1 z1))
4 t: j( y; k! \: ] - (setq endpt (list x2 y2 z2))
R l& G2 D4 m. t# f9 Z$ J6 K. n - (set_tile "delta_x" (rtos (- x2 x1))). l- \2 c# [9 j+ m5 E
- (set_tile "delta_y" (rtos (- y2 y1)))
3 F2 q8 h% G L2 d - (set_tile "delta_z" (rtos (- z2 z1)))9 ~: L$ B, t6 @7 B8 R5 x
- (set_tile "l_length" (rtos (distance stpt endpt)))
9 S! W$ K; E4 b1 q# U0 Q. b$ R - (set_tile "l_angle" (angtos (angle stpt endpt)))$ q) Q0 u: x) O" n9 _! P! T7 ?
- )% Y; K! w5 M, D$ z7 V
% o' ]! d) k. n& _$ H @2 f' E/ j- (defun cir_calc ( / area units)
8 H! c4 y5 l2 R7 P - (setq radtest radius), _5 _% N0 L5 h& W1 C' @& i
- (set_tile "Dia" (rtos (* 2 radius)))
- @) \! q8 t P& c+ Y5 b1 D( ~ - (set_tile "Circum" (rtos (* 2 pi radius)))3 M' j L6 f: \0 L: u: g6 g0 W
- (setq area (* pi (* radius radius)))
- X0 l! c/ c, ?( | - (setq units (getvar "LUNITS"))
- c1 M; j, x, m3 d, ~4 `- ] - (if (or (= units 3) (= units 4))7 V) E% H i1 F" `7 m2 t/ k; _
- (progn
) z, ?7 p6 \" f) q% h9 c - (setq area (/ area 144.0))
, e) A. T/ S5 B S5 T, h! D - (set_tile "Area" (strcat (rtos area 2) " square ft"))/ K( e% @$ o' A, }5 O4 f
- )
0 P7 ~5 @2 ?/ z$ I; ]8 r - (set_tile "Area" (rtos area))
7 ~; a$ \, }0 M$ x - )9 I7 \0 T: k2 _7 a8 I4 }1 U* ~
- )
]' w5 p/ n% H3 s2 c# D2 y
2 x2 A5 m9 p" T: m- (defun arc_calc ()
. F0 ?' N0 }6 t3 `1 f7 m. ` - (setq totang (- end_ang st_ang))
) R, z0 w( s4 { - (while (< totang 0)
% ^; k% h' G: m9 n' Z - (setq totang (+ totang (* 2 pi)))7 [% F& h3 V) b" k) K4 m* P; ~
- )( G* F0 D3 l" s- Q Q
- (while (> totang (* 2 pi)) z7 Z6 X& E) e/ Y% l( H9 p
- (setq totang (- totang (* 2 pi)))2 j$ i7 Y6 n( {: a2 P5 I5 W; X( {
- )% J0 B+ I1 K4 V4 D: a, W' Y! Q/ n
- (set_tile "tot_angle" (angtos totang))) m" b- \0 |9 }4 @. ?
- (setq arclen (* (* 2 pi radius) (/ totang (* 2 pi))))
7 C7 _; j8 y/ O% H1 f - (set_tile "arclen" (rtos arclen))
5 s0 Y9 T7 z l$ T2 o1 H, ~* o - )+ |0 D$ c) H- o. ?
- ;;% R M$ m( ~. U2 d
- ;; Calculate the major radius, minor radius, major axis direction.
1 O+ {* {( u( r- l8 d" D - ;; Get radius ratio. Convert Start, end parameters to start and end
; a4 B' a7 K# q V0 `0 N - ;; angles. Save Major Radius value in "old_majrad" in case the user
5 f. g, |( W9 s9 J% R - ;; chooses to input a new Major Radius value later. It's needed to
c8 Z5 J& C0 h6 r - ;; calculate a new Major Axis Vector value.$ L2 n2 c" B6 G' n
- ;;! ]9 o& B3 p( v
- (defun ell_calc ()
" |* C1 b) W: P$ e3 d - ;; Get major radius from the major axis vector.' T Z3 u; h2 v5 ^: H( J, o
- (setq majaxis (cdr (assoc 11 elist)))' Q6 b/ |& T2 l8 @& e" M: c
- (setq xx (car majaxis))
0 D/ T/ W+ A- g! O7 F0 n - (setq yy (cadr majaxis))2 z$ w! G- O. z( m, M% O& Q: J9 f
- (setq zz (caddr majaxis))! ^1 K4 z" l% v3 v) A5 z* k4 l
- (setq majrad (sqrt (+ (* xx xx) (* yy yy) (* zz zz) )))
: a7 n& Y2 d/ X9 } - (set_tile "majrad" (ai_rtos majrad))
+ g, `: E9 m! P' C1 D - (setq old_majrad majrad)
: |6 h1 l: z1 k% y0 C# L - ;; Get radius ratio5 f' t& y3 D2 K% v* f( B2 `' j# f8 c
- (setq rrat (cdr (assoc 40 elist)))
6 X% P# s4 u5 y# P9 q. l6 U$ L2 v% J - (set_tile "rratio" (rtos rrat))
1 s H8 o3 \) }, O - ;; Calculate minor radius, b. A$ M1 _% Y
- (setq minrad (* majrad rrat))
8 T; S+ N; Z! A" H - (set_tile "minrad" (ai_rtos minrad)), k7 C: u& E4 `4 V8 K
- ;; display major axis vector* b, o7 U+ S8 V& s
- (set_tile "Majraddirx" (rtos xx))
5 j7 a' `6 v x/ `# b9 |% ^ - (set_tile "Majraddiry" (rtos yy))$ B) M0 ?, y: s' P+ {5 S
- (set_tile "Majraddirz" (rtos zz))2 e" `; W5 i* t4 |" r" m
/ N4 k' M- v1 s: b1 X- ;; Convert start parm to start angle I( I: S! I" G t( R" x' [. y
- (setq stparm (cdr (assoc 41 elist)))! C, h* X8 J) B6 M
- (setq vecx (cos stparm))$ v9 Y* f, G) D9 ^
- (setq vecy (sin stparm))& n v& D% B7 {% M- {/ p
- (setq st_ang (atan (* rrat vecy) vecx))) L6 c# P* U5 A- z' J
- (setq tempst_ang (ai_angtos st_ang))( }2 @! c4 u( w' l& F0 H' E8 b
- (set_tile "st_ang" tempst_ang)
+ W- {+ [7 J9 x - ;; Convert end parm to end angle. If end angle evaluates to 0' p, T9 B/ v2 f
- ;; degrees then display it as 360 degrees.. ?* g7 z6 y( i
- (setq endparm (cdr (assoc 42 elist)))
7 i4 Y9 i2 J# W0 Z - (setq evecx (cos endparm))
8 l+ n0 w0 T; A7 D- H - (setq evecy (sin endparm))# R- x6 }- B( a$ r- l% c
- (setq end_eang (atan (* rrat evecy) evecx))# o' T2 o1 i) u% Z0 U8 O: e/ r
- (setq tempend_eang (ai_angtos end_eang))) g& v6 i1 ~4 `. t- y
- (if (= tempend_eang "0")
1 w! o- N h& A' a* t Q - (set_tile "end_eang" "360"). a- d, `8 Y0 G2 R0 p! [
- (set_tile "end_eang" tempend_eang)+ Z8 d* t2 L$ D: y
- )' m! s: l9 G$ [; z3 N
- ;; Get area of the ellipse.8 q. J( ?- ^1 s* [) I
- (ell_calc_area)/ |/ @3 S- q3 C
- )5 |: f6 ?+ b6 d
- ;; Calculate area of ellipse. If it is an arc then
; X8 e, B* y3 C) c - ;; grey out area display.. A3 n$ ~. Y7 a6 _5 c) c
- ;;
/ H& ]# o. O% }5 s, W - (defun ell_calc_area ( / area units)) x) @4 n# \0 }8 r# S' e6 D
- (if (and (= tempst_ang "0") (= tempend_eang "0"))
& p: z9 I7 t. ~ z - (progn
3 H+ g. g# `- f) |; O - (setq area (* pi majrad minrad))
$ l' C% E5 o% M3 j. m/ L% S - (setq units (getvar "LUNITS"))9 [# }! a( M$ u& f3 c" j' N! ~: X
- (if (or (= units 3) (= units 4))
- N, a0 v1 {* j- @+ v5 d5 c5 y7 v n8 } - (progn
6 F9 J$ a( y3 d - (setq area (/ area 144.0))
' b* ^8 @- ^* | - (set_tile "Area" (strcat (rtos area 2)" square ft")). i, a! [" g+ w3 y6 ~
- )
- d5 s! T+ B* T* ^; U: _ - (set_tile "Area" (rtos area))
1 k5 E |! E2 G$ ?; n% P6 N1 F8 ] - )
* z" Q3 |5 K: H' a W# H8 V - )1 \) `+ w# U8 E; a
- (mode_tile "Area_text" 1)
% j3 Y7 {6 l6 i% V - )
! T6 O4 H7 ~; H' ^ - )5 Z# t1 {: y1 L8 e1 f+ ]) Z
- ;;
# g& c! h: S) W0 m# B; v- U9 [! g - ;; Calculate new values for ELLIPSE7 t+ J. H2 Z4 W. u* }" l
- ;; Minor Radius, Area
# R( u: f. O! @# ?* u. E' d9 y - ;;
7 |$ }* J0 u- C* \1 n5 E$ T+ F1 h - (defun ell_calc_newval (ell_tile)4 f% ~5 {+ p$ V! S1 U
- (if (= ell_tile "majrad")2 Y6 z# s/ f! L: Q8 D
- (progn
4 [& I$ c* I+ I8 a& O4 G$ J - (setq rrat (/ minrad majrad))4 e! s) s h3 A# U6 J
- (set_tile "rratio" (rtos rrat))% k% M3 k+ P) P. `8 J& U
- (ell_calc_area)/ O3 N7 C& z- G( Z
- )
- ~& u1 J& I+ ]. J - )
8 [( ?, s5 S* L9 S2 R7 K: Q - (if (= ell_tile "minrad")
3 Z8 F( e5 }8 Q; M% O - (progn4 X6 e, H+ s Z+ d9 K9 L1 J
- (setq rrat (/ minrad majrad))
7 I* o, F# y4 V9 k9 E' @ - (set_tile "rratio" (rtos rrat))
0 f% k8 {" _# i1 f0 L# |5 L ^ - (ell_calc_area)7 u. D: B! F; f* N' [4 x
- ) v, t- v7 W! `) ^7 e
- )
+ Y: n* `- B. H( l1 _ - )2 a% m" u# b9 ?* s, s
& N& g5 Q$ c+ t6 Z- (defun set_dimen_props (/ loop a stl txstyname). u4 j9 I% p/ `9 }) u
& `0 I. e3 F+ _" Z7 _) L" U2 A% w" f" ]" {- (setq stname (cdr (assoc 3 elist)) ; get style name) H3 u5 h& P- T. S5 I1 A4 @: R
- stl (tblnext "DIMSTYLE" T)) |: i6 Z4 E- n4 {5 }
- stlist nil)
% [1 Y9 ]* N0 t# O. N - ;; Get all style names and list them in alphabetical order# u) K$ N- `6 Q+ X) H
- (while stl
4 F5 t# B, t( N( C$ t - (setq sname (cdr (assoc 2 stl)))
3 {8 L3 ~7 F+ B1 g3 {9 o2 b - (if (/= (logand 16 (cdr (assoc 70 stl))) 16)$ l3 N+ P( Q$ b; ^ R
- (setq stlist (cons sname stlist)))* |2 e1 A, @1 f
- (setq stl (tblnext "DIMSTYLE")))
$ c' J z8 Y2 ?6 c& w - W) O1 B* g' l8 ~9 N
- (setq len (length stlist)+ l0 F7 _$ p4 w3 @& n
- loop 0
! I& W0 l: w& o. d - dimsty stname% N8 @2 L4 k! G- Y& h" G
- )
) K2 P+ c8 c+ r/ N- e+ n* u - 8 y1 L' r: b7 ^6 Q+ j7 Y! H
- ;; alphabetize style list, depending on maxsort
9 [, M9 c7 X* t2 J# [" | - (if (>= (getvar "maxsort") len)
# M! \# w" Y% i+ G - (setq stlist (acad_strlsort stlist)), r w% F) A) I1 D8 x6 b, h% ]- o8 J
- (setq stlist (reverse stlist))). V6 v/ j, f+ a* ^# h. }
1 ?* F; h. Q2 ~- ; *UNNAMED style (dimsty = nil at this point) is replaced with
% S2 h3 Y j6 o4 y - ; the current style. After R13, we require dimensiosn to have a
5 a% J* k! y: { - ; dimstyle, so we plug any holes where we find them.2 o5 z' `. B" ~* l- m: {
- (if (null dimsty)) c! o# F4 W3 \7 p0 r5 g
- (setq dimsty (getvar "dimstyle"))8 \7 Y) E+ j% Y8 ]: }* m# ?
- )% Z: S1 r! a4 a% h& J
- ; Show the styles in combo box; S0 t- T' T7 ^1 J
- (start_list "mod_style" 2) m! y; s* H! v( h$ O. c5 J# U |
- (while (< loop len)
9 L" b! p+ i j3 T - (add_list (nth loop stlist))/ ^! R( r; k! m: ^$ T: U8 T4 L! {3 J
- (setq loop (1+ loop))
3 y% @+ d; |+ O( ` - )
* f) B) [6 G! ]1 B: M$ p
- \$ }$ _$ j& a: @0 I, O4 v- (end_list)
! E2 b3 t9 t( T' P' z5 P# W4 |
$ h8 x2 B0 r. q( R! {( B- ; Hilight the style name of the selected entity$ R" o. x6 w8 r8 ^6 s! e* l, S
- (while (and (< 0 loop) (/= dimsty (nth loop stlist))). L6 B5 \9 R. G9 E
- (setq loop (1- loop))* V: Q2 u# N" e2 ?
- )
' J+ G( y4 l7 L) r6 Z0 n3 a - (set_tile "mod_style" (itoa loop))
5 @; H ^8 ~7 r' P7 T; G. x! @
: s2 q5 c& m5 z N& i& [- ; The following is the list dimvars. It must be sorted in the same
- T6 }' w- a; _8 ^9 K# c0 O+ m - ; order as the resfub returned from DDIM (ADS module).9 Q7 Y$ h$ ?8 A0 {) r
- 4 E2 J0 V" b1 y* R
- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"0 V' D+ @0 R+ Y4 [9 |
- "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"9 S' R0 L2 p2 \5 t
- "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"# a7 O1 G) F) O, ?* d
- "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"5 k& P4 ]6 z, U5 ?' y
- "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"3 h+ w8 H% S5 f
- "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"$ Q2 Z: a1 N8 J# e1 }
- "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
- @. Y; J1 o3 \, o9 M - "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"1 M0 o0 k, _' R% l6 ?+ W
- "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"+ K: @% ]1 v$ L
- "dimdec" "dimtdec" "dimaltu" "dimalttd"
) C9 X% ^( X/ E( z3 u# B1 F - "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"
% z: y# R8 o, b/ u - "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"0 q% G& z' G8 Z6 ~
- "dimtxsty". a& d5 x+ ~( o* H5 D+ [
- ))( f& w0 @2 v/ T: T3 l$ U& r
- (progn: d( @$ B. X/ b/ ^
- (setq sv_dvlist (ddimen_getostate dimsty)( C$ P H! Y% t L7 q B; P
- txstyname (assoc 340 sv_dvlist). w3 u, V) j9 r r' I
- sv_dvlist (subst (cons 340 (tblobjname "STYLE" (cdr txstyname)))6 `5 B( _. e2 ~2 }# O
- txstyname sv_dvlist), S+ ^% m& x. ?: ]* _
- dimlist sv_dvlist
[8 M0 d- o1 E# q8 b# ^# o - )) e0 ^$ x( ]; u6 o
- )' K( m* l( V- c) x/ R; i
- (if (= dimtype "DDLEADER")1 c3 k+ {5 h U- m9 m5 l' Q. L
- (mode_tile "mod_format" 1)7 w5 ^/ M. Z/ i
- )
/ w) [$ d8 Q% }# H - (action_tile "mod_style" "(setq dimsty (ddimen_style))")
* E1 ?+ S8 D }/ d8 e6 r - (action_tile "mod_text" "(done_dialog 4)")- G" \* P1 l, W! a) L+ @
- (action_tile "mod_geom" "(setq dimlist (ddimen_dlg dimtype 11 dimsty dimlist))")( f$ d6 l c* W, a& D; h, W, N. t
- (action_tile "mod_format" "(setq dimlist (ddimen_dlg dimtype 12 dimsty dimlist))"); U7 h% P( {2 m% p3 L
- (action_tile "mod_annot" "(setq dimlist (ddimen_dlg dimtype 13 dimsty dimlist))")
. t/ A, Y. @1 H9 a6 I - (action_tile "accept" "(done_dialog 1)")
) k& k5 p: t) O$ h) q% A$ H - )
- W) ]8 }( q- G$ ~& I - ;;
: N1 b2 H: L I - ;; Get dimvars that have been restored. ^( Y) M/ u1 T+ b+ ~' X
- ;;7 u2 V" c# Q9 z+ Z6 Q# Y5 y
- (defun ddimen_getvars (/ elm dvlist dv i), v0 I/ s# P6 B! D) c4 b
- (setq i 3
r5 k) [" X) J4 x; F - dvlist (list (cons 0 "DIMSTYLE")
" `. r) H- g6 T& N, S& t - (cons 2 (getvar "dimstyle")) (cons 70 0))+ r ]- E# Y0 E
- )/ F, T$ _' e5 R+ C' f: x
- (while (setq dv (nth i dimtbl)): l. S8 q7 v; A/ b {
- (setq elm (getvar dv)
8 G/ D+ Z; ] O$ j% j' S9 F2 {2 _ Q - dvlist (append dvlist (list (cons dv elm))): s+ g3 N( Y; f5 R5 l3 X
- i (1+ i)
# r% d- }" {: i0 F6 l6 I* D, B - )- Y: a6 ~. o! i4 i" h
- )9 ~$ |8 D- j4 {( R& s* w/ x/ n
- dvlist- \- W3 r+ o! C4 n
- )" p7 c/ U% _6 {6 L# K
- 8 T6 Z2 c3 t, T' n$ o
- ;;# {' S5 c: O. C' @! @1 Q' w6 F
- ;; Get the original states of dimvars. This is for DIMENSION entities.9 c/ d4 I. M% [
- ;;
% r; Y. l" I! K) w/ P! o - (defun ddimen_getostate (dimsty / dvlist elm i dvvars)3 e, C( n$ X' ?& b8 y
- (setq dvlist (tblnext "dimstyle" T) ; Get a skelton list8 A9 @% b- s- m- K
- dvvars (ddimen_getvars) ; Get dimvars for that entity/ ]; I$ u$ T1 ~/ Z
- i 1
( H+ `. C; N6 ]5 L0 z! n - )
3 v2 n, a5 A5 y7 V5 W* V# H. B - N7 C7 z2 ?' s" Z
- ; Create a list that contains values of the selected entity.9 S/ L- g- v( u$ f& P" V
- & E8 H) h( I0 f) {7 O/ l0 v" R
- (while (setq elm (nth i dvlist))4 D6 w3 X: F0 b, p, I8 W% b4 {+ y
- (setq dvlist (subst (cons (car elm) (cdr (nth i dvvars))) elm dvlist)
8 i. M0 ~& r# Q' m* u - i (1+ i)" ?9 ^6 C% ]0 h- \/ r8 C2 K4 f
- )
2 A7 ^: f4 p$ J+ O! t. w - )
: W/ A E+ f- u$ c! r - dvlist8 o, O- _" m! J: `
- )8 s6 O; L; K( |' V9 h
& i# ~: I% D2 q- w, Z- ;;5 K& N, Q! @. z- O ? m \
- ;; Restores dimvars of the selected enity.6 q a9 K" B# J
- ;;6 [$ Y: d# z$ k. {
- (defun ddimen_dimsty_restore(/ dimtbl dimsvcurset en)0 V& V8 K% h$ E$ u2 V
- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"! B) c: B# i# d
- "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"
( j0 T, B/ m" E4 l - "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"
2 Z$ `# l& M, t6 `# v3 l - "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"9 Q" @/ M$ m, [4 `- I
- "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"& q/ b& q1 R# |6 V- w
- "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"
1 K8 a' m6 N5 f. a2 O7 H - "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
& V* v! b; k) g - "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"
O F, S r. g6 z+ a: F - "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"% M6 v; Z. U9 o' w9 H
- "dimdec" "dimtdec" "dimaltu" "dimalttd"
h% I9 Z$ T: ?$ n8 w+ f( _ - "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj". y8 _) P1 \8 s
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"2 z$ d8 x( d* S) x v9 Q s* ?
- "dimtxsty": X4 I, P4 L/ a3 ~5 G7 v4 i
- ))# Y$ V; [ B# \' K
- (setq dimsvcurset (ddimen_getvars)) ; Save current variable settings
3 |5 a1 F4 b& j- ` p8 P - (progn$ i8 w* F5 ~; K
- (setq en (cdr (assoc -1 elist)))
, ]& X u1 I* C7 M - (command "_.dimstyle" "" "" en)
) p5 e" E( G% i- n* z - )0 p) D7 y( m5 G3 Q
- dimsvcurset' x7 _- u4 R+ x1 f! t& l1 ]& |
- )
# B9 z+ E7 H \2 O - ;;0 U0 Y# P; A% @. A; a& j2 A8 p4 q' f
- ;; Modify Leader1 R) _. J% W* o8 N& @5 U* r
- ;;
/ K, n- I5 V! t; z - (defun ddleader (/ dtypebit blkname bename sublist a stname n dimtbl' o0 S3 I9 A( g; T8 u
- dimsty dimlist dimtext svtext dimovr sv_dvlist stlist
% p/ e [$ T; D: L( t - dimtype dimsvcurset)
( F: f' K7 C. F; _+ p. V) ^ - (setq dimtype "DDLEADER"/ B3 K; N: H7 g
- dimsvcurset (ddimen_dimsty_restore). F$ x( C" ]) d$ m/ q
- )2 a2 [4 v: z4 p. B
- (if (not (new_dialog "ddleader" dcl_id)) (exit))% r% _+ A! |+ Q0 q
- ;; Set initial tile values
$ n0 [2 Z! D, f- k! s \ - (set_tile_props)
% u! L/ q% e3 [2 y - (set_dimen_props)
* `% U* q; v4 g" u# a! _ - (set_tile_handle)9 R) p: a) ^; I+ a1 T
- ;; Define action for tiles
; {* q2 }7 y8 ~ - (set_action_tiles)
1 Y8 y# {% o# B! ^2 u - (mode_tile "mod_text" 1)* z; E7 s) F0 m ]! ]
- V: T- |2 t0 K
- (action_tile "mod_style" "(setq dimsty (ddimen_style))")
, F9 g4 H7 H/ \; i0 [- E - (action_tile "accept" "(setq leadtype (get_tile \"s-s\"))(setq arrow (get_tile \"arrow\"))(done_dialog 1)")( {8 h, f4 w T
- ;; Get ARROW and TYPE.
) o8 U* X$ F7 _/ M2 E, H - (if (= 1 (logand (cdr (assoc '71 elist)))) (set_tile "arrow" "1"))
+ w; [+ |2 J2 _$ u9 u - (if (= 1 (logand (cdr (assoc '72 elist))))
- N, u8 u* e4 r8 @6 a6 r - (set_tile "s-s" "spline")
" D1 p% r. h9 x* s6 \6 c - (set_tile "s-s" "straight")! |5 h0 _ ^+ D/ u
- )) P- l# v( |6 ?. D3 ^# K
- ;; Start the dialogue.7 q/ f3 E- }" _1 Y6 \4 \9 P
- (setq dialog-state (start_dialog))% ]$ ~+ f& ]/ T4 }2 D+ \
- (if (= dialog-state 1)
6 J7 D( K& ?; \1 D - (progn! G( F. Z+ V9 V! i& }& C( K3 I
- ;; update the style3 e7 T6 }/ c9 Y6 R4 Y% l5 u5 H
- (if (/= dimsty stname)
! l3 z, w" U+ J# B6 t - (progn
- J1 M% E% d" k; T - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case' s0 D; s( X. y* m/ R
- ; doesn't have it.
# G" g" w% N; {: j: V% I9 u - (if (null (assoc 3 elist))
n* @0 l, p# i. u - (setq elist (append elist (list (cons 3 dimsty))))
! \# u2 E3 K0 `3 E( i - ; else just replace it.5 o- Q6 c8 O8 M& Q' `
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
! @7 |# O$ a9 s9 {$ F1 h2 j$ @ - )
8 x# h, A) t2 c& L9 p - ; refresh sv_dvlist with new dimstyle.
: m, f* } q: b4 f8 a/ P/ p - (setq sv_dvlist (tblsearch "dimstyle" dimsty))
, k- S/ H* }2 _6 G! U - )
( b4 U- J" y" a5 F ?/ ^ - )
& p+ _; ~! F8 C! x" H. N9 { - (if (not (null dimlist)) ; attempted to change dimvars& x& V1 q" }3 `& Y2 i
- (ddimen_complist sv_dvlist dimlist dimtbl)2 r! \8 l' C, ^# _* V
- )
0 W. N8 s7 m* f/ x: _! w4 B - ;; update for ARROW.; v* b8 H3 n% T) v. c# C8 r
- (if (= "1" arrow)
# O" _7 b k8 n9 J: D* x7 M - (setq elist (subst (cons 71 (logior 1 (cdr (assoc 71 elist)))) (assoc 71 elist) elist))
6 q3 s* y8 F$ T - (setq elist (subst (cons 71 (logand (~ 1) (cdr (assoc 71 elist)))) (assoc 71 elist) elist))6 \, \( w( I1 s6 E1 U
- )8 _4 n- y. D; X! I8 y0 w
- ;; update the TYPE.
- e9 ?/ s. Q7 l% v1 h - (if (= "spline" leadtype)5 r& M, m; T& P0 H- M# c
- (setq elist (subst (cons 72 (logior 1 (cdr (assoc 72 elist)))) (assoc 72 elist) elist))
3 D l) I: Q9 E2 x/ `' w - (setq elist (subst (cons 72 (logand (~ 1) (cdr (assoc 72 elist)))) (assoc 72 elist) elist))
4 i3 C! e& C$ l - )7 i$ X0 v: p& d: m: E
- (modify_prop_geom)# \; _4 X" A, Z8 E1 b% n Y
- ;; update the Color2 h' A. S$ D1 h+ s2 i- I
- (setq elist (subst (cons 77 ecolor) (assoc 77 elist) elist))
8 v3 n1 [& d9 Y" i+ g% h - (entmod elist)$ X3 k( G8 t. t; Z
- )
& ~* b& S- G' d& L - )" E- K$ o0 ~$ \1 X, Z! j
- (ddimen_setvars dimsvcurset) ; Prepare to exit
6 j! A7 R. r( _5 W - )
& v7 S/ Q# T( J0 W5 l) d0 `: I* l2 G) S - : J E" B, k1 X( b7 q
- ;;
9 \( C/ ?) J4 V! z g+ q - ;; Get dimvars of a dimstyle with overrides.
' @# _* s8 v5 f; d - ;;8 E1 O9 n' w" X4 f: v5 R, Q- M& ^. b
- $ {* m" }5 A9 v& P
- (defun ddimen_getdimvars (dimsty / dimovr dvlist elm i)
. K. d' u8 Q9 c/ C7 U - : @! J# _+ Y. X, ?
- ;; Get override information for the specified entity.9 l( L( V# }" l5 e3 e1 U/ m
- ;; Leader/Tolerance cannot be restored by DIMSTYLE command, so we9 F l9 {$ ^3 H5 }& v" ]9 a( m
- ;; must obtain override information through this tedious operation.* R. ~" S R. d7 V D, \* ~
- (setq dimovr (car (cdr (assoc -3 (entget (cdr (assoc -1 elist)) (list "*")))))5 Z$ p, p+ [+ ?; E2 j
- dvlist (tblsearch "dimstyle" dimsty)
9 v# W8 \; `1 m6 P8 \1 a5 U - i 2# H. Z ^/ e8 s+ C
- )% q3 D& f Q/ ^
, `8 v2 _- ^# s k& M2 B- ; Update the list with overrides if overrides exist., e' n/ Q9 V- p4 y1 K
' v6 ^9 ~. E* O- (if (and dimovr (= "DSTYLE" (cdr (nth 1 dimovr))))
: D M# N7 f/ ?( I. f b( W h: A [ - (progn
/ e, d+ u/ K* v% a - (while (setq elm (cdr (nth i dimovr)))
9 W9 c# |4 h& l. m r2 p - (progn0 {' e' N; ^: F6 {$ L
- (if (or (= elm "{") (= elm "}"))
2 T) W( F3 d! c; X - (setq i (1+ i))/ U9 r7 z% T6 m8 c# j( A
- (progn
: z( ~, {2 _" T; g - (if (or (and (< 180 elm)
2 ?" b y& Z# o& ^0 H4 D6 p - (< elm 190)( w6 y9 @7 z; X& x5 b
- )
4 A: Z) P j& ^ - (and (< 80 elm)
2 Q# Q0 k( k7 p1 x - (< elm 90)
. ~# j: o H8 l! g/ d& U - )' r Z; _- x* b( k4 R2 M; v) g
- )
/ ]3 _% c0 ~! t - (setq elm (- elm 10))2 I4 Z# N2 q" U3 W( A L; J
- )( b+ ]0 b1 u. q) Q- J* `& T* u
- (setq i (1+ i)
- X, T( d" \* t) | - elm (cons elm (cdr (nth i dimovr)))
( U$ R( Y5 d5 S! K$ E2 O3 j% } - dvlist (subst elm (assoc (car elm) dvlist) dvlist)2 m) Z" w0 t% D, l% x- |5 z, l2 L
- i (1+ i)
) C& u* q. z& d6 n* w - )4 p0 D& J1 }6 q6 H e. x
- )8 d3 Q+ J2 i8 H- u7 y; v
- ) {+ L0 F+ ^ d- W: W, N$ [" e
- )/ Y" a" k+ M& o$ E) X( J& R6 w* d
- )! T2 c$ i8 u+ \8 ]
- )% N$ P0 E$ x' w
- )/ S# w& [) Z" u# ?
- dvlist
2 u* q. Z/ j; \! `: [# b1 y - )
4 u. T3 ]% s( b8 G6 A4 `! k J - @. g* J, k+ A }% F6 V
- ;;- m$ t i# {* {1 E2 G
- ;; Modify POINT
/ r7 n& H8 x/ v4 E9 f. e8 D" L - ;;
. f3 u2 \. V [8 k5 [& `) I; V! A3 a, t - (defun modify_point ()
# h2 I7 {: L& d e - (modify_properties)
* q0 f$ a. d8 i* {" E - (setq pt1 (list x1 y1 z1))
+ j1 I8 R5 E) o* w; m5 T - (tempmod pt1 10 0)8 q7 q# T/ `" c W! @
- (entmod elist)
- Q1 x* p% S9 \ - )! s! N( n% W9 F% X9 U
- |/ P2 |* u7 l' h- (defun ddpoint (); D+ l5 ]* H7 T1 |& f
- (if (not (new_dialog "ddpoint" dcl_id)) (exit))
q m* Z. \" x$ x: n, h) K9 ] - ;; Set initial tile values
. a6 r3 H4 X9 u1 l - (set_tile_props)
$ O1 y; h2 q0 p( C' z - (set_tile_handle)
1 Q1 E4 r6 ~3 P5 O! Z - (set_tile_pt1 0)
c0 V. }; j5 H+ c' S' ?" @2 R( ]: k - ;; Define action for tiles
8 n$ d% h. K. u8 F1 k - (set_action_tiles)+ n, l9 m% D* ~' y6 A Z6 j
- (setq dialog-state (start_dialog))
, h/ m9 D: j7 k3 U( U6 r; ` - (if (= dialog-state 0)
6 s8 _: E/ ~, z- ] - (reset)$ [ N- s2 P: T3 `
- )9 W" |3 C1 d. W1 v# E `
- (if (= dialog-state 3)/ u9 G0 w8 K+ f$ B) h R2 k
- (progn" ~ F) }: }9 d. c" m
- (modify_point)- h* _- F y7 A: {, A( F& e
- (setq pt1 (getpoint (list x1 y1 z1) "\nPoint: "))
7 r8 o4 u0 F9 g" O6 |7 I3 D - (ver_pt1 0)1 M/ L, i& l3 Y; d; w; R: @
- (ddpoint)* @0 z: c* h' \1 M" ~8 Q; e
- )
: C2 \/ f( H2 r& g3 j - ): c" D4 o. n2 e+ m$ Y" o
- (if (= dialog-state 1)' k1 D/ a0 Q4 i% {5 E
- (modify_point)+ ^* z3 J- m1 s9 v+ I. a7 P4 K
- )
. y2 f) E4 n" I - )2 E" ?3 a8 }4 O/ E
- ;;
9 {/ ?% C7 ?" \' r7 i3 S - ;; Modify LINE) S [. H7 A2 ~3 E. J O
- ;;: _. J. z& u3 ^) J1 \' @
- (defun modify_line ()0 A9 F+ E- e+ F; |: |6 g4 h
- (modify_properties)7 Y) x( ?8 f: m% m7 m
- (setq pt1 (list x1 y1 z1))
9 h) ?; q( M* l- K5 J - (setq pt2 (list x2 y2 z2))
* \5 F. P. q6 f& r0 l6 o W* x. ~3 r. L - (tempmod pt1 10 0)
6 U! P6 }6 `7 _" r9 l2 D - (tempmod pt2 11 0)
5 L# W$ g; b- |3 j - (entmod elist)
5 C8 \9 A. |2 q$ f( n" `' Q) B - )
, b/ q) h- c) K( W) l0 A" d - (defun ddline ()
' M- H4 \4 m( | - (if (not (new_dialog "ddline" dcl_id)) (exit))' t0 e7 A/ D9 M1 e9 i! c1 O
- ;; Set initial tile values
$ ~( j+ q2 ? Q+ s0 }# T - (set_tile_props)
1 @$ f. _% f1 i) e$ L - (set_tile_handle)* p# q9 D) L( T) d' q
- (set_tile_pt1 0)
* M0 c4 ~ {& W9 c& p - (set_tile_pt2 0)
& j" B8 B8 q0 t$ m* B7 r9 o - (line_calc)9 y* f% k& S5 C( \' `/ h0 o& H
- ;; Define action for tiles
, A9 k4 ^# V5 @" o" d5 U) S - (set_action_tiles)
3 I% D9 \& E1 ]* d5 u4 ]7 x - (setq dialog-state (start_dialog))
( z- p6 t' v$ Z' s0 A - (if (= dialog-state 0)( U; V6 a; V' v, _2 V$ C
- (reset)& |7 W% ]1 M5 ?$ @$ C3 @# @: l w
- )
4 O# b) x3 P* I$ J- L, e& ?2 c u - (if (= dialog-state 3)) F& {# y1 O2 n; A& r1 e1 ]. k& f
- (progn
5 s+ ^0 C6 z7 N+ A9 N6 c' u% {2 B - (modify_line)% e9 u: q n. F9 G8 j2 E; r
- (setq pt1 (getpoint (list x2 y2 z2) "\nFrom point: "))4 m) b u1 d5 J$ \8 J1 e% `5 M& Y
- (ver_pt1 0)' I. D" G M. w, E
- (ddline)
( c8 t! ?: ]# t - )
8 Q2 X( Z2 B$ p7 s& E - )
% U. J) f# g% `+ O - (if (= dialog-state 4)1 R* x/ l' \7 u( c) C0 Y
- (progn1 v. L1 o) w4 Z' }! n" V6 l4 P
- (modify_line)
) T5 E8 W' P- p" H | - (setq pt2 (getpoint (list x1 y1 z1) "\nTo point: "))
3 G6 F. d- k% U/ s K& b! @' U - (ver_pt2 0)) H/ X+ `# N4 }4 G* A
- (ddline)
: W5 g, q( d5 T9 M, Z) G9 u6 N - )2 B8 H2 ]' W0 _
- )/ x1 E; I% C' X# `5 [# `2 G5 {
- (if (= dialog-state 1)% N- Z, z! ]% c& k9 k
- (modify_line)
$ v9 l3 c4 o) z9 {& A - )
- d/ ^7 X7 K- a& a' Y% S+ | - )
; X5 ^1 ^: ^0 x1 W" k - ;;2 C/ Q6 U: A7 ^% P1 L( ?& H
- ;; Modify MLine
9 L% o2 s9 Q6 `. S u - ;;) C7 ?' T3 R4 E S
- (defun modify_mline ()) `4 v3 J0 A" h. q" _
- (modify_properties)
( B7 M* ?+ T% w; ^5 E8 l* x- P - (entmod elist)
& w/ |$ |# H1 F9 Q, s& h, Q - )1 F# M0 X5 k6 A3 V4 Z
- (defun ddmline ()5 x" O7 d- t4 J+ n& A
- (if (not (new_dialog "ddmline" dcl_id)) (exit))2 x& k8 \- k z- d0 j7 H3 I
- ;; Set initial tile values
; W! w: w4 Y3 }! z: q) u - (set_tile_props)' c# Z3 w8 m; n0 T2 [
- (set_tile_handle)0 F- X3 P3 }. v8 u, P% C" U2 \
- ;; Set mline style text field.
4 U8 {& Q, [0 v: H" {- H' J$ ? - (set_tile "ml_style" (cdr (assoc '2 elist)))4 O0 U/ n3 C" N) a7 c
0 u5 n$ {$ y9 B. a- ;; Define action for tiles
, y% R, i1 g( @" x7 M. p - (set_action_tiles)* J5 v, K. z: C. t5 |
- (action_tile "ml_edit" "(done_dialog 3)")
: x$ q. D; O9 T- M7 | - (setq dialog-state (start_dialog))
# C/ o: t+ f/ R' h8 N' Y1 A - ;; Dialog cancelled, reset to original values., u* ~8 {( S0 c- U
- (if (= dialog-state 0)7 d2 f) ^' e1 K; P
- (reset)
( m% p+ `; P2 H9 l; ]$ Q - )
3 ]: p* U$ }/ F - ;; Dialog OKed, update the mline.8 Z. f1 x, d+ A9 p
- (if (= dialog-state 1)
k4 ]; V+ |$ _4 D - (modify_mline)
( j/ V4 n# t6 @2 } - )5 v; T- K# }7 I' b) [7 D
- ;; Edit Mline, call MLEDIT.
1 S1 h+ ]% C* J/ ?/ A - (if (= dialog-state 3)
6 G x E; n4 ^$ y! b# b - (progn4 j: r% x& J8 ~( o% k* j a0 m
- (modify_mline)4 k( l, g/ H5 V2 n
- (command "_mledit")
9 h3 k/ h$ L: m: J - (ddmline)
! `( A6 j( B3 z5 L) } - )/ o ^9 T) Y- X8 h6 l4 t' ], _
- )
4 _7 Y7 Q, J0 k4 t, ^ - )0 [8 F' f+ l/ M
- ;;, y$ _8 d4 s; Q6 ^6 @
- ;; Modify Xline
* K8 n, n9 a. F, Z/ x7 [6 u k - ;;
% a- P& v, r0 h v* ~0 B* X - (defun modify_xline (flag)
! C- g4 \3 W) y5 H- q - (modify_prop_geom)* U" W) j' o5 H3 _
- (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))
2 d- A7 P8 [7 b - (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))- e& d" Z) ]' Q8 x; t
- ;; Update the Root point.
: ]. |& p9 n% w; X1 g) G- M% K! d - (setq elist (subst (cons 10 (trans xline_pt1 1 0))' U2 Q1 Q. o% ?# T
- (assoc 10 elist)
3 Q' o0 `* o5 _" k! a - elist
) T5 Z- R/ ]" E/ f$ j- _$ K - )* A: x, M5 Q9 @
- )
5 r! T) a& t' J9 } - ;;! ?' F2 s' n' T D% Y0 d! o9 a7 z
- ;; Calculate new Direction Vector WCS( {- U3 c, ^/ F9 d' O$ \9 R& b4 R
- ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))
" e2 z) L. [( ^% F9 \& @4 S - 4 o: ^5 j- Z2 i' T
- (setq temp_dir (trans xline_pt2 1 0))
0 s! D. l* r6 i3 L1 B$ H) Z - (setq temp_dir_x (car temp_dir))* B# O& p [( w
- (setq temp_dir_y (cadr temp_dir))4 j& B) t5 c1 d4 m7 W/ w* G" q; Z
- (setq temp_dir_z (caddr temp_dir))
U6 w2 P5 i% y$ B) h k. P
# V' G5 ^2 n) D6 J6 p- (setq temp_xline_pt1 (trans xline_pt1 1 0))8 O+ F6 Q1 y( S4 Z
- (setq temp_xline_x1 (car temp_xline_pt1))) o1 o3 W! C1 c
- (setq temp_xline_y1 (cadr temp_xline_pt1))
3 I3 Q+ s9 S' B6 `5 J9 P& r$ r% S - (setq temp_xline_z1 (caddr temp_xline_pt1))
- o$ m, ^% ~- ^2 ?+ [5 a
0 v. Q' `+ R7 p- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)9 N* @, @1 i, V9 ?! m: N
- (expt (- temp_dir_y temp_xline_y1) 2)
5 j) s+ L% U& Z/ \3 ~1 A X: W - (expt (- temp_dir_z temp_xline_z1) 2)2 L' [' Z4 z( R& R% Z
- )))
. {6 y/ z; e. e J/ D4 u) f - (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))& j# q$ x( p2 ]1 t
- (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
) g) ]9 Z2 r1 U - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))5 n: @: q( z5 ?1 ^5 i( ]* {1 X) S
- (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))+ u% z7 L; e8 N& b
- (assoc 11 elist)( A, s2 b% S" F6 C! C( r4 ^
- elist
2 o6 H* q3 q5 B3 R# q( [% P- k! r - )
5 ~$ z# Y3 H* r8 S, e8 q - )9 z' P! n$ ^: x9 p! }" {) l+ H
- (if (= 1 flag), C% s5 ]) A" ?' u% j! h" w
- (entmod elist): p) }4 P6 i, b, @
- ). b' W, q# j5 y$ W7 ~" K4 J* k
- )4 K2 ^ | ]9 z+ @* z: J2 ?
5 Y* l' k) q! a4 [, I1 a6 L- (defun ddxline (). i7 r P1 u% V4 ^: A3 C/ d
- (if (= etype "XLINE")0 w; @) \8 Y* Q& z6 j
- (if (not (new_dialog "ddxline" dcl_id)) (exit))
* Z3 t M% z' b& v; l2 A. p2 ?4 s - (if (not (new_dialog "ddray" dcl_id)) (exit))
7 R* J* J# [3 j o _% ` - )
. \* E+ { O; a, f" V, J - ;; Set initial tile values4 r' \" M2 T) J# F
- (set_tile_props)8 ?0 v# z* j/ x2 J3 ?
- (set_tile_handle)
/ T9 e% z( J* D- r# ]; m- ^' U - (set_tile_xline_pt1)% y, u0 u7 R5 Y5 \) f4 y
- ;; Convert to UCS and post Direction vector.- L* w# k( E Y( N% p8 E4 f
- (set_tile_dirv)0 X% O4 I; N3 N) D2 s- Q. g. ~. f
- ;; Calculate second point by adding Root Point + Direction Vector.
+ A, d$ z; \" L. C" D - (set_tile_xline_pt2): x/ m1 B' A9 a# F( F3 c
- ;; Define action for tiles
( q) t) N- L" W3 o( Q" S - (set_action_tiles)
2 N, M* N' y% x8 j6 V - (setq dialog-state (start_dialog))- o( j, G. [) l! i3 ~4 o
- (if (= dialog-state 0)
8 ?# \' l# R9 o - (reset)$ W2 J" p4 g6 F
- )
# Y3 ^% H+ t) |& t" K* H - (if (= dialog-state 3)
/ D5 D# b3 Q4 b0 u [$ Y# n; X - (progn
/ Q8 C& Y& u8 e) b& }5 i% v, b - (modify_xline 1)8 A6 ^& N, n5 P8 _4 w/ k" V0 _
- (while (equal xline_pt2
2 ?8 B% n: |. | - (setq xline_pt1 (getpoint xline_pt2 "\nRoot point: ")) 0.000001)2 D2 L, x6 }8 k9 p; n ?. Q3 ]
- (princ "The Root point cannot equal the Second point.")) i6 M9 t1 E6 d+ r+ t1 b
- )% B+ e7 }; x) j$ G# d
- (ver_xline_pt1)
2 R0 D5 t& x- ?+ m7 N. K - (ver_xline_pt2)
! D! w6 G9 P6 r# _, d) z8 F - (princ)
- O6 N5 }( D9 Z' s% _% c9 \" F L) _ - (ddxline)
. O: @- _4 k: j* `: a0 V - ), X4 Y8 o N1 i. S+ w2 x& g2 n1 S
- )* x+ s* E2 P% M( O; k6 S
- (if (= dialog-state 4)7 T/ q8 ]' y/ L y
- (progn, g2 p0 N' U" j! R# \7 {, A
- (modify_xline 1)& g" g, X* x4 h7 C1 ~ F
- (while (equal xline_pt1
+ U6 w2 x% ]" T0 c* b$ K0 { - (setq xline_pt2 (getpoint xline_pt1 "\nSecond point: ")) 0.000001)- k4 w' c5 s* o1 w# Z: d/ O
- (princ "The Second point cannot equal the Root point.")5 C" P& s& o1 q/ k9 |9 r
- )
8 B( }- L% Q1 r; N3 i( H8 w - (ver_xline_pt2)
( Y. G/ L; ]& @/ Y! t V7 { - (princ)
& A0 p1 p2 L( w - (ddxline)4 I! ^3 H9 E1 X) X- W! \# Q
- )
! [$ \& O) ?& m. f' }2 C5 O - )
+ E2 [. K4 O( @" P9 c5 V7 @/ e - (if (= dialog-state 1)6 K1 u, z* c8 W3 W$ U
- (modify_xline 1)4 z: X( E( X1 E- E: B6 Y" @
- )( S% @+ G: H; {" u' ]6 U
- )! ]0 g- Y# [3 t6 L9 [3 ?+ |6 x
- ;;
2 L& n, F% `9 c' N7 v- N - ;; Modify ELLIPSE
) ?& s; R7 T, o, [( g( S, \4 v - ;;
6 w2 n% s' J [, N) Z: ^9 D - (defun modify_ellipse ()
8 b$ @# V$ g* F$ a% ~ - (modify_prop_geom)
( W% |2 `3 M# v7 L c - ;; Update Ellipse Center Point value.- |& p$ l" h" E4 m7 G
- (setq pt1 (list x1 y1 z1))
" C, q, V! U& }: k2 g- E+ f, A - (tempmod pt1 10 1)
7 g* t7 \$ U$ b' j6 V! @! b! ~ - ;; Update Start Parameter value.
& }( s. B, {. _0 a# s2 ?6 t - (setq y_val (sin st_ang))( w. ~9 C3 O8 P/ {' v
- (setq x_val (* rrat (cos st_ang)))
( J. w7 B5 W' k1 o5 S2 h& Z - (setq stparm (atan y_val x_val))
% z2 I; t$ d8 a2 h! z+ y - (setq elist (subst (cons 41 stparm) (assoc 41 elist) elist ))5 K5 k! h+ k% w0 J& T5 U$ G: k
- ;; Update End Parameter value. Normalize it, if it's less than) l) I8 S$ X# \( r3 ~8 l
- ;; the start parameter.
8 Z& l( Y6 D1 M5 A* \' m6 i4 v - (setq y_eval (sin end_eang))
2 O% [+ { a% i3 \# ^; { l( A - (setq x_eval (* rrat (cos end_eang)))
7 o8 v$ G x: t$ I+ \ - (setq endparm (atan y_eval x_eval))
$ F. o$ F9 n `7 g o. {2 m/ k - (setq diffparm (- endparm stparm)) {2 ^3 C7 `3 d, D2 W" ^
- ;; Epsilon of 1.0e-6 radians for checking a zero length arc.
# e6 ~4 O* e* R2 M( {8 z- I$ C - ;; Since zero length arcs are not allowed - construct the full, u4 l8 O6 W2 n6 p
- ;; ellipse in this case.$ {$ T/ o, ^: y% o
- (if (<= (* diffparm diffparm) 1.0e-12)
/ l; w K; X- V0 r \" C2 t6 P3 g - (setq endparm (+ stparm (* 2 pi)))
, _9 |. z w! |# e0 R - )5 @- A! H8 {) o" P" |
- (if (<= endparm stparm)* ^! K8 |; } _' a- D8 J$ B% N% E/ O
- (setq endparm (+ endparm (* 2 pi)))6 g) r2 Q% O$ t+ J/ d7 G' P
- )
8 } B, h( E" A8 q - (setq elist (subst (cons 42 endparm) (assoc 42 elist) elist )), E! {8 N* I6 `3 Q! R/ T, ^
- ;; Calculate the Major Axis Vector by first calculating
' i8 A: N. k$ r+ a - ;; a unit vector using the old Major Radius value. Then" \( M* X9 |; N! ?" }5 V
- ;; Multiplying that by the (possibly) new Major Radius$ x" T0 ]) k* H+ B/ B
- ;; value to get the new Major Axis Vector value.! [% q" W! D: s9 H
- (setq unitxx (/ xx old_majrad)). y( l- d" n# _1 Y. S
- (setq unityy (/ yy old_majrad))
0 K/ B# q+ ]2 E* R5 W: W - (setq unitzz (/ zz old_majrad))
; G8 z3 r' _+ W3 Z% I4 d - (setq newvecxx (* unitxx majrad)) y" S! |4 L0 E) s" x
- (setq newvecyy (* unityy majrad))
2 j T5 V" M2 T4 u6 N( i - (setq newveczz (* unitzz majrad)), \8 q6 S& e6 I( q; |0 f/ l
- (setq newmajaxis (list newvecxx newvecyy newveczz))# g- W- u4 d) R! n6 c
- ;; Update Major Axis Vector value
. D' }9 m9 y5 i$ @' z+ ?" A - (setq elist (subst (cons 11 newmajaxis) (assoc 11 elist) elist ))
$ Z* U& X' ]' x w - ;; Update Radius Ratio value% |0 {- ^9 ], L& B1 e2 c
- (setq elist (subst (cons 40 rrat) (assoc 40 elist) elist ))1 U: E2 _) z( v, e
- (entmod elist)
7 M+ H1 @$ d+ p# ]' o* J - )& O5 b K( }3 x
. q2 V9 L" L3 A- (defun ddellipse ()
* ? u, a1 k0 L4 N, U) F+ c: j - (if (not (new_dialog "ddellipse" dcl_id)) (exit))9 N5 N' d. h3 @& b t: M
- ;; Set initial tile values0 Y: k& `% F/ b; _- E8 q
- (set_tile_props): L+ S2 R0 C% O! y* ?" x( r8 j
- (set_tile_handle)+ g4 r+ }" S% q- m. R8 Z8 n* b! m* V
- (set_tile_pt1 1)
' j* [ G- p$ R. q, u1 I5 }* Z - (ell_calc)
$ R1 _/ s; x. c - ;; Define action for tiles2 m! d+ b# Q$ g7 g r6 G
- (set_action_tiles)- d3 V+ }* B8 {; A/ n7 E# l
- (setq dialog-state (start_dialog))
+ s$ v% d( [6 E' y - (if (= dialog-state 0)
8 r. s7 |2 _5 o% E - (reset)
# a7 x y1 W" T - )
7 f0 {. ^0 J9 p9 `$ [2 C( @2 N - (if (= dialog-state 1)- w( `& ] z0 M' y
- (modify_ellipse)
1 L9 u. k4 R, G5 a* v - )
5 I0 z7 x3 S( d& l+ ~ - (if (= dialog-state 3)3 v! J! J6 D- w. e
- (progn0 ?3 J( \& Z& |8 `: U9 v( a8 S' N
- (modify_ellipse)
5 E, _ T2 k9 D" T8 h* H- _9 H - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
/ {) X( f4 b: ~& \5 `) r: R - (ver_pt1 1)
- G K9 K$ a% I" j3 c8 U M2 W - (ddellipse)
& Z; E# F$ ^( k - )" t) W8 Q! }. D
- )9 s, b% E4 i# \/ ]* }/ f
- )
g) X3 Z9 M2 d3 ^5 G0 q - ;;# ]! `/ |( d! v( m2 e$ z1 l! y
- ;; Modify REGION& o' e* K& d1 y' P ^# E
- ;;2 q) Y/ m: U0 h8 n
- (defun modify_region ()
0 |4 K+ S7 P7 t8 y; e - (modify_prop_geom)
3 }: R9 k1 U, _7 k" K: w - (entmod elist)
% y. H& Y( b3 @, g( Z5 f, d/ N( T - )
, @4 f+ c4 G7 `' v4 E - 2 U9 p# M" H' _; e& U
- (defun ddregion (). y: N7 w9 ?. y9 F
- (if (not (new_dialog "ddregion" dcl_id)) (exit))
, C4 E# }/ d4 _' h& R/ W& K- E - ;; Set initial tile values
% c! J1 C ^) a2 W - (set_tile_props)% t# Z( q1 X/ a7 I: J- J! S3 V
- (set_tile_handle)( i. N- T5 H3 u3 ?2 k# q, P
- ;; Define action for tiles
6 r) A) `; v& @- y7 {" v - (set_action_tiles)
4 u9 q- R0 |4 Y [9 o: i. g! W) q - (setq dialog-state (start_dialog))
+ Z! Z1 E& z3 ~% g4 O2 Z C# j - (if (= dialog-state 0)1 s) B% x$ a& m6 i( M
- (reset)3 m+ Y; \& b+ d! B3 \) I8 x
- )
: b" @; v1 m& O& X0 |: R - (if (= dialog-state 1)7 m) B A/ H. Q
- (modify_region)
) l. Q5 H8 L! z) N! t% P& O2 p/ P3 B - )
5 e1 W; `: B2 X+ t: K - )8 z7 e' O: I- D! j
- ;;
]/ o R6 J/ ^6 P - ;; Modify 3DSOLID
: L1 i$ Z0 h6 K - ;;
1 {. x" c g: y, i/ z' A - (defun modify_3dsolid ()
0 G- A5 E6 q! r0 l" x; @3 W - (modify_prop_geom)
- g2 p+ R( Z& g7 C( L8 \, S: \ - (entmod elist)
1 k- B, e0 O2 Y2 v, i6 f9 T. T - )# k% ?0 w. R. d
! b) R6 \2 J1 U/ B. C9 \0 h- (defun dd3dsolid ()
, @/ _$ Y- n* F& [- [4 @ - (if (not (new_dialog "dd3dsolid" dcl_id)) (exit))
' x8 ^4 u: V& F7 Q- H - ;; Set initial tile values
6 |; k, ?" R7 L9 H% J2 h - (set_tile_props)
$ a+ a$ e9 S# {$ X - (set_tile_handle)& ^; r0 } }6 Y* I9 e% @8 E
- ;; Define action for tiles
' B; M5 N7 |' U3 r - (set_action_tiles)
- Y! m" z7 `% j$ c+ f, O. J0 R - (setq dialog-state (start_dialog))( Z ^( t8 ^# z1 x6 }. _
- (if (= dialog-state 0)
5 }( Y7 z4 V k* ?% z! C" r1 i - (reset)
6 m# r. a: ~& n# `, F - )! o* M" ?' E2 K% R
- (if (= dialog-state 1)
+ T" O3 V/ W6 K! R: r8 x - (modify_3dsolid)3 i. T, z* g) D! U
- )7 _. [( X8 J! Q( `0 D' u
- )# l/ ?$ J$ ]: C) N
- ;;( R. f1 Z, w b7 [5 t
- ;; Modify AcDbHatch- r; g* F) K) T' i3 q! a y" Y2 j
- ;;
8 U3 A3 M6 H- g3 f* h! N - (defun modify_hatch ()' \. E" n% [/ a2 M# Q- L9 v/ o
- (modify_prop_geom)
; x4 `( h$ F/ ^! I5 V# G% g - (entmod elist)
& C" K. B1 v: T - )) R4 u {4 Q( i( y! i+ i
- - G9 U/ }6 w$ ]9 u
- (defun ddnewhatch ()) |7 u. g4 t- |- p
- (if (equal hatch-elist nil)2 S# e8 ]' ` z5 M; S$ `! N
- (setq hatch-elist old-elist)
' k8 K( H0 H3 D - )
" U7 E; L0 E2 t
* j. e2 R3 A9 ~0 b' n [) g- (if (not (new_dialog "ddnewhatch" dcl_id)) (exit))
6 s8 e5 Z/ Z, @! Z9 ^; b - ' J/ h1 H# n, Y! w" o. b- O+ \
- ;; disable the thickness tile
* ?* s! {0 D# c5 [ - (mode_tile "eb_thickness" 1)
1 y# o& F7 w8 _* z - (mode_tile "e_thickness" 1), z' @: g4 u& a/ n. q2 W* b; Z I
- x% b" B) r5 v# t+ i l/ L1 y- (setq help_entry "modify_associative_hatch_dialog"); G8 A' }- D& u& Y; Y
- (set_tile_props)' ^; P2 P- R: i4 _* m
- (set_tile_handle)2 ]5 H9 u- Z/ K3 |% @/ {8 ~
( K# ^# I- H" a6 B- ;; Define action for tiles
$ x# l4 g, m' [# d. t: @ - (set_action_tiles). q' a a# b: r6 ^: x1 @
- (action_tile "b_hatch" "(done_dialog 2)"), H/ _: V$ s. g0 v
- (setq dialog-state (start_dialog))
6 z7 h7 y+ x; }. ?% q& v - (cond
3 V- \8 d( m* S2 ^ i1 O+ d - ( (eq dialog-state 0)
$ K0 u& j+ Z) c2 R8 o O - (setq old-elist hatch-elist)) V8 c3 i9 G# ~
- (setq hatch-elist nil)
5 `, i5 a$ `1 i, J0 a% T - (if (= (checkforlockedlayer ename) nil)
& o- B; t8 j) L6 f' k! u - (reset)9 e% [5 O( N) e( x) _2 I
- (progn ;;; special handling for locked layer reset* h! J4 t7 m6 { [$ _* b
- ;; unlock the layer5 i9 i! e; D1 B% h8 G
- (setq layername (cdr (assoc 8 (cdr (entget ename)))))$ G! H$ N |6 {& \) F) |
- (command "_.-LAYER" "_Unlock" layername "")# ^* Q. l- r# Q4 r! V- h
- ;; reset modifiction* q2 a6 |( e% U6 s. ^5 \
- (reset)/ {0 z1 P- v% S: J
- ;; lock the layer again/ p5 n: `" S. h/ v) i
- (command "_.-LAYER" "_Lock" layername "")" U. Z6 h+ \0 ^- e4 `3 c( n6 y
- )$ W* h/ l& p1 E3 f( o2 p
- )' z8 n. u/ G! F0 n1 }
- nil ;;; makes (ddnewhatch) return nil for Cancel
7 w1 j. {) C$ U3 R& p% T - )2 i0 r. t# u& p. m! n l
- ( (eq dialog-state 1)
: Q% Z0 A! ?) K2 T - (setq hatch-elist nil)
& s; I! c% a# d4 F - (modify_hatch)8 Q! ]" C+ \8 C0 r2 H
- T ;;; makes (ddnewhatch) return T for Ok/ K0 E6 r$ z X
- )
9 w0 R- s- \4 c) I6 c8 Z3 A - ( (eq dialog-state 2)
* e Z& }% a2 b - 4 z5 y$ d. S, L V
- (if (= (cdr (assoc 70 (tblsearch "LAYER" elayer)))
' u+ a% Z; ?& W - 4
; \! w; N: X# @4 z( L! f) v. W - )
) \) r) l( y$ S' U# k6 @( c& f* I$ H - ;;; new selected layer is on a locked layer
, u; a% T$ A3 R; ^# S/ e - ;;; we can simply modify the hatch properties
' U; p: k! R1 m+ a2 t( Q. f( z - (modify_hatch)
/ T* h/ I$ q6 F! n - (progn) v: z; P& o2 ?) g
- (if (= (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 (cdr elist))))))
H! |, \) \5 s# |- c1 X) r - 4* J* r3 M4 A9 [( a. s, n% ~
- ) / h5 Z7 M9 f# e9 Q- z4 C/ H
- ;;; We changed the layer previously and now the hatch lies on a locked layer.0 S+ |5 S4 L. B+ N
- ;;; We have to unlock the layer forethat we can update the hatch properties.; x. [& e0 z. j0 k- @# U+ w- T
- ;;; If we don't do that (entmod) fails to update to the new layer.
- h3 p. _, v6 s) n; s% V - (progn
! \9 B; |. j/ Z* x; @* [! j" ^ - (setq layername (cdr (assoc 8 (cdr elist))))
* n2 Q% j0 N9 F) c2 i/ b u- V - (command "_.-LAYER" "_Unlock" layername "") ;;; unlock the layer: q) l7 k* L q
- (modify_hatch) ;;; update the properties* a+ r3 M- L7 C! m* w. k
- (command "_.-LAYER" "_Lock" layername "") ;;; lock the layer again/ d! m) u3 }# G V
- )- z) |3 u: D* N0 D5 S) O
- ;;; All other cases we simply update the properties
/ D' T3 F: V$ Z+ }! Q# D( y - (modify_hatch)
, A3 q! f6 g" v7 b% Q - )
# k, B+ T1 G& l* J% H. Z - )
: y" d3 Z! S* K - ) # m& r- {% I$ i( O# m9 g! r
- (if (= (checkforlockedlayer ename) nil)
3 d0 ]4 f' F/ ~4 @ - (command "_hatchedit" ename): n7 d0 v& {8 \1 R
- (alert ;|MSG111|;"The hatch object is on a locked layer.")
* ~# j4 k+ W. @% k - )! A% l- n6 }4 z* J
- (ddmodify ename)
) T/ Z( q6 C1 @- A: u/ L, P, B4 _ - )/ G/ {& S+ W! r# {2 @
- )8 b) I. i3 C: q9 R. K. D
- )% k3 u+ ^' G% y! ^$ Q8 ?& n
- ;;
/ v7 P, N% j/ r/ a% _9 Z - ;; Modify BODY6 U! C4 G5 x. a F h
- ;;2 p& f; z! x$ w$ t; ^" N9 z
- (defun modify_body ()
( ?& m S; m( K# |: y - (modify_prop_geom)
, Z/ ]( Y7 Z4 u) d) S0 x0 a$ W! M - (entmod elist)6 z- v8 S: w/ Y( G
- )/ F$ G& `6 {# H! H% b" U9 y
, L$ z+ I, ^+ K1 l/ G! F; ^3 }* v- (defun ddbody ()- |" T3 B8 h/ x, m
- (if (not (new_dialog "ddbody" dcl_id)) (exit))
- L j6 d% M+ J9 a7 a0 H - ;; Set initial tile values
- U0 h- I# S6 P9 G% D. K; k0 G - (set_tile_props)9 p* P) v0 v; e2 B: Q$ _2 T
- (set_tile_handle); N9 n' P4 l+ x3 p5 N7 c; @
- ;; Define action for tiles
- \# a$ e {$ L - (set_action_tiles)
5 O% E( K% {. O v& m0 u - (setq dialog-state (start_dialog))! `7 Q. N4 c) R3 L+ f: O
- (if (= dialog-state 0)
W/ ]/ ]! _/ a- X- G( Y: Z - (reset)
7 v- B3 ^4 m6 V1 T* ?9 }* K - )
& j; p5 w5 t2 ~3 b - (if (= dialog-state 1)
) }' a( Q k$ ` - (modify_body)
& I' x5 Y0 D! h$ f; V# p1 _ - )7 c3 @" `' }. u b8 G l
- ): N2 @- v' m& A1 z p4 e1 K
- ;;
% _5 _+ {$ E; e* e$ E - ;; Modify CIRCLE8 T& P- J: b5 z+ t5 w% @
- ;;: b" O* Y6 V" ] H3 `6 N. @
- (defun modify_circle ()
: V4 J& c% D& s - (modify_properties)
: S/ x7 R) Q) \ - (setq pt1 (list x1 y1 z1))
7 B( l, B6 Y( l$ P# a. }- A: |0 D - (tempmod pt1 10 1)
8 x v3 P) r0 d - (tempmod radius 40 nil)
) o* D) H& ?. ` - (entmod elist)
+ y, O8 `# |, X1 w8 ~ - )- b. l- s; D% K5 S9 j0 M$ c
- 6 V9 s' `0 I5 I! D3 i! U1 o
- (defun ddcircle ()2 k1 K/ Y! W A0 C8 \
- (if (not (new_dialog "ddcircle" dcl_id)) (exit))
: |+ `; G/ H# |3 S9 ?4 |2 K; l9 b8 X - ;; Set initial tile values
. J' ~4 ^& V$ D# \ - (set_tile_props)5 H; B* M5 Z6 S- d& a2 D9 ~1 S
- (set_tile_handle)
N5 M" S/ ` D. N; P( I2 N/ o6 Y6 T - (set_tile_pt1 1)
) _9 [6 Z5 {4 s2 }5 Q/ ?+ H( ~6 t - (set_tile_rad)
/ C+ o( T+ N: ~: h - (cir_calc)+ i7 [$ y& i% ]
- ;; Define action for tiles! B. ^6 K) _$ v k6 Q. i( _/ s9 T
- (set_action_tiles)
4 b; Y8 [# V/ p3 k: d$ Q+ n - (set_tile_pt1 1)
0 J a3 ~9 O0 p. s4 q - (setq dialog-state (start_dialog))5 l! k( T) p. N* g$ o6 Z) \, ]
- (if (= dialog-state 0)
7 x8 f+ k% n" ^4 o. u - (reset)$ F' n1 w2 G m: r. i' [( |
- )8 I% |5 @9 `; Q Q0 B% z j; i; a
- (if (= dialog-state 1)
/ `& W) Y$ f& ?& I* l% y - (modify_circle)
4 l8 ]! x) i1 s! o4 E - )5 F- y0 V4 V+ l/ _1 s
- (if (= dialog-state 3). @1 H/ h) Q. |
- (progn
$ u1 p. ]9 E4 {2 ~+ p - (modify_circle)# z' A( B: r$ c( _9 i5 u
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))' h9 p' r- v; ^ Q1 q& d% e( f/ [3 K
- (ver_pt1 1); E4 x/ I5 j' e( Z: t2 o' ]7 N
- (ddcircle)
) e. \) V1 x8 _" _* m - )
# f% K; M v3 _" K/ P: F3 e - )
) Y5 X% O4 |0 q7 m5 d5 |% w+ r* `9 y - )( p1 A. d6 Y8 h3 d, E1 [
- ;;
2 g: t5 W! z" c4 t$ m% Y: t9 o# b" G1 F - ;; Modify ARC
, U* W2 U+ P/ ~! b3 d" @! O+ ` - ;;7 k* G3 }$ @5 \( i2 ~. F N1 n
- (defun modify_arc ()
# j9 k, z2 n7 p9 W& B: X8 c - (modify_properties)1 n' i- n- F0 I4 l! X( D) O9 a
- (setq pt1 (list x1 y1 z1))5 q( f2 Q; @2 {5 N3 A! X) |
- (tempmod pt1 10 1)
6 j* G5 x/ o Z/ Z, r* ]5 s - (tempmod radius 40 nil), x. d/ _& {( Q7 f9 r
- (tempmod st_ang 50 nil)
b7 B1 V3 H$ D; I - (tempmod end_ang 51 nil); b" R9 J( |9 Y6 w% ^0 J
- (entmod elist)
$ \0 r, @3 e0 m% `- e i- ?! B9 V2 o - )+ g- ?# N4 ~0 ?) k
- (defun ddarc ()0 L t B. ~* i' k
- (if (not (new_dialog "ddarc" dcl_id)) (exit))
# N0 h g# a9 d9 F0 j4 t - ;; Set initial tile values
1 q4 u% X* E: s( Z - (set_tile_props). H3 j6 e6 B! x3 h
- (set_tile_handle)& P r% W* a: Y* t, u* H% u
- (set_tile_pt1 1)3 r! E% Q; R) m
- (set_tile_rad)
3 W$ C' z" G( K' s( d$ Y - (set_tile_stang)( O; E. b \- s3 X+ R- b: g
- (set_tile_endang). T) w R# E" f6 n ~! d
- (arc_calc)
. a+ F: w2 `6 }0 J a$ b - ;; Define action for tiles
0 i3 y/ o' ^ D6 a - (set_action_tiles)6 M( O9 S2 K$ w% Y& p# I( Y& H# ^- ]
- (setq dialog-state (start_dialog))
) R1 ]8 {0 [* H: z3 t3 v# _ - (if (= dialog-state 0)
7 \0 G# v+ A$ ^' ]( T, T - (reset)- |9 u4 n& u4 N6 d
- )
/ l' Q5 [% L* D4 d - (if (= dialog-state 1)" w9 K! d# }# Y
- (modify_arc): H, _ A6 [8 j h; {5 I
- ); r- t8 q2 L) @
- (if (= dialog-state 3)
% a0 W# [3 V- j9 u - (progn
6 Y/ \$ k L4 P6 M8 O: G - (modify_arc)
9 n% i6 G5 M0 n/ A% Z - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
: f3 }* M7 w, G8 \+ a% l - (ver_pt1 1), r, D/ E% }! C& T0 }
- (ddarc)6 ^' H$ v8 K6 v/ j+ w f
- )
( \$ X$ @5 J, M6 Y( ?, `% ~ - )) V! P* l W/ L- Q! Z- a
- )' b! D' D2 x; T4 d3 Y, R5 q4 N4 D/ A; k
- ;;2 X; j- H s" R7 r
- ;; Modify SOLID or TRACE: Q" n! L" ]& |8 {! `
- ;; Note the Z value of the object is determined by the Z value of the fourth
8 S4 H- _ g* f( M: o1 a: D - ;; point - code 13. Changing the point values of a solid or trace from a UCS0 [* d4 p$ Y) E1 Q$ F2 ?6 U
- ;; that is nonplanar to the UCS the object was created may confuse the user.8 d2 @8 U6 M- v0 @7 T
- (defun modify_solid ()
d$ W8 A# U. g( Y+ J. @( g - (modify_properties)
7 r$ P! l) b; @% v' b- F) B" Y - (setq pt1 (list x1 y1 z4)), l+ a ^, {7 ^
- (setq pt2 (list x2 y2 z4))
' D, X u' ~* b* G) s% M k) p; i - (setq pt3 (list x3 y3 z4))2 j2 ~/ `& ]* `$ E; v. R$ G+ R7 o
- (setq pt4 (list x4 y4 z4))
- G+ t* W0 M% t - (tempmod pt1 10 1)
. f5 g4 ]/ k) Y; G - (tempmod pt2 11 1)% M" V4 j+ K% s/ `( @, A
- (tempmod pt3 12 1)4 `7 C' J p2 B7 l
- (tempmod pt4 13 1)
+ Q) W& g$ x% A' \6 [$ w7 O - (entmod elist)2 `/ S2 i! B5 q% H: r4 M
- )" J0 j& `; j6 U! Z, L ~# j
- % [0 W& z' y4 D* ?: G5 A& @
- (defun ddsolid ()
( Z6 _: Z' J6 p3 A% v - (if (= etype "SOLID")! _" J7 X6 G. j" p) F" J" L) {5 M0 C
- (if (not (new_dialog "ddsolid" dcl_id)) (exit))
6 q) `7 Q9 S1 }% ~4 C - (if (not (new_dialog "ddtrace" dcl_id)) (exit))
6 q: M3 P: h8 t, x/ N- c6 e. Y - )
) T9 E7 B+ I1 o. r2 }3 r( @ - ;; Set initial tile values$ M. ^& f) o7 |% j# v" U p: L
- (set_tile_props)# h g" f) J% u; V5 K
- (set_tile_handle)' n. s; I1 i4 T& R( q
- (set_tile_pt1 1)! H3 ^3 B& E7 j- f& L4 K- Z8 `
- (set_tile_pt2 1)9 Z% b1 J4 ^) _
- (set_tile_pt3 1)
+ E# m& ~6 \- h7 B" w - (set_tile_pt4 1)5 d* T- O" v$ z2 p' ^' p
- ;; Define action for tiles
2 P* q+ E* J- v- Z3 K - (set_action_tiles)) d. v T4 r3 J* m2 m
- (setq dialog-state (start_dialog))
& \# d" r8 i& n, j0 U0 W7 J. m - (if (= dialog-state 0)
" e4 N( m5 J9 O F2 ~9 s5 t - (reset)
3 K2 {# n7 a% d# q: a - )
2 A$ |3 N) H; `! X - (if (= dialog-state 1)
. u; q/ A) k Y; J9 J1 @, z - (modify_solid)6 y9 l# B- n4 l- H8 q# u
- )7 Z; m5 X: F3 c& o, y; u
- (if (= dialog-state 3) p2 O" e H' Y7 X' u0 Y7 w0 }
- (progn6 u! }( z5 c8 e1 A: w
- (modify_solid)
0 ^/ N L1 O9 _" s% }/ c' s5 c - (setq pt1 (getpoint (list x1 y1 z1) "\nFirst point: "))& c" H9 k# }8 F2 `
- (ver_pt1 1)
8 i+ b8 P6 M8 p7 ?# v - (ddsolid)
, Q- @5 v8 s$ p: d - )
/ T+ F" C0 b7 [# i - )
+ m2 W- P/ [# g5 h - (if (= dialog-state 4)
% C* b- D! a9 C4 x3 Z" F0 p - (progn# \; g: V& r( @+ t$ r
- (modify_solid)
' H. y% F8 z) h - (entmod elist), z6 y; ], v8 Y. i5 r0 e: v+ M
- (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))( j+ I' Z, Z: d, E
- (ver_pt2 1)
5 D3 x* Q6 C) r/ Q1 q - (ddsolid)
3 v+ K5 H% `) u% N+ H4 k - )4 j8 q5 ^* ?3 q- j: d/ H
- )6 L$ X& j" ~5 i) S2 d/ Q- s
- (if (= dialog-state 5)& n6 s: c; k8 m0 E8 i5 N& D3 L9 B |
- (progn
) a4 R' ~& j" b! b- f9 e8 C - (modify_solid)
8 W7 l c( r j - (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))) g0 i) y& G% F. I7 y2 U
- (ver_pt3 1)4 s! h9 Y3 m6 \
- (ddsolid)
/ |+ m, A& s( W) f7 i - )
6 r% B: J: Y3 P( ]) O8 o - )
: U3 `) d4 \' z) `) X - (if (= dialog-state 6)
* `4 e! K& T" ]) k/ T2 n - (progn E: M+ g2 K- y) @3 T
- (modify_solid): p$ A9 a; p3 O j* s; `+ q7 x
- (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))
' c' m% u+ p Q2 g/ V5 B7 G - (ver_pt4 1)% `- B) L: ?- f
- (ddsolid)* K' L9 w E" c
- )
+ {! y ?8 w0 B; A" u( O - )
) L8 X: s8 ]+ K* G% a - )
V. X& ?6 T5 \8 h - ;;5 o) y" p. s4 L D7 \/ o
- ;; Modify 3DFACE* u9 j6 k( I( z; R
- ;;1 Y- c# d7 s3 b1 c0 ]: L
- ;; Check visibility of edges1 ?9 t$ s; x0 n% l; s
- ;;, y9 E) U, Y* V" u+ W) M& b; z& ~( E
- (defun edgetest (/ bit1 bit2 bit3 bit4)
5 \' y. G- p4 p6 m3 t - (if (= edge1 "1") (setq bit1 0) (setq bit1 1))3 J- y2 c/ t: S! r7 T! m
- (if (= edge2 "1") (setq bit2 0) (setq bit2 2)), h! b8 V; u9 ~ B$ X4 B5 T
- (if (= edge3 "1") (setq bit3 0) (setq bit3 4))
0 X; L- A1 O9 ]0 e - (if (= edge4 "1") (setq bit4 0) (setq bit4 8))4 x- Y0 Q t5 w7 K1 Q8 P5 a
- (+ bit1 bit2 bit3 bit4)5 O7 U1 ?8 v( _) D9 `7 k% Y8 c
- )" q/ e9 i8 l2 ~( H
$ y0 M- n9 ^5 |7 j0 r% s' U1 O; Y- (defun modify_3dface (), s' @1 G: x4 X: G. n& P$ w
- (modify_properties); v1 T; ^ B" h9 @7 a! X- ]
- (setq pt1 (list x1 y1 z1))
. V5 H d8 S( Z5 @ - (setq pt2 (list x2 y2 z2))- C% n" l6 Z2 i+ A$ `! R4 M' B
- (setq pt3 (list x3 y3 z3))) }8 ?! A/ }! m. K# ?) X# n r& \
- (setq pt4 (list x4 y4 z4)); \9 C1 ]) l+ _5 F( v
- (tempmod pt1 10 0)
2 T) I2 r; S% Y' z - (tempmod pt2 11 0)0 s; m. Q0 A) W* H5 R
- (tempmod pt3 12 0)# J* W. @ J$ e5 E- V6 A# D2 w, y1 V
- (tempmod pt4 13 0)
8 H$ Q5 f# u' w6 o+ n$ t9 a - (tempmod (edgetest) 70 nil)
0 @8 {6 x& [& P$ ? - (entmod elist), [$ Z- o+ R% C( @' `8 P4 a* d
- )
* T0 g, _; b! o% @+ I2 X( P: S8 v - . y- g h' L8 a) u1 u2 h
- (defun dd3dface ()5 ?7 ~1 E& r) g6 y
- (if (not (new_dialog "dd3dface" dcl_id)) (exit))
3 r" p% D$ @( Y6 X" D - (set_tile_props)
. |/ v/ l! {5 }, Q. A8 P; A - (set_tile_handle)
2 B- x. ~3 [8 O! v. e - (set_tile_pt1 0)
- z+ D/ n9 j+ D - (set_tile_pt2 0)0 A# _8 C# l" N% S6 { O
- (set_tile_pt3 0)/ z/ `3 z- M7 d; a
- (set_tile_pt4 0)
8 X4 A+ N& o' N- N: d8 @- W7 S - (set_tile_edges)* K5 _: D3 ^# q' l, x7 }4 [
- ;; Define action for tiles
5 Y8 ?2 k/ B1 C, ]6 d9 U- H( J2 V - (set_action_tiles)9 o' X8 U! s4 ~; F" a
- (setq dialog-state (start_dialog))8 ?1 R% }# E1 `* y
- (if (= dialog-state 0)
! |! L1 K" { {6 [ - (reset)" Z, l3 ]4 G+ L5 @! e, A
- )
) U+ B: Q7 Y( q5 X/ I- C - (if (= dialog-state 1)0 `" b$ ` G+ R, s% u; g# r, x0 s# i
- (modify_3dface)7 ?) P5 e" m5 @; y) Y
- )
, {. B! _; L1 X8 }$ _" N( S - (if (= dialog-state 3)! W( `( Z. a; ~5 k+ D0 L1 V
- (progn
' J4 z& C) ?. c) d - (modify_3dface)
4 ^6 ]% L4 h8 [6 ?! B& I q6 _' x Q - (setq pt1 (getpoint (list x1 y1 z1) "\nFirst pt: "))# p' Q3 ^% v$ q4 V' @4 I3 F
- (ver_pt1 0); y0 T: f0 o0 O, G% D6 h+ R, \
- (dd3dface); e8 K" s- s$ z9 S: o& ~! H! d+ t
- )9 O3 d5 h& r6 v6 H* \
- )- c$ J& I% j& k( R1 _# h
- (if (= dialog-state 4)( F. W( P* e! {* ^( X& ]
- (progn
2 U& A) O( |# X s - (modify_3dface)
. ^$ V+ G0 f& O6 O3 Z( `% @$ _ - (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
. R* n; w$ _9 F" H - (ver_pt2 0)
& `' _' c7 s& D8 l) X. a - (dd3dface)2 t0 R4 z7 @, \' a
- )
# S- H" `' F5 O- Z; \ - )5 w; d5 c# F: d- g; S, i
- (if (= dialog-state 5)
" Q3 H, T4 b: x, F - (progn! F" o* s2 ^* j( |
- (modify_3dface)
, k( K4 w; E+ _) y$ d) V1 `! u7 Y - (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))# U# Y2 d& J. }4 _4 V4 B
- (ver_pt3 0)$ ~) S; D# Z) O! h4 z5 I% {
- (dd3dface)# {" d; P$ h( V0 Q2 ` |3 w! b
- )5 h7 {6 |0 E5 h# _
- ): H, E& q6 F# T& z3 w
- (if (= dialog-state 6)
+ X5 T% Q, h8 e0 y - (progn
0 s* ^& j. {, K9 n1 N - (modify_3dface)4 m2 Z5 A$ R4 v- l
- (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))
* Z; P) |8 W# O# ?" P - (ver_pt4 0)
8 Q9 G# m9 Q& a1 A' G2 Y - (dd3dface)
4 Q0 i: y( g$ x" r: E0 E* z - )
8 b$ V: v5 C, g! U) E - )
8 Q5 }1 g% J" |- ~5 W3 k4 a2 o - )& e7 b- f5 c" {6 D
) `- g& w6 l/ ^* S- ;;7 P! K4 F7 q R2 p0 m: k
- ;; Image functions( J3 q' i* q% @
- ;;, ?1 l: r* Y7 q3 B; z
- (defun image_scale (/ upixel en n userscale temp)
7 A! n$ I1 K4 O# B7 p; `6 C% k' s S, {' z - ;; Calculate the size of an image pixel in AutoCAD units0 x' h. W* ^+ P2 j8 b! @6 `, l
- (setq upixel (distance '(0 0 0) (cdr (assoc 11 elist))))! Y) z: n8 t4 G, \% S+ M! R4 D
- : U! G3 ~$ j+ A0 H& ?
- ;; Retrieve the user scale- n1 b9 v) g- _* `+ }6 l" e
- (setq en (dictsearch (namedobjdict) "ACAD_IMAGE_VARS"))
6 e2 q) h: P8 Q
7 f! q' l2 W8 {- ;; Next, extract the image units and pixel resolution$ `, @( n' g5 ]9 e4 H" e
- (if (or (= 0 (cdr (assoc 281 image:olist))) (= 0 (cdr (assoc 72 en))))
* o2 a* c- y A- M - (setq image:scale (* (cadr (assoc 13 elist)) upixel))
% c0 b, u5 L7 [4 K4 e - (progn; p5 ?6 C$ t! y+ {* F$ f0 G \
- ;; Convert the user scale to the proper word
& |( {3 P1 d0 I1 {' B0 c - (setq n (cdr (assoc 72 en)))
" v' S( F2 ^$ S( c7 k - (setq temp (getvar "LUNITS"))
: H0 c5 u9 j: V' g1 }7 x5 ` - (if (and (/= n 0) (or (= temp 3) (= temp 4))) (setq n 5))( R- W$ D7 p7 d- Y+ d
- (if (= n 1) (setq userscale "Millimeter"))
; R" Z, \! V7 R7 g& n# I - (if (= n 2) (setq userscale "Centimeter"))8 k6 m% M4 a, M+ h
- (if (= n 3) (setq userscale "Meter")). g; U8 G$ q. ~2 u) A8 t
- (if (= n 4) (setq userscale "Kilometer"))3 B$ Y% b( f" ~$ }5 m5 S* i
- (if (= n 5) (setq userscale "Inch"))
1 @4 L. u" q1 [9 |# D - (if (= n 6) (setq userscale "Foot"))
- n" d% m6 F+ L" [. W$ @ - (if (= n 7) (setq userscale "Yard"))
) N0 E! c3 g9 t6 Z - (if (= n 8) (setq userscale "Mile"))
( O) b& a0 c4 B9 S - (setq image:scale (/ upixel (cvunit 1 "Millimeter" userscale) (cadr (assoc 11 image:olist))))! U: u0 E/ j9 z, b$ K
- )# Y7 L. u# z+ W' j0 q; w! N
- )
. O' i) h$ J( h8 p9 A9 m - )& [9 {2 y4 S: m8 ` g3 o+ w
- 2 C( A# W; P9 R+ c
- ;;# c# y" I0 u* J& X" D' B
- ;; Scale factors for block insertions" [* V( v0 d2 a, ?, q# x. v( v/ ^
- ;;! B+ h) P5 s& i' j1 [7 k
- (defun image_set_tile_scale (/ temp)
- |* c! p. c+ j/ T% A - (setq temp (getvar "LUNITS")); l. j* ~' d2 J5 r9 B; z& ?6 \
- (setvar "LUNITS" 2)
# L$ L5 ?' Z/ E - (set_tile "xscale" (ai_rtos (* image:scale image:mult)))* l h. i3 G# w( w2 Q% M
- (set_tile "wid" (ai_rtos (* image:width image:mult)))
7 s3 o9 [( M6 K; i3 B" T - (set_tile "hght" (ai_rtos (* image:height image:mult)))8 i+ l7 a9 P( X( V! s, K) I S
- (setvar "LUNITS" temp)6 ]& e& j U: w& d9 @
- )
" J- l* v8 B. s; W0 n - / d# I8 z, [" a: ~, a
- ;;
4 w" h& y; @0 ^/ e; g: ]; G - ;; Set the scale, width and height values appropriately." l0 x4 G' l' R6 a( L3 t
- ;;8 ~$ L% _) Q/ n4 Q1 f
- (defun image_update (field value / orig_value new_value mult): i2 @; P& F1 D
- (if (= field "xscale")
( t5 k3 c" [: I: }4 x- f: }: ] - (setq orig_value image:scale)
% l. Q1 Q1 T% T2 D/ }0 l - )
$ d: g C- n& Q- S - (if (= field "wid")
/ D- e) i z. u2 _5 u- {8 c - (setq orig_value image:width)( Z6 ^' Z6 L/ _9 g* X9 p
- )
# |0 y: ~7 |$ m - (if (= field "hght"). K: H% P( E6 \; R
- (setq orig_value image:height)
- R$ ~4 M- H+ |' u, T' v - )0 d: e: g" F5 b. u1 }4 _
- (setq new_value (verify_d field value (* image:mult orig_value)))$ q- g7 w3 z- g
- (if (/= new_value old_value)
4 b0 f; Z5 X9 s0 {3 X - ;; Make sure the user has entered a sufficiently large value' w% U/ H1 V# I3 K
- (if new_value
8 f6 a/ E# O4 {: B" ?1 W; c - (progn+ r- G1 o( W; N8 C5 x5 T
- (if (< new_value 1e-8)
2 t8 P9 ~4 r; F5 k& v( o% A - (setq mult image:mult)
& v" T4 Q# F8 b- a1 X - (setq mult (/ new_value orig_value))" Y h# @8 g3 y
- )
( H/ f/ \2 b0 o* g - (setq image:mult mult)
$ b1 W+ m/ e9 Y* O! ]. [ - (image_set_tile_scale), `+ y+ Y, Q( I3 P+ {. g
- )
8 e' S1 r5 h8 W, }, o3 u. A, \ - )& P) r/ z0 ~# \- m# `, S7 Y
- )
$ x+ p1 A4 o$ E- l ~3 |, \ - )1 p$ p/ k( o, G$ N5 e; I3 U
- , N3 I5 {4 X$ R5 e) j
- (defun image_disp_opt (bit)
* @1 u0 t( p* V - (setq image:options (Boole 6 image:options bit))
; R. O' y' A0 C+ _( Y - )% t& `( h: f4 T% B4 ]6 o
+ R8 }0 K/ w1 X1 ]- (defun image_modify ()
" F( N3 n' g p9 X7 \. V) F - (modify_properties)4 J# s. k- ]' e5 n% z, @: w9 y4 u: J
- (setq pt1 (list x1 y1 z1)) I. b& Q( E# n. b
- (tempmod pt1 10 0)
" B5 o3 O) o9 G4 h: D# Y - (entmod elist)3 [" e r0 V+ p1 L; W! c
- )9 t0 h2 M1 u$ `; q2 X+ z
7 v- h: Z7 \" T) e- (defun image_clean_variables ()
+ n7 i( a5 b N( e' O - ;; Clean up global variables used here l$ s, O1 N& Q e( M
- (setq image:scale nil)
0 B' R* h- T) V - (setq image:angle nil)8 j B6 n( r3 v! X
- (setq image:width nil)
- ~, U% t3 h" L4 E+ m1 n' l - (setq image:height nil)" J# B: h0 x0 l$ W8 t7 f
- (setq image:options nil)
9 S4 y5 A) Z( s( S6 N, L+ | - (setq image:oname nil)$ C0 q. @) y6 p3 Z+ t9 S! V; {, \
- (setq image:olist nil)
T. E7 }; c; U, u: e% r1 p - (setq image:mult nil)+ J9 f$ _2 W' E2 | m
- (setq st_ang nil)
) M- N6 T) f! G8 J3 e: S; w - ), P; O$ S, c1 X7 @, J" c$ d
- + W# d1 ~; m$ L7 M) t c
- (defun image_scale_vector (v1 value)% l [1 `, u% Y
- (list (* (car v1) value) (* (cadr v1) value) (* (last v1) value))' P: z9 H% s" M n7 G0 t$ U
- )0 k" P' z4 d2 ~* p; z+ f- @! }
; d; W# k- R9 p' g! N1 z p- (defun image_cross_product (v1 v2 / vx vy vz)
4 j& o: J& n1 A# ?5 w& ? - (setq vx (- (* (cadr v1) (last v2)) (* (cadr v2) (last v1))))
/ Z0 S' A! {" @) Q, P8 p5 Q( Z - (setq vy (- (* (car v2) (last v1)) (* (car v1) (last v2))))
' P1 i4 [& W, D$ o2 ] - (setq vz (- (* (car v1) (cadr v2)) (* (car v2) (cadr v1))))' t: P& H5 C2 y
- (list vx vy vz)& d( u# ]9 T, @" {! a& j
- )4 e- ~& R+ m' W! B3 Z" _
- ! A1 \, v7 k5 h4 a& G: k0 n
- (defun image_dot_product (v1 v2)6 q7 I1 g: Q& s+ `: |( p. H) k0 q
- (+ (* (car v1) (car v2)) (* (cadr v1) (cadr v2)) (* (last v1) (last v2)))
' u& T+ d/ { A& [9 F! A+ P' i! B' A - )
6 ^. B' j% B L5 H! ^1 ~ - - Z. B0 x: g* T, p
- (defun image_add_vector (v1 v2)
9 Z6 o/ k* x5 }7 H R# F - (list (+ (car v1) (car v2)) (+ (cadr v1) (cadr v2)) (+ (last v1) (last v2)))
! G* ?+ \; j: B2 K+ T. l7 t% k - )$ R8 h% i) ~8 f
" H5 U4 |, F+ |; _ A7 p- (defun image_subtract_vector (v1 v2)( b4 a |: i- v3 l4 m
- (list (- (car v1) (car v2)) (- (cadr v1) (cadr v2)) (- (last v1) (last v2)))
H/ @9 [. ~) B& Y. t' F, O - )6 _/ ~7 P X. _' K- u! m
6 ], a. v j6 V$ @- (defun image_normalize_vector (v1) p% f9 Z( U% N9 y# B
- (image_scale_vector v1 (/ 1. (sqrt (image_dot_product v1 v1))))9 L, U4 i# }0 J3 X7 N' y
- )
0 L) t- r6 \6 z3 Z3 U - , v! C7 K* N5 K3 O6 w" r& F
- (defun image_rotate_vector (vector angle axis / along_axis axis_x_in_rot_plane axis_y_in_rot_plane in_rot_plane)2 ]6 s; k! y# ~. f r# U
- ;; Normalize the axis# X" S% H' N3 n X
- (setq axis (image_normalize_vector axis))
" C9 t. ], c( V" L: L9 t% w+ B - (setq along_axis (image_scale_vector axis (image_dot_product vector axis)))
9 q/ V# F% R9 Y$ r9 o* P8 T* O5 n - (setq axis_x_in_rot_plane (image_subtract_vector vector along_axis))
- G' ~* Q+ c5 y) n, J0 l) b- E - (setq axis_y_in_rot_plane (image_cross_product axis axis_x_in_rot_plane))
3 u |. X1 Z# I) {; R+ N6 } - (setq in_rot_plane1 Q" v/ v$ z' k
- (image_add_vector a/ G9 b' ^" H" l9 a' J( d
- (image_scale_vector axis_x_in_rot_plane (cos angle))
- G2 {& q# ~& r' s - (image_scale_vector axis_y_in_rot_plane (sin angle))
$ A/ ^; b: a$ D* d1 w# f+ y - )
& O$ y- j" [* a8 h% L - )
6 w9 G% O1 T1 d1 V - (image_add_vector along_axis in_rot_plane): U% t0 W/ Q% [# |
- ): ~! S, P: ?* Q, E6 Q& G; I
- & i- n( Q: b( \4 N/ _1 t* W. I
- ;;6 X1 S @8 G& ^2 V2 v
- ;; Calculate current rotation angle if appropriate.1 `. l, e. F4 D7 |- h( D
- ;; If not, grey out the rotation field.# F3 S( A3 Z4 q$ {
- ;;
/ ?& w' s$ s, ]& H% v - (defun image_rotation (/ normal rlength zlength sqrt_tolerance)
5 ~4 Z2 \1 i1 W4 c% a8 N1 g# S - ;; Determine if image normal is codirectional with
7 g' h3 e5 I% d" B - ;; the current UCS Z-vector.+ A+ X' X2 i2 m9 W _( c, D X
- ;; l. ~8 x; x4 @4 H4 g) }
- (setq normal (trans (image_normalize_vector (image_cross_product (cdr (assoc 11 elist)) (cdr (assoc 12 elist)))) 0 1 1)): T9 G+ v+ h- ^+ }" ?
- (setq rlength (+ (* (car normal) (car normal)) (* (cadr normal) (cadr normal))))% Y1 ?* l$ Z9 J
- (setq zlength (* (last normal) (last normal)))
5 r$ ]+ Z \3 V5 M- ] - ;; Note that the value .0001 in the radians is approximately 0.0057 degrees.
# U7 e. E6 Q! T4 r- c: V - ;;
% M* e1 |: Y8 }" |, N, z/ s3 _ - ;; cos(.0001)^26 U5 \/ X/ N: D4 g6 q/ I
- ;; Tolerance = --------------
+ y$ B, [1 }: @. Y' K8 I - ;; sin(.0001)^27 H' B D8 P% |' q1 [ q* Z
- ;;* ~7 X% P1 J# O
- (setq sqrt_tolerance (/ (cos 0.0001) (sin 0.0001)))
$ k6 Q% p# }% z/ L% ]% |2 M% ? - (if (and (< (* rlength sqrt_tolerance sqrt_tolerance) zlength) (> (last normal) 0))8 E) r) l' m2 A6 ]
- (setq image:angle (angle '(0 0 0) (trans (cdr (assoc 11 elist)) 0 1 1)))
( l9 L+ i; O8 L% U- V* \ - (progn
' s$ f; ]4 m0 b0 \/ G - (mode_tile "st_ang" 1)2 ^. Z; x9 t% S, h( d
- (setq image:angle 0)
% k) _: ^& ~0 z3 `( a' ~/ ?. ^( Z - )
7 M: O) ~* e" i) k6 o - )4 R" T( l$ L( i) e% ~
- )
- A6 ?9 s" ~, n; x% R& b& J t - L2 g2 |) p" r1 i
- ;;
8 ~) n# c$ k+ i& A: l- s; R - ;; Modify Image' `: X3 E, W+ [' b5 p+ w) @- D
- ;;4 ]# W# \, e! S' H
- (defun modify_image (/ u_vector v_vector z_vector); _6 _' f! `0 B; T4 b1 U5 e
- (modify_properties)
. V% W; z! F& {3 S, y4 b' a - (setq pt1 (list x1 y1 z1))6 y- G- v. \' a' E: D8 P
- (tempmod pt1 10 0); I+ u1 F5 e1 }% k
- ;; Make display option changes to image
8 z5 V; I0 @9 Y2 T - (emod image:options 70)& v" n0 p5 \5 h; i' x: W6 P, w: `
- ;; Get the u and v vectors
: ^ ~) a' u6 j. P7 \" [! l( v9 E - (setq u_vector (cdr (assoc 11 elist))): T9 ]. m) |0 J2 u% W2 o
- (setq v_vector (cdr (assoc 12 elist)))
+ t6 j Q/ o3 X6 ~% E
; j) u& G _" J! x- ;; Make scale changes to the vectors
. Q, i- x+ a1 @( H4 O8 W( X' A* f' X - (if (/= image:mult 1)
y! ~: x0 J& \- Q# N - (progn) Z& i- L& v. M- L9 j. n
- (setq u_vector (image_scale_vector u_vector image:mult))* G- k% W) t4 v
- (setq v_vector (image_scale_vector v_vector image:mult))
3 b# l; D+ _/ f7 Z/ R# y- v - )7 V6 z$ x) Q5 @
- )
# @+ G+ y/ Q/ w1 ~ - ;; Rotate the vectors5 T# @) n* G" z/ V4 A% O
- (setq st_ang (- st_ang image:angle))
/ ?+ f" ?/ n- ?2 L* r0 d - (if (/= st_ang 0)
& a* Y. H* e- a; ?1 _ - (progn
& e4 Z% c" A+ t9 A! R! v; p - (setq z_vector6 A# V. J8 z3 I, W7 _0 |, ?6 W2 ]2 Y
- (image_cross_product8 ]6 w. u2 ]5 {5 a% w2 f
- (image_normalize_vector u_vector)
- S$ a- U0 E5 @) a3 B - (image_normalize_vector v_vector)
$ |2 }! m; e7 Z - )
, N# [& L1 L. U1 A; J - )7 ^. i( x& o6 s& S
- (setq u_vector (image_rotate_vector u_vector st_ang z_vector))5 G' _& u6 t* b8 |7 |: ]
- (setq v_vector (image_rotate_vector v_vector st_ang z_vector))
7 ^. f/ S& a9 a - )
: m# a' S, o$ O5 z; k+ ^! e1 n- d - )
: w3 o+ o0 j$ T4 z1 Y w - (emod u_vector 11)7 {: t n$ C) t$ [) W* W( j6 Y% l1 c% `
- (emod v_vector 12) `1 [, A$ L7 o; |2 a- G% }
- (entmod elist)
9 m$ e1 K/ F. O9 H - )
* r5 u' r( V) l3 `. M9 Y
& X( {9 Q! {& o# W3 l- ;;
! {2 L7 A- s& I- z3 H - ;; Run imageadjust on given entity, working around possible
/ p J* u6 h: Z' T9 `( m, S - ;; re-entrancy problems
9 W' n* _0 x' o0 v8 P: o - ;;
5 Q5 k; r) h4 g; l' Z ] - (defun image_adjust (ename)
# D' W& H! ^' x; |9 G) g5 @9 n - (verify_arxapp_loaded "ism.arx") ;; make sure it's loaded..." R+ V4 t k$ C6 B% A7 O# a
- (imageadjust ename), u0 T$ ~, W8 b, B: \
- )7 x8 {- n* F3 l: I+ Z
5 T( k- A- c' s1 \- (defun ddimage ()
% P+ b' m3 o2 j- s6 a; s - (if (not (new_dialog "ddimage" dcl_id)) (exit))0 E5 B0 C `1 [5 `9 Q0 V0 C# t4 ~
- ' }, {+ ~- F9 f# E# Z- e
- ;; Grey out the thickness field.( y9 }+ }, R! e: f
- (mode_tile "b_thickness" 1)% Y! w% ` `8 e% R; s2 M, w3 q
- (mode_tile "eb_thickness" 1)6 J8 ], i8 Q9 b1 O3 O
* f- z, b! Y h4 |6 z- ;; Get the associated def object.* t+ g n5 p$ \' m, u
- (setq image:oname (cdr (assoc 340 elist)))
, ?* o( N" ~4 x - (setq image:olist (entget image:oname))* n0 ?2 _. G; V2 v- R9 [
% H! k3 @% z; _! ~8 ^- ;; Set initial tile values
4 Y. w5 P; q; {6 G+ t! B( b* h9 ~" I - (set_tile_props)
6 \8 U: B; T$ V" \ - (set_tile_handle)0 S* N2 j6 g7 w( `: h
- (set_tile_pt1 0)
3 d( a0 I7 ~2 w9 ` - (setq image:scale (image_scale))+ @8 R, c: ~+ v* ?; s O5 \
- (setq st_ang (image_rotation))
; [$ H9 _7 L' n" a, ^ - (setq image:width (* (distance '(0 0 0) (cdr (assoc 11 elist))) (cadr (assoc 13 elist))))9 q. [- j# b6 o7 U, y$ P! K
- (setq image:height (* (distance '(0 0 0) (cdr (assoc 12 elist))) (caddr (assoc 13 elist))))- ]# B0 J( m# {$ J% p! V- i; z% i
- (setq image:options (cdr (assoc 70 elist)))( F; ] i# S& G+ c: x' |
" v2 B( B; d; U4 P) Y: ]- ;; Record the last multiplier for use in image_update function
9 g. A$ G# }% S - (setq image:mult 1)
5 _5 s, I1 u5 R, Z0 e6 W6 Y" ~ - - N- h& ]9 A7 s6 }$ h% X
- ;; Retrieve the image name5 Q7 {. ?" y6 i$ x' o% ]
- (setq fn (reverse (dictsearch (namedobjdict) "ACAD_IMAGE_DICT")))$ w# p1 J, t1 B" {
- (setq flag 0) R" E% g. d y1 R
- (foreach n fn
. Y7 h4 t9 Q* I0 V1 b* i% L) E5 b - (if (= flag 1), r4 f( r+ N+ ^# O, T
- (progn
- i# [4 x0 U/ I. z m" [ - ;; Display the image name
6 Y' f7 }0 d9 [! U - (set_tile "image_name" (cdr n))6 T$ d9 Z! X) C$ f
- (setq flag 2)
k. S6 w- @# b' [5 \ - )' ^3 Y$ G* `) T# t
- )( T1 l6 t! C( W+ Q
- (if (= flag 0)7 Q; |; H3 s- J/ ?' ]$ N# Y! c
- (if (equal (cdr n) image:oname) (setq flag 1))
! `7 _. ]! E, Y) q* k - )
& W' H2 i9 r- m, q# b. v6 R E - )
1 O% G: N$ P/ o1 d - 2 q5 d( h0 N! R! I8 P: w
- (set_tile "image_path" (cdr (assoc 1 image:olist)))
6 V$ ~7 ^2 x9 f0 B% p# l - (set_tile "st_ang" (ai_angtos image:angle))2 J' I A/ V$ s* W7 I
- (image_set_tile_scale)
! X+ }9 L% q* W7 g% [
# `& w. C# N. p0 \. x$ I- ;; Check the appropriate boxes$ R9 ^! I7 Z# J6 f0 ^2 K
- (if (/= (Boole 1 image:options 1) 0) (set_tile "image_show" "1"))
8 S5 Y5 N# @2 l5 i E - (if (/= (Boole 1 image:options 2) 0) (set_tile "image_non_ortho" "1"))
- Q7 s1 |) u7 {3 E. ? - (if (/= (Boole 1 image:options 4) 0) (set_tile "image_clipped" "1"))1 p0 S. E4 T% S) [* t) D$ {! u. M
- (if (/= (Boole 1 image:options 8) 0) (set_tile "image_transparency" "1"))% [6 H) E7 f2 ~+ H- k
% |- w4 O% F6 N+ u. i( g1 @4 A- ;; Define action for tiles9 Z9 w0 M! h! ~! R1 J! V0 J8 M8 j+ V
- (set_action_tiles)
: v2 a' a: r1 Q& m. F) t - (action_tile "xscale" "(image_update \"xscale\" $value)"), D3 k1 ]2 M1 r6 A$ n6 J" l" K
- (action_tile "st_ang" "(ver_ang1 $value)")
' l6 m' I5 @+ r8 ? - (action_tile "wid" "(image_update \"wid\" $value)")
' k+ ~% [* R3 f" m% q% ]. [ - (action_tile "hght" "(image_update \"hght\" $value)")( j5 S6 A& u. l# W, ]+ d5 D
- (action_tile "image_show" "(image_disp_opt 1)")
2 y4 U# X+ }8 F7 X: ~7 ~ - (action_tile "image_non_ortho" "(image_disp_opt 2)")
! t( {# W0 W# T& R% M0 Y - (action_tile "image_clipped" "(image_disp_opt 4)")
, B) ~; E+ t0 T1 a* t - (action_tile "image_transparency" "(image_disp_opt 8)")" O- p6 B R) D9 d# {( p3 A
- (action_tile "image_adjust" "(done_dialog 4)")' _/ H. T/ m0 H p4 ]0 r: ]$ P
- : j; Y! D/ P# U1 V
- (setq dialog-state (start_dialog))
k) n- ?2 L* B( R" Y - (if (= dialog-state 0)) I M5 @4 C" M" y; ~* h* q
- (progn4 Q2 u6 i B2 b) B4 h2 I6 b
- (reset)
1 |4 x# H2 O6 G8 i) q - (image_clean_variables)
. @2 p2 H; W' J: y. H7 D9 u+ d% m# {" B - )1 |8 W) [* T1 o4 [( s8 f
- ), k) M* j! t9 D7 b
- (if (= dialog-state 1)
4 M9 H# V4 M0 U5 j4 x - (progn( D+ G# |9 h6 e r
- (modify_image)0 P; V1 w$ v- \8 g, z' ~
- (image_clean_variables)# O1 r3 x( ?8 M! K2 Q
- )
# U0 ~9 M9 f" ?7 e) S% z' M - )3 Q }7 b" t: r+ V, k
- (if (= dialog-state 3)
. t4 t7 t, A" d* a$ Z9 {8 I - (progn
5 y6 B6 u# j8 Z8 i, w - (modify_image)
4 d0 @% `( C9 }$ `1 T* ~4 K9 g - (image_clean_variables)
1 u/ S- B6 o* r; i' m; n - (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
( v- e9 d2 i! G - (ver_pt1 0)- K$ j# N/ N/ K
- (ddimage)# Z% J0 k5 @2 |6 r
- )8 h( Z/ X5 G# p0 ]
- )' D, U$ q% T: p, k: B
- (if (= dialog-state 4)6 k4 N# N- M; S( i8 ~ ? d
- (progn" f8 N) e. o( d, t& [% o0 ?' _3 f h
- (modify_image)
* ^# [5 n, |$ j9 Y - (image_adjust ename)
2 n9 p/ l: `* n2 u - (setq elist (entget ename))* e$ n7 [* Y2 z& i ^
- (ddimage)
" ~1 l f" o6 T' P - )
/ ?; A V2 o) I# U6 N# n6 a - )# U! r8 n) L. w, {9 {
- )
/ ~- ]' F% e3 B: {3 Y - 0 Z5 x4 l9 G5 }; V. ^* E+ @5 d
- ;; D/ n+ h6 r: \/ \4 P$ p
- ;; Modify BLOCK (and its Attributes, if any)1 _, E5 `2 Y1 F2 t8 F
- ;;5 p4 [" a d9 S2 @' U
- (defun modify_block ( / el en2 p1 p2 oldp1 oldp2 new_hgt old_hgt attr
# j2 _ I) {7 [7 {0 N - new_wid old_wid old_rot scaling old_scale
2 S& h9 x5 D9 d) W2 f - xdelta ydelta zdelta xbase ybase zbase ipos), ^" ?* }) `) D' x; g6 ^* E+ ]* ~
- (modify_properties)3 b* [ l. p7 @, g w
% d. k! l. _4 }# _% i/ ?- ]- ;; First, translate and scale the Attributes, if there are any.) E/ Z+ m! }" h. c, ]
- (setq old_rot (cdr (assoc 50 elist))& W& C4 a Q! Z+ U' R8 ?- I0 p0 ]
- old_scale (list (cdr (assoc 41 elist))% z. u& s. L6 ]3 I$ _
- (cdr (assoc 42 elist))5 M2 G$ u$ h4 ^% V7 T8 Y" q# C! ~
- (cdr (assoc 43 elist))
$ }$ K# Z) u! L) P- N - )
4 J; t% R3 Z# r; A1 M" m - scaling (or (/= xscale (car old_scale))
9 k+ ~5 }! {$ [; n, i5 a+ ^5 j - (/= yscale (cadr old_scale))5 G! x* u1 o5 Y; N" n
- (/= zscale (caddr old_scale))
W* K* n! B" t4 h2 V - )- u/ Z0 X! o6 ]4 u& N
- attr nil ; No Attributes modified yet
5 g( X% \* L& t1 t* F1 Q `% u - )
+ r$ H+ Q5 V! r7 { - (if scaling
/ A- _. g) [! i J% { - (progn
6 D+ _( _$ r1 ^; D8 V& u2 o - (setq xdelta (/ xscale (car old_scale))4 O7 n7 q' V/ u
- ydelta (/ yscale (cadr old_scale))) J- t( F N7 G# G
- zdelta (/ zscale (caddr old_scale))5 K6 ~* _0 c* z9 Y
- ipos (cdr (assoc 10 elist)). a! W0 |% i% G$ O" y" C/ E& q r
- xbase (car ipos)
1 P( B# Q: _! Y! |. Q - ybase (cadr ipos)$ R y c Y+ F7 s0 b
- zbase (caddr ipos)
' r; g6 J: m; s - en2 (entnext ename) ; First Attribute
9 J$ m( p; G: F% {: f - )
" v: h. P( c% s l
; E/ Z1 T/ r! m' v$ K- ; If the Block is rotated, temporarily un-rotate it, along
5 G% E. U D) u+ N& O - ; with all its Attributes, so the scaling/translation of the3 g- e$ V. S5 c) T0 O% G
- ; Attributes won't have to take the Block rotation into account.- G, [4 M: O# _+ f& f. x
- (if (/= old_rot 0.0): C! N* V. ^6 V" U" G
- (progn) n ?6 M0 }' {+ f: V/ K
- (command "_rotate" ename "" pt1 (ai_angtos (- old_rot)))
' Q7 O" Z. j* C1 N9 O! C# x' T - (setq old_rot 0.0/ B( w- Z5 R$ ^0 o3 e4 }3 h- G, b
- elist (subst (cons 50 0.0) (assoc 50 elist) elist)7 l, e/ g4 \0 j: R, s
- )4 J2 o7 T. s( m) d
- )
8 @& l2 g- u- w0 X; \# u - ); O1 l& i& F' g3 ^8 F. c8 L
- / c& \) P8 E+ s* P9 H
- (while en22 f/ \3 y# z" i! r& |6 Y
- (setq el (entget en2))
w0 i( b9 | D1 x7 x7 z - (if (= (cdr (assoc 0 el)) "ATTRIB")6 y0 p% |, S8 k- _) ~; o
- (progn
5 s: I* R! h7 C" x3 H - (setq old_hgt (cdr (assoc 40 el)) ; Height
R. q2 O; t5 [4 D3 Z3 {" G - old_wid (cdr (assoc 41 el)) ; Width-factor
+ D0 Y, r# {# _8 p/ ~ - oldp1 (cdr (assoc 10 el)) ; Generation start point
) _+ A# M2 E, `/ q9 f - oldp2 (cdr (assoc 11 el)) ; Optional alignment pt$ C9 g \5 u7 P( F4 z
- ha (cdr (assoc 72 el)) ; Horizontal alignment: E* E& |6 Q1 v. @: |) E# v7 [) c
- va (cdr (assoc 74 el)) ; Vertical alignment
" h J" C# \ q( W - # g- s' S5 K" G7 O, G) E
- ; Translate gen. start point8 |3 R4 j- V: z7 p
- p1 (list (+ xbase (* xdelta (- (car oldp1) xbase)))
X \3 F; ^6 F- s! \8 } - (+ ybase (* ydelta (- (cadr oldp1) ybase)))
' U) p0 ?# d# H! r% P. l+ k - (+ zbase (* zdelta (- (caddr oldp1) zbase)))( h% k5 \# |3 D; Z
- ) b7 A0 ~) I3 J. W2 C6 c
- el (subst (cons 10 p1) (assoc 10 el) el)
; P# n; M: s1 y+ |+ x$ p - )
* O7 ]! q9 U- e; v1 j# z# x* c - ( @5 U! k; T7 k4 D) q, L2 g$ u( R
- ; Translate alignment pt similarly, if present and applicable
0 C$ x5 m5 Z$ b0 `, |# ~/ w - (if (and oldp2 (or (/= ha 0)) N( _- `, g- n+ ] H
- (/= va 0)4 F i8 w' X% Y: a9 J3 @
- )" R6 [7 l4 C' |, m2 n h* `
- )9 q5 m* d* t3 t' x4 b, ~; D
- (setq p2 (list (+ xbase (* xdelta (- (car oldp2) xbase)))
( B& w* E9 J( V$ H: y+ r$ ~ - (+ ybase (* ydelta (- (cadr oldp2) ybase)))& |. l. A5 H+ b9 R& `; B, ]; D
- (+ zbase (* zdelta (- (caddr oldp2) zbase)))8 h+ R6 k8 k0 B! W6 H
- )
- G. r, s4 d- X7 j - el (subst (cons 11 p2) (assoc 11 el) el)
3 Y" s* a! j/ ?3 h - )
! W7 \1 L; j: w/ B; o% n- i - )8 x* S' l2 X( M0 ^
- ( h* n% M1 l) x: d" V: o. B
- ; Each Attribute's height and width-factor were computed; n' P2 q' {4 O- q- ?9 h: @
- ; based on the Block's scale factors. Adjust them now,
( y& V# A3 _1 D$ N n7 C - ; by first reducing to values for 1x1 scale...
# I8 N3 r9 d# \ - (setq new_hgt (/ old_hgt (cadr old_scale))
7 m: ]" s, l8 G4 I! Y; U$ g9 j* ? - new_wid (/ old_wid (/ (car old_scale) (cadr old_scale)))& e) [: n; t7 K2 D/ N
- )
% I: E2 d) ? h, C$ U+ X - ; ...and then rescaling.6 w* R: k5 u7 H( a9 |4 K4 Y
- (setq new_hgt (* new_hgt yscale)1 i4 _' y+ P# C7 _& n+ q+ d
- new_wid (* new_wid (/ xscale yscale))6 P4 U( {6 L" H& q0 n: R4 I/ T) S& H
- )
& B# D+ i7 \4 ?! N( Q - (if (/= new_hgt old_hgt)
& `! z; S+ v/ K' S6 Q8 V4 a - (setq el (subst (cons 40 new_hgt) (assoc 40 el) el))7 T. S$ s ]% I1 ]* Q; m; E( z
- )
5 A' ]2 i+ q5 e. f$ r7 Z - (if (/= new_wid old_wid)) X Q' s0 J; o" `6 V% p
- (setq el (subst (cons 41 new_wid) (assoc 41 el) el))# z, \( i" a. q
- )' h. |$ V# d5 x
- (entmod el)
3 T# \2 E6 q# S' o3 [9 t" A - (setq attr T ; At least one Attribute modified$ z. @6 @) {4 [4 N; k, \
- en2 (entnext en2) ; Next Attribute! r0 J$ w, H; i8 W" n6 Z
- )
1 X9 D6 d5 X! N! G' g$ W* y - )
. Y1 S6 b$ Y8 I$ b - (setq en2 nil) ; No more attributes3 C. S5 L3 G; S* Z9 _- j& A
- ) ?% `# y" t' Q% @' n; T" W
- )
* ]$ h( }/ R+ L' F% W8 e7 V - )4 Q* w6 K5 e; j2 x
- )( W! R0 ?0 Q0 Z/ Y7 T
- ( j. G# Q6 \9 k: Q" `# V |
- (setq pt1 (list x1 y1 z1))% M0 g' m8 i. ^2 y2 N$ B" s6 Q
- (tempmod xscale 41 nil)4 [* _% [3 [, W* Q7 ?
- (tempmod yscale 42 nil) Y& K4 f% r2 D8 B" B3 [
- (tempmod zscale 43 nil)
2 w* _8 q0 m0 f0 z - (tempmod col-sp 44 nil)7 V3 R- ^) K- T. H' C
- (tempmod row-sp 45 nil)8 q0 H5 m$ A/ O6 w+ T/ O* M
- (tempmod columns 70 nil)
& t% T6 ^: \% ~. q) N h; \ - (tempmod rows 71 nil)# L( s4 Y( L+ i* B, j
- (if (= xclipmode nil)
1 m% J) {; M! p1 r6 h1 c - (entmod elist)
- a A% W( ~7 | - (setq xclipmode nil): p+ X4 I3 o1 a! Q; _
- )* M, ^! i, q* O8 F3 G F: c
- (move_pt1 1)' N- V1 u4 ^8 [" t
- ' M% r) a- O" N2 C# ^# g
- ;; Now do the rotation with the ROTATE command.+ h3 Y$ `: Y; ~
- (if (/= old_rot rot)4 F- `/ P8 B; O' n3 M
- (command "_rotate" ename "" pt1 (ai_angtos (- rot old_rot))), z- Q0 v' t v
- (if attr ; Else, if attributes were modified,4 p( M1 Z2 t, X
- (entupd ename) ; just regen to force attrib display
& f/ ^3 C3 T) }0 G" _9 B! _ - )
7 t2 P. @* `# u9 O - )1 H; n- l! e/ Q1 }5 ~
- (setq elist (entget ename))
0 b7 r1 B E5 p+ {- L% }: } - )
! c" _; |$ m w; d" q+ M - (defun ddblock (/ temp temp_xclip newhatch blkname blklist blktype program xrefpath)9 k |9 B) ?' `/ B% ?8 h" O9 e; ^
- (setq newhatch 0)
' ^$ o( O2 L$ J- h& g5 H - (setq blkname (cdr (assoc 2 elist)))8 w8 ?/ _* P& W! ?! W. I/ w4 P6 l/ W
- (setq blklist (tblsearch "block" blkname))2 k7 x7 m% {7 @# ]3 d
- (setq blktype (cdr (assoc 70 blklist)))
% W. }) t1 R# t8 X# V$ z# o - (setq xcliponoff 0)
4 D* j" P% X% c - (if (or (= blktype 0)(= blktype 36))
2 S+ x- p: L# }% Q5 b. R - (progn, ^0 Z. g+ ]* P( t( I
- (setq xcliponoff (xclipon elist))
3 i* ]7 j% J2 E" H A - (setq temp_xclip xcliponoff)( V0 r8 l9 i0 S8 j
- )
8 h4 \* Z2 i- ?0 ?2 p - ); s( k8 O; R" Y$ c
- (if (= (logand blktype 4) 4)- z3 h) V! S, r/ e* |! P: R
- (progn
, Y8 U# A; c5 m0 _ P2 U1 X7 w - (setq xrefpath (cdr (assoc 1 blklist))) Q9 C2 ]6 I- O
- (setq help_entry "modify_External_Reference_dialog")
$ `4 J2 Q% h8 L# C( ?) [" ^ - (if (not (new_dialog "ddxref" dcl_id)) (exit)). M/ n+ y( v; t7 b$ A
- (set_tile "Bl_name" blkname)
% H; D, C/ B% u5 x; `7 \ - (set_tile "path" xrefpath)0 N. L6 K3 o. {7 ^& r7 I9 t, P
- )
& p% d* ^3 I5 i$ T1 D4 ` - (progn
% x' \. I9 \+ b$ h - ;; Get program name for use as Xdata app name$ R$ Q3 f/ z* U' M
- (if (not (setq program (getvar "program")))$ `; c# j6 L6 C1 P* h
- (setq program "acad")3 R( h7 @% m& q
- )
4 U! S% r9 o6 \5 l - (if (and (setq temp (assoc -3 (entget ename (list program))))
" f* T# f; D3 l - (= (cdr (assoc 1000 (cdadr temp))) "HATCH"). V$ k" {% u# }. g
- (assoc 1005 (cdadr temp))
/ g8 ]# L+ f. q# M- A - )
8 q! p' `- \8 m \ - (progn
' W" V# x/ X; Y' f; O* h - (setq newhatch 1)
* ~3 P* @! v* ~! X# P4 m+ W& B - (setq help_entry "modify_Hatch_dialog")
6 O0 c% h' {5 W% w( v - ;;; convert the object into a new hatch
8 h3 U( N/ ]4 F) W5 v' t$ y' [# d1 t - (ai_undo_on) ;; enable undo9 \6 z3 m6 B: E" @9 S: X6 Y
- (COMMAND "_.UNDO" "_Mark")3 { ]7 p# j) e6 K
- (COMMAND "_.CONVERT" "_Hatch" "_Select" (cdr (assoc -1 elist)) "")6 e# `! W8 L/ T& t. T
- ;;; suppress nasty message from convert command
6 l! G F5 @1 j9 I* v- {* L# Y. f - (princ "\r \r")( V; ]# _9 C6 _, g# C9 E `: k
- (setq elist (entget (setq ename (cdr (assoc -1 elist)))))
; W0 C6 X9 x$ R: P3 i - (setq old-elist elist)
" H2 S8 O/ S. a" J. H - ;;; If we have cancelled ddmodify
' ?4 ^4 \* t) D5 ?1 {0 b! \ - (if (not (ddnewhatch)) ;;; (ddnewhatch) returns nil for Cancel or T for Ok
% `+ N. `; W; E& r4 U, Q* u - (command "_.UNDO" "_Back")' [) O3 R9 @) J3 m& m! m& _) \
- )
6 G8 M @# ^/ v& H - (ai_undo_off) ;; restore undo state$ Y) U7 Y4 }% e+ X( {
- )
4 p' _# [% g4 E0 Y# g0 p7 ?; d - (progn
- x4 r1 T4 E w/ E. K5 | Q - (if (not (new_dialog "ddblock" dcl_id)) (exit))1 q- n2 i R) f( L
- (if ( = "*" (substr blkname 1 1)): W8 s) d+ l; U7 |% T" c N
- (set_tile "Bl_name" (strcat blkname " - Anonymous block"))
8 g& d/ [) u7 o# C; r7 f3 g7 D - (set_tile "Bl_name" blkname)* L, ]2 z7 P7 W5 s M5 t8 I& `: a
- )0 z, c# X9 ]# p) a D5 e& r
- (setq help_entry "modify_Block_Insertion_dialog")9 t) U( o( p+ G0 u' W
- )
. _( {3 t0 F5 d/ Z - ) Y) S: K! F9 ~8 H1 m
- )
# a B& \# ^9 p - )- W9 q* s1 p& r4 b6 j [& M
- (if (= newhatch 0)
) G) U7 m6 V' i8 h8 K - (progn
4 X* i$ j* s* h& C* m/ K$ ^- y& v$ p - (set_tile_props)4 G8 o/ o$ \+ n1 V; f4 u) f. B
- (set_tile_handle)
. S3 e/ Q, i. t h - (set_tile_pt1 1)) l; C @- F# h7 Q H
- (set_tile_rot)
4 @3 v+ Z9 |4 Z. I6 U - (set_tile_scale)6 l1 Q# [" B- Q2 P/ X4 I. k: W
- (set_tile_rc)7 W# t8 s$ Q9 P$ h8 k
- (if (= (logand blktype 1) 1)% @3 W5 r4 q$ g" R1 _. G
- (progn* q" x; ]. R+ g$ F3 O# w1 i
- (mode_tile "xscale" 1)
3 ~6 V2 `( c5 k4 t" v& Y - (mode_tile "yscale" 1)
" ~3 I2 r/ q `( f - (mode_tile "zscale" 1)( e' \& G5 s* t% W
- (mode_tile "rot" 1)
$ g6 L7 W, g( S: A2 {) J* j - (mode_tile "columns" 1)
- Z2 b3 {5 R9 f+ L$ _3 ?. X& I3 W - (mode_tile "rows" 1)% s& _3 s- D$ l' r' D! ?
- (mode_tile "col_sp" 1)4 g1 w: ?$ [' N! o& Z# u& `6 |
- (mode_tile "row_sp" 1)
% {# R8 y3 u3 v# J0 D - )/ u$ B5 ]( L9 {" H, }
- )
6 }0 H& M, ^$ K: i: u, q3 { - ;; Define action for tiles
& u# I" N# Q Y" D6 U - (set_action_tiles)
* p- M) k) g% R2 }7 K - (setq dialog-state (start_dialog)); L5 P/ Y9 D d" }% U
- (cond5 i! n8 w1 u T5 M8 [/ ^6 n4 Q
- ( (eq dialog-state 0)
Q( P2 d j6 a# ^8 j6 p - (setq pt1 (trans (cdr (assoc 10 old-elist)) ename 1))( f8 Y3 I) z' T
- (move_pt1 1)
! _8 `6 Q; L: C# m) x1 S% N% o$ ~ - (reset)), @; a, R* N( ]$ q8 F# `
- ( (eq dialog-state 1)( W5 p# E9 h4 D
- (if (and (/= temp_xclip xcliponoff) (or (= blktype 0)(= blktype 36)))
/ x0 f N) w/ t7 E' l. A' v4 R - (xclip)
' l/ c; A: S- u - )
) M# ~. R4 _7 ~ - (modify_block))
- X# Y9 n6 U# C$ b! z - ( (eq dialog-state 3)
: F; e' z9 r+ \! @- L B - (modify_block). ?+ J0 V, z0 F( U2 Y+ A3 t. C
- (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))8 J8 ^" x/ k# |) ?% \
- (move_pt1 1)2 _+ T$ z5 w6 V- }! b( o
- (ddblock))
9 I! R/ i4 C& T1 S S - ( (eq dialog-state 4)
. C* t3 {$ u/ n) `' t. ? - (modify_block)6 {+ X+ C0 B a
- ;; Get current handle." Y8 C i8 g0 f: k: w5 X/ B
- (setq hand (cdr (assoc 5 elist)))- y" F% W& N b
- (command "_hatchedit" ename)
5 Q$ i* H! S! q/ b4 F: s" S - ;; If OK in hatchedit, a *new* entity is created and the old one- r; {- `/ c! B6 ?0 J2 S: k& Z
- ;; is deleted. So if the old one exists, it must have been a
( s2 o& s6 T1 _5 k8 ~) c - ;; so rest the entity.
$ W# v1 w& R3 b' @" [# ? - (if (entget (handent hand)) (reset)) A6 e: A/ n4 G( |9 w, }" e2 d
- )
2 v W# A: S& c - )& x% w+ q& |. [, Q) k! U
- )5 l% K0 L6 B) D' }
- )
: U" X: x! X3 m9 L# g( Z - )$ P3 ^( o9 S% E- s' f4 C
- ;;
% c1 G5 g: J+ l9 }2 q - ;; Modify SHAPE! H) r7 i, ?* B+ ~$ T
- ;;* z* r; H7 h( c* U8 Q
- (defun modify_shape ()# }7 u: H+ \+ F8 Z/ p- P
- (modify_properties)
+ H; j" @# M1 x - (setq pt1 (list x1 y1 z1))
/ h5 u2 a+ G Q2 e4 p - (tempmod pt1 10 1)! {& K) E2 k& w! D( }
- (tempmod hght 40 nil)
' p' H/ y$ Z3 u4 W - (tempmod wid 41 nil)
' @: [) A/ ]$ h0 K$ O - (tempmod rot 50 nil)6 v. O( }2 S. N' O) s' J, _
- (tempmod obl 51 nil) N; T/ M& x" y# `" ~
- (entmod elist)
" F' s5 b8 V# f - )
5 F- m. W8 S* e
3 }: o: J, B4 d. \3 S6 Y T- (defun ddshape ()
# I' y w- B7 P4 {% D8 t! J0 E - (if (not (new_dialog "ddshape" dcl_id)) (exit))
4 i6 G1 q1 j# q - (set_tile_props)) R, z( U. j: u" `0 ~
- (set_tile_handle)
4 J R- P; e2 n j7 W* J6 K( o - (set_tile_pt1 1)
# N5 k3 h2 g' d. k - (set_tile_rot)
M; u6 h$ o& z. _- i& l* h6 A - (set_tile_hght)
) U7 o$ ?, A7 B k - (set_tile_wid)
2 I4 Y( B+ C% q - (set_tile_obl)$ w# L }8 V- r9 ?9 b5 u/ L5 A
- (set_tile "sh_name" (cdr (assoc 2 elist)))
$ U; @6 p- I. Q" E( |% Y8 b - ;; Define action for tiles- U/ ]8 h+ Y r; F p
- (set_action_tiles)6 F/ x0 ?7 q$ c- T
- (setq dialog-state (start_dialog))2 z7 j, u( l9 B: }1 m) B7 t7 _3 q
- (if (= dialog-state 0)
2 s- J( `- |0 J1 W7 m - (reset)) _! Y. e+ ], i
- )0 w2 d2 s/ |/ i" O: D+ R! @
- (if (= dialog-state 1)9 Q; b- d0 b8 K
- (modify_shape)
. _8 F: G& q4 ?; K) _- U ~ q+ d - )
$ k* t% ~4 ^8 J8 s& I8 } - (if (= dialog-state 3)
* E6 h/ ~3 F' e7 P9 E - (progn
$ W: P0 _" l. B* M. [" w* \ - (modify_shape)( L: H Y2 j3 L# Z& A, U Z* p2 ^
- (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))( \5 b' e$ l' }! O( {. k
- (ver_pt1 1)
8 U* i, g0 S. R& i3 K1 @ - (ddshape)
2 X0 V( @( q7 s/ p; {1 [, ^5 N - )3 r2 g) |7 R6 o2 F9 K: e! V
- )0 [8 i8 y0 }8 O$ C
- )
9 E0 K7 ~! h2 c; Z - ;;
( l& v5 n5 G, { e$ G- A0 b - ;; Modify TEXT or ATTDEF
4 F8 n6 q$ V% x% ~6 K+ Q - ;;
+ B2 [/ j- S! F* J& \. O - ;; Set bit code for upside-down and backwards setting
2 m- z$ e% k2 Z: i" @ - ;;
3 H! y8 A/ f2 j5 Y - (defun code_71 ()9 f. e2 d' s; x; q! m; c
- (cond ((and (= bkwd "0") (= upsd "0")) 0)
7 N( w# p. E8 n# @# \0 | - ((and (= bkwd "1") (= upsd "0")) 2)
& q: R7 U- d5 j3 m: B. b - ((and (= bkwd "0") (= upsd "1")) 4)( J: k& ?+ g" F0 M! n# z2 k$ g
- ((and (= bkwd "1") (= upsd "1")) 6): x5 r1 l* {% G% O0 s' L
- )
9 B: w" w3 v% c& \9 q2 P \ - )" s4 ]. X y9 M6 D# ]
- ;;% q$ m6 J% u+ `0 B. P, a* r
- ;; Style action. Reset widget values to style defaults; F+ S, @, _ g1 Y
- ;;
# u6 D4 n3 W C* w% h - (defun style_act (index / style-list)
" t. Y f( E4 d6 }: O - (setq style-idx (atoi index))7 s6 ^1 k5 G0 l5 }
- (setq tstyle (nth style-idx slist))
0 R& ~" s& |" \& D. p; B - (setq style-idx (itoa style-idx))
. J {2 Y- R' g7 F T - (set_tile "style" style-idx)( t. _$ ]9 J/ q/ S, X+ F: r
- (setq style-list (tblsearch "style" tstyle))5 U" v: M% |) ~! z
- (setq shght (cdr (assoc 40 style-list)))
0 ^2 P7 H" Y4 |& Q5 h3 X! g - (if (/= shght 0)
- q% y2 \) G# X. @6 y0 F/ { - (progn; ]5 K+ l; S/ m2 _+ r
- (setq hght shght)
" _! i. o H8 C# I. b - (set_tile "hght" (ai_rtos hght))" T- x: e0 q, b3 q
- )/ C# H- k/ b) i6 w S* \
- )
7 \2 S: _4 l+ M0 _) k - (setq wid (cdr (assoc 41 style-list)))
5 i) x$ @9 A* W$ `$ N z - (set_tile "wid" (ai_rtos wid))
% Q2 e% s* p) L8 Q- j. u4 W - (setq obl (cdr (assoc 50 style-list)))2 Y2 T; H, ?. ^! m0 t! v8 U0 N
- (set_tile "obl" (ai_angtos obl)); m8 `6 _" c/ `$ L* J" b5 f. P
- (setq bk-up (cdr (assoc 71 style-list)))0 K# K9 \: g3 A K0 t
- (if (= (logand bk-up 2) 2)
0 m# D8 b/ o1 y3 y/ O- a - (set_tile "bkwd" (itoa (setq bkwd 1)))0 g+ n1 F/ f' z' @0 m o- {
- (set_tile "bkwd" (itoa (setq bkwd 0)))
2 f3 T; h( M9 V& | - )
6 k9 Y6 [8 r5 [2 N" b% x7 M4 A - (if (= (logand bk-up 4) 4)
0 ~7 z: c. D3 s: a4 h8 t$ a1 F - (set_tile "upsd" (itoa (setq upsd 1)))
! N1 D1 h+ i- ?$ i8 U - (set_tile "upsd" (itoa (setq upsd 0)))/ s/ B& E; A4 Y
- )
8 ^5 `# U1 Z# V# B) Y( K; { - )
) f/ J+ a( x2 m6 X - ;;
$ m( d8 l5 O5 H" Z3 B - ;; Justification action. Set vertical and horizontal alignment variables,4 e9 X. [ g# R9 X/ n7 s
- ;; grey out rotation and height if alignment = "aligned", grey out rotation
! l4 Z. D5 V' o+ G1 r' H. m9 p - ;; if alignment = "fit".9 o! s- z+ ]2 _8 V; V9 X0 {; x
- ;;
7 ^0 R' ~8 L; B$ `8 B* x9 I# d - (defun jlist_act (index / templist)
+ c+ t8 e5 ]$ |7 ^1 e. D - (setq just-idx (atoi index))7 t3 }0 {6 F7 u* c
- (cond: X+ K( w# f6 F. q5 u: l3 }# T. e3 u
- ((= just-idx 0) (setq va 0 ha 0))
6 Z% k6 \2 l: ^& y1 E' S - ((= just-idx 1) (setq va 0 ha 1))
, u( x1 A- k4 R+ K - ((= just-idx 2) (setq va 0 ha 2))
; ]7 p- V) b. R0 C' X/ a8 A# _ - ((= just-idx 3) (setq va 0 ha 3)). C' y) N' @9 s- Y+ }
- ((= just-idx 4) (setq va 0 ha 4))7 ?9 W9 m" t% n3 Q( q' j+ X
- ((= just-idx 5) (setq va 0 ha 5))0 j# q$ ^1 a4 p+ M
- ((= just-idx 6) (setq va 3 ha 0))# ]; I& l, N0 R3 ^! T1 y5 v
- ((= just-idx 7) (setq va 3 ha 1))
5 u* U) l k3 D' f& b% I - ((= just-idx 8) (setq va 3 ha 2))0 N7 Q6 c9 g. Z4 }
- ((= just-idx 9) (setq va 2 ha 0))
* _7 G0 K5 `0 W4 ?+ H - ((= just-idx 10) (setq va 2 ha 1))
9 Q3 Q9 O6 r, L - ((= just-idx 11) (setq va 2 ha 2))
& l, N z' i! \; [ X4 U0 F* N0 ? - ((= just-idx 12) (setq va 1 ha 0)). C& |- C' J* D# B
- ((= just-idx 13) (setq va 1 ha 1))/ c* ]/ q; ?$ v* i
- ((= just-idx 14) (setq va 1 ha 2))
2 w& i/ ^' s' k6 F) r' x - )
5 a. S2 \8 \* ^" D3 h - (if (or (= ha 3) (= ha 5)) ; If Aligned or Fit text
& Z2 Q1 D# z% v- I - (mode_tile "rot" 1)
& [2 H) a0 T* m% C9 s7 L$ ^+ Z1 q4 z - (mode_tile "rot" 0)
0 _0 e5 c- y3 @2 p - )
: s% X& h l" a9 Q - (if (= ha 3) ; If Aligned text! {8 I/ Y; `0 F4 C e
- (mode_tile "hght" 1)- e% M( u1 u0 l2 @" c7 z$ |7 y. L
- (mode_tile "hght" 0)
/ ^3 N: U4 E9 r+ w - )- p2 J1 b* A! N5 Q. S
- (if (= ha 5) ; If Fit text& {2 _( D# K- Q7 `* `
- (mode_tile "wid" 1)# y) c( k$ h' v3 f; E3 H
- (mode_tile "wid" 0)
4 @( i5 x3 p" [& N9 s: S; t6 P - )1 P+ Z1 Y( v' R* \# D1 p
- ;; Reset rotation and height if changing from aligned.) g$ W' q9 A- _: Q: X9 i
- (if (and (= ha-prev 3) (/= ha 3))& Z- U+ [( T) k$ Y
- (progn9 N# `$ z* {+ G+ d( a& d2 C# ?
- (set_tile "rot" (ai_angtos (setq rot 0.0)))
5 Y5 z' j; Q9 p9 D - (set_tile "hght" (ai_rtos (setq hght 1.0)))
/ D' S; s+ |' c0 C$ u - )2 m- J( Z! {! f5 c, j4 L7 l. b
- ): K8 z/ A Y# @5 k& S
4 p# P$ b) j+ e j4 o+ Z- ;; Reset rotation and width if changing from fit.# a# S; `& x, C: L' c, @; S
- (if (and (= ha-prev 5) (/= ha 5))
5 V1 m: @" N: v8 C2 j/ Y9 ] - (progn) X7 O$ C$ v8 k/ I9 u* y
- (set_tile "rot" (ai_angtos (setq rot 0.0)))1 `9 D* \- S, f5 ^2 k9 Z* }- I
- (set_tile "wid" (ai_rtos (setq wid 1.0))) G# p# ]# y7 E6 _+ E6 j
- )9 M& x' Q( l8 s7 O/ n
- )* h b6 Z% o3 ?6 b: ]% \4 f& ^
- 3 Z. q: b- k7 W$ K) \
- (setq ha-prev ha) ; update ha-prev for next time2 J* Q+ F# q/ o+ I+ B% m
- (setq just-idx (itoa just-idx))' B5 h% W/ f$ K7 s6 A
- )
9 U9 y6 q" M5 O8 J# f1 l; P! ? - ;;: ~% G+ `4 F$ X4 A
- ;; Set intitial alignment setting based on vertical and horizontal alignment8 w4 o0 y0 }# ]6 d$ [
- ;; bit codes.
; q3 n( M4 _5 n2 I& r3 o7 T# e! _* m - ;;. o% f& O0 C! P$ @% x
- (defun set_just_idx ()
% A; F9 X: ?, v! H5 y1 n w ^: } - (cond6 l" W: K; X) a7 p9 _' n# r5 e1 D
- ((= ha 0) ; Horiz alignment = Left" P" t9 O+ q/ F a
- (cond
1 w0 A. y. g s( Z! r z - ((= va 0) (setq just-idx "0")). Q0 \( R. h3 K2 A" R
- ((= va 1) (setq just-idx "12"))) m. j) j# H( B" m
- ((= va 2) (setq just-idx "9")). }( V3 H p; P7 T
- ((= va 3) (setq just-idx "6"))
9 C$ n8 y0 Y1 d - )9 J- t4 e9 j' M3 s5 \ z b
- )
5 \+ S9 f# f! B7 L: U/ T' { - ((= ha 1) ; Horiz alignment = Center
% Z) g( b- J- b; k+ {1 w3 W - (cond
" j: M" r' b! H - ((= va 0) (setq just-idx "1"))" o4 _. q3 _! V- U) X
- ((= va 1) (setq just-idx "13"))! e' _' I5 {5 z+ o' }. D
- ((= va 2) (setq just-idx "10"))
: O9 ]# c# z7 i- B! d. O& W1 G - ((= va 3) (setq just-idx "7"))
+ l6 J7 w$ Y% p9 l7 A( \* a - )
/ N9 Q+ M3 a0 A2 U, f - )
9 ?- s' K! o- V {5 D' y - ((= ha 2) ; Horiz alignment = Right1 k9 ~0 x+ l( n/ v+ H2 F* X) V
- (cond7 u& Z: n5 A. W+ |9 ^1 n# \9 T; d; l9 ?
- ((= va 0) (setq just-idx "2"))' E, Q% Z$ i$ M9 r3 L
- ((= va 1) (setq just-idx "14"))5 J: L* K: p3 ?( r" O3 n
- ((= va 2) (setq just-idx "11"))
, o5 I& K! P8 s8 W* x4 M; z: K - ((= va 3) (setq just-idx "8"))
c; J# {) m! k" R ?" p% s - )
2 h, G, j v/ A% q- s; ] - ). q! G% x4 i9 m4 L
- ((= ha 3) (setq just-idx "3")) ; Aligned
, T4 c6 l6 N) x, g$ H, z% E( L - ((= ha 4) (setq just-idx "4")) ; Middle
# M) Q/ D+ r6 }5 c4 F - ((= ha 5) (setq just-idx "5")) ; Fit
0 ]8 s5 F: ^- a. x' Y; B" A - (T (setq just-idx "0"))
0 w0 O* Q/ V1 o" `# ^" } - )
4 t1 S: W7 J+ W! ?. S - just-idx# y. N9 E9 s! G. G
- )
3 ^3 u3 `# [4 |) N0 G0 h2 H - 9 |7 Q3 J4 F+ t' q
- (defun modify_text ()
9 V8 A% }! {6 g1 p" j2 ` - ;; insertion point7 l/ L: g- D; ?5 Z# z
- (setq showpt (list x1 y1 z1))
& J( h. Y" A9 @6 `# [6 h* R: ?2 t - (setq bit-10 (trans showpt 1 ename))! d. \3 h. C: B- U" l; j S [
- ;; alignment point
+ I' `, ]$ m/ B' y! r& m! _" t0 s - ;; for 'Aligned' or 'Fit', alignment point must be different* V- [, Q3 E( ~( {5 q% i% Y4 w5 w2 ~
- ;; for all others, use insertion point
9 T% R. b0 P0 s! _5 @ - ;; (ACAD will recompute insertion point)" n9 }& _5 ?3 A' S# \% U0 x
- (if (or (= ha 3) (= ha 5))* N, O4 u+ F4 ?4 k
- (progn' ?4 Q' g% h' K: I$ N
- ;; if no alignment point, fabricate one
3 Q* Z( D o9 p* h, K6 R9 Z - (if (not alipt)
) Y: F4 G% j' \* p# d" A - ;; add text width to insertion point- F; B( o w- w. p
- (setq alipt
+ H9 Q' S6 T! t% ]! X+ S - (list (+ (car showpt) (car (cadr (textbox elist))))& a# f! y' f# }1 @
- (cadr showpt)+ H3 s( ]: X% Y+ o; H* g+ ~
- (caddr showpt)
% l0 M$ f9 M" I0 m - )
?- R: ^2 p. x& ?$ O% j5 f - )
* K& }; d @7 d" O$ g6 a - )
. \$ u, \5 E) m9 E: s5 H - (setq bit-11 (trans alipt 1 ename))
; a5 p! H/ T2 A3 S - )
- Q) ^: c) d" q3 Y - (setq bit-11 bit-10)' I* R7 U, }! K! ~0 f+ b8 y
- )
0 \% j. Z, b% R8 N - (modify_properties)" W3 r7 Z' x2 {5 \% H4 r: M6 l
- (tempmod tstyle 7 nil)
' t" R; u+ Q2 p! ]' L5 t. G - (tempmod bit-10 10 nil)2 w& s( u7 j7 T
- (tempmod bit-11 11 nil)
" }9 T1 U7 P9 h# q [$ N; c - (tempmod text 1 nil)8 F& G& _" o' [3 m! S
- (tempmod hght 40 nil)
# o. f' @7 B2 U& y- w; w5 Y - (tempmod wid 41 nil)
2 Y6 p9 a' b* x% O - (tempmod rot 50 nil)
5 b4 U/ t" ^/ x( e% r2 v! _ - (tempmod obl 51 nil)
& J! {' s9 { v5 y7 @ - (setq bk-up (+ (* bkwd 2) (* upsd 4))), n% p4 X- S2 z% r. @: n8 Z& `
- (tempmod bk-up 71 nil)3 `5 b6 K* k# T- E
- (tempmod ha 72 nil). L% h9 F3 l9 S4 H2 J; B7 y
- ;; Attdefs use 74, text 73
& W; @* v' t8 c6 h, | - (if (= etype "ATTDEF") T6 L9 f# v- y+ x+ r; a5 T
- (progn# ~: |' E' x1 R
- (tempmod attag 2 nil)
- m# ^+ s- E& W" `6 o - (tempmod atprompt 3 nil)
, i2 b* R% n" b- E& `* W - (setq icvp (+ inv (* 2 con) (* 4 vfy) (* 8 pre)))/ Z2 E& i' P% ~
- (tempmod icvp 70 nil)) r$ U' N0 s& Z
- (tempmod va 74 nil)1 F5 X0 x+ O0 s, g- V( `
- )6 g( D3 g4 `5 `- g4 p% u
- (tempmod va 73 nil)' P7 {. E" Z* k- c
- )- ^% B- x6 \+ j" ]. B
- (entmod elist), X* `0 ]- }- `3 i' V
- )
2 r, w+ ]* O6 ^$ Z3 b - 1 G7 Z L) T0 G) W
- (defun ddtext (/ 2ndpt slist i)
" p3 K( H$ n1 K - (if (= etype "TEXT")% t: T' c8 F' a9 O8 z+ v3 @: V
- (if (not (new_dialog "ddtext" dcl_id)) (exit))
' B! ^/ \# E/ o; u# c - (if (not (new_dialog "ddattdef" dcl_id)) (exit))/ u8 v9 u5 a2 v6 o/ x$ Z
- )$ y0 Z+ U! p& l) i5 S# G) o
- (set_tile_props): M0 u4 w+ t5 b8 _
- (set_tile_handle)
& n" y* t. i2 P3 n5 T) B - (set_tile_text)
# h% k2 V+ H' R - (set_tile_tag)
0 O- O5 P$ b, y4 W - (set_tile_prompt), }! D1 X W6 ]/ n5 @" A# ~
- (set_tile_hght): n7 o" y/ G( E) r" l* G
- (set_tile_wid), Q2 w+ R# J8 e: s' M6 @
- (set_tile_rot)
& Z. }, k3 V& T w8 C7 A& v - (set_tile_obl)
& p/ i( _ E% N, |5 m; m) B3 _ - (set_tile_bk-up)
% k. m: ?' H3 g; ^! z' R& [ - (set_tile_icvp)
. y! ] F) a3 } D - (set_tile_style)
3 p' j& `+ N7 n. m+ V% b8 ^& } - (set_tile_just)
( a! G3 j/ e6 U- K - (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))9 x4 v; D* f: F
- (if (not (assoc 11 elist))
5 ^ x, q8 l8 Q2 F3 m, ^ - (progn (setq pt2 pt1)$ r; C" \4 y4 K( }" E, u
- (setq elist (cons (cons '11 (cdr (assoc 10 elist))) elist ))3 Q. X4 X! W1 e/ H2 i' }
- )$ [$ | }+ S! `6 ]6 i" Q$ P2 g
- ;;(trans '(0.0 0.0 0.0) ename 1))5 Q* E9 O2 I2 B& h1 R* D0 {+ d2 {' N
- (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))- m3 I4 {( n5 y/ J
- )0 B! I3 u4 J* f! H
- (if (or (and (= ha 0) (= va 0))
, g6 t8 d" O1 E( V5 g - (= ha 3) i( y3 M$ e- X- Y$ d
- (= ha 5)
& F$ Y; O+ ?/ m. h! ~- e - )
) E- Q" y. s+ t- \. P - (setq showpt pt1)* V2 l% [: f, D# Y) N" I' Y0 D
- (setq showpt pt2)
9 x, O; ]7 ~# { [ - )+ b7 W( }, L: e- Z. ?
- (if (or (= ha 3) (= ha 5))
$ e4 z) Q6 T U) o4 q9 i: C - (setq alipt pt2)3 ]: ?( V! u) `$ [
- (setq alipt nil)# D$ n0 O# N2 m; c. k8 ^8 P! D
- ): i$ O6 J1 ?+ G6 H& k, ^- ^
- ) Q; O8 n0 o+ A7 N+ Q& _; N
- (set_tile "x1_pt" (ai_rtos (setq x1 (car showpt))))3 ^0 l) L J, v% X8 x) Z; f: t
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr showpt)))): r3 J4 O7 ~1 Z5 Z0 t8 s
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr showpt))))
5 }; y! U2 f8 K/ O6 l3 R# W# O
- S' o' M. J* o% c3 ?4 o- ;; Define action for tiles
- V, V: j; ~9 T2 | - (set_action_tiles)
3 s. V2 T$ Q7 u - ;; Set focus initially to the text edit box.
& e- R4 Z; @5 d' z9 J7 M) `# t0 h$ p - (if (not i) (progn (mode_tile "t_string" 2)(setq i 1)))3 K' X, [+ R4 L
- (setq dialog-state (start_dialog))
' u- z7 m; t' @# Y8 u% _ - (if (= dialog-state 0)
. c6 O' ^9 Y9 Y. x( x - (reset)% S- [! H/ @1 m# v: H
- )
! Z3 N) N# }$ i' f0 d9 s4 Y4 F+ C - (if (= dialog-state 1)
4 w- w4 P, |1 Q, o5 f - (modify_text)
/ @" i% M& K; B* N$ @# i0 @ - )/ _1 ?9 h/ g0 J4 ^. `3 z& b
- (if (= dialog-state 3)
- V) N! y# p- ^: [" s - (progn% F$ s! ^. L* R6 D l4 ]
- (modify_text)
) d& s7 x" t1 K2 M/ y# A - (if (or (= ha 3) (= ha 5)); ?" C$ e; `( |) ~! S3 `
- (progn
8 _! [* k. x1 \3 h - (setq showpt (getpoint (list x1 y1 z1) "\nFirst point: "))0 n' Q; Z# N. `
- (if (not showpt)3 T/ X8 r6 g% E
- (setq showpt (list x1 y1 z1))0 [" s+ W' H+ F
- )8 f, J3 _8 _9 M6 U
- (setq 2ndpt (getpoint showpt "\nSecond point: "))$ v$ P& E1 |9 g1 g7 d0 O
- (if 2ndpt
$ z$ ^* A- c$ x( }9 {* A - (progn
4 q/ W4 |8 G- @" Y - (setq alipt 2ndpt)5 C9 N, O& a# S8 n1 ^; b
- (tempmod showpt 10 1)
3 m7 n% G2 ?1 K c, M - (tempmod alipt 11 1)
V- ?8 z- _2 ]3 F8 G: |4 g+ J" l0 { - (entmod elist)
) T e' b) m# K - )
) F) W) S# E+ H9 R! d, O$ i* _7 [ - )
+ w( S/ D% k0 F& O, Y1 G6 g8 S - (setq elist (entget ename))
+ f. u1 W9 I8 k- V6 u! K4 } - )+ V+ _/ Q+ |! E- l8 j e! \
- (progn2 O( l1 I1 T+ I
- (setq showpt (getpoint (list x1 y1 z1) "\nInsertion point: "))6 |/ }& a7 S' A
- (if showpt! t. B0 W! F# g) V/ y% Z) c2 O H
- (progn7 V# O" Y7 E+ K" m) u
- (if (and (= ha 0) (= va 0))/ u% V+ h! Q1 m4 _4 R4 D1 K" o0 \
- (tempmod showpt 10 1)& B/ w0 }6 T& c9 Q5 L
- (tempmod showpt 11 1)2 t; e& D$ ?! k- c. Y# Q$ N/ r
- ). @3 O/ _4 k5 ^
- (entmod elist)
. A( ^& F- e/ Q) }# D - )$ Y0 W; X& p3 g+ y
- (setq showpt (list x1 y1 z1))
9 j; i* Y. T2 W: | D4 G- \9 ] - )
2 M/ c# {& V ^/ s% u. f - ) C6 _! h0 v! p1 |4 Y5 C
- )
; Q) U! g1 w0 x0 E% v - (ddtext)
. y$ l0 h$ L( F- C3 @) T* f$ ? { - ) B7 | F. {; {* U+ y: P* A
- )( P6 Y3 Y; m' ~- N4 E
- )8 P7 t- y' R1 C3 d
- 4 [# ]( r H0 ^) |, C; S
- ;;0 |' ?; g% K# W2 X8 \
- ;; Modify MTEXT& z! W, }6 G9 Q! {
- ;;4 K D& {1 G' @6 b' [( L
- (defun modify_mtext ()$ ?& o. q* w# J$ D
- (modify_properties)6 `; R$ V* m2 R6 x+ T, L3 ~( V
- (setq pt1 (list x1 y1 z1))
8 y* c) i7 C0 O& b3 p- m - (tempmod pt1 10 0)) d7 D4 g, y2 R! {
- (tempmod text 1 nil)
% T m; B. Q& Y" m$ ]) H - (tempmod tstyle 7 nil)
# n% Y6 U$ |' _0 I - (tempmod just-idx 71 nil)5 W4 T8 `9 O. C0 T: ?% e
- (cond$ W. e7 k# E0 |3 p Q. j5 C
- ((= dir-idx 0) (setq dir-idx 1))" D4 ] I, U/ J" e
- ((= dir-idx 1) (setq dir-idx 3))
( L& W3 }9 W7 a0 z; Y, I! p' m) f - ((= dir-idx 2) (setq dir-idx 5))
0 l, t7 D& m9 k( m5 B - (T (setq dir-idx 1))
- }* b& a7 g5 L' c! u( ] - )
: o. ~: y# `1 Z! x - (tempmod dir-idx 72 nil)! W- r# ?" q9 b3 \
- (tempmod hght 40 nil)1 {3 _7 E/ `; x/ _/ {
- (tempmod wid 41 nil)
0 U6 R( L' S( d, e& _% L! K - (tempmod rot 50 nil)9 P$ q' Z6 J; h0 M7 ]( d6 u/ k0 G
- (entmod elist) `0 U& s- z, F- R0 P! X
- )
0 T* {4 l8 l) l
2 Q( A, K+ f$ z- y- ;; Set MText text style3 l c* b0 o% y7 w$ a
- (defun MText_style (index / style-list); D* }; {: d* H* P
- (setq style-idx (atoi index))
6 A3 U6 e8 r! m3 c( G5 D - (setq tstyle (nth style-idx slist))# w5 w( x- G7 K" z3 M7 ~4 s
- (setq style-idx (itoa style-idx))
! R( |& w: d9 C5 }% n+ c1 } - (set_tile "style" style-idx)4 Z- h3 O% V9 ~+ S: d ?9 e
- (setq style-list (tblsearch "style" tstyle))
" i) z$ K/ Q1 w' n - (setq shght (cdr (assoc 40 style-list)))
# n8 }6 D2 F8 r+ m2 }4 J - (if (/= shght 0)
3 g3 \8 {3 R( k* z, z! u' J - (progn
; U/ C; i8 V- P9 {( Q - (setq hght shght)
; [, l+ j. |4 T2 \ - (set_tile "hght" (ai_rtos hght))
0 F5 @! h) M; Z5 t - )4 X; O# ~6 }" |; b2 |
- )
# z3 \1 a/ F" r" S$ W, S, D - )
4 o- X* ~# V5 K6 j5 b b - + F* |+ U# H: E( q
- ;; Run DDEDIT on given entity, working around possible re-entrancy
5 \$ T+ x* `/ I# w% {- B% q0 x - ;; problems with MTEXTED
% l1 F3 i; |' x+ ?4 [# M( R - (defun safe_ddedit (ename / orgMTextEd work)
D+ ` H+ A$ T - (setq orgMTextEd (getvar "MTEXTED"))7 k8 a* H, I5 c. K: R
- (setq work orgMTextEd)7 O- Q2 x% G" \- ^* P
- (if (= ":" (substr work 1 1))
3 s! n: \. W7 Y' a# T - (progn
9 O" N. y+ H9 G& N8 m" P3 j. ]7 M - (while (and (< 0 (strlen work)) (/= "#" (substr work 1 1)))
, |7 P$ H {) R" a - (setq work (substr work 2))
- G* h) T2 D/ s" W7 |, s1 s% D/ j. m - )
' g# ] S3 q, w+ D7 Y/ o" g3 j - (if (= "#" (substr work 1 1))
% i" q3 b) F3 x8 V, r - (setq work (substr work 2))$ H* V% J+ s9 a- b
- ). U' x e* _+ }1 Z" Z9 J
- (setvar "MTEXTED" work)
9 W. D3 C' n- Z$ j/ i) m - )- t, O3 ]* h) g! k/ B/ f
- )0 O$ k K) Z: H8 o3 k7 j
- (verify_arxapp_loaded "acmted.arx") ;; make sure it's loaded... l( K+ S8 R* |
- (command "_DDEDIT" ename "")
0 Q/ g& g* i- h/ V- H |4 y - (setvar "MTEXTED" orgMTextEd)
3 n' j, p/ a. v. `, r1 a- | - )$ w3 G4 h0 V3 X5 @
& U) O% }2 F* \1 c) w- ;; Verify MText object width! l5 i" k2 k5 }
- (defun ver_MtextWidth (value)
3 D% J8 v8 E/ d$ Q( f - (setq value (distof value))9 I1 A* p2 O" ] {; n
- (set_tile "MTextWidth" (ai_rtos value))
6 A4 }2 _7 |# F* ~3 r/ T+ o% F - (set_tile "error" "")" i( Q! W9 K8 I, E9 `
- (if (< value 0.0)
( R8 ^6 |1 o5 T0 P* K. g4 h - (set_tile "error" "Value must be zero or positive.")
2 H' B# O% _' Q, Q5 K6 \& M- a& g - (setq wid value)
2 i; ?* Q1 S; T+ J* y6 M. [5 S - )
/ [+ U# n; v6 C% P& n - )" V% s! L$ I8 Q' V6 \! o _2 ?
" `/ z- F- m! B% C4 U5 b0 e8 G- (defun ddmtext ( / gc3)
+ @' A3 \6 d- h) X i8 v - ;; Get dialog# Q3 P$ K$ r4 u% }5 A" h+ P
- (if (not (new_dialog "ddmtext" dcl_id)) (exit))
1 V9 x; M9 ~ ~! o& Q7 Q% Y$ O
* y0 \$ o# |6 g# b4 O4 d- ;; Load list boxes; U o. _3 z& h' a" L5 ~' g" S) n
- (start_list "MTextJustify")
, Q$ N7 ?# B! N1 \ - (mapcar 'add_list '(/ ^2 e. A3 V0 ^0 B
- "Top Left": R. Q D# q T$ s$ P$ }
- "Top Center"
8 f- x) ^& T) V" K" S - "Top Right"
* I* T7 Y' p5 S - "Middle Left"# v0 h8 i5 S+ Z' ^: g2 v- S1 d% u
- "Middle Center"- H2 j8 [( j# u3 o' O. e$ a) e- n9 C& g$ }
- "Middle Right"+ e7 L" a+ d/ [' J0 F8 z! H R
- "Bottom Left"
- J& j2 {# q3 w! b1 a - "Bottom Center"2 n; c, Y: ~/ _
- "Bottom Right"4 E" G% O8 a/ E9 n% U/ }; V
- )2 B+ c) P5 q0 g {! ^
- )
$ R$ H4 w2 T: e" s) a - (end_list)" E; m" E0 O( _, ]
- 7 i& X) Q9 Q# w" S
- (start_list "MTextDirection")" |# R( v" D! t# j0 G
- (mapcar 'add_list '(
8 o0 n! Q2 i; v- v y - "Horizontal"
: A! c, b! ]4 x, g3 X T3 W$ K B1 n - "Vertical"" C6 A# T( T: n* E" Y
- "By Style"
1 H7 y4 K9 Y/ y! G2 f% e: |" E$ e - )
5 a# c; l! D8 O, L: B# e - )
% V7 C2 O& N+ F" ~+ D - (end_list). N6 |" w- Z$ s' A4 C! `
2 K% _% [ i o. g0 @: w- b" ]- _- ;; Set initial tile values
5 a8 I7 z& |6 Y9 j& H - (set_tile_props)7 z3 Y( U( `$ D: w* X
- (set_tile_handle) a# [! Z5 H; K& r3 ~4 _6 z
- (set_tile_pt1 0)
2 w/ I4 W0 @& q - (set_tile_style)' v! h o8 N6 }. q
- (setq just-idx (cdr (assoc 71 elist)))
7 D) D/ x7 E5 @8 N+ ^, | - (set_tile "MTextJustify" (itoa (1- just-idx)))
9 v& }/ K' L3 z4 P! q/ X5 t" P% Z7 j7 \ - (setq dir-idx (cdr (assoc 72 elist)))% M7 L) P1 f$ z) d, M
- (cond
+ e) w S1 Y8 {( S8 F( a4 M - ((= dir-idx 1) (setq dir-idx 0)). z0 [3 V3 ^4 G! S
- ((= dir-idx 2) (setq dir-idx 0))
. z- |, M9 `7 L- |' D& `/ C& ` - ((= dir-idx 3) (setq dir-idx 1))
$ t* \: T$ w; i g9 G - ((= dir-idx 4) (setq dir-idx 1))4 U+ o$ q+ M1 d& ^3 x7 |) `1 @
- ((= dir-idx 5) (setq dir-idx 2))
) T1 g" X- l$ S9 A; K4 Q! C. r - (T (setq dir-idx 0))
5 B3 i% h% I4 w( F- B8 o/ i h - )
2 _, i& s( z4 P, n# J& |: {: ^! F2 v& p - (set_tile "MTextDirection" (itoa dir-idx))
7 \% ?9 l- Q5 y- K+ r& W - (set_tile "MTextWidth" (ai_rtos (setq wid (cdr (assoc 41 elist)))))1 G( g0 A5 Z' `
- (set_tile_hght) [5 K+ m( @& B8 q/ H+ ^2 B
- (set_tile_rot)
: J0 `9 v8 [4 c6 m# j* }
" t7 |0 e& F9 L# l$ B0 y/ Q' e- ;; Set edit box, disable if too long# r6 Q1 [7 V. [* q2 h, ?' w j
- (setq gc3 (cdr (assoc 3 elist))8 i& s! \8 x! n( j, B
- text (cdr (assoc 1 elist))), K; x* e* s/ u; g0 S. F5 X' D
- (if gc3
3 o$ f8 J. P# {+ C& O - (progn ;; Text is over 250 chars, disable edit tile
) K+ [: j6 l, i; z1 V! H - (set_tile "t_string" (strcat (substr gc3 1 25) " ..."))( R: A `' O ~0 n" n7 z2 ]
- (mode_tile "t_string" 1)+ L$ @8 E4 L9 J8 I0 u; B& {
- )
Y) ~2 I z- \' }& g - (if (> (strlen text) 80), `3 K9 R. I, Z* s. G7 Y
- (progn ;; Still too big
J* ~9 C, W4 v; g# X2 w - (set_tile "t_string" (strcat (substr text 1 25) " ..."))5 z% |: ~4 w/ K' u
- (mode_tile "t_string" 1)
6 p8 T# ^- E; C, } - )' d" }" M$ A9 X) @+ L
- (set_tile "t_string" text)
' X/ C! e9 t! S - )3 S0 F1 K7 ?. z
- )
8 p* h3 d1 O! L; l& [ - 3 y9 u/ G9 Q+ ^8 K/ n
- ;; Define action for tiles
% k7 w. b( {& b9 g - (set_action_tiles)
7 b+ S4 N5 J0 [- E4 y - (action_tile "style" "(MText_style $value)")# ]$ N* _: V V* s! z
- (action_tile "MTextWidth" "(ver_MtextWidth $value)")
# s# K" u+ X* q0 h - (action_tile "MTextEdit" "(done_dialog 4)")
8 q& I. v# m: Q' d4 a- u - (action_tile "MTextJustify" "(setq just-idx (1+ (atoi $value)))")' E: N6 ~+ B& |+ ?. G. P
- (action_tile "MTextDirection" "(setq dir-idx (atoi $value))")9 c& z- F6 r8 T/ D' U8 x# D1 J$ }9 Y
1 [) w4 [7 U9 o7 P- ;; Set initial focus to text edit box.( i9 J2 n" M$ b7 @
- (mode_tile "t_string" 2)
) F/ |4 Q; J) w
+ d1 a" v- i( V: B6 i; Z- ;; Run the dialog
4 G$ M" `) Z$ n! S( }+ y( b# @8 @ - (setq dialog-state (start_dialog))+ T( C9 x( X2 I2 C
- (cond0 e( q! W, |3 Z4 O& B$ x
- ;; Cancelled - restore saved data
4 h4 R5 q1 @5 y! B* d; M - ((= dialog-state 0) (reset))
5 D n: u" ^0 k6 M t/ W - ;; OK - save new data
5 W5 Z% z; s6 n* b - ((= dialog-state 1) (modify_mtext))' L$ ~. n# n2 X& s' G+ f( q4 J ~
- ;; Pick new insertion point2 t8 E- t, Q2 z) D7 [9 A
- ((= dialog-state 3)/ D" z9 E1 A( q
- (modify_mtext)
1 P2 j+ q4 {1 l* f - (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
0 h8 Q* r7 k* B8 _ - (ver_pt1 0)
0 x$ l; B% I, ~7 X - (ddmtext)# h) ?7 I' C0 J: R9 z7 e
- )! n5 F' p& c# `& A/ r2 x; P4 X. e
- ;; Run full editor
8 n* o R' P- S+ I - ((= dialog-state 4)
4 A& g' x- c1 L( m. W6 m - (modify_mtext)
1 y6 ~6 e" e2 o1 k; b6 B: ? - (safe_ddedit ename)
7 P; U8 R9 \& Q! ]' T o - (setq elist (entget ename))0 G8 l) B2 k* F! G5 K) c; a
- (ddmtext)
: v# K7 S4 \) w/ Q - )
8 u; N" F9 j9 o; ^0 u' e% @$ e - (T nil): L: C5 V5 ^6 ]: `% ?
- )" C6 |, S" N3 w5 d( Y
- )
! U/ }3 i- B: F( @9 h+ v - 7 q( ~/ `% n m5 s
- ;;
! S& n) g) R' h1 E2 N - ;; Modify VIEWPORT
9 L/ e) h9 F5 I8 y3 m- v3 v6 s! Y - ;;, t+ `/ J2 f, x* s) |( W
5 ?0 b( y- J5 ?. w! ]; m- L+ n- (defun ddvport ()
# ]5 C0 s+ j/ ? - (if (not (new_dialog "ddvport" dcl_id)) (exit))
4 J6 f5 d: N m - (set_tile_props)
; f# `9 l& d, q* k1 u6 p* c- q, k% B - (set_tile_handle)
; a) a+ s* K2 ]$ K - (setq vpt (cdr (assoc 10 elist)))
( ?5 A+ r" M4 h, O - (set_tile "xtext" (rtos (setq x1 (car vpt))))' Q- f0 L/ C9 t
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
* z$ `# T) e, M1 j. P: s5 w0 k - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))- Z6 \( h$ p H
- (setq wid (cdr (assoc 40 elist)))
) a1 [1 h, o3 g" D/ a - (set_tile "wid" (rtos wid))" Q" A, J/ H# v3 ~ {( G$ f8 ?1 z8 R( C
- (setq hght (cdr (assoc 41 elist)))' s% G6 F2 ^ G& J
- (set_tile "hght" (rtos hght))' g) k7 S' o e( Z2 |
- (setq vpid (cdr (assoc 69 elist)))
" v5 S4 }! _ \6 I5 F F - (set_tile "vpid" (itoa vpid))
7 `8 M( X5 k; L8 q* P - (setq on-off (cdr (assoc 68 elist)))
, \, H# H! J. s( P) L+ X9 q E - (cond
+ f5 \0 b) t- ]9 M% Z& Z - ((= on-off 0) (set_tile "on-off" "OFF"))
3 A z6 [( u8 k9 ~) e - ((> on-off 0) (set_tile "on-off" "ON and Active"))
6 J% ]& {( o7 H% b$ |, V0 e' Z - (T (set_tile "on-off" "ON and Inactive"))
% |8 U: H2 t4 N - ): c0 F0 u8 H1 |
- 9 H# J# D1 M8 t* b! h
- ;; Define action for tiles" v- d; R3 V. T9 y& w
- (set_action_tiles)1 M; k+ m6 f9 V' R) {3 n
- : d& D" S3 I/ G5 X* {; T
- (setq dialog-state (start_dialog))
* P! {/ U2 Z5 l- \$ d - (if (= dialog-state 0)* t% s; @& }4 ?! Q
- (reset)
1 m/ r: }+ n' q K9 |+ V - )
: }2 G. K) u4 t+ h# f; g - (if (= dialog-state 1)
! ~0 \: ?- O. }/ n) W8 N+ W - (progn
# r1 q; {5 ]; \ - (if (= ecolor 0) (setq ecolor "BYBLOCK"))
: v" ~( }$ ? _0 ?+ |' x - (if (= ecolor 256) (setq ecolor "BYLAYER"))* ~) S7 O+ _; ]) Z1 [) U* k) y! O
- (command "_.chprop" ename ""
+ x5 U+ a9 E" _. k - "_la" elayer; d- U% [. K, M2 h3 {
- "_c" ecolor ""
6 r# t- r- f1 ~8 E9 H+ E, X - )
$ f; y! O% n# T5 l - )
- B- I" u- X8 {# }8 c- O - )0 m% K3 N4 b' L/ @, c0 v
- )+ K0 f' \& c8 s9 k# X* L6 G8 g& M/ I5 k
- ;;, F7 N- W! _& M2 x& z; \1 W5 h8 |, ?
- ;; Modify POLYLINE7 x. T8 K: @. u& j
- ;;
8 h& V/ J/ ^$ Z+ b% F# ~5 N - (defun modify_polyline ()
( H* M3 G" ~; S2 j' ?/ U - (modify_properties)+ H+ p G% C$ y( z- V4 i
- (if (= ltgen "1")6 n' e+ F; U% j4 N- |
- (if (/= (logand bit70 128) 128)6 X N/ H/ k P5 W7 I- U3 {" p& t }
- (setq bit70 (+ bit70 128))3 `) Z" { p, A: }% P E v3 t& \. q
- )
8 Q1 z3 s. t* s/ {$ ` [- E - )
' T$ A7 i) ]+ B0 j1 J - (if (= ltgen "0")
3 K/ O+ U" t ?- ^ - (if (= (logand bit70 128) 128)
( S; `5 p% r6 j- K6 E* P - (setq bit70 (- bit70 128))/ ]9 S5 |# v8 H( {/ H/ B- J2 Y
- )
% c. C# Y" H7 `7 X6 \8 n" N2 R - ). J# M. d9 y) A( e3 l- J
- (setq elist (subst (cons 70 bit70) (assoc 70 elist) elist))
* Q0 s* k: j$ ^; r/ C - (entmod elist)' A4 ~8 v, e. u' ?# X0 i
- ;; Added to take care of updating Vertex information for color
0 B1 c% T+ W5 Y& ~ - ;; and linetype.
4 }! h0 B0 ~5 h( R- T/ z - (setq save-ename ename save-elist elist)
2 f, b$ W! V, Y$ E/ i - (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")5 ]( ]( k* ]0 V+ ?8 x- o: [# U
- (progn3 T1 W5 a+ k; e( v- F3 ^$ c( u% J, L ]
- (emod ecolor 62)
+ V8 E& U! C' u/ ^8 p# W - (emod eltype 6)
! i* w& i( r7 s; H( ^ - (emod eltscale 48)
& F2 g2 ]7 {% @6 S9 ]1 R6 u5 l; \ - (entmod elist)
1 J; w! H+ ~- ^% c - )3 R5 F/ v- ], b U, J
- (progn1 j. A; C! }- Q$ p. l
- (setq ename (entnext save-ename))
& U7 q+ a) W+ f; Q4 N - (setq elist (entget ename))) R8 e2 ?% W @- d& R0 M
- 6 n* d: s/ P0 W+ r+ c) l/ h
- (while (not (= (cdr (assoc 0 elist)) "SEQEND")). y0 B$ o- U8 ?9 I( W
- (emod ecolor 62)% _+ ?' Y" J2 K0 n/ w1 Q( y% j
- (emod eltype 6)
4 f, e) p; U% r8 y. z - (emod eltscale 48)
9 P: ^0 x* n1 M* X' J+ v, s& t - (entmod elist)* j/ V5 m/ \/ J7 N, y
- (setq ename (entnext ename))- \5 w1 S: y7 \0 M8 G# U: p
- (setq elist (entget ename))1 B+ {" q3 ^# u6 S7 U3 k
- )# J( y3 g8 Z7 o4 m
- )
W3 T- w" C) z- n+ e2 j: U - )4 u# f* ?9 z+ n) o) ]' D
- ;; Update the SEQEND) O$ Y' A `0 ^3 H" f+ d! f0 r
- (if (= (cdr (assoc 0 elist)) "SEQEND")
3 N4 i3 }1 e {$ Q7 }$ S. y - (progn, M" Z0 G7 P: k3 O9 w! C' k
- (emod ecolor 62)
! `0 V! G0 H2 V4 t4 M - (emod eltype 6)& [( c9 r* E) S* n& }2 ?% d( M
- (emod eltscale 48)0 u6 p; d# c. Z. s3 ]6 D: ^# c
- (entmod elist)5 d7 o0 b4 y8 ?- E, `
- )
% q' }+ `4 ]& E1 D1 D z - )( v5 Y" ]& z0 f
- ;; Go back to header.- p9 `& P- ~: y, N( r
- (setq ename save-ename elist save-elist)/ [ u4 ?1 b. L9 e4 M5 d
: w" S8 R9 J/ n7 W( e7 [5 X- (entupd ename)/ A7 p* r; q* y, x! H9 _6 _& _
- )" H8 v6 K' q2 Q0 A# O0 _& x
- / ]5 d0 _9 i6 N2 n( ^1 ?" {
- ;; Increment vertex. Set tile values to next vertex- N o8 t3 A1 s% m0 [8 T T
- ;;, h) T: z0 V! |( w, g: E
- (defun next_vertex ()2 {( |' n d! k0 j# g- G
- (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")
. _* H4 s& d4 R/ N% e - (progn0 a( h- R' D* x- {0 P5 ~/ M+ p2 A
- ;; If the counter reaches the number of vertices,* e( q: `9 C; \6 b; M
- ;; roll it over to zero again.
9 L |( Q; q7 p; g$ C) M! H0 Q* J - (if (= ctr (cdr (assoc 90 vlist)))
3 z7 g" g6 C/ X3 r - (setq ctr 0)' S1 K& H/ L" f4 \5 P6 \( v# z5 S, {
- )
* z9 M; A4 c& q - (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))/ S7 R7 k" ~) J7 I u! o7 r
- (set_tile_vpt pointype)
/ g0 \' r4 j' ~2 m# f$ w5 p" \ - ). `# L3 P9 C Z' u H5 H: y8 N
- (progn' g% [: Z! R( P. s! ~4 B' s( R
- (setq vname (entnext vname))% @6 F- R1 o8 y& H( f Q4 k
- (setq vlist (entget vname))" A) g% V6 {3 Z0 C/ l9 U
- (if (= (cdr (assoc 0 vlist)) "VERTEX") w6 c" v8 F* i0 H" v0 Y1 c
- (progn
; a0 g' E% [2 h) q) ?$ }' G. r- j - (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))
6 {: U4 V* \: r t! M8 x' [ - (set_tile_vpt pointype)
) j: V1 r4 a3 R Q* q7 ~3 S I - )
# ~# E+ P, I; V3 \8 k/ s# ~ - (progn8 q/ N! P+ J- n
- (setq vname (entnext ename))6 s+ N/ N; M3 p2 {9 ?7 {. y, z. G4 q9 R
- (setq vlist (entget vname))
& i8 h* p% g6 p7 s, B8 t - (set_tile_vpt pointype)4 @7 I, K# b. ?1 G% k# U3 \& q
- (set_tile "ctr" (itoa (setq ctr 1)))
' G2 J6 w6 Z8 o0 y - )
( s9 G" m+ L( ]( h, B# O" g - )$ m, k. W/ J& `/ r0 d
- )
5 b) l& {, r6 a# m. @! Q9 n# i - )0 A' X- X! [: C+ F- S
- )
; N% O, A1 Q+ M3 m - 1 C/ I$ _2 r0 M, j
- (defun ddpline (/ oldecho)' m) y8 N/ z Q+ ~5 A
- (if (not (new_dialog "ddpline" dcl_id)) (exit)): `1 Q3 q2 |, A! O- m& e: E0 A. t& U
- (set_tile_props)1 T3 i0 O# K) A( j9 C3 Q& ?2 `
- (set_tile_handle)
: O* Y% y' `8 c: J2 j - (setq bit70 (cdr (assoc 70 elist)))4 `4 @. M4 b/ q9 X' S% `
- (setq bit75 (cdr (assoc 75 elist)))
5 D7 [' Z) X$ H4 y% @ f: k# @ - (cond
& z6 a/ S$ _2 _( ?" b/ k4 z - ((= (logand bit70 8) 8) ; 3DPOLY
6 q, H J1 Q: I - (set_tile "ptype" (setq pltype "3D polyline"))) D( @8 t, X `! f9 i- v( F
- (setq pointype 0) ; WCS or ECS point values- _* V0 S) b% }1 S
- (mode_tile "fit" 1)- ?: a7 F6 I( O+ b4 a5 u
- (mode_tile "mesh" 1)
. L" I/ D& \- j' m. ? - (mode_tile "bezier" 1)3 K2 W0 X4 z' s- z3 `1 Q
- (mode_tile "ltgen" 1). B2 X$ B# T& O
- (set_tile "none" "1")
8 j( T/ I( S9 b3 N) N - (set_tile_closed)
' e8 X- o) \7 p - (set_tile_fitsmooth)
4 s3 q6 j6 f8 @ - )' x' [* b! G2 u
- ((= (logand bit70 16) 16) ; 3DMESH( c: @. L4 Y: _9 h" a
- (set_tile "ptype" (setq pltype "3D mesh"))
& A7 T# m- ~; e' T9 `% r7 z - (setq pointype 0)6 v% Y# N- n0 V0 M9 t/ U9 K
- (mode_tile "pline" 1)
8 C) ]0 @& \4 N4 T7 ~ - (mode_tile "fit" 1). U# x' l: R2 v6 y+ W# U& @
- (mode_tile "ltgen" 1)
! }1 r4 m W. C' r N. I7 Y0 T - (setq m (1- (cdr (assoc 71 elist))))
5 Y9 `" R0 ]1 [ d - (setq n (1-(cdr (assoc 72 elist))))
/ O$ d4 q; ?' \: v5 L9 S9 Q - (setq u (1- (cdr (assoc 73 elist))))
/ X: |( w! l, U/ a - (if (< u 0) (setq u 0))
) p0 A; b" G1 L! D* I f - (setq v (1- (cdr (assoc 74 elist))))- d6 F. u" [: P2 l: Y1 D& H7 v6 M
- (if (< v 0) (setq v 0))
6 X \4 [% B$ \" n8 O - (set_tile "m" (itoa m))
$ n0 x8 Y! O7 Y - (set_tile "n" (itoa n)), U H N( h6 O1 r/ x$ g
- (set_tile "u" (itoa u))
. S/ X; g# u1 C+ f - (set_tile "v" (itoa v))3 c; h) M: s$ M; ?" e2 E! m
- (set_tile_closed)
$ K0 [. o9 V4 v0 v; P - (set_tile_fitsmooth)6 n- S) [8 C" T5 O* P" ?
- )' Q8 Y/ k7 S* I. X8 s# a* E
- ((= (logand bit70 64) 64) ; POLYFACE MESH5 y1 _- e) E7 t* F d- D7 ?+ c
- (set_tile "ptype" (setq pltype "Polyface mesh"))
1 m. @& v5 q& f1 m! P* w( O - (setq pointype 0)
$ U* A9 Z7 ]9 [7 R - (mode_tile "f-s" 1)7 k9 R8 a) a+ [3 K7 [5 B, |- a
- (mode_tile "mesh" 1)+ t+ H5 ~" d4 }0 [2 Q+ d0 ?$ m
- (mode_tile "pline" 1)9 L' M9 g% k! H2 Z W; P
- )
( S. \+ k2 Z8 T" Y4 k# m1 i - (T ; 2D POLYLINE, `& O" E! e# M7 [3 `+ j8 |" q8 H
- (set_tile "ptype" (setq pltype "2D polyline"))- w" r+ ~4 H5 A& N
- (setq pointype 1)
, d% i; h( P G' v - (mode_tile "bezier" 1)
, d0 x8 {7 _3 ?# Y8 l - (mode_tile "mesh" 1)
& T7 M7 t. O/ G, k1 k3 g - (if (= (logand bit70 128) 128)
4 M# P! `# @! c. O* c - (set_tile "ltgen" (setq ltgen "1"))3 |! z& L( r' f; r
- )
/ b+ q3 P6 C4 b" Y5 U; V - (set_tile_closed) n( _& M8 V) A( g# n; k+ M
- (set_tile_fitsmooth)
1 B* S U" V! T6 w+ s% z - )
1 M, k. Y4 z+ J' Y0 T6 J4 [( Q - )
; f f/ Y# M* C0 |2 M( \; f- Y - ) N; Q$ f9 n& u# e, N# Z9 N* A) K9 Y4 C
- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
/ z7 I0 L6 b7 p' J8 ?# { - (progn
* K# N1 x. b: N$ t - (if (not next) (setq vname ename))" e L p/ c3 u$ @2 U& n
- (setq next T): C) F3 }1 s; D* b4 o) j
- (set_tile "ctr" (itoa (setq ctr 1)))
; m/ _) B" U' @1 e - (setq vlist (entget ename))/ F. K5 D1 h" m( {% J0 T3 T
- ), _# V0 I4 v) H( \! q. ^9 m z2 N
- (progn: J- u# M! x: [# N, O' g3 y
- (if (not next) (setq vname (entnext ename)))' d. d. U7 N: F4 w
- (setq next T)% _8 |# V Z# Y: `' X5 n, y* j2 \/ x
- (set_tile "ctr" (itoa (setq ctr 1))) ? M( M S$ Q4 Z; p
- (setq vlist (entget vname))
: O, k9 ]4 _3 V* J. d( G: V - )
G4 K& J& @. E# o# P$ V8 } - )/ O- F- D8 y2 b
- (set_tile_vpt pointype)
+ P7 j; G" w3 U4 S - ;; Define action for tiles1 _) J, J2 w( L
- (set_action_tiles)3 e$ t8 i3 f1 `! q* Y
- (setq dialog-state (start_dialog))
% c6 z% ^6 b5 j+ M/ X4 R
9 l: S; O Z {7 C- (if (= dialog-state 0)3 P+ m4 O5 Z4 y3 O) N- A
- (reset)* F# R; \+ U9 A$ w& H
- )) G- u. O2 R9 f7 H/ k8 `+ g
- (if (= dialog-state 1)! L# h% b4 @1 O) [ S
- (progn6 R5 B9 S* Y& R
- (modify_polyline)
; T3 F; |/ P, A - (if (or (= pltype "2D polyline")/ t* T. a! P* `' k. l, ]2 K( H
- (= pltype "3D polyline")# x2 D* A7 z( h: k+ I; Z
- )
% k# O" ^3 Q2 J/ O) ^% v - (progn o4 ~) S9 @5 D0 f8 l
- (command "_.pedit" ename)
) _& O: p+ b* M B - (if (= spltype 0) (command "_d"))
# b3 G! h5 ~! I8 u9 Z - (if (= spltype 1) (command "_f")). e- c8 t% X5 y$ f! l/ b
- (if (or (= spltype 5)( ?+ M" {3 y% ~- v$ \& ^
- (= spltype 6)2 n5 a/ z' Q; K+ F5 X4 T8 _- z
- )& I3 B; w2 a( ]; e- X" M
- (progn" c/ |5 `- }8 T8 u/ B8 g
- (setvar "splinetype" spltype)
& f; s2 @. J3 [2 j: h( P - (command "_s")
3 ], [3 T8 V7 o- e; p( R" s) S$ B - )( G, l4 r$ O7 \
- )% ?0 F' F9 u6 e5 J1 b
- (if (= closed "0")
% d. o8 [) Y0 _+ Y0 t2 B6 m - (command "_o")
# Q2 ^1 R! C) y! v8 A6 x- Q+ D1 X - (command "_c")
2 M; U% x- B3 A0 K! l - )- Y. Y0 J! r/ ?( t, G7 x6 Q
- (command "")
. A, a) {' z, r" j9 H. f8 e/ F; S
% M; @( L, M) @- E p4 H; `9 S- (if (= spltype 0)" [1 e4 A5 U( `2 k2 e0 d7 S) ^
- (progn/ B' h- q; \5 r) n9 a
- (setq oldecho (getvar "cmdecho"))
1 K$ q0 c" }4 E" x5 X - (command "_cmdecho" 0)
# L6 m$ R6 i z6 {% d& ] O& @ - (command "_convertpoly" "_light" ename "")
4 [6 Q& \+ `0 r - (command "_cmdecho" oldecho)6 P/ v0 ?- U3 T+ `5 }- K& R
- )
7 z( _: g% f* S3 B( Z - )
& B0 u2 G7 V( L4 g# \ - )
* i" B$ @% P4 C" @+ J - )
$ ~* Y4 }$ [6 u4 _6 c3 Y1 ] - (if (= pltype "3D mesh")
' H6 J# X$ m/ |2 t/ L# K - (progn, v% m+ e7 B+ J7 q/ ^2 B
- (command "_.pedit" ename)
7 m+ [( N* Z6 f - (if (= spltype 0) (command "_d"))
) ]5 d$ q8 ^# o5 T" H* e- f - (if (or (= spltype 5)
. R3 D. Y }8 B - (= spltype 6)
; D# |2 b/ D. |9 b; ~6 r6 C" V - (= spltype 8)5 @" H* ~4 ?. P9 e8 k
- )
% @& O' `" k" r - (progn8 t5 [$ Y" X) `+ a, I' \9 C: a e
- (setvar "surftype" spltype)$ l- I2 D) j1 c1 z0 ~
- (setvar "surfu" u)
3 G& U' r# l% g; i" }- G! j - (setvar "surfv" v)
2 S& b& R( h- U4 D- n - (command "_s")
3 i* _1 f4 ]! t5 L, b+ c - )
, V( v8 U% y1 c/ X5 n - )
* u& B ?- B, [! F2 {' n J: {6 T - (if (/= closedm old-closedm)
7 {% |9 h( k9 w1 k! I3 `8 `2 E - (command "_m")( |+ \2 [1 U; `* o
- )# y1 O# y) D A
- (if (/= closedn old-closedn)
$ u8 D4 l8 M1 s# i; L7 w - (command "_n")1 r# M8 y9 a# ~, |& F6 }1 ~, _
- )" V; k) G, n8 @* J7 g, e1 {' k2 y
- (command "")4 g7 C& m- [! c2 E+ |6 [
- )
8 D8 L! z& m5 y( d q9 w - )
" p/ W1 e! f# n2 M - )
# e/ q, H* r& e. o - )# C- ?, O$ K u3 K3 A
- )2 W# _9 M: i8 S
- ;;4 B% \% f) ]4 f" X
- ;; All the spline data is contained in a single elist. We must do some
5 O" U& H1 X; {3 F! J/ M - ;; tricky list processing to loop through the elist in order to display
0 R: W0 B% V" H2 N6 y' }$ K - ;; all of the control points.# R9 I7 ~; K9 l: H% \
- ;;' O* ?; m- D7 ~/ I& E% b
- ;; The structure of the elist is different for rational and non-rational$ @- y% D! M& c* W
- ;; splines. Therefore, we check the rational spline flag. R0 s9 Y- x$ a+ T
- ;;2 @* s& ~7 r0 Y+ N
- (defun next_cntl_pt ()
; m4 y4 \ z! e0 U: k - (setq elem-no 0) ;; elem-no = element counter/ G1 ]1 a4 V/ Q# k3 e' K3 u
- (if (= first-10-time 1) ;; If first time, find location of first ]0 `& G. I& L7 S; q8 [ \
- (foreach list_item elist ;; cntl point element in elist
; _0 }1 Y9 Y0 V1 G$ p3 R - (progn/ T1 X' C( q0 v. f) l
- (setq elem-no (+ 1 elem-no))
7 [, G4 t/ C! S6 U/ t; q- @3 A - (if (= (car list_item) 10)' K0 T. l1 P. D( \+ W) w3 V
- (progn( e! Y6 E. ^" R" J" h& Z1 Y8 T
- (if (= first-10-time 1): Y! C) m0 Q' b: s! m3 w7 H" P
- (progn
0 ?3 X2 P3 k/ W& |$ K9 B - (setq first-10-rec (- elem-no 1))
% @- E \+ A5 @/ U1 T5 Y2 n# B - (setq first-10-time 0)
& U% Z) `! f- O* ^; b3 Y9 t# y2 T - (if (= rational_spl_flag 1) ;; if rational, H2 U& b+ @ T+ \/ g( r
- (setq cur-10-rec (+ elem-no 1))
% N8 V( o" {# L% t3 M. w - (setq cur-10-rec elem-no): R5 U$ @7 l# t# \! U( K
- ), T- s& v' v, V$ n3 R* v% k
- )4 {. l) y, K% R, ~
- )! L* g( }% d9 }: [
- ); T6 p5 W& r" G( i/ O; P- D
- )% G0 M5 L+ n7 _) r
- )- r7 D' B7 d1 X$ n% A
- )
# i8 f8 X, c: N! i7 i) F2 ] - )
5 @2 [& n: E# \2 |3 O - ;; Now we know the location of the first "10" record; it's stored, X3 N! z2 @; i
- ;; in first-10-rec. The first 10 record was already displayed when' ?0 d, b" v$ U+ m/ j. t j, I
- ;; the dialog first came up so let's display the second one when1 Q! i0 S* {. w# q4 w0 X
- ;; the user presses the "next" button (the first time through). q' S, y4 `1 a2 Q7 m; i
- ;;9 F4 @0 q M' {
- (setq temprec (nth cur-10-rec elist))6 }. y. ]; ?! F
- ;;- r5 A0 W, f. c1 J. y8 \
- (if (= (car temprec) 10) ;; if 10 record2 _9 e/ H" q" Y' i+ Y6 p: S
- (progn
( m+ I0 l) x+ | l, [* I - (if (= rational_spl_flag 1) ;; if rational spline2 }, G; q5 m; l: ^6 f u
- (progn
, M# E- V- W2 }; q+ ?0 k - (setq tempweight (nth (+ cur-10-rec 1) elist)). p0 R5 K" r! B$ L
- (setq cur-10-rec (+ 2 cur-10-rec))
- J' \0 v I* d% i - )
, J/ W! }1 ]) S - (progn ;; else" c! p! w9 e2 o2 w% q5 T" @
- (setq cur-10-rec (+ 1 cur-10-rec))* Q7 X) \ n2 J% B/ k8 _
- )
( r8 V8 U% E2 P2 j - ); F) [+ g- Y* S+ q9 _# g' n& u& U
- ) ;; end if rational spline
6 k+ h0 Q0 B; S - (progn ;; else reset counters8 D, y- y9 z% S
- (setq temprec (nth first-10-rec elist)) ;; get 1st 10 rec7 w) f) u; i8 C' e1 L$ c4 l
- (setq tempweight (nth (+ first-10-rec 1) elist))
* @% ^" Z% [) U! X - (setq cntl-pt-indicator 0)
8 r, J, E: l8 @: T# d - (if (= rational_spl_flag 1) ;; if rational
9 _6 x' U b$ b9 p - (setq cur-10-rec (+ first-10-rec 2)) ;; point to 2nd 10 rec+ s) v7 x* \8 l/ x$ v# S
- (setq cur-10-rec (+ first-10-rec 1)) ;; point to 2nd 10 rec9 Z0 K" m( v7 M2 ^; h8 E7 N5 y
- )% J" P) V8 _7 q; ]0 f7 r9 \) b" q
- )
' n0 o; A" U- P) W* a( m - ) ;; end if 10 record
/ _0 b+ q$ \# G
4 i b) H, Z) M9 o4 ?- ;; Display cntl point, weight and ctr. Increment ctr.
, `1 X6 i: X8 P; a' H( u - (setq cntl-pt (cdr temprec))
/ z; h, k! B: [7 ?9 k - (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))9 x$ Q. ~9 m( }4 ~1 _0 r
- (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))1 Y9 B/ ?# N2 }# w. Z- ~
- (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt)))). y% h% e5 m# F
- (setq cntl-pt-indicator (+ 1 cntl-pt-indicator))6 x/ r5 Z) I8 v' `) a
- (set_tile "cntl_ctr" (itoa cntl-pt-indicator))
0 U# O3 R$ d3 K" i- H/ f% K# p/ h - (if (= rational_spl_flag 1) ;; if rational9 O# y# A3 {8 v
- (set_tile "weight" (rtos (cdr tempweight))) ;; disp wght
" R6 f, S$ z% k- b' f, o( B# [& M2 W# i, _ - (mode_tile "weight_text" 1) ;; disable wght: ^. k5 s/ H0 F: Q: s
- )" p& V7 c& T; c. H
- )
6 w, e3 h) w+ O, F - ;;
. A4 b8 T8 S) r& y8 s A8 y! W - ;; All the spline info is contained in a single elist. We must do some% u* w, r6 u3 N0 ~: Z; ^' e
- ;; tricky list processing to loop through the elist in order to display" A( f+ ?7 |) W! o
- ;; all of the user data points.
1 Y( S9 W4 ^5 T6 ] - ;;
: c; T" ^5 P7 V" G2 k; k; } - (defun next_data_pt ()
3 ?# Z5 {* P# F) {, V+ b8 o - (setq elem-no 0) ;; elem-no = element counter
7 i7 |) \; _, W5 t0 l - (if (= first-11-time 1) ;; If first time, find location of first, X0 |4 M0 p8 @( J
- (foreach list_item elist ;; data point element in elist- Q( _$ H8 T" ]5 F
- (progn
, |! ~* i$ E Z' S3 Z9 F$ I - (setq elem-no (+ 1 elem-no))
( T0 F3 F% G( n+ ~ - (if (= (car list_item) 11)
8 f4 x+ _1 B4 J7 y0 g - (progn6 {9 @/ `' x6 E4 k7 D. X/ v
- (if (= first-11-time 1)& ?3 `* q) ]) C. R! E
- (progn4 R, X( ~- _. [9 D% j' P
- (setq first-11-rec (- elem-no 1))
& c7 d6 B& V4 l - (setq cur-11-rec elem-no)8 h; O6 D! Z/ K7 C/ X: L
- (setq first-11-time 0)
5 F, _# ^- M c# J% C4 ~& ? - )
; [8 Q- k- g+ y$ H8 X! Q - )
# J5 B' j1 h1 h. p. q" c! j - )/ t! E. K) H5 F# X
- )" k7 q3 }0 h m$ ^4 m6 `' _
- )
8 h; k$ Y8 u+ ]( ?6 G - )- T' ]2 R( f) d% P7 k
- )( i. z( P* o4 M- c4 o0 D
- (setq temprec (nth cur-11-rec elist))4 B# }- E' U! y& u! d( e% L
- ;; If it's not a DXF "11" element then we've gone past the last+ Z" l+ l' P- s" K8 \
- ;; "11" element. Go back to first "11" element. Reset counters.9 u! {9 S6 [ ]4 ?6 H) D- S- G
- (if (= (car temprec) 11)
5 t! |. D8 G3 W+ H- b$ j$ ~/ K - (setq data-pt (cdr temprec))5 ]" c% Q4 t3 T g" T! ?4 B3 @% @
- (progn ;; else
/ [0 ~# k+ c8 F( A# K - (setq data-pt (cdr (nth first-11-rec elist)))- I2 A9 J6 _ j( G
- (setq cur-11-rec first-11-rec)/ B* D# b$ e- n- F$ u {5 U# c: Z
- (setq data-pt-indicator 0)! _- k1 D3 L6 H# }1 U( T$ q
- )0 n& s R3 u" O7 Z) R k- a
- ). `: o* L6 ]7 [4 ^; f
- ;; Display data point and ctr. Increment counters.
, f- s9 ^: D) e; e - (set_tile "dxtext" (rtos (setq x1 (car data-pt))))5 \: X- Q7 l9 U5 B8 Y4 y/ U! G" O; T
- (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
" a6 r5 p2 ?" Z; ~ - (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))
& |: t1 d6 P( l, D1 }$ L - (setq data-pt-indicator (+ 1 data-pt-indicator))5 E# ^. P8 y$ ^0 }3 n, W' M
- (set_tile "data_ctr" (itoa data-pt-indicator))
% o! c' _- a, @ - (setq cur-11-rec (+ 1 cur-11-rec))
_+ C- a$ u4 n9 x* R' W2 t - )
; R- z( x3 C0 i - ;;
% y _( b0 z% p! h. d( N - ;; Modify SPLINE
( x" I8 B3 G# g1 l: w; t R; H. q* V P - ;;
2 q; H+ Z3 D$ P. l2 a0 p- Z# z - (defun modify_spline ()- p% V8 A/ U. W: u9 L1 d( u
- (modify_prop_geom)
: j; O4 K1 F( ]# K. L" @" W - (entmod elist)
) W1 B4 A1 @! T' N1 @1 ~5 _ - )! |' a6 J; C5 a# K# D
; W+ o& h* r# ~& q+ y2 E: z- (defun ddspline ()
% \6 V1 m5 J- Q& Q) D# Y - (if (not (new_dialog "ddspline" dcl_id)) (exit))" _* u9 p7 p X! n
- (set_tile_props)
* x! H D) d+ k2 Q1 ~+ E7 f4 w - (set_tile_handle)* |. M N1 f4 f, l6 S" e' w8 p
- (set_tile_spline_props)
8 i+ g! ?: n' W9 R4 B: ] - ;; Display first control point
5 o; p( E( u5 H; P4 {/ w - (set_tile_cntl_pt)
, I/ u9 U9 }3 P% z3 f/ K8 q3 |# ^ - ;; Display first data point
4 V/ h# g$ K# L" F. h7 Q. O* y& T - (set_tile_data_pt)1 Z/ ^( ~# a3 V/ W9 Y, A$ M) @
: n: H' j! N7 @: f5 J- ;; Initialize flags to indicate first time through the dialog.5 r) e+ M9 B, B5 } N- i# G8 I
- ;; For control points and user data points the "next" buttons; k2 u$ h: {8 v% p- Y9 c
- ;; in the dialog call the appropriate functions.
4 [# o8 Y) h1 ?' S) _5 ^" |) t1 n - (setq first-10-time 1)
" S( u- h. D3 L: g) R3 T+ y7 ^ - (setq first-11-time 1)4 V4 u+ v+ G0 H- X. K) w' W
- ;; initialize control point number counter. Y2 A2 x2 b! z+ _# v
- (setq cntl-pt-indicator 1). h$ H, V& d6 z- C
- (setq data-pt-indicator 1)
: d1 O8 q, e- w. k& y% b7 u - (set_tile "cntl_ctr" (itoa cntl-pt-indicator))3 i$ ~: P$ [+ `3 m0 O: H7 V! U3 R. Y0 N
- (set_tile "data_ctr" (itoa data-pt-indicator))
4 i8 V/ a2 K: l2 R3 Y. d1 @+ ~ - (set_action_tiles)
5 J( A! L0 S& }& a4 n2 e% z - (setq dialog-state (start_dialog))
+ [3 W0 o6 G: Z2 M$ j9 ^& \! i - , F3 A, v+ T' C
- (if (= dialog-state 0)
3 | m1 U* p6 j% [' T - (reset)
( T5 E G& @7 Z5 t - ), e6 c+ Q2 C$ H% e3 D% {
- (if (= dialog-state 1)
% ~1 N, V. d: Z6 [: {/ _( d - (modify_spline)6 N/ @( T" L6 y0 \$ B5 }9 t2 d( m
- )
1 X4 A8 B) _0 Y _, x: ? - )
; l! D$ D8 n) [ A - - T4 k/ j1 K+ E# `/ [ P' e
- ;;- V* V& ^ b' n3 c4 D! `
- ;; Modify DIMENSION$ |: M0 v' A5 ^0 v$ b; F
- ;;1 d. r, e2 D6 J8 e
- (defun ddimen (/ dtypebit blkname bename sublist a stname n dimtbl
1 `1 J* `9 S( D S8 J - dimsty dimlist dimtext svtext dimovr sv_dvlist stlist
; l3 f: _9 }3 p3 K. N6 J- a$ x - dimtype dimsvcurset)% u2 G- L2 F3 r8 z
- (setq dimtype "DDIMEN"
0 J( m6 a+ X& \0 S- y% d - dimsvcurset (ddimen_dimsty_restore)5 @; ^* I* j: h4 q9 U
- ) Z( h. ?% z$ Y- \% R
- (if (not (new_dialog "ddimen" dcl_id)) (exit))) \3 L/ L* E, D& I3 x
- (set_tile_props)' }8 P% z' p( W1 \2 i
- (set_dimen_props)3 @7 q! l7 e' w. L# ?( h' _' f
- (setq dimtext (cdr (assoc 1 elist)))
0 ~( \7 H$ {% G( W - (set_tile "t_string" (if (= "" dimtext) "<>" dimtext)): r/ J+ [. T/ c8 i1 A$ g. _
- (set_tile_handle)
# }" g- c a1 W% F - ;; Define action for tiles
$ z, A" u& ~) X8 V* a3 ^, R7 ] - (set_action_tiles)9 ~5 J( r* K8 o* c4 t* p4 E
- " g& p. `' f/ Q7 r5 W. g9 \
- ;; Set initial focus to text edit box.: v3 g. A1 H" |. Z8 R% U
- (mode_tile "t_string" 2)
V* k+ e% F% q
9 E9 F$ d: x6 i- (setq dialog-state (start_dialog)): n. B) h1 Q7 G1 ~; b
- (if (= dialog-state 0)
/ j2 g' \$ C! ? - (if (= ddimmt 1)9 t+ A+ B0 W; ^* ^9 q( W* d
- (reset)) P7 R: P }! [" f2 L: X% z2 t7 b3 \. @
- )6 r. e/ `& R1 i, c; p
- )2 @) Q. k2 l% G' Z9 J/ q
- (if (= dialog-state 1); g( O8 U- g: m& `
- (progn0 Z4 M* w; t; S& B$ C9 B
- (if (/= dimsty stname)
- U- l. p: h) \, X; B& I - (progn
`/ k. Z# k, v# k; U" e1 P - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case7 m+ M, O1 Z% z: t
- ; doesn't have it.) M, A1 B0 o' N$ I( h/ F
- (if (null (assoc 3 elist))
3 _% [1 x4 z! u! j - (setq elist (append elist (list (cons 3 dimsty))))
J. X% x3 p. L- F7 d - ; else just replace it.
- x7 w% `4 E0 d* L: T6 j4 u+ S" b - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
0 v: x! D9 U/ P' L - )3 i- K* I& A" f( Z) b
- ; refresh sv_dvlist with new dimstyle.
j2 |4 E' {4 a* {' @0 u e - (setq sv_dvlist (tblsearch "dimstyle" dimsty))0 p! y( v/ ?4 v4 x" M
- )
1 J, y- K2 y9 ~! p7 @ g9 q - )
3 \; X1 i! U) |( ` - (if (not (null dimlist)) ; attempted to change dimvars8 Q( K5 Z+ r; e* |
- (ddimen_complist sv_dvlist dimlist dimtbl)
7 J9 C. J: v, Y" Z/ ] - )
* s+ w2 E/ m7 [/ }. V - ; Modify dimension text
5 Q/ J6 Z1 g9 e+ w - (if (/= dimtext text)1 M& q$ M" U0 N+ S/ N: z
- (progn* c; F3 X! p1 D: q1 ?; w
- (setq dimtext (if (= text "<>") "" text))
! g" f- h3 q( ~. C4 G Z - (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))9 W0 q8 ?0 z& ?# a! b# [
- )
3 `1 J$ m" }! G6 m( b3 k - )
; V [5 N, ^' `* J - (modify_properties): |! _# {0 v$ N! D! i1 G ^
- (entmod elist)9 `/ i# R; Q$ \! l4 V7 E3 t9 g
- )
) o4 i F Z- [' D - )
0 W% C1 h. F! ^) @ - (if (= dialog-state 4)
9 V: T2 r9 q1 [ - (progn7 s" _) [3 t& j7 D3 e: A
- (setq ddimmt 1)
7 i- o' r1 o5 J/ s9 ]5 ` - (if (/= dimsty stname); r6 E$ M6 V: k% N' N
- (progn8 {' B% v) `; t) J5 V
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case. m, F1 M! E5 N0 m, \( l
- ; doesn't have it.2 L: j! W p0 s4 Q) C% C
- (if (null (assoc 3 elist))
! e2 I8 a+ S6 D1 y5 H - (setq elist (append elist (list (cons 3 dimsty))))
% L" n3 g$ H. G% r9 }' C - ; else just replace it.% b: V3 S: T/ F j8 \4 r
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))) ?9 k* H& R- o' }- |8 x
- )0 e4 ?6 {4 ?3 b/ l
- ; refresh sv_dvlist with new dimstyle.
% r1 V% r8 A* X& f. [) V3 c8 [/ S% f2 N - (setq sv_dvlist (tblsearch "dimstyle" dimsty)). o" F2 u0 @+ x3 ?( Q/ @) t/ Q
- )
/ W1 v* d" c2 x* j3 i- i) a# ` - )
6 m2 S0 U7 U( d" N( a3 R - (if (not (null dimlist)) ; attempted to change dimvars
% O: L! l/ A" p - (ddimen_complist sv_dvlist dimlist dimtbl)& V! W t+ ~& b+ {/ C+ ?; ^# ^
- )
$ f. j& {+ S/ q - ; Modify dimension text1 t1 ?0 Q' z I! o& s# t0 h
- (if (/= dimtext text)) z, Z1 O2 }& K% V) G
- (progn& v+ K4 l$ L. @2 X) ~ S, S: c1 b, L
- (setq dimtext (if (= text "<>") "" text))
0 w0 Q7 L0 }8 L: {& y N9 g) |5 s - (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
$ k. h4 N: [7 I& w1 ` - )3 x7 U; y4 A* p2 k1 _6 p/ f2 S# I
- )
6 J2 Y) }# r. `, B% s4 v- n - (modify_properties)
2 b v5 e# d5 N7 d. f - (entmod elist)
, A% k. P7 J! _0 Y7 @3 r+ w1 g0 R) D - (safe_ddedit ename)5 H9 Y6 C" p( r' ^9 {' @# A
- (setq elist (entget ename))
; h4 \% `0 W3 z - (ddimen)8 h5 w& D3 `2 z
- )
) G( p5 z' [# Q- t - ) W' s8 o! x- B7 e/ ?
- (ddimen_setvars dimsvcurset) ; Prepare to exit7 A* U5 I8 h/ W1 a V, f, t
- ) q. Q9 T5 h3 E: L* S. S3 D
- ( \. q( M* n2 X* f
- ;;
9 q9 m) U- Z: o& A7 M - ;; Modify TOLERANCE* i0 d+ s1 d, i
- ;;; N6 r! z1 Y. \: _ f& j \
- (defun ddtolerance (/ a stname n dimtbl C- ]. u; U% ?# K9 r8 T3 n
- dimsty dimlist dimovr sv_dvlist stlist dimtype# t: e: c3 w L* D# f. y
- dimsvcurset)
0 v* x+ g- y2 d) l - (setq dimtype "DDTOLERANCE"8 ]" Y2 s: U! v4 V3 d
- dimsvcurset (ddimen_dimsty_restore)
3 H; m, c# \% l! [( H/ c7 k - )# V+ O, O& m+ E
- (if (not (new_dialog "ddtolerance" dcl_id)) (exit))
. D; I9 R- Y' l5 H - (set_tile_props)- C& }: o# Z# l. N u9 Z
- (set_dimen_props)* h# _" X( D; p5 T- `+ J! g. l
- (set_tile_handle)
1 y! f. u! ]$ f" J# {5 D2 x g7 y: ~ - (set_action_tiles)/ g1 o* y) t" d* m! c3 I( V/ p
- (setq dialog-state (start_dialog))
" z, b2 M# U# r8 p1 G& i - (if (= dialog-state 0)
* C& z6 _) {5 ~! } | - (if (= ddimmt 1)
; Y6 W; e( j8 n - (reset)
$ }& Z6 }, `2 h9 g( i, t - )
F0 L' \# \# J" Y: O9 d8 _) P- y - )
4 l5 D0 m$ S- Z d% ^6 t! ^ - (if (= dialog-state 1)7 Y% ?# U6 |+ ~/ p' D
- (progn+ \' I+ g4 p' x1 z' `
- (if (/= dimsty stname)
! B: d* B4 _3 k* X- G- C - (progn
; J1 w, b4 i2 b1 ] - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
& \. d3 [* d8 N9 C; w* @ - ; doesn't have it.; K' E) j" p) U" k
- (if (null (assoc 3 elist))
: m7 K2 N7 ~9 v - (setq elist (append elist (list (cons 3 dimsty))))
. e1 ]9 H2 H7 A0 \" E - ; else just replace it.
- N. m/ q I# K - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))4 q* Y2 D9 d* E- ^+ b
- )5 o, Y- t4 N8 J V. a( A3 R
- ; refresh sv_dvlist with new dimstyle.
) \: F# S; ^7 i9 | - (setq sv_dvlist (tblsearch "dimstyle" dimsty))6 x' n3 z4 _5 k/ {; Y! F
- )
8 Z K9 p3 d6 F" R# C8 M: b G; Y - )" L( W/ D# Y2 m- i- |
- (if (not (null dimlist)) ; attempted to change dimvars
3 D0 |6 [& f# l) Q/ Y - (ddimen_complist sv_dvlist dimlist dimtbl)/ h: W I9 _! w& c
- )4 X2 W0 k8 s V/ X6 C
- (modify_prop_geom)& L. N$ K' k5 z8 V: U" J4 L
- (entmod elist)
$ d* s8 T- k+ F - ) L. s( B( i" r! |; W. v
- )
& F8 m8 u% e4 e% j! D - (if (= dialog-state 4)
+ I2 d( e/ H" w7 j T; [1 P: j% e; s - (progn* U& I* X. s% t2 R
- (setq ddimmt 1)
1 d9 w0 T5 h ` - (if (/= dimsty stname)5 d+ N \1 p5 Q% ], h2 L0 G$ K
- (progn
1 {- O( g p/ P# X1 c - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case7 G, _. Q. v. H7 \7 [( J
- ; doesn't have it.
# ]9 C) l* i; l# l - (if (null (assoc 3 elist))* L% X2 G ?. w$ e6 K5 x, P
- (setq elist (append elist (list (cons 3 dimsty))))# e3 }" j- U# _3 w7 p2 l/ s1 a
- ; else just replace it.
& E- V; X9 V4 | - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
$ C0 ?2 ]6 R8 E- `, Y- u: A* A- A9 U - ). J+ l2 J% J& g8 a8 d8 d& A
- ; refresh sv_dvlist with new dimstyle.
a9 N( ?6 a: R - (setq sv_dvlist (tblsearch "dimstyle" dimsty))8 e0 a4 C9 b G5 Y- {$ e
- )6 r; ~; T2 i O( ~
- )
% H. `9 z5 ], ?" O6 Z - (if (not (null dimlist)) ; attempted to change dimvars
0 e/ i+ h, q5 d/ Y - (ddimen_complist sv_dvlist dimlist dimtbl)
4 O& Z6 c$ u/ K# M q$ Q9 | - )- _* r5 M9 v) p6 g5 w) P
- (modify_properties)
( W4 _* E# S5 g$ A/ w - (entmod elist)
9 n ^5 i6 n# m5 _/ [+ Q - (safe_ddedit ename)
. o) i* V0 A& d- r2 q- R _ - (setq elist (entget ename))
% w! u, _. q6 h! R: E1 M - (ddtolerance)
+ g. }- n+ f, T" t - )
' E7 f7 c) t& N' e, n - )
" j. B& a8 T" ~) j5 S8 E - (ddimen_setvars dimsvcurset) ; Prepare to exit* X6 x8 ]0 Y# z& C6 `
- )
# H. R0 j, h; u9 B( J: }0 U3 | - ; \0 x) k& ?, T' i/ o9 Y
- ;;2 Y( j$ _( r3 w3 {* G
- ;; ddimen_dlg - jump to ADS ddim module& R, D% v+ ~; U! q5 C
- ;;9 i1 N; d7 U) t% i; ]( p2 l
% ?* H) f: n4 @( Q) Q& A- (defun ddimen_dlg (dimtype tile dimsty dvlist / dimlist)
$ [- j7 B: @* |+ H! Z/ d" B: ?4 v
6 M1 r, _' j( |5 @( n( ~' {- ; Jump to DDIM with overrides if any.+ I' r$ T% U8 \6 |% U/ m; k! }
- (cond ((= tile 11) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Geometry5 q5 N# D* A0 ?
- ((= tile 12) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Format
- J% T2 R' ^5 M1 l& H - ((= tile 13) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Annotation
1 i& D7 |% e0 B% H2 z& _. L - )
; S- b* G# [% V7 @ - )
( W+ q' l' r% c U5 E3 w3 R - & F9 D+ p2 W" e& o/ ?& m+ Y; ~ y8 b
- ;;
1 J6 N8 T& V( C - ;; Dimension variables updated are stored as overrides.
( D+ W- ]0 b: c3 \. E! s# U1 ] - ;;
$ `8 a- ]# n9 F N- C3 T - 9 e r! L, a2 L$ J- @
- (defun ddimen_complist (dimolist dimnlist dimtbl / i odvar ndvar+ ~! Z0 \, A/ m" _
- dv dime commandIssued)
4 K5 b8 `* Q6 C3 ^ - % \3 i% _; R0 _4 h
- ; Here we skip the following first three items:9 @/ G# A! j" P }
- ; (0 . "DIMSTYLE") (2 . sylename) (70 . 0)( x/ J$ }) k7 l9 L/ o
- ;5 y" k) s( l9 Z2 C n# {
- ; The list comparison immediately begins with dimvar.& c, i5 H0 H* H. e1 p$ k) ~+ ~
- ;, r, J* P% z: E* x! @
- ; dimolist - original states of dimvars+ V$ l' V* Z5 H
- ; dimnlist - new dimvar list which is of the resbuf's
; J. q. a- N& ]3 k2 \! c, c! U - ; dime - entity name for the dimension" j& Q1 g! U3 I/ @# _8 ]& F; g
- ; odvar - value of dimvar for the dimolist
- l9 F1 g& m, G - ; ndvar - value of dimvar for the dimnlist; o2 @3 M$ ?+ d0 ^6 X+ W- y
- 9 s7 j1 K4 H, |! {+ b% p5 |
- (setq i 3
' R7 ^" v$ D" H y - dime (cdr (assoc -1 elist))0 F* ^7 {+ f+ S" o
- )
* {% F: G6 q/ R+ j - (while (setq odvar (cdr (nth i dimolist)))! l( X' Q4 U/ o4 y. |1 I
- (progn+ d# G2 Q1 R$ X2 |2 [7 |
- (setq ndvar (cdr (nth i dimnlist)))
& ]" z( m8 x! |# ~4 z - (setq dv (nth i dimtbl))
% |" M4 h* [% b# i - (if (eq dv "dimtxsty")
) X1 ]* [6 G8 E2 s U$ H: A4 Z - (setq odvar (cdr (assoc 2 (entget odvar)))& P2 W( @3 d! W) {6 c
- ndvar (cdr (assoc 2 (entget ndvar)))/ [( s* F: |* k* q/ e) I
- )' O; {2 C) b; ]2 p9 ?! s
- ); J3 e: g# B2 C8 o
- F+ G2 f, O- [/ R$ G- ;* _) B% w/ n2 X4 K; r* m
- ; In order for DIMOVERRRIDE to operate correctly with string
7 n! y' u: @- J: x" p% E- u - ; based dimvars, we must pass "." versus NULL strings.6 @, \, o0 n/ l; o1 z
- ; In this case ndvar is the new dimvar value the user wishes
& \% f) h' m+ e9 [# {# B - ; to update on selected dimensions.$ O+ V, e" F9 S6 H
- ;0 X! N V; G3 o5 Q0 x5 c
- (if (/= ndvar odvar)
5 `! h# n* ~! K - (if (= 'STR (type ndvar))) I6 j: U. i; X! l- v9 e
- (if (= ndvar "")3 c5 n$ e' [1 I i: ?' K
- (setq ndvar "."))))6 z+ N+ F8 A V
- 0 p2 Z2 t' f( {+ F' `
- (if (/= ndvar odvar)4 `, Z0 s* x( u6 o6 j: S* [9 W
- (progn
! h0 c0 T& Q$ K, x - (setq dv (strcat "_" dv))
1 h( H: \& E) k" u! | - ;, Q5 t+ g* `$ J: w& r
- ; Start the dimoverride command- e! D/ I& A* |/ I5 L/ S
- ;
& \5 W0 t/ x' ~/ f - (if (not commandIssued)! H$ ` t, R" j3 q& P# I3 g/ g0 l$ `
- (progn
8 A2 b' \( g0 q - (command "_.dimoverride")
* a+ f t! D( i& u- j - (setq commandIssued "T")
' D* M" z. l2 g; N4 W0 a; U - ). }" U0 C0 _) I# u5 }9 @' O, v# J
- )) T' L: y6 X% d" ]
- ;1 J/ P- u5 j( j) n0 P* A. P
- ; Issue dim overrides0 ^- f' N# |6 r/ Q3 {! S5 C
- ;
3 a' V2 N, ]& A+ i9 `5 ^ - (if (and (or (= dv "_dimclrd") (= dv "_dimclrt") (= dv "_dimclre"))
3 N7 @+ j; N7 m' e - (or (= ndvar 0) (= ndvar 256))
/ x1 R! U) Y7 Q; d0 ` - )
3 b8 J3 j$ l1 d- a$ a) ` - (progn" m, Z2 N4 V T$ k5 t6 r
- (if (= 0 ndvar) (command dv "BYBLOCK")); j/ A" b/ M: V1 E. t+ x2 D
- (if (= 256 ndvar) (command dv "BYLAYER")): Z* Y3 L s$ |/ M4 j) ?
- )
; l0 Q! L6 t$ P! B* O8 Z" Y& k7 n; s - (command dv ndvar)
+ L3 H% b+ M8 l. S9 L; e - ): a' f: |9 n+ ^+ q1 O
- )2 |9 e. J; K6 `& s. M$ E
- )( b6 x4 ]( e& g% O
- (setq i (1+ i))8 p2 t7 {, n M7 D
- )
6 t0 o- G3 M9 r; A. X; I - )3 b" ~. i2 ~5 X" u. S
- ;
7 i/ L8 J( G8 ?2 k# q - ; Select Entity and terminate command" z$ B6 M! @! Y' `
- ;$ E6 f' Q/ z/ I
- (if commandIssued
' P6 q& E5 j7 j x. e* B" L' i% L - (command "" dime "")
* L/ q: i2 c* \, N! ^% y) l - )
3 j1 }% q; }+ H# O, V! @/ m% W: j - )
' \" U# Y) f2 \5 b1 ~5 A - 8 z7 z$ b$ `' ?% O8 m
- ;;
3 r) }$ r8 b& D' } - ;; Get style name currently selected style name.
: z- D/ s1 [4 N9 ~: U- G+ ~- U - ;;4 r8 T" K( \& o' Y+ h
% R4 s: w5 v Z a. A: e4 V- (defun ddimen_style (/ dimsty)
! U* k0 k* E3 b5 d! q3 A - (setq dimsty (nth (atoi (get_tile "mod_style")) stlist)
) B6 e0 t' b* h- `' ~: w - dimlist (ddimen_getdimvars dimsty)' G% S( k' r1 ]7 h& b% q
- )7 v/ {' Y' O1 j. ^6 G
- dimsty J2 e4 {: w( J
- ), v9 H t3 Z8 O+ I1 m2 i# ]; \, c
- 7 a$ O, Y8 f. o$ o8 I! K
- ;;
$ b9 y' f) F T& }5 I& U3 e - ;; Set dimvars# b0 @& O; }! A1 l
- ;;) y( z4 w( t4 N! E* B* b
- (defun ddimen_setvars (dimsvcurset / dv i)" @3 m1 Z: L" T! O7 ]3 K
- (setq dv (cdr (nth 1 dimsvcurset)))9 D% e, V, M# N1 _% d
- (command "_.dimstyle" "" dv)
" r; O5 @4 H \4 E: U; I3 _ - (setq i 3)
7 U/ P1 k$ F: p( f - (while (setq dv (nth i dimsvcurset))
; z6 @4 l2 N6 ~4 U9 q. Q6 i - (progn5 f! x) y' ?( R3 p. g- H
- (setvar (car dv) (cdr dv))
9 g; a2 d8 ~% P% \4 Z1 a* A- \ - (setq i (1+ i))* i9 a5 N1 J8 q0 W# l2 N y& y
- )0 K% R: Z3 r' ]" e* ?
- )
7 v4 H& v% O# s/ U8 M - ), W1 ~/ ]# J M p7 X2 P+ h. Q4 N
- ;;
0 N6 C3 y% w/ d* ?0 M* G - ;; End-of-dimension
) Q3 C, m5 g2 N7 ]2 H) r - ;; ==================; T5 L/ g% K& M% \7 P+ ]4 [: ~
- 6 Z- m `7 p, F ^
- ;;
: |' g# @; ~/ f5 Q T. N% r, k - ;; Sub-dialogues for properties. Common to all object dialogues
4 g1 q2 `4 {, U: ?0 B4 @( g - ;;0 o* A7 \; l$ R0 ?( m5 D- ~5 [" n
- ;; This function pops a dialogue box consisting of a list box,image tile, and1 t5 F$ `& T9 u% i: Y( [0 G
- ;; edit box to allow the user to select or type a color number. It returns
6 r( L. y) R: k - ;; the color number selected.
1 S1 [; D) h' a# a4 N) y - (defun getcolor (/ old-idx colorno cname lay_clr)
% v7 z" M5 x1 Y+ p& n - (if (= (get_tile "error") "")
# D3 p& d+ D, H" p; W& \% d; Z - (progn8 [1 G( [$ w, m* S; X/ D
- ;; Get the color associated with this object's layer, for use
! b5 H8 E$ S$ R( u, ] - ;; in the color swatch if the user selects color BYLAYER.
: h5 j1 c5 {* O8 c4 O - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))1 I5 f: |. l2 _3 b, \
- (if (numberp (setq temp_color (acad_colordlg ecolor T lay_clr)))
% `7 e8 n+ j! S1 G4 O - (progn% k% O1 ^* w% r$ n: {$ ^
- (setq ecolor temp_color)0 d/ b! o4 u% ?& Q
- (setcolor)& f% n$ L7 w. e- x8 Q9 J
- )7 J" H3 O" E1 {8 o7 ~
- (setq testcolor temp_color) g7 L0 h/ O- l& ]
- )) q5 K% _* }" o
- )
0 O P$ X* @ [: h - )
+ s- e$ l2 M4 |5 U8 b - ecolor
y0 r# W1 j) g3 Z - )
5 i" Y2 {5 E5 R. m+ {; { - ;;
0 o7 x/ d. T4 I) z2 }2 R) C - ;; Function to set the color tiles.! w8 T4 C$ w7 l& H+ G( [4 k
- (defun setcolor()
* }! H: x4 s' v4 b5 Q% P2 N - (cond/ ^# q/ Y0 J& O' S
- ((= 0 ecolor)
$ e" I' Q1 B# R9 p& { - (set_tile "t_color" "BYBLOCK")
9 u: B- @6 N! k! A7 A2 E - (col_tile "show_image" 7 nil) ; show BYBLOCK as white: P6 @& R- a3 |% t2 F2 i
- )( R4 g" ]7 y! h4 `5 }9 m. n6 n
- ((= 1 ecolor)
+ L- j8 @9 j' B - (set_tile "t_color" "1 red")& `5 G h( y) f" n
- (col_tile "show_image" 1 nil)2 G, w% B1 G! }' v4 g4 s
- )
! n) o6 ]2 a. c - ((= 2 ecolor), ~- G+ C4 H5 E: V0 A% _! N3 O
- (set_tile "t_color" "2 yellow")0 |4 z6 q% E$ \* x/ @+ x& q1 P
- (col_tile "show_image" 2 nil)
: E( \) j9 R+ n! B+ Q7 h - )! {. X* f* p+ o; ~! S
- ((= 3 ecolor)" o! \1 n+ H: e3 Y
- (set_tile "t_color" "3 green")" f( x5 j) {- z. H o+ N
- (col_tile "show_image" 3 nil)% ], N" s( E. C
- )6 W0 c# k8 s( F
- ((= 4 ecolor)
9 z- G7 M' I/ j' O: m - (set_tile "t_color" "4 cyan")
2 @/ y% [3 v/ p* w, K | - (col_tile "show_image" 4 nil)
$ x0 @1 ~' i* D H - ). T& m) D% G8 ]
- ((= 5 ecolor)
3 r K1 R5 ` K2 F - (set_tile "t_color" "5 blue")
, D! Y# K0 r' o" ~8 d. d8 ^ - (col_tile "show_image" 5 nil)
2 n$ [+ L }' t# i/ o - )
4 ?! ]5 M4 A5 |6 m( A0 f3 C - ((= 6 ecolor)0 |; T# R% H! ^! ~. t7 O- l
- (set_tile "t_color" "6 magenta")9 G6 X/ I7 B! K8 ~
- (col_tile "show_image" 6 nil) {4 B, x$ ?. U7 Z4 D2 e
- )
; n I5 u' _, A. Q6 q3 U - ((= 7 ecolor)5 N! L# A# D5 F
- (set_tile "t_color" "7 white")
6 a" G4 k$ p6 ?7 p' ? - (col_tile "show_image" 7 nil)
* l$ I. B$ S x/ Y0 r: p - )
" e* V8 d$ v$ N8 I+ f5 A9 M - ((= 256 ecolor). \2 F+ B' c# Q
- (set_tile "t_color" "BYLAYER")# U; W* M& N! U
- (col_tile "show_image" (bylayer_col) nil)
+ o2 K6 l$ j& r3 G: z3 R- a - )
- o$ X" x+ q- W6 | - (T
& W5 w! @: ^* Z6 Z* D: P - (set_tile "t_color" (itoa ecolor))
; j( ]6 Y1 B* R# m9 f - (col_tile "show_image" ecolor nil)
# G: d5 @% j8 {: c: v3 l - )+ A4 w! P# p( v% w- m
- )# L& K% G$ B- u8 [8 F! [
- )
- W! G ]3 U! e p - ;;, _; a5 V4 d j- b
- ;; This function pops a dialogue box consisting of a list box, image tile, and, r2 j& _$ I. U9 w. T V
- ;; edit box to allow the user to select or type a linetype. It returns the
5 H/ L! Q! i* r7 M; M - ;; linetype selected.
5 Y' A8 i( I) B; p - ;; T1 D6 d% `* I# U6 h( D
- (defun getltype (/ old-idx ltname)
- P# K3 V1 T0 [3 h - (if (not lt-idx)! h k" _3 h. k6 P7 I
- (progn
% Y' N( D7 @$ z - (make_lt_lists) ; linetype lists - ltnmlst, mdashlist! f: d2 ]+ ]8 `* m o: x5 m
- (cond5 K* F1 i$ E2 M& C {
- ((= eltype "BYLAYER")6 u# j8 [7 J I
- (setq lt-idx (getindex "BYLAYER" ltnmlst)))
8 u9 t; ^3 U6 ] - ((= eltype "BYBLOCK")) O" H5 w8 f6 N) s
- (setq lt-idx (getindex "BYBLOCK" ltnmlst)))' L ]; t$ D6 T' {# O6 P
- (T (setq lt-idx (getindex eltype ltnmlst)))
/ V( _# W* R7 [" V, J - )
@0 [# E7 [6 `$ Y) h+ N5 q" N - )0 \, b0 c* Y! c( z- x
- )
( J, c* G, a7 X m( L$ ^
2 b- q- [( {9 Z, j- L' C- L- (if (= (get_tile "error") "")
! j, i( R' _& K. N6 k8 Q; v5 T$ E - (progn, I4 Y" ^9 E$ G" r, _; M7 p
- (if (not (new_dialog "setltype" dcl_id)) (exit))
- k/ N& t( c7 o6 Z ]# S q - (start_list "list_lt")
. ?0 {- [; y$ W t( G1 o/ S - (mapcar 'add_list ltnmlst) ; initialize list box: J* z2 B. `7 o
- (end_list)8 ^3 ]5 o$ K7 O% F# p
- (setq old-idx lt-idx); b7 \0 F0 I5 T1 l0 j0 _
- (ltlist_act (itoa lt-idx))8 \% d) \9 j) F5 T
9 m, i$ x8 ?) ?/ K6 X! `/ F- (action_tile "list_lt" "(ltlist_act $value)")
- n7 ^4 F3 E' y- N: X1 Y U$ c* e - (action_tile "edit_lt" "(ltedit_act $value)")2 ?! k8 _. F9 E, J
- (action_tile "accept" "(test_ok)")
7 W& D7 F% V$ f6 x - (action_tile "cancel" "(reset_lt)")% N' h6 U2 A$ Q$ U2 f
; ~) i5 R( x; ?- A# A" h6 ~. P3 x- (if (= (start_dialog) 1) ; User pressed OK$ P' s0 R; c. J& a: ]. _ g& T5 R
- (cond
# t% \: ~5 o4 Q% @$ { - ((= lt-idx 0)
! C( a( R/ t0 }7 G, l% e* X - (set_tile "t_ltype" (bylayer_lt))) ]+ R5 U" {. Y
- "BYLAYER"
2 k6 @* ~* H4 I' S7 j: O - )
9 G0 U( N8 H4 X, s9 b8 k: H, z9 [ - ((= lt-idx 1)' g" Q+ R" y7 k' n$ u
- (set_tile "t_ltype" "BYBLOCK")' K! g5 t3 V5 Q! P) D6 b( t" w
- "BYBLOCK"
$ ^* p; `5 J) w, E& ^ - )# H9 k( A2 c% J8 f1 a1 |, e' w
- (T (set_tile "t_ltype" ltname) ltname)
+ R0 D" s3 U/ y - )
7 Y# A/ b- _! x1 T: r2 ?4 Q - eltype
& Q d9 E8 G3 J - )
) G. h4 Z# d0 [0 o: p# b/ ] - )
* y( V0 B* z8 F9 ^5 Y7 L0 s, ~) n - eltype
+ f9 U5 t# t$ \" D% d - )0 T8 ^7 y- a+ Y F; e
- )- S! v7 ~ Q: v
- ;;0 x S1 l' `# d8 i/ M
- ;; Edit box entries end up here: w9 T9 h1 D: t W- n. g
- (defun ltedit_act (ltvalue), C8 l: E7 L2 y5 |
- (setq ltvalue (xstrcase ltvalue))1 n z# {. g1 u" E! A" u- q
- (if (or (= ltvalue "BYLAYER")( u9 R: a0 R0 l- C' U
- (= ltvalue "BY LAYER"))
) ?% U0 E) \3 z: R1 M - (setq ltvalue "BYLAYER")
5 O$ d. k! N( y: k8 [ H# ^ - )% x; o4 |0 g' \% Y( q9 t
- (if (or (= ltvalue "BYBLOCK")
4 {. |4 {6 S; O8 F- {( R - (= ltvalue "BY BLOCK"))
- `* R+ f) l2 t - (setq ltvalue "BYBLOCK")
6 y! _# W3 o1 i, T - )8 g8 H# x$ d4 r% _7 p p( d" J- O
- (if (setq lt-idx (getindex ltvalue ltnmlst))
$ K q. ?) X1 ~* S: m- I% V - (progn# V, Q$ d5 V* z! s, h* z+ q. h
- (set_tile "error" "")6 q5 P1 n0 k, y
- (ltlist_act (itoa lt-idx))* L* M2 f% W5 T; ]0 q- Q1 j
- )
; o& a' ^) y( M$ |5 h5 ^% C$ P - (progn5 ^" m/ P% E" i7 K7 J
- (set_tile "error" "Invalid linetype.")& W. ~2 q8 \2 R5 w4 w
- (setq lt-idx old-idx)
( b8 U7 u& T4 s - ;; (mode_tile "edit_lt" 2)
8 }* i+ m* ^& f( u3 n3 T3 i - ;; (mode_tile "edit_lt" 3)3 j: E! j3 J5 M9 X
- )
: |/ j) A* j% _, b' q( [( }6 C - )
$ Z& a8 T j( |; I4 X$ q* Z - )
) O* _- Z# K" {5 p6 H - ;;
" O7 ^* S* G$ ^+ {- q5 y5 a- M - ;; List selections end up here. Update the list box, edit box, and color" k w8 V, u3 E G# ?
- ;; tile.2 h' B8 _$ }7 W# [
- ;;
" ^- v* W, O$ V: l/ \/ ?8 k - (defun ltlist_act (index / dashdata)
' }6 v- p5 q; x$ p3 B - (set_tile "error" "")
. I2 P7 n1 F4 C% |7 K, q8 E# C - (setq lt-idx (atoi index))* h* ~( _ O% ^; p" E
- (setq ltname (nth lt-idx ltnmlst))
) q9 _" {: M0 w; h$ w - (setq dashdata (nth lt-idx mdashlist)) r' \- Q9 B4 L( w& _) F
- (col_tile "show_image" 0 dashdata)
5 n- ^! h4 f- R, I - (set_tile "list_lt" (itoa lt-idx))
' f8 O# F' N% T* R4 R" Z - (set_tile "edit_lt" ltname)! i8 p* }# O- N0 Q
- )5 `2 ]. d; C8 H5 D; J s% R
- ;;
, K7 a; w7 F" g: C/ u - ;; Reset to original linetype when cancel it selected
' i* ^$ e! ?7 i! J& E - ;;
; b: \" R$ q( Y5 {9 _5 R - (defun reset_lt ()
; D9 e* \' Q; l0 v, n9 P - (setq lt-idx old-idx)
$ e- O# A1 s( o - (done_dialog 0)
; c) f7 B4 _6 @5 ~' \# S - )2 n/ a5 e$ n- O2 y/ }) d
- ;;$ S; t! R6 G8 T+ e/ ]
- ;; This function pops a dialogue box consisting of a list box,image tile, and5 k6 P8 r& Y" d y G
- ;; edit box to allow the user to select or type a layer name. It returns the& M# K9 ^* \0 h0 O3 h* \
- ;; layer name selected. It also has a button to find the status (On, Off,4 ` s1 Q& u0 U0 g6 g/ E
- ;; Frozen, etc.) of any layer selected.
" \ E1 O: Y" L/ n* Q8 r - ;;
: Q; w4 n' D6 | - (defun getlayer (/ old-idx layname on off frozth linetype)
/ a1 s4 S% T' a0 n/ M: e5 q& B - ;; Create layer list the first time the layer% q& y! I1 r8 S, [
- ;; dialogue is called. b" z' N6 ^, O0 Q2 h; \2 q
- (if (not lay-idx)+ Q0 x/ x8 n0 b
- (progn2 A6 ]1 ^" u' i5 e8 Y- T
- (make_lay_lists): r6 Z! S, x$ d o5 l* m2 ]# V
- (setq lay-idx (getindex elayer laynmlst))
# {* }* c3 m2 }+ a - )& C2 }( i9 I, X5 f
- )
2 C; d2 w. @$ g2 `$ L
% u* W- Y2 X2 M7 V% {& U3 e- (if (= (get_tile "error") "")
- y c" k) i' c! k( o) e7 W. N" Q% O - (progn
$ N% V% f1 D; f' q( O4 g1 N$ V - (if (not (new_dialog "setlayer" dcl_id)) (exit))4 ^6 H( J+ _1 m2 L. Z H8 k
- (set_tile "cur_layer" (getvar "clayer"))
% p: @" H5 t! Z9 y - (start_list "list_lay")
T- U6 X6 E) R o( ~; ]7 a% q! _ - (mapcar 'add_list laynmlst) ; initialize list box
8 A6 j9 |7 |4 H1 x$ `9 h2 c - (end_list)0 R3 L- r7 p, W+ J4 n+ d: Z
- (setq old-idx lay-idx)+ S: i! U6 A6 {. B2 I1 _, c
- (laylist_act (itoa lay-idx))/ {/ I9 {5 I! l) s/ x
- (action_tile "list_lay" "(laylist_act $value)")
/ |6 [0 M& M3 b- L. B1 I) W - (action_tile "edit_lay" "(layedit_act $value)")
' U6 p7 w2 j5 O# x0 k - (action_tile "accept" "(test_ok)")
& k* G; W- r3 e- K7 S0 T - (action_tile "cancel" "(reset_lay)")
' z8 J8 I4 W2 i: [5 C8 L9 ^9 j - (if (= (start_dialog) 1) ; User pressed OK' G% a1 r1 i& E. }2 H: L* U
- (progn
% U! L) n4 {: E7 g5 R1 } - (set_tile "t_layer" layname)
4 l$ E* N% g6 ]# F" o - (setq elayer layname)1 x9 h \! j% v; {- x: m/ C9 Y' V6 z
- ;; If layer equals bylayer reset color tile* [$ p" B' K& s! f7 g- K4 m
- (if (= ecolor 256)6 ~- j" k n3 W/ B E1 @: ^+ o
- (col_tile "show_image" (bylayer_col) nil)+ _# k, B Y6 p
- )
$ c: _6 ^% W, t7 o - layname- j$ r$ s5 i) n( p1 p2 ^7 u
- ). f5 P+ B& ^2 Z9 O! k
- elayer' ~+ r. e: @% O1 T4 S0 K) M
- )
& X! c" Y: j& I6 v# d. r - )
1 x) S/ X6 d! F3 [1 h+ W5 F: W' b' S - elayer
# t7 p; M3 e. j( G' F/ f3 Q h9 Q& C - )
0 ? l9 m% J, X6 I! _% j - ); g1 U8 q' ]3 ?4 G4 p& M
- ;;4 q/ A' r3 q9 r' r
- ;; Edit box selections end up here. Convert layer entry to upper case. If
; V) k; G! c; F8 n - ;; layer name is valid, clear error string, call (laylist_act) function.% r1 F1 ^% O j; Q$ P% W
- ;; Else print error message.
- k: G) v3 T# I8 s: \- C - ;;
3 c' z% F6 ^+ j* d2 S. N - (defun layedit_act (layvalue)
B9 a2 i2 F* h _ N6 O - (setq layvalue (xstrcase layvalue))( c- m- ~' f4 k/ g% b
- (if (setq lay-idx (getindex layvalue laynmlst))
2 C/ S _0 V$ m9 H0 @ - (progn
9 h9 X2 @0 A* c1 i% L7 ~- @ - (set_tile "error" "")
# }9 Z c: J9 y5 R - (laylist_act (itoa lay-idx))
( G- N- l' @ w6 ~2 s5 M& x - )
, {" a1 [; K% @ - (progn2 n) A7 ^) O: S& j% ~
- (set_tile "error" "Invalid layer name.")9 x8 M9 P( @+ Z D% s
- ;; (mode_tile "edit_lay" 2)5 l) ?! W+ |/ V
- ;; (mode_tile "edit_lay" 3)
7 Q! Y- a p- G - (setq lay-idx old-idx)8 n1 k; T ]; ~6 x# s6 p X
- )
, G6 M9 S9 I% y4 P - )' i \( P5 S# @! R5 q4 i7 U
- )
& t& Q# S# V- I; d ~8 I' |+ F - ;;3 S+ y9 F: \9 V& r
- ;; List entry selections end up here. r% C, @7 E% H
- ;;
) `' b* v- O& w% Y - (defun laylist_act (index / layinfo color dashdata)
7 B, W# _0 @: P# x; @$ m5 s - ;; Update the list box, edit box, and color tile.! b" j: d: B% _* [3 t5 g
- (set_tile "error" "")
" m# C% h0 X& F" V$ O - (setq lay-idx (atoi index))
5 O/ _9 N0 @/ a- f; g& Y - (setq layname (nth lay-idx laynmlst)), v0 Q Q0 R% J0 o* o+ k; X% Z
- (setq layinfo (tblsearch "layer" layname))$ o5 |! o" W8 S
- (setq color (cdr (assoc 62 layinfo)))
K T4 V/ g4 E# [) m7 q4 e& ?/ U - (setq color (abs color))
2 B$ C) _: j$ I! k; | - (setq colname (colorname color))
! p: J _6 D2 n/ o4 N - (set_tile "list_lay" (itoa lay-idx))
" b& F1 q1 Q2 x+ `; X% ]2 V6 _ - (set_tile "edit_lay" layname)) h. I5 A% \% u" c
- )
; T/ W# Y5 {" a) S1 v- ? - ;;/ q S! c2 R/ y! M. `3 a8 B
- ;; Reset to original layer when cancel is selected.
) h- Y# W/ k. f% l C - ;;
2 l) x+ L+ J8 V k. s - (defun reset_lay ()
) p: v9 n$ X# a - (setq lay-idx old-idx)
$ H" ~& I$ `9 y - (done_dialog 0)! E4 g6 q. L3 l! R: s
- )" D L" c: W) J1 J' x
- ;;
( W, v* o3 b+ P6 H - ;; Checks validity of thickness from edit box.
" m5 r0 x' V& Y) q& [# \ - (defun getthickness (value)
/ q8 H2 Y; {) [$ X* @ - (setq ethickness (verify_d "eb_thickness" value ethickness))
9 o3 L+ [8 d5 s( y8 V( P3 d5 c: g - )$ a) q- U& ^7 f0 k1 r
- ;;1 U" \8 o9 p( m; } c/ T* P( d
- ;; Copy of (getthickness) for ltscale. If more, make this function$ V2 B2 n, u! W( P3 R& x- Z
- ;; generic.
1 y9 E* s( R# b% ]5 ~6 d! { l/ M - (defun getltscale (value)$ ]/ ?) Q* d6 S# z) t/ e
- (setq eltscale (verify_d "eb_ltscale" value eltscale)); y7 x2 c% L" i- r" O1 ]) }# n
- )
' \4 _9 N1 V9 t7 Y) G - ;;
+ p. d2 ^9 @* \. d2 x - ;; This function makes a list called laynmlst which consists of all the layer: P3 _( O5 D/ |; \" p
- ;; names in the drawing. It also creates a list called longlist which% k+ _6 @0 v8 k2 g
- ;; consists of strings which contain the layer name, color, linetype, etc.' O, X8 ~7 x- u, N! |/ U- s; J/ Q4 P. E
- ;; Longlist is later mapped into the layer listbox. Both are ordered the
" A k5 e" Q, M' ~2 ^ - ;; same.
* X; `# x: e" z) x - ;;! d; h- A) [( I4 u
- (defun make_lay_lists (/ layname sortlist name templist layer_number)! k3 ^5 M7 y: d. w0 R9 D+ X# b
- (setq sortlist nil)
7 h: G2 R5 Y) L, t* G - (setq templist (tblnext "LAYER" T))
& P9 s# _: v. F4 {9 R - (setq layer_number 1)
/ [# l6 e8 G, V" ^ - (while templist
. ~* \- j8 u5 O - ;; No xref dependent layers, please.
7 B/ U1 N6 F3 d- K% E0 o* | - (if (/= (logand 16 (cdr (assoc 70 templist))) 16)9 c) K# f" o5 ~* t% M3 r
- (progn n6 ]3 T) D* d8 A6 |) s
- (setq name (cdr (assoc 2 templist)))
2 k( S0 |4 t: G4 O' u - (setq sortlist (cons name sortlist))
/ }" D0 m5 a# q# f* @ - )
( K6 o, p5 a; c - )
% m, a- m* T6 u: D6 Y; a8 I: c - ; Get the next layer.% v6 e( M) G1 e+ k3 W
- (setq templist (tblnext "LAYER"))! o3 K' m+ @' L& c# C
- ;; Not dead message...
# F7 C$ }- ~0 p0 V- k2 h - (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))6 g9 K3 @0 }1 w5 V
- (set_tile "error" (strcat "Collecting..." (itoa layer_number)))$ s5 E" x7 I2 C6 u. k3 y7 u! K
- )6 K' j5 E9 W6 T4 U
- (setq layer_number (1+ layer_number))$ K0 {' v' M% f$ f4 Z% n
- )
1 ~7 z( q+ f% O+ x- H7 s4 M2 e' Y - (set_tile "error" "")* R( Y) n$ p; \6 S6 ~- y6 D3 @4 h2 E
- (if (>= (getvar "maxsort") (length sortlist))* k8 k9 f2 d0 }& X
- (progn
5 V V A- G7 I# G/ D9 I8 A* O - (if (> layer_number 50)
) @% a# \$ r2 p/ e! T9 Y - (set_tile "error" "Sorting...")
8 i( d4 x( w# r% M& ]. x. H - ). O/ W: o1 K9 x: [
- (setq sortlist (acad_strlsort sortlist))4 s0 r$ N% X4 l/ c# F! H- R7 k
- )- i3 O1 U m* P* {; y0 ^
- (setq sortlist (reverse sortlist))
3 M. [1 W8 I: s0 ]3 {+ A - )5 h- p. A* y3 X% _" d6 {6 \5 b
- (set_tile "error" "")2 b( p. ?5 _8 Z3 q
- (setq laynmlst sortlist)
! j0 m( P5 E0 W0 o4 M$ k; |. q2 ] - )$ K1 l$ {3 B& [( ]
- ;;% p0 D: I) D7 f6 ~- a3 }/ D
- ;; This function makes 2 list - ltnmlst & mdashlist.
+ v6 i' ^; ]% @5 t# _1 s - ;; Ltnmlst is a list of linetype names read from the symbol table. Mdashlist
) h" E- H) l' g) _5 ^, `1 D/ X - ;; is list consisting of lists which define the linetype pattern - numbers2 ?6 U6 B+ X! s0 S
- ;; that indicate dots, dashes, and spaces taken from group code 49. The list
* o6 ]! n, ~* l' d - ;; corresponds to the order of names in ltnmlst.0 n' a4 Z% @' T/ Q: N
- ;;3 F) E9 V& ~6 O. r
- (defun make_lt_lists (/ ltlist ltname)
4 {% c$ R$ D3 z/ b6 o5 n8 P - (setq mdashlist nil)
( a6 w) ?3 d3 ]) x0 } - (setq sortlist nil)$ u0 a6 D: A4 ?0 h/ X, }# E7 f/ m
- (setq ltype_number 1)1 u$ }( Y$ K: u4 p
- (setq ltlist (tblnext "LTYPE" T)), j& f# x" A8 A
- ;;(setq ltname (cdr (assoc 2 ltlist))), G {; E6 ?8 P2 a9 t/ S
- ;;(setq ltnmlst (list ltname))% ^3 g/ U+ v# r7 Y+ [# U
- (while ltlist
$ U2 c2 w' j8 h - ;; No xref dependent linetypes, please.& T% ]3 i' E8 [9 q! m& F
- (if (/= (logand 16 (cdr (assoc 70 ltlist))) 16)
5 k- p) `% H- B( h - (progn
: \% O& j, H2 \+ K7 a - (setq ltname (cdr (assoc 2 ltlist)))
+ @. I7 e" h6 D+ x% x1 C - (setq sortlist (cons ltname sortlist))2 \! V/ n+ L; V+ ~& a/ M4 L
- )
" Z( ~5 U8 E" i2 ?' o% L7 L* i - )/ K( @4 B( T7 g p
- ;; Get the next linetype.' n# [/ t; o' M/ r5 Q% Y4 v
- (setq ltlist (tblnext "LTYPE"))9 o4 k$ z8 M4 U& L
6 n/ z2 f7 g8 R& S: p- ;; Not dead message...8 b% v! w/ N. ^/ D
- (if (= (/ ltype_number 50.0) (fix (/ ltype_number 50.0)))
1 _' s) E4 p* V0 ~9 l - (set_tile "error" (strcat "Collecting..." (itoa ltype_number)))
5 ]( e7 A2 f! P' G - )- z7 c V% D' J: |" h% [5 b
- (setq ltype_number (1+ ltype_number))
6 u6 F& @: ]) P U) ` K - 2 @0 z( j" c- E/ D$ a
- )
; M( r) A1 k, F7 ~ r0 `
* t( T( z7 J- W' ?9 T- ;; Remove Collecting message. Y. p& R- C& Y* x3 Q
- (set_tile "error" ""): s" l8 }, d$ G/ J- G4 O. S# U! g$ [ @
8 \) r1 u2 h" K8 @- l. \( @- ;; Sort based on maxsort.
" [( p8 }( u4 @ - (if (>= (getvar "maxsort") (length sortlist))# ]) e8 N% t. v( Z; k
- (progn" J6 a% ^+ x/ @/ X; Z7 H
- (if (> ltype_number 50)# \& B, g0 ~% s& ^5 D. v
- (set_tile "error" "Sorting...")0 J% w! U2 U' i$ t2 _! A
- )
2 w+ J1 g t) _! ] - (setq sortlist (acad_strlsort sortlist))
. }9 U1 K: n6 H% H - )/ k+ ?; y, c" S1 F: M
- (setq sortlist (reverse sortlist))& ~! r! V. c! f6 g
- )( F' e8 P2 `% [) {. p9 r4 d: z( j
- (set_tile "error" "")
6 r2 t7 t0 W; x( o - (setq ltnmlst sortlist), b# a2 }# b) t8 o" G
4 F: T+ | ?+ C; c8 A- (foreach ltname ltnmlst2 E. Z+ Y8 I2 C8 q3 i, a
- (setq ltlist (tblsearch "LTYPE" ltname))0 |7 e% A/ e' T$ e# S: S, w
- (if (= ltname "CONTINUOUS")
, Z% k6 G/ T4 R1 b, m' J7 ]5 x& | - (setq mdashlist (append mdashlist (list "CONT")))* m' Q/ a4 x2 U6 c
- (setq mdashlist+ x8 F+ s' M% T* Q
- (append mdashlist (list (add_mdash ltlist)))
v' W3 d! B$ A/ E5 Q - )& T8 C1 R. P4 T: d, E
- )
0 H( k# ]& V; s* L - )# l% v, g2 l/ x
- (setq ltnmlst (cons "BYBLOCK" ltnmlst))5 g9 ]$ b# p+ d/ r* s+ B, R
- (setq mdashlist (cons nil mdashlist))
. h$ o9 s6 c6 I' k, R; x x - (setq ltnmlst (cons "BYLAYER" ltnmlst))" ^% H+ t, s5 Q0 [* k
- (setq mdashlist (cons nil mdashlist))
- m9 D) \ v& U D8 A+ M* { - )
m: ?% i, B6 e/ C- I. \' f - ;;
% g7 P- l. w R5 P' @6 ^9 R$ D - ;; Get all the group code 49 values for a linetype and put them in a list
$ ^- i5 l, y U1 s2 t0 o/ ` - ;; (pen-up, pen-down info).
: P, |- W7 E+ S - ;;
9 ]9 V2 E) K2 I& H - (defun add_mdash (ltlist1 / dashlist assoclist dashsize)
: e: F1 |# f, l+ F( G& R - (setq dashlist nil). b( x% O1 `; y0 o# u
- (while (setq assoclist (car ltlist1))* ?' T1 f5 h% a c( g: V! b
- (if (= (car assoclist) 49)
4 [, v! K. l; z1 A/ D - (progn
; g/ ^/ u$ W9 D - (setq dashsize (cdr assoclist))
, f$ f" A& _% l$ s# [3 n& h - (setq dashlist (cons dashsize dashlist)). u) f( X# T$ D* b% g2 K- c
- )3 p0 P) [; S) a* g
- )' H4 f) M; e9 [4 J6 \! }
- (setq ltlist1 (cdr ltlist1))
# M2 T `8 ^2 ^5 Z5 |! u - )
/ N8 D, ]' z! u. s$ q) h9 y- l4 w4 @) u - (setq dashlist (reverse dashlist))/ m* A7 W2 {7 M8 }* E. O
- )
* `" Q, E( B ~3 N' w - ;;
# T) m$ f8 G' d/ O; H% n - ;; Color a tile, draw linetype, and draw a border around it$ T. e E" n5 O( b0 N: \1 p
- ;;- @: {$ Z2 N% S' [9 U
- (defun col_tile (tile color patlist / x y)
0 M; a/ _: B# t4 ]' {+ l! K - (setq x (dimx_tile tile))
0 a4 G& F: d$ W! o6 d* V - (setq y (dimy_tile tile))
8 g4 B: U3 S5 b& K) S0 f% N. d - (start_image tile)
. y/ x2 h4 p- F7 o* ^6 u( d - (fill_image 0 0 x y color)- l' Z s5 g- i! A6 R& m
- (if (= color 7)
* v1 o/ W _5 w* ~- | - (progn1 w w' C- l0 ]4 l$ W. T
- (if patlist (drawpattern x (/ y 2) patlist 0))& P9 l8 y( W8 F5 h, L! M) b: X# Q
- (tile_rect 0 0 x y 0) J2 @: ~) b1 s3 J: {# H! r6 W
- ): v- `( g+ B& t5 i& p
- (progn# @2 B# M. u9 n- @. R
- (if patlist (drawpattern x (/ y 2) patlist 7))) m8 F- k8 V: O- G" Y
- (tile_rect 0 0 x y 7)" k* C6 a# X2 ~
- )( p% m5 p% J# R
- ) D( ]& G3 r9 R
- (end_image)
8 F. G& M2 d: i: Z" Y& I4 J - )
/ B( F0 z- V' j O% s4 u% Q - ;;
8 B8 z- g: k: b9 G+ }) W3 _2 @9 x - ;; Draw a border around a tile. ]9 [, [. |, d! h4 K x
- ;;7 X" _* g. k% ^1 ~7 W/ ^
- (defun tile_rect (x1 y1 x2 y2 color)3 q0 T; J8 p+ L
- (setq x2 (- x2 1))
# d% c0 E7 J/ w% H x9 F - (setq y2 (- y2 1))' y) V R* _- c% { {/ C
- (vector_image x1 y1 x2 y1 color)
8 m5 R7 g* N- D. S. T2 u - (vector_image x2 y1 x2 y2 color)
1 ~' [) e6 T" y& u1 ] z - (vector_image x2 y2 x1 y2 color): B$ b9 S7 w' W: E+ t9 Y# r! D
- (vector_image x1 y2 x1 y1 color)
/ d+ m, j! [' { - )
0 k7 s8 B% m# | - ;;
$ H* `2 ~" |. s- ^0 Z - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
9 g7 V; a- A- D0 E @4 s: r - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a: u7 a0 J+ O h8 e T/ l$ G
- ;; list of numbers that define the linetype, and color is the color of the
5 r: ]$ a6 Q& M" | - ;; tile.
, {, G) |" O) k) |) p5 b' g - ;;
( s/ M& s, m7 f+ n2 B4 P7 p' p9 { - (defun drawpattern (boxlength y2 pattern color / x1 x2
6 v) ]# V' ]2 {. S7 l - patlist dash)
6 I6 p) ]6 G& ^* |4 X, v; X - (setq x1 0 x2 0)" m0 Q+ F0 N- x9 }% i5 I
- (setq patlist pattern)- C8 c% ~3 t1 E% t' \* w* I4 }; C* J
- (setq fx 30). t0 v6 t( J: z
- (if (= patlist "CONT")7 l8 x7 O& t# D5 ^
- (progn (setq dash boxlength)& {- g! g, c0 C# t4 I+ p/ {/ ^/ X
- (vi)
- }) R7 `3 m. O) x- I8 N' X - (setq x1 boxlength)# X* f3 I$ d2 G6 j9 i4 \: b
- ) ?' O% i1 P% H% T3 r; G0 `
- (foreach dash patlist
, T3 m: f7 m- U- A - (if (> (abs dash) 2.5)2 R5 k$ [% M0 f2 P2 I7 h! v
- (setq fx 2)" j3 ?3 U9 v* }. @3 E
- )
6 K; q ]. O1 B5 I2 | - )
% j, W1 Q0 T. y* A$ Q4 ] - ): i# c' g$ Y% V# X! ^' J4 D
- (while (< x1 boxlength)
& z, o4 W( ^* `, j: V: Z6 d/ E8 W - (if (setq dash (car patlist))3 w, s y: P1 c' ]9 ?+ m) \3 ~3 O2 t7 y
- (progn
% T" Y: G0 K j1 j/ L - (setq dash (fix (* fx dash)))
/ f+ }3 I$ |$ M% K2 a - (cond
d r& O3 P1 Z' m - ((= dash 0) (setq dash 1) (vi))
6 M1 W$ g% e M% i9 ` - ((> dash 0) (vi)), x, A/ v7 S3 u X( W+ c2 }
- (T
D9 P- @5 C) N: q8 d - (if (< (abs dash) 2)% n% q j8 J6 Q( P! R& M! k+ Z
- (setq dash 2)( \5 [# {+ t# O1 l c
- ), F9 `- R( L. Z# ^1 w1 ^
- (setq x2 (+ x2 (abs dash)))
& o! H2 `* k; W+ } - )/ f% y9 F m+ J, @) ^" ]7 ]6 L
- )
9 z1 y U4 n5 t( n1 P - (setq patlist (cdr patlist))' R7 f4 V4 V* m/ ^; I
- (setq x1 x2)0 i3 C) h5 V l1 J, W) K. A6 a
- )8 k' H* m6 o. B) Q0 O3 ~
- (setq patlist pattern)
1 T, ^/ T9 i8 W8 X# B, j1 O- S - )9 }# J" k, [$ m/ u
- ); p. D A4 y3 l" h% z5 E) z! n2 q
- )
* B- W+ s. p6 _ - ;;
7 r( S8 X$ t( j% h2 X - ;; Determain state of xclip
5 A5 D8 U4 r g7 _ - ;; Returns the group 71 value of the spacial filter dictionary., t6 d: [* T" @
- ;; If the entity doesn't have a spacial filter dictionary, this
" m' i* G+ H' ~5 ~9 ]' {9 I - ;; returns 0. If it does it will return 0 or 1 depending on the
# X) T1 x0 I. |- R - ;; current setting of the state of the clipping visibility." X6 n e6 u- v6 Y! Q7 c! p
- ;;5 s4 U' y8 I) c! [9 N; W, g
- (defun xclipon(elist)- x0 A) r* m9 Z5 m
- (setq hasclip T)% U: ] D2 c. A7 V* @1 h
- (if (/= (assoc 360 elist) nil)
/ y( E( X j# Y; v - (progn4 q7 w: l% ], O L$ p F
- (setq tmp (entget(cdr(assoc 360 elist))))/ u% y! d) M" q* M& I2 Q! T
- (if (/= nil (assoc 360 tmp))1 Z3 q3 A. A z1 W
- (progn
; D- M& r7 B* n2 t5 L - (setq tmp (entget(cdr(assoc 360 tmp))))
% [2 n" y6 R, Q6 X1 k- a - (if (/= nil (assoc 360 tmp))
7 L3 z, S1 w0 v/ a - (progn; N7 z: W6 E, [* C8 b- b/ R* y: ]4 `
- (setq tmp (entget(cdr(assoc 360 tmp))))
W( ]9 X2 p! d/ @# } - (if (/= nil (assoc 71 tmp))
/ @+ A4 ?4 u4 u$ j \; x2 k - (cdr(assoc 71 tmp))
$ s: o7 l. d. U( F8 h - (progn
# v) v% ~, R) ^( U - (setq hasclip nil)
3 O/ J# [7 P8 w1 I! A' ~5 v - (eval 0)
" H- e* W( v- n+ u" G. C, i" [ - )/ ]) {& Z9 D" ]* A" d0 f" s
- )
, F& M: J; D; ?5 p2 a9 D - )
7 j2 l! U' }2 g0 S. X8 B. ~ - (progn
3 `( I! m' \. z0 t( E/ I7 S5 o - (setq hasclip nil)' ]! ?: O! o" b$ e! S
- (eval 0)
. F$ ^. C% G( E - )
2 Y2 F$ F& X: ~0 e& | - )
3 }5 X" I- g3 C+ O: L1 B! B - )
. M' D, P+ e/ f5 q$ @7 \ - (progn 8 {1 ]! q/ C. s$ g% L
- (setq hasclip nil)/ |& A9 N7 N' F' {3 t. ~9 @" @
- (eval 0)
6 u5 K$ {' x, d- g) n - )
' r, G) v( p/ X. a - )
- |6 y6 z) w) X9 O! a - )7 P# p8 I8 G2 |$ S4 L6 S3 o- E
- (progn 2 P. F* }% ]3 n" G+ y- m( f
- (setq hasclip nil)% x9 O6 [ r9 s% C5 w1 A6 h4 u7 N
- (eval 0). m$ ^' p2 A# b- `
- )
% m& v& w! P6 }! s" F& n" q8 U - )0 [! y% j5 ?# G9 z- Z3 Q
- )
- g5 R/ [9 [, P7 D - ;;
/ L( Y/ o& A! K - ;; Draw a dash or dot in image tile
/ U. v) F0 {7 I1 H* g* \ - ;;
8 ^. s% y; l% @6 l4 s - (defun vi ()
, N$ W; ^9 p- Q# Q* x c0 I& G; } - (setq x2 (+ x2 dash))4 w) }- g4 ]0 X7 U
- (vector_image x1 y2 x2 y2 color)
/ |9 y4 h, A- A) m# H9 u - )
# Z9 J* h# ?8 Q/ t - ;;
1 t6 r% C( o5 e" ~# V# _ - ;; If an item is a member of the list, then return its index number, else1 J0 | s4 ?* c3 X; _
- ;; return nil.' w x, A2 p, |' |% r I0 J( \
- ;;0 D0 a5 }: Y$ F L* Z
- (defun getindex (item itemlist / m n)
. ?% v! |' P; G- X! s- F! z - (setq n (length itemlist))- W% C ^; ?; i/ h
- (if (> (setq m (length (member item itemlist))) 0)
7 v) d% c) V/ ?9 |7 a5 I - (- n m)
) s; j! t6 ^! @ - nil& \% I0 L9 b3 }- P- R/ y
- )
& V% @4 N) L3 _9 u7 q - )
* {4 R& J& w/ ~" y3 `0 m - ;;
9 g6 h2 g f! N% g) L" F8 K - ;; This function is called if the linetype is set "BYLAYER". It finds the6 f/ R2 z* n7 P+ u" a
- ;; ltype of the layer so it can be displayed beside the linetype button.8 w! ~) P9 w0 D, \: U
- ;;
) y1 Z [: Q l N- e, E" w5 e) n R+ C - (defun bylayer_lt (/ layname layinfo ltype)
# g& D. y; o9 s3 \: l% c, [/ V0 M S - (if lay-idx+ m+ ?0 }5 s) p, N/ P, F
- (progn
% x6 J1 ]7 L, P! _0 J' v$ y - (setq layname (nth lay-idx laynmlst))
0 F J; N( C1 W: p N2 S - (setq layinfo (tblsearch "layer" layname)); O! }4 y2 n7 A) V0 y5 q' y
- (setq ltype (cdr (assoc 6 layinfo)))+ w& K0 z2 Q. q- t
- "BYLAYER"
& {" c. C- ^3 o) Q - )- o2 v( D( N* C, P
- "BYLAYER". j* D' V2 ^: z
- )' i$ M8 b c! q& L7 k9 _3 \
- )
) R( u* z/ K4 V - ;;
* g d/ B: K$ Q - ;; This function is called if the color is set "BYLAYER". It finds the color
4 ~0 f- q# R3 U/ t$ C* G - ;; of the layer so it can be displayed beside the color button.
0 \0 A' {* k% x* E6 Z, g" p# x - ;;
; W& M4 E# _' B! ~% Y2 _$ z# G - (defun bylayer_col (/ layname layinfo color) }! y: Z+ ^4 y
- (setq layinfo (tblsearch "layer" elayer))& b) b0 ?4 b2 j. E1 ]" K
- (setq color (abs (cdr (assoc 62 layinfo))))& {+ l: V4 D7 t9 ^
- )
9 `# X& D+ O4 f7 t. q - ;;6 a, y! S1 W% e- K
- ;; Used to set the color name in layer subdialogue.
2 x: i3 q- g7 N7 Y) r - ;;
2 t; E, a! V% L9 ` P% p5 ^ - (defun colorname (colnum / cn)4 q! Z( X6 }; B: w( D) r+ l
- (setq cn (abs colnum))! c0 w2 r6 I% f+ B. D) L
- (cond ((= cn 1) "red"): ~0 b. v. R* h. C; f6 _4 K
- ((= cn 2) "yellow") F+ [0 ?& M. g" ?; H
- ((= cn 3) "green")
9 \1 x" Z; ?5 m4 P. y$ n - ((= cn 4) "cyan")
0 z/ g3 H+ W3 R4 o: |) B- x - ((= cn 5) "blue")
! K" ?& D/ t4 j. {2 N# d6 u - ((= cn 6) "magenta")0 i1 `9 A, G9 O: O0 N) P8 l4 N- m+ T
- ((= cn 7) "white")
) t1 d! f! r6 l% v' L2 _7 l - (T (itoa cn))+ @, O( g m# D3 \5 b1 j l: K
- )7 N/ S5 w* Z1 v5 Y& w
- )' |! e$ c2 v+ B* e* E7 G
- ;;- J8 C' U! F- S
- ;; If their is no error message, then close the dialogue.! n: V6 i) s5 ?4 @3 P8 o
- ;;
( ^2 S& K' P9 s% E/ X - (defun dismiss_dialog (action)
" Z7 [, T/ Z1 @/ c% k - (if (= action 0)8 |- c1 t) T; Z9 G' d: `- ~
- (done_dialog 0)/ @- w0 q& [" Q$ A8 ]" H1 W! y4 K
- (if (= (get_tile "error") "")8 C5 B5 T9 u+ T/ f, E2 `
- (done_dialog action)2 j' Y8 R9 K0 j& l) b3 h
- ). {4 w, ]% z" W- ?5 ~) P! n/ l
- )6 d# w* j/ k4 e; Q4 _) e
- )+ _0 L E7 }) y$ w
8 g9 p- e& N( C1 S( i0 b- l- (defun test_ok ()5 `. F2 V! [2 F3 \) z8 |0 w/ y
- (if (= (get_tile "error") "")8 _5 g8 [/ [8 T6 r" Y" X" n; V5 D
- (done_dialog 1)
2 r+ |' f3 K/ Y, K - )
1 j! o2 R, {! I) j3 _ - )6 z: _. c& S) X
- ) }' \, h6 _5 x* y
- (defun cancel ()
2 p4 B( N" @$ p/ w& J( D; b2 f( p - (done_dialog 0)
9 e" H$ m& C( e, } - )3 i" X; Y+ Q3 D5 I9 M9 I1 g
- : o) i1 P6 H# Y1 {
- ;;; =======================================================================' L. e8 D9 @) s P
- ;;; SETUP layer and linetype lists for application, and initialize all
9 J8 S3 p) Y4 t& n8 z$ p - ;;; program variables., R$ h7 ^5 m) h5 F3 m+ ?# C. r! z1 @0 V
) w+ B# _/ T. O$ {- m% N6 A8 _- (setq elist (entget ename)1 u, u# m; W/ x
- old-elist elist% n2 l6 r( I2 D
- modlist elist
* m* x4 Z% u- V8 C - etype (strcase (cdr (assoc 0 elist))): A- q, P$ M) ~5 K0 B
- ecolor (cdr (assoc 62 elist))
9 _- L$ g: r% E: t' w - elayer (cdr (assoc 8 elist))2 O0 \5 X" ~6 m. [6 b
- eltscale (cdr (assoc 48 elist))% M0 {8 ]: |$ R4 j
- ethickness (cdr (assoc 39 elist))5 g a8 T% }- S, r' C
- eltype (cdr (assoc 6 elist))/ d" U. D+ d' T4 J5 l0 t0 V* M
- ); b% m4 D, W* D4 u: N8 p+ v
- (if (= (assoc 210 elist) nil)$ M# ~0 p3 B3 a
- (setq extru (list 0.0 0.0 1.0))
& \1 [6 D3 F7 s0 v7 a - (setq extru (cdr (assoc 210 elist)))) E9 Y# w' j) M5 C0 K4 M4 H
- )
* _7 W0 n7 ~7 s$ U0 q' l l
6 p' `: P& x N: ^4 |# D# j4 V- (if (not ecolor) (setq ecolor 256)), q- C0 ~; _6 Q( d: J, \! q& T
- (if (not eltype) (setq eltype "BYLAYER"))
% r) D9 I* ~! e5 `( B. H, z - (if (not ethickness) (setq ethickness 0))! ]) C- F7 o/ @" U( o
- (if (not eltscale) (setq eltscale 1)), N3 n# |# o' U# j4 Q) g
- ) ; end ddmodify_init
( [+ D7 n; l/ J8 P/ O F9 q - & \8 Y6 t6 ]) F0 }8 ]/ G
- ;;; --------------------------------------------------------------------------& D4 g, R2 L4 r# y2 S
- ;;; Function: DDMODIFY_SELECT
M$ j8 D1 Y2 E! N% F - ;;;2 y- ^7 ~6 I* @# B" ~
- ;;; Object aquisition function. L' `0 O: ]' ]" z
- ;;;# F& _6 Y/ p2 f$ b/ V$ S
- ;;; (ddmodify_select)
8 e F: r0 [3 @/ Q* R5 l - ;;;9 Q9 K5 I# ~1 _0 s. ?# d, {% A, `
- ;;; Obtains object to be modified, in one of three ways:6 |* @5 ]. E9 e- R* D
- ;;;
) E. V. b Z5 { - ;;; 1 - Autoselected.
5 y m, ]* m3 a9 `( g" e - ;;; 2 - Prompted for.6 w; {2 [1 a: C6 e+ \) Q7 `
- ;;; 3 - Passed as an argument in a call to (ddmodify <ename> )- G* M! o) R0 h) v* n1 z8 w
- ;;;
: r/ P( k' `, W8 e" ` - ;;; The (ddmodify_select) function also sets the value of the
4 K) u% [# I6 j% g( t3 s+ p& z3 W - ;;; global symbol AI_SELTYPE to one of the above three values to; [0 l [( p4 X5 I
- ;;; indicate the method thru which the object was aquired.
3 ]; y" |9 i0 m - ;;;# p2 I- j/ h' f6 t# ^. S
- ;;; This value can be useful to applications that want to RESTORE
3 w6 Y0 @) `7 g; J* F3 c1 Q3 l - ;;; an object that was autoselected to its previous selected state
~$ B) j7 K* E2 ^7 a- C- a - ;;; when they terminate, although there doesn't appear to be any
6 w( U& y' a, H S5 Y - ;;; way to do this right now. o+ S* o, T& f: Y2 g+ v% o
1 h* r, G! h; @# @ S# z0 Q8 p- (defun ddmodify_select ()
) c0 t$ N& X/ d, v9 ?5 X - (cond
^$ ?; W, m$ ^9 F9 w% e) `6 [ - ( ename ; (ddmodify) was called5 i+ j0 I3 n0 \, }
- (cond ; with an <ename> argument
7 Y/ ^8 r. L- G4 I/ o - ( (entget ename) ; If object is non-deleted
1 C8 f. I5 Q4 T0 M- j- v - (setq ai_seltype 3) ; then return its ename.5 p) I! j5 x4 y9 t; X7 ?
- (ai_return ename))))
1 n2 }- n G/ g; o1 ]" T" J7 o - 7 u8 k0 ~! y% \. p: j; f
- ;; return auto-selected , see ai_utils.lsp
$ i1 U7 P# p# | - ( (ai_autossget1 "\nSelect one object to modify: "))
) v. R# s6 q ]% g; j
' q6 L; v' M: Y o- v& b- (t (princ "\nNothing selected.")# [2 _2 x# ~2 H( Z3 c1 `4 `% X
- (ai_return nil))
4 U) Q6 \8 x( X# F) C - )
! _5 R0 B+ h# c: i+ c, e - )
$ ^# N. [2 y0 ?0 ?2 q% j
" K; G3 i. v) G" N7 m- ;;; ============= Command line interface function =======================% t1 F9 i+ {' X* f% f
- # ?9 i# ~/ Q/ J: ?1 G: @) X3 w
- (defun C:MMO ()% m9 A9 N& x" i, c# E
- (ddmodify nil). N; Y W* |" Y% Z# x
- (princ)6 n4 \ d4 M S$ b9 ]2 G- N
- )
0 y' I- N, d9 v) O/ r+ N9 K
9 U9 L! W; p1 {* p+ _, v# D- ;;; ================== (ddmodify) - Main program ========================; e, |& w# u0 T7 N" G' H8 ^! V
- ;;;
. M" z! N8 E4 y - ;;; (ddmodify <ename> )" ^6 ]& ?+ v5 Z- K
- ;;;) l) }8 f8 Q( ?, j) M* W8 v7 F
- ;;; Main program function, callable as a subroutine.
8 L! S2 v% x7 W: ^( s - ;;;
5 v7 d% _) E% c8 n2 ` - ;;; <ename> = object name of the object to modify.
- ]" ?/ _2 @8 x# P8 W& P - ;;;
+ J) m) ^# Q% c8 [3 `- ?% A+ \. i - ;;; If <ename> is nil, then user is prompted to select
$ m- l: q& j2 N4 j - ;;; the object interactively.
; f( B3 g& r) f* c. T2 o - ;;;0 f1 R" t, t" ?1 q
- ;;; Before (ddmodify) can be called as a subroutine, it must
4 N7 X7 y$ Q) w - ;;; be loaded first. It is up to the calling application to
4 G1 D3 a5 S2 y4 D9 O [5 q( E5 u - ;;; first determine this, and load it if necessary.
& l( g/ }+ J3 p. n+ ^
/ _, q: o# B; [. e v% Z1 e/ P! }
4 s5 J4 p6 p# N# t, h- (defun ddmodify (ename /
/ b% A2 q- y" B- o4 J! Z [+ [( Y - 2ndpt ell_calc_area move_pt1 templist: r/ D+ K2 q8 n+ w4 Z, x ~
- add_mdash ell_tile n tempmod! S; s; c) ?: j
- alipt eltscale name tempst_ang* j* z5 L% v4 K, h$ m
- ang eltype newpoint test_ok% L+ Z1 y3 w" F8 e( ^! `7 U# j4 j0 N
- arc_calc emod next text6 l+ V% K+ o" g4 M( V
- arclen end_ang next_vertex th-value
: L* o2 |, G( r - assoclist endpt obl tile
, t! [! \1 |8 B2 i* U - atprompt errchk off tile_rect" \1 f5 p$ B( w
- attag ethickness old_majrad tilemode& {& a& v _" [7 D7 \; ]: |
- attprompt etype old-closed totang D: N- Y0 \5 k/ M
- bit extru old-closedm tstyle
; y% r4 m/ e! r# d2 ` - bit1 fchk old-closedn u
! c: U c( V; ]) G/ J4 G - bit-10 first-10-rec old-elist undo_init* y7 }8 N F0 [! y: b
- bit-11 first-10-time olderr upsd, _/ N: e! ^7 y
- bit2 first-11-rec old-fit v
u7 c- K. ~" J8 b$ i$ s' ^ - bit3 first-11-time old-idx va M8 a$ U% i3 b: ~8 n
- bit4 fit oldlist value# g/ A- e$ N6 s, h+ q5 Q
- bit70 frozth old-spltype ver_4
6 t# K1 v/ { j0 U$ X - bit-70 f-vis old-u ver_ang1
3 Y$ Y" B7 O% Q9 [' n1 f - bit75 fx old-v ver_ang2 V. ^1 K U5 { C$ c, \) o
- bk-up get_color on ver_col
+ H$ W; v, ~7 q# S D' o' j - bkwd getcolor onoff ver_colsp. R+ s( ]* t& J# w- r
- boxlength getindex on-off ver_eangle$ }, O% f, U' E4 [: e* r- a! x
- bylayer_col getlayer patlist ver_hght; d9 w2 z& u" L! e- S
- bylayer_lt getltype pattern ver_majrad6 I! x6 ?3 A6 [9 G
- calc getthickness pltype ver_obl
+ @6 g. ]3 |5 i2 t" Z% Z+ M6 Q3 F - cancel globals polytype ver_pt1
4 ^3 l# }" |6 @+ e - cir_calc ha pre ver_pt26 z7 Z0 b' K3 g7 ?
- closed ha-prev proplist ver_pt3
$ n* b9 J' b. I- x, \ - closedm help_entry pt ver_pt4" |( K8 Q# Q) f' i
- closedn hght pt1 ver_rad
6 D. d: ^) o) i: D* p( e - cmd icvp pt1_eq_pt2 ver_rot
# ?1 } r+ Y( w$ W4 g+ r" D - cn image_add_vector pt2 ver_row# }+ X5 W0 l6 \9 h
- cname image_clean_variables pt3 ver_rowsp
9 v; Q8 k3 n3 h1 ]- S - cntl-pt-indicator image_cross_product pt4 ver_tag% \2 m* g% A1 o5 M# i6 ?
- code_71 image_disp_opt ptype ver_u
: t7 b3 ~* m' X! e( @! } - col_tile image_dot_product radius ver_v5 ]8 y, @7 s% B9 ?/ O
- col-idx image_normalize_vector rational_spl_flag ver_wid& V0 Y& n5 h9 e+ u( b) G
- colname image_rotate_vector reset ver_x1
2 w, I+ m, t! F" O& } - colnmlst image_scale reset_flag ver_x2. b2 h4 E0 x' W) ^2 C
- colnolst image_scale_vector reset_lay ver_x36 V9 ]5 v/ c u! `6 H
- colnum image_update reset_lt ver_x4
% _ g9 i* ^6 M6 o6 I; A - color index reset_uv ver_xline_pt1# w% Q0 C# _! r# K& B, s& X
- colorname inv rot ver_xline_pt2 V0 Q7 O6 @% P
- colorno item rows ver_xline_x10 d; E# d& |. L1 M* D5 p
- col-sp item1 row-sp ver_xline_x27 V' N0 J; H7 F$ j: P- d
- columns item2 rrat ver_xline_y14 }! _0 P b6 B+ m* i# G
- con itemlist s ver_xline_y28 V6 O0 A1 u' `4 |. x7 [: s% ~
- coord jlist set_action_tiles ver_xline_z1& q0 \& ?5 u8 ~
- ctr jlist_act set_just_idx ver_xline_z2
, R ]' D5 L) T/ \- y# S s& o0 B% M - cur-10-rec just-idx set_tile_bk-up ver_xscl
& o6 B! B$ r9 }9 G/ @ - cur-11-rec layedit_act set_tile_cntl_pt ver_y14 s, i) A$ b y' \* e2 K2 F) u
- cvpname lay-idx set_tile_data_pt ver_y29 O% @* O( `3 n. l
- dash layinfo set_tile_dirv ver_y3/ V0 B* U2 q" j4 d; N
- dashdata laylist set_tile_edges ver_y4% R, }2 [6 i4 k- n1 w# F7 l
- dashlist laylist_act set_tile_endang ver_yscl4 p) Q9 A1 c( `9 j6 j" \6 ]" P# w
- dashsize layname set_tile_hght ver_z1( k8 I8 k9 c: t
- data-pt-indicator laynmlst set_tile_icvp ver_z2" f* H4 T5 E2 B* @, t
- dcl_id layvalue set_tile_just ver_z3
5 x* S7 P, t, d$ B$ r- o5 `5 y* r) L - dd3dface line_calc set_tile_obl ver_zscl
! b6 |9 Y% P. \! C& L! s - dd3dsolid linetype set_tile_prompt verify_a
F8 I! g6 T8 B, Q1 E - ddarc list1 set_tile_props verify_d
* ^; M$ e7 U" M/ W3 i3 ~ - ddblock longlist set_tile_pt1 verify_i9 R' P* O* \& [- n3 \( `, a
- ddbody ltabstr set_tile_pt2 verify_xline
7 ?6 t" e6 [" w$ V. A% R) Z; Y4 k$ y - ddcircle ltedit_act set_tile_pt3 vfy
i' U4 [& F0 c: J7 a3 C; N - ddellipse ltidx set_tile_pt4 vi
" I, H! o% O+ P4 X. t3 U- m" i2 S - ddgetprompt lt-idx set_tile_rad vlist8 t9 k+ |( {+ p1 |2 ~; Q7 P" w
- ddgettext ltlist set_tile_rc vname/ _4 M7 t! [# |; z6 a" j
- ddimage ltlist_act set_tile_rot vpf$ ~- S. V" F4 [$ E4 [ x
- ddimen ltlist1 set_tile_scale vpid
1 l- ^7 B) m/ v6 b% a( i - ddleader ltname set_tile_spline_props vpldata. V! A+ e4 p- x: T8 d9 r! t
- ddline ltnmlst set_tile_stang vpn6 z8 K7 m. f" s' X0 E
- ddlist ltvalue set_tile_style vpt+ h9 g4 w9 p3 C0 X) [$ ^: I
- ddmline ltype set_tile_tag which_tiles: Q+ U- H/ j% ^& P/ {
- ddmodify_err m set_tile_text wid
5 V3 M; b6 X8 c, D$ T) X5 E - ddmtext majrad set_tile_vpt x+ z$ ]3 E3 K$ m0 E6 T
- ddpline make_lay_lists set_tile_wid x1
7 a# k: S B: w- g" m - ddpoint make_lt_lists set_tile_xline_pt1 x2
. S, T, E0 n+ l/ {* s: K- r - ddray mdashlist set_tile_xline_pt2 x3
! _8 {4 a0 |4 C/ ?; D4 G+ Y% L - ddregion minrad setcolor x48 q3 m; s3 }$ v/ u( J
- ddshape modify_3dface shght xdlist
( o# L s! }, \- y' ] - ddsolid modify_3dsolid showpt xline_pt1
( I% o! G- z1 W3 L - ddspline modify_arc size xline_pt2
9 h1 z7 ?7 A8 w+ i$ X7 g! w2 b, M8 B - ddtext modify_block slist xline_x18 Z1 Y3 G$ V! O
- ddvport modify_body sname xline_x2- z2 V! j! c7 Z0 @
- ddxline modify_circle sortlist xline_y15 M8 Q: }1 r. T5 ^
- denom modify_ellipse spltype xline_y2- {4 ]5 U$ B% I' \; i/ B
- dialog-state modify_image ss xline_z18 J- o) `% y% T2 R* g
- dir_pt modify_line st_ang xline_z2
8 e7 q4 K9 P/ ~6 _9 D - dir_ptx modify_mline stpt xscale/ c% j/ n5 }) O4 E8 k$ }0 M4 M) ]* @3 S
- dir_pty modify_mtext style_act xx% L& g2 ?6 _2 P h+ \3 _8 `
- dir_ptz modify_point style-idx y
" G' W. U. x' B K7 H0 P ? - dismiss_dialog modify_polyline style-list y1! z# G9 D3 H. W' `: O M
- drawpattern modify_prop_geom tagval y2
8 G O& v0 w, n9 n7 d3 R - echo modify_properties temp y3& d$ E3 k8 z- X% Y
- ecolor modify_ray temp_color y4& Y3 c- P3 I6 t( B
- edge1 modify_region temp_dir_x yscale
! R: A7 R9 R% R$ n. A) W& r& O2 W' h - edge2 modify_shape temp_dir_y yy, l" n5 d* h% U. D6 i5 X
- edge3 modify_solid temp_dir_z z1% \8 k; I! S: `& t8 A: O
- edge4 modify_spline temp_xline_pt1 z2- b4 p& [4 r S) n& i4 P8 J
- edgetest modify_text temp_xline_x1 z3
: B/ S: `" G* G1 `- N# J - elayer modify_vport temp_xline_y1 z4
]1 f- T. _# h' @7 c; E - elist modify_xline temp_xline_z1 zscale
2 V9 Y* P0 S2 K8 r c) C0 G - ell_calc modlist tempend_eang zz
. I$ n0 }. f3 T1 o N2 \- @' P - dir-idx safe_ddedit ver_MtextWidth xcliponoff5 N5 S' d. j8 x* v% x6 Z
- MText_style
) Z ~: Y2 x9 u9 D - )
; J! ?% _0 S1 w- q. ^! s$ w - ; Q% ?7 i7 W9 @; l$ W; v& Z
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
0 m4 K! s" D7 y8 [" w; s9 b - old_error *error* ; save current error function
! S' U+ N/ H% n# _% S* f - *error* ai_error ; new error function
, u' X0 X; V$ c# s) v v8 ? - ) y: L# R/ n% n* J; F# o
- 0 ^& O: Q- X5 W4 p' q3 t; X
- (setq old_pickstyle (getvar "PICKSTYLE")) ; save old pickstyle/ F' G# x5 X6 F! q) D: n& V- D* f
- (setq new_pickstyle (logand old_pickstyle (~ 1))) ; turn off group selection5 E0 A# k: d# E1 t8 H U
- (setvar "pickstyle" new_pickstyle) ; bit and set to new value7 N0 n1 A" H3 f, Q3 k
! S& c6 T* c4 }7 f- (setvar "cmdecho" (cond ( (or (not *debug*) (zerop *debug*)) 0)4 E/ N' x7 x. T; a
- (t 1)))
* R! v9 |3 u% i6 i& q - (cond
/ J9 [- d4 B6 L - ( (not (ai_notrans))) ; Not transparent?
0 o9 z/ `8 A" F( i - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?2 {# V. x/ N. k
- ( (not (setq dcl_id (ai_dcl "ddmodify")))) ; is .DLG file loaded?
# \9 v9 [4 L) d3 v. C - ( (not (setq ename (ddmodify_select)))) ; object to modify?0 b, j8 C$ q0 ~; u
- 3 D& d7 e/ T0 Z C9 F# a
- (t (ai_undo_push)) U5 p3 _- a$ N) |6 L; E0 Z
- (ddmodify_init) ; everything okay, proceed.
" H" U7 R& F# \ - (cond. W" O2 a" w/ K4 S. m
- ((= etype "LEADER")
# s+ R0 t. t0 O1 B+ N( T5 W5 w - (setq help_entry "modify_Leader_dialog") L# `) ?' E0 A+ u
- (ddleader)4 [1 v6 l# Q- r
- )% ~9 @- J! Y x
- ((= etype "ARC")4 I/ X0 m& x' p; N1 T. r
- (setq help_entry "modify_Arc_dialog")
- o3 x8 y+ o# k% W - (ddarc)
4 j; l, [$ ~1 N+ a: N# h - )
: G. L( _7 Q- [3 ]* F& C7 L; \ - ((= etype "ATTDEF")
; O5 V) b( ~ w$ F - (setq help_entry "modify_Attribute_Definition_dialog")
, _- f# X( L s" p6 \* @6 p - (ddtext). F" N8 A {9 K3 V& l! F* b
- )/ V3 M& @/ b8 A# k
- ((= etype "CIRCLE")
# c4 E5 N. |! r0 k t0 x1 ? - (setq help_entry "modify_Circle_dialog")
) \* {, T5 T: h0 d- k# G* k& s - (ddcircle)
B( e* q @' S- @" V7 o - )
$ |5 x" ^) u$ a9 d$ A4 ]1 E0 a: C. H' d- J- I - ((= etype "ELLIPSE"): M6 C q, e' g; A! x6 E: v9 g6 G' v
- (setq help_entry "modify_Ellipse_dialog")- v# ]2 s/ L2 }! {
- (ddellipse)
4 _: L4 x3 l1 ]3 O - )! b. J, f+ j6 U, ]
- ((= etype "3DSOLID")
, v0 j; C1 I: j- r5 r1 k. ~ - (setq help_entry "modify_3d_Solid_dialog")
2 b: y, V8 y' z9 R4 G1 d# _ - (dd3dsolid)
; H' {( ^& X' y- b8 g - )$ _5 s- J" z0 |# K. _* B" f
- ((= etype "BODY")
; k7 Q5 q4 |8 N2 x/ w& e - (setq help_entry "modify_Body_dialog")
$ d4 Q# i8 v) L5 @$ B - (ddbody)/ r& a+ z; L+ }
- )
- i" ~& P1 F) { - ((= etype "REGION")
- m0 R$ N% f$ ]2 q6 R- ? - (setq help_entry "modify_Region_dialog")6 P9 `4 @+ n% G6 R$ F, I W
- (ddregion) A6 u/ L5 u+ X4 R% x
- )
- T. K$ M# p; N- o# Q3 e- V - ((= etype "HATCH")7 o v: P* ~5 Z7 r) c* U
- (setq help_entry "modify_Hatch_dialog")
& f2 [& ~! `: U9 U$ z# D - (ddnewhatch)9 o) H! x0 F" H& ^
- )
* D# Z8 t- b! n& [. S' o4 Q- D - ((= etype "SPLINE"), Z$ Z! C4 ~9 {- I7 r+ j$ s l
- (setq help_entry "modify_Spline_dialog")
9 q8 p. f- o5 b( _ - (ddspline)
$ J0 C7 h [7 w% w& Q - )
8 l7 T5 Q4 x$ I) C/ E K, r - ((= etype "INSERT") ; see ddblock for help_entry" \) N- d, i( B5 n( X: H
- (ddblock)
! B9 m* F( p- l0 S - )
' S t- a6 Z' j& D$ V9 h* Z0 E3 e - ((= etype "LINE")
3 R1 @+ \6 r2 B, e - (setq help_entry "modify_Line_dialog")
$ ~& l0 R& ^9 M8 u4 ^$ V - (ddline)
7 L. }) {# C2 L4 k2 X8 R2 B: O - )1 y7 E d8 }1 ~* s; Z3 @
- ((= etype "MLINE")
; Q$ D/ B2 _* m - (setq help_entry "modify_multiLine_dialog")5 o0 h4 ?5 e$ k
- (ddmline)) N8 B R j0 A% w# V
- )2 X4 u: h0 m4 |$ t3 I9 t
- ((= etype "RAY")
5 v6 h8 }) d1 } - (setq help_entry "modify_Ray_dialog")5 |$ [# l- m7 x
- (ddxline)- l2 O0 m' H! X8 j: f: B' P
- )
, ~- X2 `1 ]( J# j9 o2 P3 G - ((= etype "XLINE")- ^! o5 h0 O: a; R
- (setq help_entry "modify_Xline_dialog")
: i+ c/ s" h7 O1 O# E( L - (ddxline)& A5 z, _1 C$ k+ B- K
- )
" b# _1 {7 r- H/ y( u6 g - ((= etype "POINT"): Y- }0 F% H2 I) I) Q
- (setq help_entry "modify_Point_dialog")7 {, X" o9 H. Z$ h- Y
- (ddpoint)
9 g! t3 X/ [, L1 `' u% D. u6 W1 d; l4 C - )
' G& j8 g! S: c6 M% l' W - ((or (= etype "POLYLINE") (= etype "LWPOLYLINE"))
3 Y- C+ T( {% Z- H- K+ v - (setq help_entry "modify_Polyline_dialog"): \, Z/ }/ K, X4 t- @) x5 }/ w
- ;; If a 2D pline, check to see if it is planar to the current5 z# T! n1 M. E$ Z C t/ Y/ z
- ;; UCS, reject if not. To see if the pline is parallel,
! ^* m# F/ [3 I) I, P [% ? - ;; the 210 group (WCS) is added to the current UCS origin (WCS)
' f! h3 I5 O7 x1 B+ ` - ;; and then converted to the current UCS and checked to see if
) B8 J/ v$ o5 H o9 _ - ;; it is equal to (0,0,1).
( f+ T# R: |/ \; I/ q - 4 n u; K- E( d( c+ t2 b
- ;; Incase the 210 is default and not in the dxf list.
7 [* _3 Y$ r3 H6 O - (if (= (assoc 210 (entget ename)) nil)
. S" d% G5 d2 m( J. k* J; d - (ddpline)1 \) H# z: p' W: x, {( G, [: a
- (progn8 I; E3 v8 R) q1 l# _+ M8 M
- (if (and (zerop (logand 120 (cdr (assoc 70 (entget ename)))))/ Q! K2 L R7 Y! {( ?
- (not (equal '(0.0 0.0 1.0)# s* l5 v: q' ?. g3 W
- (trans (mapcar '+, x5 O# [; Z2 W: G& L5 T7 H/ e
- (cdr (assoc 210 (entget ename)))" i* u5 Y/ n' X5 |4 _' n. `& V
- (trans '(0.0 0.0 0.0) 1 0)
+ M2 x+ h3 r( u) `; K - )2 |8 `6 j- V: W- g, [
- 0 1 n/ V5 x' B0 L$ A2 p- C8 m7 U( d
- )
" ], A2 Q. L' c& u5 F- W8 K( B - 0.0000000001 ; fuzz* Q0 I3 ~( `( Z" R; W4 T a
- )) _' Y0 K) p$ p1 ~( T* S
- ). I( a& B* F" K* @' @: I$ Y) a
- )% A* e l# `4 t6 j3 O4 B1 J5 g
- (princ "\nThe 2D Polyline is not parallel to the current UCS.")! L7 S: v, d3 x D# p n
- (ddpline)9 ^& a$ J$ n; X- m U
- )
+ t9 O8 _8 a+ ]( j' S# `2 Z/ i' K - )
( u; @. a0 V" c8 v. i4 T% v - )
' T. ^2 a) b" T - )
) ]$ P* k& C( i* e) A; G0 s# B
0 g& X/ w' K# F: j- ((= etype "SHAPE")0 Y- k0 g1 R. Z4 ?, a! _6 F2 o
- (setq help_entry "modify_Shape_dialog")( L: H+ [: f8 F
- (ddshape)
0 g! f9 q- G' {5 S9 [( G - )! @' ~6 H z% h/ n( g
- ((= etype "SOLID")3 ]5 J1 M4 B; c3 r# A) v
- (setq help_entry "modify_Solid_dialog")( R2 I7 B q. f. Y( f, ` L9 N
- (ddsolid)2 [: {0 O) l2 b8 }* A: `
- )1 V8 d0 w: a' z2 X. O, U
- ((= etype "TEXT"), S" z" \& r# i+ ` x. b/ R6 c( E
- (setq help_entry "modify_Text_dialog")
& |1 j' j; B2 I5 @! ~: D - (ddtext)$ z9 u$ F! H5 P+ N' C6 S. c# X3 Q1 {
- )
0 _/ }& L+ C; p. m3 K - ((= etype "MTEXT")! S3 ~- R' J$ N) _7 r$ k
- (setq help_entry "modify_MText_dialog")
# ]5 V; {% M0 d! G - (ddmtext)! ^& B$ K" M: Y5 s9 C
- )
2 Q) I1 @# l. k5 z - ((= etype "TRACE")
- U J3 W: ?1 S - (setq help_entry "modify_Trace_dialog")( T0 b" y. c8 U5 r2 e+ M
- (ddsolid)' Y1 I1 A3 q9 Y& I8 p n* w$ G1 K& ]' D
- )* {1 b7 L8 J; K0 p/ t) T# \
- ((= etype "VIEWPORT")
1 D- R/ k% r4 {* m - (setq help_entry "modify_Viewport_dialog")% ~. |9 [! d+ R4 Z6 r
- (ddvport)9 j3 w: _4 ^6 u; e! S. w
- )
% f& {) f Z- V' c, ~ - ((= etype "IMAGE")
0 E0 E, A/ R0 G- x - (setq help_entry "modify_Image_dialog")
; @: e6 S3 Q& e4 F i - (ddimage)
; v* \* C5 _& a. @( q0 A) G - )
* f4 d/ Z$ e: |2 X - ((= etype "3DFACE")2 [. O" h- e J9 S- C( R
- (setq help_entry "modify_3D_Face_dialog")
# g, S" n/ e3 K& d$ E - (dd3dface)
. v, \$ M" H5 s" D: _ - )+ t3 T+ [9 x+ o) |; A
- ((= etype "DIMENSION")
# D( U) H; O/ K9 S8 h, i - (setq help_entry "modify_Dimension_dialog")2 s i7 g. N: a9 y
- (ddimen)
9 L* ~2 Z$ E* x1 M2 y# H - )
; K6 k& Q3 F! s) V. Z - ((= etype "TOLERANCE"): J' `5 }, Y8 Y4 [7 B, L3 O
- (setq help_entry "modify_Tolerance_dialog")
9 U; N: c* N8 S' |2 m- W - (ddtolerance)
8 f$ o+ s* J7 _1 Q$ M) T - )' r6 o) p/ e; C8 c+ ~3 y
- ;; Fall-through condition changed by MCAD for MDT 1.1 release./ ~6 r0 w# C. N- }' R* X
- ;; This allows DDMODIFY to work on any custom object or any new object type- P% H, t% Q' } J. p
- ;; that isn't specifically handled above by calling the more generic DDCHPROP.& i8 ^8 ~ H; m0 h' q+ X8 K
- (t/ c8 C. k1 U* I6 C. E$ b
- (if (and (not ddchprop) (not (load "ddchprop" nil)))3 p2 K1 D* f0 y3 O# Q/ t
- (princ (strcat "No dialog support for object type: " etype ".")))
. i$ \- R; I E2 v - (progn u8 j' K& F- ]: a6 f
- (setq tempss (ssadd ename))
* z% ~2 W5 D: I; o. u - (ddchprop tempss)6 C; N! e/ q9 S2 [
- (setq tempss nil)4 c! k. ~: C' |9 y0 \9 B
- )
' }' D' Y3 ?7 ?9 b( m$ F5 l - )
. _0 w* S& ?, @. ^9 C - )7 h' x. }# s4 A/ e) f/ G- U. n. G+ ?
- ;; Previous fall-through condition.
) [' x5 }' ]( ^: @, C: e - ;; (t (princ (strcat "No dialog support for object type: "
, k" v4 d" v$ a: |; s - ;; etype "."4 f' u( y. z h" L* }
- ;; )2 I$ J3 c3 T& Z& n5 ^
- ;; )
4 k! ?1 h* |% B$ F2 M! Y& e, g# ~ - ;; )- y6 Z% o- Z7 ]5 c
- ;; )
, `3 e( a" l8 w1 n" ? - (ai_undo_pop)( Q3 ?& h% m) ?+ X9 k* @. M
- )5 H4 h% Y3 _0 h; k( p/ |) D
- )% C2 Q6 }, K4 t! M& t
% Z& I6 s* i( `& h' H4 D2 s5 U- (if (eq new_pickstyle (getvar "PICKSTYLE")) ; if user didn't change pickstyle
. C9 X n4 |5 J( f _& L1 O - (setvar "PICKSTYLE" old_pickstyle) ; transparently then set it back* {2 s( N& m4 f' {! K
- ) ; to what we started with- k, C/ k4 L0 W4 c; l: I% K
+ M9 r+ W& c% R' p0 j; g- (setq *error* old_error)/ {5 ~! J# ^6 V+ s6 w! Y4 |
- (setvar "cmdecho" old_cmd)
3 Y8 K A7 a- r; K/ h - (if (not reset_flag) ; if object was modified, then; s @2 p$ W) V+ z: D) P' }
- (ai_return ename) ; return it's ename to caller
: p; z; i" r* x2 b( B% o5 F - )
1 H% N# E& \0 T) H! ^% o; o1 u - )8 Q: d( @. G- H; v3 K0 u6 V
- @: V' C: s# B- p' d8 p0 X8 r; F
- (defun checkForLockedLayer (ename)* m% w# s) }: ^& h
- (setq layername (cdr (assoc 8 (cdr (entget ename)))))7 n. m) d$ u5 V' [5 F* `
- (setq layerflag (cdr (assoc 70 (tblsearch "LAYER" layername))))
/ Q/ O( R B6 l7 K$ b# \ - (if (= layerflag 4): }; X7 F H8 w# X1 K
- T
3 U7 f& ^- T& ^- f$ B& Q - nil3 H9 S x5 \" h3 ?2 b
- )5 h; ?$ @& x# V) l) M0 O# [" [
- )! o' p5 I& \* P; a6 ^$ Z4 _
- # B/ c3 ]5 q4 Y3 j" B# Z- Z
- (princ " DDMODIFY loaded. ")
7 i% p( }' t' c( E# ` z( @ - (princ)
6 U1 l, @% w0 e( k6 p: u - ;;;???;;;---------------------------------------------------------------------------------------8 o j) N4 [3 X5 l1 l$ O; h
: d9 L2 }! C3 \7 g6 B* x0 W- ; Next available MSG number is 8
9 @6 f& `5 D- L& j) l; q" J( } - ; MODULE_ID DDUCSP_LSP_
) p; f- n" k* ^; r6 e* t - ;;;
% e. M8 p1 g6 k/ v - ;;; dducsp.lsp
1 p0 `; W& {" x& C Z/ w - ;;;
7 j, e, t' t# H5 `: Y2 ? - ;;; Copyright 1992, 1994, 1996 by Autodesk, Inc.
& F" a4 j( U5 i4 _6 t: { - ;;;; t) E' B' Q9 n- @
- ;;; Permission to use, copy, modify, and distribute this software% X! ~0 Y1 y, T3 @0 h, I( ?) {
- ;;; for any purpose and without fee is hereby granted, provided" S: D. F# L& c! M" m4 p g) K
- ;;; that the above copyright notice appears in all copies and8 V1 t+ l2 \: C; F7 |
- ;;; that both that copyright notice and the limited warranty and: c9 S5 }! u% [5 k2 u
- ;;; restricted rights notice below appear in all supporting3 N: L! o) q* }$ u
- ;;; documentation.
/ U, F$ L6 a0 d6 B6 F, P+ i* K - ;;;& ]* g6 g" n* a* M M
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS./ N( e6 H9 D; H7 {8 n
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
+ J; v# `1 s" I8 M - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC./ h, ]& C- H9 y& A& n& k
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
) X2 K% z; t- y5 @) |9 Q - ;;; UNINTERRUPTED OR ERROR FREE.
* L# N2 i" G3 ?; I - ;;;
$ [( W. u6 s) Q: ]3 R - ;;; Use, duplication, or disclosure by the U.S. Government is subject to
& f/ s' S \3 x! n; x" @ - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
3 R# o5 W! b& j) G4 [2 R - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
4 H" s& q" {8 Y; t2 i. ~2 u9 j - ;;; (Rights in Technical Data and Computer Software), as applicable.) s, n3 O6 j4 h; Q" Z
- ;;;7 j% b- _+ w1 O# d7 J
- ;;;.
3 |3 j# ^* l9 r- w* f: a( z - ;;; C:DDUCSP - User Coordinate System presets dialogue.
0 o9 U7 J$ G: G1 D3 ^3 { - ;;;
+ E- N( w9 @' |) |6 U& l9 O - ;;; Uses DDUCSP.DCL for the dialogue definition. The
5 Q$ x" _$ Y( E) ?1 g- c - ;;; slide images are in ACAD.SLB.
4 d' D! f% d: E( `; D. w" r6 m - ;;;6 k7 \- t4 D1 }: |: {; p
- ;;; ===========================================================================
; d) @! ]- j6 f- q+ ` - ;;; ===================== load-time error checking ============================; p0 R- |. U+ U& [
- ;;;
+ ~/ K1 O1 Y: m$ T; R# d7 O
/ s G% R; f) T9 I- (defun ai_abort (app msg)
& W9 j3 E0 G* D y - (defun *error* (s)2 Q) n1 m, f% J1 h3 k" z8 U
- (if old_error (setq *error* old_error))
9 c% Z) l# K3 R2 [/ n. y; J( r - (princ)2 g. ~/ J; s: }1 _0 P* p3 L) @: P: Q; w! Y
- )
& Y X( K! }2 ^8 W8 `* C# ]. @ - (if msg5 G3 t9 ]8 F* U) h+ m! E" p
- (alert (strcat " Application error: "$ r; B$ O# S0 \& R) E% @/ R- k, O- s
- app
1 g% p, A' n; b2 u% ^7 q& u) h - " \n\n "
8 o; M4 M5 ]' j& W5 @, D5 V - msg
" f9 D1 M" H ~ - " \n"8 w- m9 k: c. ?- a+ w
- )
0 o4 B7 O! I U, o - )
6 u. \9 ^% m; ~- A; Z% N - )+ Y( T+ J& A4 w# g
- (exit)* ?2 R/ m5 ~9 A" |
- )
) P$ r: s$ G% u) X/ _9 d
8 F0 Y9 Y0 l m ~- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
' u+ u# }/ X4 L. J5 p5 u5 { - ;;; and then try to load it.
4 c9 B, [3 d2 @+ s - ;;;9 k. r+ ? B( y5 e. `/ I
- ;;; If it can't be found or it can't be loaded, then abort the
9 d( Y1 J; H# @ - ;;; loading of this file immediately, preserving the (autoload)
! r. O8 g- m# g3 u2 Q# h& h4 m - ;;; stub function.
7 I( m, K$ c8 D: m( ^6 w5 C& ? - 0 ^: S% r/ N1 Y
- (cond
' i0 j2 L2 X7 g7 E; o - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.. c) i9 q- ?/ d
# C m5 h5 E" l2 o1 U& p- ( (not (findfile "ai_utils.lsp")) ; find it. s: t- m& l* N: ^+ e
- (ai_abort "DDUCSP"
3 v# X1 Y3 N- V! x3 _! J9 z" v - (strcat "Can't locate file AI_UTILS.LSP."
v: f: S! s, b4 A1 K - "\n Check support directory.")))
0 Y: A5 P9 r% X3 W8 u$ w
$ ]" L7 ?% Y, i+ B9 ?- ( (eq "failed" (load "ai_utils" "failed")) ; load it! u" z6 T+ z( P3 y" `. [
- (ai_abort "DDUCSP" "Can't load file AI_UTILS.LSP"))
0 B- p& ?6 L4 ` - )
( H5 {' P: P1 W2 l$ h - : t) u( \& F% V% e( h
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
5 R4 n K) q% j' I% @1 \0 x - (ai_abort "DDUCSP" nil) ; a Nil <msg> supresses1 e- [9 R3 h# ]8 X: D7 N
- ) ; ai_abort's alert box dialog.& c3 W$ o+ Z) S' Q
+ H$ S F4 d* @" b3 o6 d- ;;; ==================== end load-time operations ===========================
) k6 f+ r* ~ s! } - 6 j# X/ u6 J! E+ l
- (defun ai_ucsp_start ( / program)
6 H$ p! n; ?0 _% X* V6 d& ? - ;; Get program name
' R- H# z" R+ t7 A1 A6 r- \ - (if (not (setq program (getvar "program")))
6 j! z- h( q; v. D" l - (setq program "acad")6 ], @) b' `5 E) \. j, R
- )
7 q6 G+ ~+ N, a2 k - (foreach v0 '("world" "left" "cview" "top" "front"
# D+ p, R7 V' g4 B9 t - "bottom" "back" "right" "prev")
: h9 l6 K7 _! i3 n% s - (start_image (strcat "ucsp_" v0))
. @) x# C* p: r* B4 l - (slide_image' f% N2 a( B' [' C
- 0 0
% @. F2 v% W! `5 j* I - (- (dimx_tile (strcat "ucsp_" v0)) 1) (- (dimy_tile (strcat "ucsp_" v0)) 1)
. J8 N9 r0 k% f4 Y# B. G2 {# c - (strcat program "(u-" v0 ")")) [' }/ R% V/ f6 g. g
- )/ E: r }0 M! b. o
- (end_image)( G; e" H* d3 G3 u3 R$ ^
- )
' V& Q8 {, v2 v$ j6 ^# G - )! p4 _( l9 `8 j* i. T
- . u# _* Z3 l+ v5 N/ ]- K' W8 H
- (defun ai_ucsp_set ()
/ X* W# N( Z. l; g# V% S% h6 X - (if ai_ucsp_sv
5 z* G+ F5 f% W9 V - (command "_.UCS" "_V"); ~( C$ I, p/ ~( u0 C
- (if ai_ucsp_prevs; I' L1 k' _7 \( e+ W) @: q
- (command "_.UCS" "_P")
5 q* y( W, p! |6 t6 J - (if ai_ucsp_chg
; _& m) K8 P9 J' M W" w4 [ - (progn
. w0 o, J& K) s2 h9 z( L c - (if (/= ai_ucsp_a "*")1 h+ ^% n. [6 r. ]- y, E& ~2 z
- (setvar "LASTPOINT" (trans (getvar "UCSORG") 0 1))
$ u1 A# |4 T9 c, V - )% g' F0 p$ h/ j& h
- (if (< ai_ucsp_pick 6)
+ H# m: V* B7 a, X0 R - (setq ai_ucsp_set0 "@")
& U. B6 S( D5 r+ q - (setq ai_ucsp_set0 "*0,0,0" ai_ucsp_a "*")
9 V; p, O, b' ^+ m3 }0 E4 L - )
0 A' l3 Z& V8 ~# ]6 J! u8 [ - (cond ((= ai_ucsp_pick 0)
, X% r5 L- O7 F' {) X - (setq ai_ucsp_set1 "0,-1,0"+ S) i7 U# N; R8 @0 k
- ai_ucsp_set2 "0,0,1": W g4 p- _7 z! i9 \ m
- )5 b$ W3 h5 f( K0 ^
- )! _* W# o; C1 ?2 r7 G
- ((= ai_ucsp_pick 2)" j5 w* `& G% Q! F: y$ ~
- (setq ai_ucsp_set1 "1,0,0"8 {7 l' a$ l; S7 t) a
- ai_ucsp_set2 "0,0,1"4 e- z& E K: l: R
- )
. {) w2 X( Y( l- [$ ?0 g8 S, c* e% { - )
4 E0 K3 {) X9 N' j - ((= ai_ucsp_pick 3)
+ {* K _6 [3 \( L - (setq ai_ucsp_set1 "1,0,0"
& V3 h" L. ~; @+ K e5 ^ - ai_ucsp_set2 "0,-1,0"* w% |$ A# U( K9 O
- )
/ e8 y0 L9 D! ^2 u - ); L3 ?- q4 p! b2 \5 [; x" f
- ((= ai_ucsp_pick 4)
1 f3 |2 t, B8 s: Y$ U7 S - (setq ai_ucsp_set1 "-1,0,0"3 M. l" D/ V! M
- ai_ucsp_set2 "0,0,1"2 |9 p' J$ ?: @" |' B5 v
- )
! p' i1 `% ^; q: U5 _6 q - )
- }; N" o4 m- W: Y' k/ v$ b' B - ((= ai_ucsp_pick 5)8 v0 [" O8 H$ s* r5 \( g
- (setq ai_ucsp_set1 "0,1,0"3 o' B; }0 O+ g; m5 Q- {' Y, x8 ~+ R
- ai_ucsp_set2 "0,0,1"" G# P- `/ u% Z8 _
- )
) R' {9 O* z, ` - )
! x% P6 ~2 O- g& i! R - (T! ]: v* W! s) i! m
- (setq ai_ucsp_set1 "1,0,0"; H$ s# T$ t3 W4 j0 ]
- ai_ucsp_set2 "0,1,0"/ Q7 I! @7 a' y$ U
- )& I/ F) \+ S, Q+ S2 c
- ); V* n/ v9 ?/ J% C
- )
1 Q( w! z( n& u* @ - (command "_.UCS" "_3P" ai_ucsp_set0
$ @& ]! Z0 q: ]8 {0 B; L/ @4 u - (strcat ai_ucsp_a ai_ucsp_set1)
* ^4 ~" I& ^/ J- X+ m - (strcat ai_ucsp_a ai_ucsp_set2)1 R T6 d# L; Z6 D% d
- ) 7 z* V* u" n% q9 y1 q! N$ e
- )% c) \$ O, l9 B
- )' {& C. J8 a4 H, d
- )$ Y7 ?; P. o' c3 g: e
- )& R( x/ l5 S' N0 B" y+ I; r' \
- )0 }( _+ x, [& Q3 U! k
+ R* [0 t: c; c6 _' y: w5 f- (defun ai_ucsp_p (val currtile)- ?2 R- M: G4 x6 R9 o& O" f- c
- (mode_tile ai_ucsp_currtile 4)3 P) d I/ i( } ~) z; T; Z
- (setq ai_ucsp_pick val
* [8 d+ D9 w, X7 M- A - ai_ucsp_sv nil
* e) `& e; a9 _7 F6 p& K+ _ - ai_ucsp_currtile currtile
9 s9 f% T- O3 P; ? - )/ I- A: j, D# `, c
- (if (/= val 1)1 S6 r+ W7 ?' P
- (setq ai_ucsp_chg T)
# z& k2 Z3 p$ Y9 e& w - ) A- @. I: d' p# f% |6 ^
- (mode_tile ai_ucsp_currtile 4)- ^. P% J; X6 A. d# Q
- )( ]0 m6 P! g( }8 c/ p6 M# c
- 9 r' \: y3 r5 b
- (defun ai_ucsp_swcs ()
: l& n3 \9 e, X - (mode_tile ai_ucsp_currtile 4)
6 i+ z" E+ V, A; q# p4 ? - (set_tile "ucsp_a_wcs" "1")- b2 P |3 g) v! p8 h/ t
- (setq ai_ucsp_pick 6: s+ r- D. q, h* h# J" ~* t
- ai_ucsp_sv nil
2 k* f9 S6 R. e1 p1 M - ai_ucsp_currtile "ucsp_world": b8 j8 K$ ?5 a6 o) C$ O- b, }* Q
- )
/ f$ [# s( P3 G2 m$ U- o - (if (/= 1 (getvar "WORLDUCS"))2 A f. G9 ?; a3 M: |! c( I. ?
- (setq ai_ucsp_chg T)
$ X0 a8 {: W m$ P+ E F. n - (setq ai_ucsp_chg nil)5 Q$ o2 }1 |" l/ J
- )
9 f8 r, Z$ O" @* O; | - (mode_tile ai_ucsp_currtile 4)$ [6 ]: u. s% A8 d
- )! M0 L7 x# L+ C8 u2 I/ T
; H7 x: ^ ?" v: p# S8 K2 q) Z- (defun ai_ucsp_cview ()) x& G6 f$ q5 K8 c
- (mode_tile ai_ucsp_currtile 4)& D% W- v. V Z
- (setq ai_ucsp_sv T
0 u% B$ O/ y9 Z4 N9 d' j - ai_ucsp_chg nil/ \8 p' ?5 p4 x4 e) E+ U2 F
- ai_ucsp_currtile "ucsp_cview"
% V$ z7 q) d: l6 N% D- m - )
; l8 o) l6 l F* x, H/ Y7 q - (set_tile "ucsp_a_wcs" "1")9 D& F: Y: P. ^, H' r6 i
- (mode_tile ai_ucsp_currtile 4)
$ v5 U1 L# z" m* R3 T - )+ L& `% F6 _; G" ~
- , r: {* e5 j; y" H& i; G% d# w8 m
- (defun ai_ucsp_rucs (typ)
/ Q2 T& b5 S5 `7 _& @( a( a - (setq ai_ucsp_a typ)* C# c/ o0 x1 w( _, e
- (mode_tile ai_ucsp_currtile 2)
4 D, x3 W& B: j- x. h - )! u3 |: F. K9 a- A1 M
: [" k: m( ^' {- y. ~* C" m- (defun ai_ucsp_prev ()6 G" z8 v- R; c @ ]' F$ W+ U3 d
- (mode_tile ai_ucsp_currtile 4)) G% |4 z6 g- H4 h, Q
- (setq ai_ucsp_prevs T
$ e% H: c/ A s8 m - ai_ucsp_currtile "ucsp_prev"
' ]# U9 v5 L" K - )
6 H" N) f4 |8 K0 E; w/ ^$ c - (mode_tile ai_ucsp_currtile 4)' c; _# e& `7 F/ j0 J. z
- )
4 ]7 k/ Z+ `! a) L - " C9 r9 H q0 ]' o
- (defun ai_ucsp_main ( / ai_ucsp_pick ai_ucsp_sv globals)
2 \6 ]- G2 E; }/ m) o - (if (not (new_dialog "dducsp" dcl_id))
/ a: v' p4 V% E/ q8 v& i- W" N( \; ~+ P - (exit)
3 Y9 t" {) K% ]% E - ). H8 R J! L9 `+ a+ N
6 o$ N7 R+ i6 T! c" n( n' ~- (ai_ucsp_start)
: [" ^6 ^& ?9 ?, ] - (setq ai_ucsp_a "@" ! J0 M- u; p: a& z
- ai_ucsp_pick 2) A% J) |' d) w6 |7 ~$ _
- ai_ucsp_currtile "ucsp_top"+ u2 O3 B( j8 h$ k! s
- )1 [( i$ k+ x T( |! ~- ^) Q7 G8 o
- (if (= 1 (getvar "WORLDUCS"))
7 w Q' w$ b L - (progn
f1 F3 Z1 x1 d% I - (set_tile "ucsp_a_wcs" "1")
1 H5 r8 I1 Y0 _7 ]% Q& ]7 H! \ - (setq ai_ucsp_currtile "ucsp_world"). _# R; Q0 }/ ^5 I) f
- )5 E+ T* L Y/ _6 l( z" S/ w. d
- (set_tile "ucsp_r_ucs" "1")
7 f/ f- p3 V R3 a4 G+ x - )3 l9 P; p7 n U6 s
- (mode_tile ai_ucsp_currtile 2)& I4 Z" Q- i a7 }7 M, P- S
- (mode_tile ai_ucsp_currtile 4)
( n# p$ Y* Y8 V1 E1 q5 @ - (action_tile "ucsp_world" "(ai_ucsp_swcs)")- F: e+ D6 p0 c. M
- (action_tile "ucsp_cview" "(ai_ucsp_cview)")
) y9 H o& o; R: o% D - (action_tile "ucsp_left" "(ai_ucsp_p 0 $key)")
) R# J$ L% H2 O) R' ?: Y R( J - (action_tile "ucsp_top" "(ai_ucsp_p 1 $key)")
# C- s" i$ Z/ E# e* [, b" _ - (action_tile "ucsp_front" "(ai_ucsp_p 2 $key)")
2 f( i' V- r- i* ^9 w - (action_tile "ucsp_bottom" "(ai_ucsp_p 3 $key)")
0 `! m' ]) X8 V. B; Y1 M - (action_tile "ucsp_back" "(ai_ucsp_p 4 $key)")) G9 n) Q# R7 l0 @( a! U# s
- (action_tile "ucsp_right" "(ai_ucsp_p 5 $key)")1 G( p6 G6 J4 ^4 u
- (action_tile "ucsp_prev" "(ai_ucsp_prev)")- x# {! Z0 y. A- \. `* _/ w: \/ h
- (action_tile "ucsp_r_ucs" "(ai_ucsp_rucs \"@\")")
, \7 m+ Y7 s7 l - (action_tile "ucsp_a_wcs" "(ai_ucsp_rucs \"*\")")
8 E V* Y* e. v; w - (action_tile "accept" "(done_dialog 1)")
) o$ `+ s R2 v; n% y2 n, V0 A - (action_tile "cancel" "(done_dialog 0)")
# z( ?, H( V/ u' H; O- m5 B - (action_tile "help" "(help \"\" \"DDUCSP\")")
9 I% j# {* @8 D& Q2 f - (if (= (start_dialog) 1)
# z4 S' }* G- B/ F, o - (ai_ucsp_set)& H+ W" | d4 I7 H/ Z( I' N
- )
1 d% N- K3 z6 g4 K- d - )- p5 Y! I5 _0 k1 z3 H- C( X
3 d( f0 e& ?: o( C) E: W7 o5 [- (defun c:UUS ( / app dcl_id old_cmd old_osmode ai_ucsp_prevs p9 f+ K) N& [. n, M6 o3 C
- ai_ucsp_sw undo_init)
( r3 B# e5 h+ h - ; {" \/ \& c# [+ @! Z& T5 b5 k
- ;; Set up error function.
7 \* G$ k6 o6 Z% U, x, V* v& _ - (setq old_cmd (getvar "CMDECHO") ; save current setting of cmdecho2 f3 u7 Y7 j3 A' k8 B% b
- old_error *error* ; save current error function
2 }; p, U( j* @0 r - *error* ai_error ; new error function
) n; o! N6 Y( \8 ^" O - old_osmode (getvar "OSMODE") ; disable OSNAP for duration5 b& K$ f- R6 E
- )
, A! h ]4 G7 N: T
% _2 w6 D- y* |+ @2 E" B. c3 P) t# Q, l- (setvar "CMDECHO" 0)
. ]9 I+ ?9 q; U4 A6 \4 t - & b* ^9 {' C. s, U4 n2 z
- (cond
3 A) n5 H& g9 b/ \3 _, U: ` - ( (not (ai_notrans))) ; transparent not OK! t% {6 ]# I! d- W/ w+ X
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?; f" p# @" Q4 M+ N u# V6 ~* Z- W
- ( (not (setq dcl_id (ai_dcl "dducsp")))) ; is .DCL file loaded?; e. s; }) s1 n9 @ X
- (T (ai_undo_push); D8 r) I1 Q2 r; w1 k0 r
- (setvar "OSMODE" 0)2 ]' h7 [3 U1 ^* v( o
- (ai_ucsp_main)& Q; h# j) W5 e5 @
- (setvar "OSMODE" old_osmode)
. {7 ^. A; E6 P( ]9 E; ~/ J - (ai_undo_pop)
/ \7 a) t, }, N& r: ]+ T% k. f - )
/ Z* j- `8 N6 R' d6 X - )* }) N9 D( u5 W4 U8 ^
- # E7 _+ u$ T2 q
- (setq *error* old_error)
O+ i2 ]- _' I/ \6 W. J' O4 l - (setvar "cmdecho" old_cmd)
* |6 }9 {, p( H5 {1 ~
1 Z: C O7 Z, e6 J) H K4 r) Y! ]- (princ)7 w$ P- l2 v8 v4 o
- )% `6 \& q, w2 i: r8 H
- % D9 d5 b# s3 l( B
- (princ " DDUCSP loaded. ")! L4 v% }$ [1 m' ~7 k, `
- (princ)
( H- a) V0 D7 g+ k, M; s* d& d% g" Z
% q4 q+ d2 y Y. w/ {' q* k4 I2 P- ;;;???;;;---------------------------------------------------------------------------------------
5 f) i1 l1 m' }$ ?0 ]3 [! t' C# S - ; `6 W5 {$ o; z" T
- ;;;----------------------------------------------------------------------------7 J! J6 C1 O; g" j* ^ U9 _: a/ V
- ;;;6 O( J9 h6 ~! m8 F- ~% F
- ;;; EXCHPROP.LSP
7 l2 S' o: ^! Y9 b# o - ;;; Polyline and text modification capabilities added by
+ ]. Y5 K2 O# m# [% i- g5 z8 x - ;;; Randy Kintzley * M8 F; a! W+ P" S8 Q- y$ F+ P
- ;;; m# R* U% B& e% P1 `. Z
- ;;; Copyright (C) 1997 by Autodesk, Inc.
; p2 O8 j. I) w4 v; T+ p& y1 ? - ;;;5 _3 W, J0 I- n
- ;;; Permission to use, copy, modify, and distribute this software* m* G5 P: `2 i2 L3 b
- ;;; for any purpose and without fee is hereby granted, provided
# X1 a! c+ d( s4 Y) y" B0 f2 I v - ;;; that the above copyright notice appears in all copies and
! N. W: L% K9 m2 D" R; d, P - ;;; that both that copyright notice and the limited warranty and
: [0 f% X8 L5 u( G3 a - ;;; restricted rights notice below appear in all supporting- X7 g9 \- M3 I) l8 q
- ;;; documentation." Q8 n4 m8 \7 w3 h7 a
- ;;;
4 v5 j9 H5 o7 B5 D& X( V- x& g - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
( R' _# d9 i0 C - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF2 h; P9 O8 s }- |6 M
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
1 E: P! P+ N1 y - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE. G y) _# s4 ?% |0 ?
- ;;; UNINTERRUPTED OR ERROR FREE.
W* x0 C1 F0 a; E - ;;;
, y: Z, Z3 Z0 A% ^ - ;;; Use, duplication, or disclosure by the U.S. Government is subject to
% q/ O# u6 S0 p/ H* W - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer1 u6 R* @7 ?* K3 j( Y. n
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
; _# v: Z3 _6 b: w+ Y - ;;; (Rights in Technical Data and Computer Software), as applicable.3 W* C0 D5 c4 Q7 r4 d
- ;;;9 G, |! x/ l& X: u
- ;;;.3 |" i; ^( [( G* q0 I
- ;;; 28 February 19973 U9 X& }' c% x+ M2 s8 R
- ;;;$ H& u4 c& h V* @' ^! S0 A
- ;;;
' [9 h) f7 f2 c& [: [ - ;;;----------------------------------------------------------------------------
2 ~5 l) D1 j" x - ;;; DESCRIPTION2 h7 c/ o, Y( t' c/ I
- ;;;----------------------------------------------------------------------------7 ?2 F7 e: |9 R, i$ q1 |# i
- ;;; C:EXCHPROP is an extended or enhanced version of ddchprop. This . w* [+ @9 n' M* X! I) ^+ b2 N5 l
- ;;; command gives the user the abilitie to change several characteristics
+ { ]( J u% B2 N, d; a - ;;; of selected polyline and text objects. . z! F2 h) T, s3 W# t
- ;;; The style and height of selectected text objects can be modified * I' N3 ~$ s4 J% }, S* `9 G$ a
- ;;; (including text, mtext and attribute definitions) as well as, width and
% I7 r/ [$ b9 d; f4 T - ;;; elevation characteristics of selected polylines (includes lightweight and
7 `5 Q7 H+ J1 R. P6 z$ U9 H; B - ;;; traditional polylines.)* @6 p5 q L, X3 F/ T" U! ]/ a6 l
- ;;;----------------------------------------------------------------------------
3 q. U8 v* q* H: `* m - ;;;----------------------------------------------------------------------------
& Z8 q- ?8 _9 r& X - ;;; Prefixes in command and keyword strings:
, f7 c8 I' L' H' T, F* J- i - ;;; "." specifies the built-in AutoCAD command in case it has been
1 Y: t! F6 }0 W7 F7 H - ;;; redefined.
}3 e+ H) u/ x3 v/ f, m - ;;; "_" denotes an AutoCAD command or keyword in the native language
1 ?- u/ y: V( E7 D! L, C0 @7 W# b - ;;; version, English.3 W; s8 S2 j; d
- ;;;----------------------------------------------------------------------------+ l% w7 T( K5 n% q! B) Q. W
- ;;;
! _6 D' S1 j9 I. Z" q - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;) I3 n; C! I5 |3 w
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;& g! m( e4 w r4 |4 Q( q
- ;Functions created as result of loading file: exchprop.lsp
' c' z4 @$ r, k0 L* t" h& C# @0 Q9 { - ; DDCHPROP2
% y, Y) w9 Z' c) ]7 ? - ; DDCHPROP2_INIT# l# y7 X; T6 P2 f$ c) Q# R) f7 A
- ; DDCHPROP2_SELECT
/ g' `" b4 o! O2 [ - ;! m; C {9 [$ q+ y! @
- ;Variables created as result of loading file: exchprop.lsp
) t5 L& w p# y+ ?" u; _$ h - ; OLD_ALLOC4 t4 R2 R& m: E3 j: X- P
- ;9 c$ g& T2 m. z3 h' ?6 L
- ;Functions created as a result of executing the commands in: exchprop.lsp8 l% `2 Z. [8 Y) c
- ;; m- M& y* f/ h- Z
- ;Variables created as a result of executing the commands in: exchprop.lsp/ \, y4 Q4 p0 ~% ?( H0 n
- ; AI_SELTYPE
8 [! Z' j8 M7 s0 y+ b" T - ; BONUS_ALIVE3 F. d) `; s$ H7 |- X# d
- ; BONUS_OLD_ERROR
* j h$ L3 x. t8 p: Y - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
5 C$ n" A# p1 a5 R5 a$ p$ _ - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;) h) l: E4 V; T5 i/ g1 Z
- ' _9 B. O c; H" p/ f# g
- ;;;
5 o9 n4 C u5 ^9 p4 R% \4 g - ;;; Avoid (gc)s on load to improve load time.
& Q. j6 O7 ~! ^: F( U3 Q - ;;;
1 x# I3 Y* j" I3 n% V) ^' h! h - (defun do_alloc (/ old_allod new_alloc)& M C! w: W3 W
- (setq old_alloc (alloc 2000) new_alloc (alloc 2000))# P6 y, E) h6 E4 p2 L: v; X
- (expand (1+ (/ 4750 new_alloc)))6 O4 a, u# H4 e1 k+ C" u
- (alloc old_alloc)
4 k; r$ T0 {2 Q# {! X - );defun
. r f( S6 Q$ G1 h0 u/ D
4 [& H# M* j: A( D* g# z9 Y- ;runs at load time - rk8 E+ R1 S( d k& }+ G# i5 s2 ~
- (do_alloc) D! C8 v, P$ x g$ ^3 v3 i
- (setq do_alloc nil)( U k* L4 A. W% f/ U+ C5 A
- ;;;+ B7 h! g- R7 j6 T: ^' x6 \
- ;;; ===========================================================================. ~& R" y2 Z1 T# K8 K% z) P2 D
- ;;; ===================== load-time error checking ============================
' @' W% K8 L+ d6 ~/ X; J/ u - ;;;
7 S2 ~: i1 X6 ?0 E, S1 S [
7 B$ Z/ x9 e" C, x5 \- (defun ai_abort (app msg) ) ]8 y7 p. W0 u" h7 T. j. o
- (defun *error* (s)1 t+ ]3 x' O0 ^3 @* x! G; b1 X2 G
- (if old_error (setq *error* old_error))% n: h6 W" J, W6 [
- (princ), B* ~9 t3 B/ h2 _/ k
- );defun. E' ~) }( K0 v6 U6 i
- (if msg
- ]1 M3 r8 @# M$ }, Y. i6 ~ - (alert (strcat " Application error: "# c- _4 A' ?3 g8 y5 B! R
- app; i; L2 a' }4 E9 n: |5 S: d3 b5 s
- " \n\n "9 u ?9 ^) m& |, q' \5 c) R
- msg
6 L6 ~3 x; E- E) W - " \n"4 b ?" h0 W L$ x, `/ j* z/ l
- )7 B- m4 w7 ^' E
- );alert
7 g- g Z ?( X T - );if
( l( Q5 J% f, C& w# i" V - ;(*error* msg)
. N) Y: w' F* n# [, [: D - (exit)
, ?0 M8 t& j7 [( { - );defun ai_abort1 A; u1 u5 m- `! V) V$ e& ^( o
$ ?" L/ S x1 y2 a- ;runs at load time - rk# X0 L" G0 J* N
- ;(if (and *error* ;added the if wrapper around this - rk.
4 t: w& R1 L& o% t( I - ; (not old_error) ! V" _8 n0 h1 N
- ; );and
P+ R7 h. H5 U( v" K - ; (setq old_error *error*);setq
7 Y3 `% N( @* G4 ` - ;);if
2 r1 e" B9 z. X
' W% ]5 g. l% b, p4 q- I/ V) m& H
8 ]' b2 L: P& J- ~- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
# \1 w% y5 e M0 ` - ;;; and then try to load it.8 e1 K- q& [# c( w; H- z) q. p
- ;;;: E1 E! z5 N' i# C: l. P* [: h
- ;;; If it can't be found or it can't be loaded, then abort the3 u$ R. j. ]8 T/ V# g
- ;;; loading of this file immediately, preserving the (autoload)% L3 o5 O* W; O, V
- ;;; stub function.
) a" ` x$ Y/ P/ |( o- Q - 1 W0 y3 Q9 J: R
- ;runs at load time - rk.
" ?0 i' ~* l( `5 f$ u0 W; \ - (cond5 J$ p( F' ]4 e3 {+ X1 c
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.' T$ @" g* Y8 H% v' ?1 o+ }0 w
- ( (not (findfile "ai_utils.lsp")) ; find it
* P: O4 V0 `3 l8 S/ l5 F - (ai_abort "EXCHPROP"
5 J$ y: |' X. ^9 o1 U, m - (strcat "Can't locate file AI_UTILS.LSP."
+ `7 ] G' ?+ M! ^ - "\n Check support directory.")
. e' M+ Z/ [* {( A7 J4 i - );ai_abort
1 _* ^, O6 ~9 }4 T - )% V2 T+ v' n6 z" s" p# c
- ( (eq "failed" (load "ai_utils" "failed")) ; load it0 \1 Q7 k; F8 x; v8 y* @" b
- (ai_abort "EXCHPROP" "Can't load file AI_UTILS.LSP")
6 G* ~ f1 J( W# _ - )! d) p, q0 j4 ^' s# R- p
- );cond close" h9 [4 ^" ~6 ^$ F
2 z. C- x& \: k6 L- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP$ v! F* q w$ P0 y5 T) a, b
- (ai_abort "EXCHPROP" nil) ; a Nil <msg> supresses1 j/ X% G1 G0 Z# I2 X. a
- );if ; ai_abort's alert box dialog.
0 x# k- p1 B* `+ F& E# i$ {6 Q9 y - ' b# p' C9 R7 \0 ~3 m
- ;;; ==================== end load-time operations ===========================$ U, C, p# a) K
- 1 W \* j# U* w6 H- L3 v- Z8 A# |
- ;;; Initialize program subroutines and variables.
8 P5 h- n$ k9 }
: I4 d. _' R/ X, v5 s- (defun ddchprop2_init()
2 @* {4 Y9 o0 r! ]. y, w# x - * H& a& O# q9 _4 ?" m
3 \ C' `$ y. l, u2 f# k; n
# H) q2 N4 i0 J) h% D4 T( }- ;;
, g5 Z+ b P5 h" L9 S - ;; Define buttons and set values in CHPROP dialogue box& a8 Q C3 R( j: b5 y
- ;;
+ F8 d. W. w) g$ B) w - (defun call_chp2 (/ cmdact p1 p2) V2 @0 j$ n/ w z
. I. j6 c9 Z" N) I- (if (not (new_dialog "ch_prop" dcl_id)) . Y8 j/ C7 d! B
- (exit)
, z2 Q" E! b; N( R, J3 b - )# d5 R/ n+ K* k3 y5 ?
- - |6 L0 A+ B8 f9 w$ `
- (set_tile "error" "") p1 N8 u! Z/ P( U
- ;; Set initial dialogue tile values& P+ l/ f2 |* a8 J" d6 b
- (set_col_tile)! j! S" o9 M( `! `
- (set_tile "t_layer" elayer)
; S e# c* Q% W7 v; K$ S0 L
2 z: |- _* `5 _* R, b0 \' H- (cond- C0 E- X9 N" j* q( e) w8 S
- ((= lt-idx nil)! C! Q6 k( a5 _, _* S0 }- t2 l
- (set_tile "t_ltype" "Varies")
, W: d7 Z2 z$ h0 X - )
4 _; f" t. z! y& R$ n - ((= lt-idx 0) ; set tile "By layer & layer linetype"( b3 V; F; p( f
- (set_tile "t_ltype" (bylayer_lt)); Y5 ?) a5 {* `. l; W9 h
- )
: K! D- z: E' ?# e' J/ U - (T" x# T7 e9 D M& ]$ p3 s
- (set_tile "t_ltype" (nth lt-idx ltnmlst)). \( _2 X4 Z5 U0 I
- )/ \9 M. k# k# w9 t! f
- )
# a2 t5 u/ S$ t i - p2 e; Q9 S1 d# n4 j) e: F2 L
- (if (or (= ethickness nil)* x- E a: X7 K5 \
- (= ethickness "")8 V8 Z3 N' e# I z3 D
- (= ethickness "Varies")
7 B7 a$ N/ x5 m+ E! M - );or
& K1 ~& ?) r* h) [ - (set_tile "eb_thickness" "")
$ a% T: V* \' G, r$ {* {3 Y - (set_tile "eb_thickness" (ai_rtos ethickness))
5 b7 {6 t7 w6 K o! | - );if
* Y; j% q0 f7 i' U$ o, ~ - (if (or (= eltscale nil)/ `" K; M& G5 n' x# E
- (= eltscale "")* _& \8 u3 F) z9 z8 v
- (= eltscale "Varies")
- Q4 _5 r) B s, m - . [( C* Z: g& b S* y q( g6 z
- )& z: N3 G- `; ]) I' a
- (set_tile "eb_ltscale" "")
8 K: C3 \. _/ `5 w - (set_tile "eb_ltscale" (ai_rtos eltscale))4 I" w7 E" s3 \2 e' }. i
- )
7 _( R; Z6 s9 U0 z% L - (if4 g4 f) Z: }4 P" h
- (numberp ewidth)0 e7 s0 s9 s; ~$ B, a. s
- (set_tile "poly_wid" (ai_rtos ewidth))" G4 \9 c2 B1 t4 Z# g
- (set_tile "poly_wid" ewidth) C+ Y7 T8 i8 S" L
- ), ^# Z9 M$ u! L, z* }
- (if
6 O" G: _# T1 _ - (numberp eelevation)! `5 U! G) y6 u7 k5 o
- (set_tile "poly_elev" (ai_rtos eelevation))# n% `" h. b# z+ r
- (set_tile "poly_elev" eelevation)
7 j( S- j$ U1 h1 T- O - )
0 g" |) v" I& {; Q3 X9 u& @ - (if
6 G. Z. i; N- W1 S0 y - (numberp eheight)
) e7 B6 ` K3 s; z+ L( y - (set_tile "text_hgt" (ai_rtos eheight))
4 y; \6 ]) p' F2 Y, I0 G! l - (set_tile "text_hgt" eheight)
3 T1 T4 I$ y/ E% w - )7 e& z/ ^+ g9 a. Y
- (if (not estyle)" B! g" L5 b2 N- L% a/ u* h
- (setq estyle "")9 |/ U. v3 \+ }9 _3 o( Z
- );if
$ K5 f! A/ j1 m z - (setq hair_style_list (tnlist '("style" 16)));setq
. P0 T9 N1 A* O - (if (not (member estyle hair_style_list))
' y9 Q+ P# P3 Z/ F - (setq hair_style_list (append hair_style_list (list estyle)));setq
2 B) d3 T9 J9 F/ p9 y - );if % c* V- V9 E* g. E9 a) t
: `: [+ G+ f* p. B+ \2 Z- (setq hair_style_list (acad_strlsort hair_style_list));setq
, c1 u3 X. X) o7 q& {$ O - (mpoplst "text_style" hair_style_list)7 i& F( ?$ J, m/ B1 V+ @
- (set_tile "text_style" , c A1 e4 S1 z5 P! j
- (itoa (position estyle hair_style_list))- e: h$ z# `3 n# P
- );set_tile 7 _9 o: ~3 Z, g5 `/ w. |1 l; v
- 2 G0 r* S4 Z+ R* f4 D8 }( e
- ;; Disable tiles if need be... ;@RK% c* `2 x" l7 V; H
- (setq a 0). w7 r9 n1 r% E6 r0 x% ?* t- T) x
- (while ( < a (sslength ss))- p; Y* H9 V5 Q% p
- (setq which_tiles& h' R3 @7 H5 b. ?& v X9 S# Z
- (ai_common_state (cdr (assoc '0 (entget (ssname ss a))))))5 F; T K, J* _# [4 i; @9 h
- ]) _/ g$ v8 N% {
- ;; If all fields are enabled, don't bother checking anymore.) ?: y7 P+ L& J0 c/ g+ t* W( a7 D
- (if (/= which_tiles (logior 1 2 4 8 16)). @* V. T3 M: P. D# h7 t. E C
- (setq a (1+ a))
' d0 ^0 a9 w: c+ k+ b0 A" I7 k - (setq a (sslength ss))
/ V! g: `" i7 O) j5 W+ l7 j - )
6 B. t* [8 l9 f - )
. G* M! v' b+ n/ ]# [& e% p - ;; Layer Button and Text Field6 x6 T5 R6 V5 w, t* f
- & S$ G, w1 F) k! L
- (if (/= 1 (logand 1 which_tiles))
9 q. |; v4 D2 z - (progn t/ |# I: n7 H6 m7 f
- (mode_tile "t_layer" 1)/ \; G8 w- {' V Q7 e2 B
- (mode_tile "b_name" 1)
3 f4 G6 X/ l; L6 L" } - )
) {9 C* C: \0 Y6 D# ^ z F - )
* L, d; d: A( w- }$ q3 \3 ? - 9 D. E- t' f8 y1 D0 ]; @1 g
- ;; Color Button and Text Field
5 C5 c1 W3 _! e0 j3 K - (if (/= 2 (logand 2 which_tiles))2 }* ^! X* q! \- X3 z
- (progn4 p4 y% I5 `9 A8 h$ [- r; K
- (mode_tile "t_color" 1)
( u; `& v5 m( b( i - (mode_tile "b_color" 1)9 G( d. R) d2 U9 f& P
- (mode_tile "show_image" 1)4 ~- r/ G$ v1 j9 F: ]8 v1 i) b; o
- )* l, b# ]( [# Q
- )3 `- n" e. ? }$ H, V$ {. l
- ;; Linetype Button and Text Field$ b; `. D. n# O# w4 a* ]/ G
- (if (/= 4 (logand 4 which_tiles))
4 j) z2 I9 R- @9 Z; d- i, U' N - (progn
# S1 w; m# Z# t+ W5 y& b - (mode_tile "t_ltype" 1)" Z- j: X2 H% U" d6 j
- (mode_tile "b_line" 1)
/ F. m7 O; m; U! q - ). P6 t, }3 S9 u3 `$ E* C; l3 @
- )
* q1 h( n" }3 v5 d3 Y- ~( D/ R0 g% P - ;; Linetype Scale Edit Field8 U0 B* b0 x( y, O. L4 G: l M
- (if (/= 8 (logand 8 which_tiles)). j9 n1 T5 M! m& m
- (progn
& ?9 f0 }5 l! T+ u6 x- d$ p - (mode_tile "eb_ltscale" 1)* A/ H/ ^% F9 g4 @) W
- )9 @# c/ c. u" G8 F
- )( H, R* ?' O, B: \2 f+ b3 a! @
- ;; Thickness Edit Field.
# q2 ^# ]& l# t! L - (if (/= 16 (logand 16 which_tiles))
! g! O4 J! ?, P) b$ ^ - (progn2 |" A' b" Y) z% v+ G7 b* b! J
- (mode_tile "eb_thickness" 1)0 F3 w. X T# O4 |8 d
- )7 O2 i# k2 h( Y# Q# @
- )
4 m9 M, _+ W v4 g
7 G( y* ]$ L6 v5 M: K( Y- ;; Polyline box and tiles @rk 10:05 AM 1/30/97
: m, k" @2 S8 @3 b3 N! ^3 S b( y - (if (not (= 2 (logand 2 eflag)))
. ?5 T. a, R% _; i - (progn
( n) d' d) n9 q; T1 q# h7 v - (mode_tile "text_hgt" 1)
/ |& d" { Z% u' ^+ z# u - (mode_tile "text_style" 1)
5 c# `. a' w( B! a: h* G2 I - );progn$ T( Q2 \* S* |8 v6 m1 T4 K
- );if
& t6 [' q4 S: G% j4 c4 w - (if (not (= 1 (logand 1 eflag)))# J2 O5 K3 g& J+ Y9 T2 n6 W
- (progn ' t+ u! d8 W# b+ y# @
- (mode_tile "poly_wid" 1)
. G2 J1 d/ H) _- m) Z. N" N - (mode_tile "poly_elev" 1)
' D3 D: f& G# S! ~ - );progn then disable polyline fields3 ^9 e: @; J/ h& b" l4 }3 H7 E
- );if( ~) z0 n ]0 U V
- / `8 _2 k) [, ]5 o! m0 V9 a" T1 l
- ;; Define action for tiles! W z5 H. T: w& H m; P o+ K
- (action_tile "b_color" "(setq ecolor (getcolor))")6 |) z) |' j' G
- (action_tile "show_image" "(setq ecolor (getcolor))")
" @4 b+ H, l I% }! s) q) W: h. C2 q - (action_tile "b_name" "(setq elayer (getlayer))")* }$ k( k) H7 N/ V
- (action_tile "b_line" "(setq eltype (getltype))")# _5 P$ r* c) V# m* [1 K
- (action_tile "eb_ltscale" "(getscale $value)")( @) H# `' H: p2 o
- (action_tile "eb_thickness" "(getthickness $value)")
7 e0 b2 D6 B3 c9 r. y& q, ` - (action_tile "poly_wid" "(getwidth $value)")
, [& B1 b! u' M* k7 D' W - (action_tile "poly_elev" "(getelevation $value)")
) v& t' S) Q0 w8 Y% { - (action_tile "text_hgt" "(getheight $value)")
B0 p& x3 l" J$ R - (action_tile "text_style" "(getstyle $value hair_style_list)") 2 V1 }5 b8 h2 M1 G; m/ ?
- (action_tile "help" "(help \"AC_BONUS.HLP\" \"EXCHPROP\")")
6 w) I: L% N. u0 W# d - (action_tile "accept" "(test-main-ok)")2 m# U6 Z0 s: a9 v& i3 M( h
- $ P/ x# v+ n! Y4 c$ x
- (if (= (start_dialog) 1)6 W; E" J' z7 }) s
- (progn
* X6 M) t' Z0 b& J - ; Update special properties for polyline and text selection-sets.
& R2 h, C% y- U% E - 1 Q- [; I, F& b4 h% H8 z: Q
- (if (and (= 1 (logand 1 eflag)) ; polylines rk chprop
0 C3 d8 ?2 w4 ~1 }# f b2 K - (or ewidth
& i4 N; k8 e% T. T1 z# e - eelevation
1 \* C, w- g* b, J/ e) o; @ - );or2 r: h, B& x4 ] C0 Z- \4 ?; C
- );and3 X, T' g: H- R9 p4 J
- (progn
% o& t2 G1 ?% n5 }# F- Z - (setq ss-index 0 6 O0 M! Y8 a$ h2 @& Y
- ss-length (sslength poly_ss)
/ |- ?8 L) Y J9 } - );setq
- L! W& G- U+ e7 R! g. g - (while (< ss-index ss-length)
) I* S: |7 ^* _ ~ - (setq ename (ssname poly_ss ss-index)( F8 o: k) B ], X' T. J+ {' W
- elist (entget ename)
2 ^1 I {3 Z2 w: j& W4 u - );setq2 _2 N6 o8 f0 |
- (ucs_2_ent (cdr (assoc 210 elist)));this function lives in ac_bonus.lsp2 P5 [ b* o% L& [! a8 W5 a
- (if ewidth ; Z) X6 l# H) h5 n! D4 E
- (command "_.pedit" ename "_W" ewidth "_x")
0 k* r0 l7 L9 T+ c. d - );if
- z& a% R7 v. a6 C! A; r - (if eelevation 0 e7 O1 |2 i+ Q3 _
- (progn
- K1 K H+ c8 Y. w# Q+ t8 u7 a - (setq p2 (list 0.0 0.0 eelevation));setq
" U- u( L9 m8 }, R/ F - (if (equal (cdr (assoc 0 elist)) "POLYLINE")4 i! \( A& {9 a
- (setq p1 (list 0.0 0.0
8 t5 z, x- I2 L7 [. w$ K - (caddr (cdr (assoc 10 elist)))3 |1 a! B& {2 L5 j/ Z5 k$ l
- );list
. R$ E! u2 d6 `3 |3 P: b9 V3 D - );setq) g5 T7 U- B, H/ R8 H. k5 k
- (progn
o- T+ L+ v0 b" }* q4 @ - (if (assoc 38 elist)
6 m/ h4 p8 q7 s& r - (setq p1 (list 0.0 0.01 S9 E2 G. u+ |+ }4 K* I: j6 _
- (cdr (assoc 38 elist))
' Y4 i% v3 T: V3 | - );list1 F6 G M: c# V5 s
- );setq
; R4 ]! ^9 o6 c" u2 H# ?% K5 C1 } - (setq p1 '(0.0 0.0 0.0)) d9 ^( H; t6 R5 O) G, [% x
- );if# r9 D4 }8 Y3 d& h( c4 ^
- );progn ; ?3 \$ J) ~. D! E9 ]
- );if) |0 p& m6 w9 y" ?) _# }
- (command "_.move" ename "" p1 p2)2 w7 I& b3 d1 e
- );progn then change the elevation of the polyline; U4 d1 t: k; m9 z
- );if' n( V" g( n& V h
- (command "_.ucs" "_p")3 h0 `8 d, G! h: Z3 t
- (setq ss-index (1+ ss-index))' p% L! x& W! X4 z9 A
- );while4 o. [( B3 S/ v; B
- );progn then polylines are in the selset
" m p, j3 V" i+ H9 I& |/ Q: V - );if" L- {# z7 q3 V8 S* o+ X
- (if (and (= 2 (logand 2 eflag)) ; text/ @$ Z6 P w( d A, o
- (or eheight 3 Y) I1 @( T# _1 Q) m
- estyle
1 d L" R: l6 r) B9 [3 @) W g* A - );or9 }$ h- i, { Q3 d! T- ?3 B
- );and
2 r' }7 M8 W @ - (progn
3 g- S" s7 K% U - (setq ss-index 0 ss-length (sslength txt_ss))/ Z( C) `3 K. ?; x
- (while
: v! W, d( m: B3 V6 A - (< ss-index ss-length), U$ M% ?4 V. I- P
- (setq elist (entget (setq ename (ssname txt_ss ss-index))))9 [* o! s* U! i+ x6 H
- (if (numberp eheight)
~. H) [+ E9 l( Q+ y - (setq elist (subst (cons 40 eheight) N7 q' u: ~( n; U/ o
- (assoc 40 elist)
! |3 p: _; y0 q1 h2 ?$ w - elist
% Z/ b9 c% E6 z - );subst7 {! D6 ^% d* @* v0 c
- );setq; s- l4 r! [- ]" p; c
- );if1 I; P& D# p* m
- (if (and estyle ;(not (equal estyle ""))
, S- z d6 @) m; H& u0 r+ a - (not (equal estyle (cdr (assoc 7 elist))))
; H" C2 V& ~; f2 ]: m+ I - );and
9 Z, s3 u4 n8 ^7 Y6 ~* b - (progn
5 m/ @4 ?7 a. Z1 n i- J% r) D - ;rk. This needs to be implemented as per mtext font issue in ; ddchprop_notes.txt " k& \, i1 ]; O) u
- ;(if (equal "MTEXT" (cdr (assoc 0 elist)))
' F0 y! A7 {1 w/ A |7 v& G, z9 H5 Q. K - ; (setq elist (fix_mtext_fonts estyle }7 q- V+ |- L/ s0 z
- ; elist) r6 h; m0 X% a. R* i
- ; )
) G* x, ~( j7 p; c - ; );setq then4 h. p7 J3 p+ b5 `0 [# b4 P1 P
- (setq elist (subst (cons 7 estyle)1 B2 P `( z" s) \2 T
- (assoc 7 elist)
# n3 o, e* S6 c - elist
' @0 ^- R2 y) T: L. G& N3 m - );subst( @2 |& v* p7 l1 k" w3 W
- );setq else$ M" b- x1 y# W8 t
- ;);if
; }; Y% H# w" W5 k - );progn$ b9 B6 A3 F2 H5 P% v. ]3 J2 [
- );if7 q% w" p8 _# e" a, @
- (entmod elist)6 m( x- }$ ] A# N- u4 A7 J
- (setq ss-index (1+ ss-index))
* A: l' i1 ~; M4 e - );while( z& D9 o4 o* ? p' k8 I2 o- n6 }
- );progn then3 Q" A F( K% ]# E, h% O5 X
- );if
4 x2 `0 z" P/ d0 p: l+ W
3 J0 q1 @& a* K) K2 R- (setq cmdact (getvar "cmdactive"))
, h; |* C/ P. \6 Y: w. u7 H$ p - (command "_.chprop" ss "")
. N# T! L& W2 r3 Q! h G7 M - (if (/= cmdact (getvar "cmdactive")) ; Is CHPROP actually running?7 j( d/ x6 D2 V. x0 B/ U" y% s- n
- (progn
# Z6 } l2 Y5 O. G. e - (if ecolor* S8 S: @/ {" h L
- (progn @% K' _+ v) T b# g
- (if (= 0 ecolor) (setq ecolor ;|MSG0|;"BYBLOCK"))
! Q5 `6 |# I( k& t- C' J - (if (= 256 ecolor) (setq ecolor ;|MSG0|;"BYLAYER"))' U' }* A+ @3 z; }+ P! @, l
- (command "_c" ecolor)
L# i# g+ l- w( b9 o1 E - );progn then
% D& Q* q2 R& k0 ?, D - ), A( k7 u5 |& ?+ T4 w1 Y: W
- (if (and lt-idx6 Y+ N1 a2 Y% H# L
- (/= eltype ;|MSG0|;"Varies")
" Q3 R% z) X2 k' s% u6 l7 r8 ^) q0 p% @ - )
6 d* b6 Q/ a( H; e* |/ o - (command "_lt" eltype)
- d3 t8 B, G' k4 W' h& _ - )
9 _2 f7 \6 k4 ~# @3 ]7 S) I - (if (and lay-idx
# g5 c$ q' p6 ?% y1 h - (/= elayer ;|MSG0|;"Varies")
) l$ j& e- o5 q6 b3 n% Y - )" I, y( o1 r! E( V8 F: W3 }5 y
- (command "_la" elayer)
# h( l9 B+ d8 R6 I0 \ - )
3 Z* y6 A' k- {1 d" y) j5 d - (if (and ethickness
3 B; T+ [* E$ G6 i - (/= ethickness "")
) U, @# a1 r- b - (/= ethickness "Varies")
3 D6 O7 k, I3 d7 h& f$ s - )
/ s% G" [- s+ M; A+ v# a# ` - (command "_t" ethickness)
* F5 C, {8 [5 D4 q: K - )
2 O" _1 M$ D* h1 x S: ~& { - (if (and eltscale (/= eltscale "")). q% U' V& U. i' e
- (command "_lts" eltscale)6 ?! @8 B2 |3 O. D: ~
- );if- ]5 S/ D5 q# g* `0 @
- (command "")% |5 I* w* o, h2 w
- )* C# R1 Q0 h2 B; v j1 \0 }, ]
- (princ "\nProperties unchanged") ; CHPROP didn't like our SS set
6 U- B$ o$ @/ [# {$ ` - )( \* e! l0 y" J6 Z9 l
- 3 L5 F7 L6 M/ {" S$ L* W; t* o
- );progn then OK was picked in the dialog.
& U5 V+ y, C: V! e - 9 E) v6 E4 [" S
- ;; Fred GERBER - 25-AUG-94
) y5 |5 S) V) I/ M& ^% r - ;; Don't print the "Properties unchanged" message when the user cancels
- J. |" P0 G; Q/ o- g8 q9 i2 j, i8 D - ;; the dialog because he knows that already (otherwise he would have
' t. { |8 o6 F& f" w - ;; hit the "OK" button). Display the message only if CHPROP fails for
) M6 l/ ?+ d3 ]$ ? C5 \ - ;; some reason, because it is not the expected behavior of the command.0 ]5 G8 U2 j4 l8 M
- ;;
( H( |/ V- D6 P4 U- M3 } - ;; (princ ;|DDCHPROP2_LSP_8|;"\nProperties unchanged")* i2 l I6 M9 b1 X$ Q
- );if, F& ^$ G \) N8 e
- (princ)1 I8 F- d9 S' r
- );defun call_chp2% R; U" t! E7 c0 A
- ;;1 {, h; d% F6 N0 L' y8 }3 Y
- ;; Function to set the Color text tile and swab to the current color value.% a$ w% ~' ?" Z/ J
- ;;" `# Z: f# h! s: b7 b3 c: u
- (defun set_col_tile()
- H" R. {8 F' c4 B' r* E/ T - (cond
: {9 i3 C8 P: E8 n& }, p - ((= ecolor nil)3 ~2 r. J2 N' G7 k U4 H; I' A+ U
- (set_tile "t_color" "Varies")
! r; S: \1 e( A; }& f' c6 n - (col_tile "show_image" 0 nil)
9 N: N4 j* L- B+ A - ). e; Z5 s0 O s" r
- ((= ecolor 0)6 B$ Q) T) R7 F
- (set_tile "t_color" "BYBLOCK")5 s! x @+ u) u- \2 j$ j: O6 l
- (col_tile "show_image" 7 nil) ; show BYBLOCK as white8 H0 e- d+ H! s* }
- )7 l m" O9 t! ]- a: B: t! t
- ((= ecolor 1)
# n# d, p- u- R: T4 _ - (set_tile "t_color" "1 red")6 B) ]1 h( y- S4 N
- (col_tile "show_image" 1 nil)
" _7 ?6 J$ P" |) w3 I a - )
9 P; s+ G5 I+ Z& w - ((= ecolor 2)& F) ^5 Q1 {" ?3 t0 R: B
- (set_tile "t_color" "2 yellow")
, y& U. I. m' o" ?1 I" W - (col_tile "show_image" 2 nil)
4 m8 }# x) z1 V0 I2 A - )
& q8 P% b9 T5 X) x, @ - ((= ecolor 3)
2 ?! F# o S" r, T& l+ P+ @ - (set_tile "t_color" "3 green")
# E! i/ s3 {! b1 v& P - (col_tile "show_image" 3 nil)
: L2 O, B' }- {' X9 `. y - )+ |* l+ S f6 _
- ((= ecolor 4); L% Y# _3 [* \9 @- L) G
- (set_tile "t_color" "4 cyan")
: o. R$ E- H, C/ ~& S' d - (col_tile "show_image" 4 nil)6 c/ I, c3 u& z" b1 O$ g: y E
- )
8 U) @% j$ y7 M- M( t( j - ((= ecolor 5)/ ^4 o, l }* n
- (set_tile "t_color" "5 blue")
6 f V1 E$ U$ Z; m; k3 V. I$ s - (col_tile "show_image" 5 nil)5 u7 D, Z. B; _" F. {6 ]
- )7 J2 @ A- L- @* z& {: s- y
- ((= ecolor 6), s. ^ e( ~- a$ \0 m
- (set_tile "t_color" "6 magenta")
: u$ P1 x1 X* T6 H+ ~' h) |. N - (col_tile "show_image" 6 nil): D0 J9 n4 P0 ?6 s
- )
: f/ ~7 v' ~+ E( n' ~4 @ - ((= ecolor 7)
1 W& y- K; c- X& n$ O - (set_tile "t_color" "7 white")
# A b' ]" a, m R - (col_tile "show_image" 7 nil)% m/ D% I, x$ @7 E; X7 h
- )
/ G/ l9 R* O* Y, j; I - ;; If the color is "BYLAYER", then set the tile to) g% s0 ? Z; H3 O$ E' X2 \% p: Q
- ;; show it's set By layer, but also indicate the$ r4 X) {8 w) G& J
- ;; color of the layer - i.e. By layer (red)/ D. k# i) X4 x+ j5 G/ W% [
- ((= ecolor 256)
& H T* p9 Q: k0 X - (set_tile "t_color" (bylayer_col))) x/ z1 [" V% r2 z
- (col_tile "show_image" cn nil)2 I0 ~' j" `9 C
- )* m" j, @. F; v; F0 Q Y' y
- (T( j" a6 X8 \- c! S
- (set_tile "t_color" (itoa ecolor))+ e. n- l- U9 c- N/ s% T
- (col_tile "show_image" ecolor nil)/ W& j% q* H" r, R: L# j. [5 b" h
- )8 P7 B& r L. ~. S
- )8 | R7 q8 d3 e! n `
- )
8 v* F# z- J% C! g/ |3 \ - ;;
- Z& ?! e: n" X6 v+ X, ~& k - ;; Function to put up the standard color dialogue.
y- J+ X- N3 {& i2 k, } - ;;. b2 |* K% d( ?! S1 }0 `
- (defun getcolor(/ col_def lay_clr temp_color)
, t6 ^ g9 {) l) J - ;; col_def is the default color used when rq_color is called. If ecolor! l; ~& Z2 }! P! I( U$ V6 E! i
- ;; is nil (varies) then set it to 1, else use the value of ecolor.
8 ~: @3 y: \: O1 x; k5 ? - (if ecolor
0 j h* q/ X4 c2 H) ~$ T+ Z& j& Q - (setq col_def ecolor)
* l: j4 M8 o8 a4 L' E' U - (setq col_def 1)
! _1 d( `' z; h) R0 [; R; ^ - )2 C y6 X: e; e9 K7 I1 f/ A
# p& I9 C, C+ I4 L- t3 `4 v% A) p- ;; If we're working with a single layer, get its color, m9 i0 T. A( p2 O: H* r
- ;; for use in the color swatch if the user selects color BYLAYER.9 m' W; L5 B b6 y/ M
- (if (/= elayer ;|MSG0|;"Varies")8 r# ^* u- f" N5 D$ F
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
2 p9 c5 M" @' W2 m- l* P9 R - (setq lay_clr 0)
# ?2 j1 U4 H# I6 Q - )3 C9 h' K1 Z0 o' E* w8 g0 e4 t
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))) x! o/ ?) `( o; U
- (progn
: |5 B3 E1 p' M, {/ h - (setq ecolor temp_color)- l- r; N1 t, |7 P0 M# ^
- (set_col_tile)
1 s- r; B5 L7 f9 e! Z* D - ecolor
. L6 y3 i6 X4 L. z& ? - )
?6 U6 f1 p; H) ] - ecolor
; S& q U' f5 x0 l8 y T - )
- ]+ q9 a* s7 I" H% X: V - )
$ H% j2 l" D k. e) _ - ;;
5 n6 [! S' i: X3 R9 t+ @ - ;; This function pops a dialogue box consisting of a list box, image tile,% z' M* k3 S8 ?
- ;; and edit box to allow the user to select or type a linetype. It returns
2 Q: A7 e$ ~, E9 {. p - ;; the linetype selected., C+ Y5 |; O2 y; Z
- ;;
3 M& m2 o, [. p/ |: o6 u6 H0 I1 @ - (defun getltype (/ old-idx ltname)0 H2 n/ k8 W" t Y
- ;; Initialize a dialogue from dialogue file2 @" g+ ~1 v4 A+ f- c
- (if (not (new_dialog "setltype" dcl_id)) (exit))
" g4 S! r* @3 b2 v0 c3 P+ Q! ` - (start_list "list_lt"). v2 a6 t' [1 o: f: q0 _( [( I
- (mapcar 'add_list ltnmlst) ; initialize list box9 J. P- s/ s5 d8 v, w$ f2 E! n9 [/ I; S
- (end_list)1 v1 n l% F2 u- \# J+ n: J
- (setq old-idx lt-idx)
% ^6 x6 ~0 H8 [7 `8 K$ J! z - ;; Show initial ltype in image tile, list box, and edit box
2 x/ R% S" h/ M8 ~. w" L - (if (/= lt-idx nil)% {, g; \3 P- _
- (ltlist_act (itoa lt-idx))4 ^; M) D* v. k* e8 ?
- (progn
! W$ d3 E, Z0 ?! ]4 ]+ l3 B! [ - (set_tile "edit_lt" "")
; _( N1 W6 Z' C8 @& A - (col_tile "show_image" 0 nil)/ a4 A9 s9 U, N y- h% V4 u7 ^
- );progn else
p# Z. P0 i/ M" i7 y9 G+ L* l$ U - );if6 O" l( _6 i8 ?% l K% [+ ^9 `
- (action_tile "list_lt" "(ltlist_act $value)")
" D+ p" f- g1 a - (action_tile "edit_lt" "(ltedit_act)")* N% F+ @) Y' P; N. Q% U7 U, W
- (action_tile "accept" "(test-ok)")/ v& V7 S" f1 X3 `6 p
- (action_tile "cancel" "(reset-lt)"). ]9 i7 k+ c; z2 a
- (if (= (start_dialog) 1) ; User pressed OK [4 j$ z8 h: {& r1 Y
- (cond
/ R, M! `- S' r( E; x5 \ - ((or (= lt-idx nil)
* d/ Z4 {" D* N7 ]9 c( O - (= lt-idx (1- (length ltnmlst)))
1 i& a1 c/ Q/ R' H/ L8 `2 c2 B( r - );or
Z" ~/ _1 k \, ]/ P/ N - (set_tile "t_ltype" "Varies")+ N* G5 K& [3 y- k _
- ;|MSG0|;"Varies"
+ G' q3 e) L' ~* v% y3 S - )
! J( B4 ?% A0 C% }$ h2 I - ((= lt-idx 0)- I+ \% _5 t9 m& m' d
- (set_tile "t_ltype" (bylayer_lt))9 j9 o2 N) A" d$ f4 ~5 e
- ;|MSG0|;"BYLAYER"
, G* Z! w/ `# b6 p5 L* `& O - )
, @ S; W; U. v' b - ((= lt-idx 1)( m0 a% [( t* U6 u+ m
- (set_tile "t_ltype" "BYBLOCK")5 I8 h. ^, H2 c) l
- ;|MSG0|;"BYBLOCK"
$ u$ {, W9 p6 q0 {6 ] - )
( Z5 q% O/ y1 S2 X - (T5 ]6 P9 p* d5 g B) d; c$ k
- (set_tile "t_ltype" ltname)! s4 h4 n+ |8 q; ?% a0 H D
- ltname# V m8 Y* `8 \) d( M
- )
8 P% f: W) u6 q# |2 F2 Z3 y - );cond then
- R, S# X* p( P - eltype
. j& H3 t+ C6 p6 l5 i6 t) t - );if
5 W7 y4 m. Z1 @4 U- A - );defun: d. B# f' ~( e( X
- ;;
# W6 r5 I6 @3 l, E3 h5 U: {1 x" N - ;; Edit box entries end up here1 J. w/ P4 q3 y
- ;;
( Y- n0 N4 c3 g; p6 ]4 E: l+ W - (defun ltedit_act ( / flag)3 D- V4 I9 A6 W: `- A0 h% l
- ;; If linetype name,is valid, then clear error string,) h/ x! {$ M( E4 b! ?, s7 N
- ;; call ltlist_act function, and change focus to list box.
5 V; w3 S8 R& l& R! Z3 O, J1 K3 ^" P; N - ;; Else print error message.
# K7 H6 B+ l8 i/ z8 e9 D: {9 A - * A$ z3 S( Y7 @# `- d* G
- (setq ltvalue (xstrcase (get_tile "edit_lt")))
, ]# h) e+ n; q) `& z - (if (or (= ltvalue ;|MSG0|;"BYLAYER")' X( z0 z! T3 u! H2 z
- (= ltvalue "BY LAYER")! g( |. V2 v# ~8 U5 C
- ) m1 T; S9 E" T; q3 |
- (setq ltvalue "BYLAYER")
2 b9 ?$ H4 h, T- S; l% S+ F- R, a - )
8 r$ }0 @+ u/ o - (if (or (= ltvalue ;|MSG0|;"BYBLOCK"): Q% Q. G2 p2 ?; R# k% D
- (= ltvalue "BY BLOCK")6 Z, m) Z. y! `, x3 `
- )# A- M$ N2 E9 F' D+ Y0 j
- (setq ltvalue "BYBLOCK")% z) w Y- s9 U) J' Y4 s$ m- M
- )- l9 i+ d" t( n c* Z4 e0 O1 B' @0 A4 z
- (if (setq lt-idx (getindex ltvalue ltnmlst))* c1 Q3 j2 O9 M
- (progn
5 u$ ~2 H8 u$ g. n - (set_tile "error" "")
+ R3 t+ g% R2 r2 w, b - (ltlist_act (itoa lt-idx))8 n3 o, f& X1 V5 R8 f1 L
- ;(mode_tile "list_lt" 2)6 j, w9 {( D, h$ U( y
- );progn then5 |# u$ f y2 n! l4 ~1 N6 D( q! E
- (progn, D& X O$ F& Y6 ^0 ~6 `
- (if (/= ltvalue "")% D+ V' e) T$ d6 n) u
- (progn
% y/ N: T4 A+ x - (set_tile "error" "Invalid linetype.")' i# o/ L6 j- ^5 f$ i
- (setq flag T)
4 o! S g- m* Q# K - );progn
: F: K- ?2 p/ ?8 w# j, ^ - )4 L0 |# Y% o/ ?/ \# k2 C
- (setq lt-idx old-idx)7 v+ B! l) r2 w. J0 E
- );progn else
, ?: {0 |! E3 T1 p! S# w7 | - );if
7 W4 j. K7 S4 U# x4 X - (if (and (not flag) ;added so a return will take you out of the dialog.
2 g( @5 }# i+ m* d$ b0 w - (= $reason 1)( i- m+ T- L! M# i9 O( Z, E8 L3 J
- );and6 ]5 c; {8 p4 X8 x7 s( N0 w+ p
- (done_dialog 1)
) x3 ~. j0 G# ^7 t - );if " E5 n+ l( M9 W6 o; u7 ?3 X
- );defun ltedit_act
' Z* \) ?& b) _* M - ;;( b+ t' u. I+ k+ u2 p" ~* g
- ;; List selections end up here
9 s! ]9 }. `. o8 {$ e5 O! `" w - ;;
: P, y% D3 W. n1 A - (defun ltlist_act (index / dashdata)0 p% e& v! ?8 w+ B4 J) z) T3 c- ^
- ;; Update the list box, edit box, and color tile
4 w- O$ q5 S2 w, r2 @ - (set_tile "error" "")
* \8 }7 M8 {# K! ^' R' F - (setq lt-idx (atoi index))
8 Z. @# m& a, Y* o- N4 V, ]- z - (setq ltname (nth lt-idx ltnmlst))
l3 o& @1 j9 r: d" ~5 ]% P* h - (setq dashdata (nth lt-idx mdashlist))
3 q1 d1 G$ }9 d n, F3 i/ H4 g$ y - (col_tile "show_image" 0 dashdata)2 S' j( c' ]9 ]* p5 C
- (set_tile "list_lt" (itoa lt-idx)), t3 j& S8 t1 Z
- (set_tile "edit_lt" ltname)
$ S+ E& j3 [ `8 K" Q - )" P- B3 l! x6 f9 w0 `/ L! o
- ;;
7 V8 q8 z2 i( Y0 D {* [: x - ;; Reset to original linetype when cancel it selected/ f) i5 |: E4 A& V" h
- ;;
+ n7 C# P! I4 p. M( u* `- w - (defun reset-lt ()
$ C% o- e7 U. O* ]1 ? - (setq lt-idx old-idx)
" O0 b# j+ K9 Y4 m1 ]9 ] - (done_dialog 0)0 W- [9 @. R4 s& K" Z2 U3 {, Q
- )
4 i' f6 a! l, T. L% O' q - ;;
' }/ k( m1 `! Y5 Y/ M% [ - ;; This function pops a dialogue box consisting of a list box and edit box to
) h. P3 A* i- u D- t - ;; allow the user to select or type a layer name. It returns the layer name
. g8 \7 c6 R- G: a, o. f/ R6 N - ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the& v7 [5 c$ o" z9 M. Z D
- ;; drawing.
& x8 d* M: Y" J' ] - ;;
9 F" a# p+ F, g4 T; L, h" G! T: ~ - (defun getlayer (/ old-idx layname on off frozth linetype colname)) F* e6 m. v, U" G
- ;; Create layer list the first time the layer; l3 X( S1 n+ G
- ;; dialogue is called.+ o7 [6 l0 m5 b) U' d
- (if (not lay-idx)& l3 V& e& |& d) i, q( b
- (progn Q0 h3 a, l0 @. y2 Y; V$ H9 z( e
- (makelaylists) ; layer list - laynmlst
4 O0 o$ a6 q8 Q - ;rk
9 T$ B/ r& j7 N- j" K4 K+ Z - (setq lay-idx (getindex elayer laynmlst))
: o4 ]' b: G* W% ~ - );progn
8 E3 |! _2 Y% k b2 A. T* Z! D A - );if0 ^$ K+ U- Y+ P$ s
- , |! p$ n( V* |2 U( B* r+ p
- ;; Load a dialogue from dialogue file
* v9 L" f! ?. ^# z# x - (if (not (new_dialog "setlayer" dcl_id)) (exit))
! u( X0 k9 \7 @. R/ W" ?: K5 q" m3 X - (start_list "list_lay")
, Q4 @) v, Q8 @ - (mapcar 'add_list longlist) ; initialize list box
5 Y0 n4 O: Q6 _. C" W% R) ]0 P - (end_list); c' z; K$ _4 ~; [
- ;; Display current layer, show initial layer name in edit1 x7 R* F' e' B
- ;; box, and highlight list box.: j# n5 W$ n* c! e% H9 u7 s" b' o
- (setq old-idx lay-idx)
9 c7 @4 C5 V# A' S4 s - (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))
% x# [. p. W. k - (set_tile "cur_layer" (getvar "clayer"))' i. x( h* V5 ]& z' P8 H/ ?9 E
- (action_tile "list_lay" "(laylist_act $value)")" {6 G4 `6 k* ~! A$ K+ [3 l7 l7 |
- (action_tile "edit_lay" "(layedit_act)")4 [/ ^" r8 O$ M4 P
- (action_tile "accept" "(test-ok)")
/ F2 N8 ^7 a. W8 v3 g9 L v& |' _% z+ ~ - (action_tile "cancel" "(reset-lay)")
" ~; }3 J# @5 \! s* l! c4 X - (if (= (start_dialog) 1) ; User pressed OK
* Y# Y( O8 C8 W, G3 G# a2 D7 z - (progn _8 [) z( S3 B {' o% U$ g
- (if (or (= lay-idx nil); Z. b$ T- q0 u3 t: o& D3 J* a
- (= lay-idx (1- (length laynmlst)))6 n: ~$ P6 [( C) V
- );or- }% B0 \: u; h9 e
- (progn9 l2 b( c/ z0 C, z( i7 B6 c7 |- E% ^, H
- (setq lay-idx nil) 3 e- L# f! K5 Y1 b d$ J
- (setq layname ;|MSG0|;"VARIES")
; k4 e2 l3 |1 d1 } o - (set_tile "t_layer" "Varies")
' O4 d M& g* Y9 F - (setq layname "")5 g! I' c4 @# Z9 a
- );progn
/ k0 P9 D. v2 L5 Z7 y+ J - (set_tile "t_layer" layname)
5 E+ \+ K# y$ Y% M' o - );if
S: I% {( e, w- E- O - ; If layer or ltype equals bylayer reset their tiles
& O. X0 p( K. W/ J - (if (= lt-idx 0)6 F+ N3 n+ \( W* f9 [ Z, C- ]$ l
- (set_tile "t_ltype" (bylayer_lt))# Q- O, ~: S% o3 O
- );if
( X5 J+ C9 V( h - (if (= ecolor 256)# w7 G4 f! @. z2 V" ^4 ^
- (progn! l( p1 w" U- m6 w$ c
- (set_tile "t_color" (bylayer_col))
7 `, i+ ]0 N2 F - (col_tile "show_image" cn nil), g+ h6 w5 n8 u* s, e
- )
4 D" b& Z& f) S3 {3 W, ^ - );if
; a i1 L5 u1 G; @ - layname1 `- K& G7 P- C- E. N! G0 z x
- );progn$ a( T. k/ t; {; b$ T# y
- elayer, M" f6 S( B" w- N. {
- );if
: ]9 ~: [5 o1 X. r - )
/ @- V9 T' U: T! V+ A! P2 ~: X$ e - ;;
% x& i( D/ }! W4 W - ;; Edit box selections end up here
9 X& e8 `% P$ I7 P5 C& B - ;;9 I' _6 o# ]& q) U3 u# F
- (defun layedit_act()
" h0 e: N' R6 P, L) O4 S3 O' ] - ;; Convert layer entry to upper case. If layer name is
9 k" g! ?! |$ O% {; l4 }7 u A - ;; valid, clear error string, call (laylist_act) function,
% _8 B- ]# U, d$ m# V! } - ;; and change focus to list box. Else print error message.
6 p/ G; a1 u; J8 K( m2 f - (setq layvalue (xstrcase (get_tile "edit_lay")))" |* B1 }4 [" q/ Z
- (if (setq lay-idx (getindex layvalue laynmlst))3 @- }! v4 G% @0 Z G4 c7 y) J1 C5 j
- (progn3 p A! }4 F7 y) L
- (set_tile "error" "")" x+ h, a4 Z- K* }
- (laylist_act (itoa lay-idx))
6 J8 U% N% K4 N, w5 y - )! s9 Y& s2 p: C5 A' a1 y
- (progn
5 h8 l& `' W& Y7 ?! f9 g - (set_tile "error" "Invalid layer name.")2 g+ P/ w! G* `' U8 @" _
- (mode_tile "edit_lay" 2)4 A; C4 [% m0 ~
- (setq lay-idx old-idx)
Y/ T* n( S6 D5 `, b - )7 \0 g/ a' Z e3 H9 Y, E7 P
- );if7 y0 ?5 o9 r0 h
- );defun
/ X/ X/ b* D [$ g, o - ;;
' J1 y$ h& m" A, \- T0 p' V - ;; List entry selections end up here- w/ J: x4 F. j* y
- ;;2 v7 C/ i1 F$ g5 f& G4 e
- (defun laylist_act (index / layinfo color dashdata)
5 \' e3 Q3 k1 t2 o0 k( J! r' F - ;; Update the list box, edit box, and color tile& \5 t8 |& ^3 {
- (set_tile "error" "")
' I) }+ \" l* w4 ^3 f" s0 ? - (setq lay-idx (atoi index))5 F# B3 q& Q4 T% O, s; p
- (if (not (equal lay-idx (1- (length laynmlst))))
. e0 {! m( w+ V0 Z - (progn 3 ^. f( L7 ], ^: {1 ^ U
- (setq layname (nth lay-idx laynmlst))9 T$ f& a1 l7 L
- (setq layinfo (tblsearch "layer" layname))" ]2 ^% K) \+ Q9 }- l: p* M: K
- (setq color (cdr (assoc 62 layinfo)))
5 |: t' g% a; h. w: s# P - (setq color (abs color))
% l3 `: x1 y1 H! x - (setq colname (colorname color))& D/ l+ d8 p; P
- (set_tile "list_lay" (itoa lay-idx))7 k+ ]" e, h V( O; y$ l
- (set_tile "edit_lay" layname)6 R8 n" D j4 s2 K
- ;(mode_tile "list_lay" 2)
# m; b" U% Y9 _# c e$ Z8 G - );progn then ! h5 Y$ I- u$ e
- (set_tile "edit_lay" "")
( \! i8 i: t9 i( x6 C - );if " e5 O, y. O# ]
- );defun laylist_act9 }4 y4 t$ F$ P% r
- ;;4 r! e. H# J- p6 ~! V
- ;; Reset to original layer when cancel is selected
+ N0 p, u- t/ M9 p& ]' i - ;;
0 f' q* r4 X* X' n e - (defun reset-lay ()
( i) Q& E7 I R9 }: m1 A - (setq lay-idx old-idx)
% G+ E4 g( W& _. a* }5 ~ - (done_dialog 0)
: J# ?; w* [: d" P* ~ - )
% V8 |6 q$ a. d* i - 0 Z- d# k! }/ E. G& W
- ;; Checks validity of linetype scale from edit box. It checks to5 r4 D; W( G7 `
- ;; see if the value equals "Varies".
( r% Z6 ^6 ?' c( B
, z }1 r: a+ M; u2 ?- (defun getscale (value / rval)
) A" {, R8 v) e$ g: t7 T - (setq value (strcase value)4 N9 f- C# u) P- g( y, P
- rval (distof value)
5 `$ ]0 X% `3 T; M9 y - );setq& h7 S- C0 y( M' Z1 z! H7 m) C
- (if (or (= value "")
/ M; @- z5 g9 w& r - (> rval 0.0)" @5 K1 G0 F7 v" |$ u
- )
2 V$ V: p0 D4 O% k/ h* V$ x, ~4 E - (progn _" C4 u: [, q9 f
- (set_tile "error" "")7 e8 V( G( E8 h
- (if (= value "")* C( F0 E3 l+ H. U! U; I0 O
- (progn
) r$ O# T; [2 U' V; B - (set_tile "eb_ltscale" "")$ q3 Q0 |& J8 g6 b3 r
- (setq eltscale nil)
% }6 g5 T8 X T; N0 H - );progn then+ o/ I4 I: a* W
- (progn9 [+ o& A: z* a0 R% L. p
- (setq eltscale (distof value))( O2 n" O: I2 ?. e
- (set_tile "eb_ltscale" (ai_rtos eltscale))
! x8 @1 W; o5 A' m" S) M' W) S - eltscale
6 _+ v2 l% a" S. F0 W - );progn else" G4 {, J a( _. s# Y2 u4 R
- );if# ^" w: I( @9 W) Z& n
- );progn$ t5 n3 F7 F* x7 P1 K5 p
- (progn) u6 T% J& V6 `. e" \5 R
- (set_tile "error" "Invalid ltscale.")/ r4 \! v9 J4 C& y; a
- nil6 L/ e- }8 p3 w8 _8 Z6 w* A
- );progn else
' N" f* p) L# A9 l1 L/ V N - );if9 y9 U7 f# F5 }6 G. ]' A# a
- );defun
# l: }6 h2 d. v$ P( E8 r; S1 C - ;;
5 [4 ]3 G4 e5 j: K1 n' n6 Y - ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a
[; u4 Z5 \4 ~1 W1 i1 x - ;; string can't be converted to a real, this routine checks if the first
& v& ~" r+ Z" G9 V7 ] a+ Q" h - ;; character is "0". It also checks to see if the value equals "Varies".- b& L9 X2 }0 R$ G( p) O
- ;;: [2 i: ^5 E. \, {
- (defun getthickness (value)0 q: v, e* q7 }- q0 I* M5 w
- (setq value (strcase value))
8 B# C, H( `9 k0 O$ w - (if (or (= value "")
. K$ n) S. z) Q" R# H - (distof value)2 Z, ^( Z' `) Y6 M- b
- );or
) H, R. f' i" B; `' i r6 j( w p - (progn
" _+ P) o- P4 [9 U - (set_tile "error" "")0 I* J$ _0 V* ^: Y: ~1 A, X
- (if (= value "")* Q+ W7 }" B, n
- (progn
0 z4 V1 y% G3 B - (set_tile "eb_thickness" "")
$ U. D3 Z/ M3 R9 k! O4 @ - (setq ethickness nil)& ^4 ~) M6 a) Z1 `; h) M5 t- O
- );progn
2 H$ y/ V% H! H; n' w$ E - (progn
% f) p7 }- ~4 _* t( U, f - (setq ethickness (distof value)) f$ J7 @4 ]3 h. ?0 Q# t
- (set_tile "eb_thickness" (ai_rtos ethickness))
, b! C1 j" p% v2 u' v8 T) p' _ - ethickness$ @* u E" Y: w9 A m S4 i9 k0 h
- );progn
) Z7 z" T: j" Z5 m6 Q - );if% }. k; x7 B2 F0 x. j; Z5 B
- );progn: D% w3 X- D+ Y: I- L
- (progn
9 ^8 Q' c. b( l+ L - (set_tile "error" "Invalid thickness."); {1 X5 f8 y6 `- V$ i
- nil: Q9 }/ z" u6 r$ J
- );progn
; O {4 N, x4 D; h7 ?% P - );if
: K, L. E0 Z- s0 g3 |6 L - );defun - a. D$ `7 }% ]# n0 F; L3 T
- ;; _ x/ u0 ^0 P; u) E1 ]7 l
- ;; Checks validity of polyline elevation from edit box.8 [3 U6 u4 v: A" n* x9 @$ F$ L
- ;;
3 t5 M; ] w0 Q - (defun getelevation (value)
@ ]* p) }" V: p0 P* L' B" q - (setq value (strcase value))- } M- S! I6 \/ M
- (if (or (= value ""): M# J- I) t* N' |
- (distof value)0 ]% j9 N6 s+ j9 s5 X, \% K
- )
7 {6 C. ?$ p, E - (progn1 H5 B% p$ M6 u
- (set_tile "error" "")# m/ P( d+ @5 {+ D$ E9 D
- (if (= value "")
, I R( s+ d) N' y7 n - (progn
% k6 m; ^7 o' s, z - (set_tile "poly_elev" "")+ C- }+ A D5 N
- (setq eelevation nil)/ F1 ?6 h" B' c) v1 F
- );progn* c2 K4 ~( x5 i5 ]0 u; |$ g% e
- (progn
$ B$ V; y% H# y7 x - (setq eelevation (distof value))
' v( X6 c6 I. u$ t2 A; k" n- [, v - (set_tile "poly_elev" (ai_rtos eelevation)): X5 M( }5 S1 u
- eelevation/ h/ B( B% T3 q3 N# I R
- );progn
& \3 i) ~/ e9 A# w( B - );if
- ~2 H9 e; u& S8 o3 ~2 r% k0 b - );progn+ b0 ~9 m+ R* ^/ O: a& n
- (progn7 R8 B% L M p: w/ W$ B! r
- (set_tile "error" "Invalid elevation.")6 n" a# x+ P2 d4 M* {0 _. r
- nil
5 Z% O1 S& X0 i3 a: x4 q - );progn. K( v# y+ a3 j8 I: R
- );if
0 t; J, m& G$ I5 B% |9 z% U - );defun* v( Y; X, a3 v0 I' _
- ;;
" Z8 A; ^4 N( c$ U4 k6 G - ;; Checks validity of polyline width from edit box./ X3 y! k7 D6 t' m& p* i
- ;;
3 t8 i- d0 Y' z( |9 R2 T - (defun getwidth (value / rval)
& ?" U1 r" c4 K5 D6 X, m* p' S - (setq value (strcase value)
2 i* m0 O( z5 ?/ m% J b! a0 @ - rval (distof value); ~& X6 G/ N. N5 R
- )
]4 O' y5 T* @- h! w3 E4 I- r - (if (or (= value "")
3 S$ W0 p+ c; Y( X; k( _; e: \ v - (>= rval 0.0)
$ H! z7 S2 x7 W% t - )+ [) Y; T0 G; U e+ O
- (progn
" p2 Z* h! b" }& K8 i) B - (set_tile "error" "")
( Q! b2 ]4 K9 r$ I - (if (= value "")1 q7 j7 |. k$ |$ n3 e" o6 ]0 Z, v/ F
- (progn
5 r6 F1 v" Y# C8 Z - (set_tile "poly_wid" "")( @! W/ z$ Z G
- (setq ewidth nil)+ F% T5 r' ]) e& o
- );progn+ j! a# E# j9 ]2 Z
- (progn5 X U8 J0 n& R$ P2 ^+ o
- (setq ewidth (distof value))
; p' V- n" ?. M: \1 T c2 {' E - (set_tile "poly_wid" (ai_rtos ewidth))/ _/ C+ P) d5 k3 y; r
- ;width
2 s( q1 Z3 H, f2 T3 x$ L7 ~ - );progn6 ]( s: Q; n: a0 c# N; a7 u7 q
- );if
5 A# J) Z2 ], [1 L! a5 A2 ^ - );progn1 G# F8 t2 p* }. F8 O
- (progn$ j- P' S2 S8 x! y6 e, z
- (set_tile "error" "Invalid width.")4 H+ J8 Q5 y/ X' s. A. N
- ;(setq ewidth nil)
[2 h& y& m3 y. `4 ]5 `8 [0 r - nil
+ j+ F4 p k3 w7 n4 } - );progn
1 n; O* }, s% n, @* Y - );if
4 K b, E/ ~# v% d" i - );defun
: ?. j; R- c0 L) B2 u [, W0 m! N: l - ;;1 |' T+ Y# v! U9 W
- ;; Checks validity of text height from edit box.
8 f4 I+ Q) ~& _2 ~* L4 b3 W - ;;( o6 W% \$ }- r% Q3 F- t$ \# }
- (defun getheight (value / rval)* z- N: Q5 K0 h, X- A2 n; ^! o
- (setq value (strcase value)
6 Q8 {5 O1 z9 m. Z0 q4 e) p - rval (distof value)9 g4 Z7 c/ b: b" Z. p, Z
- ), M7 F# q1 H! R3 E
- (if (or (= value "")+ v7 ]. ?& k) d# ?
- (> rval 0.0)
5 R4 {/ W8 v7 o# P0 X! y - )
/ x2 ^. J0 C9 i V2 o - (progn
4 V* C2 @) u- w5 \1 @" X - (set_tile "error" "")" C# b9 X& Z4 a; y' L* @
- (if (= value "")& l+ u9 f# A0 L& `2 j7 H
- (progn* w" C3 b) e' }/ ^! W4 Y
- (set_tile "text_hgt" "")
. D; ^0 i( u: z - (setq eheight nil)
# y! T2 i9 c; H) j3 R% f - );progn2 L3 j6 I( S* Y: w! b+ G6 i
- (progn
. W) K" [: w: s+ i/ b - (setq eheight (distof value))0 w) E1 H0 h8 v, \; { p" M
- (set_tile "text_hgt" (ai_rtos eheight)) o; j# d' B- \% r7 C3 e. i
- eheight
; g b- G* |, [4 ]" P; H: {$ L - );progn
) \' G% ]9 b; d- P - );if
3 L* T: v, k6 l y) h. P+ ^ - );progn- F* [4 Z" o! K
- (progn. E/ Z& ^& Q0 `. m$ u9 t+ d
- (set_tile "error" "Invalid height.")
+ f* f4 u/ i. M2 O v/ ]# d( N - nil
2 r( N0 f9 Z& I& e& F - );progn
) F+ y0 x& ~$ H4 [ - );if
+ m: r% Q& ^+ |, R- P& y( Q - );defun+ H% j( T4 s5 m, a, X B" B+ o
- 0 {' ` X/ _9 ?0 @' D
- (defun getstyle (value lst / rval)
) [) ^% i: l* Q" I% R - ;(setq value (strcase value))
' ?, @& r1 [" _/ W% [! H. G3 O+ n - (set_tile "error" "")% S0 z# F8 [$ l. A7 U5 O' h; [% D& _
- (setq estyle (nth (atoi value) lst))- G0 K! y5 k* B
- (if (equal estyle "")8 p! b, J, W+ \# h& i
- (setq estyle nil)4 c0 M( {/ O5 q- K% }. R0 d
- );if A# V$ {& A7 Z: R
-
" {, V) g) z; ]! d2 u - );defun getstyle
: s7 [" U: F- f: M0 ^0 _ - 2 a: \: y0 d e; f# {% n+ h, s
- ;;
( a* ]' V2 S& H+ J8 z - ;; This function make a list called laynmlst which consists of all the layer' O8 U0 m0 O! k9 W
- ;; names in the drawing. It also creates a list called longlist which1 T' v8 O& A- n
- ;; consists of strings which contain the layer name, color, linetype, etc.
& n# Z7 ~/ `6 h/ _7 d) x. U - ;; Longlist is later mapped into the layer listbox. Both are ordered the
- `# W# S) z' \( W) k, ` - ;; same.8 O7 y, A" s! N9 o- B# f
- ;;: W7 r, R7 ^# ^+ q! F3 w: x! C
- (defun makelaylists (/ layname onoff frozth color linetype lock vpf vpn ss cvpname7 L) e4 p- k* A: u6 U# c
- xdlist vpldata sortlist name templist bit-704 I) f4 C6 m$ b4 A3 ]( P3 K& f
- layer_number8 ?5 N; Z% X2 F' e: |
- )- K- }- ^2 k& Q1 i5 f7 g/ f1 O
- (if (= (setq tilemode (getvar "tilemode")) 0)% b: c; z& u8 o. u4 z: `
- (progn
2 Q/ [1 D) x* z& b - (setq ss (ssget "_x" (list (cons 0 "VIEWPORT")0 s) V6 X; ~: `! K3 _5 e" H
- (cons 69 (getvar "CVPORT"))
2 g, x" o z! S4 q: [* ~7 J& i - )) P$ k/ |3 b& l& s, a' f
- )5 u( d2 g1 E1 m6 D$ R6 W# y
- )
1 @( E+ S/ r$ d+ X% U3 S - (setq cvpname (ssname ss 0))9 }7 c. j/ h% E( @# O$ I9 ]
- (setq xdlist (assoc -3 (entget cvpname '("acad"))))5 d( e/ m4 O& b9 x" K
- (setq vpldata (cdadr xdlist)). I9 r' Q: Y4 O9 A# r4 r" K& b
- )
$ g, b w# F" k# V - )
: p" ]& A& _8 ^1 T/ x - (setq sortlist nil)
1 ^/ M9 x2 d" c9 _7 G% I - (setq templist (tblnext "LAYER" T))$ A0 i8 _1 s' W4 J B% L& P
- (setq layer_number 1)
0 S, l4 {( l I) k8 f - (while templist
! p5 G3 I9 a* r6 E5 i8 e - (if (not (equal 16 (logand 16 (cdr (assoc 70 templist)))))
Z$ ~* H$ u9 M' T7 l - (progn
1 l& X6 S1 ]% d: q - (setq name (cdr (assoc 2 templist)))
$ t: q4 }$ g3 V) ` - (setq sortlist (cons name sortlist))2 ^2 p! M, _" p; J# v$ }. Z' {
- ;; Not dead message...
" A5 g' y( i/ J4 X6 U7 m - (setq layer_number (1+ layer_number))! ^# r1 H; I# w) w
- );progn
7 X7 q8 E( K; }$ h* Z - );if; ~- ^! T* Z S- V
- (setq templist (tblnext "LAYER"))8 Z6 V/ @/ ^/ G) G6 P0 s
- (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))
3 @; M+ E8 F o5 Z - (set_tile "error" (strcat "Collecting..." (itoa layer_number)))" R8 b& \: ^5 B2 ?2 D% o$ _
- );if m' X+ s5 T8 A; w9 i$ J
- )
' F" d8 B: M& g! z0 y- { - (set_tile "error" "")' t: O) e- G- d n9 ^
- (if (>= (getvar "maxsort") (length sortlist))9 s2 X. s+ Z4 M, q; i
- (progn
' _! G# z3 x0 R. N* x$ ] - (if (> layer_number 50). S0 x4 q& o r4 l f- P) ^
- (set_tile "error" "Sorting...")/ g- r( D1 H; ~ h$ B0 h8 I6 H
- )
# ^7 i- s: N+ z2 p% r - (setq sortlist (acad_strlsort sortlist)); _2 J/ D6 ? C" Y' z. F# {
- )
3 t6 z! f$ Z! R% v - (setq sortlist (reverse sortlist)) _; S6 t, z& ] J+ M1 G' w
- )
* d* i: g+ m' K: r; X - (set_tile "error" "")
( Y* Z6 R! M1 {) Y! P4 j+ t - (setq laynmlst sortlist)
3 q4 m1 @8 x- ~" m& q; ` - ;rk
* U T' ?# F7 y$ x - (setq laynmlst (append laynmlst (list ""))) & M7 l( P! f. q
- ) Q( _; v6 S% \, Y8 D, U( U
- (setq longlist nil)
! W" Z5 J! u9 J) E" Q3 o6 V - (setq layname (car sortlist))
5 E- u8 h9 R& V3 l- Z - (setq layer_number 1)/ ]; Z% o! S; x4 z5 Y& c
- (while layname
5 `* u" ]2 k5 g7 J+ U6 i - (if (= (/ layer_number 50.0)
+ _/ Q( t2 C5 w% a" J - (fix (/ layer_number 50.0))
. ~, e8 H" k. F! c0 | - )
- W5 q( O2 T m& ~+ Q - (set_tile "error" (strcat "Analyzing..." (itoa layer_number)))
7 {) ~* o' S/ ?+ N - );if
/ O2 O; w: u2 y0 x3 @ - (setq layer_number (1+ layer_number)); {) o e3 z# b* ] D% _
- (setq laylist (tblsearch "LAYER" layname))
" x& ` m& r. V& ]1 h. n - (setq color (cdr (assoc 62 laylist)))* a4 }9 R$ X% d% X" ^
- (if (minusp color)
8 ]# u8 O! B- s3 v( ?% k - (setq onoff ".")
0 P. _+ k! Z' Q7 z2 A! u9 } - (setq onoff "On")
1 x( S7 T0 A, v. I0 ~9 i - )7 o4 V3 b2 P3 b/ k
- (setq color (abs color))
% s+ S) Z- |" Y1 G2 y8 b - (setq colname (colorname color))2 {& Y0 H: ]- }1 H+ ^0 D6 \
- (setq bit-70 (cdr (assoc 70 laylist)))' o' |' { p [: d" A
- (if (= (logand bit-70 1) 1)/ u5 z- O8 c H. x9 r
- (setq frozth "F" fchk laylist)
7 e1 U( E1 s+ Y4 I - (setq frozth ".")
9 S N, n+ q5 D+ K# v8 y; X - )9 Y6 p! k+ C5 R$ Z( e) o6 s
- (if (= (logand bit-70 2) 2). D. T; R' Y5 d
- (setq vpn "N")
) }9 D4 v* ]4 A4 Q$ [ - (setq vpn "."); l4 I4 |5 \& R' l
- )
. a; s! ^" d0 i/ u5 c2 n - (if (= (logand bit-70 4) 4)
+ t3 m0 Z! [5 U5 i( O - (setq lock "L")( z% o1 N0 g. F9 ?. Y8 s: X
- (setq lock ".")- u. m/ G, z! I. j. f) e4 Z
- )
" z p+ p7 O" N; G - (setq linetype (cdr (assoc 6 laylist)))( e* e# C2 [6 o1 }3 h! ?( P
- (setq layname (substr layname 1 31))
# F: Q8 C' y4 F: \ p& K; O - (if (= tilemode 0): i# ?' Y d% _8 I
- (progn
( B) |! a; s- @' y - (if (member (cons 1003 layname) vpldata)$ r+ p( [# o, o6 d
- (setq vpf "C")
N9 H* ^9 H n$ k3 S - (setq vpf ".")
) Q" c; y* N# O6 B) u! d, ~ - )
1 l# i- \) R2 o9 j# W k4 M) } - )# {% N6 l3 |( T8 a
- (setq vpf ".")5 s# ^* i# @+ Z* G$ b5 [
- )# `' s5 O1 f0 {2 F$ {5 B7 ^! H8 A, M
- (setq ltabstr (strcat layname "\t"! w3 B) t# a/ Z; ^* X
- onoff "\t"1 u/ _/ b# v4 p! H% R5 |' b
- frozth "\t". h, { u9 x: u# U
- lock "\t"
! f R* L4 m9 P: |1 F - vpf "\t"
) \4 t, Q* w2 I& \& D# I9 V - vpn "\t"
* V8 r+ H+ z }! y - colname "\t"" j6 j2 j. X9 c, u0 P9 U- c0 m. q
- linetype u" Z; T* C: C- V+ G% a/ B6 Z
- )5 n' u: k4 r& Y/ o$ N
- )
* u4 u$ g1 W6 c" y4 a' \6 U4 P - (setq longlist (append longlist (list ltabstr)))
/ U s" x3 v- y/ ?, T( R' e3 x7 U - (setq sortlist (cdr sortlist))
4 H4 u3 k5 B( q/ u6 } - (setq layname (car sortlist))
. o- Q- r; h9 L0 F - );while; ?- r! p5 f: F* y* n9 E$ y" M
- (setq longlist (append longlist (list "")))
% E9 ]( M' d. K+ m% r. t - (set_tile "error" "")1 R ^2 f+ M0 `( X0 r; T" ]
- ), ]8 H9 L3 n/ i2 N# {
- ;;! ^" I3 ^. t7 ~6 _
- ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
, a1 ]; Y+ L: z7 m - ;; linetype names read from the symbol table. Mdashlist is list consisting
* K, |/ r" |8 \$ C, _4 @ - ;; of lists which define the linetype pattern - numbers that indicate dots,3 h( K' B* t6 F6 l W, L
- ;; dashes, and spaces taken from group code 49. The list corresponds to the
7 S( |5 t B x: H7 ^ - ;; order of names in ltnmlst.0 V" Q0 H' m( p$ y
- ;;
7 v+ Q9 B; e0 W. D6 A5 w, O - (defun makeltlists (/ ltlist ltname)% C* S: _( o H1 i! L$ S3 |
- (setq mdashlist nil)
. A' D) z3 _$ S& h/ x7 q$ u - (setq ltlist (tblnext "LTYPE" T))' {4 X. e! \ X8 _0 e. C
- (setq ltname (cdr (assoc 2 ltlist)))
' O5 S5 h# |- M+ } - (setq ltnmlst (list ltname)): F; D1 X4 @/ U2 ~* _) I
- (while (setq ltlist (tblnext "LTYPE")), p6 w" {6 A+ s! C
- (if (not (equal 16 (logand 16 (cdr (assoc 70 ltlist)))))
+ H7 {& X) x2 k0 |1 L4 V4 Y - (progn
0 `" k& }; }5 @% M/ t% O - (setq ltname (cdr (assoc 2 ltlist)))+ n% C7 T% v8 ^6 m! @4 V- V9 [
- (setq ltnmlst (append ltnmlst (list ltname)))
' ?/ c E2 U& ` - );progn
, A- r& W- v( V* c2 p" ^6 q - );if . L' j+ y) u3 Z0 |" u3 L) U
- );while) ?! e. A3 ~1 n7 s) E# D
- (setq ltnmlst (acad_strlsort ltnmlst))
2 y3 T+ b R1 I& L9 w- T) L - (setq ltnmlst (append ltnmlst (list "")));add by rk
8 K% @) y9 a, j, u; u" L6 s; p9 L - (foreach ltname ltnmlst
! o2 } X, g4 e - (setq ltlist (tblsearch "LTYPE" ltname))! Y2 `/ W' u+ S" w8 }
- (if (= ltname "CONTINUOUS")2 i5 j! M$ d4 K6 r8 I# N! r
- (setq mdashlist (append mdashlist (list "CONT")))" s- T; p A/ s
- (setq mdashlist2 q& l% b9 z' N1 B
- (append mdashlist (list (add-mdash ltlist)))2 c) a; e. N C, ~! f* L" G# w- k
- )
: |/ I/ ]4 m* G2 F/ M# l, s - )" Q }% l6 {- F7 K
- )
; @9 x5 [6 `' {1 o% H* S3 l3 u A y - (setq ltnmlst (cons "BYBLOCK" ltnmlst))! f y6 {6 E( ~* p B# O1 A ?
- (setq mdashlist (cons nil mdashlist))" d+ p |) F7 S0 D4 s8 ~+ S
- (setq ltnmlst (cons "BYLAYER" ltnmlst))
( e2 N, T* j+ Z4 H* M9 M! o - (setq mdashlist (cons nil mdashlist))4 g1 P5 Y9 g: p8 C) V+ \3 j1 w
- )1 m1 s; J; q6 H8 D# O% ]( t
- ;; L9 H* x4 Y6 l8 P* W4 h
- ;; Get all the group code 49 values for a linetype and put them in a list2 c+ U: m, b- o/ o" P4 y
- ;; (pen-up, pen-down info)
1 B* D8 G3 G# Z2 x% n - ;;
. D4 j& Z. J1 l" \/ V# r9 R - (defun add-mdash (ltlist1 / dashlist assoclist dashsize)4 j! r h- U3 q* q, V
- (setq dashlist nil)5 x" t) S3 \) a1 v
- (while (setq assoclist (car ltlist1))
. _3 S/ n/ F8 i. b' z5 {' F - (if (= (car assoclist) 49)
7 G' \$ F7 H( _$ Q e - (progn7 F6 |, r% Z) B4 h% i% o
- (setq dashsize (cdr assoclist))
% k- C9 _* ?* E1 v, \ - (setq dashlist (cons dashsize dashlist))
% Q. f* F8 h1 g4 [* i$ d - )
0 R) Y- ]8 O0 v& q9 l7 M. v - )
# O7 m% z. ]* M' D/ l* f+ J: S - (setq ltlist1 (cdr ltlist1))/ F# O3 v7 k& p9 L' I
- )
' I; K6 w) q+ o - (setq dashlist (reverse dashlist))
1 x" b6 n" D1 K& q( ? - ): K4 O# }9 B$ I+ n' \: o! k
- ;;
6 Z! J" t8 I+ L4 B4 ?% t - ;; Color a tile, draw linetype, and draw a border around it
* a0 }: L. b* @5 L* H8 W3 ` - ;;" D: Q y' \ v0 m
- (defun col_tile (tile color patlist / x y)9 B5 R- X+ g2 ]6 N' T- W* y
- (setq x (dimx_tile tile))
4 n' p3 a s8 k! i - (setq y (dimy_tile tile))5 T3 I+ a' ?# I5 u, \' V( }6 q5 |
- (start_image tile)
4 t q1 F8 i: a; Z, N0 J; A - (fill_image 0 0 x y color)
& x! @# s: O2 _+ a7 g - (if (= color 7)
7 R$ F: g# J9 ?: ?2 D - (progn* A5 O$ q& [9 _/ o0 a
- (if patlist (drawpattern x (/ y 2) patlist 0)) U8 ^7 z3 i' n8 q% j
- (tile_rect 0 0 x y 0)
- T1 j3 W8 q/ L/ T ~' x; j- C - )+ l/ C# Y8 p1 [2 M# U: p
- (progn
' {: h5 ^- L9 \- q - (if patlist (drawpattern x (/ y 2) patlist 7))
5 v ?) t& ~' s/ r - (tile_rect 0 0 x y 7)% M: O9 c8 [" ]( e" ~3 A
- )1 \2 q* e$ J: E3 C; d4 w
- )
# T0 n( d" ]1 O4 \$ t+ J - (end_image)3 v/ _) X' m( t' F$ D* r
- )
8 O4 r0 N O3 ?' \$ \6 ~: v - ;;) ?: T& C( f k! T
- ;; Draw a border around a tile6 n: \5 f' Q6 Q6 u; U2 r$ n5 }8 O
- ;;
+ f' k. H- U, F% B - (defun tile_rect (x1 y1 x2 y2 color)
4 c3 A! j/ p4 l' V6 v6 Z2 r - (setq x2 (- x2 1))
: E8 h: X4 _ |3 } - (setq y2 (- y2 1))
1 v# y' n9 e: |0 {& J' Y3 \9 S - (vector_image x1 y1 x2 y1 color), B h6 q1 S' \4 A; |
- (vector_image x2 y1 x2 y2 color)1 V3 h. z4 R' C& q* e7 T- @) A
- (vector_image x2 y2 x1 y2 color)
$ b; j$ c3 i" t& [! R0 W! G7 i4 B6 l - (vector_image x1 y2 x1 y1 color)2 j( }& B/ [3 t+ L7 n! ]9 V" T
- )
7 M* x, ~% a C8 k" L - ;;' t: G7 N# K7 i# Q6 `( r! B
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
, W8 ?$ q5 ^6 b' h$ K5 p - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a# Y% O# |/ ~4 y1 f: i
- ;; list of numbers that define the linetype, and color is the color of the
# C' i& f/ i: \' b) p. d0 P& m - ;; tile.
u2 b- n2 B6 Y5 n: _ - ;;
+ k/ E% b- e: D( p - (defun drawpattern (boxlength y2 pattern color / x1 x2. r! C3 o) E5 j
- patlist dash)* J9 u5 B B- M
- (setq x1 0 x2 0). I2 \9 e# g, ~# H( r, ?8 `; r2 m1 L
- (setq patlist pattern)$ ] K1 n" W8 a8 b
- (setq fx 30) F N% e" ^# C
- (if (= patlist "CONT")8 q, {3 N B2 M$ s0 S# F
- (progn
- |* `2 H; b( R( d - (setq dash boxlength)% X5 I* N7 ?, r8 Y( M9 M' X. t
- (vi)
: E' H5 [& X0 Z, D# @ i) M* l% V - (setq x1 boxlength). v" b5 R: l+ N0 u
- )3 C3 f0 E2 |( ~2 {8 `
- (foreach dash patlist# o1 n9 S `2 c: u) T
- (if (> (abs dash) 2.5)# V9 p# _- _) E3 X
- (setq fx 2)
9 U8 M- m. ~% l/ y - )6 N2 b# X% D% ~6 q7 c
- )9 p1 r2 C: X) u5 M { j- _$ m
- )2 D0 E& c" @) ?; X8 y
- (while (< x1 boxlength)
4 c& r9 j3 ^6 x0 x# Q$ H8 l$ y - (if (setq dash (car patlist))- z5 d: }# w2 j1 J: J4 q
- (progn
8 _3 @7 z5 M6 D- R$ Y - (setq dash (fix (* fx dash)))
& C% t2 v+ K: j - (cond
4 \7 Z6 g! S3 B! u: B0 ]9 m) A+ V - ((= dash 0)$ e. r$ d# c% m6 Y" f5 ?2 h& E: P
- (setq dash 1)) d4 `! f0 T) _
- (vi)
; ]+ v% y9 }7 J$ M- R& X/ S, F0 L - )8 v3 Z0 F6 \, G3 F1 f5 X
- ((> dash 0)' l# D; o6 I$ C, y
- (vi). j8 z; S/ L4 U% O- }
- )
4 t4 }. n( `: f - (T
& l8 N0 v! a- {3 c9 ~4 K- S - (if (< (abs dash) 2) (setq dash 2))
9 r# A4 _: e4 Z* M5 M - (setq x2 (+ x2 (abs dash)))
6 |2 Q4 z/ h5 c) o - ). k' ]3 E8 S* a* p
- )1 o1 B0 c! v9 b: D0 b- ~* I u
- (setq patlist (cdr patlist))2 z. o- Y6 j: R# o3 l8 o# F
- (setq x1 x2)$ q0 x+ Y& ^7 b1 c# ?
- )$ ~- t' W0 K4 i6 ?" W
- (setq patlist pattern)4 ~! w0 G Z! g' }* }/ B9 W
- )
( S5 l. Z6 ]" T - )
" ?) ~, k& X. @- t7 d - )+ O" p8 ?# c8 I: N4 s
- ;;2 o: N% Q% ^% w3 [) p) v3 W5 E4 ]
- ;; Draw a dash or dot in image tile+ a+ c7 G9 L3 s- p0 J0 H+ K
- ;;
# t% B( c. p1 O; n& s - (defun vi ()) j. V0 {* q1 P& f
- (setq x2 (+ x2 dash))& Y4 d/ q& }/ e: @! R5 X! ~
- (vector_image x1 y2 x2 y2 color)
# a& j8 f `; r: }: o - )9 G/ m# A! j0 D9 c+ h, `1 s
- 3 |1 B. o- z A% T9 L6 T3 u7 D
- ;; This function takes a selection and returns a list of the color,
`9 ?) Z8 C9 r6 f% ?' Q2 d/ D8 j - ;; linetype, layer, linetype scale, and thickness properties that; Z( K* n l5 L# t& [. x$ W
- ;; are common to every entities in the selection set - (color1 `7 x/ D* Q& g
- ;; linetype layer thickness). If all entities do not share the same5 y/ r7 d' M" s4 R" [5 B8 f
- ;; property value it returns "Varies" in place of the property
3 S) K( [! @; D: U& N! d! A9 c - ;; value. i.e. ("BYLAYER" "DASHED" "Varies" 0)( {; s: e! k. Y
- ;; The last item in the return list is an integer flag for the1 N1 x' ?# P' A
- ;; homegenity of the selection-set object types.
, y$ E: F, w7 C& ` - ;; 1 = All polylines7 }9 \ V3 v/ a" r) I# _ C, R5 G
- ;; 2 = All text or mtext or attdef, or a combination of the three
' f a; D! v7 c7 d9 u - ;; -1 = Any other mix of objects9 K+ n4 K- `& H5 J' S: x' A
- / M+ e8 k# B3 }4 V( e6 {; |1 p
- (defun getprops (selset / sslen elist color ltype layer ltscale thickness
, K1 S% C0 b+ V6 h- ]5 h' s2 m4 K7 b) { - width elevation height go ctr
7 t+ _2 G8 x3 t - eflag 4 V6 B% j, O; {
- etype temp + k) L" ], x% R( L' O
- txt_ss ;;;;rk 11:24 AM 1/30/978 H4 J2 u" M1 }, J9 q9 j5 [/ x
- tmp
& Q5 m- V7 E+ _; S9 ^3 @ - poly_ss & K8 N! G" J- N" j* r7 V
- style
0 m% M. l6 t2 v - )6 v$ R# h6 I! l2 F! q3 m) t7 i, K
' R7 E( U' Z! m
$ _* C/ r2 s3 P- (setq sslen (sslength selset)0 p9 b \4 @- `
- elist (entget (ssname selset 0))1 }! ^! }2 P: _9 ^7 ?& s
- etype (strcase (cdr (assoc 0 elist))). ^- i! ~" B1 k& S- ]! u7 U
- color (cdr (assoc 62 elist))
6 S8 \! W7 Y2 m - ltype (cdr (assoc 6 elist))
' L8 b; F, M" P" E4 j. { - layer (cdr (assoc 8 elist))
5 W+ W( }0 U' r% ^9 K - thickness (cdr (assoc 39 elist))
6 x7 H' O! \, K - ltscale (cdr (assoc 48 elist))5 Z2 X1 \. A+ U C( w( c" P; c
- );setq
; ?+ K# o9 _, Y4 m+ Z' q* z - - Y6 s3 m8 ~3 u( I8 Z- s/ @0 \" |
- (if (not color) (setq color 256)) L4 J7 X, J8 Z, x, z
- (if (not ltype) (setq ltype "BYLAYER"))
. V( n) G* k# |# d* O- n. @ q - (if (not thickness) (setq thickness 0))
5 n* x' L0 d1 d5 j$ j) ~6 M - (if (not ltscale) (setq ltscale 1)): H: k8 K3 ^; E/ q7 ]) I
- / ]( Q- v: z6 e
- (if (not width) (setq width ""))
% C, x! w) @$ X6 [- z1 W, p! ~3 W - (if (not elevation) (setq elevation "")), l2 Z0 o9 X# M4 g8 p# M
- (if (not height) (setq height ""))
/ |. z. s* N6 y- k - ( m6 j: W8 `) Q7 B6 Y, L
- (setq go T
: Z) {0 ^5 p3 N& d - chk-col T
# a" N7 |6 d, s, W+ H - chk-lt T 3 C$ D& o9 n# N- y5 s+ o0 y
- chk-lay T ( f- c9 L1 X# P+ j; C' y
- chk-lts T
0 J ]* C. r; V - chk-th T 4 b6 r" e3 L5 [3 ^$ p5 a) `
- ctr 0
# v% \/ @7 ~2 C: p/ ^. x* C - );setq
! ^6 L/ t6 ~/ I* V/ c
+ u! u2 U5 G: F2 O+ n- ;; Page through the selection set. When a property, }$ }; R" v Z, F% N
- ;; does not match, stop checking for that property.' K' r5 Z6 P* A+ t+ a
- ;; When the selection set is not homogenous, stop checking. ?1 Q8 R( J; ]2 y7 _
- ;; If all properties vary and the set is not a type 1: {+ O+ c; i- e, D- K3 M- @) e
- ;; (polyline) or type 2 (attdef/text/mtext) set, stop paging.
1 Q) @" m( e; E& R# a" H
2 {4 k, Z9 P; T" n5 r2 _! R- ;Lets set the eflag so we know if the selection set includes any ; _' {0 N1 t& M' i$ q1 ?+ T
- ;combination of polylines, lwpolylines, text, mtext or attdefs.
. w* `4 G6 R. ?* Q6 L! S% B
7 Y* F. @4 ~$ o, _0 K# n- K8 H1 b- ;watch out for 3dpolyline and 3dmeshes here! @rk 10:17 AM 1/30/979 } }% h4 p9 g% N
- (setq eflag 0)
# c9 U+ m8 V) H0 `9 `/ F - (if (setq poly_ss 3 S3 |1 w; R+ j; u/ {7 Q; Z
- (ssget "P" (list '(0 . "*POLYLINE")
) u9 r I8 A. W3 z, W4 p- x - '(-4 . "<AND") 9 _. K7 N5 b' Z9 P* h
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 8) '(-4 . "NOT>")
- u2 B1 _: C, t1 W K3 `/ M4 F, W - '(-4 . "<NOT") '(-4 . "&=") '(70 . 16) '(-4 . "NOT>")
6 N4 z( t; H9 L3 J. u+ ^0 ^ - '(-4 . "<NOT") '(-4 . "&=") '(70 . 64) '(-4 . "NOT>")9 j, Q- w; Q7 ?+ T! f: k9 C
- '(-4 . "AND>")
/ r. t: M' d' r - );list
3 k6 N/ ~2 z/ ` - );ssget get 2d polylines (legacy and lw)4 @: F7 S3 G) { N( b! h: @, ?$ V4 r
- );setq: x: }- ~6 n8 _5 ? X4 }5 k
- (progn. _1 q+ H0 v r/ Z- ?+ ^
- (setq eflag (+ eflag 1))# ^+ c l2 q5 |1 _* E: D! Z
-
* G0 k9 n" K) x) a7 x - (setq tmp (entget (ssname poly_ss 0)));setq
5 \ z; _" `7 j: q0 s% J* x
" ]6 a% @0 l4 w4 o* P+ f* j& ?- (if (equal "POLYLINE" (cdr (assoc 0 tmp)))+ d6 K$ R* u3 P
- (setq elevation (last (cdr (assoc 10 tmp)))), u6 C% p9 a% h' V. D. T. S
- (setq elevation (cdr (assoc 38 tmp))). I' ^5 q+ D9 f* _6 g
- );if1 \* `( y) s0 s2 K: [. i; q
- (if (not elevation)7 e; P* |/ r1 D8 u: }
- (setq elevation 0.0);setq( n* Q9 I4 E# ^+ M! A
- );if3 {3 H$ a4 O0 _: ]
- % t$ e) ~% _8 Q0 x. Q2 D
- (setq tmp (ssget "P"
' e( z8 Z2 g" }. A0 y' c; ]6 Z" q - (list 8 b3 u6 W+ M4 g, Y( J
- '(-4 . "<OR")
1 f9 Z- ] _# i% @ - '(-4 . "<AND") / q. B5 i" X+ u2 J w
- '(0 . "LWPOLYLINE")* T, k/ w e+ g( i
- (cons 38 elevation)+ [7 y8 x$ h. P6 r% y+ }1 E/ v
- '(-4 . "AND>")4 d* C0 d2 h. l! y
- '(-4 . "<AND")* B" j% }0 G9 t) z; \
- '(0 . "POLYLINE"); H' N% y# Q, O
- '(-4 . "*,*,=") . F+ P, T, L* C
- (cons 10 (list 1.0 1.0 elevation))
1 f0 d+ z* r f0 f# x" [ - '(-4 . "AND>")
9 @+ L5 h4 h4 O' U3 Y6 S# e$ m - '(-4 . "OR>")
: g* R8 ? D) t: {6 @# J - );list' g8 e6 g1 O' {7 N
- );ssget$ \1 H& |$ H$ M( \
- );setq
' x' V, _' c9 \
( E* B9 W% z! u% }- (if (and tmp
N/ Z7 @% V6 b3 X7 }. N% v - (equal (sslength tmp) (sslength poly_ss))
4 i2 j) [6 V% x' A J - );and0 k, z) p" ]' S: R' T) ^. y
- (setq elevation (ai_rtos elevation));setq+ H& e) g3 O h- |8 G
- (setq elevation "")
# A9 N$ i* i3 ? - );if' [4 _# }. Q* G: ]' ]. l% k+ X
-
6 O M1 S% a4 T" m( }6 } - (setq width (pl_width_getter poly_ss));setq y+ T1 U! z& f; f/ e3 R% G8 S
-
+ n# Q h6 s7 {) X" T: w4 U - );progn then 2d polylines and/or lwpolylines are in the HHHHHOUSE!
/ I/ }3 F0 `/ K' `0 R" |2 O - );if: W3 b3 J+ _7 a# a9 U% j
- (command "_.select" selset "")6 W5 l+ F7 \8 d* H9 _' L) L
-
1 w0 M+ _6 H; ^ - (if (setq txt_ss 4 j2 N9 N8 G7 ]' G# q, X# y
- (ssget "P" '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT")
4 ?1 z8 E/ q8 I8 Z* W" A; C! X1 V - (0 . "ATTDEF") (-4 . "OR>"))
7 o$ \: Y* O7 M. ?0 \+ V3 x - ) ' n+ @; l4 P1 h! g; n
- );setq
0 S% ~( c: ]" m8 S' a* N - (progn
( I- Z( n6 q3 u3 L, {8 r! M/ m - (setq eflag (+ eflag 2))
@* n; I1 e; I3 q - (setq height (cdr (assoc 40 (entget (ssname txt_ss 0))))
' L1 @- C" a0 Q5 R/ a( i' o5 Z. f5 B6 w - tmp (ssget "P" (list (cons 40 height)))
" k v) W4 k; { - );setq
; k: w! a7 Y3 E" k- ]- b8 Q* s - (if (and tmp l$ \4 e2 d- U3 n5 q
- (equal (sslength txt_ss) (sslength tmp)) + d6 ?, B- T6 ~( l ?( N& O
- );and
. L. j; ~' \6 |6 o' X+ h! z - (setq height (ai_rtos height));setq ;@rk need to translate from float
+ S8 g) e+ {# t2 \9 e# ~: l. A - ;to string and back again easily
P) g3 m9 H0 _/ o - (setq height "");setq else the height varies + F* ?. I F7 Y0 H6 q* C- S
- );if
5 D. _ o1 X5 d6 D - (command "_.select" txt_ss "") ) _& s0 R4 K9 t" U% F' @& B
- (setq style (cdr (assoc 7 (entget (ssname txt_ss 0))))* k" \* s) n: O1 q3 f) A( N/ L% G
- tmp (ssget "P" (list (cons 7 style))) ; ]* n1 R. G. B4 w* z% R+ |1 Q/ }
- );setq 1 `* S' w& E4 K# c. z5 f: x+ m
- (if (not (and tmp9 m* E6 e, R+ M- I8 d7 g2 e
- (equal (sslength txt_ss) (sslength tmp))
8 q L: \1 J/ @$ ` - );and' o7 F) l x! {* C- V8 H4 w
- );not
! ?( A* e$ I1 X% T6 o: J5 t$ U - (setq style "");setq then the style varies
7 U" _, O4 i- A4 w0 M+ U - );if
- |! Z; w+ k. B, l. a4 R. R5 i: Q - );progn the text type objects are in the selection set* d% z) u9 q7 C. n, d7 w
- );if/ q1 a% f S% T7 k, l
- (command "_.select" selset "")& r/ ^) C d+ |; q
-
# C0 {) G' r8 I# O. l& {9 N - (while (and (> sslen ctr)
; t; k& x! Q9 C - go
+ n6 |( Z$ `' M2 d! N - );and8 I( P$ \* L3 g4 A$ }4 ?0 Q
- (setq elist (entget (setq en (ssname selset ctr))))
' i$ f' n# M- H6 z8 d
! l1 m- ~2 y8 v5 G- R' L' U( w- (if chk-col (match-col))
; R8 K5 J9 o) x9 X0 |8 @+ G: g - (if chk-lt (match-lt))% C; x; w: H0 }( W% [* e
- (if chk-lay (match-lay))3 z$ X& L0 I- Y# U K6 m/ A8 t
- (if chk-lts (match-lts))( l2 O! p# | @- G2 B# W
- (if chk-th (match-th))
# `! R' [' W+ u6 ]7 j0 f3 j - 6 Z* X7 q/ r0 o+ Q% {& e4 B' [
- ;(if chk-etype (match-etype))$ ]$ m3 ^# K. C. O
, t- O' h% }: k0 B" V- (setq ctr (1+ ctr))1 S. g( {% ^; V
- (if (and (not chk-col). u4 p0 E5 w7 u8 l* m
- (not chk-lt)
2 c4 k+ M. i. L: M* D - (not chk-lay)7 f n2 t+ K( X
- (not chk-lts)
& J8 Q$ D1 r/ N& z6 ] - (not chk-th)
4 S" P! @. n L) t0 n, H$ b, p3 m - ;(not chk-etype)/ v7 p/ w7 h5 l" b9 @/ z; ?
- );and8 o& K5 I, o5 m! Q. d4 w7 o" e
- (setq go nil)
) a W4 ?# k" l9 k( \8 a - );if
- |! H$ i& R1 Z7 G/ q - );while
8 ^& m# P* ]/ s3 X0 h5 O! [) y: Q1 P -
+ F- _: p; ?: Z) h' p - (list color ltype layer thickness ltscale
6 z, x9 n- Q9 H& H: Y8 T - width elevation height eflag / b9 C5 S. ^6 i. f: R" N' r
- style poly_ss txt_ss
1 w( B5 B% y) v! Y6 e - )$ b6 n2 }- C3 I/ E; c: p
- );defun getprops1 M8 S- C0 R: ?) l
2 ?! t }7 U( u+ c- o7 r- i* W- ; This is a speedy little routine to tell whether the polylines in 3 ^; _2 i m8 n- E( M$ c# O- a2 E
- ;the selection set argument are of varying width or a constant value. ( N& c7 R& [; F
- ;Looping through the vertex's has to be done for old polylines when & q R- q: C: P* w/ \# N
- ;the polyline header has width values of 0.0. Basically, in this case,
4 W. t! D# ^/ l1 e - ;information in the polyline entity header is abmiguous. Width values
( S/ I5 M- {- l- A+ N - ;of 0.0 in the header entity could mean the polyline has a constant ( Y/ F r( ^' F+ e+ Y
- ;width of 0.0 or it could mean that the polyline has vertex's of varying
* L; B' g9 Q; M; L y& M7 _1 o - ;width.
[8 h) p: w+ [2 j- s$ S. R, e1 ]! q - ;; l( N" H" U" Z6 }, O/ O% n4 R
- ; It's all in wrist. Err a.., I mean it's all in the 'if'6 u6 Q' A7 u- l8 \, _8 Q- q
- ;;3 u2 }! t; b% z' m+ T
- (defun pl_width_getter ( ss / ss2 ss3 n na e1 width width_a width_b flag flag2)( T* k* |0 C y8 S/ z! B* Y
- " m4 p% P1 G9 g/ ~5 a
- (if ss
( U8 Y. }9 ?/ U" N* T& ? - (command "_.select" ss "")) g/ O" D s6 O1 \3 [
- );if8 R1 N3 p9 `" q; V. r- r1 G4 @- _
- (setq width ""
" ]$ J3 x$ k+ A- B7 j - flag nil1 R" B" ` l: L) w* v9 g
- flag2 nil
' W& E# |; h: _$ H$ Y+ s - );setq
; B! B B' e L) {8 D% F0 i A - (if (not
2 S$ I! }8 i& V& c0 ^ - (and ss
2 F$ z X" E6 k4 e% w; B$ B - (setq ss2 (ssget "p" '((0 . "LWPOLYLINE"))));setq/ a! {( a( I* E6 b- B
- (setq na (ssname ss2 0) p& k \/ e6 f8 w' }4 A
- width (cdr (assoc 43 (entget na)))( T* M* [1 b7 M( n! @' i& h
- );setq
4 K0 D8 _; }8 R) v5 h& O - (setq ss3 (ssget "p" (list '(0 . "LWPOLYLINE")
' b6 E( ?' F2 \4 f - (cons 43 width)
% W6 i |9 {" x4 _) g1 { d4 a& d - );list
& m8 e: ^$ p' P+ O: F - );ssget
: i' u6 o( H) D; i# A0 d/ U - );setq. L+ \$ G* f8 T4 v m$ l
- (setq flag T) , ^+ ^7 f* R2 }0 n* O
- (equal (sslength ss2) (sslength ss3))
* D6 h5 q% Q6 w) B' w) ?+ I# P - );and
" @/ K+ @- |8 F/ A2 \' h' L - );not( R5 f* D& A. ~* s0 B/ z+ r
- (progn! n' [. }$ s: {. u
- (if flag
$ g5 t) E4 Y4 Q$ g5 M - (setq width nil) 9 ~( Y9 {. \; ]" J- \. M5 l; f
- );if+ d- {, ]8 P+ \% ]4 s" m9 ]; |% O) f
- );progn
2 l, u2 N5 q+ M+ V. e7 z t l1 ` - );if
/ x& z$ j+ q8 r! e - : J& D3 D, S" m) S+ @
- (if (not
) W% H7 y. t8 k Q1 o7 w4 @ - (and
& Q) S3 F5 Z* S3 M I; t ^ - ss
. H3 A% Y$ V" Q - (progn (command "_.select" ss "")
0 F: `( ~% P* \, t( j7 C( t - (setq ss2 (ssget "p" '((0 . "POLYLINE"))));setq
! W# ^7 f% Z6 {% _9 H C - ) 9 z# @; j5 |1 C. K4 m. h2 v
- (setq na (ssname ss2 0)3 X% K& |' X+ J' i8 [0 m
- e1 (entget na)& |- b$ l# K+ r. Y" ~& I* Q7 g
- width_a (cdr (assoc 40 e1))
0 ~: ]3 C9 X/ v7 F& m6 s - width_b (cdr (assoc 41 e1))
4 p% T( M: L+ t - );setq
- ?% I; h# w+ P% e) n( g/ U - (equal width_a width_b)
/ K" z7 r( u5 ? - (setq ss3 (ssget "p" (list '(0 . "POLYLINE")2 l5 \) |% w, P4 n/ g8 j% H
- (cons 40 width_a)
* O; o& y3 @* D) l, Q4 A3 T ]! G - (cons 41 width_b)5 e5 r3 o! V8 v
- );list
& [; L) T8 o; w8 R - );ssget
; Y7 K" Q3 G, C7 J+ V - );setq
* o: \; D% y3 } - (setq flag2 T)( Y: [5 f# Q: y7 u, O" m9 p1 F) e
- (equal (sslength ss2) (sslength ss3))
0 V( `7 A9 l& @. b7 }# M - );and
, _, l$ f8 d0 L; Q) |5 A2 r( q - );not + X! ~3 U, R0 v0 B- w' Q
- (progn
: S% u' ? f$ t( U - (if flag2
! a" T/ G9 \0 N& S9 F" ~8 s1 G - (setq width nil);setq
' T8 } u1 O) o7 g. O - );if
u: z6 r6 U0 F& h - );progn then
9 ^ c8 s( R+ @0 v; D% M$ h5 H - (progn. @2 l3 l: E8 H. B
- (if (or (equal width "")
) |' s d# C3 @* p6 J- Q - (not flag)
. l. v' z0 ~) k& y$ I - );or
) `+ K" W) r! x - (setq width width_a)
/ ^ {& q8 `. }* h: h. T$ W - (progn5 [6 C* s. V2 O8 \* X
- (if (not (equal width width_a))
. D6 z) j* H; E6 S, i1 @1 M! Q - (setq width "")
% E6 q0 |$ Y0 u" A* C - );if
8 [: n, { r2 K u8 d# c! _0 t8 P4 N - );progn
. ~4 R2 ~# i# X/ @0 n - );if
8 T) B( s7 z$ X+ m$ p - );progn) d. V9 v, x9 t
- );if* n0 b P$ |% u' t& B6 C, J
-
& l/ Q3 T& c8 J$ b6 p* ^ F - 8 y* v7 z% {" _" T1 A5 Z+ Q. ]* Q
- ;now for the special handling for old polylines
& X4 \/ e6 ?7 @+ m8 H - (if (and width
1 }0 q" ~" S) f: { - (equal width 0.0)
! L- E7 o, M, p2 b! B( J - flag2& l/ `8 m7 f( I5 Z
- );and
2 [* ]$ V4 B6 k- s6 T: i) N* |1 ~' D - (progn
% h T% t1 Z4 h* F$ [& Y& O -
0 r( m' J2 ^6 G+ w0 A - (setq n 0);setq
. d0 t, ^ q! p - (while (and (equal width 0.0)% `* r% ?9 F3 E
- (< n (sslength ss3)). m# t! d: e7 j! E. o$ G6 {
- );and
# @6 S5 Y) F( I9 S! H1 s+ |4 } - (setq flag nil
6 L( x% [0 ]0 }+ @5 o, h - na (ssname ss3 n)
; Y4 h C1 a6 s' B S! b- K - na (entnext na)4 E4 h7 f- _& D: i" D
- e1 (entget na)
" i* U- C1 M6 Z2 x - );setq2 X$ w$ s: A& Y0 ?# V; x3 D6 L
- (while (not flag)
' C' A7 I% ^8 }8 s1 |; T - (if (or (equal (cdr (assoc 0 e1)) "SEQEND") s. B: K! q4 _% v6 |: x8 ?% L' e
- (not (equal (cdr (assoc 40 e1)) 0.0))8 Q& p: D+ \2 B
- (not (equal (cdr (assoc 41 e1)) 0.0))
* p6 n7 y' \% Q) p3 H6 J - );or9 C* P" H# A# Z5 o
- (progn
! k, d' w* O' A - (setq flag T);
7 l2 u* w( }* f# Z - (if (not (equal (cdr (assoc 0 e1)) "SEQEND"))$ j% U. y1 U% N; K3 y2 e
- (setq width nil)
; t3 t5 ~" e7 b& t p5 r# u% d - );if0 ^5 N+ V, \' A5 }8 x( \
- );progn then jump out of the loop
8 B5 v3 s* S% Z0 Y) l8 Z - (setq na (entnext na)1 W7 H. \( N( D; P! _0 }
- e1 (entget na)& ?% u' A9 z& Q" i
- );setq
' A' a& ~- N+ @ w+ d - );if
( R3 e8 y. L6 S. j- K8 A( K' z4 c - );while
\: W; t! V# g5 l K - (setq n (+ n 1));setq ( I8 p% _5 h3 P2 j h
- );while 0 H% i# y; Y! g$ V2 u/ a
-
w3 W% c( Q6 h9 B0 u3 y3 f - );progn then it's a legacy # f. x- |* y9 z/ O+ E, P
- );if ;legacy polylines that may have varying widths 8 s) P: v$ d3 c" c$ x
- 5 T9 x$ K* u. V* a' T
- (if (not width)9 n v- }& D# ~& e4 g
- (setq width "");setq9 Z5 S K" }) `' X' l& h. z# E {. Z
- );if
' Y, P( M2 l5 R) R) [9 G7 ?' U6 C- P - (if (not (equal 'STR (type width)))
% t( s$ a5 H5 M2 R( e" E" H - (setq width (ai_rtos width));setq
0 z7 n& R3 ?. T. X" P5 z+ { - );if
5 R; U# j- { S - 4 M# I8 I0 e3 P1 `" S3 k8 [7 C
- width
8 F; i+ t1 G! V/ t - );defun pl_width_getter
( J4 h2 I) k8 V/ b u+ c, k3 P - ! Q6 \$ P; d' h V2 M
-
9 A4 M0 l! J L: x# k2 Q - (defun match-col (/ ncolor)' W# d1 ?' X+ C' f
- (setq ncolor (cdr (assoc 62 elist)))/ k( U$ ?% A/ |* E1 N5 }0 r! u/ ^
- (if (not ncolor) (setq ncolor 256))
7 r/ A; f. O& J - (if (/= color ncolor)( U; z9 J. J' c. L! j' l
- (progn
+ K7 s8 K/ S- d& I" ~. v - (setq chk-col nil)* ^) b! {2 i! f- F @
- (setq color nil)
D4 X1 U2 p3 I6 s$ Q9 F5 m - )
. @9 m) o+ Y- ^- Z! @ - )
5 o+ J3 s8 ~, w3 y" h - )
# f1 Y$ W8 K0 I3 D) V8 U! Z, t* W
3 C8 l: N( q# A/ E- (defun match-lt (/ nltype), [& j. V' [- d. m7 f
- (setq nltype (cdr (assoc 6 elist)))
( Y s$ N |; X- F) U0 U: G# y - (if (not nltype) (setq nltype "BYLAYER"))+ ^, n) h. C0 |8 p+ u
- (if (/= ltype nltype)
. w. o9 Q, o+ z B' j. Y' Z - (progn4 m- Q8 l5 [8 D, O5 j w) N# M* a+ C
- (setq chk-lt nil)
) U, u% O: @- F( w% b' M$ J - (setq ltype ;|MSG0|;"Varies")% x4 X* t/ `. [/ v7 Z
- )9 t/ ?9 Z- B4 x: j6 ]
- ), u1 [2 g6 D, Y/ {0 i
- )
6 [/ c% g- Q, r. G0 i/ m
/ q* b& a% C; W, n* Q& M4 B- (defun match-lay (/ nlayer)( C/ z$ R. e, P% P* g
- (setq nlayer (cdr (assoc 8 elist)))3 X4 j& l! r K! P- F p6 _: ^3 l
- (if (/= layer nlayer)
# U- ?0 w/ T9 X2 A$ l+ { - (progn- |4 q G3 d6 \6 a0 Q7 c
- (setq chk-lay nil)
+ n$ B; ~0 t! l- q$ d - (setq layer ;|MSG0|;"Varies")( Z6 }# V+ ^" A
- ); ^; Z( P# ]) ^0 H0 |) N
- )
' f/ P5 V T4 N" [. ]- F$ j! o) R - )# w3 q; W+ B( F4 |
3 w$ C" }& `5 Z$ z; {- (defun match-th (/ nthickness)
( |& o" j9 E3 [. Q* q - (setq nthickness (cdr (assoc 39 elist)))
5 c3 \$ {) ]0 ~2 ?% P - (if (not nthickness) (setq nthickness 0))5 U p# r% D6 ^: ]
- (if (/= thickness nthickness)
i! ^, c! Y8 G7 w8 v9 s2 g: D3 x - (progn) U& s0 T+ n; I0 F& C# ^
- (setq chk-th nil)
+ A7 ~& g' w* A1 H9 R* r0 H - (setq thickness ;|MSG0|;"Varies")( ?# e! H$ }* \
- )
/ L- y; N9 t$ k% R7 H/ S, c' d - )
7 O+ F! I/ `3 B, w - ) j. U2 @) ?8 |6 L, f5 V; Q
- h; V/ M2 w* i6 J$ H: q
- (defun match-lts (/ nltscale)4 H/ t; D8 X- E$ E' Y9 Q4 q0 z' N R
- (setq nltscale (cdr (assoc 48 elist)))% T3 h$ N8 }! o
- (if (not nltscale) (setq nltscale 1))- n" |. \+ f8 A
- (if (/= ltscale nltscale)+ G/ d1 ?% W0 N1 c3 Z& _
- (progn- @! k, y$ e) j5 [" v
- (setq chk-lts nil)" _$ Y2 o7 i+ v' w8 _0 i
- (setq ltscale ;|MSG0|;"Varies")
, S9 d- b* l! o% r( Y! E - ) A# X( u' x. L- l1 a
- )5 W6 y) x2 {$ z) }# U/ X
- )
9 X, U" P2 c" @; E$ p; ` - 0 v5 G: y6 y) ?( @
- ;;% v5 N$ H6 Q4 k4 t
- ;; If an item is a member of the list, then return its index number, else: ~9 [; `. C* Z( I" {
- ;; return nil.
) n( k4 [+ Q- H! }" x - ;;7 N* k/ l- [" N" e% L1 x% @
- (defun getindex (item itemlist / m n)
3 }3 p3 ?, s# M+ W - (setq n (length itemlist))8 V9 U* h' r& z
- (if (> (setq m (length (member item itemlist))) 0)
" X$ k' B1 N: O) f+ F% I+ D( M8 T - (- n m)
9 p8 X' ?6 u) ~ - nil
2 g" @& B, U" q3 {5 ^7 j+ r1 Y - ). D! X' }9 J- }9 Q7 H5 ^% S
- )& ~+ s$ m9 N& w4 d. x$ f/ o6 d
- ;;
' S5 a' d+ n/ z) y" Q7 b - ;; This function is called if the linetype is set "BYLAYER". It finds the
( x& h. _; b) B( y$ s3 |3 l9 ? - ;; ltype of the layer so it can be displayed beside the linetype button.
2 `; u1 m3 ?3 L* y* j3 W( _* y$ Z1 z - ;;
, [$ H" Y( q$ y) C8 k* M* A5 h) L - (defun bylayer_lt (/ layname layinfo ltype): j5 m U9 u. Q* P% C
- (if lay-idx
2 x; v2 }4 D4 c' F - (progn. o* i7 U3 d# B1 `" B0 \% O5 k
- (setq layname (nth lay-idx laynmlst))
+ b2 z6 b+ C5 q+ c; `, u. p - (setq layinfo (tblsearch "layer" layname))
& l; g. i0 X9 t - (setq ltype (cdr (assoc 6 layinfo)))
* w R, |1 `0 B' { - (strcat "BYLAYER" " (" ltype ")")
8 i5 X: ~- w1 L, G$ m2 v1 h - )9 K! N5 t1 L. w
- "BYLAYER"* ?+ K+ ^, I" G5 m E5 W
- )0 I" ]2 z$ _8 |) z
- )
6 P# p# @0 {, Y& ^/ g7 ?# j% p - ;;
# \* U7 T1 D Z# T3 f9 z3 N - ;; This function is called if the color is set "BYLAYER". It finds the0 i' B- d( z+ N& \% c* y+ d
- ;; color of the layer so it can be displayed beside the color button.( Y3 b8 h& d! R; S! u
- ;;
+ T3 R& v% u% ^# z& H - (defun bylayer_col (/ layname layinfo color)" s. T- Q# A7 w0 m+ L* S
- (if lay-idx
4 x1 A% H( L+ @( l# A* r% c - (progn" M1 W& Y& k" @& I
- (setq layname (nth lay-idx laynmlst))* k/ D8 \ q, i# W
- (setq layinfo (tblsearch "layer" layname))
2 } O1 D N, ]2 l - (setq color (abs (cdr (assoc 62 layinfo))))
5 f6 o, k3 ?( w9 M& N3 h - (setq cn color) r- n) i) l5 j8 @" K4 b3 @: |
- (strcat "BYLAYER" " (" (colorname color) ")")! y+ o/ b" K; X
- ): \7 n, m( _3 Z
- (progn: a7 _4 x: g& Q3 d$ Q0 m h* ^$ \. e
- (setq layname elayer)0 S4 |* {' N( H& [3 |% \2 p
- (if (and (/= elayer "")
8 B" G3 W5 K8 Q+ x/ \2 B f p - (/= elayer "Varies")
1 o( E9 J" [4 j& T2 I - );and/ o' S$ d0 A5 T& Z. I5 X, \
- (progn5 ^) @: J5 a1 e+ ~4 S- B7 V6 ?/ k5 l
- (setq layinfo (tblsearch "layer" elayer))2 J4 [8 y& R+ N7 V
- (setq color (abs (cdr (assoc 62 layinfo)))) V, N- E; Q! [
- (setq cn color)
# {' d% @) c0 Y2 v& d, E9 N% o - (strcat "BYLAYER" " (" (colorname color) ")")8 B" `8 E3 e; ^& G! u
- )
0 K: C/ p2 H' V1 L - (progn% k" g( d: i; O" D8 J
- (setq cn 0)
# [0 B* {" C# n+ v - "BYLAYER"/ z! i% H% _$ A, ~9 {
- )4 W; R. h$ ^) Q+ J3 u
- );if u3 t. ]0 }' X
- );progn$ W6 L: j {: f9 _; U% G. c- a
- );if
. ~4 N3 m" _. l - )
* s& p# T. i' e/ T - ;;
. K) t' \9 ` T8 ?4 r4 T, x - ;; If there is no error message, then close the dialogue
3 O1 s/ A/ I& P# k y& q( S - ;;: h/ n. o6 w7 s
- ;; If there is an error message, then set focus to the tile
- m4 f2 R5 h8 R7 G; j, a8 u2 q - ;; that's associated with the error message.
7 u6 D2 K- D- `+ m6 h4 a* H: o4 x - ;;
P% e1 |$ h. W8 D- t# p - (defun test-ok ( / errtile)
% N" A* v m2 G+ M4 r7 ]0 C# b - (setq errtile (get_tile "error"))4 \1 i0 j. d: f/ ^/ F V
- (cond
# T$ O" w. U) O0 N - ( (= errtile "")* e; Y& |5 G0 A9 M4 O# ^
- (done_dialog 1))
2 K9 p8 d$ j4 ]% W6 ^+ k - ( (= errtile "Invalid thickness.")4 Y- w% P! G' W& t$ }, P0 b7 X
- (mode_tile "eb_thickness" 2))! ~7 v/ V0 P- t. _
- )$ \5 a2 O9 w; o- c9 ?" T
- )
L$ m g8 {# u; L - ;;) c$ D7 E) o2 ^9 `9 {7 S8 I5 r
- ;; OK in main dialogue.2 t' v1 M( z" l
- ;;) Z9 T/ C, M6 ? P% d
- (defun test-main-ok ( / flag)- c: G* z/ w" {4 y
- (setq flag T) . ?9 W( _' Z1 H( R1 p/ S4 J3 G/ F
- (if (not (or (distof (get_tile "eb_thickness"))# m! ~! T) D% Z1 m
- (= "" (get_tile "eb_thickness"))* H) d" t" [4 w+ P* z1 V4 b
- );or/ f7 E Y8 ^# U: m4 Q! A1 x- c
- );not& y" f. L/ u- ^# C0 Y/ O
- (progn
% [& a( s( S$ X' M' g2 J - (set_tile "error" "Invalid thickness.")6 b; G+ k n+ E" J; x, K6 n) v2 |0 X
- (mode_tile "eb_thickness" 2)
3 {2 C( m/ _" I: ` - (setq flag nil);setq$ g! K4 S* n& s( \/ ]: Y/ L9 x
- );progn
( L4 v& M- y# p3 S. T4 u - );if; {0 X8 m, N7 D8 {
- (if (and flag
8 g. g% k* q4 |0 {+ ? - (not (or (< 0 (distof (get_tile "eb_ltscale")))
: I4 ~( t* g1 z - (= "" (get_tile "eb_ltscale")): ]& ]8 @ ]! f, ?% j9 ]1 I
- );or 5 H4 M( i/ {9 y. A
- );not
4 s3 s1 G& Q9 A$ q; i2 a9 Y1 Z - );and
( T- i6 Q" b4 [4 b `! y0 } - (progn4 j% y- f. y6 D
- (set_tile "error" "Invalid ltscale."); L. a6 D8 R4 u5 {. N8 S0 o
- (mode_tile "eb_ltscale" 2)2 S k1 t# r* Y; I" t- S/ O& `
- (setq flag nil); 5 O T$ Z1 H/ h$ f. K
- );progn then
) _( ]# @2 U6 ? - );if
2 |' M y& }; U" M7 R* P - (if (and flag
" e# Q; G% i, I4 g1 A! f9 ~& | - ; Don't test the tile's value unless it's enabled.. ]" U$ U$ @- p( Q2 t
- ; We're not set up for the display-only value
1 f% F" i# |& N% X/ ~3 F- F7 I; Z - ; of "" here in the error handler.
; W9 \9 i) u9 C1 U- X& X - (= 2 (logand 2 eflag))3 h4 e) O% V/ u# o0 ]
- (not (or (< 0 (distof (get_tile "text_hgt")))2 c9 P% n) v9 Y7 b1 b3 t
- (= "" (get_tile "text_hgt"))) V# O$ d b; o
- );or/ V- q* t- C( p) t/ Q% Y/ Q
- );not) |/ l9 U4 q$ w3 g1 T2 m
- );and
" O) }" ?# [# P. t' {- m. ^ - (progn
$ L3 } [& d; W# b' D - (set_tile "error" "Invalid height.")# u3 O2 d* t: K* b3 M4 R
- (mode_tile "text_hgt" 2)
! ]8 d- a& J9 d/ Q2 v1 p! G: V - (setq flag nil);/ H, z5 L3 [' ]" B
- );progn then( E6 d5 U/ I) M& O/ S! C& ^
- );if1 g: U% s+ g# t3 h% i! }! p6 f
- (if (and flag
! C8 m" I! C$ A% r' ? - (= 1 (logand 1 eflag))
1 V1 T& _' F% U - (not (or (<= 0 (distof (get_tile "poly_wid"))). |% C( r# ? @8 r* }8 T `
- (= "" (get_tile "poly_wid"))- l9 e& j. a$ K& F2 F# I9 ]: a" J# x
- );or5 A1 O) U8 z- L# v
- );not4 f4 ^. q. i, y: p
- );and
* G2 j& j2 s- o2 Q - (progn) v$ \# S8 u4 M" W2 z
- (set_tile "error" "Invalid width.")
. J' Z; S. Z' z( N; [: r. e - (mode_tile "poly_wid" 2)& J; s$ [1 z: j2 D O/ @
- (setq flag nil)
8 f$ X0 G+ }# k6 h" c. h% I4 b - );progn then! I: T7 x# V7 ? m$ z$ g+ K
- );if X& O" Q, `& S' [! N7 a0 F
- (if (and flag& |8 Z B( o7 [& U/ G
- (= 1 (logand 1 eflag))! j2 v' ^0 r' `' y2 X" o
- (not (or (distof (get_tile "poly_elev"))$ H. d; T7 E; @. n! L+ A
- (= "" (get_tile "poly_elev"))' f/ R- R! O' b' m3 F% b
- );or; c' c, z5 G6 Q
- );not
! c/ Z( F( ?. c - );and, } n+ V: K1 D) t$ B: S' A
- (progn% W: i3 J7 [% n
- (set_tile "error" "Invalid elevation.")
2 R6 _9 {& a0 H' W6 |% R - (mode_tile "poly_elev" 2)
5 b- f3 x% U) g6 v( N: h. q/ w - (setq flag nil)3 | @+ r# u: a) w( n( P
- );progn then
* p7 u6 `+ C7 W0 Z' p - );if
3 z5 Q1 V$ T6 j, O3 Y - (if flag
. a' {" r$ v2 v/ E# ?0 I, q - (done_dialog 1)9 F2 G8 B f2 b& q+ r: ^2 W; Y
- );if/ g7 x. ] Q! ]* g$ P$ S3 A
- );defun test-main-ok2 x- N1 q6 c! Y2 `* e
- 5 [7 ]) ]* G. w; W) R
- ;;
7 i, W5 |4 H! W- \4 E - ;; A color function used by getlayer.
$ G4 ^3 f/ i/ } - ;;+ m. k# g, z- t. b- x: E4 K6 B
- (defun colorname (colnum)9 ?' S( |* L, M& E2 y8 \* H" N
- (setq cn (abs colnum))
4 r% h" ~- z# h' V& k - (cond ((= cn 1) "red")# p9 g4 ] q2 J) M% e% a
- ((= cn 2) "yellow")
* c% O7 n( `8 O& ?7 t - ((= cn 3) "green") O( W* z% t0 b
- ((= cn 4) "cyan")
: k( c) |) X/ K/ A: e' y8 k; O - ((= cn 5) "blue")
' ]$ B3 Z$ p/ o& ]4 m - ((= cn 6) "magenta")
/ m2 F* B' J3 H2 ?' ? - ((= cn 7) "white")6 ~2 D5 O: y5 [0 R
- (T (itoa cn))+ i8 E7 J! K& ^: \. Y/ S
- )$ i% H. R- L; P. Y3 {, M: w
- );defun8 q/ P+ M* x8 p+ V- p ^8 b. k' @
- ; D4 \- D2 F( u) o$ k1 x- A
- ;;; Construct layer and ltype lists and initialize all7 U9 |9 f- u& [7 q' ?
- ;;; program variables:$ P1 d, L3 Q: U
: V# C/ S8 I" m4 {& z" F- ; (makelaylists) ; layer list - laynmlst
* R. O( ?1 [. |2 e' y1 Z4 Q
; r' G3 D; Y+ S9 N b- " j# ]( J% a+ p, h
- (makeltlists) ; linetype lists - ltnmlst, mdashlist. I4 g/ l2 Z7 S# g- q9 r/ d+ }2 L
- 1 R$ j$ G q( Z6 F4 t6 h
- ;; Find the property values of the selection set.! R' @; ]5 V# n9 J$ I4 `
- ;; (getprops ss) returns a list of properties from
5 ?9 X" l* C+ N - ;; a selection set - (color ltype layer thickness HEGHT STYLE WIDTH).$ A" W" n9 W9 t( X4 F/ Z$ D
; m/ U5 o( N' b( L5 X- J- (setq proplist (getprops ss));@rk interesting things happen here
$ C+ [7 n f4 A5 w* c
* B7 r5 V2 W1 R: N4 p' u- (setq/ D6 w8 t$ ?7 I4 Y6 w6 g
- ecolor (car proplist)
0 L# R* N5 V0 X2 } - eltype (nth 1 proplist)+ ]4 C6 g4 r( M
- elayer (nth 2 proplist)
: Z) I5 E. I7 d$ V) v; j - ethickness (nth 3 proplist)
* ~7 N: y$ f+ |* |, N: r3 f - eltscale (nth 4 proplist)5 z6 n7 T) `" U5 f! Z
- ewidth (nth 5 proplist)
; H! p' x# `" y0 M- q - eelevation (nth 6 proplist)& a7 U W) P4 X0 D4 l$ N
- eheight (nth 7 proplist), N* O- k- H" d5 _/ h q
- ;etype (nth 8 proplist);commented out and replaced with the line below. RK., _, g4 [# p1 ?4 O& [+ ^
- eflag (nth 8 proplist)
7 _# S' n5 d* Q+ l& w) o; V: B - estyle (nth 9 proplist)
: j4 q7 i, s$ I - poly_ss (nth 10 proplist)9 P2 @* M! E, k; x- n" \
- txt_ss (nth 11 proplist)
: |$ V" ]$ b3 |5 U; I4 P8 E - );setq- d9 ~; {4 }) |6 E S8 x
- ) ]7 r$ q3 v' b% ]! p2 `
- ;; Find index of linetype, and layer lists
/ g, {% L1 B7 c, {3 I# |1 h l - (cond3 r: H% k6 {% _9 @7 _5 ]
- ((= eltype "Varies") (setq lt-idx nil))
$ U( q7 Y4 V$ Y# W) M/ G. g - ((= eltype "BYLAYER")
( r' F- l. j% T. N8 F5 w - (setq lt-idx (getindex "BYLAYER" ltnmlst))) _) M9 j& S$ | U! v9 h
- ((= eltype "BYBLOCK"): q! L' L& v8 ~0 G9 L8 P! J% s
- (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
3 j, K- J' H5 P/ ~. y0 } - (T (setq lt-idx (getindex eltype ltnmlst)))* O! A q5 n4 @
- )# j( u: R! H1 g( {% W Y
- (if (= elayer "Varies")& b- M* W( `4 F" O0 V9 Z: S1 x
- (setq lay-idx nil); o/ v4 |3 H# A
- (setq lay-idx (getindex elayer laynmlst))
; Q# ?$ S1 S$ i - );if% D; G6 @+ Y, Q2 H
- (if (= ethickness ""): w% [% s0 H8 u" Z8 L3 R4 w
- (setq ethickness nil) u& A0 f9 k; s
- );if
5 `; d2 P) o) U* d& N. x0 P - (if (= eltscale "")
" \" [! ?: X& V! f - (setq eltscale nil)
& g7 I0 X, H- @+ V7 g+ w0 a - );if" H3 a P5 C0 F* Z0 e- c/ a0 n
- ( E4 G- [! x7 p& C3 t1 f; K
- );defun ddchprop2_init ; end (ddchprop2_init): d) j3 c/ W7 ]& T! d5 g& ? }
- " H1 L! D3 a' ?7 s; u; \* E. S# T
- ;;; (ddchprop2_select)
: _4 Q, M' j# ~# |( a) b - ;;;
' @2 x/ l. L# y, N - ;;; Aquires selection set for DDCHPROP2, in one of three ways:
$ u' H) v( L6 D1 z7 x: k - ;;;2 X) z/ g* z( o$ }( P: L) u
- ;;; 1 - Autoselected.! q1 M" I4 M4 e6 a% U# {" p) i! c
- ;;; 2 - Prompted for.
, V+ f1 {# Q: k3 A: } - ;;; 3 - Passed as an argument in a call to (ddchprop2 <ss> )+ q# q- l/ A+ _! e2 L3 M0 U
- ;;;9 V9 _( N$ u' q8 V2 ?5 M$ A$ T
- ;;; The (ddchprop2_select) function also sets the value of the" l) U' j( k8 f/ x
- ;;; global symbol AI_SELTYPE to one of the above three values to2 [8 ?5 o8 f1 C* e
- ;;; indicate the method thru which the entity was aquired.
; [0 @. F' |3 S6 C
5 Q' [4 M1 [+ d1 K- " g4 t( r0 d9 O! W+ }9 D- h8 C
- (defun ddchprop2_select ( / )0 R0 b0 S5 O7 Y, L& t9 p
8 [! ?+ J: s9 H, N2 g- + u. t/ N9 z1 G0 J' [9 C
- ;returns only entities in ss that are in the current space. ( R, y3 C+ g7 I X/ G
- (defun ss_in_current_space ( ss / a cur_space ss2)
) H! O0 p8 h7 S! M! t V* q - $ P8 [; z' z. Y
- (if ss( }" ]" O2 {, l0 O# y/ Y
- (progn
/ ]' o* R [/ M8 h! g - (if (and (equal (getvar "tilemode") 0)
, a! G4 z% |- B } G3 \ - (equal (getvar "cvport") 1)
" I4 |+ J9 y7 S( n& Z- J: h$ B) K' u - );and
) _5 ^$ I/ p4 Y- ? - (setq cur_space 1);then paper space is where we are.( P% o0 V7 [) K
- (setq cur_space 0);else model space., z/ D4 |" x2 l. b
- );if
8 c/ b) Z' h3 K' n" ?: G u - (command "_.select" ss "")+ n& E$ Y4 M4 J/ n, f
- (setq ss2 (ssget "p" (list (cons 67 cur_space))));setq$ p6 Q" s: Z$ \( {! X! X) _; c% F
- (cond ;;;;;tell the user what's going on.
" J4 ^5 I+ H% H' f4 |/ t - ((not ss2) (princ "\nNo objects found in current space."))
' P$ c7 `" B, V* f" E. V - ((not (equal (sslength ss) (sslength ss2)))
& `8 y/ Q, b, r1 n7 H" d6 F& ~% w; G - (princ (strcat "\n" (itoa (- (sslength ss) (sslength ss2)))
. \. k. [5 T( V% }/ v - " object(s) were not in current space."0 e$ [3 ?8 P4 i1 u5 @# p; T0 K' {
- )
, |2 { R8 e9 l- \, N- u4 Z - ), q( K. M+ F0 D$ c. A& c. Z
- ) $ q" g* e3 R2 A; D- p) ?' a
- );cond
4 u. V& r k- L& q- U - );progn then
! N+ D2 ^* A' o% O" e - );if ! N" ^8 ?/ j, S8 g% K8 w/ A8 u
- ss2
; {) M( z! b' C% t @ - );defun ss_in_current_space
* W1 w3 C/ _: F- b! }' x0 O
7 ? ^5 d7 F+ v7 S
/ X7 ^; l0 e0 Q; |, p' V- ;;;begin the work of ddchprop2_select
% \( N, g k( e! i$ O1 I5 D -
( s8 u! {3 @) q6 ^. S - ;; temporarily restore original highlight setting., x: C. |9 U5 u# z4 j3 c) ]# k1 k
- (b_set_sysvars (assoc "HIGHLIGHT" (car bonus_varlist)))
# b- ]/ G* E" u9 a& ~ - (cond
1 L; ]. i8 z0 W$ T" E - ((and ss
% ? o7 P* g& Y3 w8 E6 F: E - (eq (type ss) 'pickset)
( [% A! [0 ]& r) m* U - ) ; selection set passed to
& d4 Y* j! _! f0 w; k - (cond ; (ddchprop2) as argument
, G5 \9 C4 x# D# I - ((not (zerop (sslength ss))) ; If not empty, then
: {" W* T; o+ n6 x5 e2 r7 Y: L - (setq ai_seltype 3) ; then return pickset.8 v/ U A$ ^8 O; e# I
- (ai_return ss)
1 r7 I2 o- H& f) q, L - ): D; l# f: [6 W5 N j
- );cond close8 }" I0 J" A) h. r3 m( A5 c, F: L
- );cond #1! [/ l9 G- S, w# J' d2 L, B$ C
- ((setq ss (ai_aselect))) ; Use current selection% }% d( z, x" J, W- p
- ; set or prompt for objects& i h* ~; ]" T8 ?
- (T (princ "\nNothing selected.")
( G4 D7 U2 k0 ^6 l) l& \# W% t - (ai_return nil)
" u/ k! O9 p9 W. i' \/ E" x - )
) g: a) N) K- ~' k) T3 C - );cond close
, e! Y" x# ]" [ x0 z( d$ V - (b_restore_sysvars)4 _9 _$ j: S! T4 ^
- 3 P( D( q+ s3 U1 z ^! G N* Y
- ;(if ss
/ u1 M# Y5 x% ]1 ] - ; (setq ss (ss_remove_locked ss))
: i8 ~, E O9 |# y d+ t7 Q" S4 _/ Q - ;);if b p/ i* J4 o% v
- (if ss" l. I: c4 z1 M
- (setq ss (ss_in_current_space ss)) 8 n3 g: p" D. z0 S& W
- );if
. v4 L# z4 }' p6 J2 x9 E0 b
z+ W0 l! N+ }# p; @7 h- ss4 I: X7 n, @: W
- );defun ddchprop2_select4 f- a* J9 o7 q
$ R7 j G) K& M/ M- 0 U3 l% t& w5 k; \! [
- ;;; Define command function.* ?9 ^* x' `% U' `8 O$ E
- (defun C:CCH ()
# o9 k8 f% G/ x - (ddchprop2 nil)
3 o$ [0 I8 `3 d8 `. x$ Y( I6 E - (princ)- Q4 S" B; ^4 d+ p, h7 j
- );defun
: M+ k0 \& Z8 [ - " B) Q S" q# g, v1 J/ z/ D1 n
! ]" \9 D- B9 m( m- ;;; Main program function - callable as a subroutine.
- b! r6 @/ Y7 a - ;;;
! I! n4 `# ^. B2 O1 g - ;;; (ddchprop2 <pickset> )
1 w# v! [" O' b+ {- w' Z. w5 w - ;;;
. _8 q2 t% K" q( c, v" `' u - ;;; <pickset> is the selection set of objects to be changed.
; s" V8 d6 V/ m" V7 z' T" Y1 l4 d - ;;;
" `- @9 E" R3 \% i5 K# T1 f+ W5 s - ;;; If <pickset> is nil, then the current selection set is
; S/ b" L0 \5 K/ A: S" `6 M8 Y - ;;; aquired, if one exists. Otherwise, the user is prompted s0 G# C6 I3 ~. m) v, b1 y
- ;;; to select the objects to be changed.
8 `, y1 Q; }& x' j: j- z2 ^ - ;;;8 N% b* h9 s( m6 a% w
- ;;; Before (ddchprop2) can be called as a subroutine, it must# F2 c/ U- m+ n* A+ K
- ;;; be loaded first. It is up to the calling application to
6 U7 Y0 k: S8 ?. m8 Q% U3 o - ;;; first determine this, and load it if necessary.# \" ?! t7 F$ ^+ N% D
. @, ^7 A9 c' L* W: P, r5 u- (defun ddchprop2 (ss /
: a2 X5 S4 a, D4 Q' {
8 X5 k5 |1 V" j: e+ V: d- a) ?4 A& f- F7 N! O- H7 l: a, O5 p6 T
- add-mdash
( E; g+ ?5 C' _/ x& ~- j2 R - assoclist
7 _! }* Z% d" p/ e% _ - bit-703 s3 M# [& n* l' ~/ X6 x
- boxlength
6 ?; Z3 K& `1 E! p - bylayer-lt' Q6 l( C6 ]5 O8 Y
- bylayer_col
: |2 ]( @. K. H9 f% P; ?' D4 } - bylayer_lt, Z$ s3 Y2 C4 T* n! [+ i5 m
- call_chp2
4 e v( z/ H& i! H - chk-col
8 z3 p; A5 {5 p$ d) w2 T8 D- `+ h - ;chk-etype ;var removed by rk * O' h V0 N& u8 }/ Z5 E7 ~. {
- chk-lay
R9 t4 [% a0 _3 B) D8 B P# y2 n - chk-lt/ f. c2 A8 i$ U9 U- t
- chk-lts ;var added by rk % a& D+ J6 c2 F e" n" Y# Y" h
- chk-th9 m# J" z8 X) Y# A6 U
- cmd6 I7 a6 b3 `7 k* R/ M; q
- cmdecho
: V# C- A8 W# N0 F3 |9 i* K - cn6 ]. G- h3 [& z5 n# u
- cnum0 R2 z+ y, A9 I! k8 ?/ c# B
- col-idx+ m. q0 Y$ j" |
- col_def; ]9 G9 C, E" m
- col_tile
- l& X2 x8 F/ S/ N - colname) \% l5 Z7 X4 k4 A3 D
- colnum
. T+ u; g7 v% E- T) ?1 P$ H - color
9 u9 [; Y; S2 j7 k, L7 w - colorname" R* c" B5 U7 [1 G/ R; N7 Q; f
- cvpname
( Y6 l* E1 d5 C$ ^3 w( @ - dash
" R( t6 u+ ?7 H! r: v8 C - dashdata
d' p% p* _4 G! F9 r( f* E - dashlist& o9 {. y; E/ h* o
- dashsize3 i+ k% P Y, L( Y" Q
- dcl_id: n' r% G, z @+ M2 d ?, ]5 R
- ddchprop-err
: N( ^" i# C& X2 f* P - drawpattern
* J$ U1 n- ]0 S2 M - ecolor
4 |' |2 x* {2 i. T1 z8 e1 X! X - eelevation7 Y: E' J9 v# J' V5 n
- eflag1 S) y1 m4 w: P0 p
- eheight w, |6 m) F+ P3 u7 U& X3 L
- elayer
/ m$ z/ V- ?6 Y, ~3 Y2 y - elevation' F |3 a4 N0 `: a! D w% |1 j
- elist8 G. `! m/ I# r, @3 t
- eltscale" y. P4 {; F5 s& b' c2 _# M* f1 l
- eltype
, }% l0 d* l8 N - en9 e. Y% X) y: }* r/ D _, _( g$ c) r; X
- ename
. a$ M. d, H( ]* \6 x - ESTYLE ;var added by rk
2 |, U" m" Q8 _* k - ethickness
) ~# N) I8 |/ ^8 o0 r* n8 r - ;etype ;var removed by rk1 Y% o1 z6 x' j0 t& U1 M. C5 s2 D
- ewidth) R& G5 c; D0 i+ Q
- fchk
7 a8 j6 v: W0 y: B - frozth
8 o k7 E9 D8 o' ^3 E* T - fx
/ M$ i8 m7 s4 s5 V3 K; i* L2 | - getcolor
" \) e0 a! D3 v - GETELEVATION ;function added by rk0 J8 c, \8 N" {$ V% h
- GETHEIGHT ;function added by rk
) M0 q1 I( R3 u& E; B! V4 L1 \ - getindex" {+ v: F$ D* A% i+ F' \' V9 d& I
- getlayer9 }2 e4 y! S2 U7 N& _* L
- ;get_locked_layers ;function added and then removed by rk : w$ d b8 ~% s- R- F8 D" d* o( t0 g
- getltype/ {" m# G$ ?4 f4 J7 k
- getprops
P2 }0 i. h/ s. _$ y, r7 S - getscale ;function added by rk+ }- {: T( s# f' f+ P
- GETSTYLE ;function added by rk4 u- W+ x2 X4 k! h
- getthickness
6 R0 p5 J- ]6 n, m2 w1 J - GETWIDTH ;function added by rk( O8 Y0 b3 X. A9 \+ R. j0 E; h+ [
- globals
& X. y) U7 h0 H - HAIR_STYLE_LIST ;var added by rk: ^- Y" Y3 `8 r
- height' }4 k0 f6 z i# E) c
- index
! |3 t) f$ m7 Y. o% I* F. I8 n5 M - item
V( Y9 l9 A3 [) y/ V0 R - item1; _0 [$ h! ?. I8 _) z3 O1 g
- item2( a2 S i/ ~- ?7 e; f$ f
- itemlist3 ?* w f: J+ i" K* `
- lay-idx
3 f4 E% Y' m. o - layedit_act
$ r+ x- F n% g: d - layer J4 H: q8 e1 t4 M$ t
- layinfo6 ?. {% K, v) l5 }5 J$ n1 h
- laylist
+ n d- @5 T3 h! E6 Y7 a5 M# B - laylist_act0 P7 l' @5 l8 }! Y" n
- layname
: I. N- z3 o. }) R, \3 o - laynmlst% ^" Z9 N# m7 x% p0 |
- layvalue% i7 ^7 a7 ]+ ~ C
- linetype
" s' b8 ?3 U4 ^8 ~ t4 m - list1
* j, v6 F# w: e3 W- v, J - longlist9 W9 l8 K( _, |
- lt-idx
3 u! v6 F% M( ^: c% d- _ - ltabstr6 P0 g9 p9 I3 S) G: ^# \
- ltedit_act+ s, K) P. E" h4 ~5 p' a5 I
- ltidx0 ]1 L+ n* g# D4 J1 N& V0 ]
- ltlist
9 W/ a" M4 }8 I" K - ltlist1# J5 C0 p$ q* A4 m5 h* k
- ltlist_act8 ^ v. O1 a9 _) k" b$ S
- ltname
9 G) P/ E: ?1 Z4 k/ R - ltnmlst( ]% @0 `6 s' a0 R* i: `
- ltvalue
8 h- M, O6 z, ]8 a* n# @' |. H; a2 y - ltype3 l+ N0 v2 a0 q6 U& R) q7 ]
- m+ G) [# [% ?& p7 c' [3 ~4 ]
- makelaylists
8 g) I8 _0 d: Z! \9 s, ] - makeltlists0 G, F6 e9 {) r3 e- v, r! ?% e
- match-col3 d# \' \4 x/ L% s1 V! V# I1 L
- ;match-etype ;function removed by rk; ^0 \* ^. f0 v
- match-in
) {; B8 J( V7 ^' u" o - match-lay* S. |. ?7 W* s1 `$ {8 O% t
- match-lt
8 w1 ^! u6 d. P - match-lts5 O/ [2 X8 y% F; o
- match-th
9 e6 B* u3 z/ a( C - match_col
+ L2 y% O# \7 @/ [0 o; | - mdashlist! ^1 L4 S! S3 _8 B: C. i" a0 X
- ;MPOPLST ;function added and then move to ac_bonus.lsp by rk3 F0 F' P+ m7 N, Y
- n
1 I2 R0 W) K) p/ L% F9 X/ g - name: e% m! l+ K5 u ]/ N. n- d
- ncolor
# s/ |1 F4 Q$ R2 ] - nlayer( s" O7 k: L8 J3 o/ q) M8 _
- nltype
0 S/ m3 E! E! P& S. I - nthickness1 j% m" ]& k: h& m {/ Z
- off0 h! E; U5 f/ k! ]9 d
- old-idx% J8 q$ E9 C2 L5 \) m
- olderr
9 R& q6 M& a5 k5 n% i. U, Q - on; |, b0 Q4 l4 }& y" u
- onoff
0 J# K7 x" Y1 V) Z - patlist
: U0 e! D1 W! x! [" \4 L+ t v - pattern5 G1 m, g3 {$ J, g, x A$ l6 q+ M5 ?
- PL_WIDTH_GETTER ;function added by rk
8 I8 h: Q& b$ } - POLY_SS ;var added by rk
% X( j- k2 Y- L# n - ;POSITION ;function added by rk and then moved to ac_bonus.lsp# X3 R0 O, M& w. e2 L" |- Q
- proplist
- b' U$ L) X$ _ Y - reset-lay% k1 D3 b4 y ?- v7 X9 s9 I5 b6 S3 I
- reset-lt
4 E+ k- d* P+ H! D - s
* W7 q" `# A9 L9 V: C" \ - selset
- h$ { z3 w0 a$ r, l* o1 n$ G - set_col_tile
/ P) }, n& z: g8 S: [ - sortlist
- b3 _! P9 R1 i& X7 \ - ss
" [* p1 h' I- n O - ss_in_current_space ;function add by rk.
1 P2 l5 G( x. h. B; `- r7 i2 { - ss-index, n# o5 k6 Z0 x1 ^
- ss-length3 K' y' x2 ?1 @7 j: q/ B& c
- ;ss_remove_locked ;function added and then removed by rk.
1 {0 l( C) |3 {# Y4 M - sslen
_! K. A8 s% t$ D* F0 {2 D - temp_color7 d$ R) }- i/ Z" { g
- templist0 W& Z" j% X( ~$ d1 k
- test-main-ok3 }1 e' X F. d9 f" x+ E
- test-ok# h$ F7 [9 K4 o
- testidx V$ X( f/ Q. i( u, h
- testlay
) Q7 P- A: K6 B4 M4 _5 F - th-value; d9 W5 [/ m* S' }
- thickness# Y' M! p6 [6 t: ^0 M% {
- tile
( E, J( ~& K" |* R - tile_rect
5 M+ d6 I$ I$ c! E2 N: B - tilemode$ g t) B5 h, d& m6 Y/ M" x E4 u
- ;TNLIST ;function removed and moved to ac_bonus.lsp by rk
& F K- n7 m) e% f2 v - TXT_SS ;var added by rk
# g- M8 h( H6 P0 {" B7 P - ;undo_init ;removed by rk.' P! h3 E# m1 L: L* n$ I" `
- vi
. }- L3 Z1 k& a: G+ ?; n' Z. ]- e - vpf2 {% i0 u5 I* y' d7 }1 }) T- s8 U
- vpldata% C, N0 q+ a" i" X* [
- vpn
+ \8 U: `/ b. y6 {, V - which_tiles
4 P) Z* L$ ^4 z' L ^1 b$ D - width; g. [5 x% v: T# D9 h7 i
- x
6 P3 v8 D) }; K% X8 ^ - x17 f9 T: A S, X8 [/ H$ D: P* Y% r
- x2
7 l3 f6 \( C8 |1 J) E! N - xdlist. k# k F& b E- V: L" i z7 O/ N& ]
- y \' I- F2 W1 Q3 _) V! `
- y1
7 i" C1 I/ C0 w' q0 g) H2 e - y2& N/ O# N& A4 |- I8 ~
- )
. T% ]/ v4 n( R, M t# [8 m+ g& _ - - k6 s% F4 T& b% s$ ~
- (if (and (not init_bonus_error)
# u# w3 \3 f9 h0 ` - (equal -1 (load "ac_bonus.lsp" -1))
' U+ `* \: q& m2 d - );and) u l- Q* m6 Y; l5 d9 g0 b
- (progn (alert "Error:\n Cannot find AC_BONUS.LSP.")(exit))/ @, W' a% n, x
- );if+ \7 u/ _) [/ E. @8 x: `" Q5 _
- (init_bonus_error (list
5 L+ T0 {' J1 w% g+ ` W z - (list "cmdecho" 0 , P1 ?& \, F" i- z- U3 P
- "highlight" 0
4 D4 i3 h; M6 A w K- i% a3 @9 V7 g - "regenmode" 1
4 [! b9 L6 U# o% N; W - "ucsicon" 0# n; N2 m6 @$ Z+ A; [. D7 Y
- ) # U3 v3 }, B: S+ m3 ]! G
- T ;flag. True means use undo for error clean up.
' v. v! Z7 u% D/ |. ]- ~" L1 T) r - );list
2 o M2 Y% ^0 K( n- B9 C# @5 u3 U7 z - );init_bonus_error4 n. Q" p: U. s# e
- 0 I0 ~4 x9 w. p' E" c; _" {
- (cond+ H1 g8 h' W: q0 i" j6 q2 G/ A8 r
- ( (not (ai_notrans))) ; Not transparent?0 E3 `+ G4 V1 J" _ s
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?2 U% e* K' |1 D; f) U
- ( (not (setq dcl_id (ai_dcl "exchprop")))) ; is .DCL file loaded?
0 `! r2 d3 D; C+ u( o - ( (not (setq ss (ddchprop2_select)))) ; objects to modify?+ {. B! {+ x5 c) A1 V5 }& j
- (t ! ~3 I2 f$ W( w3 J6 n
- ;(ai_undo_push)
3 { v5 ^1 J1 b; m7 z+ C - (ddchprop2_init) ; Everything's cool,! c* }' `% U; G
- (call_chp2) ; so proceed!
& j8 X6 M* A @2 \4 n - ;(ai_undo_pop)
! w d6 s; L4 `) S1 {; b - )
4 z, q3 N3 o/ \, x& \ - );cond close5 c' F' k- X6 v. Z' O; h
- ! j- E7 R& M" z
- (restore_old_error)& w A5 W. e; y c+ f% y
- ' S: ]9 R" B/ l! \
- (princ)
4 w* T9 N3 @5 F( a. s! K- { - );defun ddchprop2
* |$ U2 u% @5 [# _3 t
" P2 X9 a9 O }9 o; I% D- ;;;----------------------------------------------------------------------------
8 w# T4 t( N: I+ _& X& d3 B
. l* I5 y9 q9 j- (princ " EXCHPROP loaded.")9 s7 G1 D, a# n; \& |1 e
- (princ)
6 Z# K) u. ~, c" d; I7 R
5 i. E; O3 x1 b. N- ;;;----------------------------------------------------------------------------
- l6 s+ C$ N0 v' K$ ^1 d% H - ;;;---------------------------------DDCOLOR_LSP--------------------------------
: ?2 ?7 f' g& J3 l5 d - ;;;----------------------------------------------------------------------------
6 X7 m& `0 b; v! `7 _
7 r+ w4 A" q* E5 z- ; Next available MSG number is 24
' e' b9 d o) V - ; MODULE_ID DDCOLOR_LSP_7 q/ c) g1 v+ o4 p; C( W" P
- ;;;9 e5 e9 j; H( G( K5 B: c- u* @
- ;;; ddcolor.lsp
9 {) i5 L* t- Y7 u9 W8 S5 c* _- I - ;;; " Q2 B. l, L G* d: Q" J
- ;;; Copyright 1990, 1992, 1994, 1996 by Autodesk, Inc.9 o" m! @* g) Y$ R4 [9 U$ }
- ;;;- l8 m0 [) \, Q( Z4 Q/ e
- ;;; Permission to use, copy, modify, and distribute this software
$ ?+ T4 M x5 j0 j5 z, Q; i - ;;; for any purpose and without fee is hereby granted, provided" _! C" \3 r& t# z7 z+ ]
- ;;; that the above copyright notice appears in all copies and
. W0 i# {. q. f, N# J - ;;; that both that copyright notice and the limited warranty and4 p, f$ B1 l. V2 L8 c
- ;;; restricted rights notice below appear in all supporting: [; G5 j, T) K: i5 @3 X9 Y9 V1 [
- ;;; documentation.
* J+ d u% A3 q3 f& H$ Y - ;;;
/ u! P1 z& Y# c7 a2 P2 z; S - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS., h9 p+ a# e! Z/ x" m3 v
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
3 k4 G' z3 i0 P& R& g6 U' O9 |1 O - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
! Q+ o5 F: z, r4 K! T# c' O - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE& q3 q, G- I3 p5 _
- ;;; UNINTERRUPTED OR ERROR FREE.
6 o' _9 N- h( T6 ~7 `' f - ;;;; d' E+ {. ]/ j5 I9 s5 G( H/ [! d8 f
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to0 G6 q; _0 [0 O" k' P9 ] ]) q. K) T h5 {
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
6 T, [% L4 b. S4 Q* r - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
: Z$ W# q" F6 e7 `1 V2 J - ;;; (Rights in Technical Data and Computer Software), as applicable. Z* c8 W, ?' H+ ?
- ;;;
# R2 J3 j" |- U# D: R4 o - ;;;.
6 A8 M: T- a* |$ D$ q( h' c9 i - ;;;) t+ N$ k3 _! {' V/ f0 a" v0 S$ c
- ;;;----------------------------------------------------------------------------
, R" q3 j) |0 D - ;;; DESCRIPTION
1 v8 c0 e: _ f Z& C - ;;;
) c- Y+ i: ]$ f5 q - ;;; Chromatic Pallete style color selection dialog.
6 E m% C, ]0 L( E: s' T9 v - ;;;
& K3 o- [7 r, p4 I7 p- k" @ - ;;; Globals:
' q5 j" H1 }" K - ;;; ! E. U' P9 X) c* z/ i' M# x0 H
- ;;; chroma_color - Integer color index. The last value selected
5 m' _& B/ g3 H& m9 c& S% M - ;;; by the user in chroma dialog. It is not cleared or reset
, }6 V0 j7 _ i. V' q1 G - ;;; by a cancel. Only used for communication between callback& D R2 K; O3 v6 A. k
- ;;; functions and the (chroma) funciton.
0 y' O$ H2 n0 @& o - ;;; 1 L) {4 S7 g6 K+ J) H9 o. ?6 M
- ;;; Depends on the definitions for the dialog provided in chroma.dcl.
! i3 u7 W2 b* ?8 P- j+ ?7 v9 Z/ p( T - ;;; : ?4 e- N! w3 _, v& d9 X
- ;;;
; M ~9 T" g9 m) n# m& H - ;;; C:DDCOLOR -- Dialogue front end to the CECOLOR sysvar. Uses the chroma
/ Z$ i3 K( z/ U7 G - ;;; pallete style color selector.$ D0 N# I ~( l
- ;;;
' H" ?0 x. W# P0 }% {+ t2 |0 N1 h - ;;; ===========================================================================6 w. N7 B _% h3 F6 \3 k
- ;;; ===================== load-time error checking ============================7 z7 {1 q: m/ y: n& t& D* X& v
- ;;;
+ }* A% `1 d4 g# K; y0 R2 v9 s, c
8 M* o+ S4 v2 n* l6 O7 g9 k7 _: H- (defun ai_abort (app msg)
9 l/ q6 p! h* e) F* P1 ]% G - (defun *error* (s)
! z m+ p; M* P' a5 W) {$ S9 d - (if old_error (setq *error* old_error))1 Q5 A* h: A" @* T5 Z _
- (princ)6 P. ?0 ]* {( Q2 _
- )5 _6 O6 U' X+ h7 I# K( P
- (if msg
( u( j( r% _. u6 N - (alert (strcat " Application error: "# ~; Y* g S: M2 ^9 D
- app2 o$ A* `1 T' q7 j4 _1 N, G2 J
- " \n\n "
9 ^6 s7 W; W0 |4 C# E; S - msg! `" K! O& H& g/ d+ j/ J8 l
- " \n"
$ n1 b$ V' H8 O7 P6 I - )
& k1 c. y9 I# v - )5 a, n6 Z+ r$ r
- )% [0 ?+ y$ u6 B/ n' m
- (exit)
6 U3 f- o% N' w# P - )
! T8 A( d1 S% `" h: o - _/ p& q( Q3 B4 ^8 T2 A
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,* x% { p4 P: r* S
- ;;; and then try to load it.+ k9 z* ~ A* d1 t. d
- ;;;
" q7 Q% G9 P* L - ;;; If it can't be found or it can't be loaded, then abort the
7 t4 y& [4 ~ }8 Z$ f6 _ - ;;; loading of this file immediately, preserving the (autoload)! C# o) k4 s Z5 a& U
- ;;; stub function.
2 R0 W* q! j' L `4 U
8 P3 a) d6 b8 u5 S9 x% K- (cond% r3 Z2 X) l, j/ n' N# `
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
: e: J5 ]( f& W5 v( ?6 W. e - 9 d, s; P7 I8 f$ |! N
- ( (not (findfile "ai_utils.lsp")) ; find it" @5 b, D8 b. k: [" z u
- (ai_abort "DDCOLOR": F& i6 q: g# F' k
- (strcat "Can't locate file AI_UTILS.LSP."
/ Y8 w2 f6 h+ O+ b" E% Q6 b - "\n Check support directory.")))8 y5 d+ s& o- T! k
- & T/ e2 o% ]1 |# O' L' }+ w( q
- ( (eq "failed" (load "ai_utils" "failed")) ; load it3 p; L; d' ]1 X5 n
- (ai_abort "DDCOLOR" "Can't load file AI_UTILS.LSP"))
+ f3 x+ s: Y. e d - )0 J* i; J+ P! ?# M
! q* P1 H6 l t# B- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
6 q9 b+ U7 y( X$ T3 @7 C! j - (ai_abort "DDCOLOR" nil) ; a Nil <msg> supresses
6 H* H. ~: x5 m8 z - ) ; ai_abort's alert box dialog.! Q4 z" f9 k% w
& o% Q4 E, @. {/ P7 q; O ~- d4 K/ {- ;;; ==================== end load-time operations ===========================
7 g& }9 P/ w; j! o1 C B$ c; t
: B8 H$ F# \) a7 ^- (defun c:ccc (/ co_oce clrx co_err co_oer lay_clr)
# j6 a5 ^+ n2 V2 d) |! u0 @ - 3 {# X: c0 O0 T6 D5 @' Z: `/ h! N
- ;; Main Color function, called by setup code.* `7 Q$ r9 ?: S5 n2 t# y
- (defun ddcolor_main()
/ {6 b" Q% f' k* [, _( q9 G9 r - ! F; k; @- @. m1 Q" U' c
- (graphscr): i H/ J$ h9 Z$ l
- 1 \ b7 h X6 H) w: \5 [$ f
- ;; Get the color of the current layer, for possible BYLAYER color swatch.7 b3 t9 f R/ n0 N) H& w7 z7 m- r
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" (getvar "clayer")))))
5 _+ ^6 V1 v3 i- Q7 Z
2 z$ _7 N+ P: a) w- ;; Call the dialog here...
* E# ^0 [3 p9 p6 i2 U" Q* | - (setq clr (acad_colordlg (cstoci (getvar "cecolor")) T lay_clr))
8 a5 i W9 W4 R' ^8 z G8 B3 l7 O/ @( F - ! Y4 J' m, L! W$ v' U$ J
- (if clr
/ X5 w' }( l r - (setvar "CECOLOR" (citocs clr)))
$ C- z: ]9 l2 { - )
, G; E& g, c. k) ~+ K) p9 I* c
" Q0 f9 F: F7 i8 y' E- ;;;% ?" t1 R" ?1 v& i5 e+ P
- ;;; CSTOCI -- Color string to color index! B; [$ r$ ?" o) _
- ;;; Convert an arbitrary case string into a color index.
9 D. ?) k+ d( A2 X* D - ;;; Returns nil if string is not a valid color.2 E7 a: y) Q9 E# U, |
- ;;;* }# a: h. ?: s* B) q
- (defun cstoci (str)! R7 A: I8 d" `' i
- (setq str (strcase str))
: u. a* P) A* J& v! _" d6 v - (cond
/ G) z @) O# J9 b! B: o8 a, } - ((= str "RED") 1)9 A, B# e1 B0 i" H; z+ E+ \
- ((= str "YELLOW") 2)5 f$ i( Y) M" |* E# g: M
- ((= str "GREEN") 3)
: J( ]# a8 P3 Q7 ^1 w - ((= str "CYAN") 4)# E" B( B/ @: ?3 R& |7 S6 i
- ((= str "BLUE") 5)
# r0 Y& K: ?3 }& o3 k+ Y( A7 I% Q; ? - ((= str "MAGENTA") 6)
2 {+ O1 }) {4 [" f$ N" B- k - ((= str "WHITE") 7), W- ?7 u6 [9 S# J$ R
- ((= str "BYLAYER") 256)" f( g6 i6 ]; f, W! h
- ((= str "BYBLOCK") 0)3 v* k8 p9 F- {. k- S8 C% @5 d
- ((= str "BY LAYER") 256)
0 U3 Q# y" @* m( D - ((= str "BY BLOCK") 0)& h/ C( D1 H7 {3 T, Z( y( ?
- ((and (< 0 (atoi str)) (> 256 (atoi str))) (atoi str))7 i2 ?+ q. e4 S+ E
- (nil)): y0 C& c/ H" z5 h
- )4 |2 w; K, d Y4 R5 d
: V' ~+ b$ _4 J5 o
+ `: T7 b, Y) K6 O+ `' S- ;;;
5 L. U- C3 }6 z - ;;; CITOCS -- Convert color index into standard color name.
1 r! S/ _- I2 } - ;;; Will return the standard and logical color names as text: t- ]2 r+ [3 I1 ~1 s
- ;;; strings. Returns nil for out-of-range color indicies.9 w3 l+ \0 t/ ^, v) T
- ;;;
: L8 W! @- _* K& s( K% ^/ T# g - (defun citocs(i)
* B1 M) h' Y2 q$ M' @ - (cond% g3 x9 A. m! w/ H3 J
- ((= i 0) "BYBLOCK")- Y0 a0 R+ N- _
- ((= i 1) "red")
; L: |2 D- m2 a2 Q8 o( X1 [4 V# A - ((= i 2) "yellow")+ v* o: L* X. t$ c+ y
- ((= i 3) "green")
+ C$ A- E1 `2 D1 h- E# V1 r0 c7 U - ((= i 4) "cyan")
$ ~3 L! f$ k- a. f' L& q L - ((= i 5) "blue")& l# m; G& z+ W, T. y% A* e _
- ((= i 6) "magenta")8 M. e G6 X) W6 K
- ((= i 7) "white")) N+ {5 o6 w% }
- ((= i 256) "BYLAYER")
2 v0 p1 D: n( ~; G/ [' N$ W - ((and (< 0 i) (> 256 i)) (itoa i))/ E% `' y6 x |# w/ m
- (nil))1 f( B- c7 k+ ^2 s
- )
8 L6 T- Y4 L. f9 [5 V4 B
/ k3 n/ [- C- h- {$ _, F- ;; Start of ddcolor
7 `" `: m' |2 Q+ A. b- B0 k - (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
* _& ~% h% o! C' {1 G1 l - old_error *error* ; save current error function
5 l2 c" _! {) e - *error* ai_error ; new error function
. G( q! a5 H/ W* `$ S - )
) }2 b; r( W# P/ `" w* S$ G - % X) V+ F1 i1 t4 p& I& S& s
- (setvar "cmdecho" 0)+ V+ z' [$ }% v/ Y0 T% V
- % O8 ]& j7 z9 ~
- (cond
3 ~" z8 o& ?2 n' j - ( (not (ai_trans))) ; transparent OK7 ?# L3 I. X* p7 N0 B$ U, z' Q+ s
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
k: [$ g3 P' H
1 e. ]6 ^% J7 F6 a1 U- (t (if (and (/= 1 (logand 1 (getvar "cmdactive")))( r. w7 W0 t! z4 ?& i6 D
- (/= 8 (logand 8 (getvar "cmdactive")))% }8 l( F" q9 g
- ). O5 k9 a( ^4 W' d
- (ai_undo_push)
6 Y0 }4 F. g, \' i4 }8 a - )) B! R" U/ S1 J4 S
- ' q6 K$ E; s8 w$ B7 d. P
- (ddcolor_main) ; proceed!
& ?1 `7 k4 q3 i# o* ], g
+ O1 S( O+ w: B$ ^0 J' b* S) d) I- (if (and (/= 1 (logand 1 (getvar "cmdactive")))3 K- g$ ]7 x0 t4 Y8 m2 {2 y
- (/= 8 (logand 8 (getvar "cmdactive")))4 M/ A. M6 A$ w- O
- ) [ N* e7 M, @5 y1 X8 d
- (ai_undo_pop)
/ f, x3 I/ k2 w5 W3 T4 d - )
2 M7 o7 H- A/ }" k" C - )
2 J- \2 G' V4 V! X - )! C; K$ V9 b* I2 j5 |
9 j2 T" `# _ d0 ^( B- (setq *error* old_error)
; ]& V4 W/ S+ l8 s7 ?' W* E" V - (setvar "cmdecho" old_cmd)) Z" [) @- h5 P1 ^# x4 \
- (princ)1 U h% l0 d+ [( A" S& T7 D" M
- 1 l1 o0 e$ [& [6 G/ p; G }
- )
2 o9 @2 j4 Q% ~+ y! O - ?3 y1 y- a) u# T# E
- ;;;----------------------------------------------------------------------------3 _5 | X/ ]/ }6 S
+ m& g: ?/ E8 C- (princ " DDCOLOR loaded. ")
" ?, r) I/ l* L# j( J - (princ)
0 W4 l! O( J$ d( E6 U7 o
. i- Q) o. M" \6 F0 l$ M) @5 Y' a- ;;;--------------------------------------------------------------------------;
$ D8 U- W- f) d+ X! |+ I+ w( V - ;;;---------------Chon NHANH Nhieu Doi Tuong GIONG THUOC TINH----------------;0 p# r, m s0 O. O8 }
- ;;;--------------------------------------------------------------------------;
: U! T ~) [* g/ u2 q6 _ - ;;; ssx.lsp
& K2 S6 K" d. Z# r - ;;; Copyright (C) 1990 by Autodesk, Inc.- C, O2 _ _1 I
- ;;; Copyright (C) 1991 by Control Systems, Inc.
0 S0 J J2 T1 ~9 @ W& v+ d( c - ;;;4 w, T; o! o4 y# F$ k; m
- ;;; Permission to use, copy, modify, and distribute this software and its; t$ \6 y4 b f- V J0 ~4 ~
- ;;; documentation for any purpose and without fee is hereby granted.% Q! I* Z9 D& Z4 P
- ;;;
9 ^. w6 G! [7 B) ]! z. S - ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.
4 w+ L! h2 ~# h3 r/ y/ ^8 F1 y$ J0 f Q; j - ;;; ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF
2 g* m: N) G& e$ J6 p - ;;; MERCHANTABILITY ARE HEREBY DISCLAIMED.; I! w1 @. ?. y
- ;;;
1 p; f. Z- b/ {/ X1 ~ - ;;; Larry Knott Version 2.0 7/18/88
" o2 y* ^- o- f! i$ Z3 a7 u - ;;; Carl Bethea & Jan S. Yoder Version 3.0 A8 y$ O; `& `7 }+ B
- ;;; Enhancements to (ssx).
: E; R2 D& K5 A - ;;; 15 March 1990
& g% Z3 d9 s A9 R, q' \# v - ;;;0 _# @! Y0 P A- D4 l2 w4 N6 _1 j, v
- ;;; ARTIST Software, Inc Version 4.0 December 1991
- ~' g' R2 d+ r% R7 E7 A4 { - ;;; Modified for FLEXICON usage. If the variable FLEXVAR = 1,
' t6 _, { ^! d - ;;; use Flexicon menus' j: d# `0 y" P
- ;;;8 b% W3 j# @ X# J) m3 A
- ;;;--------------------------------------------------------------------------;& k) Q1 _- I1 ~& K: O- \- n% K/ L' T
- ;;; DESCRIPTION% y) R# l9 D, N
- ;;; SSX.LSP
. D* ~" J8 K3 I - ;;;
6 J) ~9 |5 \0 @ - ;;; "(SSX)" - Easy SSGET filter routine.
; I, |2 U2 [) g+ Z( Y3 J - ;;; + j# O- m) S0 O0 V0 c \; z
- ;;; Creates a selection set. Either type "SSX" at the "Command:" prompt
7 j- Q: V, d; ~$ P! p6 @$ h, Y) v - ;;; to create a "previous" selection set or type "(SSX)" in response to
$ t1 T$ z0 X# f$ C - ;;; any "Select objects:" prompt. You may use the functions "(A)" to add * u4 }/ ^) o! @3 F2 @3 J
- ;;; entities and "(R)" to remove entities from a selection set during
5 t6 w) a9 }% S5 H# s5 t - ;;; object selection. More than one filter criteria can be used at a # C$ v- k# B: U% `& ~3 h G
- ;;; time. 5 u1 S8 \; P0 b6 k: }! I5 b9 }
- ;;;
/ m& k. E& B/ e8 y+ f% e - ;;; SSX returns a selection set either exactly like a selected
6 R2 }3 ]+ r$ ? - ;;; entity or, by adjusting the filter list, similar to it.! L" ? M, C1 s( J" R
- ;;;
+ b; L" n' P, o. A0 Y/ J - ;;; The initial prompt is this:8 I2 J; n" Y8 t: s- h
- ;;;
0 R, |5 _+ y f. o3 h* t: r; ~, M! c8 S - ;;; Command: ssx
" [1 Y1 l. m% [, j+ i - ;;; Select object/<None>: (RETURN)
/ A: q# O, _5 }. l. M0 n$ Q1 c - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
% C$ Y9 t3 n2 Q( m - ;;;
* u3 x/ O4 ^; f! o - ;;; Pressing RETURN at the initial prompt gives you a null selection
5 G# O8 F- K! G% N - ;;; mechanism just as (ssx) did in Release 10, but you may select an 5 q6 S# P' h4 ^
- ;;; entity if you desire. If you do so, then the list of valid types
' ~4 y# A g; N1 J9 F - ;;; allowed by (ssget "x") are presented on the command line.6 s( W. d2 n2 v" W
- ;;;
! e8 q$ d/ T' i4 [$ u - ;;; Select object/<None>: (a LINE selected)
4 i2 a) t) W7 G& V) B - ;;; Filter: ((0 . "LINE") (8 . "0") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0)) / ?0 q7 w; |' A+ D, Q1 ]
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: & m6 K$ x$ [, Q. R! f" o
- ;;; 8 `3 v) z# E: w/ p( E, m r1 }, k
- ;;; At this point any of these filters may be removed by selecting the ) x1 @$ l. k) ]) l4 Q) v1 G
- ;;; option keyword, then pressing RETURN.
. N1 |, F4 M5 _4 c - ;;; & n5 U; O' O; k2 V; A( h! f# Y
- ;;; >>Layer name to add/<RETURN to remove>: (RETURN)
4 f- N! @, J6 f, g/ { - ;;; 3 H o' ]3 e4 g' H
- ;;; Filter: ((0 . "LINE") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))6 F5 T$ x7 D9 H! n. C
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
. y, b. c; s) q3 y' B - ;;; % x! j8 W+ |$ l% Q( U( Q
- ;;; If an item exists in the filter list and you elect to add a new item,
. u$ ?) y) w/ F - ;;; the old value is overwritten by the new value, as you can have only
' \; D$ D; `% S3 M* {8 x/ d D- Z - ;;; one of each type in a single (ssget "x") call.
- H8 d3 ?6 I: g$ Y7 {% C8 s2 `. T8 u - ;;;& ^- S( f" e- B6 v3 V
- ;;;--------------------------------------------------------------------------;
& b' Z N( g* Y: m% g; V, n( f- g' ` - ;;;8 n( n- R F4 D6 R: B, B; L
- ;;; Find the dotted pairs that are valid filters for ssget
/ g2 M d0 c$ G% R8 f' q - ;;; in entity named "ent".+ p |3 R! }* V& d
- ;;;
. k# f7 p( v- W {! Q; r f - ;;; ssx_fe == SSX_Find_Entity
5 T9 V7 Q1 g, W6 F - ;;;
- `/ X! l( k! i; d5 x- d$ ]/ q - (defun ssx_fe (/ x data fltr ent)
9 j h+ w9 z5 \" Q) g+ d7 k8 A- d - (if (and (= flexvar 1)(/= t2 "Pick"))
9 D! y7 g$ a3 L - (setq ent nil)
: r c- M' F+ j# g) v! K0 c6 q( D - (setq ent (car (entsel "\nSelect object/<None>: ")))% H5 }# x' V5 @
- )
. z0 M( }$ }7 v9 h" }' {; P - (if ent9 d% e ~ S* ?- `/ x
- (progn
3 \$ S, E0 ?( v) z0 [0 Q+ U } - (setq data (entget ent))" Z" E- X: `( o
- (foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 38* b0 b5 ?3 F& B7 v
- (if (assoc x data)
# y! p% P9 R* M0 W' \ - (setq fltr . {: D$ R$ [& C P
- (cons (assoc x data) fltr)
% H6 V( Z8 H: S! ]7 q, f4 q% w - )/ O$ w" l6 Q2 o6 _/ r4 d
- )! ^+ H- p: g# y
- )
6 O) W( {0 f q, A: u - (reverse fltr)
4 u' L/ p2 Z/ X# q - )
3 l1 u7 I( R7 u6 d9 b - ) $ G# |9 p* u: T1 z7 g1 f
- )2 d, p( f0 K1 X# s
- ;;;6 H" B: w) G8 E; e3 u; W' p7 E
- ;;; Remove "element" from "alist".6 |3 s) f: z- \4 k0 }: T
- ;;;8 N4 d' E2 ~$ q7 B. z
- ;;; ssx_re == SSX_Remove_Element) Y2 Y4 f+ L+ H/ l
- ;;;$ _3 w+ Z7 T1 L- [1 t* v' g# T4 S
- (defun ssx_re (element alist)
7 D0 s! n# p/ w4 n, N A( y: v - (append; j- |2 q* U; d
- (reverse (cdr (member element (reverse alist))))
% }+ ?1 u5 \. a( v* i) p# \& b# W - (cdr (member element alist))
2 O. m7 G+ D) y/ o6 \: H - )" v. N! c. k7 n2 M
- )
& x4 H; [+ m0 o: m+ A/ C - ;;;* d( {2 J6 V0 Y- C3 A7 u4 ]
- ;;; INTERNAL ERROR HANDLER % i1 f0 \. w4 j9 Y3 z. z
- ;;;! m( K3 O. V+ [5 m9 W% n
- (defun ssx_er (s) ; If an error (such as CTRL-C) occurs
8 G5 j0 U) a. L/ `# Z - ; while this command is active...9 L/ i7 t8 W! Q" T! n" X
- (if (/= s "Function cancelled")7 g2 |5 A0 w6 g. ~# e! R
- (princ (strcat "\nError: " s)), X0 Q0 u3 I! C1 @6 v4 P( ?
- )8 ^) H" z! r: |' G: g! v
- (if olderr (setq *error* olderr)) ; Restore old *error* handler
% t% T1 r6 L/ ~$ H' G: p! \ - (setq flexvar 0)( L5 T7 Q! ^' s
- (princ)+ O2 w! G; Z0 u3 W
- )
$ o' E& Y) p3 v- A4 j& A1 K# ^* y - ;;;. J4 F* g+ z& l% \4 ?; m
- ;;; Flexicon call routine8 k0 U1 a( P3 ] d. t; ?; X& Y
- ;;;
, u* g4 _$ n) A% {0 r! O7 [ - (defun flexmnu (a)
5 P4 n3 M9 z/ ]+ j" X3 U - (if (= flexvar 1)
9 C9 P) b4 U0 E; B0 i - (command "FLEXICON" (strcat "FLEX" a))+ C# W) a( g! x) o# a' W& C( d! c
- )# j# c+ \$ n1 c: t1 b) u$ S( k* k
- )
' v; c8 H m: S h" ?
3 n e0 q/ P: I& D- ;;;
! O$ k% Y2 F5 b x - ;;; Get the filtered sel-set.
% q5 Z: I5 C" b0 Y6 H0 H4 n4 k - ;;;! Z4 V3 @( c# y5 V& l# Y
- ;;;
2 z* L: V* k2 C' H. L - (defun ssx (/ olderr)
3 S7 U; `" ]6 K! B - (gc) ; close any sel-sets 5 ]& L' s4 C0 T% T
- (setq olderr *error*
; A4 o6 ?3 p& A - *error* ssx_er
; _3 K& N o2 S1 I- G1 k - )
8 h m6 E0 h9 b0 _ - (setq fltr (ssx_fe)) + N/ b8 w$ m: y" c
- (ssx_gf fltr)
- `. F' r3 ^1 R" b3 r - (if (= flexvar 1)
3 r3 Q2 h% \! }2 A# C" L3 H - (progn
0 }2 v' q2 ]/ ] d - (prompt "\n \n \nNow select the required EDIT command and (P)revious.")' h! E( ]( I0 h, W$ X2 \
- (flexmnu "EDIT")8 p, p( {! f g; B( a4 b2 y$ k; _& V
- ), \3 D& J& W. n, z+ |
- (command "p")
4 J5 F" C0 ]9 U& y3 m* d - )
- K1 K7 {& M) e) r - (princ)
2 z+ J3 e; F3 K - )
! T/ H+ ?/ `& ?" [* x1 o7 c- W$ H( p - ;;;
! l+ _1 o: A& R. H7 C - ;;; Build the filter list up by picking, selecting an item to add,4 ?! v, j3 e' S( T
- ;;; or remove an item from the list by selecting it and pressing RETURN.
! X5 {) F) L0 i7 z( T - ;;;
9 k4 `# k+ [! `. Z' T8 m - ;;; ssx_gf == SSX_Get_Filters
9 |; K' h) j, T( j6 ] - ;;;
8 q' W! {- {) }) u2 P5 h - (defun ssx_gf (f1 / t1 t2 t3 f1 f2)% @. U( J# q j2 g5 v
- (while
1 U( Z0 Z* t0 d2 @ - (progn
: r. o- u; \$ J2 @ - (flexmnu "SSX")
0 C+ p1 B! e$ K7 ] - (cond (f1 (prompt "\nFilter: ") (prin1 f1)))
8 o3 h& s& T+ R7 L4 ^ - (initget
# q0 n, l. p8 t* F - "Block Color Entity Flag LAyer LType Pick Style Thickness Vector")' t5 r+ c { c
- (setq t1 (getkword (strcat
8 r9 h9 W: q$ F) H) c" e% ~ - "\n>>Block name/Color/Entity/Flag/"
: P5 `0 P9 U. ^: s2 O9 h @+ Q1 j - "LAyer/LType/Pick/Style/Thickness/Vector: ")))
/ q' a- j: k$ }" L - )3 m7 H Q9 G: P& Y# E, ?' a' n) ~
- (setq t2
. N* p5 C6 [ |( I' W+ @ - (cond
+ h' O T! M1 D6 S - ((eq t1 "Block") 2) ((eq t1 "Color") 62)
0 M" w& H0 G0 [6 \/ e* @ - ((eq t1 "Entity") 0) ((eq t1 "LAyer") 8)
0 s. o; G; U- w6 p - ((eq t1 "LType") 6) ((eq t1 "Style") 7)6 S% h2 X) ]' Y N
- ((eq t1 "Thickness") 39) ((eq t1 "Flag" ) 66)
7 [3 l5 R' R, ~4 \1 t+ v - ((eq t1 "Vector") 210)9 V' k4 {1 q" ~/ q9 p \" V
- (T t1)/ |+ b' r: N! k6 J
- )
3 }3 ]# L6 a# u - )! {3 h( w$ f- v2 T n
- (setq t3
0 c% ~. o' Q5 v: f - (cond; v' f5 Q- {2 A) y. ~
- ((= t2 2)% y) R* ^, h( G2 L8 z) X
- (if (= flexvar gtads 1)
) Y. y2 ~+ z" f0 d& ]$ z - (progn$ z' l1 i4 e Z! J; j) \
- (prompt "\n>>Block name to add/<RETURN to remove>: ")
" C5 o0 x- I, k7 W- \ - (gttable "BLOCK")2 x2 i6 r7 @! g- A+ M
- )
$ _- [0 x1 u3 Z# {+ i& N0 _ - (getstring "\n>>Block name to add/<RETURN to remove>: ")
! {% K8 s" u9 D2 w& d - )% I* n5 r* q! q, r. `8 z
- )
& F) J9 ], k; ^* K2 {- c e+ j2 S' d - ((= t2 62) (initget 4 "?")! O' B+ ]9 s5 q% u) k
- (cond, A, ], O8 | ?
- ((or (eq (setq t3 (getint 4 S+ L; O( o' q! p% B# \$ `
- "\n>>Color number to add/?/<RETURN to remove>: ")) "?") + ?; D* b3 R& g S( P/ h4 X+ i6 b" c
- (> t3 256))$ h8 y- w, u3 P/ @) Q0 |' a
- (ssx_pc) ; Print color values.. b; t3 _: ?8 l$ n; s
- nil7 I% s; ?3 b) h6 Q
- )3 N2 p" O( K/ w& {
- (T( _, S9 M) @3 z' H
- t3 ; Return t3.
/ `5 }) ]% l" Y% P& O. c0 _' k2 L; A - )
* ?) _8 m6 u ]+ x7 v& U - )2 F2 ~+ T0 E! j8 d1 z
- )$ T! _9 w! Z$ ?1 R
- ((= t2 0) (getstring "\n>>Entity type to add/<RETURN to remove>: "))
9 h( p! [! @. {3 O- O( \$ [ - ((= t2 8)
7 l4 s* L( X' h9 Q: Y# K - (if (= flexvar gtads 1)1 }$ z2 X$ W* m2 v
- (progn( _/ S" d. D* }9 L( T2 V$ A! b
- (prompt "\n>>Layer name to add/<RETURN to remove>: ")9 ]; G4 S J) K N7 Q/ `% D; q q" i
- (gttable "LAYER")& s h8 L- k% H
- )
& z! l% S2 B+ i3 m - (getstring "\n>>Layer name to add/<RETURN to remove>: ")
0 l* p5 v1 n }+ r/ f3 W - )9 x! b. C1 `% S1 X$ m, } {& E9 l$ X
- )
. y) B* Y& V+ }2 I* J V5 f/ T, O* G - ((= t2 6)
8 J# r2 R! N4 W - (if (= flexvar gtads 1)3 Y. B) ^9 k& i/ ?7 W( }
- (progn% r, j6 q. J: |! c
- (prompt "\n>>Linetype name to add/<RETURN to remove>: ")
/ H( B& e4 s2 ^# T$ u: w - (gttable "LTYPE")( L' e2 t' Q1 l3 I) r" ? i
- )! L5 G/ A- u( S& ~$ |% Z
- (getstring "\n>>Linetype name to add/<RETURN to remove>: ")
8 ?3 n: c0 I( M5 U - )6 e# S/ Y! }2 `/ C/ ~
- )
: A0 a, ^# |* ^4 _ - ((= t2 7) . N, h1 [2 C" N: w0 [; K# W
- (if (= flexvar gtads 1) @& z# m8 o9 `& ~
- (progn
$ M% V! R8 C5 B7 Z, x) C6 f, i) t - (prompt "\n>>Text style name to add/<RETURN to remove>: ")
! B7 p% G$ z/ `, {* G8 m- ^ - (gttable "STYLE")+ J$ y" F. N6 f
- )2 E9 M8 y' M* y% v1 d; i
- (getstring "\n>>Text style name to add/<RETURN to remove>: ")
/ `8 j2 a4 K( B7 {9 Z! w* J - )
$ J9 B8 u# C/ A! e5 Q. |7 s - )
& e0 j. u' F2 r# Q - ((= t2 39)
9 b7 y) {4 {# z L3 D5 Z6 B9 d5 U - (prompt "\n>>Thickness to add/<RETURN to remove>: "), z. V# t& g2 M, C6 h$ U# X6 ?
- (if(= flexvar gtads 1)(gtfnum"Thickness to add:")(getreal))
+ W: H B( s$ l. k$ b! R - ) ]) z; j5 Z! s% @; n$ c# G
- ((= t2 66) (if (assoc 66 f1) nil 1))! P5 y x% s2 S& }! y
- ((= t2 210)
; w0 ~ p% c% S4 F. M/ S - (getpoint "\n>>Extrusion Vector to add/<RETURN to remove>: "), `0 _6 f# Y( N
- )! d5 ^% G! `& x. I# Z- ?, V
- (T nil)
7 B3 q# O; E( [: ?" O - )
: o' V& ?# p" ? - )
. L8 X. V: r0 \4 p4 \: v - (cond
9 x3 b$ ~6 V4 `1 ~5 n' V: f& ? - ((= t2 "Pick") (setq f1 (ssx_fe) t2 nil)) ; get entity$ k& |& T/ B `3 |/ F4 a% B
- ((and f1 (assoc t2 f1)) ; already in the list$ l: p$ n$ I! l! Q( B5 x9 P/ Q4 L
- (if (and t3 (/= t3 ""))
% O1 C3 ?" K2 |! h0 I5 z. E% U% m5 X z - ;; Replace with a new value...
# @& P( B) ^! t5 b - (setq f1 (subst (cons t2 t3) (assoc t2 f1) f1))
8 U: x2 T4 V, g4 m1 R } - ;; Remove it from filter list...
4 `0 N7 \ U' o, [9 T9 W [8 S - (setq f1 (ssx_re (assoc t2 f1) f1)) / w- [7 E' }8 I, ?1 i& ~4 W% l; Z6 o. _
- )
8 P( } n# T) Q - )8 ^; o* E0 s$ W ?4 s
- ((and t3 (/= t3 ""))
" \ B/ j& T' K, O- D" E - (setq f1 (cons (cons t2 t3) f1))
8 N6 H# ~2 V8 ~! l: J - )3 l; l3 A7 @3 I. w
- (T nil)
, F, H& ]2 N% A; @" Q* I3 A - )- M% q- ?+ E0 q2 c3 o7 j
- )4 v# i3 u1 I" T) Q2 [ C
- (if f1 (setq f2 (ssget "x" f1)))
5 b2 K2 W, Z* I - (setq *error* olderr)
/ }% U: z I' k# O; A. x, N - (if (and f1 f2)
& }% y' b. O/ f - (progn5 I5 F7 \& p- K) s/ [, t
- (princ (strcat "\n" (itoa (sslength f2)) " found. "))( t6 j* B+ Q9 @ x! {. w" F# H
- f2
% T6 w4 _" w( V - ), r$ d: F% S9 I
- (progn (princ "\n0 found.") (prin1))
5 F& y! P' }! R. a6 Y - ), c$ @$ W8 P h
- )
8 V& K$ w- V& H4 b! T - ;;;6 D. Z8 N8 r/ [- N2 n/ S' f
- ;;; Print the standard color assignments.) W7 _6 M. ~; z! @ j% J
- ;;;
$ [' I4 t* [# p3 m6 _( u& v - ;;;; E0 a2 o5 _4 a) N, j
- (defun ssx_pc ()
$ p( `- F1 Z5 i9 j - (if textpage (textpage) (textscr))
) V+ C/ V& ^5 u9 i! K7 h1 \ - (princ "\n ")
# h2 N, j7 z3 N/ }+ i) l: I - (princ "\n Color number | Standard meaning ")# s1 l: r& K1 B2 }% @/ p6 V$ Z
- (princ "\n ________________|____________________")* l1 {" c3 y/ V: U# ?) I8 I& R8 o
- (princ "\n | ")3 K$ ~; Q% H0 _5 U6 g
- (princ "\n 0 | <BYBLOCK> ")
6 v; D& J$ E% v9 j) j - (princ "\n 1 | Red ")/ a) O' \$ _- J- q, k8 A+ ^
- (princ "\n 2 | Yellow ")1 V! e$ h3 |6 b& p+ @
- (princ "\n 3 | Green ")
. @2 L4 `' J! J# n' @ - (princ "\n 4 | Cyan ")
2 o2 A4 [7 P; Y4 M7 H; J$ |" Z - (princ "\n 5 | Blue ")) h+ e$ G3 t' L6 b+ l
- (princ "\n 6 | Magenta ")* S& i4 x" `% J- n) o
- (princ "\n 7 | White ")7 F! @6 h/ T4 Z# f' e* }8 F
- (princ "\n 8...255 | -Varies- ")7 y. K9 u6 e M) }$ Q
- (princ "\n 256 | <BYLAYER> ")
: h$ q& |- x: k, {4 J, E/ z - (princ "\n \n\n\n")
5 z/ p( D7 {/ c! C) Q0 k - )$ m6 y. `5 P* l3 p7 q
- ;;;: V; x* q; T) z0 ^3 d4 a( y! n
- ;;; C: function definition.
8 q6 m0 E+ F; `# q: h, e - ;;;7 [/ o" U) U/ @3 V
- (defun c:ssx () (ssx)(princ))
2 |/ v- k3 I( b - (princ "\n\tType \"ssx\" at a Command: prompt or ")
7 U1 h8 n: Z# G1 x) v, V- B - (princ "\n\t(ssx) at any object selection prompt. ")
! ^" K) j& j* ~9 o' p( N - (princ)" k& y8 H4 G1 l) a1 {* a, X
- ! i7 E1 C' d& ?
- ;;;--------------------------------------------------------------------------;" E$ Q3 j1 P; e
- ;;;--------------------------------------------------------------------------;
8 A4 C5 L5 [" b4 d5 C - ;;;--------------------------------------------------------------------------;
( ]' E; k3 A \' Q$ _* r - (defun S::STARTUP ()
3 z# O4 m8 h: A' k" Y; u0 } - (setvar "cmdecho" 0)/ y7 a7 {7 ]( r i1 `. e) k
- (setvar "cmdecho" 1)
- z, R* }; n6 t X - (setvar "LTSCALE" 10)
9 N) x0 y: t$ E6 t/ b! a
4 f5 Z! |1 U, y" r3 J; R z- ;(command "_load" "chenKH.fas")( Q9 K, E% F, e$ }( g* X X
- ;(command "_load" "ctcot.fas")
; z; [' K- J( h) M, k" a - ;(command "_load" "damdoc.fas")+ v/ ?! H Y! L* a& D/ X, ?
- ;(command "_load" "ghichu.fas")
, T& C, a" h5 S$ \ - ;(command "_load" "hamtutao.lsp")7 e# q; E4 W4 r+ n) }
- ;(command "_load" "KHOITAO.fas"); N; x& D4 W G* ?' m1 U1 f: h. E
- ;(command "_load" "KHthep.fas")
; H3 s' m5 ?+ ^9 l6 z - ;(command "_load" "mbmong.dcl")* n! \/ j5 |0 W
- ;(command "_load" "mbmong.fas")
4 N3 \" D6 [* f0 @* g) K4 r7 \ - ;(command "_load" "mccot.fas")8 o* [, ^2 ?3 X- `6 [$ v
- ;(command "_load" "mcdam.fas")0 }. |3 V8 z0 w/ G u
- ;(command "_load" "mcmong1.dcl")$ T5 ~( S* L; k4 S
- ;(command "_load" "mcmong1.fas")' E0 ]- [: U* y- D
- ;(command "_load" "mcmong2.dcl")8 f0 n: l+ F" b/ l
- ;(command "_load" "mcmong2.fas")
7 a* t% C' k, g& L% M - ;(command "_load" "mcmong3.dcl")
0 `- |" n h9 O* V - ;(command "_load" "mcmong3.fas")) ?% `) w' @/ R* ?9 M$ p& j
- ;(command "_load" "mcsan.fas")
5 `& P# O: w3 x Q7 h. F) P - ;(command "_load" "thepdai.fas")
8 W; q8 L3 ]$ }9 v+ ? - ;(command "_load" "thepdoc.fas")* \8 {1 n; C) @5 |# Q5 u
- ;(command "_load" "thepmb.fas"), y7 _9 O& n% X' o
- ;(command "_load" "thepphbo.fas")
+ H' Z) |0 j) }2 f& U( j - (command "_script" "thongso.scr")
3 t7 ^: h) R- d - ;(command "_load" "thongso1.dcl")
- Q3 v- K( T6 l8 r - ;(command "_load" "thongso1.fas"), k8 v' Y/ c9 n) _" T' Y3 P d) \3 X
- ;(command "_load" "thongso2.dcl")
4 b( v; ]; \0 `: a5 L - ;(command "_load" "thongso2.fas")8 h* @3 X. z8 {8 R3 G1 ~
- ;(command "_load" "tietdien.fas")6 u, `: z" B1 V9 K' S- C+ L" C
- ;(command "_load" "vehan.fas")! i; |% _, R1 H- \
- (command "_load" "phamDuy782006_TKT.lsp")# R1 n& ^$ u$ Q: m+ V7 p1 c- I s+ }) L
- (command "_load" "phamduy782006ganhtd.lsp")
1 W! G- j0 A8 [) D - (command "_load" "phamduy782006ganhtds.lsp")# k5 E% A8 a: H+ b
- (command "_load" "phamduy782006htd.dcl")! {) K$ G9 Q* q+ \; x
- (princ)
+ P+ F J9 R& O6 k7 Y9 |8 I% F - )- h" F0 w; d- ?" ?/ o/ r W7 ]1 O9 x
- ; E+ M5 D+ | L
- ;; Silent load.9 G4 u* {9 R) b3 Y$ y4 u5 G4 m7 t
- (princ)2 x5 F2 ~3 W8 Q
8 y1 t$ J! ?& ?
) A, v/ [# ]9 _, I9 }* {1 x- ;; Silent load for the Express Tools.
( G: {7 ^! M5 p# l( t- d( t - ;; Altering this line will affect Express Tools functionality
; t/ l9 I( C1 l: M& |) |; t - (load "acettest.fas" (princ))& T$ B# F4 b: B9 A$ F" N2 r2 P
- �32
Sao chép mã
5 F P2 N3 b8 T" S N2 c. ]00st Cách Thêm Menu & Lisp Vẽ & Fonts Chữ mở Gõ Chữ Administrator để Gõ% ]* {# k% N" W, C# P
|
|