|
|
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 |
- ********************************************************************************
- d1 f2 |3 }$ Z% t - * ACADLISP FOR AUTOCAD R.14 -> AUTOCAD R.2012 *
3 U t: Y7 U1 c$ O, e( M3 n - * Tran Ngoc Thang DHXD-HaNoi41 from years 1999 -> 2015 *& K0 x- W3 \( A0 W$ n' N U
- * Suu tam & Soan *7 Y% J" W, r- Y
- ********************************************************************************- ]( w7 o* C/ s+ ]0 \& {/ M
- " M4 |; j8 W* e/ w2 ~6 _
- ; Next available MSG number is 104- \& ^6 m/ J; I' J, e7 R
- ; MODULE_ID ACAD2000doc_LSP_; |2 K# b) m0 z8 _
- ;;; ACAD2000DOC.LSP Version 1.0 for AutoCAD 2000
, T7 Y" \3 W* B- t6 ]% U - ;;;
0 ]! [$ Z: U* f: T! q' y& g% y1 n - ;;; Copyright (C) 1994 - 1999 by Autodesk, Inc.% y+ J6 s7 S9 A0 l7 ?: K
- ;;; `/ |6 f$ u& q3 q& |0 a
- ;;; Permission to use, copy, modify, and distribute this software
4 Q) P' }% i# l/ p4 p0 w - ;;; for any purpose and without fee is hereby granted, provided
' ^7 i# f2 ^7 f% m' I - ;;; that the above copyright notice appears in all copies and
" F( z( [' t- C$ K' u - ;;; that both that copyright notice and the limited warranty and+ M; l V9 B- {" k% t3 |
- ;;; restricted rights notice below appear in all supporting( j9 j! u; U R: \( m
- ;;; documentation.
3 I+ @# e' Q3 L; T5 S' l - ;;;% ]- m; z7 c( h3 K" p; J
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.4 W: z( w2 F* b9 q, W0 j/ r y
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
B# ?$ V9 Q, f- A k - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
( m. i( a9 u; ^8 F& T% ~1 z$ Y - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE# C, q5 c) i9 h8 `: H
- ;;; UNINTERRUPTED OR ERROR FREE.
2 A, W+ b5 Q8 b- v - ;;;) l- S! J: a6 s- ]9 B) y/ _
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
0 s% ^7 f* {" R- q8 t6 N4 z - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer: f; K$ l. q4 A- L! k8 Z# l6 z8 i
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
( A* F8 Y9 e" ]4 P1 s2 J - ;;; (Rights in Technical Data and Computer Software), as applicable.
_- ^: s7 `) D% t t/ S' M - ;;;
/ {* L+ M- }( O! r) H: q+ a - ;;;.
$ W. k# j. ^0 i - ;;;4 W; @2 ^8 I6 j* T
- ;;; Note:. z, M& T) M4 d7 ]" D
- ;;; This file is loaded automatically by AutoCAD every time
( A/ _6 O: @" p - ;;; a drawing is opened. It establishes an autoloader and& j f+ e! [+ _6 }
- ;;; other utility functions.7 T: x A' z) O4 d
- ;;;
$ c& h( n& ?0 a. v - ;;; Globalization Note: 3 S. B8 I6 ?& l/ ?2 ^# q( ~$ R1 O; s
- ;;; We do not support autoloading applications by the native
. O5 f0 B9 s# ? S5 `8 A - ;;; language command call (e.g. with the leading underscore2 M" a5 F( y2 H. A4 o. n, ^) w
- ;;; mechanism.)
$ K1 d+ d5 b' ~1 c, t, G2 B - : \3 D9 a; ^& X! `4 R
- % h" B" z/ g3 W
- ;;;===== Raster Image Support for Clipboard Paste Special =====
. A4 S- @, P2 w - ;;2 \; d( V( ~* t$ l2 a- Y3 d, s0 t
- ;; IMAGEFILE
! S7 N4 S0 k( b - ;;
+ g( ~' K0 _1 v - ;; Allow the IMAGE command to accept an image file name without4 ?& Z* {/ _8 Y. E H5 W# Z- C
- ;; presenting the file dialog, even if filedia is on.% H+ R; a; D* U* |. Q2 {9 a
- ;; Example: (imagefile "c:/images/house.bmp")
3 ?1 r& d1 e% x0 y7 V - ;;; Q) c3 m2 S1 ^; l2 g4 Q7 G7 Y
- (defun imagefile (filename / filedia-save cmdecho-save)$ U# c4 s( j7 d. G' ?0 h
- (setq filedia-save (getvar "FILEDIA"))
( ?! ?" l2 r( c6 i. Z - (setq cmdecho-save (getvar "CMDECHO")): G% J3 S/ |& z7 o( \4 z, y* f
- (setvar "FILEDIA" 0)( i, `# r; L+ I0 M9 {1 x8 n' }* z
- (setvar "CMDECHO" 0)
" `' D1 y6 x( ^ - (command "_.-image" "_attach" filename)
. S; ~4 P3 {1 ?. g - (setvar "FILEDIA" filedia-save)
* R" ~! G( X1 ` - (setvar "CMDECHO" cmdecho-save); @- `. z8 Q4 K9 }2 w1 a
- (princ)" C3 h S9 U/ s% @
- )! n! d% F& N! r$ t) Y: O |
0 x$ K: i& r l. B- (defun c:zx () (command "zoom" ".5x"))
; e Y3 o5 @8 g) G" y# ~1 x/ m" t - (defun c:zz () (command "zoom" "p"))0 T+ x+ s1 ]9 c% C+ E0 T
- (defun c:za () (command "zoom" "a")); B6 U$ W( l5 D, d* v
- (defun c:zd () (command "zoom" "d"))
! z* h. e+ X4 W- T# \ Y+ u2 }7 M - (defun c:ze () (command "zoom" "e"))
+ U- ? ^/ A& r2 F" x - (defun c:zr () (command "zoom" "" ""))3 P9 A/ f& u- T3 F9 P5 {* ~3 A# S
- (defun c:vv () (command "ucs" "v"))& M- I& y7 a: U1 ^! v
- (defun c:co () (ssget) (command "copy" "p" "" "m"))8 j, j! h7 |7 q" w5 N
- (defun c:c () (command "circle"))
5 \( K) f1 Z" ^6 b - (defun c:rt () (command "rotate"))$ E3 w$ N1 {* l1 z! v$ ^; I
- (defun c:3q () (ssget) (command "_rotate3d" "ANGDIR" "value" pause (princ)))
1 m/ B: @; K a/ c* ^ - (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))
" I2 k8 m/ l+ O& s- f- c1 W - (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))! T" A9 U5 R+ \
- (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))
* n) Z8 ~& `+ h% Y8 P) y - (defun c:r5 () (ssget) (command "rotate" "p" "" pause "5"))3 L2 k6 G- D8 N) S: n% a
- (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))" U7 [" g; r' c, K! S* ^: G7 I5 a
- (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
! ~9 S# M; k! y7 O+ |# J5 ?6 \ - (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))8 u2 ^9 I% k% t% J5 x
- (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))9 E4 }0 D7 Z5 j3 K5 X) z
- (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))
! L$ x7 T- D/ ^7 t: @/ v - (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))
. r( q, N% f' _8 y! O6 a+ a - (defun c:md () (ssget) (command "mirror" "p" "" pause pause "y"))9 R r$ I1 u' P: e
- (defun c:fd () (command "find" "p" "" )(princ))(princ)
. q1 u! b3 R- p C2 c7 I - 1 ^$ b5 w$ S$ Y, B V! y8 q: k5 ?5 t
- (defun c:romantdim () (command "-style" "ROMANT-DIM" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)
7 f: ~" a- m3 R: J6 L# B! @' T - (defun c:romantext () (command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200""1""0""n""n""n"))(princ), n3 t: S! G4 V. h, s, L
- (defun c:vnhelvthuong () (command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1""0""n""n""n"))(princ)
' p9 v. y) W0 d9 \) q - (defun c:vnhelvhoa () (command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500""1""0""n""n""n"))(princ)7 y, T8 g8 q" O+ p6 Q s3 C
- (defun c:truc () (command "-style" "TRUC" "impact" "0""1""0""n""n""n"))* n( l) z. M' \: U/ {# L2 V/ f
- (defun c:chu () (command "-style" "VERDANA" "verdana" "200""1""0""n""n"))
2 E& G3 A# J/ U$ G! X - (defun c:cot () (command "-style" "COTES" "verdana" """1""0""n""n"))
* ^+ i4 C/ Z* m - ' m l4 b* g# Y: Y, k
- (defun c:an () (command "-style" ".AVANT" ".vnavant" "200""1""0""n""n"))- Y$ O% j- A% |
- (defun c:ah () (command "-style" ".AVANTH" ".vnavanth" "200""1""0""n""n"))
+ Q, J( y6 l+ E6 D - (defun c:ha () (command "-style" ".ARIALH" ".vnarialh" "200""1""0""n""n"))
7 W- @" h/ ^/ I: L - (defun c:na () (command "-style" ".ARIALNARROWH" ".vnarial narrowh""1200""1""0""n""n"))
+ a8 I% ~: n4 t7 g; k5 `! D' S - (defun c:vn () (command "-style" ".VNTIME" ".vntime" "200""1""0""n""n")). B. y" ~3 t. L) |* {/ d
- (defun c:vh () (command "-style" ".VNTIMEH" ".vntimeh" "200""1""0""n""n"))5 j. K; v& g' d6 ]& S
2 o n3 L' x# r) ~- (defun c:ps () (command "PSOUT" "CorelDraw-import-Photoshop" "W"))(princ);export the current view of a drawing as an EPS file3 [5 C. R9 n7 `! C) R- u) j
5 X6 R O& ^! @4 ~7 \/ ^6 ]" n( _: ^7 w- ;free lisp by cadviet,cd2k444 v7 ]/ i7 U$ b/ x3 |5 \
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830; C( S& H( O# g3 k
- (defun c:FTEXT (/ ent tstyle )
/ V8 L% P4 Z8 g& C: w/ f! C6 ^& D - (command "undo" "be")! Y- x3 n5 l' e; X
- (setq ent (entsel "\n Pick text :")), {8 d' A3 h* D7 N* n1 T* P
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
2 R2 }1 g! G4 v, l- M - (command "STYLE" TSTYLE "romant.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
, @ C( K8 N% o- G3 E _ - (setvar "TEXTSTYLE" Tstyle)2 B7 q- ~) D3 x4 d4 @
- (command "undo" "end")
; r1 N/ C* H4 [; ^6 n, P( X6 G - )
, j- o8 ~9 [9 v( h - ;Cam on cadviet nhieu 27-11-2023 04h15p36s (thanks cadviet)
?0 m6 E" O# m/ _
) `+ i" D a1 j7 h& ^) E- ;free lisp by cadviet,cd2k44
/ c9 ]3 O' y4 ]# _ - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=538308 j* n0 v) u/ u- a* R! q, h
- (defun c:Fvnh (/ ent tstyle )
0 O! D/ Y# g" K- r( P - (command "undo" "be")6 g [/ q6 f$ B O0 q: h
- (setq ent (entsel "\n Pick text :"))3 d* h7 k) o# l2 [3 n
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))/ }2 f4 P$ J( M+ ^
- (command "STYLE" TSTYLE "vnhelvh.shx,vnh.shx" "0" "1" "0" "N" "N" "n")* {, a3 P4 o2 b$ u
- (setvar "TEXTSTYLE" Tstyle)
* `# t. ^ ?8 z( U" p - (command "undo" "end")
9 `* n. V8 `# [2 y0 W! y5 _ - )
% }) F( X, o' ~0 S' b6 H: Y# p - 8 m; S$ @/ r1 w8 h
- ;free lisp by cadviet,cd2k442 D. f7 w' y4 [2 J R* u& K
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
# F! r* A+ j6 t1 e2 F, i+ E. F - (defun c:Chbg (/ ent tstyle )
. g5 t3 ], ?5 u8 { - (command "undo" "be")4 x+ Y" q& P& k4 H: G1 U
- (setq ent (entsel "\n Pick text :"))
0 }4 F2 X; }+ M# h/ _( Y; g2 n" v/ x0 f5 s - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))) w! u0 N) t0 d
- (command "STYLE" TSTYLE "chhbg.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
+ E; ~# c9 g0 m& ] - (setvar "TEXTSTYLE" Tstyle)0 G1 k: n; b& R! L3 Z& y$ H) a3 Q5 @
- (command "undo" "end")! b1 @7 ^9 C1 V! a$ i
- )1 x3 z$ c \7 ?
- $ ?" P1 s" x0 K. S* {3 U' ]" i5 y
- ;free lisp by cadviet,cd2k44 s y; A6 q; @6 o. Z& d8 E! i
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830' Z0 A# T9 }% l ?0 `8 w: C; {
- (defun c:Chsm (/ ent tstyle )6 d2 d2 a# v$ H" E" E0 X4 M
- (command "undo" "be")! t! w+ G) t5 p
- (setq ent (entsel "\n Pick text :"))) o/ ^) [: j. T; q
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))# J1 p6 E( n% d0 M5 p0 a
- (command "STYLE" TSTYLE "chhsml.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
7 ^" `/ x6 L; o7 t; r - (setvar "TEXTSTYLE" Tstyle): v/ w( [" w( [" {
- (command "undo" "end")
& K- E! [7 r& X1 w- H5 Q - ); V; U4 b! s5 T! A6 a" x
- ' y4 i' l: f1 B- } X: k) q7 c
- ;free lisp by cadviet,cd2k44# s7 Q/ S4 e2 d; y v- P$ m
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830; l3 ]" _" ?1 q* B, b2 v0 [
- (defun c:Fttf (/ ent tstyle )
5 i; g. N, F k8 b* R# \1 }: ^- | - (command "undo" "be")
0 J# E1 d* l( w) E1 D - (setq ent (entsel "\n Pick text :"))
# W. b s! Y, M9 I1 u - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))! d6 }/ g; g# A! g: i
- (command "STYLE" TSTYLE "verdana.ttf" "0" "1" "0" "N" "N" "n")
3 `2 Z" J* F) W Q- m# G' D - (setvar "TEXTSTYLE" Tstyle)
2 K1 u8 J4 F9 f* V! s% q - (command "undo" "end")4 E% j3 I. P) J0 j5 y9 _ U9 j" ~
- )
9 q n% L: u: `; }
5 E% b8 z; D* w U# O8 H- ;;; ============================================, I1 F2 H- r# O) }6 `
- ;;;9 r! F& o4 w8 g- h/ f5 y; y
- ;;; LISP Creater Tao Duong Dan AUTOCAD2000+ n4 D. h; r7 S6 F- v
- ;;;
( a; K% H1 N$ _4 m- I1 } - ;;; ============================================
3 |# i0 z. d* D8 a7 z& L - & w4 F; w' Y) o0 W O
- ;;; ============================================0 y8 d3 ~/ L7 d% Q6 X
- ;;;
- Y3 H1 n9 D( f* f6 i( h$ n - ;;; CREATING FROM AUTOCAD2000
' R) ]( g% ]+ t9 {# {4 ^ - ;;;! E$ F& _ _& h m5 Z
- ;;; ============================================3 A1 }+ W" o1 y( E) y
- & \# ]& E6 R- t* y, p
- (setvar "INSUNITS"4)- d9 _8 c# A2 W- m h' y- R
- (setvar "ANGBASE"0); a2 }. j% ~! { ^2 s W
- (setvar "ANGDIR"0)
* {) R$ W }( L1 c! L, ~ - (setvar "AUNITS"0)
- a! ?; r$ `5 ~! j) p - (setvar "AUPREC"8)
& A; ^ L* J, n9 P7 m& }1 P - (setvar "LUNITS"2)
- l k7 Z! z- C1 J7 y1 \! m+ ^ - (setvar "LUPREC"8)
; O9 z" X, `; ^0 A; i8 U - (setvar "ACADLSPASDOC"1) , N+ N8 x5 r- U" _ y& h
- (setvar "pickbox"5)
: K3 ^/ q) T i9 | - (setvar "blipmode"0)
9 v- K5 Q+ d% Y# X3 Q' |, U - (setvar "mirrtext"0) i4 n7 \: ~ B' ]3 G- A( \
- (setvar "cursorsize"100)
r Z {1 x) ?3 P - (setvar "ZOOMFACTOR"75)# z6 v. r- M4 m& g& m/ c4 Q' M. l8 j
- (setvar "LTSCALE" 10)4 l& x, v4 u( e) l' R6 @" _
- (setvar "lwunits"1)
( o# _- F9 \) a# f& O, P - (setvar "DIMBLK" "Closed")5 k2 r8 @9 ~4 r5 A2 d
- (setvar "DIMGAP"0.0693) n! e9 ?6 L, t0 ]- P# B
- (setvar "DIMASZ"0.20)
/ [/ H( \2 @5 h$ A - (setvar "DIMCEN"0.2)
5 m6 ^" B3 z' w3 _( n - (setvar "DIMDLI"0.1)
: ?- E4 d& ?. O! Q% X7 L. h - (setvar "DIMEXE"0.0693)
+ Y/ c- V; [- ~' \ - (setvar "DIMEXO"0.25)
^- R( a! g1 v - (setvar "DIMDEC"0)* _3 G. I" J$ Z- Q7 R3 f
- (setvar "DIMTIX" 1)
. R. J9 d- B! D2 d: A - (setvar "DIMTXT" 0.099)
* }* j; o6 g Q$ k- w - (setvar "DIMCLRT" 7)
g! o6 T& k' R2 s - (setvar "DIMTVP" 1)
2 h$ r& A9 Q Y0 U$ l7 }3 W* M# S; H - (setvar "DIMJUST" 0)
( X( @9 E" b: ? - (setvar "DIMTIH" 0)5 Q) D$ o, F/ n% C# W6 F( V: f2 L
- (setvar "DIMTOFL" 1)) z" @7 w) d( k% r) N9 u$ b% e
- (setvar "DIMSCALE" 1111.1111)$ E3 Y2 ]; B* ^* A$ ~) |' Z
- 0 E. _8 W2 J6 _4 c
+ f/ M* ~+ y7 v
; i6 B( X' E* R/ R/ B- (defun c:zp () (command "'.zoom" "p"))# j# ~# k4 Z! I2 Y) V
- (defun c:zz () (command "'.zoom" "p"))# c: e7 J! e2 F( p* n4 p
- (defun c:ze () (command "'.zoom" "e"))' j ]) B6 M3 X9 g3 h; _+ P
- (defun c:za () (command "'.zoom" "a"))
2 ^6 I: |; J8 [; k! o& H7 a6 }& V - (defun c:zd () (command "'.zoom" "d"))
/ ~% p9 U( q1 k I% e - (DEFUN C:ZZZ () (COMMAND "ZOOM" ".25X"))& F# B# `- t" n: s" l- z# M
- (DEFUN C:ZX () (COMMAND "ZOOM" "2X"))
& A. L4 \+ B+ A# L - (defun c:de () (command "ddedit")(princ))
8 a) s$ d) L6 P. b. C - (defun c:dda () (command "Dimaligned"))+ n$ b; F' z4 O! O% r
- (defun c:ddb () (command "Dimabaseline"))& N# Z/ q1 I$ }+ o g# T+ m
- (defun c:ddc () (command "Dimcontinue"))! V% k, r" z, A) h" `! c' F0 c+ E
- (defun c:dde () (command "Dimtedit"))
- H* w2 A. V, }# Z+ p- Q" ] - (defun c:ddf () (command "Ddattdef"))
8 A9 b' [) q) a! A - (defun c:ddi () (command "Dimdiameter"))
8 H+ P }9 Y* r0 p0 r0 l { - (defun c:ddl () (command "Dimlinear")); J; N7 F7 K5 Q
- (defun c:ddn () (command "Dimangular"))$ |8 o# f+ t3 Q5 l. _3 ^: d
- (defun c:ddo () (command "Dimordinate"))# B. m1 p' t+ {: b- l1 M/ O7 h
- (defun c:ddr () (command "Dimradius"))3 e6 p5 W, |# [! o: K, F# Y
- (defun c:dds () (command "Dimstyle"))9 }$ m! l* Y# {$ W
- : G: ?1 D6 h# f7 S9 P; e1 V0 n; O
- (defun c:DU () (command "dim1" "up" "select" "exit" pause ))(princ); ^$ I1 G z E' C1 T% r! x$ p
- (defun c:DH () (command "Dim1" "home" "select" "exit" pause))(princ)
, j$ V8 v, A l9 N2 n) f% l) L; V - (defun c:UU () (command "dim1""update""all"))
1 C5 z b0 ^+ h# P - (defun c:ded() (command "dim1""tedit"))
' I+ C8 Y, s/ K4 i/ m+ n/ ~$ ^( R: O - (defun c:da () (command "dim1""ali"))+ `+ T: Y+ t# J( k
- (defun c:dll() (command "dim1""l"))
; P0 a3 d; B# `1 K; Z - (defun c:dan() (command "dim1""an"))7 U9 H& @# J+ }* |. ?& e
- (defun c:d1 () (command "dim1""ra"))' _" e2 q$ G/ u; V5 }% g
- (defun c:n () (command "dim1""new"))$ Q1 W- X4 }* M2 d1 x
) H8 a8 g3 i: c1 {5 o/ P& A- (DEFUN C:PE () (COMMAND "PEDIT"))
5 }# W; ^. `1 z v( Q# W# ?6 @ - (DEFUN C:PL () (COMMAND "PLINE"))# t5 p( S" R6 N1 z
- (defun c:dd () (command "dist")(princ))3 g- }+ U; W: P
- (defun c:w () (command "pedit" pause "w" "au")(princ))$ Q' W& R( X1 `+ v
- (defun c:pg () (command "polygon" "polygon"))% `1 Y" X8 P* w2 `" a# M
- (defun c:el () (command "ellipse"))) J4 m+ c/ @8 X
- (defun c:xe () (command "explode"))
: j! r9 ^, a& o4 H8 m - (defun c:eex () (command "extrude"))
- H8 c5 u9 @5 w K - (defun c:xg () (command "xline""a"))
9 |" R6 y9 R2 I' [9 G& _3 J - (defun c:xh () (command "xline""h"))3 K, X, F0 E/ X
- (defun c:xv () (command "xline""v"))
! s- C, _8 N, ^1 E- l) j4 J: P - , ?0 [- D+ r6 [5 h' M6 y- f f
- (defun c:oc () (command "osnap""cen"))) m1 ^, }. q& I" b
- (defun c:od () (command "osnap""nod"))
4 S: \# p2 M5 [ u' d8 D1 N - (defun c:oe () (command "osnap""end"))% U4 u0 V' T7 u7 b
- (defun c:oi () (command "osnap""int"))
# L- ]& L0 P- \% n9 n1 T6 k8 ` - (defun c:or () (command "osnap""per")): \. A# a; |, A6 Z4 {
- (defun c:on () (command "osnap""none"))
2 Y0 P9 k) N. A* q x2 M& q# h6 y1 [ - (defun c:oq () (command "osnap""qua"))
$ Q% r7 e% ~9 Q$ C - (defun c:om () (command "osnap""mid"))
" R; f" {4 C ^% @& L: p9 K) o - (defun c:ot () (command "osnap""tan"))" t& s/ [6 e& H
- (defun c:oin () (command "osnap""ins"))8 z- G* v# n0 H3 D; X- X
- (defun c:oa () (command "osnap""nea"))
- V' a! J& c l8 n b; O - (defun c:ol () (command "osnap" "End,Mid,Cen,Node,Nea,Int,Perp,Qua")(princ))
9 _- S; t' Z9 L/ K$ R9 Z) u& b6 I - ;(defun c:du () (command "dim1" "up" "s" "pick" "other"))* O+ |* [& [% W4 e
- ;(defun c:nn () (command "new" "y" ))
! T% `: Z) g0 t3 k! [
8 ^' s1 J, g; @! Y- (defun c:/ () (command "limits"))4 d4 _3 f+ j! a2 t5 C& F) i
- (defun c:`1 () (command "region"))
+ }6 `# W2 T' T& ?$ O4 A, Q - (defun c:`2 () (command "subtract")). \7 X z5 c7 p+ L
- (defun c:`3 () (command "union"))
# |8 N3 l/ X7 \8 B+ y4 I - (defun c:`4 () (command "intersect"))- M( O$ o, m; L1 e
- (defun c:`c () (command "cal"))
- w4 Y; u/ T. ?9 m: X# \, I4 @ - (defun c:`g () (command "Polygon"))/ @. p/ H9 J: h7 d
N) [5 X5 x+ k- (defun c:lmi() (command "LIMMAX" pause "" "zoom" "all" )(princ)). s( ?! d. l! Q ^5 H0 U
- (defun c:drt () (command "DRAWORDERCTL" pause "Integer" "" "" )(princ))
R* ^( L4 l6 b4 B0 a - (defun c:ip () (ssget) (command "print,_plot" ))(princ)6 f4 h( ]0 c" O+ ?
- 6 v6 h4 I& w. Z- H: p% Z( U) d
- (defun c:ddm () (command "ddlmodes" pause))
x. c4 e* `. {2 r8 ^: Z - ( S4 D5 \ e2 y; G5 g( ]
- (defun c:sha () (command "shade" pause))
6 ~4 I ~. t4 j2 g/ u( b - 3 k: w! e. J( ~3 s& g
- (defun c:sr1 () (command "surftab1" "p" "" pause))
2 ]" t2 X" `' v - (defun c:sr2 () (command "surftab2" "p" "" pause))
4 b( o" x, W, j: }' |
5 Z' g! @0 e3 {6 }( p2 F0 k- (defun c:ad () (command "audit""y"))
' i: c: _' W8 J& I - (defun c:q () (command "quit"))3 ] ~6 @- [/ d0 _
. x$ u) Z/ N$ K K8 D- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))% u- R4 I; c2 V0 L+ s" l
- (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))
& M7 K7 N4 @* T - (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))$ A1 C, A" L5 H/ E0 A( A
- (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))
4 }, x9 P: H3 f$ b# C3 G0 t - (defun c:60 () (ssget) (command "rotate" "p" "" pause "60")). ?& I/ A ?, I }( y
- (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
2 g3 ?2 F9 H. r1 E - (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))6 W9 {& D1 r0 e# {/ S) Y, Y8 N# z
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))
" J& W9 h! z5 N& u/ D, E- V' ? - (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))
( B8 \' T8 S# w& R6 d8 ]9 e) I- \ - 9 i9 T* g6 N) e8 T
- (defun c:u3 () (command "ucs""3"))
+ m5 k- _5 j6 t, d - (defun c:ue () (command "ucs""o""end"))* H% M! H: D4 J! E7 a
- (defun c:ui () (command "ucs""o""int"))
9 T* x, O4 \: G6 ]9 s - (defun c:um () (command "ucs""o""mid"))/ D3 p2 ]; [* t" d& Q
- (defun c:uc () (command "ucs""o""cen")); y% t$ c- e" K1 ^2 z, p2 `4 l
- (defun c:uq () (command "ucs""o""qua"))( y0 A( C, d! v4 g, H9 s$ g% A
- (defun c:3s () (command "ucs""3"))8 X. B* b0 [4 Y$ H
- (defun c:sx () (command "ucs""s"))% v, H4 E3 q! o( b. z7 f2 l
- (defun c:sf () (command "ucs""o"))6 \' e9 H1 v6 \4 q6 F
- (defun c:sz () (command "ucs""p"))' B7 w! G' J( g: r$ i
- (defun c:sr () (command "ucs""r"))) F# z' M4 @/ L3 w
- (defun c:sw () (command "ucs""w"))3 q' O* K- u. |2 q9 _5 L5 X" O
- (defun c:fv () (command "ucs""v"))
, j+ I9 G1 v7 f - (defun c:ux () (command "ucs""x"))* y% P9 B* O* r$ m
- (defun c:uux () (command "ucs""x""90"))
4 ~; u1 E9 a5 d4 d2 Z - (defun c:xxu () (command "ucs""x""-90"))8 z9 M9 m# L: k1 u/ U
- (defun c:uy () (command "ucs""y"))" I4 ?" O$ f% B$ c2 |4 {
- (defun c:uuy () (command "ucs""y""90"))
" W, k) ^- @6 ?5 Y - (defun c:yyu () (command "ucs""y""-90"))
7 K. ? m4 S. f$ ^ - (defun c:uz () (command "ucs""z"))
& d- k0 P x* i% t, t - (defun c:uuz () (command "ucs""z""90"))1 M0 W: v2 J# K% ?$ e* v* W2 [
- (defun c:zzu () (command "ucs""z""-90"))2 X/ N$ a0 X/ M
- (defun c:uci () (command "ucsicon" "Properties" ))(princ)
! G2 G( V$ Z3 G: y) U5 S - (defun c:ucm () (command "ucsman" ))(princ)
8 v1 g. @8 [6 I8 l M/ c a: ?' \
4 @# v6 i( ]2 e- (defun c:sa () (command "vpoint""_non""-1,-1,1"))
" m& g3 \$ u3 f P6 o$ M - (defun c:sd () (command "vpoint""_non""1,-1,1"))) @2 u7 C$ z5 ` I9 G( E
- (defun c:se () (command "vpoint""_non""1,1,1"))
" }- ^ u4 V. _% z! w - (defun c:sq () (command "vpoint""_non""-1,1,1"))
3 T8 b( J1 O$ V( S R: ] - (defun c:vc () (command "plan"""))
* P1 n; M0 B- t$ C G" c - (defun c:vd () (command "dview""all"))$ D) I6 s2 y7 I6 d
; D/ i9 b2 `8 ?( S4 C3 H- (defun c:TT0 () (command "tilemode""0"))& T% _( k' Z8 S9 J
- (defun c:TT1 () (command "tilemode""1")). u0 r5 N$ a& I
% t9 f: r# ^7 t# t- (defun c:vt () (command "vpoint""_non""0,0,1"))" k3 ]9 E- e" e5 K* H
- (defun c:vb () (command "vpoint""_non""0,0,-1"))
6 T! L' I/ j9 u - (defun c:vl () (command "vpoint""_non""-1,0,0"))* A$ l: k' A. H) V
- (defun c:vr () (command "vpoint""_non""1,0,0"))' r* i5 q! E9 M
- (defun c:vf () (command "vpoint""_non""0,-1,0"))5 L! l5 z, _. `! U; W( {' S
- (defun c:vk () (command "vpoint""_non""0,1,0"))
0 s/ `, s$ p5 @. |( J
& @& u4 [( q( O. U+ X1 O6 r$ ~0 w- (DEFUN C:MM () (COMMAND "MIRROR"))) ^) O# o# m! {' s6 H
- (DEFUN C:MP () (COMMAND "MOVE" "P"))% W! G% r* k3 f1 v X: W6 i; o
4 t6 l% }- x- a. V3 Y/ M. T' y- (defun c:mee (/ a)
, U! W% i; c0 t+ L" [) Z - (setq a (ssget))(command "move"a"""end"pause"end"))
6 W$ h" S8 ^/ m% v1 R - (defun c:mc (/ a)
: G% o3 B8 C, S% b m1 V0 F - (setq a (ssget))(command "move"a"""cen"pause"cen"))$ n; Z6 l* _$ A
- (defun c:cc (/ a)
3 S' f! S0 l8 h8 J5 } L+ ?: o1 W - (setq a (ssget))(command "copy"a"""m"))3 ]$ l4 q! f+ T/ D8 E
- (defun c:ce (/ a): u2 E( i) s4 J: s) Y
- (setq a (ssget))(command "copy"a"""m""end"pause"end"))) X h \) L: o! i# J
- (defun c:cn (/ a): s" Q5 Q. `7 ]% Y7 G
- (setq a (ssget))(command "copy"a"""m""cen"pause"cen"))6 S2 V, M a* N" W, k4 f' j5 g
- (defun c:tl ()(command "trim""l"""))
) c0 C) k4 t3 \$ a) u$ d% F0 `/ G - (defun c:tf (/ a)1 M# s9 }9 v7 J8 p' H
- (setq a (ssget))(command "trim"a"""f"))' [, V# \% }0 J. r/ n
- (defun c:el ()(command "extend""l"""))
6 }8 o4 G9 M% k8 l7 j9 [7 a4 ^ - (defun c:ef (/ a)
6 p/ O# U/ P; I# M# R8 X& W - (setq a (ssget))(command "extend"a"""f"))( Y4 {6 O6 c& ^! L% d* F$ n/ N
+ i: d: G: k7 u; E$ V6 q/ ? s6 n1 o
$ l4 b2 v2 s5 F' j3 X& | t0 O- (DEFUN C:110 ()(princ "\nChon doi tuong can offset ra 110.......") (COMMAND "offset" "110"))
. y: A2 U \; _* ^% M' h - (DEFUN C:220 ()(princ "\nChon doi tuong can offset ra 220.......")(COMMAND "offset" "220"))
2 x: g1 h3 Q* N, |/ v - (DEFUN C:330 ()(princ "\nChon doi tuong can offset ra 330.......")(COMMAND "offset" "330"))+ q# W* e9 t* K, k
- (DEFUN C:400 ()(princ "\nChon doi tuong can offset ra 400.......")(COMMAND "offset" "400")): s" u5 e. p0 ~8 Z' A
- (DEFUN C:55 ()(princ "\nChon doi tuong can offset ra 55.......") (COMMAND "offset" "55")): B, s' ? r4 I9 W, ^) h0 _. F/ n
- (DEFUN C:600 ()(princ "\nChon doi tuong can offset ra 600.......") (COMMAND "offset" "600"))& w4 a; X3 M( @3 u2 r& ^
- (DEFUN C:700 ()(princ "\nChon doi tuong can offset ra 700.......") (COMMAND "offset" "700"))
4 D6 S& G: H9 t$ f; G' Q - (DEFUN C:800 ()(princ "\nChon doi tuong can offset ra 800.......") (COMMAND "offset" "800"))
$ P& C) V4 I Y2 {$ Y5 a - (DEFUN C:900 ()(princ "\nChon doi tuong can offset ra 900.......") (COMMAND "offset" "900")): X+ v) w2 v4 F5 H( D; o
- (DEFUN C:1200 ()(princ "\nChon doi tuong can offset ra 1200.......") (COMMAND "offset" "1200"))4 R( E% d( e$ v- l; s& {7 J
- (DEFUN C:1500 ()(princ "\nChon doi tuong can offset ra 1500.......") (COMMAND "offset" "1500"))
' V0 _ _# @5 ?6 @/ O' P% {! c - (DEFUN C:1800 ()(princ "\nChon doi tuong can offset ra 1800.......") (COMMAND "offset" "1800"))
1 Q7 r2 U. W' W* W/ F/ ]( u$ U7 ], l - (DEFUN C:2400 ()(princ "\nChon doi tuong can offset ra 2400.......") (COMMAND "offset" "2400"))7 |3 j# ~. Q/ L7 `
- (DEFUN C:3000 ()(princ "\nChon doi tuong can offset ra 3000.......") (COMMAND "offset" "3000")), e1 q! t$ O' |# e) K+ _$ d8 D
- (DEFUN C:3600 ()(princ "\nChon doi tuong can offset ra 3600.......") (COMMAND "offset" "3600"))7 ]2 K6 T% d$ O
- (DEFUN C:4200 ()(princ "\nChon doi tuong can offset ra 4200.......") (COMMAND "offset" "4200"))
* W, S; ?" h3 |! f4 B2 H- a0 l - (DEFUN C:5000 ()(princ "\nChon doi tuong can offset ra 5000.......") (COMMAND "offset" "5000"))
% z. T, q `. D) o: |; W - 6 m4 h" |- X* A4 r; [5 N) w
- (defun c:mla () (command "-mledit""av"))% d4 s' {& a2 H; W0 o& E
- (defun c:mlc () (command "-mledit""mc"))
' O) V" }. b: x, p: l0 M! D - (defun c:mld () (command "-mledit""dv")). V7 s5 x2 w6 J& E% p2 s. d
- (defun c:mle () (command "mline""end"pause"end"))
$ m% ^4 I/ n! W: K - (defun c:mli () (command "-mledit""ca""int"pause"int"))1 r/ T4 v; B. {5 V @& I( e- e
- (defun c:mlj () (command "-mledit""cj"))
- E, q- t8 Y0 M$ e) V - (defun c:mlt () (command "-mledit""mt"))) N7 I" `' K+ \' C9 [
- (defun c:mlk () (command "-mledit""ca""end"pause"end"))
& h8 ]# |0 Q0 R5 D. I - (defun c:mlw () (command "-mledit""wa")): k# q. l! H: P% H: H# h' w9 N1 P% F) {
$ M1 v% D, A/ \" v1 M" N" |2 v- t- (DEFUN C:DCA () (COMMAND "DVIEW" "all" "" "CA"))
4 @0 c, d, n9 j" J- S - (DEFUN C:DPA () (COMMAND "DVIEW" "all" "" "PA"))
4 I( v2 a0 ]7 N. P1 O4 r9 j - (DEFUN C:DPO () (COMMAND "DVIEW" "all" "" "PO"))
9 m" q) _' P. Z4 | - (DEFUN C:DDD () (COMMAND "DVIEW" "all" "" "D")), y6 n1 A7 ~# b$ |. Q# }4 o! I2 \
- (DEFUN C:DZ () (COMMAND "DVIEW" "all" "" "Z")). L$ ~8 s* v) W
; W. d* }' ^: ]: \4 T- (defun c:p0 () (command "pline""""w""0""0"))6 T# @+ M3 T" `- l; l: E% y6 f
- (defun c:ot () (command "offset""t"))
2 u7 z( o1 W0 E# m t - (defun c:t () (command "mtext"pause"j""bl""h"pause))) H `( t; U/ P3 H8 u- E% _
- (defun c:uo () (command "ucs""ob"pause))
: J! j7 z5 l W" |& B- I - (defun c:f0 () (command "fillet""r""0"))
+ i1 ^ \" N+ x/ K6 { - (defun c:fr () (command "fillet""r"))
4 [7 r# u+ }9 N- N6 m+ Y4 q - ; s7 i( C1 Z" J; D
- ;CHAMFER# A: A# ~$ ?' U. G( e7 v0 k
- (defun c:cf () (command "chamfer"))% N+ _- |9 @5 C6 i9 l# p j
- (defun c:cfd () (command "chamfer" "d")) z/ w b+ W% L; I2 l$ L' p
- (defun c:cf0 () (command "chamfer" "d" "0" ""))+ t V0 I3 M! x: a, m- ^$ A9 x
1 N4 L( e, ]! h( X3 N& ~$ E- ;FILLET
* _, d3 Q# _& N! J* l t6 a' Y - (defun c:f () (command "fillet"))' k. N. m- E; r! T5 f
- (defun c:fr () (command "fillet" "r"))
) ]( U9 T2 s! U - (defun c:f0 () (command "fillet" "r" "0"))4 W) E1 L, Y5 G$ ]* U5 R
- + k& V% N( I- w: t- b6 j
- (defun c:OO () (command "oops")), T8 @( n$ h G1 o. A n3 w
- (defun c:dln () (command "dimlinear"))8 ~8 g" d, ]" @
- (defun c:dan () (command "dimaligned"))
/ t* U7 ~! T M; y, W# _% F. j - (defun c:ddc () (command "dimcontinue"))4 h( h/ }0 C2 Q. v- G ?
" b: G: i6 |! D' V' ^. T- e7 w- (defun c:sc () (command "scale" "auto"))0 t$ r) [! A/ G( |+ {( |9 f
- (DEFUN C:XO () (COMMAND "snapang"))( I' o" W* K4 z# h
- (defun c:cc (/ a)/ h- l4 S/ f1 q: x# ^3 r9 H
- (setq a (ssget))(command "copy"a"""m"))
6 ~! K. A! z/ f5 Y: ~1 G
: D6 `& j5 g, `3 b- (defun c:PJ (/ a)
& b K! U& b4 {" W6 I7 [ - (setq a (ssget))(command "pedit"a"""j""all""y"))
5 ^1 x. U/ Z7 e- m2 R7 ?3 T7 H6 Z# d - (defun c:JJ (/ a)" @/ ]$ ~+ e: o, a" D
- (setq a (ssget))(command "pedit"a"""j""y"))
7 Q( Z+ \4 v1 B7 ~- G( G - (defun c:TN (/ a)
3 i4 c7 o7 c" e9 s$ ` - (setq a (ssget))(command "change"a"""p""T"))
2 ]9 g4 H9 o# g+ ^% n - / M# ]/ V- J2 V9 `/ j) t# g+ m
- 3 Q2 V3 @* _. K8 o
- ;=======================Tran Ngoc Thang - Tu nam 2000 - Hoc nam cuoi KTS . DHXD=========================
6 u. [8 |1 n$ ^
; _/ G2 P2 h5 g& U- (defun C:IB ()(setvar"cmdecho"1)
u( Q5 m$ ~, i/ B1 d9 d% A1 ^ - (setq pt(cadr(entsel"\nSelect Block:")))( I( k1 V( n+ j2 f _7 |% H& r
- (setq e1(ssget pt)) 2 r% j. g; d7 X- s
- (setq e2 (entget (ssname e1 0)))
% s0 c. y& e [5 K3 N9 g4 `/ k( y - (setq blname (cdr(assoc 2 e2)))
& z3 o) N E- \' b4 [2 A# ? - (setq oer *error* *error* err2)(command ".insert" blname))
9 X+ A) @ ?: q1 U0 V
; l u' }- m% M: @& V' \# l- (defun c:II ()
8 c' Z5 s( d- i - (setvar "cmdecho" 0)) \% n }6 w* {4 C
- (setq olderr *error* *error* myerror)
+ A/ t/ T; x- I: f - (prompt "\nSelect objects: ")- U( q% a, u7 _9 @3 |; T- e; d
- (command "select" "au" pause)% n. Y9 L$ V. o
- (setq sstxt (ssget "p")! D- G; u. T, b4 X9 F" `* I" y
- sslen (sslength sstxt)
" i+ K' x# G# x4 r" _2 M: O g - ctr 0
r x6 E- ` _3 A2 W+ h - )8 R( r' }3 T" N! R
- (command ".undo" "mark")
3 y% d: h- \9 E: o( ?+ p' p - (while (< ctr sslen)/ h. B3 Z; t; _4 j6 N4 u8 y
- (setq listxt (entget (ssname sstxt ctr))3 {' W, `9 L! G3 i
- txttxt (cdr (assoc 1 listxt))
! [' r) V; g4 U7 w/ l1 h) n - enttxt (cdr (assoc 0 listxt))
7 N6 F- W7 h5 }5 s. E% ~, K9 A - ); K& ]: y- a7 y8 F+ U7 U+ ?" O
- (if (= enttxt "TEXT")8 ^6 c- A8 C. C. q" F6 E
- (progn
- B2 A( n/ V& I - (setq testxt (substr txttxt 1 3))
: y' U5 N7 {1 Q4 \, I. s P - (if (or (= testxt "%%C") (= testxt "%%C"))
- _" I0 a; f0 W - (setq newtxt (substr txttxt 4))
( t. \( y: t" r$ C2 E z - (setq newtxt (strcat "%%C" txttxt))( y1 V# `1 N7 l$ p9 ^
- )
& t5 Q9 n3 `% l+ T% d6 F - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
8 q2 g( B% ]8 y: m0 {5 c - (entmod listxt)
) C( t1 @# p4 w - )
! c+ l( q5 _9 I5 P" H - )
- Q2 v f. V+ D5 ^) h; q - (setq ctr (1+ ctr))3 r' \! B+ o# t3 T
- )
b1 v, W% h5 ^7 H2 _8 L - (setq *error* olderr)
# u2 z4 y$ j( k9 `1 u# w - (setvar "cmdecho" 1)/ ]: p8 v& u: y8 k5 a
- (princ)
# ]- {4 a* y5 i* x7 ]6 \ - )
8 F' M/ _6 z* H: u* Z1 I r( |( g - - X6 q/ F% o+ S2 A- n4 B
- (defun c:DG ()& T6 D. z' g" Y
- (setvar "cmdecho" 0)% U9 @0 o3 N0 n3 P8 @* c$ K3 [5 E
- (setq olderr *error* *error* myerror)
. ^* u$ y7 _2 T$ }- m$ k - (prompt "\nSelect objects: ")& R: G1 c4 U; Z
- (command "select" "au" pause)
$ ]. J; c8 z! U4 U0 m( j/ x - (setq sstxt (ssget "p")
' J/ @2 `, x( d5 L" X" E - sslen (sslength sstxt)
, x+ c9 r7 L L1 C& c! J - ctr 04 F# W( p8 z4 @7 e P4 U& \1 A7 J
- )# O' S- ^; Q0 T) G/ x. V! P$ _1 @
- (command ".undo" "mark")
6 V- A/ c& w- N- w3 _ - (while (< ctr sslen)$ S& G9 S8 t) {/ Y6 h
- (setq listxt (entget (ssname sstxt ctr))- G7 v: b+ [; b6 c
- txttxt (cdr (assoc 1 listxt))
( S3 G2 n) q7 l+ e# w - enttxt (cdr (assoc 0 listxt))
! [; _4 z3 P- C% {% T/ o - )
S3 b$ i, Y$ T' M - (if (= enttxt "TEXT")# C9 E, b% M8 ?& d. p* d
- (progn/ E2 q, M8 j; w+ C
- (setq testxt (substr txttxt 1 3))
4 P# @0 I' o) z3 X |( v) \! t$ A' p - (if (or (= testxt "%%d") (= testxt "%%d"))) T! J7 b# v% q% w5 r3 h3 l
- (setq newtxt (substr txttxt 4))
# z9 t l0 D9 y' l& d - (setq newtxt (strcat txttxt "%%dC" ))
5 J2 F- Q+ {$ L0 S9 h$ _# l( L - )$ J! m& n j! p; O$ p
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
1 w7 W5 C# d9 ]' J% [+ _3 v - (entmod listxt)$ T, w, X" Z/ @8 ?
- )0 Q5 A1 p$ } N: _) Z
- )
/ t. a& X9 t. e* w& C% e - (setq ctr (1+ ctr))
4 [/ J% R2 D" D' T2 y - )( B2 t/ j% R) h* \+ r5 X5 O2 y
- (setq *error* olderr)' g6 w0 T2 K5 x: i: T* d, m# K9 o1 o
- (setvar "cmdecho" 1)
: {( r2 y _( G! l8 k+ l - (princ)
- p# z/ p- C, V y2 O2 \7 n - )
8 T* s' Q6 H7 u# v: N! Y
0 a/ J# ^$ c% W/ \' h! f2 L& L: w- (defun c:PI (), W& o2 u8 [7 z+ \/ u
- (setvar "cmdecho" 0)
% T, R; N) X, n3 h& f8 g/ M - (setq olderr *error* *error* myerror)- [& R/ B1 n4 L
- (prompt "\nSelect objects: ")0 q5 f- [: J$ x1 U0 ]& P% a0 {
- (command "select" "au" pause)
; { u: b# ^, a* B! S# S - (setq sstxt (ssget "p")" i/ f$ [; B4 A6 R: Y' G& L
- sslen (sslength sstxt)) D# R* u% q5 L! s' L0 _% | n
- ctr 0
9 T5 t) s( U- M6 n7 | - )
5 E1 R6 w p6 ? @5 V# a3 ?9 I - (command ".undo" "mark")
6 S& L& p: {3 e" P - (while (< ctr sslen)
2 u) n/ f& m6 z8 e - (setq listxt (entget (ssname sstxt ctr))9 H1 [4 m, l" T: x8 t! E0 `
- txttxt (cdr (assoc 1 listxt))
/ z. t& L+ r- w, D: n - enttxt (cdr (assoc 0 listxt))
. e8 i2 c0 g, s3 H2 J% a5 W `1 E - )# C0 K! ~: l1 j* B+ X( D/ K9 [: H
- (if (= enttxt "TEXT")
- S1 p, F' S" H5 e9 N - (progn
% x. L( s6 h, K4 g g% y: u; i! L - (setq testxt (substr txttxt 1 3))$ f1 p j& u" P
- (if (or (= testxt "%%p") (= testxt "%%p"))! t0 O% W/ |/ s6 C
- (setq newtxt (substr txttxt 4))
. p& g& v7 Y! L9 _( l - (setq newtxt (strcat "%%p" txttxt)). G- I' K* f* H# N. c T& V
- )) ]8 I' q' {$ k' X4 B3 o+ J
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))5 ~4 p) w- f/ ?5 g: z) U
- (entmod listxt)! `, R# N( v( C3 a
- )
R7 N% q" z7 d - )
- m* m. k! x6 q3 _9 y- Q' \( F4 `1 S3 a - (setq ctr (1+ ctr))8 S5 G& c; ]! k$ E; _; {
- )2 l, F) \5 X) R) v$ a: Z- s1 i% l
- (setq *error* olderr). c+ F6 P c5 R
- (setvar "cmdecho" 1)- r" {5 y" D# P5 V+ K$ t
- (princ)
* x3 R8 X5 H. |) s8 h0 c$ R! O4 e - )4 r4 t3 _ w+ t
3 j! P( L% @: Y& H% b' F- (Defun c:CB (/ a)3 B% z7 p6 y# M
- (setq olderr *error* *error* myerror)
" O4 n, B+ Z7 w* r - (setq ocmd (getvar "cmdecho"))
3 b! y; q) y5 k8 S - (setq oblp (getvar "blipmode"))) ]/ V2 H# F! A1 ?
- (setvar "cmdecho" 0)/ u1 o; j7 ~; y |
- (setq a (ssget))
& X9 X0 }) e- W - (command "CHPROP" a "" "C" "bylayer" "")
; [9 Z8 {: ~4 H- M c. M - (setvar "cmdecho" ocmd)% m5 u1 A. H1 | ^4 ?' R
- (setvar "blipmode" oblp)3 A1 m, X5 r1 `# @% N
- (setq *error* olderr)3 t; F) y5 e8 t' y [
- (princ)' z: V. l$ g# A$ K2 N* i% h
- )
! R( x( P8 p4 c5 m+ q+ I- H
+ l! m" a# M7 b" v# }- (defun c:LCC (/ co43 obj23 la23)
5 t. ]& ~# m/ e* E Q; _+ c - (setvar "cmdecho" 0)$ o' U, h& |5 I { X$ m
- (setq co43 (getstring "\nNew color : ")). I S1 z3 I& V6 \
- (setq obj23 (car (entsel "\nPick object on desired layer: "))). Y* h6 a0 T$ E- r; \2 h' h3 K
- (if obj23 (progn
( B ~6 H3 H7 c( [/ c, h - (setq obj23 (entget obj23))% ?3 |) Y) j- g) j1 w5 b, e1 q
- (setq la23 (cdr (assoc 8 obj23)))
) ]4 ]3 `5 q: |& G1 T - (command "layer" "c" co43 la23 "")
0 @' ?, p& K: h# O4 R3 J1 e! i - )/ N* U6 R7 H( h; }0 D% ~
- )
/ W: B! L& @7 {2 z& {6 Q$ n - (prompt (strcat "\nLayer has changed..." la23)); B8 ]+ I) M ^6 X/ y
- (setvar "cmdecho" 1)
2 k2 }' `: ]8 b* I2 V6 P - (princ)$ g6 e2 I& S4 b4 `' y: H/ L
- )
R j* X2 n, B, Q - 9 s* a2 M Q; k& ?" h. D
- (Defun c:RP (/ a)* ^0 _5 S# E5 z* H5 m
- (setq olderr *error* *error* myerror)
7 j1 }* A. ]4 X: ` b) T5 Y - (setq ocmd (getvar "cmdecho"))# c2 b/ V5 V. x: ?; r& q
- (setq oblp (getvar "blipmode"))
% u z+ O# G$ Z) e( y* i - (setvar "cmdecho" 0)
1 l& L9 k" Y2 a+ r8 L7 y$ Q3 U; B! w - (prompt (strcat "\nUSE: Delete object(s) belonging to"2 b. v+ J! D3 Q/ [' R8 b1 \# `) q
- " the layer of the entity picked...!"))
/ F( l+ _" w* Z& O/ d - (setq a (entsel "\nPick the entity with the desired layer to delete: "))- o. Q: I' B+ t, `/ t1 b
- (if (/= a nil)1 K3 S% E+ f/ }' |$ u
- (progn (setq a (cdr (assoc 8 (entget (car a )))))/ z. k; o: |4 d8 D9 o
- (command "Erase" (ssget "x" (cons (cons 8 (eval a)) tempword)) ""))% W) r1 i: W6 ]5 r
- (prompt "\nNo entity selected!"))
" }, e3 ]) b- o: J' q - (setvar "cmdecho" ocmd)
* l; k( ?$ m1 y, S3 F7 J* w - (setvar "blipmode" oblp)
9 `* E1 v$ F5 z) a - (setq *error* olderr)+ o( Y# E& I2 M5 Q, t& }. m: F
- (princ); |4 l) \4 [, e9 l
- )
3 F( i- Q% `. ]$ G - ( R" {4 {, z9 y2 I
- (DEFUN C:WL(/ SSET NET SSL M)
/ K4 w& R, Y( y - (PRINC "\nSelect lines :")
! W, [" M: v! R! u! @, M - (SETQ SSET (SSGET)); |- p' p; U; b' I
- (IF (/= NIL SSET) (PROGN
! d, r4 o9 H; l- z: {8 A, y8 ` - (SETQ SSL (SSLENGTH SSET))% ~3 g8 d% C% ?/ c7 h$ g: w
- (INITGET 4)
$ X3 m7 H# b5 Q- C2 I$ |$ |" v. s - (SETQ NET (GETREAL "New width : "))
. I( b0 P# h& G5 l4 n+ \, ^ - (IF (/= NIL NET)
1 P* P" k- k9 A/ I5 s, y. n7 e - (WHILE (> SSL 0)
]* p/ M; |* s6 d - (SETQ M (SSNAME SSET (SETQ SSL (- SSL 1)) ))# P& T, L- }% d0 }
- (IF (= (CDR (ASSOC '0 (ENTGET M))) "LINE")
. z: _( v# T' Y/ c1 H9 O% H9 [ - (COMMAND "PEDIT" M "Y" "W" NET "") 6 n1 n% ^" F6 Y5 t1 k9 i
- ) % D P! H- V3 T# G0 }
- )
5 c$ u* f+ }. P; t3 } - )))- l# ]* N: V/ _) S" ~% ]7 S
- (PRINC)$ O( s" a. Q0 `4 ^ Z( T
- )
O/ {2 y3 }6 n3 v - ) ?6 }1 `/ Y- Z) v
- (defun C:MML ()0 u1 B, p0 t5 h$ d8 A, z/ s8 A
- (princ "\nSelect objects to move to another Layer.")
$ u' u+ x* z& g4 V0 j, ^- J - (setq ss (ssget))& K5 u0 m& p3 g: E8 j0 w
- (SETQ UL1(GETSTRING "\nLayer to move entities to : "))
, ?* T: N5 J' C. I& ]9 m% h - (setq counter 0)
: w: F' g" @6 g* y' n$ b: G - (prompt "Moving to layer.....")(princ ul1)
6 [. u i) U6 ^. H) Q - (setq e (ssname ss counter))* w- C2 \0 Q0 v' P" o% _+ a1 T6 Z3 x
- (setq l (cdr (assoc 8 (entget e))))
( A- C" P4 N/ E - (setq S (ssget "X" (list (cons 8 l)))): R1 J$ v0 G2 R
- (command "CHANGE" ss "" "P" "LA" UL1 "")
k. E: h, [+ X# q! Y9 S4 B - (setq counter (+ counter 1))
K/ `6 m6 ]- [! N. M+ c+ y7 w; X - (princ)
% i( x( f6 W2 S - ) 4 a4 j* D1 s+ v( W8 t
8 v% ~+ I! X8 @- ;;; ================================ GHI CHU ============================
4 ~. u+ `8 r+ H, U: ] - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
6 n, H2 Q% M: Y* |: y8 I# F7 S - ;;; =======================Thuong Dung Font Romant.vnh===================
) ~* ?4 G" @' B) i4 S; N) q. l
5 \$ ?4 C Y$ }- }- (defun c:RS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)8 }! ~9 N7 Q$ P8 |1 H1 W& ^6 @* D7 R7 B
- (setq oer *error* *error* err2)
$ s7 y; p# m3 c, A% O! m1 w - (PROMPT "\n(UNICODE-Verdana)(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. (M)aster Bedroom. ")2 a6 m" N8 L; w' O
- (SETQ Cpt(GETSTRING "\n (ROMANT-vnh)(DD).(SS).(LL).(CC).(OW).(KK).(BB).(MM). (UNKNOWN-font)(oD).(oS).(oL).(oC).(oww).(oK).(oB).(oM)."))
" M% ~. ~8 A4 O( P - (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nha` Bê´p"))9 A2 b% N9 H- t/ A5 j
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Pho`ng Vê? Sinh")) x: Y" s* S3 ~: [1 u
- (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Pho`ng Ho?p"))- H% y5 z4 ` G0 `$ y
- (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Pho`ng La`m Viê?c"))& } _, {$ C" I/ i2 h/ \
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Pho`ng Ngu?"))
( C3 O* t8 h9 d1 o! |0 f - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Pho`ng Bê´p + An"))# m8 p4 W. h9 E2 @" p
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nha` Kho")), D9 v6 n' ?: {# b+ P p! E
- (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Pho`ng Ðê? Ðô`"))6 H$ z5 P' X0 x- x7 S" b% {8 c
- * v ]8 U' `$ `+ F5 a6 B+ X( J" P
- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))' N$ l; ?; G& G6 X2 I
- (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))
7 R% T& c S; _2 |4 @- D& W - (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))7 j7 k" C- K0 A# [5 k# y; L
- (IF(OR(= cpt "OW")(= cpt "ow"))(SETQ CPT ' "Phßng Lµm ViÖc"))
/ t3 {3 j3 `- M - (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))) W( i4 t6 Z8 W7 M9 I& T: T
- (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))
' [" A4 K5 J7 e* ` - (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))
6 z% Z1 Z6 R2 |3 c% Y - (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
~7 I ^% x( _/ w) e2 T8 b( M - ( Q9 s R O& Y, y% F* o
- (IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP")); g. K, n1 e; r% @, S
- (IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM")). C# V2 j9 D' ^% n
- (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP"))
6 h" l+ V. e- C. c- q7 _& g - (IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC"))
' C) f- {. w8 K$ `4 m - (IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R"))
' i, ] F( y6 O5 [& n, L3 u* U - (IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))
4 K) A* N& R1 X1 l0 q - (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO"))7 t9 s7 h8 u1 R+ {$ E9 m
- (IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))+ B0 `, g/ h$ }" d# S1 B
- (setq pta (getpoint2 L% G0 g& r, ~
- "\nPick first corner. : "))
. w' }) x: [2 \4 c0 f; q - (setq ptb (getcorner pta
6 F' U' s3 J( F - "\nPick second corner. : "))/ T" W( S6 ?" e% z# G" i" R
- (setq ptc (list (car ptb)(cadr pta)))
j! f" } G% G - (setq ptd (list (car pta)(cadr ptb)))0 m3 Z, l6 P8 t: R- C
- (setq ang (angle pta ptb))8 i4 L/ S0 q! `# |5 ?& [
- (setq d1 (/(distance pta ptb) 2))- P3 g! s. |+ I3 b' `
- (setq cp (polar pta (- ang (dtr 0)) d1))
5 M0 o1 G* ~5 p! q4 L9 K. @8 U - (setq X (distance pta ptc))
, }) A4 d! e' K - (setq Y (distance pta ptd))( H6 q5 z a t+ W
- (setq X1 (rtos x 2 1))8 R; T7 s/ c4 ]. p3 ^8 C9 Y7 N
- (setq Y1 (rtos y 2 1))% l L! M% r: h( z6 Z% p
- (setq rmsz (strcat "(" X1 " x " Y1 ")"))4 i: t" R8 ~- |/ z" S
- (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))
# _( G- _% i0 @5 M" | - (defun dtr (angg)
& V$ E2 T- O8 I0 R) A - (* pi (/ angg 180.0)))1 _* A1 q5 W) P1 z
- $ u6 p' B b: q3 ]- i0 O% d; D
- (defun c:WS (/ pta ptb rmsz pl1)
5 g- | M) r& B( l - (setq oer *error* *error* err2)) e" l1 f5 ?2 n+ v8 p5 q8 E/ {
- (PROMPT "\n (RomanT.TXT)floorp(L)an.(E)levation.(S)ection.(M)planFoundation.(C)Found.(K).(P).")
8 Q% O3 N! X g- c* r/ ^5 n4 O - (SETQ Cpt(GETSTRING "\n (VnHELVH.Vnh)(LL)floorplan.(EE)elevation.(SS)section.(BM)planFoundation.(CM)foundation.(KC)Structure.(PP)perspective."))4 {, x% f; g; P$ u6 B
- 1 D* h' b& S1 v2 V! p
- (IF(OR(= Cpt "LL")(= cpt "ll"))(SETQ CPT ' "MÆt B»ng TÇng 1 : TØ LÖ - 1:100"))+ h1 W" l& s2 T, e. c0 y1 m
- (IF(OR(= cpt "EE")(= cpt "ee"))(SETQ CPT ' "MÆt §øng Trôc ?-? : TØ LÖ - 1:100"))1 i% I1 V4 o7 i7 B
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "MÆt C¾t A-A : TØ LÖ - 1:100")): c7 i7 y& A ^ w- e% q4 z
- (IF(OR(= cpt "BM")(= cpt "bm"))(SETQ CPT ' "MÆt B»ng Mãng : TØ LÖ - 1 : 100")): k0 q# B1 `. h" J
- (IF(OR(= cpt "CM")(= cpt "cm"))(SETQ CPT ' "MÆt C¾t Mãng : TØ LÖ - 1 : 100"))
# N3 H, V: A4 D9 X - (IF(OR(= cpt "KC")(= cpt "kc"))(SETQ CPT ' "KÕt CÊu Khung Däc Nhµ : TØ LÖ - 1 : 100"))# ^2 A. J8 T7 ~ O- ?. _
- (IF(OR(= cpt "PP")(= cpt "pp"))(SETQ CPT ' "Phèi C¶nh Mét Gãc Nh×n"))
$ T# p. G' Q7 ? v* T - 9 t4 e4 ?" }/ o& ^% {3 m1 s
- (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"))7 I0 t. h9 {* l- Y" I' T
- (IF(OR(= cpt "E")(= cpt "e"))(SETQ CPT '"MA/W/JT /D/}/SNG TRU/JC ?-? : TI/R LE/M/J - 1:100"))
' @) q1 B o! } - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT '"MA/W/JT CA/W/ST A-A TI/R : LE/M/J - 1:100"))1 B; t) y8 `' c- J, l
- (IF(OR(= Cpt "M")(= cpt "m"))(SETQ CPT '"MA/W/JT BA/W/FNG MO/SNG : TI/R LE/M/J - 1:100")); I! ?# k5 V7 R3 n* i, n6 U4 Z
- (IF(OR(= Cpt "C")(= cpt "c"))(SETQ CPT '"MA/W/JT CA/W/ST MO/SNG : TI/R LE/M/J - 1:100"))5 y% E0 l* w+ Y; L$ y) L
- (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"))- [: G+ e- d4 T0 S
- (IF(OR(= cpt "P")(= cpt "p"))(SETQ CPT '"PHO/M/SI CA/R/NH MO/M/JT GO/SC NHI/FN"))
' w. ^2 \5 W: B9 u( [1 ^7 b - (setq pta (getpoint6 ?; y5 t: L; G! ]5 ~! X
- "\nPick first corner. : "))' k+ n2 ?0 {1 i" W( l1 ?
- (setq ptb (getcorner pta
1 w8 i% \( n' } ?0 X0 U; C - "\nPick second corner. : "))! C1 z" A) v- X( V/ G8 q1 p
- (setq ptc (list (car ptb)(cadr pta)))9 l% b0 h+ Q4 q( R% v1 ]5 Y
- (setq ptd (list (car pta)(cadr ptb)))$ ~3 r3 g7 l- d e9 g% b
- (setq ang (angle pta ptb))" `9 H% l6 k, `) m/ q1 @9 E
- (setq d1 (/(distance pta ptb) 2))( X' z, b D: S3 r+ V
- (setq cp (polar pta (- ang (dtr 0)) d1))9 a! Q0 E4 E# m) Z
- (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))
3 Z3 |0 R+ Z5 q/ Y - (defun dtr (angg)
+ X( Z6 Q3 B4 Z; ]- b - (* pi (/ angg 180.0)))2 H) D4 x5 ]5 o
- 3 v+ t9 i3 H. p9 P4 \4 @, w
- ;;; ================================ GHI CHU ============================/ u& M1 e0 N/ K6 D, e( G
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
$ n* ]+ v7 J3 \ - ;;; =======================Thuong Dung Font Romant.vnh===================( J1 a7 J3 R+ h# Q5 i, l' O$ G
- : c2 e: }, s' c( a6 X' I# B
- (defun c:RRS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)& j7 f$ u( q5 y; Z; f. t0 D
- (setq oer *error* *error* err2)
0 [4 c, e0 I* e3 Q( E - (PROMPT "\n(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. ")
) V# H# m- C9 `9 o - (SETQ Cpt(GETSTRING "\n(M)aster Bedroom. (DD). (SS). (LL). (CC). (OO). (KK). (BB). (MM). "))
' j0 g- Q, ^8 I1 X2 x - (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhà B?p"))3 h$ _& ^+ b9 O8 m
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phòng T?m"))
1 x# I& M/ a' \- n8 q4 W- a- H - (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Nhà H?p")), \0 k- J" h$ }( x3 z" G
- (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phòng Làm Vi?c"))
8 A( a0 R# Y3 i0 @9 H3 d - (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phòng Ng?"))# v2 }- Z# F3 @' j
- (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phòng B?p-An"))
" z6 {- `( O8 o1 V0 c9 j) W - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhà Kho"))
4 N8 U* T6 P- [4 S - (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phòng d? Ð?"))( [/ ~( ]1 a* u. L
- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp")); _3 u7 m. u1 p7 D h# S
- (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))9 B0 k- n6 l5 Z& `
- (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))
( U R) N( E" _3 X E - (IF(OR(= cpt "OO")(= cpt "oo"))(SETQ CPT ' "Phßng Lµm ViÖc")), M) A/ d5 c" w4 ]" u& `
- (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))( K7 \' h7 m* a0 Y! w- M
- (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))
( ^/ P6 p, F' `& f - (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))& \' W0 N: v+ S" W* q, {, T
- (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å")) 5 W9 F* F! T- W% p, S: a* t3 E
- (setq pta (getpoint2 A' Q" k: k3 e5 ?3 ~
- "\nPick first corner. : "))
/ O: k+ i4 Z! m) G9 { - (setq ptb (getcorner pta
) ]# z* s; o9 f - "\nPick second corner. : "))! f& U* B' @5 a3 m
- (setq ptc (list (car ptb)(cadr pta)))
z6 [5 f# d5 q3 N& G - (setq ptd (list (car pta)(cadr ptb)))
3 _5 o/ w2 s& \; C - (setq ang (angle pta ptb))# \# ^1 S% s! L0 |8 Y, J
- (setq d1 (/(distance pta ptb) 2))8 _" A3 [* Z, `% f% d. K' q
- (setq cp (polar pta (- ang (dtr 0)) d1))
8 x8 w/ i! v2 I+ {) Z9 u* Y9 J( M - (setq X (distance pta ptc))
; E, z1 W/ }) D- j5 z9 Q9 L. { P - (setq Y (distance pta ptd))
! r5 W' y$ f. Q/ T2 I' w; S - (setq X1 (rtos x 2 1))
( l0 k4 ?8 _- l; g2 m; L9 f3 U, U - (setq Y1 (rtos y 2 1)). j0 [6 o6 C- W0 j3 M& P+ o; \
- (setq rmsz (strcat "(" X1 " x " Y1 ")"))( K% q* |+ O7 C' F$ F3 J
- (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
- j/ t5 V- d' E0 [ - (defun dtr (angg)
( r+ q9 {& y6 p2 o( s - (* pi (/ angg 180.0)))# h3 [' ^! E0 F) H
- 3 }0 y! E& P: y3 }9 @2 `. k. Z% @
- ;;; ================================ GHI CHU ============================
: {2 \( l3 [4 W( p* D* K$ C, A - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========" ?, t' W6 G: I& e3 w' b
- ;;; =======================Thuong Dung Font Romant.vnh===================
# m( f4 Y' j8 Z, p4 f0 i
$ m# Q6 P2 ~4 X. ^3 y- (defun c:GS (/ a b c d)+ d8 M) b. _4 t+ y a. N7 e
- (graphscr)* k. z2 A: B r7 \/ n
- (prompt "\nSelect text to set style....")
3 e( U2 R$ b+ E0 x - (setq a (entsel))% J" d5 g O3 i8 |
- (setq b (entget (car a)))) ~/ y: Q6 a3 ?# |
- (setq c (cdr (assoc 7 b)))
0 D* h; P" ^. D7 c2 O+ a! y - (setq d (cdr (assoc 40 b)))
3 m5 [/ e3 F8 E9 f - (command "style" c "" d "" "" "" "")), r; ~: c/ T6 H
- (princ "\nType GS to set text style.")
+ E2 N# I/ W' c! ^% Y
S8 T; p7 w! g& n4 x3 k5 J- (defun c:RC (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w)
- |+ X% `. S+ U7 i7 P+ W& N - (setq olderr *error* *error* myerror)
4 d, n; ]$ @; p" e, G2 Q" Q - (setq ocmd (getvar "cmdecho"))
+ i" U: c0 t6 a - (setq oblp (getvar "blipmode"))
. v, E6 z+ ?( I# e- t; i/ p" d( n - (setvar "cmdecho" 0), y+ l7 C% [. Z8 u/ V" Q- ?
- (initget 1) ;3D point can't be null; e6 D# X4 }; w/ Q+ O: J
- (Setq pt1 (getpoint (strcat "\nCorner of rectangle or square: "))). Z1 ]- F* G& K! s# p# f& X/ T! p
- (setvar "ORTHOMODE" 1)3 \1 w2 h! d2 h/ Z3 X
- (initget 7) ;Length can't be 0, neg, or null
. @4 \. f: D4 ] - (Setq l (getdist pt1 "\nLength: ")) s1 i& V( u0 N1 \: J1 z
- (Setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1))); r5 ^9 `& N8 A, O
- (grdraw pt1 pt2 2)
# m' P. z3 L( M V0 E: m9 ^) m - (initget 7 "Square") ;Width can't be 0, neg, or null0 y, G1 `- r' Y& u
- (setq w (getdist pt1 "\nSquare/<Width>: "))
* }& g& O. g$ W1 ]* j; t& d) `5 e8 l - (if (= w "Square") / S+ Y. |8 x" t9 q
- (setq w l)# e0 b! {* U* Z' N+ m
- )! I. `/ ?9 y( N, |0 Q% V$ `2 J
- (setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2)))
2 C3 C1 H+ L6 }0 x2 ?) m - (setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1)))- D; [ T4 p, R- {6 a( i* f& N$ v
- (grdraw pt2 pt3 2)7 y6 a; o' r! J6 N! d6 \
- (grdraw pt3 pt4 2)
6 W- ?! L! w, {) f3 t! Q0 a - (grdraw pt4 pt1 2)- N3 p# M! j* _0 {- Q' o
- (setvar "ORTHOMODE" 0)
: {; q% f t8 C0 T& _& d: d9 q - (command "pline" pt1 pt2 pt3 pt4 "close")
/ R( e- a2 k) G' ] - (setvar "cmdecho" ocmd)
6 g4 A! _( [$ w9 `" c - (setvar "blipmode" oblp)8 \3 P( e) z, l2 {3 N
- (setq *error* olderr) ; Restore old *error* handler
2 A- _! v7 N* I& j" V - (princ)0 `- B# i C4 k9 H+ g) O8 y
- )
; [% T: @2 X8 P. T& V - 7 ~( s3 d2 k; f
- (defun c:SG (/ ent pt1 pt2 ang)7 a( I$ e! H; l$ q7 [! d" i
- (setq cmd (getvar "cmdecho"))
- i$ x& Y, R [2 E B7 @6 g& `* j% \ - (setvar "cmdecho" 1)
9 e( Y; s/ {3 z( ` - (prompt (strcat"\nSnap angle will be set to angle of line")) S* H# ^, [; j$ V. D2 k
- (setq ent (entget (car (entsel))))
# ~0 e) B" @2 E8 e. D/ Q, q - (setq pt1 (cdr (assoc 10 ent))); r0 L! l8 Z e3 Q, [- K( W
- (setq pt2 (cdr (assoc 11 ent))): N, `& N Z8 F) X
- (setq ang (angle pt1 pt2))
# y. k- x3 x1 i" ? - (setq ang (/ (* ang 180.0) pi))1 ` B' W4 x3 C0 M- d
- (setvar "cmdecho" 0)9 ~9 X) E( q H$ P+ [+ L# p) {
- (command "setvar" "snapang" ang)8 n: o0 J p3 w, o
- (setvar "cmdecho" cmd)1 l, M* ^+ d1 L* @; C9 T
- )2 y3 K) T4 a0 x/ O
5 y! S7 Q0 {" @& I& C& h% ?- (defun C:TG ()/ ?9 c6 c" X' t1 s
- (initget "Increase New")3 S3 o# ^0 p$ L
- (setq ans (getkword "Increase/<New>: "))
& o6 E; W5 E- ?9 @ - (modang)
$ o& N6 Z7 F9 {; ~9 E( v2 P8 e9 t - )9 i. b' {( |3 k( a# ?/ f
- (defun modang (/ ang ss ca e na ssl)
+ Y6 U- l2 n' e4 w - (if (= ans "Increase")
3 L( k( k B+ h- s1 Z - (princ "\nIncrease angle for text by: "); |& q- d1 T& i& S c
- (princ "\nNew angle for text: ")
# [ V8 Y' A. k# s# L# C! P - ), \2 V. x1 z0 ?8 [
- (setq ang (getreal))3 s' K( u) o9 C2 d4 R6 f
- (setq ang (* (/ ang 180) pi))
" k8 M3 q( \, o' G - (setq ss (ssget))
& X% W- ?* ]2 B1 Q$ A- @ - (setq ca 0 ssl (sslength ss))
' v6 f% D6 f- [! k3 O; f - (while (< ca ssl)
/ c. n; R8 k ? p+ B: E4 x - (if (= "TEXT" (cdr (assoc 0 (setq e (entget (ssname ss ca))))))1 ^* l D& F; R6 t: W) U
- (progn. Q, H; c/ |$ m" W' l
- (if (= ans "Increase")# D! T1 w4 ^3 V4 Y" q
- (setq na (cons 50 (+ (cdr (assoc 50 e)) ang)))
0 s* ^: a. G* I! \# ]: P z - (setq na (cons 50 ang)). ?2 Q- z1 \! d6 x) c5 Y
- )
) W- v: {+ X7 @" B1 U! h$ Y7 @ - (setq e (subst na (assoc 50 e) e)), V) d- ?7 d2 X
- (entmod e)$ M+ A: |) g& G) G: W
- (setq ca (1+ ca))5 t5 u; m5 {0 l9 {0 J5 Y5 \) k# E
- )3 T/ T; v, m0 `6 d. R: K4 o
- ); g$ n0 W% V5 n- H: U* y
- )
% r2 o i1 B. E+ { - (terpri)
1 f# G1 v h3 E. E8 Q - )
: w/ q$ }1 z$ y; [1 E q g) K
+ R4 I! ]7 ?7 }- v4 f! }! T- % o* M8 J+ ^. B# k4 B
- (defun c:WL (): W5 y8 _6 }& d. u
- (setvar "cmdecho" 0)" F8 d& U8 c6 a+ A* G$ s9 t- }
- (setq a 1)
9 t! \6 m/ B7 w4 `/ j$ D8 p - (prompt "\nSelect Polylines to change: ")
( K+ }4 v, [& |1 e - (while (/= a nil)& r( [8 b6 ^" a! A
- (progn
* K, f3 Q2 F7 ?8 l$ x - (setq a (entsel))! |6 c# D3 a$ D+ @7 ]" x3 N
- (if (/= a nil)# L% p& k- g7 R O
- (progn
1 D5 ]) p( D7 q- t) o - (setq b (entget (car a)))
- E S8 }2 @: K0 x( {% [& Q; | - (setq c (cdr (assoc 40 b))). o% S ?& W$ I& \* ~8 V* K }1 [1 a
- (princ c)5 x1 R7 G; c6 R4 M9 c; y8 n* x+ n
- (command "pedit"a"w""lw""")
2 w% }. F+ a8 R+ L- E0 V7 L - ))))
0 u8 m6 ]1 }% ?0 Z - (princ)
) l. ^! O) _2 S, ^% i+ F - )$ a- e! v- \3 n; k
- 1 u* q2 q/ }% a" ]
- ;;; ================================ TEXT FIT ============================
% t: B: V5 o% |! }" J
2 r8 w: `4 c- j$ Z- n6 h- (Defun c:FT ( )! N4 i) i( ^1 S s1 Q
- (defun setsnapang (arg /) (setvar "snapang" (angtof (angtos (cdr (assoc 50 arg)) 0 8) 0 )) )
# ~+ U* f0 e/ V) { - (Defun LL-xyz (arg) (CAR (TextBox arg)) )
' T+ H3 w: m7 {8 l - (Defun UR-x (arg) (CAADR (TextBox arg)) )
& {" @5 l7 K7 J! v, o - (Defun LL-y (arg) (CADAR (TextBox arg)) )
# `9 `) ]2 i @5 U - (Defun LR-xy (arg) (List (UR-x arg) (LL-y arg)) )# E, M+ g8 Y v0 c0 o& G) }
- (Setq ename (CAR (EntSel "\nSelect Text to stretch/shrink:" ) )
" d0 Z$ L: `: X$ Z - Textent (If ename (EntGet ename)) ) 4 u* R3 s; @0 O6 l$ {" Y
- (If (= (CDR (Assoc 0 textent)) "TEXT")
3 B: X( T' M9 {( n/ M5 U - (Progn (initget 0 "Start")5 q6 |# x) v' _7 N2 _) x
- (Setq NewEnd (Distance (LR-xy Textent) (LL-xyz Textent) ) )
) S# V' V* `* K; w% G - (setsnapang Textent) ;set snap along text entity% o' c+ e$ V, Q2 |8 G
- (setvar "ORTHOMODE" 1) ;drag along the text
! N5 E) Z" r1 f8 {( S - (setq
+ \9 g: e* H0 K- Y! M* w6 B - TMP (getpoint (cdr (assoc 10 Textent)) "\nStarting Point/<Pick new ending point>: ") ): \* \% w m& W
- (setvar "snapang" 0)
; O* Y" [3 {& r) e1 r - (cond
, I/ ]; k- C7 }$ X1 r - ((= (type TMP) 'STR) ;;new starting point to be selected
9 O& X, |; ]% k - (setq Start (getpoint "\nPick new starting point: "))$ z8 T! N5 s6 d: C8 n
- (if Start (progn, L+ [5 b1 X: A9 a
- (command "_UCS" "_E" (cdr (assoc -1 textent)))7 \% g$ O* |2 |. C6 S
- (setvar "ORTHOMODE" 1)8 K4 r$ I0 _5 f+ f$ n
- (setq NewPt
J' S9 {) T0 B" D, [ - (if Start8 j, J1 n) x9 Y# J
- (getpoint (trans Start 0 1) " ending point: ") nil ) )( y/ ? h7 o% o4 A' ? c8 A
- (if NewPt (setq NewPt (trans NewPt 1 0)))1 {; |( U$ y3 B: W
- (setvar "ORTHOMODE" 0)% \' O. p0 j4 R" w3 o
- (command "_UCS" "_W") ) ) )/ w% n( f+ O1 y1 I/ T/ H* V/ i
- ((not (null TMP)) ;;new ending point selected& ?! b/ A! w. w$ I; D$ }, p
- (setq Start (cdr (assoc 10 Textent)) NewPt TMP) )% A- k! v& Z% V0 t
- (t (setq Start nil NewPt nil) ) )
/ E e U/ ]$ o1 d& P/ d - (if (and Start NewPt) (progn
$ j O. P6 \5 q5 h4 `% s' I1 @1 y - (setq Val (Assoc 41 Textent) ;;current width factor
0 {* I- {( h8 M5 z p, g8 h - Val (if Val (cdr Val) 1.0) LTC_% 8 b, p4 c' ? d. \* A. b+ i
- (* (/ (Distance Start NewPt) NewEnd ) Val )) p @! {# [8 E! Y
- textent (Subst (cons 41 LTC_%)/ @! k0 _4 a+ \2 j6 K& E. h) v
- (assoc 41 textent) textent)" A( a6 O. u. G k
- textent (subst (cons 10 Start) (assoc 10 textent) textent) |5 w% X6 l" s6 S
- textent (subst (cons 11 NewPt) (assoc 11 textent) textent) )
( X; |& T4 q4 `. Y! O: c - (EntMod textent) (EntUpd (cdr (assoc -1 textent))))))) (Princ))6 |0 t v$ }* b7 M& U8 m
2 ]. t% g( B/ L& d% F/ V- ;=====================================================================
1 `- H- i0 ?$ x: Z0 h - ;=========================COPY + ROTATE ==============================
0 g) q, } Y( r% J; L' B - ;=====================================================================
# F* r/ b; l+ U' R8 f3 i) j) y1 p
5 E2 v4 k, L+ _5 p/ c6 v- (defun c:CR(/ olderr cm loop ss1 ss2 bp mult lent ss2 lp1 lp2)% y; M: [/ u3 u( f, e( M
- (setq olderr *error*; n/ q: P2 B7 p. e4 [) D' ]
- *error* croerr)( ?; Y. X! T) h/ [6 [. e- Y
- (setq cm (getvar "cmdecho"))
3 ~" ]# _" o: z) | - (setvar "cmdecho" 0)
9 c; A* |6 `# K1 l# C3 h - (setq loop t)8 s+ w$ f3 s& O7 g
- (while (not (setq ss1 (ssget))))
, t' \, F' |. o+ R - (initget 1 "Multiple")
4 ~ |+ T& u* F4 P3 @ - (setq bp (getpoint "\nBase point or displacement>/Multiple: "))
$ L% H" i0 G8 [& V s# [ - (if (= bp "Multiple")
" c% Y+ b" e/ K9 ~% _; [) Z6 l - (progn: f( i1 T- ]2 `2 U; }
- (setq bp (getpoint "\nBase point: "))+ j- C. B; f, Z- q+ }' t# i
- (setq mult t)
- U$ M: ?' ], }+ S8 W) l - )
8 u3 I2 P* E! V7 Z - )
5 l1 |$ v* `# m% t6 @, X - (while loop
6 v% B3 d: a/ o1 G0 `0 x! R! P - (setq loop mult)
+ a- M% t0 l3 ~. k. r3 q( ] - (setq lent (lastent)) t& h3 R3 D( [' X7 H% \
- (command ".copy" ss1 "" bp bp)
1 i0 \# h! d) j4 S2 L - (setq ss2 (lss lent))
* Y! e. `# }3 D9 s! | - (setq lp1 (getvar "lastpoint"))
1 L; n" o9 Y6 p2 a# r5 G" C/ @ - (prompt "\nSecond point of displacement: ")
. P& s' Q$ d5 j8 G* Y - (command ".move" ss2 "" bp pause)
) j* p) T B- q. J5 F+ m/ ~ - (setq lp2 (getvar "lastpoint"))/ l. X/ c' u% m* I8 C/ m; {: \! \
- (redss ss1): c5 |* N3 F# S! A% I I# N
- (if (and (not mult)1 s+ B% @+ V0 V" F' i$ o$ Y
- (= (distance lp1 lp2) 0)5 e/ ?$ e5 j! U0 r. b6 [! S. |
- )
+ f) R: X3 \: N) w - (setq lp2 (getpoint "\nRotation Point: ")) u5 B: }0 }# v& }1 ]( Q1 T( d
- )
9 J0 N4 C+ z- r6 z6 [5 u: x- M) j6 }5 J - (if mult
2 g7 A3 K' b3 C - (prompt "\nRotation angle ")4 n X7 E# w0 T2 g
- (prompt "\nReference/<Rotation angle>: ")* e1 P) L+ o9 Y+ m, m' J5 ?: o! [
- )7 q8 d2 p! e9 U: l2 y5 {
- (command ".rotate" ss2 "" lp2 pause)# T0 ]6 i9 ~6 c6 s: D3 C, U
- )
4 ?2 a! J% Y {% ]7 X. T$ O" {. w - (setvar "CMDECHO" cm)
7 c& G+ c; @; i. T# {# ? - (setq *error* olderr); G5 @- J# ^0 Q3 @- I
- (princ)
) Z- J5 O U6 d: T - )
0 R' I6 Y& ]& ^1 i# t8 b% F - (princ)
& D" M0 Z. k8 D# W$ Z# v$ z5 r - (defun croerr (s)
( U& l/ N3 z& s8 Q2 q1 i - (if (/= s "Function cancelled") ; f: |5 I0 c8 H& Y5 p5 x
- (princ (strcat "\nError: " s))
) R: L) E/ k% y. [) d' {0 k - ) % t$ r+ L C. Q8 d& T3 B
- (setq S nil)% ]" { \) z( z2 Z: V
- (setvar "CMDECHO" cm)
5 H5 ], Q9 Y6 o9 s2 h$ _ - (setq *error* olderr)
+ S* a# V% @: J% N - (princ)- W x) u, j e9 G
- )6 E& S0 v( G$ H0 |; C! X
- (defun lastent (/ a b)
* L& S- n# q. z. M: l4 [ - (if (setq a (entlast))
# G0 }& S# L3 n) w. l5 Y - (while (setq b (entnext a))
: a) V6 E$ r. t' }3 _* V; U3 } - (setq a b)
: s, q _# {, T3 j - )6 X) l) d' \0 j8 I& U8 z
- )- l! A. q: S+ M8 I* z" i
- a
! o6 _; c+ t7 a! x6 e1 P4 q - ) {9 W u9 l6 X1 I1 }; Y
- (defun redss (ss / en i)
! i3 @3 Z! G$ m8 ?9 b0 b" X4 M9 r - (setq i 0)
8 b8 w* E+ c, [; f+ W0 ? - (while (setq en (ssname ss i))5 z7 G- A; B7 ~& S
- (redraw en 1)( p6 k+ o' s$ }7 u1 l+ O# p
- (setq i (1+ i))) N8 l+ S* C0 O1 a/ W; k
- )
& Y5 J1 X0 j/ L; U# c - ): T4 I; Y {) {' P1 f
- (defun lss (en / sels ed)
9 F+ [3 v2 E9 O9 {; j$ K- o - (setq sels (ssadd))
( b- o1 C- I, |+ D3 U- U3 A& G - (while (/= en nil)' F/ i/ v* ?& o( v4 }! |
- (if (setq en (entnext en)) (setq ed (entget en)))
% h8 }/ E) s8 v+ k - (if (/= en nil) (setq sels (ssadd en sels)))* R4 v8 w6 i$ w6 e. B) V# d- O
- (if (or (= (cdr (assoc 0 ed)) "Polyline")
7 j3 N% `' ?3 R# M3 t F - (= (cdr (assoc 0 ed)) "Insert")
, I9 Y+ F. S. _3 o+ X4 H* e, Q - )1 B0 M0 B) U$ [0 u9 D
- (while (/= (cdr (assoc 0 (entget (setq en (entnext en))))) "Seqend"))
0 H( A/ m) G" D! { - ) e2 `7 T% w$ G' h3 M
- )
) Z) {) D9 N7 C0 R- f) Y& }& _, @ - sels
( ]8 {; Y1 V/ G, K* @ - )
, @, M) r" M: B" g6 G - 8 i, @5 w; @) o" o8 s& p
- ;;;; ================== CAC FUNCTIONS DUNG TRONG ACAD.LSP ==================" Q+ _6 d0 n" R6 Z
- 4 O: h. Y& k c
- (defun c:00 ()(princ "\nChon doi tuong net Defpoints")(ssget)(command "change" "p" "" "p" "la" "Defpoints" ""))- Z: o) C: d$ d' [* }
- (defun c:0 ()(princ "\nChon doi tuong net 0")(ssget)(command "change" "p" "" "p" "la" "0" ""))! Z$ }5 ]# l2 f, G
- (defun c:1 ()(princ "\nChon doi tuong net COT")(ssget)(command "change" "p" "" "p" "la" "COT" ""))3 d, a _* H$ X z
- (defun c:11 ()(princ "\nChon doi tuong net DIM")(ssget)(command "change" "p" "" "p" "la" "DIM" ""))2 ^0 z* X- r: |/ [4 F6 s3 P% _1 p
- (defun c:22 ()(princ "\nChon doi tuong net MANH")(ssget)(command "change" "p" "" "p" "la" "MANH" ""))* X7 l8 @: n: y; ?1 n" o
- (defun c:33 ()(princ "\nChon doi tuong net NETMANH")(ssget)(command "change" "p" "" "p" "la" "NETMANH" ""))
/ ?5 @: I9 {! n* R; T - (defun c:2 ()(princ "\nChon doi tuong net NETDUT")(ssget)(command "change" "p" "" "p" "la" "NETDUT" ""))0 H2 r) l/ |% D
- (defun c:3 ()(princ "\nChon doi tuong net NOITHAT")(ssget)(command "change" "p" "" "p" "la" "NOITHAT" ""))' G3 X, R2 o) N
- (defun c:4 ()(princ "\nChon doi tuong net TUONG")(ssget)(command "change" "p" "" "p" "la" "TUONG" ""))
2 e' R% m. `) U/ l/ S- z/ \ - (defun c:44 ()(princ "\nChon doi tuong net KHUNGTEN")(ssget)(command "change" "p" "" "p" "la" "KHUNGTEN" ""))
% c; w6 m/ Y6 v - (defun c:5 ()(princ "\nChon doi tuong net TIMTUONG")(ssget)(command "change" "p" "" "p" "la" "TIMTUONG" ""))2 q: B" d( x6 y7 Q: ^; Y% J
- (defun c:6 ()(princ "\nChon doi tuong net CUA")(ssget)(command "change" "p" "" "p" "la" "CUA" ""))
8 p" m ?+ {+ e4 E - (defun c:7 ()(princ "\nChon doi tuong net THAY")(ssget)(command "change" "p" "" "p" "la" "THAY" ""))1 P8 c( J3 B. D( N, y% C
- (defun c:77 ()(princ "\nChon doi tuong net NETTHAY")(ssget)(command "change" "p" "" "p" "la" "NETTHAY" ""))# n3 U% @7 v( X
- (defun c:8 ()(princ "\nChon doi tuong net HATCH")(ssget)(command "change" "p" "" "p" "la" "HATCH" ""))/ f; y* e0 X( y
- (defun c:9 ()(princ "\nChon doi tuong net TEXT")(ssget)(command "change" "p" "" "p" "la" "TEXT" ""))
4 D# R5 u! T0 r, X: D" C. i - (defun c:99 ()(princ "\nChon doi tuong net CUAMATDUNG")(ssget)(command "change" "p" "" "p" "la" "CUAMATDUNG" "p" "C" "bylayer" ""))
# h7 b/ J, R) E; f4 S - (defun c:td ()(princ "\nChon doi tuong net THEPDOC")(ssget)(command "change" "p" "" "p" "la" "THEPDOC" ""))- q# c' g f2 i& ]$ W: I# X0 F! u
- (defun c:ddt ()(princ "\nChon doi tuong net THEPDAI")(ssget)(command "change" "p" "" "p" "la" "THEPDAI" ""))/ v6 p& W" q2 O. ~( o4 C
- / e3 V8 b: n: ~3 D& W4 m' d
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============9 Z8 \# x( X. X
8 M6 g0 u9 B0 T W2 n1 i' t- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============; M+ i+ W' s( Y% ^- @
3 I. _' o! z! h: ~/ g% u- (alert "Using the NetXuatAnh-[ 5940.00 x 4200.00 <pixels> ] command!")1 W8 g0 _* c8 P, U
- (princ "\nEnter (DEFUN C:netxuatanh () to get to real LAYER command.\n") (command "NETXUATANH")) M! Y0 U/ T( W4 @. G' e# t0 K
$ ^. C$ E6 w3 _- ;=============== DAT LAYER NET de xuat anh JPG [W x H] [5940.00 x 4200.00] ===DRAW===% Z- L5 K' V5 T5 }* k
- ; s# b0 e/ V: e# P: Z0 ^8 b: K
- ;(DEFUN C:netxuatanh ()
( N# R2 [/ G% W2 f5 |4 i+ v - (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.6" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""# M y1 L. ]. p. N
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1.58" ""
- V8 G+ \: \7 N - "M" "MANH" "C" "9" "" "Lw" "0.5" ""0 }. L2 W3 Y8 e6 q: B) I
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""8 A: b/ ]+ g! m2 O6 v
- "M" "DIM" "C" "1" "" "Lw" "0.6" ""+ t- d" @' y, B
- "M" "THAY" "C" "7" "" "Lw" "0.7" ""- B+ N0 w! Q0 P+ a. i# h% p5 m7 j6 \
- "M" "NOITHAT" "C" "3" "" "Lw" "0.5" ""
5 m& L* P- m! Y- t6 \2 h - "M" "HATCH" "C" "5" "" "Lw" "0.35" ""1 Q1 E4 d; Q' z& ?" O
- "M" "COT" "C" "2" "" "Lw" "2" ""! M3 ]* M6 m# L% p+ d
- "M" "Defpoints" "C" "7" "". @* a( e: S4 T
- "M" "0" "C" "3" "" "Lw" "0.5" ""
0 v5 @7 |% V" C& i4 S' Z( @0 o - ; "M" "1" "C" "1" "" "Lw" "0.5" ""
! p, H& C' b N6 W - ; "M" "2" "C" "31" "" "Lw" "0.5" ""
v8 p: s# W" m2 \- z6 Y, y3 N4 n - ; "M" "3" "C" "8" "" "Lw" "0.35" ""9 ]) {2 d' N* P# R- i* T
- ; "M" "4" "C" "4" "" "Lw" "0.8" ""
4 h3 Q2 I* ~7 ` - ; "M" "6" "C" "6" "" "Lw" "0.35" ""% E' G& M% \! }7 T
- ; "M" "7" "C" "7" "" "Lw" "0.4" ""7 Z$ W9 I; ?2 M+ o( j0 F9 E% N
- ; "M" "8" "C" "8" "" "Lw" "0.35" ""
% v7 s3 f/ F; l0 [" Q. k - "M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" ""
* } s6 y# H& M5 Q/ q& y% s) i - "M" "DUONGBAO" "C" "7" "" "Lw" "1" ""
6 S# I/ n- x% E6 \- H3 S) J# @ - "M" "KE" "C" "8" "" "Lw" "0.3" ""
6 V I" [9 e4 r% v; `" X& f0 P8 S0 n - "M" "KT" "C" "9" "" "Lw" "0.35" ""
* P% i. o8 W/ w b0 T/ _: m - "M" "NETTHAY" "C" "255" "" "Lw" "0.7" "" W& S$ E! C* G! k& \" h
- "M" "NETMANH" "C" "43" "" "Lw" "0.5" "", c; [: t$ V1 J6 K
- "M" "TBD" "C" "2" "" "Lw" "0.8" ""
/ I! \1 U+ N5 V; `3 q - "M" "TEXTTXT" "C" "7" "" "Lw" "0.4" "": E' |" u' L s7 G$ i8 m& N
- "M" "TEXTVN" "C" "132" "" "Lw" "0.4" ""7 _1 Z" C: b, D" W ~$ Z
- "M" "THEPDAI" "C" "3" "" "Lw" "0.7" ""4 K6 s9 o- U8 ^' ~. A& v# a
- "M" "THEPDOC" "C" "2" "" "Lw" "1.58" "" a2 k t+ Y# Y
- "M" "CUA" "C" "6" "" "Lw" "0.5" ""( U* S9 s* J, z' L2 Z5 \
- "M" "CUAMATDUNG" "C" "6" "" "Lw" "0.5" ""1 V+ @6 ?! Q# ~
+ k% S0 z* S$ X# \2 S0 l- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] ===NUOC===
% I i& | `, R2 q6 D9 a) W: K: r0 Z
' @6 m m4 x% j2 S t# P- "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" """ j: U) E& r' L; p
- "M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" ""' P4 ]# L- J: \4 n; D! H4 U2 j
- "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" ""& N: d# d: r& d# Z. M1 h
- ; "M" "250" "C" "250" "" "Lw" "0.35" ""
; T7 F2 [. ?4 X0 e- Z - "M" "KHUNGTEN" "C" "4" "" "Lw" "1" ""
$ L* }7 c# }0 B! B$ U, p$ S8 y% s - "M" "TIMTUONG" "C" "5" "" "Lw" "0.5" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" "" )% ?2 x( L. R2 a( W( M
& ~' t7 l1 A+ f# F* Z+ X- ;=============== DAT LAYER TEXT de xuat anh JPG [DIM] [TEXT] [GHI CHU]======
7 k4 B$ a! j! T: ~% H, ] - ;===================================30|04|2024==============================
- O/ C4 B- ~4 o3 ]( W9 h$ [ - / d- r, t Y/ m- n8 T7 z& C" J
- (Command "-style" "Vni-VietNam" "vn_vni,vns.shx" "0" "1" "0" "n" "n" "n" )
( Z) p+ w, W% F, Z, i$ h - (Command "-style" "Vni-ROMANS-TEXT" "vni-romans,vns.shx" "200" "1" "0" "n" "n" "n" )
, w# j6 e( F3 q7 n9 f" W; M# h - (Command "-style" "COTES" "verdana" "" "1" "0" "n" "n" )* u: k) ]: E8 E9 J* x0 M( {
- (Command "-style" "TRUC" "impact" "0" "1" "0" "n" "n" "n" )
. z- M3 V9 }! J3 w/ z+ J! l - (Command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500" "1""0" "n" "n" "n" )$ n6 ]4 }% h9 Z* K- q# E5 L
- (Command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1" "0" "n" "n" "n" )
: I2 b: e+ T* q( K - (Command "-style" "STANDARD" "Verdana" "200" "1" "0" "n" "n" "n" ): w8 m1 R$ V$ j
- (Command "-style" "VERDANA" "verdana" "200" "1" "0" "n" "n" )+ k0 c4 k# `2 g& ]2 [4 c' ]
- (Command "-style" "ROMANT-DIM" "romant,vnh.shx" "0" "1" "0" "n" "n" "n" )
3 w! z' p9 ]$ q& _! a' n - (Command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200" "1" "0" "n" "n" "n" )(princ)* H: q& [& r0 a# Y9 V! Q# H: w
- * k' W+ L1 [! C6 @2 R- e8 j1 l, }5 U
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
/ Q2 a+ K: n7 A. K; }- F# d - ;===================================17|10|2024===================================& b! e5 C3 F; M' X& e9 i
- 0 H7 D; z2 c/ @5 z @0 W
- (Command "DIMTXSTY" "ROMANT-DIM" )" c! d" U; r8 x! ~. h+ t. b
- (Command "DIMBLK" "" "Closed" )) y! t2 N5 }6 \! s: S# m% O
- 2 u; M# d& P! I" i
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
8 g a6 Q. ]8 o7 H" r - ;===================================17|10|2024===================================' d! o; y6 w1 @9 Z' r* E
- 7 X" [' d2 Y* K2 I# }
- ;(Command "-units" "2" "8" "1" "8" "" "N")
' Z5 w( e6 F3 j - (Command "-plot" "Y" "" "publishtoweb jpg.pc3" "User 1 (5940.00 x 4200.00 Pixels)" "Landscape" "N" "Display" "Fit" "Center" "Y" "monochrome.ctb" "Y" "")(princ)
( J+ l5 e/ \8 n, A - 3 X% J9 ~) ]- G2 k6 G( e0 n. [0 k
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=5 [7 [* `9 a: r
- ;===================================17|10|2024===================================
* V! S, r0 H9 g: T0 Z0 H/ V
+ Y$ j+ k5 e0 @ _ M1 ^- ;======== KET THUC - DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =====- ?$ w8 `8 h M0 j/ o
$ Q K$ u2 E0 q( d- ;======================== DAT NET IN & TI LE BAN VE =============================
9 Z! g! L+ W6 L - 0 D1 Q2 Q+ Z. F& i
- ;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================$ i4 c3 t, u+ [) y$ X
- ;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================: J/ v, n7 x- ?
- ;=============================11|07|2025==============================
. Q# K/ Q8 X! {# m - ;Ti Le Ban Ve - 1 : 100
: O1 H1 y- g( ?) m( X" i5 l+ {% C - (Defun c:kta4 ()% E i6 d# H- t. N2 `9 o- H
- (setq mv_sc 100);Ti le ban ve
h/ |& g5 u( H/ o7 E4 c - (setq x4 297)4 F% K3 ], U. m* _6 t: Y
- (setq y4 210)
- }6 |) r2 C. Y6 t3 h9 ?; W: ^ - (setq x4 (* mv_sc x4)
& p" ~/ M' G5 s9 B; v - y4 (* mv_sc y4) )
4 ?8 _3 w4 a4 i9 g9 ]( w - (command
4 n) B0 \: n9 Y; x - "LIMITS" "0,0" (list x4 y4)
! R6 R6 [) b0 ^ F7 P) x9 h+ L - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
) N2 Y' {; `3 ~$ x5 ` x5 ?# F) W - ;Khung CHU NHAT Chinh
) A. f5 e0 J5 r" I. t - "RECTANG" "500,500" "@28700,20000"
5 c4 T% {2 [4 z: D7 q' w - "RECTANG" "700,700" "@28300,19600"
2 K0 ~7 F# u& i7 P2 P* k/ o - ;Khung Ten Chung
& E5 t5 t& P# J1 k# W - "RECTANG" "700,700" "@8000,1250"* S/ X0 W) R5 W5 ~3 x6 g+ |; K, |8 U
- "RECTANG" "700,700" "@17300,2500"
, n6 A8 M+ r! g$ x3 \! \ - ;Ten Ban Ve/ a" s" K# l4 I$ }0 S; G" N! ~& G
- "RECTANG" "18000,700" "@11000,1250"! w0 z4 D9 M2 Q( `3 @$ d% m, z
- "RECTANG" "18000,700" "@11000,2500"7 t: G( y* Z' Y) i9 _
- ;Khung Ti Le + Ngay Thang Nam1 j2 x' L7 r( L5 H
- "RECTANG" "22500,700" "@2000,2500"
7 L9 `! {" f7 q8 Z9 @ - ;Khung CHU TRI
: I# W a# d6 P0 W - "RECTANG" "8700,700" "@3800,2500"' V; Z7 e* W- d( N. @0 |8 A
- "ZOOM" "_a" ))/ D1 C' d/ j5 g, s# e( o/ ^8 x
- ;=====================================================================
( o4 n2 I" @& a& D; S( j - ;Ti Le Ban Ve - 1 : 1002 {1 W1 \& k. R1 [2 I2 O! A* H
- (Defun c:kt4a ()
& `$ q! K+ E- z; }" X1 ] - (setq mv_sc 100);Ti le ban ve
7 W9 r1 z# @$ C1 o8 w5 u7 s" T5 x - (setq x4 297)
H% M' U" S7 n6 `' e. U2 c - (setq y4 210)4 z6 }; f2 e: `7 U% x" k1 s
- (setq x4 (* mv_sc x4)
W. `3 B: E4 }5 x2 K! ~ - y4 (* mv_sc y4) )( ~8 Z% n% E/ k' e" Y/ T
- (command
8 M E" R( s6 Q( { - "LIMITS" "0,0" (list x4 y4)6 U( X8 k! c' q' o
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
# t* ?; }* u* p - ;Khung CHU NHAT Chinh " M; w% W9 D. \: f
- "RECTANG" "2000,500" "@27200,20000"8 i# p+ n) _% n/ p
- "RECTANG" "2200,700" "@26800,19600"
: T* O9 f9 F- b x) [ - ;Khung Ten Chung9 o- _9 z# N0 D. {* V, U9 p9 Q
- "RECTANG" "2200,700" "@6500,1250"( [2 M! {0 o3 }1 t3 ?8 v
- "RECTANG" "2200,700" "@15800,2500"
& N" {- I& R4 [7 t - ;Ten Ban Ve2 L3 @& O$ K# ?, o8 y6 }( Z* {" k
- "RECTANG" "18000,700" "@11000,1250"
6 [1 N3 X/ h; J; b% t' Z6 |" J3 C - "RECTANG" "18000,700" "@11000,2500"
0 j# j& ~$ T* }8 s% R; F. _ - ;Khung Ti Le + Ngay Thang Nam8 S# i- N6 W8 M' U
- "RECTANG" "22500,700" "@2000,2500"/ b) h6 u/ ]$ \! N' g! D/ F( L7 X3 O
- ;Khung CHU TRI
# y0 H: F- n* S9 i _. o - "RECTANG" "8700,700" "@3800,2500"
+ s3 A, X7 Q9 I! ` - "ZOOM" "_a" ))$ F" U/ O: f/ d8 P( P3 V" M& i6 y- x
$ B1 W0 c& o' w# X- ;;; ============================GHI CHU Khung Ten========================$ C+ l: n# J8 ]! \/ M
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========2 h" K" i% U7 H
- ;;; =======================Thuong Dung Font Romant.vnh===================, _$ \9 q0 j* l6 s
- " y3 B+ _7 y) r0 p: ~7 H( }
- (defun c:GhiChu (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)1 }0 N2 w A/ F$ K" t
- (setq oer *error* *error* err2)
3 @) I! e- E# R) `# L - (PROMPT "\nChuTri. ThietKe. KiemTra. TiLe. Ngay. HangMuc. QuyMo. KieuNha. CongTrinh. KyHieu. TenBanVe. Kts. TranNgocThang. ")$ L- {8 }1 {7 p8 m) Q B
- (SETQ Cpt(GETSTRING "\n(CT). (TK). (KT). (TL). (Ng). (HM). (QM). (KN). (CTr). (KH). (TBV). (Kts). (TnT). ")), ~# D N7 L$ v" b
- (IF(OR(= Cpt "QM")(= cpt "qm"))(SETQ CPT ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông quy M« :"))0 j& W3 x$ |# S! C
- (IF(OR(= cpt "KN")(= cpt "kn"))(SETQ CPT ' "2 TÇng 1 Tum Thang"))
+ f2 v! R3 D( b - (IF(OR(= cpt "CT")(= cpt "ct"))(SETQ CPT ' "Chñ Tr× :"))+ o% U! A+ o* {; u6 Y0 K
- (IF(OR(= cpt "HM")(= cpt "hm"))(SETQ CPT ' "H¹ng Môc :"))( g( u7 b; _$ L1 D' u$ J, I( M. a/ ^
- (IF(OR(= cpt "CTr")(= cpt "ctr"))(SETQ CPT ' "Nhµ ë Gia §×nh - Nhµ LiÒn KÒ"))
5 s6 V% _* O z+ f$ I0 i - (IF(OR(= cpt "TK")(= cpt "tk"))(SETQ CPT ' "ThiÕt KÕ :"))
! N/ V& n5 [/ z) _ - (IF(OR(= cpt "KT")(= cpt "kt"))(SETQ CPT ' "KiÓm Tra :")); B- K: e6 q8 S9 t- E
- (IF(OR(= cpt "TL")(= cpt "tl"))(SETQ CPT ' "TØ LÖ :"))1 ?0 V* L. k6 z1 C8 W+ P5 Q v# L4 l& m
- (IF(OR(= cpt "KH")(= cpt "kh"))(SETQ CPT ' "Ký HiÖu :")): g: K" \* W' l# x7 v0 m$ [
- (IF(OR(= cpt "TBV")(= cpt "tbv"))(SETQ CPT ' "Tªn B¶n VÏ :"))" u1 z- w" Z. n8 T. J6 Z/ N
- (IF(OR(= cpt "Ng")(= cpt "ng"))(SETQ CPT ' "Ngµy :"))
$ B6 D0 Y8 @3 z: P+ x* X7 M - (IF(OR(= cpt "Kts")(= cpt "kts"))(SETQ CPT ' "Kts. TrÇn Ngäc Th¾ng"))
& H& R2 {* G3 Y) t3 M - (IF(OR(= cpt "TnT")(= cpt "tnt"))(SETQ CPT ' "TrÇn Ngäc Th¾ng"))
0 a5 I1 ] Y" y2 |8 o" A: M - (setq pta (getpoint+ R5 ]9 Z& A, W, L' \4 P
- "\nPick first corner. : "))& ]$ W$ U& x" f/ b, U# B! D
- (setq ptb (getcorner pta
4 S4 |5 M1 e, q+ b2 S1 y* [/ p, x - "\nPick second corner. : "))
/ G2 A: g; a/ G: I) I `- |& N - (setq ptc (list (car ptb)(cadr pta)))
2 J& l1 Y. U9 Q7 a8 E% }3 f8 l - (setq ptd (list (car pta)(cadr ptb)))
. B8 ]# ?+ U# m4 \: Z; B+ K& M - (setq ang (angle pta ptb))7 x2 Y V9 c0 Q0 ?5 c; }" ^" y
- (setq d1 (/(distance pta ptb) 2))* x( _( p2 K" m) f0 W
- (setq cp (polar pta (- ang (dtr 0)) d1)), f7 r- O. [7 a9 z( l% ^! h
- (setq X (distance pta ptc))
% N1 t# N# p! Y( r( M4 q - (setq Y (distance pta ptd))
3 B3 d s: Y o7 G - (setq X1 (rtos x 2 1))+ R) e8 S* Y5 e* h
- (setq Y1 (rtos y 2 1))
v$ i6 w3 D$ n - (setq rmsz (strcat "(" X1 " x " Y1 ")"))6 |5 N1 t2 d$ v6 t! V
- (command "TEXT" "c" cp "0" CPT "text" "" rmsz))4 H" X% b) s* i2 o, Q) H: e
- (defun dtr (angg)
8 z4 i! n/ ]% p1 P/ q! e - (* pi (/ angg 180.0)))
# Z5 b! Q8 E/ i' {9 R! A7 n) G - - g/ ^% w$ g; v2 W# F1 f% O( h
- ;=====================================================================
! Y0 @- |: V& P$ O - ;==========================DAT KHO GIAY BAN VE - KIEU 1========================# A/ }- o1 {( p. S
- ;=====================================================================) h g/ O% `- u# h* a3 N3 U; M# b5 V
7 x9 S, Q; o# P- Q! l- (Defun c:a6 ()
& p0 k, j2 ^ @7 m- _# s4 n - (setq mv_sc 100);Ti le ban ve, j4 \ v8 @6 I+ X# b4 ]! X% t
- (setq x4 74.25)' i5 y3 v; t% ]: E' f9 Z9 P8 U
- (setq y4 52.5)1 ^ H0 D7 o1 b" p! D* F0 P* ~' U
- (setq x4 (* mv_sc x4)
9 z7 N( ]# s* A2 b% v+ e$ ? - y4 (* mv_sc y4) ) {; d; j+ p& B m1 z3 D0 D$ t% J
- (command
" P. T; t: e# g% N E/ {" e& J" ` - "LIMITS" "0,0" (list x4 y4)
3 s) p) ^( _1 y7 \+ ? - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
0 u/ W8 p6 @! x. H% g( K - "RECTANG" "125,125" "@7175,5000"
- b5 W7 v$ f8 |8 s - "RECTANG" "175,175" "@7075,4900"
% F+ ^* ~" G% j& a9 i - "ZOOM" "_a" ))
7 s, J% l' n0 Z% n0 }7 l9 s - ;=====================================================================
3 }, ]% g" C& @1 I4 K1 j - (Defun c:a5 ()3 S8 A5 x1 x' ], e0 U
- (setq mv_sc 100);Ti le ban ve$ `( j: P1 Z5 c( `. Z) N
- (setq x4 147.5)
7 v. [4 r6 ?0 i1 k# h - (setq y4 104)
' C) X4 p1 l. Y: P - (setq x4 (* mv_sc x4)
6 ?4 C/ ]0 J; Z$ E1 E- | B2 C& j- k - y4 (* mv_sc y4) )
9 m- H7 G# n! R% Y' E - (command
$ P |8 P( R, n @, D) Z9 ] - "LIMITS" "0,0" (list x4 y4)+ u. C5 G' p& W8 g Z
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
* y0 c: H" @# x z/ _6 t - "RECTANG" "250,250" "@14350,10000"
+ ]. K, {( W" }# @5 v - "RECTANG" "350,350" "@14150,9800"4 |* w# r+ { d8 Q# I- G
- "ZOOM" "_a" ))
7 h; i+ [# ?9 f# l2 H - ;=====================================================================
8 p' r+ g+ o% i/ w% d - (Defun c:a4 ()3 O: @, e0 i6 X% R/ j
- (setq mv_sc 100);Ti le ban ve
/ Z+ Y u0 f1 M& r - (setq x4 297)
& q8 m( q9 k+ c, ^3 i; c: q - (setq y4 210)" `. i% R# s' `( U' x
- (setq x4 (* mv_sc x4)
. z; H6 U9 \) L: j1 q9 W4 O - y4 (* mv_sc y4) )2 c# \; R: j g* D/ n
- (command
% v. V( S5 C1 s2 N - "LIMITS" "0,0" (list x4 y4)
* N9 H/ M* _# o* d2 S2 _0 |/ c - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
4 |9 I3 F+ ^( L" W8 ?3 u - "RECTANG" "500,500" "@28700,20000"
' @& @5 L i) j4 Q4 W - "RECTANG" "700,700" "@28300,19600": y$ d3 @: i2 i) s" f* B
- "ZOOM" "_a" ))1 _8 T- W7 X: N8 x% T! m
- ;=====================================================================
; N; R P) q: E - (Defun c:a3 ()
! u6 ]3 n1 }$ o* } - (setq mv_sc 100)
! v6 N" ~( g( q ` - (setq x3 420)! R$ }0 c6 @$ [0 Y: c
- (setq y3 297)+ C' W2 l' O3 V6 W2 w3 ~ f! j
- (setq x3 (* mv_sc x3) ; H2 I" ]4 l/ l- d' Q) [
- y3 (* mv_sc y3) )- E) n9 s8 e9 P* h& c
- (command 2 X+ T( x+ _8 f5 Z7 T
- "LIMITS" "0,0" (list x3 y3)
+ K: I" i+ N- D4 w2 h* x' t - "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
9 f5 B& S7 _ \3 B9 S( g' [# G - "RECTANG" "707.14285714,707.14285714" "@40590,28285.71428571"+ x! P0 h4 t7 x4 |) Y0 G5 T% W
- "RECTANG" "990,990" "@40024.28571429,27720"
7 B3 q, j7 x& {5 P% L - "ZOOM" "_a" ))
5 _- Y, {' B% }9 A - ;=====================================================================
( Q+ i: i* {8 b$ L. P! A0 {+ } - (Defun c:a2 ()
' H+ F/ q B; u" h, o7 Q - (setq mv_sc 100)) d% Y ^; ~8 R8 }
- (setq x2 594)+ `7 b: B2 q, Z' R( C$ R5 J
- (setq y2 420)
+ G) h& q- u' C/ S3 t - (setq x2 (* mv_sc x2) & ~# R8 c( ~! i. P7 @9 M. a
- y2 (* mv_sc y2) )
( J, y6 i, }. k' M - (command % S8 M) ]8 C2 y/ |
- "LIMITS" "0,0" (list x2 y2)$ u. i/ V6 ^! P: ^- E% R/ N
- "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"
$ u( L, u5 N% F! U1 G! q/ l% v- ^ - "RECTANG" "1000,1000" "@57400,40000") A2 r3 P. q8 e$ _( w
- "RECTANG" "1400,1400" "@56600,39200"
6 E* Q9 r1 z# c" s2 F/ f3 X - "ZOOM" "_a" ))# X' v3 ]0 N- _ ] ?# p
- ;=====================================================================
2 w# ]$ N7 n; f/ a - (Defun c:a1 ()
p6 W5 p, L. ? - (setq mv_sc 100) n3 c3 b8 E/ b% U) d8 a% o/ ?& }
- (setq x1 840)
4 {& ?+ K# o" M' a! a - (setq y1 594)
8 h9 ~ D# a9 a9 w* L( J7 E - (setq x1 (* mv_sc x1) 6 P# V6 o/ o1 M4 u# o" K) R
- y1 (* mv_sc y1) )5 t/ l3 i; n' E8 @1 g0 q; M
- (command
5 G$ h# B" J' ?% U5 M0 q - "LIMITS" "0,0" (list x1 y1)! x- I+ n8 J) h7 e0 s3 ~; v" c
- "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"
! A; l2 e$ H' _ - "RECTANG" "1414.28571429,1414.28571429" "@81180,56571.42857143"
! x6 V3 R0 N8 i/ x' t. v } - "RECTANG" "1980,1980" "@80048.57142857,55440"
9 E8 f- X9 s$ b# q' c - "ZOOM" "_a" ))! E& u# ~& u T5 N$ {1 Q, G. {% m
- ;=====================================================================
% @, s, l/ y/ i% h1 q; U- h - (Defun c:a0 ()
& y4 C3 `4 W: W1 Q - (setq mv_sc 100)
! Q# x) _3 g" z$ \4 _ - (setq x0 1188). n" K1 C2 R; l
- (setq y0 840)
: s/ s! X" Q3 m* \ - (setq x0 (* mv_sc x0)
2 b9 }2 I5 i' g+ M& S4 j6 J) W - y0 (* mv_sc y0) )
+ h1 w' `6 k [* e7 G - (command
" s% X- K! {, ~- K7 N - "LIMITS" "0,0" (list x0 y0). u# _0 P* M% ]3 [- [1 I6 r: J- ~
- "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"$ f$ B# l9 c0 T7 J: `3 V! f: v
- "RECTANG" "2000,2000" "@114800,80000"
. ?( t- h# u7 J% W8 Q7 r - "RECTANG" "2800,2800" "@113200,78400"7 W, z/ B: N+ Z
- "ZOOM" "_a" ))4 T! H! ?- U( T
- * l3 q3 X) t- D, H) M- e, M
- ;=====================================================================
1 c$ \ }3 K- y1 k. q. @6 ` - ;=========================DAT KHO GIAY BAN VE - KIEU 2=========================
- R' l7 h) H. }! _/ C' S( Y( O - ;=====================================================================
; z" M$ V( Y5 H6 [/ O, P$ p - D) C# }* e( Q
- (Defun c:6a ()! ]% C" h4 _- N" ?- ^: i2 g9 z
- (setq mv_sc 100);Ti le ban ve0 Z3 G. x5 `' v& l2 \8 ~
- (setq x4 74.25)
9 f- ], K: P& i8 S, M - (setq y4 52.5)
* d/ r- N# l! C! x - (setq x4 (* mv_sc x4)
$ v }5 e @* H& t/ N s* ~ - y4 (* mv_sc y4) )
, B" k9 M: Y/ Y) t, A+ R - (command * u4 B! {/ p! i3 }5 B
- "LIMITS" "0,0" (list x4 y4)6 h0 x; F5 T2 c8 M; s- Y* X
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"( _: d+ A' z! D
- "RECTANG" "505,125" "@6800,5000"
, Y- r8 P r5 [2 h& f - "RECTANG" "555,175" "@6700,4900"
3 _ j3 I4 I8 P _1 E' p - "ZOOM" "_a" ))/ s; T2 I( x$ }* H8 {# B5 l5 s0 U
- ;=====================================================================, J6 v% C. G$ I6 r1 F* `0 v0 @
- (Defun c:5a ()1 m' \9 p9 A, }; ^
- (setq mv_sc 100);Ti le ban ve
# V4 x; C; Q) S# f( N8 y* o: x - (setq x4 148.5)
! i! E0 @2 [9 K$ n" i+ r - (setq y4 105)
7 }: k1 h% \7 Q! r x! g$ b( z - (setq x4 (* mv_sc x4) 6 A2 ^% C& O) p; ]
- y4 (* mv_sc y4) )
2 { G0 _8 E0 k4 i - (command
. W$ E& v. q: | c: N, [* s; l9 b - "LIMITS" "0,0" (list x4 y4)" M z9 f: r) \- ]; D
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"% g" ~; O1 b2 k9 V
- "RECTANG" "1000,250" "@13600,10000"
& ~8 d! {# [7 i0 q, k - "RECTANG" "1100,350" "@13400,9800"
* p# U* V- p& y/ j* g! u - "ZOOM" "_a" ))
( W6 O8 N3 j1 e - ;=====================================================================
8 I& u+ W$ p- t3 j. g - (Defun c:4a ()
7 l( [; |1 ? ~& m9 R - (setq mv_sc 100);Ti le ban ve! r/ D( F8 J0 w* r
- (setq x4 297)( d. [% A4 B9 k
- (setq y4 210)
8 \( o& _, {+ ~ - (setq x4 (* mv_sc x4) 5 }" ]& D; h: f$ p6 `8 w% s F2 H
- y4 (* mv_sc y4) )
: {8 e3 `. A* D2 y8 M: S - (command
0 H' s b3 L. a: W$ w9 z8 D: E+ d3 Y - "LIMITS" "0,0" (list x4 y4)
1 v3 L3 H; q4 ^& U' c$ O - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"5 ~ \& a0 o( n0 g( r; \& @) e- r
- "RECTANG" "2000,500" "@27200,20000"5 g4 k I" Q" Y' q
- "RECTANG" "2200,700" "@26800,19600"
& c; F8 _3 i1 A* | - "ZOOM" "_a" ))' n7 }1 n+ L/ o4 @9 t, @. _- B" ?
- ;=====================================================================( @" B4 b7 R% t5 \1 n8 ^
- (Defun c:3a ()
7 w% ~7 G# c# n0 {( {3 O9 ]9 ^ - (setq mv_sc 100)4 Q2 I& ]7 R" \+ {5 ?' u* H
- (setq x3 420.0428571429)
* L" r3 W' L& x; i b, c& B' D) `! o - (setq y3 297)- R G3 ~( s1 q; R# a4 P* d
- (setq x3 (* mv_sc x3)
* Z1 h/ ]$ M( i( J1 ~ - y3 (* mv_sc y3) )
) v" |3 i1 |* n& h( ] I8 w - (command
- t5 o% k. Q2 \; a0 s - "LIMITS" "0,0" (list x3 y3)
' S) h4 {3 o) z2 V - "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
- v4 W# S: D d8 z# q0 E5 P# A - "RECTANG" "2828.57142857,707.14285714" "@38468.57142857,28285.71428571"4 e6 I% ^& c; G- e& X$ [. o' g
- "RECTANG" "3111.42857142,989.99999999" "@37902.85714287,27720.00000001", v9 a0 a h( o) d) }2 A
- "ZOOM" "_a" ))) t$ z; ]" }: g
- ;=====================================================================# n @# ]' Q& }$ |
- (Defun c:2a ()
' z# a* F @, y' u - (setq mv_sc 100)
6 P2 d: F0 U! x- E9 u$ V, M; H - (setq x2 594); `9 H8 F' z- j2 z
- (setq y2 420)
2 S" A8 L+ \( P6 j; \% s! y* o$ R - (setq x2 (* mv_sc x2) 7 P. I: W; l4 e4 z
- y2 (* mv_sc y2) )$ `( l% X: q% o7 e
- (command
3 P# M7 j# ?: G- d - "LIMITS" "0,0" (list x2 y2) M* ]' I4 f$ R. v; u
- "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"* `' n6 w7 n- I2 S
- "RECTANG" "4000,1000" "@54400,40000"
4 O" r& p& }! Q& S! l3 ]9 l - "RECTANG" "4400,1400" "@53600,39200"+ M- s) p+ M$ ?4 R
- "ZOOM" "_a" ))
1 Z2 B8 c. [8 `- I- B9 | - ;=====================================================================/ e4 s7 w3 ]3 `0 t
- (Defun c:1a ()* l+ Y6 ?# l! o8 Q) D8 Q$ \
- (setq mv_sc 100)
* w1 ]4 ~/ m0 E! g0 O& i+ s! ~& u - (setq x1 840.0857142857)
) R$ R2 r h9 d8 r- b - (setq y1 594)% o3 Y# [; _% y
- (setq x1 (* mv_sc x1)
8 \ N* ?/ @/ _$ `3 G; b8 k - y1 (* mv_sc y1) )
; b- O% w: N( w- h6 Q - (command
# h$ N/ C V( L8 P+ u4 E9 O - "LIMITS" "0,0" (list x1 y1)
7 t3 ?& A3 B' I4 y' |$ J9 r - "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"
) X0 a% I& t' M( t - "RECTANG" "5657.14285714,1414.28571429" "@76937.14285714,56571.428571436"
4 o9 L& R X' }6 n0 W& E9 ` - "RECTANG" "6222.85714286,1980.00000001" "@75805.71428570,55440"2 T; j; d! e; N7 f
- "ZOOM" "_a" ))8 j1 L/ C# v4 Q5 H: b
- ;=====================================================================
1 ^" I! w" r1 K/ C" y' s q - (Defun c:0a () Q, [6 |: k8 R3 T* v# ?
- (setq mv_sc 100)
2 r5 X3 p! y8 } - (setq x0 1188)
/ A: f, |* x+ ~* c3 x - (setq y0 840)
- t: Z' E9 G& k$ A1 |7 E - (setq x0 (* mv_sc x0) . `# F! m3 C2 e/ v8 `* I# A
- y0 (* mv_sc y0) )
9 m7 ^" M3 t9 E/ ?: D* F - (command
& m4 G; \4 N9 P7 a - "LIMITS" "0,0" (list x0 y0)' u: ~/ `! ]% i0 k
- "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"
6 ~; \# b' ]5 g: s$ _ - "RECTANG" "8000,2000" "@108800,80000"
- D' L' h8 P1 F$ W; z& M. c0 ~- Q - "RECTANG" "8800,2800" "@107200,78400"
- c4 D% `! j& n' m/ d* d - "ZOOM" "_a" ))
* u3 ~8 R; ]1 @) K4 l
' a5 m4 |* K& T5 F, j2 Z. ]- ;=====================================================================
, {* ~$ K) f( m- c' ?: t1 `) `! O1 x - ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================4 H9 ^6 z) S0 ^* U7 r
- ;=====================================================================
8 Z W7 q+ i* i6 H3 g; ]# Q - (defun c:khogiay (/ oldlst a b c d e f g h kho TL) E' b; E8 R0 g
- (command "undo" "be")
6 ~' z0 S9 x1 D: J - (setq oldlst (mapcar 'getvar (list "CMDECHO" "OSMODE" "cecolor")))3 g9 P3 k+ l% `% k! z. Y/ M1 J! B
- (setvar "CMDECHO" 0)
* h5 D/ E+ i$ {' K1 k - (setq a (getpoint "\n chon diem chen :"))2 a, Z5 j* u3 m: H
- (if (not TL) (setq TL 1.00))( s* S* t* ]. c3 e; D
- (setq TL1 (getDIST (strcat "\nScale <" (rtos TL 2 2) ">:")))' E! `& ~, s: ]2 R
- (if TL1 (setq TL TL1))
( @2 H! U; g, S5 l2 k - (setvar "osmode" 0)
1 u7 U* O2 D! |2 `8 @9 ~# j# ^ - (if (not (tblsearch "layer" "Defpoints")) (Command "layer" "N" "Defpoints" "")). a+ n! Z2 O- Z9 V
- (initget "0 1 2 3 4")
1 R- `2 u" }0 N. { - (setq kho (getkword "\Kho A0 _ Kho A1 _ Kho A2 _ Kho A3 _ Kho A4 [0/1/2/3/4]? <0>:"))- ^" P, S+ b+ U
- (if (= kho "0")& ~6 S1 k$ s& x$ C
- (progn
$ n) h) h D4 V' t; Q$ T% S - (setq b (polar a 0 (* TL 1189)))
* i5 `! H& c2 } l( C1 H5 R7 ~4 C - (setq c (polar b (/ pi 2) (* TL 841)))
0 F' R+ f7 Z3 K3 B4 N( ?: l% Y - (setq d (polar a (/ pi 2) (* TL 841)))
, ?. H' y$ `! N, f- P0 K) S - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))
. i' f3 j! P* g+ O9 | - (setq f (polar e 0 (- (* TL 1189) (* TL 24))))& y% a r/ S. b6 x
- (setq g (polar f (/ pi 2) (- (* TL 841) (* TL 24))))% B: X0 j- q+ a" _% i/ I" [3 U
- (setq h (polar e (/ pi 2) (- (* TL 841) (* TL 24))))' G k, n% }" |6 \8 n$ g
- (command "Pline" e f g h "c") ; i# M1 T% l& M% r! l
- (command "change" "last" "" "properties" "layer" "0" "")8 F, J9 J; n9 y& o
- (setvar "cecolor" "4")
1 w9 D$ c) `- B - (command "Pline" a b c d "c")/ N" A! `9 s8 a/ O2 L
- (command "change" "last" "" "properties" "layer" "defpoints" ""))) 1 e4 i; I) @# P. p3 p$ H6 t
- (if (= kho "1")
; \- u- t5 o: X$ j; I( G - (progn% o# e: z, R! f* Q P. _ W( y! @
- (setq b (polar a 0 (* TL 841)))
1 ~( [- O. _- A% I, q, k - (setq c (polar b (/ pi 2) (* TL 594)))) o5 s8 W- H- Y8 D7 g+ L& [# ?
- (setq d (polar a (/ pi 2) (* TL 594)))
0 N, y; I9 D ?- f+ _- [& ]: p - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))7 x* }/ ?: I2 x8 Q4 `% b, _9 L" j
- (setq f (polar e 0 (- (* TL 841) (* TL 24))))
6 l: X, d2 {/ i; P - (setq g (polar f (/ pi 2) (- (* TL 594) (* TL 24))))
" w! b$ G& E/ Y1 u1 n" W7 I, H' w - (setq h (polar e (/ pi 2) (- (* TL 594) (* TL 24)))). y. V9 x1 M, K/ ^2 V
- (command "Pline" e f g h "c") $ |2 k% J9 S. _
- (command "change" "last" "" "properties" "layer" "0" "")
+ M: q4 d" i7 A; ?8 l, X - (setvar "cecolor" "4")
% V v8 e5 H l! x) e$ i/ {3 c9 |$ x - (command "Pline" a b c d "c")% f/ k6 @: ]2 V
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
; i2 }, R- B; D$ X5 k6 T: J - (if (= kho "2")8 |1 S. ~# B; [
- (progn+ P- p. M' L) O z* C
- (setq b (polar a 0 (* TL 594)))8 H6 v( u7 ~' _8 ~) B
- (setq c (polar b (/ pi 2) (* TL 420)))) I9 c/ s2 Q' |, c/ _5 \0 n# Q
- (setq d (polar a (/ pi 2) (* TL 420)))
" j/ n3 x1 K2 F" t+ T0 q - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))5 R0 g9 A$ e7 e) ~; v
- (setq f (polar e 0 (- (* TL 594) (* TL 20))))3 B2 N/ T6 K) R4 @; _
- (setq g (polar f (/ pi 2) (- (* TL 420) (* TL 20))))# n6 H% d: W' J6 C! H
- (setq h (polar e (/ pi 2) (- (* TL 420) (* TL 20))))# G* h% U$ i( E& ~2 c2 E
- (command "Pline" e f g h "c")
- T# `2 g1 I; i+ H( E; b - (command "change" "last" "" "properties" "layer" "0" "")6 D$ ]: {# p+ R" H5 _
- (setvar "cecolor" "4")& E! J/ g) ~9 l9 A
- (command "Pline" a b c d "c")
7 ?& n) @0 y0 o1 K6 q - (command "change" "last" "" "properties" "layer" "defpoints" "")))( |/ {2 @0 {& R8 m
- (if (= kho "3")/ x) ~/ J! ]; l$ I/ `2 b1 ?
- (progn0 H! O* X. [; n+ E. E6 @/ j
- (setq b (polar a 0 (* tl 420)))
' ^( H# I* |9 |8 _! D- [8 S' \ - (setq c (polar b (/ pi 2) (* TL 297)))5 \3 _0 O& @, V+ W, D8 A6 M
- (setq d (polar a (/ pi 2) (* TL 297))); @5 G% ~1 y, I! F
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))
9 y- m( o" z1 R) H - (setq f (polar e 0 (- (* TL 420) (* TL 20))))
4 z% P: }5 P0 _4 c" z( O! s9 B1 ^ - (setq g (polar f (/ pi 2) (- (* TL 297) (* TL 20))))
4 d: [: c" e& b" n |. H* N+ ` - (setq h (polar e (/ pi 2) (- (* TL 297) (* TL 20))))5 \2 l/ X7 C2 a" c- ?* X, X9 D
- (command "Pline" e f g h "c"), F4 r6 W [% B
- (command "change" "last" "" "properties" "layer" "0" "")3 Z7 ^- E) s" Y, f
- (setvar "cecolor" "4")
: @3 Q" t `% `, h$ P4 M - (command "Pline" a b c d "c")2 L2 D) t% `* R& v9 M( j
- (command "change" "last" "" "properties" "layer" "defpoints" "")))$ c1 S" v, s) y3 f
- (if (= kho "4")
4 S# u( d! f/ R4 i& @% M8 r - (progn
+ r9 h+ I A5 y - (setq b (polar a 0 (* TL 297)))% I2 M" A- U+ O0 ]" ^
- (setq c (polar b (/ pi 2) (* TL 210)))
# y# M1 Z, u1 L6 E* Q8 \ - (setq d (polar a (/ pi 2) (* TL 210)))
* d* W9 j+ U; G2 M. L2 I, r - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 81)))))
5 Z* @4 V8 E2 \ ? B - (setq f (polar e 0 (- (* TL 297) (* TL 18))))- ?" a* G- V' z+ |2 N9 R
- (setq g (polar f (/ pi 2) (- (* TL 210) (* TL 18))))( U3 @0 N% ?* C. [& o
- (setq h (polar e (/ pi 2) (- (* TL 210) (* TL 18))))
, ~8 |/ V' T, b7 A - (command "Pline" e f g h "c")
" ]9 y& X' a" z" D# b$ u1 d - (command "change" "last" "" "properties" "layer" "0" "")
; U' F& f2 y- m2 p; ^4 `3 q( ~ - (setvar "cecolor" "4")! y; N( e- k: I2 ?" ~+ ]: N
- (command "Pline" a b c d "c")
- }7 } g I: O8 u* f9 @8 W - (command "change" "last" "" "properties" "layer" "defpoints" "")))5 R0 ^1 _% F+ I& ~
- (mapcar 'setvar (list "CMDECHO" "OSMODE" "cecolor") oldlst)
2 ^5 V/ k: U7 f8 \. C6 |& U - (command "undo" "e")
+ i* ?" ]: z4 C2 I8 t - (princ))
& K% N; ^2 _9 i: S+ {' c) q - ;=====================================================================
8 Z& l# ]' D. `3 {1 | - ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================
1 ~4 x3 ]% p& |$ r$ v - ;=====================================================================6 l5 v" _% U; T: x0 v, b
9 B8 W0 _, u3 `7 ]4 B) J! _- ;=====================================================================9 A, j6 s, ~" D2 A* ^% e
- ;===================DAT Ti Le Theo KHO GIAY BAN VE====================
: e3 G+ N7 M/ q& k7 O: Z - ;=====================================================================: ~, Q2 t3 e5 q& Z
% x6 D+ j, j% Z z3 C/ S- (DEFUN C:SA6 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.1" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""
3 z: p( w- d5 f. x - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.3" ""' ]0 A0 i3 L! Y" E
- "M" "MANH" "C" "9" "" "Lw" "0.1" ""
6 J/ i5 @$ h. o& [7 d$ c0 H7 C - "M" "TEXT" "C" "7" "" "Lw" "0.12" ""
3 R" B# q% g4 r2 G5 Z - "M" "DIM" "C" "1" "" "Lw" "0.12" ""
9 Q7 _9 o* c, w$ n0 r* P - "M" "THAY" "C" "7" "" "Lw" "0.2" ""
6 h( y* v/ P# B0 P* }! `9 | - "M" "NOITHAT" "C" "3" "" "Lw" "0.12" ""
1 e1 _ H8 g. c( Z - "M" "HATCH" "C" "5" "" "Lw" "0.1" ""5 H! s6 v( U3 K* I1 t2 X
- "M" "COT" "C" "1" "" "Lw" "0.3" ""1 u& o' L1 H. n
- "M" "Defpoints" "C" "7" ""
! ~. a R/ d6 }* A! F8 S - "M" "0" "C" "3" "" "Lw" "0.12" ""
1 b. w5 O' @" d6 a* g h: o% ` - "M" "CUA" "C" "6" "" "Lw" "0.12" ""
# s# y' Q z) k w0 }' C/ x& V - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""
8 b+ V# X4 L [5 e2 Q - "M" "TIMTUONG" "C" "5" "" "Lw" "0.1" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "3" ""))4 i& Z" ?0 g' H2 k9 o7 Y
- (DEFUN C:SA5 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.12" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "10" ""
% u7 ^: f/ M2 Z- c3 X - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.4" ""
( C! j* h( F% H1 r" K! O3 m - "M" "MANH" "C" "9" "" "Lw" "0.12" ""
8 ~% i- j* [: }1 t2 u, Q - "M" "TEXT" "C" "7" "" "Lw" "0.12" """ r& b2 T8 R/ n0 Q g! Z o
- "M" "DIM" "C" "1" "" "Lw" "0.2" ""1 {. _ Z# \; `" i
- "M" "THAY" "C" "7" "" "Lw" "0.2" ""
|. s0 P$ K7 K - "M" "NOITHAT" "C" "3" "" "Lw" "0.2" ""; K& w, A7 ], l! i5 J0 u
- "M" "HATCH" "C" "5" "" "Lw" "0.1" ""
- E7 p& ^* O6 F8 j - "M" "COT" "C" "1" "" "Lw" "0.4" ""! d7 i! k, X( v+ |" |. m
- "M" "Defpoints" "C" "7" ""1 S7 l& p8 Y+ c
- "M" "0" "C" "3" "" "Lw" "0.2" "": L& v3 T _9 x9 M* ^
- "M" "CUA" "C" "6" "" "Lw" "0.12" ""5 t: @. A u' T5 R2 V9 @" F
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""
# j" H, m, n' K' s9 F - "M" "TIMTUONG" "C" "5" "" "Lw" "0.15" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "5" ""))
8 v" ?- g* |9 f' h) \0 b6 d, D - (DEFUN C:SA4 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.2" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "20" ""
. L# K$ e2 _! ?' A* e - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.6" ""
5 u! x: U( R2 u6 m - "M" "MANH" "C" "9" "" "Lw" "0.2" ""
8 M; g! |) R- m. W - "M" "TEXT" "C" "7" "" "Lw" "0.2" ""
4 M# k K. e' v) c, v - "M" "DIM" "C" "1" "" "Lw" "0.25" ""
) Y! I8 ?: E3 f1 A2 o6 `: @ - "M" "THAY" "C" "7" "" "Lw" "0.35" ""9 E# V8 K6 a- o" ]9 v* {
- "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""8 a% G' t* }& t) Q. b
- "M" "HATCH" "C" "5" "" "Lw" "0.15" ""
6 m9 `% S; L: x - "M" "COT" "C" "1" "" "Lw" "0.6" ""
. [' q3 E( E: @( j/ ` - "M" "Defpoints" "C" "7" ""
. U: w* v6 G' S+ |: C - "M" "0" "C" "3" "" "Lw" "0.25" ""! R/ b; }4 |4 l4 R
- "M" "CUA" "C" "6" "" "Lw" "0.25" ""
9 R/ u# p" C& U9 b! t- F/ G - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.25" """ o: m6 ]; H9 i' ?
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.2" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" ""))+ T, f- U$ u3 u
-
' D d- g. d) p, g6 g- ^! k1 x - (DEFUN C:SA3 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "30" ""
* d% c! ~' {$ L0 e% Z% B0 f! ~2 N - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""* ^2 }' b& {& A
- "M" "MANH" "C" "9" "" "Lw" "0.25" ""
( W) B& h) M) h3 n% s" I+ _4 Y - "M" "TEXT" "C" "7" "" "Lw" "0.2" ""
$ `9 _& l" }; v3 P. P1 O* E - "M" "DIM" "C" "1" "" "Lw" "0.35" ""
' z' U6 |: O% _3 y - "M" "THAY" "C" "7" "" "Lw" "0.4" ""
2 N1 F1 m( o) M; [6 V {5 w( x1 k - "M" "NOITHAT" "C" "3" "" "Lw" "0.25" """ {$ e n. W& p' C
- "M" "HATCH" "C" "5" "" "Lw" "0.2" ""* R9 L, [' N% [, L
- "M" "COT" "C" "1" "" "Lw" "0.7" ""
7 c! X4 t8 l3 k1 u - "M" "Defpoints" "C" "7" ""# z) v: O3 H) w9 w: w
- "M" "0" "C" "3" "" "Lw" "0.25" ""& d$ I- ?! `" w1 j" q0 ~
- "M" "CUA" "C" "6" "" "Lw" "0.35" ""
, _' @* U" A9 k0 n* ] - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""5 n6 ~, O8 H) j6 |+ z9 C/ x3 a
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "20" ""))(PRINC)% p E1 T" Y, B) O7 c( o
1 n& z1 L+ j5 r) w- (DEFUN C:SA2 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "45" ""$ c, h/ v; m; E, _& x5 J
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""/ O: v, F4 b2 Z& _
- "M" "MANH" "C" "9" "" "Lw" "0.25" ""
2 B3 Q! n6 l' \1 C% `( `& d/ _5 w - "M" "TEXT" "C" "7" "" "Lw" "0.25" "". a( [/ H5 E* Z) J
- "M" "DIM" "C" "1" "" "Lw" "0.3" ""6 w% Q3 D l. G5 |# z, @0 }% i# z
- "M" "THAY" "C" "7" "" "Lw" "0.4" "" M W% m# L7 S! P2 v/ f
- "M" "NOITHAT" "C" "3" "" "Lw" "0.3" ""
9 F4 F4 d9 ?0 E/ o' j6 i+ j - "M" "HATCH" "C" "5" "" "Lw" "0.2" ""
$ [' E- g* S2 V( |% B" x6 } - "M" "COT" "C" "1" "" "Lw" "0.7" ""
# X- X+ z" `! Z: @( B, Z - "M" "Defpoints" "C" "7" ""
1 c6 Y* S% R# l& [# I - "M" "0" "C" "3" "" "Lw" "0.35" ""3 q9 A" m) X0 }6 [
- "M" "CUA" "C" "6" "" "Lw" "0.35" ""
6 ~* ]* U1 Y' ?1 p* Z" f# z; z - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""
, z1 y1 F6 i; X+ t# A, R% {- S - "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "30" ""))
; I$ t! U! f# i+ V* b
* \4 s4 p. M7 p# Y- (DEFUN C:SA1 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.4" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "60" ""0 o1 D5 v" K! u0 I& l/ |6 ^7 P
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.85" ""
6 A" C& R3 r7 w0 u# c4 f+ s2 W; m - "M" "MANH" "C" "9" "" "Lw" "0.35" ""
+ C Z2 f" ~7 i% B) A: t6 ?5 b - "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
+ a6 v! r4 N- F2 A - "M" "DIM" "C" "1" "" "Lw" "0.35" ""# Q5 W$ D8 @, k, Z& {8 f
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""- L/ Q7 v; B* C; T/ d
- "M" "NOITHAT" "C" "3" "" "Lw" "0.35" ""4 R2 p i7 q; H+ @; Z4 H/ {2 \
- "M" "HATCH" "C" "5" "" "Lw" "0.25" ""( _& r$ i6 ?/ s8 r7 Y
- "M" "COT" "C" "1" "" "Lw" "0.85" "" t. X& n( X! N! U, R
- "M" "Defpoints" "C" "7" ""
: R6 h; _+ E, J& x' ?$ e. T. h/ h- f - "M" "0" "C" "3" "" "Lw" "0.35" ""7 j" X" V. s$ \
- "M" "CUA" "C" "6" "" "Lw" "0.4" "") v: o( O6 h9 b2 v* |" t' w
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.35" ""
; N5 [0 L5 s G - "M" "TIMTUONG" "C" "5" "" "Lw" "0.3" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "40" ""))
- Z; y: N; \$ _, o3 B! S -
. U9 G. s9 E/ R' A8 ^4 k4 {7 ] - (DEFUN C:SA0 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.5" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "85" ""8 x; g6 K4 | p6 k; i
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1" """ F3 N) @; H, X
- "M" "MANH" "C" "9" "" "Lw" "0.35" ""
* r& `) u0 U* s S- B" X1 y - "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
0 V5 }- k' S* ^2 L8 N1 C! M - "M" "DIM" "C" "1" "" "Lw" "0.35" ""
/ x6 P' H) Q2 Q9 W; u6 C# @, K! ^ - "M" "THAY" "C" "7" "" "Lw" "0.5" ""
& G7 B# W: l: L; y, O0 e6 u - "M" "NOITHAT" "C" "3" "" "Lw" "0.4" ""
6 a% Z' u6 h3 y" J1 c; C - "M" "HATCH" "C" "5" "" "Lw" "0.35" "", r, Z- z) ~& G5 w
- "M" "COT" "C" "1" "" "Lw" "0.1" ""
3 A" a9 R2 c# Q/ C& [( F% ~3 A; t) W - "M" "Defpoints" "C" "7" ""! I& Q) E6 B) g% T9 m0 D, |
- "M" "0" "C" "3" "" "Lw" "0.5" "": z& D) O5 G+ |4 I4 O
- "M" "CUA" "C" "6" "" "Lw" "0.5" ""& y1 v- `' e' r
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.4" ""
) q( c7 r8 \, w: q8 I - "M" "TIMTUONG" "C" "5" "" "Lw" "0.35" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "55" ""))$ u( X; l. G3 P: A1 R
- (DEFUN C:O () (COMMAND "OFFSET"))1 [- u, e8 w( s4 {7 B6 ^ e& `
- (defun c:s1 () (command "surftab1"))
- r N$ V8 n# |2 u" b* v0 K% I$ T - (defun c:s2 () (command "surftab2"))
6 E5 e" p$ f1 P# F4 y- k* ~ - (defun c:ep () (command "explode")). w) @- q! k; R' G: |
- (DEFUN C:QS () (COMMAND "AUDIT" "Y" "purge" "all" "*" "N" "QSAVE"))
9 L1 {! R5 f f3 d7 i - (DEFUN C:QV () (COMMAND "QSAVE"))
2 B! y3 n- h) e* ^. r - (DEFUN C:S () (COMMAND "STRETCH" "C"))+ ^5 X6 u# \- s$ y
- & ^, [- C6 g1 K4 r& x
- ;************************** CAT DIM *************************** ?7 o" t$ h& k' \- g) ?
9 n I& b7 c( ^0 s6 |- (DEFUN C:DC (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I
Y( ]$ w# M0 r5 } h# j: X - PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11). B- o4 f' |$ `& g
- (SETQ CMD (GETVAR "CMDECHO"))
7 F. h( Y! o/ R+ {0 V) Q, F8 G - (SETQ OSM (GETVAR "OSMODE")), D8 Y& X0 n4 Y+ q3 Z2 b2 c9 n
- (SETQ OLDERR *error*
) {, m: z3 d. _$ d0 Z1 R - *error* myerror)$ j$ n8 t6 B, n3 q+ k& m- E1 c
- (PRINC "Please select dimension object!")
3 _6 _9 ?1 D5 L+ m$ k& F - (SETQ SS (SSGET))
3 Q* i$ v4 d$ c A - (SETVAR "CMDECHO" 0)/ |1 ^* `& p* U% g
- (SETQ PT (GETPOINT "Point to trim or extend:"))" R. Q) }! V( P
- (SETQ PT (TRANS PT 1 0))6 u& W; w* w4 o( n" P, J$ s
- (COMMAND "UCS" "W")$ Q w3 y- y8 i8 C' S5 B
- (SETQ LTH (SSLENGTH SS))1 o$ n; _3 v4 O6 z$ n
- (SETQ DEM 0)
& U2 `* ~2 t* ^" v9 q+ ? - (WHILE (< DEM LTH)4 B# }0 a; ~6 K- g% |% J& b8 I
- (PROGN
Q% n( k4 P# \3 y' ?2 y. @ - (SETQ DS (ENTGET (SSNAME SS DEM)))
3 R2 i6 q O4 ?; Y: K; s - (SETQ KDL (CDR (ASSOC 0 DS)))0 v$ `( O+ h1 K2 {7 D
- (IF (= "DIMENSION" KDL)* X S) T* E5 _% w
- (PROGN0 I, ~# H; u6 M* V# `9 w. B' R
- (SETQ PT10 (CDR (ASSOC 10 DS)))
6 L+ }, z) c. r& l - (SETQ PT11 (CDR (ASSOC 11 DS)))8 A [& w$ R" x0 M3 x! Q Z7 M+ ?
- (SETQ PT13 (CDR (ASSOC 13 DS)))
2 H* @: V0 ?% q3 a - (SETQ PT14 (CDR (ASSOC 14 DS)))
/ x* ^# d2 o3 T- e - (SETQ N70 (CDR (ASSOC 70 DS)))% f. ] i. e5 \6 c; `
- (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))/ q x9 N2 Y* U
- (PROGN
, T- j3 y r* @* z- c0 t - (SETQ GOCY (ANGLE PT10 PT14))+ ? M2 K- ~; G) S
- (SETQ GOCX (+ GOCY (/ PI 2)))
3 s+ \( E! b p: R; j6 G+ e - )4 X+ f ]" F+ ?! L1 j
- )5 u# y5 B6 T1 n/ k
- (SETVAR "OSMODE" 0)
" ^! L* T8 c8 T - (SETQ PTI (POLAR PT GOCX 2))
0 n- @0 b7 i4 _& n - (SETQ PT13I (POLAR PT13 GOCY 2))2 E5 C# h- v# M6 V7 \5 x5 c
- (SETQ PT14I (POLAR PT14 GOCY 2))
9 U9 N1 k& m9 F- z3 F - (SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))
! z# L+ B% E/ _ - (SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))
* g8 `) }& w5 C - (SETQ O13 (ASSOC 13 DS))
/ r ?0 c$ j9 E; b! r4 H- k" v - (SETQ O14 (ASSOC 14 DS))
# }( i: a# i9 f - (SETQ N13 (CONS 13 PT13N))5 f( q6 s3 h! u$ e% t6 ~
- (SETQ N14 (CONS 14 PT14N))
" R; y4 Y1 k( n/ c3 {: C) @ - (SETQ DS (SUBST N13 O13 DS))
" f$ j9 {- M+ q2 c* D - (SETQ DS (SUBST N14 O14 DS))
a2 l5 x4 v$ ~, c - (ENTMOD DS)# l4 J9 Z, P& U5 b% O, B+ [
- )
* q5 ~4 k! I. F; p+ B( v6 l - )
. t9 x2 L4 Q* s - (SETQ DEM (+ DEM 1))6 m$ h7 A4 ], ]! F, t+ ?' ^' o# q
- )! e, G) y, h- E- p# v c
- )
9 E o; {+ x) c - (COMMAND "UCS" "P")' I' |0 Q- k6 e! W
- (SETVAR "CMDECHO" CMD)
6 B) ?7 y0 S* Y0 W. L5 I2 i - (SETVAR "OSMODE" OSM)
( M. c6 h8 |* _, n3 G - (setq *error* OLDERR) ; Restore old *error* handler& M0 S8 w6 F* g* w) o' Z
- (PRINC)
7 k4 g1 Z, |9 C) E7 q' y0 i - )
9 n: Y2 z9 Y+ n: b) J
|: G* G4 ]. M3 ^0 X! E- (DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI8 x, }( _7 k6 [
- PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)
0 A( k9 I. o# T3 P - (SETQ CMD (GETVAR "CMDECHO"))) i: @* [2 |% S9 k% d* f" z1 ?
- (SETQ OSM (GETVAR "OSMODE"))! N9 k) h9 g o; Y0 Y
- (SETQ OLDERR *error*, |2 h, u2 Q. z% w. l
- *error* myerror): u5 ^' Q4 e9 x
- (PRINC "Please select dimension object!")6 K" q. R1 Z' g3 b3 I$ m* \
- (SETQ SS (SSGET))
3 D- a- a% A1 R4 A7 d - (SETVAR "CMDECHO" 0)+ S: s+ I$ ]# U0 l+ f% s
- (SETQ PT (GETPOINT "Point to trim or extend:"))+ [$ z1 v3 C' o% `1 Q; _4 t
- (SETQ PT (TRANS PT 1 0)) u2 S! k5 l& E
- (COMMAND "UCS" "W")
7 o( h) u3 ^9 h; k' B( H& p* a - (SETQ LTH (SSLENGTH SS))' E: P# g v) {1 T2 \% U
- (SETQ DEM 0)( j+ ], i3 S& f9 |
- (WHILE (< DEM LTH)0 a6 V, M0 @9 T
- (PROGN/ O$ |/ T6 X; x2 g5 i. m
- (SETQ DS (ENTGET (SSNAME SS DEM))): c1 x- J. i: c0 F; H$ f) a, T! B
- (SETQ KDL (CDR (ASSOC 0 DS)))
/ V, K; T) O, V7 W - (IF (= "DIMENSION" KDL)
( ]# `0 L/ e9 F - (PROGN
$ w) @. ^9 m! w - (SETQ PT13 (CDR (ASSOC 13 DS)))
- f( F s0 ^9 @$ R - (SETQ PT14 (CDR (ASSOC 14 DS)))
: K: o7 r# `2 B9 {, ~ - (SETQ PT10 (CDR (ASSOC 10 DS)))
% P7 B# N' X6 O8 r; x. h - (SETQ PT11 (CDR (ASSOC 11 DS)))
3 t( N7 s- k# H. u- V7 ?5 W - (SETQ N70 (CDR (ASSOC 70 DS)))
: ^! I4 X- f7 z* \% O% a - (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
( |6 u {' `7 @6 `, L - (PROGN5 J; H+ |6 K% K# T! y7 M2 ^9 V
- (SETQ GOCY (ANGLE PT10 PT14))" c" x( |; h) j2 j$ z- i: |, F& u$ z
- (SETQ GOCX (+ GOCY (/ PI 2)))
1 y3 o x1 s3 J: {+ R' Q7 R+ W - )
6 z# Q& N3 Q1 d. r. H5 e - ): R0 y3 l0 Q) c5 N4 c
- (SETVAR "OSMODE" 0)9 {; O+ E6 ~2 _
- (SETQ PTI (POLAR PT GOCX 2))
, V4 O" S5 j7 s5 d# U2 v5 V - (SETQ PT10I (POLAR PT10 GOCY 2)), S8 u1 m" P6 @3 m! V
- (SETQ PT10N (INTERS PT PTI PT10 PT10I NIL))
v1 g" K9 u$ T" a, I - (SETQ KC (DISTANCE PT10 PT10N))0 I- V' E0 g' a M3 K, A
- (SETQ O10 (ASSOC 10 DS))
6 h* c% w) A" u9 x - (SETQ N10 (CONS 10 PT10N))9 M" D' L6 e* ?: ~( j
- (SETQ DS (SUBST N10 O10 DS))- E2 E( b7 ^' |* C( P) ?6 O
- (SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC)): c. o0 n7 v# H% u$ p) A8 I3 w
- (SETQ O11 (ASSOC 11 DS))
S- X2 _# R# P( i/ O - (SETQ N11 (CONS 11 PT11N))( C8 S3 @8 A6 T" _* _* X
- (SETQ DS (SUBST N11 O11 DS))
1 K: Y/ @) _ x" [& n" ~: ~5 f F - (ENTMOD DS)3 h" S7 o: j2 |; {
- )
/ k' A: j& M" Q1 ]4 I - )' e- V0 c2 v% ]6 g/ V8 {
- (SETQ DEM (+ DEM 1))# }1 B0 @9 X4 f& F5 Z
- )
0 a! U6 C% T) t4 S& v2 U s" g, a - )& n9 C* ~' [- n& u0 _
- (COMMAND "UCS" "P")
# t! O4 {1 \9 p5 o - (SETVAR "CMDECHO" CMD)- [& _7 I0 |8 Z) a/ a
- (SETVAR "OSMODE" OSM)
0 [* m n1 ], |- ^ - (setq *error* OLDERR)
# h# W( S- ?4 r7 _, I+ [8 `$ P - (PRINC)
1 r- n- k- B& ~. A! s; R - )
% | x( I; A$ Z; y: m
) y3 e6 \7 e! G- ;;; ================ BAT - TAT CHE DO GACH CHAN TEXT (TU) =================) n/ Z# m8 ?, {+ i H* Q# `# {
1 g2 P' f( f7 o, u- (defun c:tu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can gach chan ")
+ z5 Z% `; T4 Y' P$ P - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p"); i. `- ?: o# W4 X
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt7 {* ^3 F P5 [. P
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
. J, f+ ?* N7 B. q! R6 ? - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%u")
' ]+ X* C1 R( F- X/ o7 Z, q - (= testxt "%%U"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%u" txttxt))), V+ V+ V3 [3 C
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))0 k( q: k! s9 k
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
@+ q, m8 H# j - / C" @( @& q- O9 d$ s5 V
- ;;; ================ CHEN COT (TUU) =================
6 `2 I# F3 Z# @8 o" }3 Q5 Q - + F. h0 t8 j5 `0 i @0 o
- (defun c:tuu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen cot ")
9 }9 I0 S: e$ J( l7 Z - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")5 ?6 B1 ~. a# E- ^ i e
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt) h/ M! Q+ d4 z" W/ v/ o! i @( c
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
( ^8 H- r/ }3 L& @& Z - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%p 0,000")
H' T* _: c( Q# N( `3 q$ F2 B - (= testxt "%%P 0,000"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%P 0,000" txttxt))): m4 E V5 `7 H. ]% L
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
$ c( \. e: [2 w5 G4 ] - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))/ w$ I" b2 K0 n) U6 x
- ! j: K# Z- @; ~5 e5 A3 ], m
- ;;; ================ CHEN KY HIEU THEP (TP) =================) @0 E. o: D, C9 |9 ^
9 f. e, @5 A( M( W5 m+ Y) G- (defun c:tp () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen ky hieu thep ")) e/ ` i) \( {
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")) {8 f3 D- g- Z
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
7 z, `' P' \! x - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt))). U: c: V& R3 t2 X* E3 z J( p9 B
- (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%c")8 D+ y' |8 p5 e! \# h
- (= testxt "%%C"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%c" txttxt)))
" l6 g" A- y, m) p, @6 { - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt))) N6 H3 q- v% e+ G6 Q
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
0 H7 B4 o* e h z( O+ V$ i
e' s# P4 a: e$ M" P7 b% F" y- ;=========================== TAM TUONG (TAM) =================================7 c4 {: a @' K/ N
- - \% V( r$ b) ]
- (defun c:tam(/ data_m)
! W- m0 ]" h0 n% _9 W; S9 g* x - (defun import_data(/ i)(setq data_m (ssget))(if (= nil distan_m) (setq distan_m 110.0))% p* w" z) l4 N
- (princ "Distance (")(princ distan_m)(princ "):")(setq i (getreal ))(if (not (= nil i))) H; x# \, m: t3 a0 ]8 {
- (setq distan_m i)))(defun process(/ ent check)(defun p_check()(setq check 0)' [' t6 E# p: q" d
- (if (= "LINE" (cdr (assoc 0 ent))) (setq check 1))(princ))(defun p_d_offset
! [7 Y5 F/ y; S0 `1 C - (/ p1 p2 p3 p4)(defun makeline(/ e2 e5)(setq la (list (cons 0 "LINE")(cons 5 (cdr" s: O+ N" g( } p" O) Z
- (assoc 5 ent)))(cons 8 (cdr (assoc 8 ent)))(cons 10 p3)(cons 11 p4)))(entmake la)(princ)" e; x5 s6 S$ H
- )(setq p1 (cdr (assoc 10 ent)) p2 (cdr (assoc 11 ent)))(if (not (= p1 p2)) (progn (if
/ x6 r6 E9 m0 V! k6 T2 n - (< (abs (- (nth 0 p1) (nth 0 p2))) 0.000001) (progn (setq p3 (list (+ (nth 0 p1)9 `* T ]! R% M
- distan_m) (nth 1 p1) (nth 2 p1)))(setq p4 (list (+ (nth 0 p2) distan_m)(nth 1 p2)
! E! w; E5 O0 e m - (nth 2 p2))) (makeline) (setq p3 (list (- (nth 0 p1) distan_m) (nth 1 p1) (nth 2 p1)))
6 ^8 o! {' X) L - (setq p4 (list (- (nth 0 p2) distan_m) (nth 1 p2) (nth 2 p2))) (makeline)))(if (<
* N7 z. ]# a, { - (abs (- (nth 1 p1) (nth 1 p2))) 0.000001) (progn (setq p3 (list (nth 0 p1) (+ (nth 1 p1)# S0 [* F# ]* `4 f8 ]
- distan_m) (nth 2 p1)))(setq p4 (list (nth 0 p2) (+ (nth 1 p2) distan_m) (nth 2 p2)))) ?0 W# s: N$ E) |0 v5 B- s
- (makeline) (setq p3 (list (nth 0 p1) (- (nth 1 p1) distan_m) (nth 2 p1))) (setq p4
8 D! p4 E! Z6 |7 C - (list (nth 0 p2) (- (nth 1 p2) distan_m) (nth 2 p2)))(makeline)))))(princ))(if (not* n6 {0 d* {0 C" ^% i. ^, ]$ U' ]! ?
- (= nil data_m)) (progn (setq i 0)(while (< i (sslength data_m)) (progn(setq ent (entget4 Z; \2 j2 b. ^% [# p
- (ssname data_m i)))(p_check)(if (= 1 check) (p_d_offset))(setq i (+ i 1))))))(princ))
0 Z# {$ ]2 r( Z' @1 l! [ - (import_data)(ai_undo_push)(process)(ai_undo_pop)(princ))
( u* K5 g" I1 @7 s. s+ U m - " w6 R; p& q& N1 R$ k1 W8 H9 h
- ;============ GHI CHU PHI (T1) ================
$ |% ^6 }8 _: r V- A - - C# R4 |: ^ a0 C/ s6 x3 _! z B
- (defun c:DuongDan ()(setq D1 (getpoint " Diem thu nhat: "))(setq D2 (getpoint "Diem thu hai: " D1))
! S; \9 e; Q0 t9 w - (if (> (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (< (car D2) (car D1)) (setq D3+ @" Z5 a; T+ c( q0 [! z0 |! b
- (polar D2 PI 16)))(if (= (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (> (car D2), y) R' t0 [1 W( W
- (car D1)) (setq D4 (polar D3 0 3.2)))(if (< (car D2)(car D1))(setq D4 (polar D3 PI 3.2); v0 c9 P/ }0 `4 {3 D
- ))(if (= (car D2) (car D1)) (setq D4 (polar D3 0 3.2)))(if (> (car D2) (car D1))
( `9 _# {+ G$ @8 B7 X - (setq D5 (polar D2 (/ PI 9) 3)))(if (< (car D2) (car D1)) (setq D5 (polar D3 (/ PI 9)
8 N$ c" [' |0 p" e# D+ s - 3)))(if (= (car D2) (car D1)) (setq D5 (polar D2 (/ PI 9) 3)))(command "color" 1) h1 m& B9 b6 t. h7 D( d( V l" X) O
- (command "line" D1 D2 D3 "")(command "circle" D4 "3.5")(command "color" 7 )( p+ E: u) W1 ?, e7 i/ B) X' Q
- (command "text" "m" D4 2.5 0 "1")(command "text" D5 2.5 0 "%%c6a150")* \7 T7 c( ]$ ]: o! ?8 H) U) Q
- (command "ddedit" pause))
3 O* ?) R* h6 f% {' M y - 5 W( M* h/ ^8 o% g
- ;;; ========================== Join (J) =================
- V& D5 V8 L5 C' O0 {, U% V - # b% f$ u' L1 d. a. @# K
- (defun C:J () (Setvar "cmdecho" 0)(setq m:err *error* *error* *merrmsg*)(setq sset (ssget))
/ g g% Y# X7 D: ?# ]% |6 r - (if (null sset) (exit))(setq kt (getstring "\nJoin all (Y/N) <Y> ? ")), n6 L+ ]# I3 ~% ?. z4 W# A! A
- (setq ssl (sslength sset))(setq temp (entget (ssname sset 0))etype (cdr (assoc 0 temp)0 S/ {3 s( d1 l1 ?0 d, |8 w5 ^
- ))(cond((or (= kt "Y") (= kt "y") (= kt ""))(progn (cond((= etype "POLYLINE")
0 Z+ L" d2 E/ D, g8 }" g0 O - (COMMAND "PEDIT" sset "J" "all" "" ""))(if (or (= etype "LINE") (= etype "ARC"))/ H1 C: K2 P0 ^+ j* ^$ O( Z6 K' v
- (COMMAND "PEDIT" sset "" "J" "all" "" "")))))((or (/= kt "Y") (/= kt "y") (/= kt ""))4 b" i/ s0 q4 V: p N8 o
- (progn (cond((= etype "POLYLINE")(COMMAND "PEDIT" sset "J" sset "" ""))
q1 y5 @3 x5 l8 y% { - (if (or (= etype "LINE") (= etype "ARC"))(COMMAND "PEDIT" sset "" "J" sset "" ""))))))
- k6 J6 j& S; r p - (setq *error* m:err m:err nil)(princ))/ a3 _0 S V7 u/ T5 R M; T
- ; E8 y2 R. C& h5 Q
- ;=====================================================================
4 u, M$ P8 U+ d - ;;; DOOR.LSP 1.0, Copyright (C) 1998 by CAD Department, HUCE.4 O1 C, e) e& f& R- W
- ;=====================================================================2 M" Y; Q, M$ ~
- 3 R2 A& K' }; P0 Z9 T
- (defun C:D1 (/ p1 p2 p3 p4 side dis wid ang angsile old)
3 e8 U9 d& [+ _. G( o1 Y: v - (setq old (getvar "OSMODE"))
6 `0 f/ \2 g) \
; n# t2 x: |/ k- m' S' l- (setq p1 (getpoint "\nStart point:"))
: k# e+ {! K* V/ R# A! O - (setq p2 (getpoint p1 "\nEnd point:"))
4 d1 g/ r' U' U/ } - (setq side (getpoint p2 "\nOpen side"))" r/ O" ^# Q# @# `. J& H6 a# I, P
- # `: E; y# M z5 z2 c8 t: R C
- (setq dis (distance p1 p2))( _2 _% K' J2 U( D: W3 q6 _
- (setq ang (angle p1 p2))# c- t3 d+ f# F. A
- (if (< ang (angle p1 side))4 N5 C2 r* {, @- j. J1 q
- (setq angside (/ pi 2) )$ W0 {9 w& c9 u7 ?5 {" j
- (setq angside (- (/ pi 2)))* C- z1 U$ W. q0 l
- )
6 E# _& F% V+ j& u0 j9 ? - (if (>= (- (angle p1 side) ang) pi)# v2 S- x8 d% p
- (setq angside (- (/ pi 2)))
/ u. E3 a; Y8 {1 x' D - )* A4 l/ E6 E- t
- (if (>= (- ANG (angle p1 side) ) pi)' u2 K1 w6 M% L% C
- (setq angside (/ pi 2))
% V/ ^0 T- C. S. h) L3 V! t - )
7 V8 o( {8 _5 E - * p! ~" `* J) }: K1 a2 b( I D
- (setq p3 (polar p2 (+ ang angside) dis) )3 R9 \3 S) [) v
- (setq p4 (polar p1 (+ ang angside) dis) ) E% n& ^2 ]5 s: D" H) L9 `1 ]" q
- (setq wid (/ dis 15))1 S% \% r# X3 W6 Y8 r
! \( f$ A$ k/ `/ ^; l" `8 C- (setvar "OSMODE" 0)$ [7 n3 N/ o4 v5 ~4 f \/ i
! K w5 w; }% r+ D) K) `- (command "PLINE" p1 "A" "D" p4 p3 "L" p2
0 E8 P6 e( K0 a9 a3 S9 \ - (polar p2 (+ ang pi) wid)
" l5 O1 l5 L& r - (polar p3 (+ ang pi) wid) # `6 H( B& N% o4 x9 T2 c- |2 g' ?# x
- "")! J, j. l# q. [' v
- , @; i8 G4 [, f( y
- (setvar "OSMODE" old)
; {7 W! G. B9 }8 V3 A - (princ), x5 T' ^5 _) l& w
- )
$ ~* U; x/ O/ n$ T2 m - 4 g7 _ E0 u1 ~* z. ?5 m
- ;=====================================================================
8 g7 h5 L0 {9 g
% I' `) Q/ b& m7 z- (defun C:D2 (/ p1 p2 p3 p4 side dis wid ang angsile old)
6 \$ o n- X ~5 w7 m - (defun cua1 (pt1 pt2)! M+ X1 U- p: G; Q* C# Q9 X. M
- (setq p1 pt1/ A: F) H! U: ?
- p2 pt2)
6 u9 R+ A# C1 c
# Q- o, j& S8 Z7 C- (setq ang (angle p1 p2))- i% K; ^8 Z' C; ^& o
- (if (< ang (angle p1 side))
- n' v) j0 P/ p0 z( D4 } - (setq angside (/ pi 2) )
; E0 W, S) L6 b+ Q8 ^ - (setq angside (- (/ pi 2)))
9 G6 Q Q+ u8 E1 {& \ - )
0 z! h! {" {, K' i; M - (if (>= (- (angle p1 side) ang) pi)
* B. G3 u" O8 `' m. c - (setq angside (- (/ pi 2)))
# x0 N1 h: m+ d) j2 F - )
' b$ F3 m2 {4 q" V3 | - (if (>= (- ANG (angle p1 side) ) pi)
5 {7 W- e! }4 x+ R m - (setq angside (/ pi 2))
3 l/ d' Y7 B! f0 S; I* O4 x - )! X( F7 l2 J, F& R
4 |/ g2 g, y& ]/ X- (setq p3 (polar p2 (+ ang angside) dis) )
$ C2 {9 b' W- c# I+ V. O - (setq p4 (polar p1 (+ ang angside) dis) )
. u% L* E$ K6 r$ h8 R' H - (setq wid (/ dis 15))
. d! F. ~! |5 H9 j( {3 a - ( t& ^" r f4 j0 f* l8 t8 E
- (command "PLINE" p1 "A" "D" p4 p3 "L" p2 ; C! P, E! H0 G. g: g
- (polar p2 (+ ang pi) wid) + i9 F3 O5 L: ~
- (polar p3 (+ ang pi) wid)
- U( x# i2 J7 r- [8 n0 b! ? - "")
' H, ]" @: H3 D$ z6 e - ) } i. ^+ P: `
- ;=====================================================================
7 g, w" B8 G9 K# C! j - (setq old (getvar "OSMODE"))
7 G( o4 _7 [7 G) j
. H1 @" }5 E7 [1 ]+ d8 M- (setq p1 (getpoint "\nStart point:"))
+ u" I$ Q) d! u/ k - (setq p2 (getpoint p1 "\nEnd point:"))
8 i+ ~+ A0 N) K6 E5 ~ - (setq side (getpoint p2 "\nOpen side"))
# |; Q& ~& L ]& h5 j% x2 w" Z; z - ( o( A! j7 |4 G2 p! X
- (setq dis (distance p1 p2))+ z' R9 A* ^1 F/ X* k% a
- (setq dis (/ dis 2))" ]+ y& B% Z" d2 n4 p2 q
- + g/ j$ Y2 `. T' ?% k& ^; ?
- (setvar "OSMODE" 0), j5 c9 e& A" C3 n
% a' r* t! C. T$ J) u- (setq p1 (polar p1 (angle p1 p2) dis))
7 K( J) d- W- e - (cua1 p1 p2)
/ l2 {" X/ w6 s9 o - 4 X1 U1 g: f+ C$ B: u
- (setq ang (+ ang pi))
# j' T5 ~7 }3 S. A3 A) A4 m. Z - (setq p2 (polar p1 ang dis))
! E2 \! ]% p8 U" U - ; (setq side (polar p1 () dis))( V6 o: N; Y- D, o' [5 G% ^
- (cua1 p1 p2) 4 r9 q# @/ ^% w5 m& k" ]
) X5 i' d. j% t7 M- (setvar "OSMODE" old)
% t) {5 H3 k3 @; c+ j- _6 C - (princ)- N6 a# N1 T+ s$ e
- )
+ ^5 s# k3 l" R' l - . m8 y9 w J2 Z1 p: u/ K: T
- ;=====================================================================
9 ~) I; c8 u. J - ;"Glue" text strings. All adopt first's properties.
" Q# F; t; [' r: x1 y/ l5 l - ; Author:6 y& S& l. W0 F& r5 t' N
- ; Henry C. Francis7 o) M: e' Z3 B. ]% F" }' a: ]* ~, R7 z4 z
- ; 425 N. Ashe St.6 i3 ]# H$ A( _5 {6 |( \
- ; Southern Pines, NC 28387
0 @$ `6 x% s8 q1 [3 P9 h/ K - ; http://www.pinehurst.net/~pfrancis. ?" k0 K& x% {
- ; e-mail hfrancis@pinehurst.net
6 {- K6 D7 |; T - ; All rights reserved.2 B3 `$ C5 o0 i3 g6 G
- (defun c:gst ( / ename ent1 ent2 old1 oldsl old10 old11 old40 old50 newstr newsl new1 new10 new11)
9 m, r* M, O5 n# H4 z - (while; J1 b+ o4 @) y/ S1 o1 f
- (not/ |% N+ S/ l- a$ b
- (and
0 [7 b9 Y. G* i# s9 F. ]/ f" u - (setq ename1 (car(entsel "\nSelect first text string to join: ")))9 @6 b: k+ R' @2 W ?" I; r- z" G$ E
- (setq ent1 (entget ename1)); _( d# B: n: k3 L3 |! F
- (eq(cdr(assoc 0 ent1))"TEXT")9 P4 a2 O8 {+ ], h* U z. q
- );and
9 K! b. g* M2 ]& A" Z+ n, b# O - );not
$ Z3 T7 T& d4 c, v0 ^, Q2 M5 g9 z - );while
/ |+ f" c4 K! z7 Z! m1 X7 C5 m - (setq old1 (cdr(assoc 1 ent1)))
: ]3 e7 Y$ s0 c/ P* U6 S4 x" l - (while7 D, z7 T1 L: P: \" W
- (not( `, T2 d6 ~1 f0 D7 V# K! o( T% F
- (and8 \* A9 g2 l- ]( }) S
- (setq ename2 (car(entsel "\nSelect second text string to join: ")))! U$ y6 c8 l6 i# E6 l' T: C
- (setq ent2 (entget ename2))
) O& C( ^- F& H4 D$ q; J# q - (eq(cdr(assoc 0 ent2))"TEXT")4 X3 K$ X( T$ @/ M9 S
- (not(eq ename1 ename2))& N# M3 |# ~! a Z1 h5 \
- );and
+ T5 c' B6 f( p" y" a b; l - );not
( |$ Q- I( A+ S2 }' z" c8 r - );while1 `. O( B, T/ O
- (setq old2 (cdr(assoc 1 ent2)))
" h9 c% s* f2 [4 d. z - (setq new1 (strcat old1 " " old2)
( ?5 r! J5 F. Z6 z - ent1% @6 n0 r7 t- d4 b# l
- (subst (cons 1 new1)- I/ [. C4 i5 `' |' Z% j a
- (assoc 1 ent1), V0 q0 o5 Y/ e, J$ q5 C. X
- ent1)2 v4 ~1 N. s9 i1 p3 _. i. t3 v
- );setq
1 h: r; u4 }, i6 z$ J+ X - (entmod ent1)9 ?9 I% N! G( M8 }
- (entdel ename2)
& q6 p! u( X! l: j - (princ)
7 F$ }* G" i' C: a) f- A - );defun
) m/ G5 }# H+ T4 c# o# @" T
4 j4 L W5 _- B- ;=====================================================================
^( x9 o" o& ?0 x7 z& {
& }! f3 H' O b4 m* a: T6 S- (defun c:nt (/ g1 g2 ss1 olderr nterr l i temp e1 e2 new old dd dc)+ O/ _/ e1 o) B% N4 S$ X9 H2 P
% J; P% l5 B1 N, J- (defun nterr (s)0 J+ |0 x) N2 _ y K1 S4 w
- (command "_.UCS" "" "_.UNDO" "E"). R) Z! [8 }! q; }- Q8 p$ n8 _
- (setvar "cmdecho" 1)
9 d( K3 f3 ]) _8 r2 c - (setvar "blipmode" 0)
7 L8 r0 o2 _1 P$ E, f0 K* t - (setq *error* olderr)
. W/ L3 L- p/ Z [$ h5 } - (setq g1 nil g2 nil ss1 nil e1 nil e2 nil olderr nil
+ O* _" n' v* x( x- |/ p* K# F - nterr nil temp nil i nil l nil new nil old nil dd nil dc nil)2 V) K& _; b/ i4 _6 Q6 u3 v/ z
- (princ)
1 i& P6 l: {$ i9 {+ ?: g6 q6 w - )6 h& U7 Y" M J
- ' |* l% t0 v" ~/ N6 m7 q
- (defun tim_in (dt / p01 p02 ktra)$ n5 M j+ n1 V/ i: q( O
- (setq p01 (cdr (assoc 10 (entget dt))))
6 V" V- }% h* u" ~1 n - (setq p02 (cdr (assoc 11 (entget dt))))
/ e8 Q7 C% L4 I6 z4 _: T - (setq ktra T)
1 q' |4 M; Q/ q# p% F! d0 X - (if (and (> (car p01) (car g1)) (< (car p01) (car g2)) ) C9 B2 `# Z6 [. v
- (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2))). r k4 Z0 L+ h
- (setq ktra nil)
* W, n2 @, |8 k4 H* b& ^ - )
1 ^) d8 u5 c* Q7 k1 }/ u - (if (and (> (car p02) (car g1)) (< (car p02) (car g2)) * \7 @5 D" Q$ u$ A
- (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
W6 ^9 u& J" Z6 X/ v, ^( K - (setq ktra nil)# ?0 f' g8 |7 ]% J5 D
- )9 ^- }/ u$ `; C& R2 K
- ktra) ~# Z, h0 {! d( f
- )
; R, `# Z4 m5 |: x
3 Y4 Q( t6 y, P- o$ K9 p; L- (defun timdt (dt1 dt2 / p01 p02)- }) a6 i$ g! ^' [$ Z, _3 F8 b6 W2 E
- (setq p01 (cdr (assoc 10 (entget dt2))))
" j9 Y) [' p6 o! B( ` - (setq p02 (cdr (assoc 11 (entget dt2))))
; K: q7 M }9 z$ e - (setvar "ucsicon" 0)0 q& I* F) N$ L& v9 M. E# b8 w( u
- (command "_.UCS" "E" dt1)
0 c! }/ M0 s: x" M - (setq p01 (trans p01 0 1))0 K6 g% N9 d) K! J! ~( ~
- (setq p02 (trans p02 0 1))5 D# X$ @. m; W6 G; y- c( q
- (command "_.UCS" "")6 @( N* T/ _& Q* k# V2 I
- (setvar "ucsicon" 1)6 v+ M3 X* M* }. d
- (if (and (equal (cadr p01) 0 0.001) (equal (cadr p02) 0 0.001))
; j; `3 @5 q5 {+ c. e( o+ p) N - T
" _% x1 I9 W n* s) H& R& Y - nil! T9 w) w9 Z1 e9 F
- )
6 |3 e. L4 e( R+ W8 [% z1 K - )8 u' a5 j, D/ ~: n4 @0 e& K
- 3 f4 a, t3 {5 O) [* c7 `% Y! w
- (defun tim_out (dt / p01 p02 kt)8 N" u$ V, F* s" x% ^( \
- (setq p01 (cdr (assoc 10 (entget dt)))) U/ s4 F% w/ x
- (setq p02 (cdr (assoc 11 (entget dt))))8 R8 K7 u% Q4 A+ l( |" H1 m
- (if (and (> (car p01) (car g1)) (< (car p01) (car g2)) : l. U W5 V( N2 ]
- (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))4 ^" E3 r2 u3 d- \+ X$ k% C3 j
- (setq kt p02)
7 a7 O( n+ _8 P, B - )0 m. v( ?, F p; Z! X
- (if (and (> (car p02) (car g1)) (< (car p02) (car g2)) ; A" V4 Y7 o+ ?. V' F( x) n! d O
- (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
+ r2 ~8 d+ j0 W5 r' N4 y - (setq kt p01)4 P q& P: ^! L# `5 F
- )6 `- V" t& y B) p. I
- kt
/ n9 z/ c' d4 H3 Z - )
* `9 {, G8 m' V3 v1 G9 U - ; }0 x. e/ e; \! j% S* n
- (setvar "cmdecho" 0)9 @% `: @5 s7 v0 ~ h1 `
- (setq olderr *error* *error* nterr)
* ?/ G! q9 H- _/ m G! {, ~ - (command "_.UNDO" "G" "_.UCS" "") t5 ~. ]9 c$ I1 w5 `/ Y
- (while (null ss1)
/ I' X" E1 M# y$ n1 |) E - (princ "\nChon tuong muon noi..."): p, F0 u# G2 H( I- M3 C' u
- (initget 1)5 v7 Z! z$ o- I9 S; h
- (setq g1 (getpoint "\n>Goc thu nhat:"))
: t0 g7 Q+ ~5 _8 ? - (initget (+ 1 32))' q. G& W+ l/ H: p1 R8 }1 m) o
- (setq g2 (getcorner g1 "\n>Goc thu hai:"))
. b' _/ H2 k% }) ] p' w5 V: m - (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))1 E5 [0 c9 p6 u- A8 J! N
- (if (null ss1) (princ "\nKhong tim thay doi tuong!"))' f* H5 c) c* r
- )' J; W l! }9 R4 d
- 9 h* A. m: f( V" E6 {: u
- (setq temp (list (min (car g1) (car g2)) (min (cadr g1) (cadr g2)))
( Q" Y1 Y2 I) |( |3 R) L9 L7 B5 X* \ - g2 (list (max (car g1) (car g2)) (max (cadr g1) (cadr g2)))
w9 o! h) `$ l1 H$ j& Q F/ ` - g1 temp)
4 {; u3 \) ]" C4 D5 G. o - (setq ss1 (ssget "w" g1 g2))* x% ?. C' R% |* J
- (if ss1 (command "_.ERASE" ss1 ""))) T6 a/ ]1 O0 C( x% ?
- (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))/ Z( i0 Z0 R! Q$ g
-
4 r) u8 z. P4 P+ Z8 x" e: I8 C4 Q - (setvar "blipmode" 0)* H* ^9 j$ R5 L
- (setq i 0 l (sslength ss1))1 u- B8 Z( d7 J# y4 l$ L
- (while (< i l): G* u) u* \( v3 _3 ? f! Q
- (if (tim_in (ssname ss1 i))
; |! h0 ~; P1 c& _& L- p1 |+ n - (progn F, V# l% z' A( \
- (ssdel (ssname ss1 i) ss1)' b. H5 H+ J/ @ x/ y5 x
- (setq i 0 l (1- l))
3 g& F9 ~! R$ K( E9 N& H# G - )
9 W8 A/ I/ R8 W" N9 _" i - (setq i (1+ i))
% l# o7 G8 S% r) P' p - )
0 e0 @& w6 A1 \; _8 E - )
8 f# Z- L, t4 y( A - (setq l (sslength ss1))
! g6 c2 Q. ?3 ^3 O. W - (while (>= l 2)
) x1 A8 E4 B0 B2 ^1 Z5 N* K! n - (setq e1 (ssname ss1 0))+ c* e5 v) v4 M* s* x; G
- (ssdel e1 ss1)
: d$ x: G, U$ Z# o - (setq e2 nil i 0 l (sslength ss1))
- _- Y) T$ U0 O0 L - (while (< i l)
* `0 g1 T' \) o0 l& O; B O: n - (if (timdt e1 (ssname ss1 i))
% v. ~. p* r9 h - (progn
8 Q3 d7 ~, E! i9 ~5 x2 A+ Y9 l# A$ Y - (setq e2 (ssname ss1 i))
& V; J+ X9 _: n W - (setq dd (tim_out e1))
& u* r9 O6 a u) [ - (setq dc (tim_out e2))3 Y! i: D/ b) h" @5 r& s5 c' c
- )
% B/ U3 ?7 {& y6 k" H - )
* ?* G" {8 q( A) r: U1 V0 _, x - (setq i (1+ i)) q% h, r" q! I: A# H! P1 s) _9 M6 f4 f
- )' h% s1 H4 z: u# y7 m+ b
- (if e2 (progn
: |! s5 @% I% r9 n - (ssdel e2 ss1)
' e+ l% M e$ ?" ] - (command "_.ERASE" e2 ""): m& Q4 x( d9 e6 ] d" h/ u
- (setq temp (entget e1))# m C! F: X9 j$ y
- (setq old (assoc 10 temp))+ r% d6 G' S( B7 N* s1 `" k
- (setq new (cons 10 dd))6 x0 I) z$ x- I+ O* S! C
- (setq temp (subst new old temp))- j/ }0 n7 M. X b; x- P( e4 g5 p
- (entmod temp)$ p- g% ~6 w9 D" q3 I4 A8 ]6 Q: z* t/ m
- (setq temp (entget e1)) \; x7 n" h9 I# u: @/ G7 t
- (setq old (assoc 11 temp))
, H* j/ j& ^4 s% K - (setq new (cons 11 dc)): d" _; F" @+ B
- (setq temp (subst new old temp))
V7 j8 D: `$ U! p" f& N4 D- L( m - (entmod temp)/ n/ e, u& M5 z g% p; d" D, m; }
- (redraw e1)! `& C) I. h+ u' ]/ A& Y$ i
- (setq l (sslength ss1))
+ F1 E$ g/ W* K; r - )
% b3 i) z) f6 r7 N0 B - )6 l# e3 G4 S9 O0 t
- )
% ]7 ^* @; n7 G1 P$ E
# q% T+ H7 p3 ^) _: t% V8 _- (command "_.UCS" "" "_.UNDO" "E")
$ H, k. a* i* x J: k" ?% S( o - (setvar "cmdecho" 1). T. |* X4 Y/ m1 R* p% q
- (setvar "blipmode" 0)! A. e( Z2 d% m; G5 t# v
- (setq *error* olderr)
- |' ~& [! ]. Y; K& y5 P- o - (princ)2 }2 e% s3 u! {$ A' X
- )
1 z+ V! a! n: V+ [ - ;*********************************************************************
$ A0 s) g5 t" Y - (defun ketthuc ()
, i) i s5 U7 B G, ?. @$ ? - (setvar "cmdecho" luuecho)
" E' l* @2 Y5 D2 _" } - (setq *error* luu/ @( P* _6 X8 Q
- luu nil 2 W6 x. J$ ~: o) u" {) d+ n2 s
- luuecho nil
/ R2 W+ V9 ~ h) K+ M - );setq
4 n3 `# T7 X% [/ Y t- [- i - (princ)
9 }% S8 K* D" T% u) Z5 j6 { - ) % G( f) V9 o. l# P, R; E
- ;*********************************************************************) l1 [2 w& h5 w
- (defun modau ()7 v$ X8 Z3 o2 O% R4 r8 F
- (setq luu *error
4 \/ g/ {' h; L7 _. q+ T - luuecho (getvar "cmdecho")
. K/ ]2 P( W4 G: l! y, @& B - *error (ketthuc) a7 H+ ?* K' r T7 G6 Z+ i
- )
2 ]) k2 r1 z! ^+ z2 B0 F6 t" X+ A - )" o: H, z) @4 I5 [* U ]" ~# V
- ;*********************************************************************
" x% [; t' Y8 m - (defun xulytext (text / kytu ma sokt luusokt lui )
, }+ `, [* b1 G2 l0 f/ {1 }1 q - (setq kytu (substr text (strlen text))
/ R6 Q/ u4 h" K - ma (ascii kytu)* y/ z$ \$ c3 ^ D
- sokt (read kytu)
4 P( s8 i4 J7 c3 ` - lui 1
6 V" d! T3 U8 Z g O2 ^ - )
" e, @6 D" C0 c9 i8 k8 M/ } - (if (numberp sokt)# Q2 f5 T- I, U" s) ]8 ]* P; z
- (progn
, p9 X- z9 n% N0 o0 g - (setq luusokt (1+ sokt))$ J8 ]4 L9 \$ k+ m4 i, l( X" a
- (if (and (numberp sokt) 3 R) U( p6 x2 ]1 p) a# t7 O
- (> (strlen text) 1)
" ?; O g' H4 `! \& X - ) 0 n) _+ l& k4 [% z# |
- (progn' l- E3 m, q8 H# O0 o
- (setq kytu (substr text (1- (strlen text)))
, j9 W0 P8 w& T& N. l9 g0 t - sokt (read kytu)
/ O) t$ a6 s+ {$ \" Y - )9 S+ k- U0 [$ w( e* d
- (if (numberp sokt)
3 Z5 K6 h& E! b9 E8 l* H5 w- W - (setq luusokt (1+ sokt)2 B/ D; U8 ^: O/ g5 }
- lui 2
S# T3 j T# N: k% b1 Z5 h2 W
" G$ ^2 l- f2 S9 X- )4 c6 i' v2 K' d% n
- )1 e2 A- J0 J4 E4 K* D, Q5 _# W
- );progn
8 l& W3 k, `5 K) |/ q/ b - )) r4 o7 |' O4 S+ N, w- k$ @
- (if (= luusokt 100) (setq luusokt 0))/ K; `! w$ O, k, M' z ~
- (setq kytu (rtos luusokt 2 0)
) z9 j' M8 A; q+ }" x - 2 N! x3 Z* H3 G/ Y+ @
- text (strcat (substr text 1 (- (strlen text) lui)) kytu)
7 b0 x G( p( e! \( s5 } K# k8 Q - )
8 | c) r( G5 d- P2 G5 d- E- E3 u - );progn ; E6 s _# R( C& z. ~ K
- (if (or (= kytu "z")7 A6 ]# N* a# b
- (= kytu "Z")
- O1 g0 G" ^$ o' c% V - ) n/ n, |4 M- t& }9 f( I
- (setq text (strcat text "0")( d3 M. j. S% E
- textxl "0"- J, b ]' Q+ l' |1 S0 _& N
- )
2 Y; x, O% X4 G$ q4 m/ u - (setq ma (1+ ma)/ m9 @+ p0 Y0 N2 l, l
- text (strcat (substr text 1 (1- (strlen text))) (chr ma))
& S& x. Q2 l, b' c+ U" O. H1 ` - ), X) g' {5 e9 d: C$ P
- );if
) _. w: ]& v; s @0 m8 h$ ^ - );if
" u2 E, Z3 H0 J/ { - )1 P2 [6 y! L+ w# U' D
- ;*********************************************************************
3 @) v; W& s+ O1 B. w% D. P - (defun doitext(tendoituong / chuoi doituong thoat tam dsach kieu text vitri10 vitri11 dem canle); M, K G+ r+ I+ [
- ;Neu doi tuong la text thi tiep tuc
" N0 q4 E( x. e- h% u% N8 k - (setq doituong (entget tendoituong)
2 n# U8 Y' f; P; H8 B$ ^+ Y5 n - kieu (cdr (assoc 0 doituong))
. K1 p" X7 E" k6 Z - canle (cdr (assoc 72 doituong))! d2 b* Y) d) D
- )
9 c0 U3 y7 c( Z- ^; [ - (if (or (= kieu "TEXT")
9 C# v T1 _4 V, T5 j5 C - (= kieu "MTEXT")
0 X6 }* n. A" s, `8 h - ) ! p8 y* F/ w6 [3 R6 S
- (progn5 E" J# l0 l, t2 P4 K
- (setq textxl (xulytext textxl)( [! [/ Z) L1 |- x
- text (cons 1 textxl)6 B/ V0 J9 j2 ]
- vitri10 (cdr (assoc 10 doituong))
+ a) t9 ~5 A6 p& x1 ? - vitri10 (list (+ (car vitri10) (car vitrilech)) (+ (nth 1 vitri10) (nth 1 vitrilech)))
2 D" }& C4 @7 t - vitri10 (cons 10 vitri10)
" k4 [7 [# Y* | - vitri11 (cdr (assoc 11 doituong))
' `3 v( l, U0 x- A+ x' W - vitri11 (list (+ (car vitri11) (car vitrilech)) (+ (nth 1 vitri11) (nth 1 vitrilech)))0 b, \5 m* R+ r. Y
- vitri11 (cons 11 vitri11)
8 W5 T H1 _' m" ]% F. C0 J% b& P9 S - dem 09 a, x* {$ I; r5 J7 o* X2 m1 `/ O3 W F
- dsach nil" x/ \9 N9 j% z# ^5 F5 p) P0 `
- )6 R4 W3 w9 X" b+ N! l9 T b0 R
- (foreach tam doituong
& [8 ]/ _& X+ \! t# S6 w - (cond$ N* e9 z% ?/ o! y3 _
- ((= (car tam) 1) (setq dsach (append dsach (list text))))* u1 u9 B+ N* z' {( G: U
- ((= (car tam) 10) (setq dsach (append dsach (list vitri10))))
3 L& o5 C& [# t; X0 I! B - ((= (car tam) 11) (setq dsach (append dsach (list vitri11))))
0 P' g' D; B0 Y* O5 v( B2 Q9 d' Z& o - ((setq dsach (append dsach (list tam))))6 P' u8 m/ I) w# b3 F! O, n4 @& V
- )
0 g4 x, q- F7 k; y# b5 [ - )
$ \! Z, l- B- b+ R/ k$ d! S' o - (entmake dsach)
) E X0 i' b# H: B+ \ - );progn+ F C7 }9 `* G% Q# a( @& _
- );if. D) I( L Z+ w+ O/ F% n- P9 S
- );
6 }. k$ @7 \' n2 e% V - ;*********************************************************************
* a2 e3 X5 c$ ^5 l6 i# v. T( ~ - ;sao doi tuong cu sang vi tri moi
: D; _! p, E/ Q: _
" P9 s8 \" ?; F3 w- (defun copy_dt (tendoituong )5 f( U$ ~1 o8 y. p- ?6 K
- (command "copy" tendoituong "" goc toi )) N0 F9 i& ]( F1 `3 e1 j% r
- );defun
/ V7 Q5 r% s' K1 k+ X
7 O ]6 e/ Z5 I& ^7 d- ;*********************************************************************0 [" c. k2 w% ^6 N
- / n' y6 t M2 \* E' \
- (defun c:ct ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
1 z" g* S: S8 o! c# H1 u - ; Khoi dau cua chuong trinh4 W9 L9 e$ u* G% ^& W& h/ T
- (princ "\nCopy Inteligent...\n")8 L C7 n# ]% A+ k! C+ V8 h
- (setq luuecho (getvar "cmdecho")
! h8 t9 b; p( j7 J+ c D - luu *error*
% y0 H* x' o6 ]' Q1 c6 M# P) Y - *error* ketthuc" x7 t( G, ?/ j; \7 j- M! g2 @
- cumdt (ssget)7 R5 m/ O+ r/ Q/ ^. e/ G# k4 O$ I( K1 E
- dodai (sslength cumdt)3 P/ S8 M# P( ]/ t: B
- goc (getpoint "\nSelect base point:")4 l9 a# J% O+ N$ O! h2 q
- thoat nil
; T) ]( Y) d) J% a' p - dem 0
h6 e! g* n! Z# ?( R" o1 ]0 H% Y - textxl nil- b! P( t* W$ c I; s q
- );
' R/ m% W# Y0 c$ \/ ]1 R7 y - (setvar "cmdecho" 0)
* ^9 v2 P' x5 i. n. B" N - ; Loc ra duoc ong text de xu ly
7 u5 ?. W. _+ d' ` - (while (and (= thoat nil)% g3 J9 G- G5 T" ~ ^3 G z
- (< dem dodai)
# w8 P( @% \ f; v1 { - ) J4 l$ w6 }% C/ a+ h
- (setq ten (ssname cumdt dem)- b7 M; Q" q9 b) G" V
- dem (1+ dem)% |4 D7 I; N) S! `7 k: s1 ]
- doituong (entget ten)9 a! Z& g7 o( s' ]( J
- kieu (cdr (assoc 0 doituong)) + L& [: }5 ~8 L- H; a) D
- )" r7 N) i; U' S6 @5 B- \8 @
-
) {5 }! f7 d3 W* u4 E* g - (if (or (= kieu "TEXT")
8 }/ x8 o9 }* n/ R4 O" \( D - (= kieu "MTEXT") ! V' f* B4 L4 c) A! B
- )
; i. r( B: b$ s$ z* S - (setq thoat T
0 z- ^. m# u' I" F' ^% i6 p6 g - textxl (cdr (assoc 1 doituong)) ! \4 z B3 q" J; K/ P7 w# ~& j
- )
# U6 ~" @ \3 O! I" u& q2 w3 ]$ [ - )
# t/ t8 a% s6 B+ I1 D+ v# J' X9 u - );
# E; ], A0 {6 D9 u) D( e - (while T
9 S, S2 ]6 ?5 F* L( K - (setq toi (getpoint "\nSelect next point: " goc)8 x" F- N$ g7 a, ?
- vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
3 @1 z6 V8 m# P: O- k- W3 i$ d- D" B - dem 0
% V" t" z: a7 O - )" P4 M- }1 E$ | M g, [
- (while (< dem dodai): \: l+ ` v, e! X, T
- (setq ten (ssname cumdt dem)( M0 q& U$ E8 s3 Q& R# G! \
- dem (1+ dem)
* s8 u7 j1 p* U t3 C% ?' _ - doituong (entget ten)
$ T; G# {& J+ ^3 @4 I! r - kieu (cdr (assoc 0 doituong))
$ F Z( ~" X. P# C$ Z - )
# V) d, D3 i0 n
: q: S5 x# R, A! g- (if (or (= kieu "TEXT")! B6 y6 l% C4 _3 o. l
- (= kieu "MTEXT") & p, M5 V0 m4 H
- )
& H1 t, z6 ^4 |0 ?1 p - (doitext ten)
7 c \2 o4 M) u4 u - (copy_dt ten); w/ [! M+ t' @ v! v1 i
- 8 R, j6 E* E, C3 p5 X1 G- x: [' c
- );if
, g7 R" F: a1 P5 }1 S1 H! {7 | - )
+ J/ f3 N; q, J& G) X - );while
$ x6 \) G& F5 O- Y - (ketthuc)! P* o0 a& Y0 s0 C9 m
- );defun( z |, S+ h4 p0 `' f
- (princ "Type \"DG\" to start")
& [# J W B2 y& O! [) J4 Y C" ^ - ;Note: bien toan cuc: textxl vitrilech2 J5 n6 ~# ^* G; C
9 l# D/ }, _) v2 N- ;=====================================================================
5 |/ S- B" \, b; K - ;;; PLJOINFUZZ.LSP! |: M! j6 g! X9 z4 K& v. Q+ H2 S
- ;;; Joins lines, arcs and polylines using a fuzz distance4 [0 P( L3 s& ?6 s Q! p
- ;;; If only one object is selected it tries to join to all objects that are possible
1 M# J4 `8 ?% M4 ]9 H" B - ;;; By Jimmy Bergmark( b7 X( i0 k6 x
- ;;; Copyright (C) 2003-2004 JTB World, All Rights Reserved
5 p Y1 m- t3 M. y. R2 a - ;;; Website: www.jtbworld.com
( ^ k5 `. m/ h# `3 K; {# v - ;;; E-mail: info@jtbworld.com
/ x" E# u6 X+ k5 }4 d" R - ;;; Tested on AutoCAD 2002,2004 and 2005
c. C! N2 R; a4 n, G% B; U3 z) F - ;;; Latest revision made 2004-11-11
# {+ T5 g# `2 [3 e! K; j7 |: r, u7 q* h - ;;; Minor code cosmetic change made 2004-11-13! r! [; K$ j" n7 X" V, i
- ;;; Bug corrected 2004-12-23
% r* [1 l) W+ _7 h* h( N1 F
3 ?5 i3 \) O5 \4 D: q6 N/ Y, l- (defun c:jf () (c:pljoinfuzz)) ; this line can be commented out if there is an existing command called jf
4 O' \2 X( X4 I# T - (defun c:pljoinfuzz (/ ss1 entLine objType oldcmdecho oldpeditaccept fuzz okObjects)
8 c: S+ W$ o7 ~+ `. v& u - (setq oldcmdecho (getvar "cmdecho"))1 U' Y4 j9 W% G% c6 T" P9 Z
- (setq oldpeditaccept (getvar "PEDITACCEPT"))' _% v+ {, O5 U) |/ m3 _7 ~
- (setvar "cmdecho" 0)
6 l# {- U# T% c2 _ - (setq A2k4 (>= (substr (getvar "ACADVER") 1 2) "16"))( i C- @% @/ l a5 o7 Y$ Y( j/ q' N
- (if A2k4 (setvar "PEDITACCEPT" 0))
3 D- h% L6 A* o: _. f% M - (setq okObjects '((0 . "LINE,ARC,POLYLINE,LWPOLYLINE")))
7 ]! u% w/ b. r" n7 q- F - (princ "\nSelect object to join: ")7 V$ n9 n9 f4 R
- (setq ss1 (ssget okObjects))
0 L; n j: q+ }5 t8 E - (setq fuzz (getdist "\nFuzz distance <0>: "))
/ F7 h" [: Q+ u* q - (if (= fuzz nil) (setq fuzz 0))
" Z( q* q; g, l9 I. a: S9 O8 P; M - (if (/= ss1 nil)
3 F; P$ T& f$ v: {1 Y - (progn5 g( ?, S5 d* ^3 g4 U
- (setq objType (cdr (assoc 0 (entget (setq entLine (ssname ss1 0)))))). z6 a' d p1 n% O
- (if (= (sslength ss1) 1) (setq ss1 (ssget "X" okObjects))); Q- w5 W2 a0 x# M6 d
- (if (member objType '("LINE" "ARC"))' E* F( U/ @2 y* R9 e) A5 F$ @4 @
- (command "_.pedit" "_M" ss1 "" "_Y" "_J" "_J" "_B" fuzz ""): ]* a- {; D0 n3 f: j5 J
- (command "_.pedit" "_M" ss1 "" "_J" "_J" "_B" fuzz "")
' O- `# l' F9 P9 }5 i8 W# j6 A - )
7 a- ~: M- u% R* s5 ^; B - )
2 y& p- _2 ?, i3 v1 [) K' c - )) d. g( \8 _1 S9 }( O
- (setvar "cmdecho" oldcmdecho)
4 P; {3 b" h7 x) X - (if A2k4 (setvar "PEDITACCEPT" oldpeditaccept))
$ m! W- b2 w, H3 p# Z+ h - (princ)
: j- O* o7 e" `9 p) y% M - )& B. _( K/ B' `0 E' t# x' ]. ]
7 i5 E( \' D S1 M7 y- ;===========================VE CAO TRINH===========================
: ~% b7 m+ ?- ?1 a- P# Q - / {9 Y. p6 L! N3 B2 z# j
- (DEFUN C:Cotcao (/ CMD PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 NPI TX DX DY TL OSM OLL
: ^ |# ~# T" `; x- H t& ?7 J - CRST RSIZE TSIZE STR PRMT FCH NBC OLDERR)* G# G+ W0 E. _9 w, r B: c
- (SETQ OLDERR *error*
. j- r4 o d% @" B* E" M- O - *error* loisb)8 `. t# e$ M6 M$ b- g- G
- (command "layer" "m" "dim" "c" "" """"), h3 f( c% O. z* o
- (SETQ CMD (GETVAR "CMDECHO"))
$ m8 s. r% G: e( D) ^/ n6 x - (SETQ NBC (GETVAR "CLAYER"))
! z/ \9 [& N3 W* q - (SETQ OSM (GETVAR "OSMODE")); |6 }% V; y# ~' x5 `6 T
- (SETVAR "CMDECHO" 0)# z# Y9 L5 ^. A& j" A0 E2 }& a
- (SETQ PT1 (GETPOINT "\nDiem cao trinh:"))) ^& }+ b! _" D0 {3 ^# D0 [
- (SETQ TX (GETSTRING "\nCao trinh:"))
' O* f/ ~6 r* h+ u6 N0 H5 X0 \; N. D - (SETQ FCH (SUBSTR TX 1 1))! T( F4 t3 Y' M5 H2 ]
- (IF (= FCH "@") (SETQ TX (STRCAT "%%P" (SUBSTR TX 2 (- (STRLEN TX) 1)))))
7 `$ ^ H! J7 ` N6 Y* P! k# }; {+ R - (SETQ CRST (GETVAR "TEXTSTYLE"))5 N( I$ O" O; }" i. Q
- (SETQ RSIZE (CDR (ASSOC 40 (TBLSEARCH "STYLE" CRST))))
0 A8 g! f2 h. ?3 j - (SETQ TSIZE (GETVAR "TEXTSIZE"))9 }& N+ C# ^' T7 g) @
- (SETQ STR (RTOS TSIZE 2))
2 Z8 Z V8 }4 R0 }+ Q0 Q8 l - (SETQ PRMT (STRCAT "\nText height <" STR ">:"))+ I1 D+ W" e6 u
- (IF (= RSIZE 0)
9 o3 a% N% F6 Z8 l - (PROGN# i+ X0 h- Q1 m5 I1 d" n& A: _
- (INITGET 4)
3 r' U2 `2 t" ]' l* a' w5 {* r0 b4 L - (SETQ TSIZE (GETREAL PRMT)); \" G5 C3 p/ o, w- v+ r0 ^6 X
- (IF (= TSIZE NIL) (SETQ TSIZE (GETVAR "TEXTSIZE"))- q5 ?" l# c1 z
- (SETVAR "TEXTSIZE" TSIZE))
% Q* r8 }0 G. E5 U& K& u) ] - )
) { d! r# q5 q5 A) A - ). ~# Z* ^5 Z, j N% V0 b) ?
- (PRINC)' t" X2 q) q1 L) v w$ z8 { V
- (SETQ TL (/ (GETVAR "TEXTSIZE") 2))6 E8 K' ^5 e; |7 [ _" x
- (SETVAR "OSMODE" 0)8 B- K9 S3 l- z6 o% _* o1 D- L% Z
- (SETQ DX (CAAR (CDR (TEXTBOX (LIST (CONS 1 TX))))))
. R$ E; F) v3 e+ _# O7 }( X6 h - (SETQ NPI (/ PI 2))
% l, P2 ?' [" b+ V - (SETQ PT4 (POLAR PT1 NPI (* 1 TL)))
2 ^! v& C& i- c+ p - (SETQ PT2 (POLAR PT4 PI (* 2 TL)))
8 X, e! j8 I5 n8 q' y) i - (SETQ PT3 (POLAR PT4 0 (* 2 TL))). C5 G9 Y$ y0 }, b9 ~
- (SETQ PT5 (POLAR PT4 NPI (* 5 TL)))% ?4 {' v2 [& J- H& g: G/ a
- (SETQ PT6 (POLAR PT2 NPI TL))( p2 o$ O5 Q M( W, ~: |% {
- (SETQ PT7 (POLAR PT6 0 (+ (* 3.7 TL) DX)))
" D3 E& Y7 T; ?. k) H - (SETQ PT8 (POLAR PT6 NPI (* 1 TL)))
4 E( `7 d7 U! h- ~ - (SETQ PT8 (POLAR PT8 0 (* 2.5 TL))): I0 r0 c1 u& t. I+ N5 K, H
- (SETQ PT9 (POLAR PT1 pi (* 2 TL)))
* |9 `+ E) Q; B7 u - (SETQ PT10 (POLAR PT1 0 (* 2 TL)))
8 Q& W3 F2 {; M( x: S+ P - (COMMAND "COLOR" "7" "")
# o0 `# o( r# x" g! ]* \' N& Z$ \& L - (COMMAND "STYLE" "COTES" "Verdana" "" "" "" "" "")
8 f. S5 b+ E3 |- ^0 ` - (IF (= RSIZE 0)(COMMAND "TEXT" PT8 TSIZE 0 tX) (COMMAND "TEXT" PT8 0 TX))8 S# E! X1 {, A( _1 E
- (COMMAND "COLOR" "BYLAYER" "")
! V" X. m3 Z$ Q( {; Z - (COMMAND "SOLID" PT1 PT2 PT4 "" "" "pLINE" PT1 pt3 pt2 "")# H- w" x" L) o- Z7 s0 y# ^
- (COMMAND "COLOR" "BYLAYER" "")
: t$ R) e, K8 x' s0 v# U6 [4 l - (COMMAND "pLINE" PT1 PT5 "" "pLINE" PT6 PT7 "" "pLINE" pt9 pt10"")5 M9 p1 O1 K4 U' s A3 j6 z
- (SETVAR "CLAYER" "0")
# K, y+ }1 G, t. P' {5 e" `- r - (command "ddedit" pause)9 q/ V5 G1 [- k6 F
- (COMMAND "COLOR" "BYLAYER" "")
2 T8 m* I. @1 u$ N) }2 ^ - (SETVAR "CMDECHO" CMD)( n( o1 N; d+ D/ x" r
- (SETVAR "CLAYER" NBC)
& }: `2 t' ~$ W; w/ l v# ? - (SETVAR "OSMODE" OSM)
% D4 v9 D( J/ R/ c6 V( s - (PRINC)
; T' f2 \( t! S - )
9 t; S" ~% `2 K' C
3 e6 N+ _) Y' o- ;;; =========================== VE NET CAT CHEO (GC) =============================3 L6 w: a4 |3 L( u* a9 [) O; B: m; G
-
. @& p) z5 I; i, o2 G - (Defun c:G1(/ p1 p2 p3 p4 p5 p6 p11 p12 l ang); {$ z& v7 N0 G) E
- (setq x (getvar "osmode"))0 ~7 p* d5 l4 w, u# Z' {( f
- (setq p1 (getpoint "First point : ")
/ U# ]; K- Y, E3 W+ m( F - p2 (getpoint p1 "Second point : "))
6 C5 t1 G8 G/ \ - (setq l (distance p1 p2))5 F s* o b$ I( }2 N: N v
- (setq p11 (polar p1 (angle p2 p1) (/ l 5))* i2 p5 Y$ L/ R9 ?1 {
- p12 (polar p2 (angle p1 p2) (/ l 5)))
4 D2 m/ U* n. @% ~( j# z - (setq ang (angle p1 p2))9 E% l8 f/ }' h/ B- I2 K
- (setq p3 (polar p1 ang (/ l 2.5))( j$ M0 Y! d0 d! H' Z5 I
- p4 (polar p3 (+ (/ pi 2) ang) (/ l 5))( y ?# ^! k2 R M s; E
- p5 (polar p3 ang (/ l 5))
# r ~9 q& p d - p6 (polar p5 (- ang (/ pi 2)) (/ l 5)))
3 Q. U% ^- X* J, q# {$ g - (setvar "osmode" 0)
- p/ V: l( E }# p - (command "pline" p11 p3 p4 p6 p5 p12 "")4 U* Z( ~$ c' K
- (setvar "osmode" x)5 A* g6 h1 v9 y
- )0 u: { K- {0 ]. X* k2 e
- ;----------------------------------------------------------------------------------
( x: A# i# A( W! \+ w4 t- o - (Defun C:G2 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6% S2 o8 ]4 b( ^2 L7 z
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))) Y0 E' R- B) P4 r8 |
- (setq ps1 (getpoint "\Chon diem thu nhat: "))
7 ^$ \; W& F. i0 w. W' { - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
% C4 k Y; x# k+ H* A. r% ] - (setq sb 50.0 sh 200.0 se 20.0)# _. C L; h6 X% w! }7 C6 d
- (setq ang (angle ps1 ps2))
+ s7 E% H9 O# y9 p/ L$ j - (setq pf1 (polar ps1 ang (- 0.0 se)))
" W; ]; q; h o8 Y8 _' z1 s& L! k- j - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))( s% Z6 I% A/ _
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
3 n9 ~# `, r3 W: q/ \8 i/ l" h - (setq pf5 (polar pf2 ang sb))
$ ^! b r" X% t5 S9 U7 W# @& c - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))6 K2 _( W* L7 e N9 N
- (setq pf6 (polar ps2 ang se))
/ u& x# w% y$ R0 U( J - (setvar "OSMODE" 0)( a$ C, Z4 U8 A5 x) M4 E
- (setvar "BLIPMODE" 0)% V# k# m9 f$ k3 e
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")1 K$ L0 {; _9 t V6 r
- (setvar "OSMODE" 703)+ m8 Z5 }8 e" [' r
- (princ) )5 H; k1 y+ ]. U+ \4 ~: \5 _: t
- ;----------------------------------------------------------------------------------0 @+ Q' \4 m( M" n2 g9 b& d
- (Defun C:G3 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
! o% Z; m9 u2 |) Y# x% u1 t - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
" D" V+ W( l1 _' O - (setq ps1 (getpoint "\Chon diem thu nhat: ")): Z$ A2 C# a" L# n u+ z: D
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))* F. a) w- {- @- x) J8 W
- (setq sb 100.0 sh 150.0 se 20.0)
8 t5 M4 e* D+ Y+ ?9 x& _" M3 r - (setq ang (angle ps1 ps2)); y' H0 E8 B# B
- (setq pf1 (polar ps1 ang (- 0.0 se)))
9 z$ [; l' m/ C7 X% b - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))8 a$ A, V' e6 a2 o* P
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))+ p$ H. d; r0 W. ?* L: T2 }
- (setq pf5 (polar pf2 ang sb))) Y9 B5 `. ]; E' t) x/ [
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
, i/ J# A* I, x# {3 P - (setq pf6 (polar ps2 ang se))0 l9 ~% _0 q, M# l
- (setvar "OSMODE" 0)
% g; X4 k% \$ [4 b - (setvar "BLIPMODE" 0)
$ }) ~8 h* A1 k* |9 i! j - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")6 D6 Z- m/ Y% g0 X+ k2 a2 v K% B1 z, N
- (setvar "OSMODE" 703)& x: e4 [! k2 u
- (princ) )) \1 Z- e' ?/ a
- ;----------------------------------------------------------------------------------
* _9 @- A# A% M: z$ X( P - (Defun C:G4 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
6 ?: H' f( }3 M8 k9 x; X - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))" R. R5 T/ Y/ H- C8 z
- (setq ps1 (getpoint "\Chon diem thu nhat: "))
) r# A' g* C8 U - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))$ \- s S- e6 ~/ t
- (setq sb 100.0 sh 250.0 se 20.0)" z+ W9 K6 R( f( P' `& W: j
- (setq ang (angle ps1 ps2))
+ l, {+ ~4 V& K9 q! ?! T - (setq pf1 (polar ps1 ang (- 0.0 se)))
3 D; f/ Y* Y6 _) d% K/ I - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
f* W: i1 _! n/ i/ T - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0))): u& G' L: \1 D l. L) K
- (setq pf5 (polar pf2 ang sb))
0 D+ f/ ^6 e/ H - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
$ Y' p& z# b4 s% u# `* [2 B7 `) a* b - (setq pf6 (polar ps2 ang se))
, K; v9 r8 e0 x5 R2 d/ M' T7 j8 s. f - (setvar "OSMODE" 0)% \% d0 l5 J/ [" c7 J' g
- (setvar "BLIPMODE" 0)
& f& w/ \9 V, A& j3 q" T% p! g - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")" [" N: P/ | r$ X
- (setvar "OSMODE" 703)
4 f+ e$ W* P" D2 L! p7 W; o% X Z5 b - (princ) )
9 M6 O/ t. Q! O/ p - % f, |! C5 [1 \8 C9 x/ i* z+ L
- ;==================================================================================5 i# J* t: W- ]! b% e- c
- (defun c:ang (/ ent pt1 pt2 ang): O9 q5 W: G4 c3 H) m# a6 l
- (setq cmd (getvar "cmdecho"))
' k2 k( p2 w0 e4 r; t+ c - (setvar "cmdecho" 1); ^; _7 \: x9 w" n( \! V$ a
- (prompt (strcat"\nThay doi truc toa do theo duong thang chon truoc"))
3 K0 g& k/ C9 p" z- T& L1 }9 t! |- u - (setq ent (entsel "\nChon duong thang:"))
Y: P3 r+ G0 X$ b& B @# p7 q2 ^4 w0 P - (if ent 5 y: {- A7 ^. g1 n
- (progn- t% Z" W2 X6 ]7 z
- (setq ent (entget (car ent)))
% B6 V# _4 |* Z0 }% H+ G* K; @ - (setq pt1 (cdr (assoc 10 ent)))$ G. M% \0 o* C1 T' L
- (setq pt2 (cdr (assoc 11 ent)))7 B. f- o( I* s& F Y+ Q
- (setq ang (angle pt1 pt2)). u4 R; e7 X# v2 Y6 @
- (setq ang (/ (* ang 180.0) pi)) H, i3 N2 E/ }2 y) ]. g
- (setvar "cmdecho" 0)
3 _' a0 _! w. A9 K# @" `4 p5 I - (command "setvar" "snapang" ang)
9 W4 d6 F2 O1 [ - (princ "\nGoc cua truc toa do moi : ")$ Q5 H/ Q. a+ Y, A+ o
- (princ ang)
2 b0 A& V# M$ y - )
, Z8 F, ?' j5 A7 ^, E, S - )
A. r# J* t6 g/ K% l; N3 s, Y3 _ - (setvar "cmdecho" cmd)& H8 F5 f6 P2 G* Y5 H9 Y- w
- (princ)
, f- h6 e4 G1 q; [ - )
0 j5 h4 @# U$ O3 {& S! S - ;==================================================================================: I0 d2 @ a1 {. a3 L+ x
- ;============================== KY HIEU DOI XUNG ==============================
1 a0 ]1 D' a9 C* ~. o9 j( c - ;==================================================================================) y! s6 {3 b+ d0 ~
- & M2 g* _8 x3 e# k, k5 Y
- (DEFUN C:DX (/ CMD OSM OLDERR PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 PT93 h: g/ i3 T; v9 H0 ?: |
- SZ G45 G135 G90 G180 SS loi)
) g0 A9 t8 O9 o/ \! g" w - (defun loi (s)
' Z! V) t' ?" b& y$ x+ x8 j - (if (= s "Function cancelled")
# r8 _# N% P# G5 V7 u s" }/ B% V - (princ)
7 T# x! [5 t6 G( e }; U - (princ (strcat "Error:" s))+ @) E$ [' z5 J2 m6 c
- )
8 G' X% X0 v" V+ u z - (SETVAR "CMDECHO" CMD)
' R8 p$ Q" B* x( k6 J7 z: c* V6 u+ F - (SETVAR "OSMODE" OSM)1 \. G2 m# w3 h
- (SETQ *error* OLDERR): ?0 a' \! G# ?! `
- (PRINC)9 E+ Y' Q( r; `- ~3 Q! t
- )# r: H9 l [. w P* @9 Z5 ~
- (SETQ CMD (GETVAR "CMDECHO")). ^# [( F" z3 i& q _
- (SETQ OSM (GETVAR "OSMODE"))$ X: ^+ T6 L2 {8 r9 G5 d) x
- (SETVAR "CMDECHO" 0)
6 D+ Q) X/ V8 p$ J% u" Q8 c% f" i - (SETQ OLDERR *error*
% N& Q6 C ]! ?5 | - *error* loi)3 y' L: j0 r' B$ ]
- (SETQ SZ (GETREAL "Size <1>:"))2 M( c* J U* O' c9 K
- (IF (= SZ nil) (SETQ SZ 100))$ ^- n6 r% u* W* |1 w9 z# k+ U
- (SETQ G45 (/ PI 4))4 Y/ {1 W! N7 l+ t" E
- (SETQ G135 (* 3 (/ PI 4)))! h/ L$ n& `# ?. T+ Q
- (SETQ G90 (- G45 (/ PI 2)))! o- w# Q" C1 H3 s
- (SETQ G180 (+ G135 (/ PI 2)))
r/ \5 n3 M# e2 v1 G2 m - (SETQ PT1 (GETPOINT "\nDiem doi xung:")). i: A7 z; O) E b2 F# N0 i! A+ T
- (SETVAR "OSMODE" 0): S$ `5 W; s( c" O) \" A
- (SETQ PT2 (POLAR PT1 G45 (* 2 SZ)))" L" c% l" h9 z4 p# _3 }( V, L- C
- (SETQ PT3 (POLAR PT2 G90 (* 2 SZ)))7 N9 z4 E" b& y( U5 g2 {
- (SETQ PT4 (POLAR PT1 G45 (* 1 SZ)))! |. N2 h" j+ E& m
- (SETQ PT5 (POLAR PT1 G135 (* 2 SZ)))+ Y* z2 D+ E5 s/ ?7 l. V& t
- (SETQ PT6 (POLAR PT5 G180 (* 2 SZ)))
% Z$ {8 v) [ C- R0 W7 V- l# n% b - (SETQ PT7 (POLAR PT1 G135 (* 1 SZ))) w# b+ G( M; D
- (SETQ PT8 (POLAR PT1 G45 (* -0.7 SZ)))# d+ u2 j1 D3 D5 l5 ?, h- _# K
- (SETQ PT9 (POLAR PT1 G135 (* -0.7 SZ)))
' i$ b/ y' f. K9 ^! m% b' p( v - (PRINC "\nGoc quay:")/ ~: p7 ~. ~4 s- d/ A# d
- (SETQ SS (SSADD))5 Q/ J3 r! I+ x
- (command "layer" "m" "Dim" "c" "" """")
|9 `* m7 N5 v - (COMMAND "COLOR" "1" "")
3 Y" a# D# ? {6 e - (COMMAND "LINE" PT8 PT2 "")
9 }& m# j; h, p1 k. _ - (SETQ SS (SSADD (ENTLAST) SS))
2 m2 {7 f0 k4 J# [! M - (COMMAND "LINE" PT9 PT5 "")
) Q- l( h6 A# b3 ?- V - (SETQ SS (SSADD (ENTLAST) SS)); b( k8 M$ {) x, _& d: E
- (COMMAND "COLOR" "1" "")8 c7 _5 J7 y( u, b% s# p4 j
- (COMMAND "SOLID" PT2 PT3 PT4 "" "")
9 B7 K) F' A* O. r( C - (SETQ SS (SSADD (ENTLAST) SS))
( h, F2 H4 b) w - (COMMAND "SOLID" PT5 PT6 PT7 "" "")3 h' A6 K! Y6 R$ |
- (SETQ SS (SSADD (ENTLAST) SS))
+ r k/ z- d3 Z1 j. N1 c - (COMMAND "ROTATE" SS "" PT1 PAUSE)
S5 D3 c6 g, F' ], I ] - (COMMAND "COLOR" "BYLAYER" "")5 g$ d# K& X* e; r
- (SETVAR "CMDECHO" CMD)" C. O4 \% ]) Q
- (SETVAR "OSMODE" OSM)
0 i6 d3 ^ l6 l0 ?8 p2 a$ S - (SETQ *error* OLDERR)0 g: C8 u$ E) P! D8 y/ v0 l
- (PRINC)
+ b* t: N I w6 [ - )' ^) W a7 N$ H' |
- + u1 f' B/ N% t" I
- ;==================================================================================. T* N; L1 ?- k o' [( q' Y2 c/ K
- ;================================= KY HIEU TRUC ===============================5 G! P3 N+ f1 n" A
- ;==================================================================================
! I; S, X1 S" N* \0 I; C4 T - * A; u4 x6 C( N1 J
- (defun C:vetruc ()
, H' R" W% x. D4 ]7 P2 b - (setq bk (getvar "USERR3"))
; n/ o( g5 L; V) ~! O - (if (= bk 0). V1 B6 D4 ~5 w i7 u
- (progn
7 }/ ?* Y' O7 C3 L) r2 T1 V - (setq cont "1"). i. y8 ]2 I$ O5 ]+ x" M4 F% |
- (setvar "USERR3" 1): P$ T- u3 n8 J* b# n. y( s
- )4 {7 U# G! M+ `( |0 R1 x' G* |
- (setq cont (rtos bk))
5 l( Q+ W" b1 b2 x% t5 Q4 ^1 z - )0 B% @6 h) D$ n, ~9 D# T' ^1 T
- (setq pt1 (getpoint "\n Nhap diem dat:"))
) ?1 V4 Y* j" [5 h/ t3 N - (command "layer" "m" "Dim" "c" "" """")8 |- k& k/ @: \8 _- F
- (command "osnap" "")
# |- {9 |1 J1 u+ h) G0 F- D - (COMMAND "COLOR" "7" "")5 O0 ]* }9 b7 t( ?; l# q
- (command "circle" pt1 150 "")7 ]* z1 |, C5 y
- (setq pt2 (polar pt1 0 150)) z/ r6 h+ j2 n3 r* P+ h, w
- (setq pt3 (polar pt1 (/ pi 1) 150))
% J: i( w- a% M$ u* F0 ^$ b7 l - (setq pt4 (polar pt1 0 300))+ M. R% X' M9 l# o8 E& s% [" N
- (setq pt5 (polar pt1 (/ pi 1) 300))8 E+ d: q6 r% R
- (setq pt6 (polar pt1 (- 0 (/ pi 2)) 150)). X0 k" {5 J3 Q1 z4 a& D" j
- (setq pt7 (polar pt1 (- 0 (/ pi 2)) 300))
9 ?/ q( X( y0 r# J( |& G, v( M% T - (setq pt8 (polar pt1 (/ pi 2) 150))
$ [2 |* ^& v8 s& c( Y( c9 T - (setq pt9 (polar pt1 (/ pi 2) 300))
5 h* p5 [2 D2 }! }4 v - (setq pt10 (polar pt1 0 150))
3 R* g# E* W6 W, ] - (setq pt11 (polar pt1 (/ pi 4) 150))9 X2 H! |: P9 o r
- (COMMAND "COLOR" "BYLAYER" "") }3 p4 d9 |- y& X: j
- (command "line" pt2 pt4 "")! t' o6 u# x, X2 Z0 X
- (command "line" pt6 pt7 "")2 q2 f% r& u* B. d! @% `
- (command "line" pt3 pt5 ""); x2 p( r$ n5 B) m: a, k) c6 J
- (command "line" pt8 pt9 "")
0 r0 }+ y) [3 `4 K a - (setq dk (strcat "\n Size:<"cont">"))
2 Y, K# B/ t- t/ t - (setq bk (getreal dk))7 O6 P( {4 J: s" L: _
- (if (= bk nil)
& O' L, P& A- \# L0 s$ M; r - (progn
- m8 d+ Y: \& v9 y - (setq bk (getvar "USERR3"))7 P0 E" c, T& q# G# N' S9 u
- )
) v( e( |) b9 d! J9 K* a - (setvar "USERR3" bk)
: a t1 z+ s5 A$ x/ L - )
$ J! q/ N/ X' l, N2 a - (command "scale" pt4 pt5 pt7 pt9 pt11"" pt1 bk"")9 G7 N% g+ m( [% V
- (COMMAND "COLOR" "7" "")
4 @& S# P8 n2 m& L- F - (COMMAND "STYLE" "Truc" "impact" "" "" "" "" "")
; {. W- e6 k; t. W! f! U - (command "text" "j" "mc" pt1 (* 150 bk) pt10 "A" "") ) v U* b& {0 X/ X
- (COMMAND "COLOR" "BYLAYER" "")
+ ~& O2 \5 s- {& Q' M# I# M- R- j - )
$ V9 R+ C4 l& u' b1 _7 A
- g! z* @3 V% j2 q- ;=====================================================================
- O' f. \# j' ]; X% X - ;CA - Reverses the case of text. (Upper to Lower and Lower to Upper.)
1 \. s/ N$ l8 \' C8 @ - ;
' i9 X+ H; ~. I2 `1 r d4 e4 C - ;Jeffery P Sanders' g$ c! B: V" B ?
- ;0 `' W% g& R, z$ G+ ?+ k
- (defun C:CA(/ en enlist tx newtx cnt tp asc note)
+ j# k3 Q4 R% M" h - (setvar "cmdecho" 0)
& u2 ~- e0 C9 p% |9 Y6 k( r1 i - (if(setq en(entsel))6 l/ Z% X% Y7 i6 r& Z4 ?
- (progn1 s) D( ]$ p8 S, Y. a
- (setq enlist(entget(car en)))
) N. B2 L- W [% ? V - (if(= "TEXT"(cdr(assoc 0 enlist)))
& G( Z; q+ Y6 y' z) {: M6 Y8 ~6 G& Y - (progn) |5 E0 _5 E4 W( W+ y3 k1 R% ]
- (setq tx(cdr(assoc 1 enlist))
4 ~/ F- ]5 D4 b' H6 X+ e/ H" U1 j' ~ - newtx "" cnt(strlen tx)
6 o1 y2 y/ Z% p! K' Q - note "\n...CASE Reversed. \n "
& Y4 W7 k/ n1 M8 f - )& f$ v9 ]6 K$ \& d' m
- (while (> cnt 0)
' ~7 X! J0 o6 K/ Y' ? - (setq tp(substr tx cnt 1))
+ v4 c4 C+ u$ u - (setq asc(ascii tp))+ [2 G/ n" P" y2 T5 y& y' r2 j
- (if (> asc 96)/ h8 C& V0 O4 K( O
- (setq tp(strcase tp))2 l$ P2 i1 M) u- j6 C" L b+ u g
- (setq tp(strcase tp T))
+ E8 \ o3 R0 v# c: `) ^; t6 l - )
+ n% E! Z' ~: K8 o7 y& Y* ] - (setq newtx(strcat tp newtx))) `( Q# {6 W8 s% k) P, S% A9 m
- (setq cnt(- cnt 1))8 p2 W' G+ C/ X; c2 E0 H; `6 H
- )
; j/ ]( R& _$ S3 G) X - (setq enlist(subst(cons 1 newtx)(assoc 1 enlist)enlist))4 _ E/ W: \2 u) Z
- (entmod enlist)
K: z9 N$ _( R& e) N/ X, j - )" k- O# }: R; ?7 t. x
- (setq note "\n....Text Only Please. \n ")
% x0 N' S( ]# g# ^& v0 N& F - )" b" B- R6 X- F- {
- )
% i5 o; D7 E' c+ R' @" n# V8 j - (setq note "\n....Nothing Selected. \n ")* a! i' {4 B" W' l$ D
- )
+ ?1 _( ?8 C: O) F- \ - (setvar "cmdecho" 1)0 c) k+ Q) T& y+ `
- (princ note)
% I9 I+ k/ ^, f/ {0 x" O8 T- D - (princ)
: X5 p7 Q7 X$ J3 b# b& i# \ - ): Y5 u$ T- t3 j; g
- , g, u- G* a. A6 Z1 J* k
- ;=====================================================================6 ?/ m) k }2 n9 f, A0 s3 N( z
- ;==================== NEW TEXT STYLE UPDATE ==========================" `$ H) r' Z* x% t
- ;=====================================================================
7 n. {4 i2 [& R2 \9 H+ ]: \ k - - a9 v3 N5 @2 [ f* ?. C7 h
- (defun c:nS (/ tdt ssdt sodt index)
! x: _2 X0 e7 M6 o! ?( k3 q, p2 E- ~ - (defun ObjName (ssdt /)
) v$ X% r9 K) [' a5 Y - (cdr (assoc '0 (entget ssdt)))
- G6 Y( K) Y+ I/ a) V, z, [; J, I - )
O" s4 l5 p' P2 A* ? - (defun MoPL (ssdt /)
! u6 _. d* q- p. \+ d+ M$ X - (= (cdr (assoc '70 (entget ssdt))) 0)" y, l9 Z& D6 x. F; [3 j& i1 A
- )9 N+ ?" Q% Z' K" e
- (defun NoiPL (ssdt /); O7 \6 w, i% r
- (if (MoPL ssdt)' i4 o, z/ t% T+ Y$ e+ Q" _0 N
- (command ".PEDIT" ssdt "J" "All" "" "X") a( d, ?9 R {
- )& N! Y. Y P6 o7 V% L' a$ k
- )7 V. s8 i I/ ], G3 K
- (defun NoiLC (ssdt /)& d; J) E$ M$ q7 J& ^5 M+ n" L" v
- (command ".PEDIT" ssdt "Y" "J" "All" "" "X"), {! M1 g+ S1 N d- }+ \- J1 Z
- )
. d6 C: E1 P$ a/ E - (setq. J3 G4 e# W" `, I) V
- tdt (ssget)$ n2 q$ g, F% g- o+ j4 u6 R! t% _
- sodt (sslength tdt)
" ?- o+ G; V9 J" w4 y. t2 E - index 0
3 v9 ]: d7 E; h1 o) k3 t4 P5 L - ), |: r1 h' i% S
- (repeat sodt
+ E2 |2 J' H- D! b - (setq
7 @9 C- z( x) T$ Q" { - ssdt (ssname tdt index)! j, t- P9 ] [+ L4 u3 [; f3 Y: ~
- index (1+ index)
5 L- `* U: w' D# C. } - )3 v" x+ f9 Y2 j: e1 |9 c
- (if (or (= (Objname ssdt) "LWPOLYLINE")
. }4 Z# {( G% Y8 v/ ?$ q - (= (Objname ssdt) "POLYLINE")! Y' m& |& y: ~/ c. \# w
- )" x2 ?" y/ [4 I% H5 A! ]: T
- (NoiPL ssdt)
. o( H: R; {# U: v! @9 l* N - )
; ?' {+ \+ ~( g$ e - (if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC"))! b& g. g1 v' ~/ f* b. y% O
- (NoiLC ssdt)4 N# w$ K2 P5 q
- )0 ^$ O- F3 D$ Z$ n$ @
- ) r/ w. Z g1 u1 M
- (princ)1 H. V" x/ S5 \4 B6 }# h
- )
- Q- J% o3 W5 f% t; Q1 B - 5 c* I- t4 n0 d5 a
- ;=====================================================================
8 F& f. t% w: s4 }4 P. W' y V* X - ;;; AREAM.LSP, f1 R. X: G; ^7 J3 _2 G) l
- ;;; Function: Calculates the total area of selected objects8 V* [/ C- v- g1 N8 `
- ;;; By Jimmy Bergmark
( F/ v+ U$ z6 y6 v5 `2 |& e* |: ? - ;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved
- ~& H9 O4 x( u) [/ z0 Z - ;;; Tested on AutoCAD 2000
% g: r% _7 O+ R# v& e
8 ~5 |6 G, B' [8 A- (defun c:ea (/ olderr oldcmdecho errexit undox restore ss1 nr en tot_area)
+ z6 d; `) Z |# f' h$ k, c - (defun errexit (s)
: d0 F! R% `# ]2 i6 [5 k - (restore)+ h" H: S: G7 R' \
- )
8 b7 g% S0 @+ C4 m( f9 C$ Q5 R - 8 A! b) A4 A x& s$ t! F9 C- i5 q
- (defun undox ()
* {4 Z' k7 u- G( E$ w - (command "._undo" "_E")
7 u& b X) ?3 R& v1 A# a3 w2 s3 A - (setvar "cmdecho" oldcmdecho)
' W2 \( J& _+ T) k( s) g' _ - (setq *error* olderr)
3 i9 _% P4 l- ~( i - (princ)
( w8 h( s* U: [6 ^ - ); R# V$ {) n+ C; W; D; i
2 n7 L8 L* \; j0 ]+ {: E6 A: o- (setq olderr *error*
7 s+ I& y% P; Q, b& ? - restore undox
4 g6 F4 p6 Y2 Z8 t1 y c - *error* errexit
" X2 {5 Q; K) r3 F - )
7 A/ e: u ]8 n0 |1 f4 h - (setq oldcmdecho (getvar "cmdecho"))
8 c$ a5 }; e& D3 W' o* a" _ - (setvar "cmdecho" 0)1 g9 k, G0 X: \6 |' B
- (command "._UNDO" "_BE")7 u5 Q! `1 _7 G( y* O x
- (if (setq ss1 (ssget '((-4 . "<OR")9 ~6 K4 f; ]/ A3 r) m$ o, j& M
- (0 . "POLYLINE")& T5 r e; ~4 r5 j7 o* l
- (0 . "LWPOLYLINE")
& g% x9 @+ Y& e# ^! X! F - (0 . "CIRCLE")
4 Q- O4 n* C5 b5 O - (0 . "ELLIPSE")2 Y. E5 A5 q4 I9 ?& _* h% M
- (0 . "SPLINE")4 E/ b. w+ c, `! n$ D- I
- (0 . "REGION")
* V" c$ x" I5 X" k( x* b; Q7 ` - (-4 . "OR>")
6 k& [7 c% J6 {5 Z7 A2 S# J" m - )
: ~8 C* V3 ^, `# { }3 y' K: u" v - )
5 \% i# j! w' z4 X$ N - )7 X; \) c2 P: s7 D
- (progn8 C+ F% `3 N% S; c
- (setq nr 0)9 F5 J8 y0 C6 H4 X
- (setq tot_area 0.0)4 M% l! p. j2 h# X$ p
- (setq en (ssname ss1 nr))
/ D+ B. J! Q. n: w: \ - (while en3 |& D/ b) Y% Q* O! Y8 T6 O0 E4 a" ]
- (command "._area" "_O" en)
; @# R; w6 {' h, P# W! Z) V- Y9 E7 b - (setq tot_area (+ tot_area (getvar "area")))
0 Z( e/ }2 P) Z9 z- x - (setq nr (1+ nr))
1 q) z: R; b" s) \: E5 c' F) C4 A, l - (setq en (ssname ss1 nr))
7 _' I$ k. }" x7 L9 K8 r - )6 d: G. f: F5 k5 a( i3 Z
- (princ "\nTotal Area = ")
2 o! o1 @9 Q1 k; H( [1 M - (princ tot_area)
5 ^" K$ x3 s' y( A - )( h/ j! E+ v' t: N
- )
M5 B& ^+ p3 o1 a% W& [+ b0 o - (restore)
* L% t9 N. u4 o" I3 ^ - )( }) k7 J! l& s* }
- : z0 o; S+ d: p3 Y* p4 ?0 V+ b
- ;=====================================================================. t6 \3 {& P& Z k: [& n) P0 t
- ;;; By Jimmy Bergmark
5 f% M2 D5 S5 B$ v - ;;; Copyright (C) 2008 JTB World, All Rights Reserved9 i- @; H5 ]7 g" {* j
- ;;;7 @0 a' }* k S* i
- ;;; Created: 2008-03-31
* Z$ n) l# {% y. O/ O - ;;;, T: i% h+ G7 v7 {% y
- ;;; Convert Attribute definitions to mtext m( ~* s) o, w
- ;;;
?/ e1 Z9 a# q5 x5 P: S0 J - 0 K. w- F% B8 n3 Q' d+ k1 T, k
- (defun c:ATB (/ eset1 blkcnt en enlist tag1 ht pnt vl space)
0 P0 e. O6 a6 D) W - (setq eset1 (ssget (list (cons 0 "ATTDEF")))
, h: o: Y$ D7 R) D - blkcnt 0
/ u9 q$ e" x' x# p& }( F- W3 @: M - ) |2 k2 I9 s7 m. N5 t w& Y$ x
- . j! {2 e' B0 N/ h+ f
- (if eset1
w5 `" @' Q- R# R2 s( D: _( N7 M - (while (<= blkcnt (- (sslength eset1) 1))$ ~2 C. X; m. r" m8 t
- (setq en (ssname eset1 blkcnt)0 B1 k2 J7 ~8 c( C
- enlist (entget en)
! v6 j* U, O# x% ?: y* j - ht (cdr (assoc 40 enlist)) C M( @2 L' @% k9 v$ e
- pnt (assoc 10 enlist)
, x- e0 L" E; p# j6 P2 p0 j - pnt (subst (+ ht (caddr pnt)) (caddr pnt) pnt)
`$ H: k& G. t7 _ - space (cdr (assoc 67 enlist))
4 L. k, X1 f. i5 u# P. g( |* U - )
y% C8 @: L B: t5 ]+ \ - (setq vl (list( Z2 Q8 W3 ^% L6 z- w$ @4 Z
- (cons 0 "MTEXT")
$ } ]; S( _% J% R# e - (cons 100 "AcDbEntity")
2 A$ `: e# l D0 F, `& f3 I! c( t - (cons 100 "AcDbMText")
, C Z4 i W+ J3 j3 x" a% X- @0 y1 U1 e - (assoc 7 enlist)
$ O$ ~3 t+ s3 G+ k - (assoc 8 enlist)
. Q# Z1 W* y2 R8 U4 ^7 c - pnt
; u5 D% r' o( G: i7 G1 O X7 K - (assoc 40 enlist)0 e9 t1 }( g8 }( D( t2 v
- (cond ((assoc 62 enlist))/ p/ G0 E9 Y& p5 t' C) V
- ((cons 62 256))0 t& V+ \) m7 J
- )
! X0 J% ]8 R# x' ~8 a. N. ]" i# [4 r - (cons 1 (cdr (assoc 2 enlist))). b; g7 f+ z4 x
- (if (= space nil)0 D, R" N) z$ o, @: s
- (cons 67 0); B, t) G7 M! h* u; P. Z. x
- (cons 67 space)$ d/ Y$ t% q/ b- `
- )
' U2 f* U( R& u. _( h) f - )8 k- |7 ^4 J8 R" Q& b& u( |. Q
- )* ?+ l1 y4 P$ k) Z' o2 S$ L# v
- (entdel en): K" J. O& O9 {; }! m
- (entmake vl)* R5 |2 p0 X$ l: n: d8 T
- (setq blkcnt (1+ blkcnt))
; R) ?; n3 S6 ^ - )% }1 v: p u, q# E2 t6 f6 Q
- )
# ]7 L9 Q4 E" u3 ]( E& n9 b2 }4 @ - )7 Q" K s- Q0 q: R2 I7 d
: U B3 M+ C, h2 u: i5 U6 l- ;=====================================================================
/ O3 t9 k5 O* B( L7 F7 }, F# h5 l: X
; |. s: ~ y: A$ q- (defun c:xxx ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)+ L- h3 P* a4 z( X7 h [5 m4 T
- ; Khoi dau cua chuong trinh
( T& O$ ?1 n- d5 u/ j& u+ b( Y - (princ "\nCopy Inteligent...\n"); w: {( i. M9 `/ l3 G
- (setq luuecho (getvar "cmdecho")% B, n& J8 @( r8 B
- luu *error*
! E; C- `/ |5 r6 a. g - *error* ketthuc9 r8 u% o% e% M: c* |( s% w4 w
- cumdt (ssget)
$ H$ G' }1 [+ K4 @. {! h - dodai (sslength cumdt)
- H5 [8 t7 u2 e* o3 M3 e6 {0 L( K - goc (getpoint "\nSelect base point:")+ W1 l# U8 u. c. R# L; q' t
- thoat nil
2 Y' C4 E# i! d - dem 0
* _ j- A* `* ~5 u3 N1 y- n - textxl nil1 e; O/ C! |# U9 z+ d* H/ u6 Y
- );
% Z4 i$ h! J2 S3 h - (setvar "cmdecho" 0)/ Z# W- F1 c7 z- [ T4 `
- ; Loc ra duoc ong text de xu ly
* j. D( X; \# g) U( L- q - (while (and (= thoat nil)
( f- Z; F( b9 m5 \. G* r - (< dem dodai)
9 C' k/ `% _7 N2 ]+ V- a/ g - )
- y; I2 B5 R+ o - (setq ten (ssname cumdt dem)3 x2 Y# T: w' j: p' j
- dem (1+ dem)* k( G, f: a2 g7 X! {! X
- doituong (entget ten)
8 P# F4 r. s0 a& O( a' R$ g - kieu (cdr (assoc 0 doituong)) + `4 r2 @- f" c1 Z9 @, Y
- )3 ~6 R( ~. o- |) {. g+ R4 @
-
) r9 h6 A4 u, y/ a2 b - (if (or (= kieu "TEXT")
9 R5 [# Q+ z, U( g( E - (= kieu "MTEXT") ! R! Y" r+ ? N* K1 A+ h
- )
! o% v* W* g1 v! m# F; ] - (setq thoat T% a5 [7 {' y8 B
- textxl (cdr (assoc 1 doituong)) 8 r5 z' p! j1 d6 `% S$ y
- )! P7 {2 ]# `4 d* c/ a! B" ^
- )
! s0 J( i( a9 g1 g ] - );
) C7 ~9 h5 d( d, E+ b) l. |4 M - (while T q) b# A, k3 N- F T3 D7 F, R
- (setq toi (getpoint "\nSelect next point: " goc) P" _& V8 Z" M9 }1 q+ @
- vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
* w; V. v* `0 g - dem 09 N1 {" q' b3 T/ p* I
- )! K" U! q; h$ B! d/ E5 |; y
- (while (< dem dodai)
/ r% K# o$ D2 b( @) F T* A - (setq ten (ssname cumdt dem)
- B' e" V4 o* I+ D P8 G, d - dem (1+ dem)
# _8 y0 r- ^! o+ @ - doituong (entget ten) ~) O7 z( ~0 y* @
- kieu (cdr (assoc 0 doituong))
) p; M# y8 i. v0 U - )& W$ n3 ^+ D1 S5 J! y
- 5 I. `7 y4 Z b8 \7 F4 W
- (if (or (= kieu "TEXT")
5 K: X! q2 [( b7 n a D - (= kieu "MTEXT") * C' \( h* ~0 G9 ? ~
- )
% x0 Z3 ~( _7 ~; z2 J7 x - (doitext ten)
) k2 S# R: h Y7 w4 T; F4 q+ { - (copy_dt ten)
) ]3 E e- l" W( p+ S - 1 w+ N O }- M* p9 @) i( D
- );if, t. i: ?, c# b" L" q n
- )7 r) X3 r6 u& @" }# o( H
- );while
0 ^' H v4 P5 u! n - (ketthuc)
2 d1 {* ]3 p5 G2 ~" h+ e+ `0 P6 X5 Z - );defun: x, F8 N3 j e0 T3 D0 f
- (princ)0 k5 |& z% c1 M1 k! M; @% G+ l/ Y
: U1 h2 q4 w5 I9 j+ G6 d- ;=====================================================================( x" l+ Z' ^3 x
- ;;; By Jimmy Bergmark
5 T' r8 I$ K# P& U) v1 Z4 R" q* L - ;;; Copyright (C) 2008 JTB World, All Rights Reserved8 B' g# k. Q- H% ?1 ?" v6 P
- ;;;' o( w" w9 ?0 c6 O. Y! V0 ~
- ;;; Created: 2008-03-31
' `& T3 y1 Y4 L - ;;;
6 v! c" @$ w y9 P - ;;; Convert Attribute definitions to text
$ P, z. X# r% b7 ?# F - ;;;1 q. m$ U6 O1 U$ _0 S: f2 P$ N& x( O. k
6 }4 u& S! R9 |- (defun c:ATT (/ eset1 blkcnt en enlist vl space)
. d8 X' [! R7 ? - (setq eset1 (ssget (list (cons 0 "ATTDEF"))): u* t4 s! H8 I5 A! u$ h6 t
- blkcnt 0
4 o6 Q" n' Z. z. |; [ - )3 G- n* e6 J2 l3 R; z b0 ~+ i
2 }. V1 b7 R* K2 l9 o" s% X- (if eset1
; o3 e( h2 ?, w: Z8 Z0 K8 S - (while (<= blkcnt (- (sslength eset1) 1))) x* I, _4 X9 h
- (setq en (ssname eset1 blkcnt)# H. A$ [' _# @3 g
- enlist (entget en)
8 Y. R7 N2 h& ?. p3 L# X - space (cdr (assoc 67 enlist))' n4 ?9 a6 W+ T$ {+ |2 |
- )
3 p8 H- o8 M/ {0 g3 g9 U2 p/ \* ? - (setq vl (list
2 y3 Z1 E; S2 L5 { - (cons 0 "TEXT")% g2 z5 _9 B* l. |7 \" p! \
- (cons 100 "AcDbEntity")/ x( W! _9 P" s6 b
- (cons 100 "AcDbText")
# X1 n' n% k/ T. }8 C, q - (assoc 7 enlist)
{; D4 p5 ~: T5 y4 O9 U - (assoc 8 enlist)6 ^1 b& Y$ c) a h8 x# u ~
- (assoc 10 enlist)8 Q6 ^. Q0 {3 h3 h6 ]
- (assoc 40 enlist). m, O+ }8 l, e6 n; Z
- (cond ((assoc 62 enlist))7 l" {) [7 h8 |! u, u" n
- ((cons 62 256))
# G8 P' S. S; d0 J1 D0 c - )) l6 q9 ?$ Y, X% {
- (cons 1 (cdr (assoc 2 enlist)))
- g9 e J3 m& ~; M: r) S2 E6 [4 d - (if (= space nil)
# ?1 w# g' D) Z) s- z6 } - (cons 67 0)8 r3 E3 F+ G/ P; n7 J9 Q
- (cons 67 space)4 a) R$ v) V' |5 t4 ^$ S
- )
# w% p$ N k3 G7 O - )
' ?5 ^' z* ]1 ~+ | - )+ P1 o) R S, p2 r, H! D; H) R
- (entdel en)
; s! N, ^, I" |' L5 F! q$ @) I - (entmake vl)
0 Z6 {/ S9 V; O3 A& R3 Q5 a - (setq blkcnt (1+ blkcnt))
7 F' ]7 u3 s5 Q3 ?1 }% ~3 J$ k- R - )" W3 d4 s/ E* J8 y& i% I
- )+ v+ z6 Y: L% O) z8 J- ^" \( K: m
- )
% V5 O+ n3 c6 P9 @ - ;=====================================================================, u) o8 A% p" n/ c8 `
- ;============================ Doi Truc ===============================
0 L4 w$ h' K! }" b x; }4 g d - ;=====================================================================* N5 k+ Q8 p9 C# j5 J% s6 t
+ B* R% i' P+ t) C' K/ q- ;=====================================================================
- B+ M: U1 x" l% ^7 D - ;=============== FUNCTIONS GA 1+3+5+7+9+11+13+15+17+19 ===============+ ]) r" Y# z3 I! P6 B& X5 r
- ;=====================================================================
2 D" P$ T+ A' r8 [ - (defun c:ga1 ()# r# l! ]% w1 B, m5 B
- (setq a (getpoint "\nChon diem: "))
: j& a( I$ v. {" e2 D/ {+ a - (setq b (getpoint a"\nChon diem: "))
/ y0 q* d+ @6 D+ u" h8 a0 x - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))9 h! E% _1 i8 j8 _$ \
- (command ".circle" c a)
3 [1 i+ C: T8 F, x+ s, k/ q - (command ".line" a c "")
7 p$ ?, o3 H" K |" G' v' E - (command ".array" "last" "" "p" c "1" "" "")' M: [' E+ K6 Z8 q
- (princ))
" M3 V5 O0 p4 `$ g7 o" _
/ ^6 P' E0 J1 v3 p" v8 e- T @6 p- (defun c:ga3 ()
: q- \7 S9 Z9 v; r - (setq a (getpoint "\nChon diem: "))
4 t0 ~& ]8 g9 Q$ |& b - (setq b (getpoint a"\nChon diem: "))
& q0 o1 X' J0 k - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
, u! F1 N; s- O( s" T5 z, p: c - (command ".circle" c a)' p9 z, y$ h& A- S4 Z
- (command ".line" a c "")
$ w3 e# c% G5 d0 ~" } - (command ".array" "last" "" "p" c "3" "" "")
/ c' P! d2 _5 G1 t - (princ))' e* J* j" c% \: O: G7 }4 s% ]
- / h1 G. V8 G9 R4 @! J B
- (defun c:ga5 ()) C6 _7 E$ c! ~' V) n Y
- (setq a (getpoint "\nChon diem: "))
* i0 R0 P7 j! p" f1 _2 }4 U3 T e* M - (setq b (getpoint a"\nChon diem: "))7 `# ?3 u2 E$ w- u
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
" M0 G# Q- x; _ A% H' d a - (command ".circle" c a)
8 G" q" _2 @* Z4 w - (command ".line" a c "")
. v! E: ~" @4 }" [ H5 X& r - (command ".array" "last" "" "p" c "5" "" "")
/ T( e! l1 A% `. H, Q& y - (princ))
( F. ~& H# b! Z& {
/ p& X, P+ T* d" {" A. t" e* _% Q- (defun c:ga7 ()+ D* X/ f" l& A( ^
- (setq a (getpoint "\nChon diem: "))
& d0 l+ u0 `. f! e/ ] - (setq b (getpoint a"\nChon diem: "))( }% W9 U& u- l( w/ K
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
% Y1 P. V [- o$ Q4 q) D2 O - (command ".circle" c a)
2 `9 b }6 Q2 s7 d - (command ".line" a c "")/ p, t! C* Q5 y! ~* ?( f `
- (command ".array" "last" "" "p" c "7" "" "")/ ~0 T3 @: |! w8 t* z% {
- (princ))
' G; P: S* L( a
7 U; {8 v+ n: k& t1 _- m @( Z- (defun c:ga9 ()
* l3 E N6 O! O. T, a" o - (setq a (getpoint "\nChon diem: "))1 Y8 d e8 ~0 t1 F
- (setq b (getpoint a"\nChon diem: "))* s/ p7 i" L/ {& t. F/ `! } D
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
6 n2 _6 `' N z* B: ^' } - (command ".circle" c a)
% J- t' n/ n& a& C- d - (command ".line" a c "") D) y3 G8 k ~
- (command ".array" "last" "" "p" c "9" "" "")
& a! y: n+ Z" V( j9 e5 f% A - (princ)): h% d+ E- Q, z
/ ]7 [' b& T1 a2 E% G) @- (defun c:ga11 (). S8 h% f% O. s) F' g" F! F3 d
- (setq a (getpoint "\nChon diem: "))
* }# l1 m! _: A0 A- V - (setq b (getpoint a"\nChon diem: "))
6 _* m/ z' R$ c: x - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))/ k& d/ S& E9 K, J4 m) i5 U2 E; D4 K
- (command ".circle" c a), o4 g, ]( T4 x# ^/ @( ^0 ?8 m
- (command ".line" a c "")
5 c( U" R& Y6 E - (command ".array" "last" "" "p" c "11" "" "")
9 x7 r" F+ _. r, n2 M; Q7 P- Z ] - (princ))
/ Z( X2 z( ?; _' s3 T2 w3 ?
$ I7 s+ B2 E4 X% m; @- (defun c:ga13 ()
" Y) y" Y% h, g - (setq a (getpoint "\nChon diem: "))* |; Y# I2 \5 a2 E5 o0 f
- (setq b (getpoint a"\nChon diem: "))/ q+ g$ p7 B: R+ R
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))! x- t0 T9 n+ l
- (command ".circle" c a)
6 v& J' P& ^) p. C0 ^" \ - (command ".line" a c "")7 L" e5 u' z9 n8 x8 }
- (command ".array" "last" "" "p" c "13" "" "")
6 F; i' X5 A/ W3 p1 v' \$ j - (princ))) |1 ~1 F7 n- N2 C* z S2 R
$ ?7 D' p! p& `" \- (defun c:ga15 (); ?7 j0 j' X4 k! T
- (setq a (getpoint "\nChon diem: "))
/ `" g9 V8 |) y - (setq b (getpoint a"\nChon diem: ")), m3 l, w/ S# O& \1 W
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
! S) `5 c$ y/ ^ b9 h" V - (command ".circle" c a)
; h2 Y* g+ A X8 d6 u* Z1 ? - (command ".line" a c "")
* t* M, E; k) p4 O) G1 r9 Q - (command ".array" "last" "" "p" c "15" "" "")
3 p0 s2 Q9 v( D - (princ))6 O1 T1 G/ _: }
& A, P9 c" O4 o9 J4 _( ]# ?1 ^- (defun c:ga17 ()
$ L+ R3 x- o* n% `: G% Z: d - (setq a (getpoint "\nChon diem: "))5 \& x' ^" E! g
- (setq b (getpoint a"\nChon diem: "))5 h+ w# m y+ p/ O
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
# p8 y: @2 G0 x% K - (command ".circle" c a)
' z; s# y. _& H T* o, |8 S" @/ h - (command ".line" a c "")
; N; k6 h' k5 p8 @" \7 V r - (command ".array" "last" "" "p" c "17" "" "")2 {0 d3 U, |) @
- (princ)). s4 A# h6 i. A+ a0 s3 @! G
- & ^4 z+ w- _# t$ ]
- (defun c:ga19 ()
" t3 {% ^3 \: J: T) V - (setq a (getpoint "\nChon diem: "))
7 g5 L5 m. m8 D B" Y$ W/ A - (setq b (getpoint a"\nChon diem: "))$ R( t% h% j2 k s
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))4 s. b; w q" \/ P/ p* U
- (command ".circle" c a)9 |) V2 D# T8 c, }3 _8 ~% t
- (command ".line" a c "")7 a' b t6 b: T+ d! I
- (command ".array" "last" "" "p" c "19" "" "")
4 d; K# P, ]6 h2 e - (princ))
" _ [) l) W- m. `8 J6 B6 d' w& \3 |
V# `8 z: D8 o" p/ c# m1 s8 ?- ;=====================================================================
6 y! l- l2 Z n - ;============== FUNCTIONS GA 2+4+6+8+10+12+14+16+18+20 ===============$ z; E0 |6 G8 |8 b
- ;=====================================================================: M( |8 u1 x/ u, a# }4 G/ u
- (defun c:ga2 ()' ~& T4 A6 v# V; d) [, X
- (setq a (getpoint "\nChon diem: "))
1 E: I& F! b- @% D; k3 W - (setq b (getpoint a"\nChon diem: "))
: E1 z+ P8 `" R( D+ s - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))2 I+ c- p( C" e! e+ y
- (command ".line" a c ""): ?) h5 E: F9 @$ c1 n' @# M$ k
- (command ".array" "last" "" "p" c "2" "" "")# J& J5 x) Y \8 N
- (command ".circle" c a)0 j2 {7 O/ ^1 b" h3 x! F, v$ Q0 r* ^
- (princ))
+ G5 ?9 W9 `2 S! _. n
( ?% _3 O2 H1 N- (defun c:ga4 ()5 h9 p/ J; X( |
- (setq a (getpoint "\nChon diem: "))5 j( b# q! ]" h
- (setq b (getpoint a"\nChon diem: "))
* V0 @) M- ?0 A6 P6 z% v" C0 h3 b9 v - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
1 @( [4 b {) E! G5 x' p9 |8 t: e- ?- ] - (command ".line" a c "")
( i5 K' t1 X3 U6 U: l& `. f - (command ".array" "last" "" "p" c "4" "" "")
+ z: b! }& ^' I% Y9 F& B - (command ".circle" c a)
# T1 X% s6 D( T: V# _# L: l& m - (princ))/ c( ~) F+ `7 D4 Y
' R% ~8 C) x/ K# x, J* P2 s- (defun c:ga6 ()- Z# v# t% `0 j9 j$ F' B
- (setq a (getpoint "\nChon diem: "))
& [3 e& s$ A. T% w( ]5 U - (setq b (getpoint a"\nChon diem: "))8 `: u; I8 P2 \
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
$ Q9 [: y- q+ [- X: U2 c! h2 `, c - (command ".line" a c "")
, D3 O- x2 G) M/ J - (command ".array" "last" "" "p" c "6" "" "")
9 y; O; j( y- a* s+ p8 ]* M; f1 v: V x) K - (command ".circle" c a)3 A) ]. a1 k( W
- (princ))
V, E. j+ R: g
# c/ Z) |* y+ j; g3 M- (defun c:ga8 ()/ V+ ^, Y6 e( S! ]8 K; ~; ?
- (setq a (getpoint "\nChon diem: "))1 K) r7 v/ F0 w" C7 O# v5 |! N
- (setq b (getpoint a"\nChon diem: "))
9 W3 Q# M2 L U( r8 D - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
# Y v5 x t- e - (command ".line" a c "")3 t2 K7 E4 _# n' l& {/ Q
- (command ".array" "last" "" "p" c "8" "" "")
5 H( e2 P7 D5 _# Y - (command ".circle" c a)1 k) N) \0 I0 C! B
- (princ))
+ M( l6 s4 O$ S/ p! P, [1 I( k
2 {. _0 `/ E# i% J4 f# D- (defun c:ga10 ()
/ M+ N4 R3 F$ e - (setq a (getpoint "\nChon diem: "))5 @4 m1 C8 r# q3 y- v
- (setq b (getpoint a"\nChon diem: "))
; _3 V. Z! c( d; Q) C; g5 Y! O - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))0 [5 ?0 z4 R5 o$ s0 ^4 @1 I3 M5 J
- (command ".line" a c "")3 ~' H7 X2 G( ?
- (command ".array" "last" "" "p" c "10" "" "")/ _' p7 I. o6 N! U7 w# I9 p
- (command ".circle" c a)
# I! x: p4 m6 s$ m* { - (princ))
& E" Q1 z- a& s& P$ Y) g% K& I& C
' k* d8 i i& @, f& r7 G) M- (defun c:ga12 ()
1 j% m0 t' T! k* D - (setq a (getpoint "\nChon diem: "))* F' g* M# Q# `. H e& D R
- (setq b (getpoint a"\nChon diem: ")): j) ^5 B. I1 B7 S) |! a
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
/ X: G9 B3 S* @ - (command ".line" a c "")
* T- c2 Y* E' Q" u1 I3 d - (command ".array" "last" "" "p" c "12" "" "")$ o1 P/ z4 T2 G
- (command ".circle" c a)
+ Q- d* q5 ^+ j' `, v- ] - (princ))
6 C0 |! Y# H$ ~+ o3 M% I f; D! C - , \; |. @4 I' c
- (defun c:ga14 ()
4 E% t9 C: q. f2 S4 V/ y - (setq a (getpoint "\nChon diem: "))5 N8 c+ h! W# R5 F% b. t6 ]4 o
- (setq b (getpoint a"\nChon diem: "))
0 [: G- `: L8 A& U' O - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
2 W) y- O/ i, n& U7 B i( l - (command ".line" a c "")
# ~- F( [1 S( k) y - (command ".array" "last" "" "p" c "14" "" "")
* Z% e; c% u" d7 p# P - (command ".circle" c a)
8 L; J6 F1 U1 i9 g8 k2 v - (princ)) ]5 [& g) L* |" P% s8 b
- " B4 g4 h- w/ v) T$ u- e
- (defun c:ga16 ()
B, a u) a9 g' J+ G9 d$ u - (setq a (getpoint "\nChon diem: "))
4 H1 L, U& D1 i/ U - (setq b (getpoint a"\nChon diem: "))
) H' n" r1 S# T8 z - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
7 C; z+ c; i2 b- @ - (command ".line" a c "")
9 E/ t) C; k/ t) l5 C! p, D- e - (command ".array" "last" "" "p" c "16" "" "")$ W& @+ ~4 l7 Q2 c- Q
- (command ".circle" c a). d3 l, Z8 M( A6 o# U1 i
- (princ))
' T' [7 \' J0 Y - 4 |; Q4 s! U! O
- (defun c:ga18 ()* p, V% X" B" K* j
- (setq a (getpoint "\nChon diem: "))* f; o6 v) K# e- K$ b
- (setq b (getpoint a"\nChon diem: "))
7 o& Y& d7 h3 V, U6 @' T. z# |, z- s - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
0 j% C, D6 f+ O! V* a! U: V - (command ".line" a c "")6 k( ]; f( m ]
- (command ".array" "last" "" "p" c "18" "" ""); Z! P5 U2 @* O: G2 Q/ A1 s/ _
- (command ".circle" c a)
7 e; d4 ^6 E* n4 o3 [ - (princ))/ s% S. g+ Y/ c% l7 X/ Q
- / Q2 f; M' t1 y& k( ^
- (defun c:ga20 (). z' [! W7 `. C' k1 s
- (setq a (getpoint "\nChon diem: "))
2 x R2 l2 h" [3 a- A - (setq b (getpoint a"\nChon diem: "))
. F' T% ^; j* E8 U* c% m - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
2 X% r& c' c! X; s" k* e% I5 B& t - (command ".line" a c "")
6 l7 j; u2 z) x, O8 s6 x5 u6 P - (command ".array" "last" "" "p" c "20" "" "")
6 v @8 U9 f, a5 _, b j T" Z& z! b9 ^ - (command ".circle" c a)
5 Q; F; z5 v5 X - (princ))
- Z4 d2 V+ H) ]; Z8 |# P* A, B! g - ) U' J {- Q) i: K. s
- ;=====================================================================# o t2 Q# {+ l# d% c0 v
- ;============== FUNCTIONS GA TUY THICH : EVERYTHING IF ===============
7 c3 p' n! _$ v2 ~9 E - ;========================== 06-11-2016 ~ 18h00 =======================$ W1 i1 S6 V0 ]1 `0 V0 f. x9 A
- ;=====================================================================
# J5 G+ G; v+ N: {- U' l - (defun c:ga ()
( E( `9 e; g+ R - (setq a (getpoint "\nChon diem: "))3 C9 u8 m- b" x# {! a0 l0 @
- (setq b (getpoint a"\nChon diem: "))
! Y% `- t( {% ~ - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))" [2 X0 ~% i: _2 C5 f
- (command ".circle" c a)1 x4 q+ ?4 R( U, _
- (command ".line" a c "")
1 B5 g7 {5 z, H% c - (command ".array" "last" "" "p" c "NUM" "" ""). t; H0 |4 o [, @: l& u
- (princ))9 q6 A) N/ F N
- z! g3 v$ a" X2 C# Q- F7 K
- ;=====================================================================& Q; r6 D" H/ h( J R
- ;=========== FUNCTIONS HOA THI TUY THICH : EVERYTHING IF =============
; H) F8 O* W4 [+ W - ;========================== 06-11-2016 ~ 18h40 =======================
0 Y6 \- O0 v& M) ^8 e% T T - ;=====================================================================
, s* q8 H# R! d5 r1 {1 f( q
8 K: A' e5 V1 X v, d1 m$ h- (defun c:hoathi ()! W7 v2 L( ?$ A& r% L/ ]
- (setq a (getpoint "\nChon diem: "))
& N/ U+ y0 {; g! Q' U - (setq b (getpoint a"\nChon diem: ")): L" w+ L3 w7 @' u
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))! v! D1 }( B3 x
- (command ".line" a c "")8 M" T4 X& U6 j; s
- (command ".array" "last" "" "p" c "NUM" "" "")0 Y3 X6 k0 s2 F0 z: ^) q, p
- (princ))
+ Y) @* J( ^4 @% ~; k, M4 }* ^
1 m9 B* d% I' M! D4 _- ;=====================================================================
7 i, x# g- m* d+ z8 h' X2 V - ;============= FUNCTIONS CUNG TUY THICH : EVERYTHING IF ==============( F) Y$ j* X/ y. Q; }# {$ F
- ;========================== 03-11-2024 ~ 19h33 =======================
! R7 K t' z$ B7 m! u: G7 ]& T1 e" z- Y - ;=====================================================================# W7 Q" A+ w! t$ a/ |- z
& L( P8 J7 w" |4 Q- (defun c:cung ()# R1 n2 B$ g3 n/ j
- (setq a (getpoint "\nChon diem: "))
/ Q6 W+ L% w1 w: y& t5 p% S2 I/ @ - (setq b (getpoint a"\nChon diem: "))! D+ o2 r8 I. l: d9 d& y& b2 c" N
- (setq c (getpoint a"\nChon diem: "))% `! Z1 I" G. U
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))% m }- W, N' h, G8 N: ]' Z
- (command ".arc" a b c "") A ?8 [$ u) g, g* K
- (command ".array" "last" "" "p" c "NUM" "" "")
. I) v4 Y% C1 B3 T+ j+ m9 |5 Z! q - (princ))
C1 f' C: x; }
' g/ _3 m* [' g" L8 a2 ?' b- ;=====================================================================
5 e& k' F0 J0 c4 h% c) o% Q - ;============ FUNCTIONS HECLOIC TUY THICH : EVERYTHING IF ============
" _+ }% m" F2 Q0 V! n! d0 N% i- K. B - ;========================== 03-11-2024 ~ 20h02 =======================
W$ q! L9 h* _; X2 P. P7 ?) b% Z2 x - ;=====================================================================
. g, x* v0 I" Q" `4 a2 ]7 L' _( X& w
$ J5 G4 y2 X% W4 `& `' w! P5 L1 }- (defun c:hecloic ()! u# g. m7 l4 [5 |: M7 t v4 J6 w
- (setq a (getpoint "\nChon diem: "))
' Y1 @/ h5 A( X- c) ?8 h& h - (setq b (getpoint a"\nChon diem: multi "))
" x+ L! a6 T o4 s6 g - (setq c (getpoint a"\nChon diem: "))(princ)$ _1 S7 k6 {5 F* \3 H- ^
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
8 {! k& m9 r/ ~/ n - (command ".arc" a b c "")( }- w/ j3 T4 p7 B+ ~
- (command ".array" "last" "" "p" c "NUM" "" "")$ }/ O! }4 ?, R7 g8 y( H9 l" |
- (princ))
0 p' T9 b6 b& c7 ]: R% ? - ; T5 H) Y$ k6 K0 b# R
- ;=====================================================================
: W, t1 p, K# K R2 t - ;============== FUNCTIONS GAY TUY THICH : EVERYTHING IF ==============
. ]2 w; t4 u( t2 _7 Q6 n6 X& t# f - ;========================== 03-11-2024 ~ 19h38 =======================
9 @* K. ^; h8 ?% B - ;=====================================================================: @4 J- s4 h/ t4 G
( K% \0 Z4 h1 O9 R$ x6 l- (defun c:gay ()
$ n0 _7 U& o) a - (setq a (getpoint "\nChon diem: "))
# y9 u" F5 h4 y/ i: O - (setq b (getpoint a"\nChon diem: "))7 f0 T: P3 E/ r- @7 ^, J# \+ w
- (setq c (getpoint a"\nChon diem: "))(princ)/ e# L I# N( T
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))0 D' ~$ D# Q+ b# `
- (command ".pline" a b c "")
7 Q' n" E7 E+ R5 } - (command ".array" "last" "" "p" c "NUM" "" "")# d; Z/ k* [; o; C
- (princ))
3 x" f4 C! J; g& z2 A7 f$ N7 ]3 k0 Q
9 ~8 J: h! M! X2 `- ;=====================================================================7 M& L# M1 D8 M% J: s
- ;============ FUNCTIONS HECLOIT TUY THICH : EVERYTHING IF ============
, J; L7 @4 {6 ~+ {0 R9 R* F - ;========================== 03-11-2024 ~ 20h02 =======================
5 M/ \- a/ {4 w4 f$ ` - ;=====================================================================
# y6 T: ?' O1 F# |
+ Y: O# K1 m- p: X* h& Z" D- (defun c:hecloit ()2 {, ~* Z9 N* ]& o- V
- (setq a (getpoint "\nChon diem: "))7 T6 w `0 U6 @9 ^* G& _+ _
- (setq b (getpoint a"\nChon diem: multi "))) V: g) @+ D% W6 k; @7 T
- (setq c (getpoint a"\nChon diem: "))(princ)2 d* v9 e6 r/ X
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))) X: w5 Y( Z2 ? f6 B y T; L- x
- (command ".pline" a b c "")' ?- y7 x& p2 P1 Z, w4 u# n
- (command ".array" "last" "" "p" c "NUM" "" "") s+ L' ~. O8 [. g: m) g8 q0 Y
- (princ))
% b' K7 R6 \7 M, I f3 o' a
# C7 w+ z J; |( Y: @6 q- w# z
6 F3 n) i; [% {- ;;; ============================ Merge Hatch =============================
6 d1 ~& F2 j: b& X* k% ~
- y) V. ]. {; V# n8 ], g; K- (defun c:mh (/ ss entht sl i dt dtht)* I0 K6 G" _* P: M7 D" {, U" B
- * E. c) Q1 _- t, w$ c
- (princ "\nMerge Hatch - free lisp from CADViet.com")
# V5 n0 {, V! |# }* G! p6 \4 s! X) c - 8 N; S1 C4 W* z4 i, h
- (setq: O, }2 Z7 C* L: v* S
- ss (ssget '((0 . "HATCH"))); E* }, x8 d9 t1 p: k x/ F
- sl (if ss
+ d5 U. Z, A; c2 J) o' L2 k - (sslength ss)
% x: g/ a7 Y8 z5 a9 e: j - 0
8 E: c$ ?5 D0 A - )
1 b) t' i) y' _' f - i 09 S( \5 l# L" Y! O7 y/ N
- l 0
8 J3 ^- [9 ?! I0 A, c - )2 W, \, L' B7 e1 H0 N+ q
- 5 O/ L9 E7 _, h7 @2 I/ f
- (repeat sl
+ C0 n R& d& q- ?6 ^! I3 \: i( N - (setq" J2 Y' S( V- U1 v0 T
- entht (ssname ss i)
$ \' Y6 w- M2 V, }) N; V/ N1 N - dtht (getbdata entht)4 S6 | p9 l8 A7 d% I
- dt (append dt dtht)! p3 t. Y4 ]5 W# z
- l (+ l (cdr (assoc 91 (entget entht))))
0 `* |/ m; { b% S) E4 B, w - i (1+ i)0 e$ K3 s. X1 N f
- )
0 x4 E* c& f0 a* U5 p: P - )) `& ^) U; ?% Q8 Z2 |2 W+ x# o: O
- % Z# _( N' Y+ Q/ \+ V* X4 {% f
- (setq ent (ssname ss 0) M. ?7 c4 f; L0 J! u
- ss (ssdel ent ss)
7 j6 L; f5 w1 R) b - tt (entget ent)3 G( e: O3 {# i7 G
- duoi (member (assoc 75 tt) tt)
) }' X' Q' y3 b% Z! M5 L4 d - dau (reverse (member (assoc 91 tt) (reverse tt)))7 g5 _; S- S" q E
- tt (append dau dt duoi)& O' F, u! v. X: G7 w: v$ d
- tt (subst (cons 91 l) (assoc 91 tt) tt) I) R/ O' W' U6 x
- )
) n/ Y+ L1 d' h' w+ ^) L; { - (entmod tt)6 w3 H, B) d* w& W
, F+ g0 K: S5 y7 Z- (command ".erase" ss "")
P/ L+ {, ]' B2 N9 U! A! S, w0 ^ - (princ)+ J$ f% I% Z5 }: ^* o9 |
- )
) f! i( R* M0 W3 l D - 9 C, ?( o" h* }: |. w2 C; M
- (defun getbdata (ent)* l+ t5 T) F7 k3 ?
- (setq tt (entget ent)
( k0 \8 z G; x7 b/ R1 ^, ] - tt (cdr (member (assoc 75 tt) (reverse tt)))7 A) q- O# M" L
- tt (cdr (member (assoc 91 tt) (reverse tt)))( }9 U/ s f F
- )
! l5 ~& q' X( M9 x0 q( }) o9 [ - ). z& D9 p1 j, F% ]
6 |4 Z% M; c1 Y9 \+ p- _
# `$ i5 z* L! t* L C8 n6 j/ q- (princ)
/ r8 ^* N4 `( W
3 Q' t" o; }6 W" t9 c0 W6 ~- ;;; =========================== CAC LENH LAYER ==============================6 u+ T, o, I0 E& e
- ;;; =========================== Layer hien hanh =============================+ P& s: p) d. d! k% m
1 B8 Y2 {8 q/ C; R' n1 ~2 m- t- (defun layset (/ LAY) (setvar "cmdecho" 0)5 ~6 i0 x, A" w) V) h# L
- (setq LAY (entsel "\nPick vao doi tuong muon Layer hien hanh la Layer cua doi tuong do : "))" b" k) N/ m: r" `
- (if LAY (progn
( N, w" d" _- W/ ~1 N: G @ - (setq LAY (cdr (assoc 8 (entget (car LAY)))))8 x7 C. h7 m/ `3 w$ A8 a# a
- (command "_.layer" "set" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) )
# G' p2 p; b5 m! v - (progn7 {% ~7 ]+ a- s' c+ K
- (if (not ddlop) (load "ddlop")) (if (setq LAY (ddlop))
& p) g# f- T. j0 f( `, O7 w! R - (progn
8 `9 Q6 V3 e/ }7 p! q9 \6 S - (command "_.LAYER" "ON" LAY "THAW" LAY "SET" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ) ) ) )(princ) )
/ {1 L2 E1 L* P - (defun c:LLL () (layset))(defun c:LAYSET () (layset))
7 {, ^% Y; w" Q( _" ` - , E& e( u3 j! q
- ;;; ================== Cap nhat doi tuong vao layer hien hanh ==================
4 L8 m* H, }; j6 ~: w) V
: i: h3 U: e+ k( J( v- (Defun LAYCUR (/ SS CNT LAY) (setvar "cmdecho" 0)
) Z8 ~/ ^' d+ D; @( ~3 ~" [$ s - (if (not (setq SS (ssget "i")))9 C0 V* M- J- o. T, T0 F0 X
- (progn (prompt "\nChon doi tuong cap nhat vao layer hien hanh: ")5 T1 A) D; o9 p6 p" l* \) q
- (setq SS (ssget)) ) ). [: Z. m) m' q& o' B- _0 \
- (if SS (progn2 P D5 K3 [9 r& @9 C& ]5 l
- (setq CNT (sslength SS)) (princ (strcat "\n" (itoa CNT) " doi tuong tim thay.")) (command "_.move" SS "") . I. }( l3 D4 ?- _& n1 S
- (if (> (getvar "cmdactive") 0) 8 ?) g4 y! L/ A& Y- Y
- (progn7 S2 J( f1 ]6 g4 H1 b
- (command "0,0" "0,0") (setq SS (ssget "p") CNT (- CNT (sslength SS)) ) ): [5 }5 Y) o/ i% ]
- (setq SS nil) ) (if (> CNT 0) / O. U' h) r8 s2 h$ A, i
- (princ (strcat "\n" (itoa CNT) " doi tuong tren layer LOCK.")) ) ) )! {; m( D/ [# @4 _
- (if SS (progn3 x1 c3 d, ~0 j6 i* I0 Y* k6 m8 c% h
- (setq LAY (getvar "CLAYER")) (command "_.chprop" SS "" "_la" LAY "")
& T7 D0 `; x& I. G5 {# c e - (if (= (sslength SS) 1)
1 J1 @+ `; Y! n- r; o - (prompt (strcat "\n1 doi tuong da cap nhat vao layer : " LAY " (layer hien hanh)."))
% f" U8 w$ M8 \! H. O - (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")) ) )) (princ) );end
3 _7 u, M g* l$ ~* k+ _. r - (defun c:LAYCUR () (laycur)) (defun c:LHH () (laycur))$ _. O" Y; q( s! L- v1 Z) m) V4 a
- / i- @2 @: p3 {- s0 ~
- ;;; =========================== Layer Iso =================================== D2 E0 `8 r. Y: g l5 h9 I
9 [: k3 D2 l% b/ h5 d- (Defun LAYISO (/ SS CNT LAY LAYLST VAL) (setvar "cmdecho" 0)
) I# W) @0 p# W" R* a - (if (not (setq SS (ssget "i"))) (progn3 y7 a. B' k) z* |! { b
- (prompt "\nChon doi tuong tren layer(s) muon lam viec doc lap: ")
& B6 w$ R5 I9 E. N+ D& c, Z/ ^+ j - (setq SS (ssget)) ) )# P8 A! h& E; [# E
- (if SS (progn (setq CNT 0)
6 Y1 C; z# q5 [2 \ - (while (setq LAY (ssname SS CNT))1 s: F% G1 K- K; a% h$ j5 }
- (setq LAY (cdr (assoc 8 (entget LAY))))
$ f- h& ~; S1 ^1 H$ j7 b7 p - (if (not (member LAY LAYLST))" v2 W7 a( E/ f) q( l
- (setq LAYLST (cons LAY LAYLST)) )+ Y/ B4 i. R) H7 i
- (setq CNT (1+ CNT)) )
3 K4 ]0 d* X, Z - (if (member (getvar "CLAYER") LAYLST)
7 f+ V! Z7 I% i) C4 k9 E - (setq LAY (getvar "CLAYER"))
2 o: S2 R, w! m$ p - (setvar "CLAYER" (setq LAY (last LAYLST))) )0 W2 g, x( g5 w& M* o1 K
- (command "_.LAYER" "_OFF" "*" "_Y")
/ Y% y& N4 x, l9 A. _5 d, ~; j - (foreach VAL LAYLST (command "_ON" VAL))$ Y! {$ b# t/ r" V* r9 Y) ^
- (command "") (if (= (length LAYLST) 1)
7 h( N* q7 |( G$ y - (prompt (strcat "\nLayer " (car LAYLST) " da tach ra."))
' V( [( U& N: o* p+ w - (prompt (strcat "\n" (itoa (length LAYLST)) " layers da tach ra. "
# @0 T/ ?: l1 p1 T$ l# G - "Layer " LAY " la hien hanh." ) ) ) ) ) (princ) ): j' p* O: [% j) d3 z5 w4 R
- (defun c:LAYISO () (layiso)) (defun c:LI () (layiso))3 W. \. K m: @) b) q0 K
' x- R# C6 Z+ i) i, E- ;;; ========================= Layer Match ==================================
4 Q3 y$ `8 E. F4 ]
$ `* u. w; d' {% ~! ~) t2 b" s- (Defun LAYMCH (/ SS CNT LOOP LAY ANS)
) q/ t2 Z, K0 }& B) a( l" M - (setvar "cmdecho" 0)* L6 h: k0 `! w
- (if (not (setq SS (ssget "i"))) (progn% Q" b4 K5 _6 G3 N7 _2 H+ G9 d
- (prompt "\nChon doi tuong muon thay doi Layer : "); h. z: o% ^# h/ w) z+ T. B) C9 y
- (setq SS (ssget)) ) )
, Z9 H% A) w& [9 |1 O - (if SS (progn. o* K1 C8 f: z1 H: m6 t6 d
- (setq CNT (sslength SS))
$ Q0 Y( H5 U- M0 \/ n- | - (princ (strcat "\n" (itoa CNT) " found.")) (command "_.move" SS "") ; D$ D8 F, \/ e& Q( p! X
- (if (> (getvar "cmdactive") 0) (progn. T( n3 X6 C+ j' i. L: f5 I
- (command "0,0" "0,0") (setq SS (ssget "p")% G- F! V+ O- b
- CNT (- CNT (sslength SS)) ) )
4 C2 ^- [- k2 G% C, [ r8 Q1 B - (setq SS nil) ) (if (> CNT 0) % j) v" D) e# \+ f! u: @6 C. D
- (princ (strcat "\n" (itoa CNT) " tren layer LOCK.")) ) ) )
6 \- N B8 X4 ~3 b) f& e - (if SS (progn }% N3 v9 q, l9 j" _7 [
- (initget "Ten") (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ") LOOP T )
$ o) i) X4 M6 j. J- J - (while LOOP (cond
) S3 ?5 l# ?. B( q* t - ((not LAY)
/ D! z& X& W, {3 i( ^5 d - (prompt "\nKhong chon doi tuong.")7 n2 m8 c& r, p9 R* z0 y
- (prompt "\nSu dung layer hien hanh? <Y> ")! F! ?3 P; l9 s9 J0 D$ q h C- C
- (setq ANS (strcase (getstring)))2 Q- a* ~9 A3 n- I
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
/ Z) s7 ?7 r$ K+ V& h8 b( X! B - (setq LAY (getvar "clayer") LOOP nil ) ) )
5 _( T1 \# @- v - ((listp LAY) (setq LOOP nil) ). Y' J, n. x" G( u: V; `6 F
- ((= LAY "Ten")
8 O {! S7 `/ |4 }" `& V - (setq LAY (getstring "\n>Nhap ten layer: "))
/ ~% R' @- y9 U2 A% d; U6 Q - (cond
: d2 G! Y. C) l f - ((tblsearch "LAYER" LAY) (setq LOOP nil) )- [ r% s& Q3 p* a$ e, [; t
- ((/= LAY "") s- e j4 |$ d( v/ k
- (prompt "\nLayer chua co trong ban ve. Tao layer moi? <Y>: "): m8 R4 ~4 k$ x: u+ E
- (setq ANS (strcase (getstring)))
4 m9 a2 }6 ] I. Z - (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
1 l8 Y8 v* I$ U/ X0 Z - (progn
( o. H$ g/ @" S$ F - (command "_.LAYER" "NEW" LAY "") j* I. a+ r: o2 x" w
- (setq LOOP nil) )0 T R2 r5 ?# I/ l, V
- (prompt "\nLoi ten layer.") ) ) ) ) )( ~9 x8 c1 w5 M$ }
- (if LOOP (progn (initget "Ten")! o) }& ^, L+ U5 x& F# O
- (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ")) ) ) ); while LOOP
6 M) L: f2 B9 J4 V$ f - (if (listp LAY)1 ~; Q( ?. n$ z7 k+ y( ]
- (setq LAY (cdr (assoc 8 (entget (car LAY))))) )
% d% o4 s! ^& z3 ^; U/ j2 A - (command "_.chprop" SS "" "_la" LAY ""): m+ `' x( |2 {2 T1 `! u
- (if SS (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong thay doi toi layer " LAY )) )
, e1 D: Z6 O( b* A6 w: m3 y/ l - (if (= LAY (getvar "clayer"))' q* \& c! U9 m* F0 X$ j9 I
- (prompt " (layer hien hanh).") (prompt ".") ) ) ) (princ) )
1 Z( f2 O( `9 m1 R! H" k% d - (defun c:LAYMCH () (laymch)) (defun c:CLL () (laymch))! v0 |* S( g# Z$ `* n I& k: y
- ( V5 O6 H( I: W$ V% H
- ;;; ============================ Layer OFF =================================. d5 L8 w% G4 a. s' F
$ _! t$ n; g! |8 i! T. ?- (DEFUN C:LJ (/ SSET SSL ENT LAY I MODE)( O+ w( y/ C- ~$ b4 f; A- V
- (SETQ SSET (SSGET))
- m' H1 ^0 t% i - (IF (/= NIL SSET) - }# h2 Q* e3 Z* ^1 r
- (PROGN
; B i! [9 b) b- d7 Q4 ? - (SETQ SSL (SSLENGTH SSET))
4 D. H1 g9 t( i% ~8 }9 b. R1 A - (SETQ LAY "")
5 g8 D5 U5 _8 x - (SETQ I 0)' L" d6 \& Q) {
- (SETQ MODE 0)
, i6 Y" s* T+ P: G3 u - (WHILE (< I SSL)1 B, a/ K+ n/ {( L
- (SETQ ENT (ENTGET (SSNAME SSET I)))/ m3 u. c( t0 _' ^7 W9 z7 h
- (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
/ s! j' Z0 X$ q1 ^3 j - (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) ))
, \/ }% K+ a$ P7 e - (SETQ I (+ I 1))2 l6 s7 q. J5 F
- )
) U% o6 x& f. b( U - (COMMAND "LAYER" "OFF" LAY "")
2 K2 s# B( U, C2 d5 T# f - (IF (= MODE 1) (COMMAND "") )" a& `" r$ p1 y
- )" L5 R2 P$ B/ z" T% Q) B5 K* d
- )" o! [$ V4 Y1 K
- (PRINC)+ F3 p' F" }+ l0 u+ ^% q# H
- )
# A$ T, V' \7 P( Q& t - 3 C9 ^7 N) @0 A7 W
- ;;; ================================ Layer ON ==============================4 ?; H4 V6 i$ |0 o0 W2 Z y
- ! N6 j( M! B/ h! S/ D1 E
- (Defun LAYON () (setvar "cmdecho" 0)
: j/ h: u* d- Q {' C2 _9 Z& b - (setq Lay loff1) (setq Loff1 Loff2) (setq Loff2 Loff3) (setq Loff3 Loff4) (setq Loff4 Loff5) (setq Loff5 Loff6) (setq Loff6 "0")
1 i {( C A; y) F0 J# J+ q - (Command "LAYER" "ON" Lay "") (princ (strcat "\n Layer : " LAY " da ON.")) (princ))* j$ d+ O+ }8 y# }! e. ?
- (defun c:LAYON () (layon)) (defun c:LOO () (layon))+ X5 v3 P3 u U- E
- (Defun C:LO () (setvar "cmdecho" 0) (Command "_.LAYER" "_ON" "*" "") (princ "\nDa ON toan bo cac Layer !") (princ))% [. n9 D7 _2 x( o) W. A
2 Z6 @6 d$ F2 C, m; X: L# J& q9 C1 M: {- ;;; ============================== Layer Freeze ===========================$ u1 p4 P. Q/ E6 m( M7 W
- ( K* d7 d+ l3 i: C7 N
- (Defun LAYFRZ (/ LAY TEMP)(setvar "cmdecho" 0)
% i9 s' b9 r+ j$ }) f) C; L - (prompt "\nChon doi tuong tren layer(s) muon FREEZE: ") (SETQ SSET (SSGET))
/ a4 p, y. \; c: \) a I% L/ A - (IF (/= NIL SSET) (PROGN
/ M. k; G# y0 i# C4 k; ~. } - (SETQ SSL (SSLENGTH SSET)) (SETQ LAY "") (SETQ I 0) (SETQ MODE 0) . L4 E% N! Q" A8 t9 ]6 x- q
- (WHILE (< I SSL)4 b) z: l, _; [3 f, T- ~7 _" a g
- (SETQ ENT (ENTGET (SSNAME SSET I)))/ Y1 c% }, E+ F& v# R. M2 _1 Q3 u1 p
- (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
7 A$ r" g/ u# l# Q; N( I; T) L( o" `2 N - (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )) (SETQ I (+ I 1)))
' d6 s: d& r% I6 F3 ^# A1 l( N - (COMMAND "LAYER" "FREEZE" LAY "")
j; c7 J9 D8 v# T+ F! H - (IF (= MODE 1) (COMMAND ""))))+ }3 W/ C) m% {0 r% b% d1 v9 v
- (setq Lff6 Lff5) (setq Lff5 Lff4) (setq Lff4 Lff3) (setq Lff3 Lff2) (setq Lff2 Lff1) (setq Lff1 LAY)
) p; ?! K1 T8 S - (princ (strcat "\n Layer " LAY " da FREEZE."))(setvar "cmdecho" 1) (princ) )
# t5 {, ]% L8 C, ?' d/ \ - (defun c:LAYFRZ () (layfrz)) (defun c:LF () (layfrz))9 W y5 G; \, ]/ t# _9 c
" x& M3 W+ r) M; p- ;;; ============================== Layer Thaw ===============================
. \. |' w/ A0 i
6 L9 e* `' ]7 ^, @- (Defun LAYTHW ()
4 U i6 H* L6 G - (setvar "cmdecho" 0)9 I+ v6 g" m* Q* w
- (setq Lay lff1) (setq Lff1 Lff2) (setq Lff2 Lff3) (setq Lff3 Lff4) (setq Lff4 Lff5) (setq Lff5 Lff6) (setq Lff6 "0")
5 V7 }7 A9 ^0 u% m' R, }$ x - (Command "_.LAYER" "_THAW" LAY "")
- W! n( s# K# G+ | - (princ (strcat "\n Layer : " LAY " da THAW."))
2 |8 [1 \% x: V4 k; i - (princ) )
8 ?5 s4 W2 z; `0 ^1 U% r( e - (defun c:LAYTHW () (laythw)) (defun c:LW () (laythw))- H1 _& X9 }; |6 F4 l& [( p# S
% A" ~) z( Q, _/ q- ;;; ============================== Layer Lock ==============================: d7 n! r$ w: l6 h$ V1 D* I/ ^
h% E3 S% k! b6 j' @% {- (Defun LAYLCK (/ LAY)0 z+ [0 u ^4 X, h1 e
- (setvar "cmdecho" 0)
) B* x) p# _( s1 X% m - (setq LAY (entsel "\n>Pick doi tuong tren layer muon LOCK: "))
4 j* E: }7 S6 J - (if LAY
' L+ {- @7 @! Z) }* ^6 b9 E4 R - (progn
}% G8 B3 w4 Z+ v+ ]1 Z - (setq LAY (cdr (assoc 8 (entget (car LAY))))), K6 ?# r! j/ ]7 d: c' H3 O d. T
- (Command "_.LAYER" "_LOCK" LAY "")
& E4 l- {* O9 S! G0 y% i - (princ (strcat "\nLayer " LAY " da LOCK.")) ) ) (princ) )
9 f- V- c. d3 v6 G1 Z - (defun c:LAYLCK () (laylck)) (defun c:LK () (laylck))
) u% W \7 F2 }7 ^" ^9 ]5 D4 @% g - # T1 V F M& d" ?+ B1 E; W3 [
- ;;; ============================== Layer UnLock ==============================7 G. g0 b- o, l4 @+ Y, S* g$ Q
- % h3 w# l9 r9 I/ H
- (Defun LAYULK (/ LAY)% s+ p: p- |4 j
- (setvar "cmdecho" 0). G( u0 W6 F7 l3 g
- (setq LAY (entsel "\n>Pick doi tuong tren layer muon UNLOCK: "))
- ^0 [1 ?# N! k4 F+ H" l6 l; a - (if LAY& t6 q1 t ?4 a, _1 k( \
- (progn! v ^- s1 @) G5 N
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))7 O2 {# C- y: o. m. V
- (Command "_.LAYER" "_UNLOCK" LAY "")
& z. M8 [8 y+ ~- I - (princ (strcat "\nLayer " LAY " da UNLOCK.")) ) ) (princ) )
1 w; z/ `. P( z6 b3 H - (defun c:LAYULK () (layulk)) (defun c:LU () (layulk))6 p! |2 F9 l# U& s1 m5 |3 l
2 h; p9 J+ j! ?" }4 H+ w- ;;;===================== Delete all objects of Layer ========================
[/ u$ c& l1 Z% i! ? D - % ]3 b T0 t! m4 F+ c$ g% k6 F! S5 t
- (defun DELAYER (/ ocmd L S)
$ N" h; c4 }* a5 g1 l) I: Q7 o, w - (setq ocmd (getvar "CMDECHO"))4 h1 H, G: ?0 ^
- (setvar "CMDECHO" 0)
' t8 I/ Q: e9 B$ [3 x2 H6 [$ a - (setq L (strcase (getstring "\nLayer(s) to delete: ")))8 k+ E7 R" J/ z. V
- (setq S (ssget "X" (list (cons 8 L)))) # z: U7 G; u4 K7 p3 m) x
- (if S
8 r7 c0 H N: Q - (command "ERASE" S "") ! G2 ]* i5 B2 I: F x; b; `
- (princ "Layer empty or not a valid layer name.") ) [) T7 B$ M% @- ?* h# B: a
- (setq S nil) d8 o# E4 c; g( C
- (setvar "CMDECHO" ocmd)
" C$ S3 f: o' Y1 @ - (princ) ) 5 G9 [0 U% ~, m. o4 C
- (defun c:DELAYER () (delayer)) (defun c:DELLAYER () (delayer)) (defun c:DEL () (delayer)); ^6 X7 a; s, B% N, |. h. y
- 1 p9 N/ {: d) {# V3 ^% M3 e
- ;;; ========================= HET CAC LENH LAYER ===========================$ ]7 E' a, m0 J- g u
3 V) Y# o) E/ k2 T' n- ;;;====================== EXTEND NHIEU DOI TUONG ===========================* {- \& d' }* E* Z1 d$ O1 E8 M
- & ^. B9 y% F- y$ n* _ R: a3 C
- (Defun C:EET ()( ^- h, ?2 K {' m: X
- (Setq CVAR (Getvar "CMDECHO")) (Setvar "CMDECHO" 0)! `; {5 D# `4 g+ \% K
- (Prompt "Chon doi tuong dich cua EXTEND :") (Setq CUTEDG (Ssget))5 _3 l6 e2 s+ A/ ]" k
- (Prompt "Chon doi tuong de Extend :") (Setq SS (SSget)) (Setq LEN (SSlength SS))0 N1 k+ a; |( s* P$ M
- (Setq I -1)+ o: M' d% l3 [& o, h9 F
- (Setq SIDE (getpoint"Chon phia de EXTEND")) (Command "EXTEND" CUTEDG "")
9 W9 P2 r# i" d3 b; k - (Repeat LEN
& I, m% P, T0 P4 o. T - (Setq I (1+ I))$ ^* ]3 p3 j- Q: U/ s4 R: w$ r
- (Command (List(SSname SS I) SIDE)) ) (Command "")
" w% ?4 Y& h1 l/ i V( s- w - (Setvar "CMDECHO" CVAR) (Princ "Da Extend xong moi ban lam tiep") (Princ) )0 X z% I# A9 {6 ]# O
6 t! m2 }6 T8 H/ q+ p' x3 V- ;;; =============== EXTEND 1 DOI TUONG THEO KHOANG CACH ===============
+ V9 N3 Y3 `+ X& j - o& T8 s( }! k) N8 {: k g) O" u7 w
- (defun c:ETT () (setq os (getvar "osmode")) (setvar "osmode" 512)( ?6 m) S. E& L2 W
- (setq pt1 (getpoint "\nKich vao 1 dau doan thang can EXTEND "))
$ N; Q/ C( R% Z8 r$ g - (setvar "osmode" os)
, l1 u2 ?* C5 K& S9 _ - (setq dis (getdist pt1 "\nKhoang cach can EXTEND :"))
6 p. A! f4 [2 b( W9 f3 p - (command "circle" "endpoint" pt1 dis) (command "extend" "last" "" pt1 "") (command "erase" "last" "") (princ))
3 k8 L0 ~4 j# P q - ) D' y+ X- t( @( z7 f3 ~( k
- ;; ================ Change width of polylines =========================
7 y' H A, P9 _/ r - ! ~' h3 i, A6 Q% w# n% x1 h5 e
- (DEFUN wp (/ a b sophantu sodem list1 ha:wid)! f: Y8 v$ p8 b6 w! S: z) L
- (PRINC "\n Chon doi tuong can thay doi do day (Width) !")
. F' @/ F G% H9 F6 b. C6 ^ - (setq b (ssget)) 5 a6 U: A( |# D' }, F Y# Q
- (setq sophantu (sslength b)) ! f& y2 n2 E' O7 }0 r
- (if (null ha:wid) (setq ha:wid (getvar "tracewid")))
% N# a6 n9 s$ r- |' y1 { - (princ "\nDo rong polyline <")
& C" ~* ?8 E/ D' \' Z* { - (princ ha:wid)
5 L& p* ~1 W) A9 f - (princ ">: ")
/ O* E2 T$ k/ x5 ] - (initget 4)
C0 Z) T$ B5 A' L' J8 k' X - (setq ha:wid (getdist))6 o% O% u; H. ]- \
- (if (null ha:wid) (setq ha:wid (getvar "tracewid")))" c9 h2 P6 h0 |9 z( a
- (setvar "tracewid" ha:wid)0 a+ }* |8 C K8 o% j( u
- (setvar "cmdecho" 0)5 T6 M! |% d5 x% p
- (setq sodem 0)
: u! Y3 e$ d! i0 V0 s - (repeat sophantu$ t8 `; ?3 j1 r% y" P' O: E, ]
- (setq a (ssname b sodem))) }& r5 {3 T: U/ L) m
- (setq list1 (assoc 0 (entget a)))+ n. }9 M" K, c {
- (cond: Q- \4 n$ s- q/ u
- ((= (cdr list1) "POLYLINE") (command "_Pedit" a "w" ha:wid ""))
1 p* ?) X) J$ W: N6 X: l - (PROGN (command "_Pedit" a "" "w" ha:wid "")) )
7 Q; F0 e5 x! K! f6 p$ v - (setq sodem (1+ sodem)) )(SETVAR "cmdecho" 1)(princ)) A) A2 k6 J$ k0 N4 c& ?9 E0 b
- (defun c:wp () (wp)) (defun c:pw () (wp)), w* W( b+ q7 u, s- G
- 3 n, E" B# V* m% B/ h# W- X
- ;; ================ Change radius of circles ==========================8 _ N2 F2 D* b @7 g# c$ Z+ |. g
+ ], Z- k/ Y5 a! p) A- (DEFUN C:CHR (/ SSET SSL M RD I) (PRINC "\nSelect Circles :") (SETQ SSET (SSGET))
, a& t- ?* j7 Z - (IF (/= NIL SSET) (PROGN (SETQ SSL (SSLENGTH SSET)) (INITGET 4 "") (SETQ RD (GETDIST "\nNew radius : "))
( O" @* `$ ]; j& _- z9 P - (IF (/= RD NIL) (PROGN (SETQ I 0)3 s) B' N ~4 ?0 [: Y! b, K
- (WHILE (< I SSL) (SETQ M (ENTGET (SSNAME SSET I) ) )
8 v: a' A3 S# P( o) q - (IF (= (CDR (ASSOC '0 M)) "CIRCLE") (PROGN8 X% |; W& a% a
- (SETQ M (SUBST (CONS 40 RD) (ASSOC 40 M) M)) (ENTMOD M) ) ) (SETQ I (+ I 1)) ) ) ))) (PRINC) )' [0 S8 y& _) K1 X
5 o' } c/ J* [; I. X9 y$ r- ;;; ============================== TEXT Hight ===============================
+ u% t: M5 B; e1 b& b
i1 `/ R! p& X- [5 B2 p- (defun texthght (/ ent hght)
' ~+ y; j& A" b/ w4 F - (setvar "cmdecho" 1)
$ w$ M, l% o. h - (prompt (strcat"\nSelect text entity with required text height"))
G5 L9 j8 K3 |& I2 I3 c - (prompt (strcat"\n."))
1 d' e3 [! N3 k- E - (setq ent (entget (car (entsel))))/ s! ?" U7 Q Y( [/ D9 H
- (setq hght (cdr (assoc 40 ent)))2 T$ q n. @& N, D
- (prompt (strcat"\nText height now set at "))(prin1 hght)" p) |9 o; ], V2 e/ k. f) e
- (prompt (strcat"\n.")) * Q- u5 _, G( f. E& a4 t, C
- (setvar "cmdecho" 1)
( e; H8 U# }0 f8 \( Q - (command "DTEXT" PAUSE hght "") )
& @/ E5 b9 L- |! ^* i9 d9 q - (defun c:teh () (texthght)) (defun c:texthght () (texthght))- o6 Y! k! n! U" L+ i
- + v0 e/ [' A! h$ a$ d0 t
- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================+ T( e6 l% u) ~
3 p& f$ l5 T% b- w* g- (defun c:tuu () (setvar "cmdecho" 0)
' l6 X( q. R# [* Z" j0 V) k - (prompt "\nHay chon dong TEXT can gach chan ")
+ P/ @7 _; @8 e$ V% \9 O - (prompt "\nSelect objects: ")
6 Q# E2 p1 p, B+ ?8 A - (command "select" "au" pause); S4 _$ i9 U) \: x9 n
- (setq sstxt (ssget "p")
+ v7 c. m5 @' J6 T- f! @2 ^4 u - sslen (sslength sstxt)
: i( e( `7 f1 p9 o3 i/ I+ _( c) p7 m - ctr 0 )1 r+ b0 N: K. U+ C
- (command ".undo" "mark")3 U I' ~" B5 L
- (while (< ctr sslen)
, Z2 K& Y1 g# h4 ? - (setq listxt (entget (ssname sstxt ctr))# i! g1 Q0 |* t7 z5 D
- txttxt (cdr (assoc 1 listxt))
, z3 c9 `$ t7 X( n4 A - enttxt (cdr (assoc 0 listxt)) )9 B, j8 L/ k6 ]7 u
- (if (= enttxt "TEXT")9 G0 S1 c. E" {$ K, u
- (progn/ {3 I- Y5 ~& j4 ?" h8 z
- (setq testxt (substr txttxt 1 3))
2 w a0 _" v1 G' G0 v* l( o - (if (or (= testxt "%%u") (= testxt "%%U"))
. S- A9 Q( M- l- G9 p" l - (setq newtxt (substr txttxt 4))
7 a1 h4 T2 I% l0 p T/ M - (setq newtxt (strcat "%%u" txttxt)) )
) \( o, P( A7 w f. o# L8 p! N - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
1 u. X' I4 C3 P4 x# \( P8 D - (entmod listxt) ) ); x3 u! M8 l& [$ ]7 K
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))9 f4 Z. w7 K* I1 r, x
! ?5 |- u/ K7 P: I, Y- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================' U* m B) B& H `
: ~+ u( G5 z9 r' Y- (defun c:tob () (setvar "cmdecho" 0)
4 }" A5 S9 ]; A1 E& B5 o - (prompt "\nHay chon dong TEXT can gach tren dau ")3 u D4 [) Q& V& ^7 V; ]
- (prompt "\nSelect objects: "). T9 ^* M2 ^( R* C0 D1 J# r1 ]. O& `" }
- (command "select" "au" pause)% q+ z7 N- C0 h
- (setq sstxt (ssget "p")1 _. u: v' Q' q9 k$ x
- sslen (sslength sstxt)0 P6 w$ e* d% W' |5 ?
- ctr 0 )
~* S$ [/ o" E3 k0 S - (command ".undo" "mark")
, B U( y* k( k+ B) G - (while (< ctr sslen)$ s" s7 y% ?& P* F# t( K
- (setq listxt (entget (ssname sstxt ctr))" e2 P1 {# L' v
- txttxt (cdr (assoc 1 listxt))
p, ^/ k: P+ ]/ X$ j, Q0 W - enttxt (cdr (assoc 0 listxt)) )5 @$ l' n n* F6 [! S
- (if (= enttxt "TEXT")
6 m0 A7 L$ f) {% B - (progn: ?: L# M# V: H0 \3 i) @
- (setq testxt (substr txttxt 1 3))
0 }1 B$ j, S3 C6 z - (if (or (= testxt "%%o") (= testxt "%%o"))
. n& I' L- {3 w9 s - (setq newtxt (substr txttxt 4))0 Q$ G+ H! x: Z q+ r% D$ e
- (setq newtxt (strcat "%%o" txttxt)) )
3 j0 c5 G, j) i1 c) L. o - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))/ }. ^! r# c0 a0 h* `% y8 x
- (entmod listxt) ) )) X; H& s. E' ^9 I: L7 {! T1 F
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))4 L; P+ { ~: |5 p# A M$ G
- ; k+ ?% E7 }, n" Q2 A) [
- ;;; ========================== Tim & thay the TEXT ==========================! x# o# t) N# H; |$ A! _
5 @% N6 ]9 ?5 t& [9 F, c( r- (defun frstring (str search replace / str1 str2 index find)
5 {0 f* F9 m: d6 k1 y - (setq index 0) (while (<= index (- (strlen str) (strlen search))) (setq index (1+ index))/ t/ f! }5 s6 {& a7 U
- (setq find (substr str index (strlen search))) (if (= find search) (progn (setq str1 (substr str 1 (1- index)))7 N: D \4 `* ?
- (setq str2 (substr str (+ index (strlen search)))) (setq str (strcat str1 replace str2)) ) ) ) (setq str str))3 D) U4 @) G; V. n
- (defun hai (/ dial)+ s$ _! }6 s+ a$ Q" a
- (setq dial (load_dialog "hai.dcl")) ;;goi dialog* P: Q% }, m) i$ Q6 D1 P9 t
- (if (not (new_dialog "find" Dial)) (exit)) ;;
; |) ^/ I. ~% C6 A$ z. ]( f; b L' k - (mode_tile "find" 2); Tao dau nhac tai hop thoai8 S8 d9 q1 s2 O" G1 i
- (action_tile "find" "(hai1)")
9 t: j1 z% s. n. [& H - (action_tile "replace" "(hai2)")
7 `! c. ~0 e# e. c! u - (action_tile "cancel" "(done_dialog) (exit)")
: W: C5 @6 O6 j1 t - (start_dialog) 4 h. M: |' J3 e9 E
- (unload_dialog dial))
, E' o. j4 L. t# }( P - (defun hai1 () (SETQ str1 (get_tile "find")))
& _' f8 W q8 K2 @( L. X( f9 g& _) o - (defun hai2 () (SETQ str2 (get_tile "replace")))" i* U3 R+ p) V8 l; I
- ( Z, y) B2 s7 e* m+ \
- (defun c:TTT (/ a str str1 str2 newstr taphop sodem)
) u! w) [+ T, J# ~: ~% B - (hai)
1 z: L! d5 l a3 j1 s; O - (if (or (null str1) (null str2)) (princ "\nDu lieu khong hop le")6 b, f5 ~2 i: t
- (progn
% T7 Z& Q' u& u( m) R - (setq taphop (ssget '((0 . "TEXT"))))& h! A0 n% Y; _3 H7 I
- (setq sodem 0)/ K1 J" I3 Y+ w5 }
- (if taphop6 S* G: d/ X5 H) _# H
- (progn+ h t: A# ^$ x( D. G) ^
- (Repeat (sslength taphop)
1 n* f. i. g8 k2 i5 U; D - (setq a (entget (ssname taphop sodem)))9 i* P, J3 ^, @. l* z ^
- (setq str (cdr (assoc 1 a)))* j9 ~) f5 S! M. n0 y/ p# Z
- (setq newstr (frstring str str1 str2))
, _' O$ {9 w( i" L9 `2 k0 t4 t) ] - (setq a (subst (cons 1 newstr) (assoc 1 a) a))
% R4 ?3 S# z- _! C, @ - (entmod a)4 S3 w. E4 h9 m$ ~
- (setq sodem (1+ sodem)) ) )! g9 ]$ s. E7 @, z# l5 s
- (princ "\nNone "TEXT" selected") ) ) ) (setq *error* olderr) (princ))4 F6 ~& G/ i4 Y( v6 U: g, j9 J7 H
( G9 O. r$ z' o" V3 Z- ;;;============================= CHTEXSTY.LSP =============================
$ d5 m4 _/ ^& O$ u
|, a. A- j- [& D- (Defun C:TXS () (Setvar "Cmdecho" 0) (Initget 1 "SE ST ")
" Q$ k! B# V+ ~, a u - (Setq G (Strcase (Substr (Getkword "STyle/<SElection>:")1 2)))8 R; [8 J" X6 s5 ?, u; B$ ^
- (Cond ((= G "SE") (Setq A (Ssget)) (Setq B (Sslength A))
; |8 ]: ?$ ^. |: a/ R+ V- c4 E* n5 P - (Initget 1) (Setq C (Getstring "\nEnter new text style: "))4 E4 W, b# R5 y
- (Extang C) (While (> B 0) (Setq B (1- B)) (Setq D (Ssname A B))& Q$ q0 [3 N. z6 Y* f0 S
- (Setq D (Entget D)) (Setq E (Assoc 7 D)) (Setq F (Cons 7 C))
' F7 z- m( ^7 T- Y' q - (Setq D (Subst F E D)) (Setq H (Assoc 51 D)) (Setq I (Cons 51 J))
8 ]* ~) P, D, V, T1 c+ i - (Entmod (Subst I H D))) (Setq A nil)) ((Or (= G "ST") (= G ""))1 M- [1 t# x) O+ x4 c
- (Initget 1) (Setq A (Strcase (Getstring% i1 }, U1 w) h/ `2 Y
- "\nEnter text style to change: "))) (Initget 1)- C2 o" `2 d5 t; U$ C. f
- (Setq C (Getstring "\nEnter new text style: "))(Setq D (Entnext))
7 {; R' C/ N/ F$ g& B: b" | - (Extang C) (While D (Princ ".") (Setq E (Entget D)) (If& o8 w9 `, f, k% b( J
- (And (= "TEXT" (Cdr (Assoc 0 E))) (= A (Cdr (Assoc 7 E))))
1 f% ]* k( i& U- N$ s7 s - (Progn (Setq F (Assoc 7 E)) (Setq G (Cons 7 C))5 L; m) @! H/ Q
- (Setq E (Subst G F E)) (Setq H (Assoc 51 E)) (Setq I (Cons 51 J))
0 v% @3 b+ @. Z+ V+ U - (Entmod (Subst I H E)))) (Setq D (Entnext D))))) (Princ))
, k% @ L! ]# D8 h& r Y6 h
0 L- ]( {/ P! B; C. u- (Defun Extang (A) (Setq A (Tblsearch "STYLE" A))
% b& D& |" V% p, }* C! Q - (Setq J (Cdr (Assoc 50 A)))). e) s6 g/ n( n0 a$ T( w. L
) }1 S9 F6 J& T% i. D A( r- ;;; ============================ DRAW CLOUD =============================
. l* k x0 U! |8 N - 3 h7 ?5 |3 N8 j2 t( f* l* S" z# U
- (defun CLOUD (/ pt1 pt2 arc1 cnt ss la) (setvar "cmdecho" 0)
1 m# X, Q2 J4 T; y) {1 B - (prompt "\nVe cloud (may) khong khep kin - Tu khep kin ve diem dau!")0 E2 P% C9 P# I. F; j
- (setq la (getvar "clayer"))
( Q( M2 C; B, k# W - (command "layer" "m" "cloud" "c" "5" "" "")
" n' c! O. t' E7 ^" a - (setq pt1 (getpoint "\nEnter first point of Cloud: "))
% w1 M A/ ~$ u- B, |3 C+ P \ - (if pt1 (prompt "\nProceed in a COUNTER-CLOCKWISE direction..."))
" m) [8 Z6 j+ v) U - (setq cnt 1 ss (ssadd))4 Z! M7 w; |# P6 T3 H9 f
- (while pt1 (setq pt2 (getpoint "\nEnter next point - and close: "))
4 C) y1 ^8 N, Z4 N0 L - (if pt2 (progn (command "arc" pt1 "e" pt2 "r" (/ (distance pt1 pt2) 1.75))- d$ z) ^' c) q2 e" f" [' L
- (if (= cnt 1) (setq arc1 (entlast) cnt 2) (ssadd (entlast) ss)) ))
6 N C" Q) H; A: o - (setq pt1 pt2) ) (setvar "highlight" 0) (if (> (sslength ss) 0)% K9 b, l/ g9 [# F5 U i0 ?7 \( G
- (command "pedit" arc1 "y" "j" ss "" "x")! `: C' o$ L5 a4 c6 B; P
- (if arc1 (command "pedit" arc1 "y" "x")) ) (setvar "highlight" 1)* c- u# n/ }: _, H. K
- (command "layer" "s" la "") (setvar "cmdecho" 1) (princ)) ! ~' C$ t7 A" J. i$ l6 `# W
- (DEFUN C:CLOUD () (CLOUD)) (DEFUN C:CLO () (CLOUD))
: z6 S" }8 n7 C. U - ! U: i1 @# \# ^; B1 u# l- b' ?
- ;;; ================================ Funtion-Dulieu ========================, Z- @; H, W- j
- ;;; ================================ Funtion-Dulieu ========================
/ U, [' M: p' I8 H c9 ] - ;;; ================================ Funtion-Dulieu ========================. X) a* l8 K& d4 t5 y3 A5 c
- 0 {: I( o* s/ Y2 p$ `
- (defun ha:nhap (kytu thamso) (princ kytu) (princ thamso) (princ ">: ") (setq key (getint)) (if key (setq thamso key)) (princ thamso) )7 U8 I5 a" ]2 I/ u( A$ K
- (defun ha:thoat () (reinit) (setq Temp "Da thoat khoi chuong trinh"))& F( ~8 o k( [* \& f
- (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))
3 G' R; r% j5 E9 O! ]8 K2 ?6 U - (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! ^8 r8 O: e7 v' W" p - (defun hauon (hauon1 hauon2) (command "fillet" hauon1 hauon2))0 c, [ d' T0 Y. f( `( }
- (defun init () (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "angbase" 0))$ h$ R2 w* e' w5 N# x) L
- (defun reinit () (setvar "cmdecho" 1) (setvar "osmode" 0))4 ~; L7 K* T: b1 B* q
- (defun tichvecto (vecto1 vecto2) (apply '+ (mapcar '* vecto1 vecto2)))
8 Q2 |0 r. j) J) m- f: Q - (defun vectophap (v01 v02 / vectochiphuong) (setq vectochiphuong (mapcar '- v01 v02)) (list (cadr vectochiphuong) (* -1 (car vectochiphuong))))
1 ?+ _$ ~6 s c# a - (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)))
0 l( Q+ s Z9 D; a, S# } - (defun dtr (dtr) (* pi (/ dtr 180.0)))' d6 B* q- j/ H( V7 ?
- (defun rtd (rtd) (* 180.0 (/ rtd pi))): c; x; m3 V3 t" G9 \
- 7 f: Q& W0 J6 P) R/ V
- ;;;==============================PROGRAME===============================/ h6 Q$ d9 F7 L& V7 d; @
- ;;;=====================EditDiM Hien Hop Thoai Dep======================) v: G. W% e8 K( d; N- Q
- ;;;==============================PROGRAME===============================# |0 e! g, P3 F6 m* t6 ^- m7 g
4 T; q8 j* q* W0 i; r- p- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh). v7 @, M+ Y0 W. q) g# ` \- a
- ;;Chay Cung Du Lieu.Lsp & Hai.Dcl
# c' R4 q( L8 F7 O) H _5 P - (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc) V4 ]2 y! p$ B' \3 T$ W/ {
- (Setq Oldlis (Entget (Car Chon))
+ S0 J: H# d! ^* [$ o* l - Pt10 (Cdr (Assoc 10 Oldlis)), |) x" A; O1 b1 H
- Pt13 (Cdr (Assoc 13 Oldlis))9 i6 b" B; I0 z) |) p
- Pt14 (Cdr (Assoc 14 Oldlis))9 X7 I8 f) }+ Z* D9 s5 W
- St (Cdr (Assoc 70 Oldlis))
1 K# G# o. n! i - Dimdefault (Cdr (Assoc 1 Oldlis))0 O: s6 v( C' ?8 M: o
- )8 O( Z0 Q+ Z8 R; q( x
- (Cond' v' P; \! p4 y0 \% B6 ?
- ((Or (= 32 St)(= 0 St)(= 160 St))
: V. I. ?# z) `3 n. Q# x1 ] - (Progn( O ?3 L6 t& k+ ^' ^) ?5 v2 S
- (Setq Ang (Cdr (Assoc 50 Oldlis))
1 f7 t7 @$ Q5 a- q5 W$ p, T- M* H3 u8 R9 ~4 \ - Pt (Polar Pt13 Ang 500)
7 _" _9 a( _: t/ O0 ] - Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)( I8 |: l6 f$ ~3 e7 W
- Dis (Rtos (Distance Pt13 Hc))
1 k S. [9 C. ~! D2 z- \1 O - )9 b. N# I9 b, H6 `6 U1 y8 _' N
- )
0 _& E3 q! _) y5 ] - )
- W6 d8 P- ]6 E/ u6 V" | - ((Or (= 33 St)(= 1 St))' T3 B$ M+ d. x0 I0 e) {7 e
- (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
/ a5 b u/ o) c: ~ - );;End Cond0 l6 t% o1 y6 n; q" z
- (If (= Dimdefault "") (Setq Dimdefault "<>"))
. U! D! m: X! q - (Setq Dial (Load_Dialog "Hai.Dcl"))
. h6 \9 p/ @+ P4 L" ~1 i" c( F0 E- m& F - (If (Not (New_Dialog "eddim" Dial)) (Exit))
2 x4 A) R4 C p* d( _% v - (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))' Y" W; k" l0 N. i+ S) X: P
- (Set_Tile "text" Dis))6 ~, ~$ K4 ~! J( l4 [8 w
- (Set_Tile "ha:edim" Dimdefault)
( D- w: r6 h: e- J - (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai0 @# _3 n5 D2 g2 n$ t5 ^1 `
- (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")
, v( J# y- D' k5 M% ?7 A - (Setq State (Start_Dialog))(Unload_Dialog Dial)1 X' `: X3 K7 B1 }( A
- (If (And Str (= 3 State))
& i$ I4 G* F+ O - (Progn
* \- `. K5 f8 e9 ~ - (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))
7 w& k( f P/ H( `/ m - )
; X- ^" P N2 i1 q2 g - (Defun C:EH (/ Chon Name )/ c/ o7 I" V3 ], E/ b
- (Defun *Error* (Msg): v0 f9 R, A }0 R
- (Princ "\nerror: ")(Princ Msg)(Princ " ")
W, f( X9 g6 V' D( W" v. J/ s - (Start_Dialog)(Unload_Dialog Dial)
) L2 W- I1 f& r! a" H3 j - (Setq *Error* Olderr)(Princ)+ U& L+ G6 Y$ x8 m4 J) G
- )0 ^3 P2 I9 K" n. A" z# _
- (Setq Olderr *Error*)
7 V& f0 I/ m [1 `* q( w - (Setq Chon T)0 {( \/ Y" V; X$ ~8 V
- (While Chon
# g+ a& |5 k2 a& Q - (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))
( F- c. d! b3 c5 J1 p - (If Chon
c3 N A g0 Y& y, V5 O - (Progn
- e7 |3 @* t6 [ - (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))9 u# Z( Y& t4 Q3 u
- (Cond* x. `! ^+ P* T( Y" @4 g
- ((= Name "INSERT")(Command "Ddatte" Chon))
1 |/ T7 s$ o/ K- q5 H - ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))/ z4 n% k: s: U2 d. F
- ((= Name "DIMENSION") (Hai_Edim Chon))
* `$ A% ^: u' B) r8 C) Q9 T( M - )9 k- N$ j9 n4 ~1 k' m' @8 J9 F2 t
- );End Cond* y7 t+ v( v7 L7 d3 I! g& Z
- );End Progn
* j1 _( f7 Q1 x/ w - );End While
8 o$ x4 [4 S9 n6 s0 m2 c {# T - (Setq Olderr *Error*)(Princ)
# J& q& s f( s) X# N1 p8 z/ f/ [ - );End Program: ~7 T+ i7 ^- i% D0 _6 C* M
8 d( D& `( o! \+ K4 M( y- ;;;====================DDeditDim=====================
& |* z Y* s# X2 ? - ;;;=====================Hai.DCL======================
g: Y0 Z3 D6 Y& s7 {) v - ;;;====================DDeditDim=====================$ q: P$ S3 R% L% b+ y1 U
, y: m+ e t8 M, U; `- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)6 C& N# ^, [6 D6 X9 U8 G0 U3 E
- ;;Chay Cung Du Lieu.Lsp & Hai.Dcl
: L3 d2 \7 G; i G' j3 f: u* x - (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)
^( c3 H. x8 K: o+ d) n! H5 ^ - (Setq Oldlis (Entget (Car Chon))0 ^2 p5 U/ a3 f# e% D& X
- Pt10 (Cdr (Assoc 10 Oldlis))
2 K/ Q. ?, A2 y, Y" W) W6 G8 l' g$ m - Pt13 (Cdr (Assoc 13 Oldlis))
: J4 ^- D4 z" k }' C$ u% }4 \ - Pt14 (Cdr (Assoc 14 Oldlis))
7 x5 c) I$ `! {* T( u% Z - St (Cdr (Assoc 70 Oldlis))# y. j" O1 q! R7 N6 ?
- Dimdefault (Cdr (Assoc 1 Oldlis))/ a2 n8 B! t4 ~$ S' Z) b. \ C
- ); S9 h0 n2 k+ j2 H
- (Cond" }! I# @; L9 A* l6 g
- ((Or (= 32 St)(= 0 St)(= 160 St))6 Y. k/ s6 }0 e# y6 I( k
- (Progn
8 [$ g. S+ t9 ]. P$ R' K - (Setq Ang (Cdr (Assoc 50 Oldlis))
6 A2 u' K- e* x- v; _9 t% t( t3 B0 y - Pt (Polar Pt13 Ang 500)
% N. S- \0 T2 E) Y4 ]; V: m - Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)0 r, u3 Q0 [8 o$ I) D4 {1 Q
- Dis (Rtos (Distance Pt13 Hc))4 c3 m, s- e0 }0 k+ @+ F
- )& x1 s! B2 P5 j' t
- )* N1 {. u+ L0 U
- )9 u5 [1 O' x# K$ |/ d1 [( P Z
- ((Or (= 33 St)(= 1 St))0 M4 O/ f- y# U6 [$ w( I: X$ T
- (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))' F' X: {/ w, o' V/ c
- );;End Cond8 a7 O* k2 ?% P; ]* y, z/ a7 c
- (If (= Dimdefault "") (Setq Dimdefault "<>")) R4 S3 F4 {: h! A- m! U% @
- (Setq Dial (Load_Dialog "Hai.Dcl"))
( A$ s, }1 \' d- s0 { - (If (Not (New_Dialog "eddim" Dial)) (Exit))! d- P; d% o* z8 e* ?; h% r" i
- (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))
& b9 @- o1 r; f. N$ `& g' x - (Set_Tile "text" Dis))
) d2 U0 o0 [1 F7 X) g! T* m Y - (Set_Tile "ha:edim" Dimdefault)* E+ `6 p3 Q* F, B7 J
- (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai3 f; B. O% `' x, _; I8 o
- (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")
* W$ @* O. ]& i) R, O+ g9 C - (Setq State (Start_Dialog))(Unload_Dialog Dial)% Z% _5 w) x& _) G5 C
- (If (And Str (= 3 State))
% t& i, E4 x' o% p - (Progn) O+ a' _, v2 O% k
- (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))
$ d2 K- c+ _' g' g - )
! ?6 k9 H$ c: X' l" c& v - (Defun C:EH (/ Chon Name )1 \- J0 h6 r" X$ M4 l
- * \* I' s w$ H6 g- {, u& E) L
- ;;;********************Du Lieu********************
N( F5 i L) v) r
$ Z* |, g# ]: {3 h1 E- (Defun Ha:Thoat () (Reinit) (Setq Temp "Da Thoat Khoi Chuong Trinh"))
6 Q [& F8 L; z1 O6 \ - (Defun Hacat (Hacat1 Hacat2 / Hacat3 Chon)& ?4 K& a0 s7 Z1 g
- (If (And (/= Hacat1 Nil) (/= Hacat2 Nil))$ U* G4 R. F+ F l q2 S. J j
- (Progn
2 V" J. C8 @. x6 v' U2 u - (Setq Hacat3 (Polar Hacat1 (Angle Hacat1 Hacat2) (/ (Distance Hacat1 Hacat2) 2)))
; j1 z2 d7 d) x9 G; S% q - (Setq Chon (Ssget Hacat3))
8 s7 e* l4 e! O - (Command "Break" Chon Hacat1 Hacat2)3 [- B+ [5 H& ?7 f( W, V# }" ^2 ^
- )/ J$ @( K# k/ I
- )
+ _2 L3 o. n3 x5 B7 D; G* f - (Princ)
7 H! E9 `. H$ w, Z; _1 _5 ` - )
4 e& ]" x' O# W. v - ;;0 t; y+ `5 Z( i3 e2 B
- (Defun Hauon (Hauon1 Hauon2)(Command "Fillet" Hauon1 Hauon2))
2 O3 {; y. q" Q$ Z8 _ - ;;
8 U* [- J( a& ]9 b p; P! I - (Defun Taolop (Mau Lop / A)(Setq A(Tblsearch "Layer" Lop))(If (Null A)(Command "Layer" "_N" Lop "_C" Mau Lop "")) (Setvar "Clayer" Lop))- }8 V) d6 P" c/ a/ V
- ;;* T) t# |+ Y, ?$ ?+ s. a
- (Defun Init ()(Setvar "Blipmode" 0)(Setvar "Cmdecho" 0)(Setvar "Angbase" 0))1 D: s( \$ \6 D& Y) |. }4 P0 S
- ;;0 e: r, `- g2 U! P7 p& S, `, b% x
- (Defun Reinit ()(Setvar "Cmdecho" 1))* F( p4 g t* K* W+ p- g# Q
- ;;
7 R7 ~7 g* }4 G/ r& Y5 g - (Defun Tichvecto (Vecto1 Vecto2)(Apply '+ (Mapcar '* Vecto1 Vecto2)))- C$ z# j+ n# V, I4 P" K
- ;;
8 J" T% I$ z2 {0 h- E - ;;Cho 2 Diem Tinh Ra Vec To Phap, X1 h: G4 h' L& O5 o9 h' d3 e1 g* x% y
- (Defun Vectophap (V01 V02 / Vectochiphuong)(Setq Vectochiphuong(Mapcar '- V01 V02)) (List (Cadr Vectochiphuong) (* -1 (Car Vectochiphuong))))
( x- N7 ]- o6 c* b - ;;Xac Dinh Vi Tri Hinh Chieu 1 Diem Len 1 Duong Thang
+ ~" P, ?- z0 h+ j. J - ;;Da Biet 2 Diem Thuoc Duong Thang) T" y5 h2 o+ @# w$ D
- (Defun Lay_Hinh_Chieu (Dc1 P1 P2 / Hc Dc2)
% i* R7 G% o! }0 r3 W. m - (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)
5 ~4 C( u; J- D: z1 f5 \! R% l - Hc (Inters P1 P2 Dc1 Dc2 Nil)))1 d/ r, { d7 Z5 @
- ;;Xac Dinh Khoang Cach Tu 1 Diem Len 1 Duong Thang C3 U4 M+ y6 D
- ;;Da Biet 2 Diem Thuoc Duong Thang
/ n5 m0 ~( g, Q - (Defun Khoangcach (Dc1 P1 P2 / Dc2 Hc)
! U1 ^. x Q/ K( b - (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)
" [! s: J- O4 f7 C3 B3 b- c9 q+ D& y - Hc (Inters P1 P2 Dc1 Dc2 Nil))
) M4 B* u; }; v$ T" p8 {8 w - (Distance Dc1 Hc)) L# ?% \: Y! k8 Q
- )
% c5 H) l. n6 m, b2 Y - (load "nhapcua.lsp")
; ^. S6 X3 W3 \: R: s& V - (Defun *Error* (Msg)
8 u5 U! y* y2 p- a: V* { - (Princ "\nerror: ")(Princ Msg)(Princ " ")
# _. ?. l1 `5 b" u6 ]0 D - (Start_Dialog)(Unload_Dialog Dial)
0 e f* C0 ]3 ^% R: S M - (Setq *Error* Olderr)(Princ)
! f( _, Q0 A) O" W - )
& c0 G& P$ a; X: i7 B7 G - (Setq Olderr *Error*)" p- Z" U$ F3 O. `8 b' X2 ]: f& x8 X; W
- (Setq Chon T)& I j7 H& r7 L& J v
- (While Chon
# H7 [3 _/ m# n, Q - (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))
8 c& s' h8 R8 c, L5 I4 S - (If Chon6 ?# n6 B* z( K( O9 e
- (Progn% b8 q; e/ z" S! V4 X. p
- (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))
7 F( D6 d6 @2 q# f - (Cond! O+ _+ I* Q9 f0 l/ _
- ((= Name "INSERT")(Command "Ddatte" Chon))
+ [, C- y+ x0 d% N z! D, x - ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))
2 Q8 S# c" C: g! v' O4 n6 g3 ^ - ((= Name "DIMENSION") (Hai_Edim Chon))- m, S" H% n; q
- )
3 o7 y* a) I- S3 H+ Z3 w& H - );End Cond# ~8 x! m3 H ]1 [& Y! \4 W/ Z
- );End Progn5 j6 x* v# d% t, M4 [* K. a
- );End While3 p9 i5 E a8 X7 A
- (Setq Olderr *Error*)(Princ)& b8 e2 o2 b9 |4 q( ~' I
- );End Program( N5 D, s6 o0 h" P0 Q
% m% H! ?/ F# l9 h( b- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================, a9 W3 F/ F; [' B% M9 S6 r
- ;====================================Nhapcua.LSP====================================
: A+ W% e2 T6 |7 C - ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================
9 G/ ~2 l' c0 Y& P" u
# f* H1 j: X( V! T( ~4 S$ n8 u
1 M( p; Q/ q. J; ^! f- 6 z) f. y3 J* `2 u8 Q6 |* R
- ;*******************;*******************;*******************;*******************/ x: B& W/ c& [) h
- ;****K E T C A U****;****K E T C A U****;****K E T C A U****;****K E T C A U****" N5 E1 t v3 }
- ;*******************;*******************;*******************;*******************
: N& ?) W$ G+ t2 I& J; \1 x' A. c
* W' g) C+ M# X$ L! _1 n! v8 U- v- ;VE HINH BINH HANH
$ V4 _$ {1 f6 N - " m9 m# G$ W! l9 C
- (defun c:binhhanh (/ p1 p2 p3)4 A5 Q- Y8 e# B; U! D) N
- (setq p1 (getpoint "\n Nhap diem thu nhat:"))( }% U( |8 F6 J0 o+ n
- (setq p2 (getpoint p1 "\n Nhap diem thu hai:"))) o4 h: @) U# J7 O- E7 I. w
- (setq om (getvar "osmode"))
7 \$ @, s" q2 o* T% A0 Z - (setvar "osmode" 0)( e; f4 v- u( M: o6 [
- (command "line" p1 p2 "")
- q8 ~; ^7 R5 Y - (setvar "osmode" om)- D, V% d" V4 U- U6 r
- (setq p3 (getpoint p2 "\n Nhap diem thu ba:"))
8 y: J4 D5 v3 Q: O7 g - (setq a (angle p2 p1))
7 U$ j$ `' Z- j - (setq d (distance p1 p2))) y y% H0 U& h( q; W/ S8 x
- (setq p4 (polar p3 a d))
& e+ R# ^5 r7 P, V6 U4 G" G - (command "OSNAP" "none")
8 n. ^/ n% Q& x3 y1 t - (command "erase" "l" "")& v/ U9 g0 X1 A9 h" F. m4 A+ P, v
- (command "pline" p1 p2 p3 p4 p1 "")0 T4 f4 b1 @$ W7 a" _- P
- (setvar "osmode" om)$ e$ |( K% [8 g6 W! Q. M
- )
: ~, n+ U+ g6 X. Q& U" l - * A- p* i5 F4 j& }, {4 [% X& x) \
- ;VE LUOI COT8 I# ]) w! Y% s. D% ?6 w" V0 }
- y& Y+ T8 Z& Q6 }7 v9 D- (defun c:LuoiCot ()
; H+ f) {, K' i2 ?% \1 Z6 v - (setq om (getvar "osmode"))
# E G' @- o/ o+ W+ q. V) d9 u - (setvar "osmode" 0)
3 J; Z3 h V6 U, o) h( B: V( G - (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))5 Q& O% W6 u4 L' B
- (setq p0 (getpoint "\n Chon Basic Point:"))/ v, O# J# r' M+ h5 j
- (setq nc (getreal "\n Nhap chieu ngang cua cot : "))$ d# X! ^% H# s G9 v! m3 F7 X
- (setq dc (getreal "\n Nhap chieu doc cua cot : "))% H- }* u1 _5 H& E
- (setq p1 (polar (polar p0 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )8 c- u v: r9 N' x& x- y/ A' t p, h
- (setq p2 (polar (polar p0 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
9 e6 G: N. x& l9 G - (command "rectang" p1 p2); N/ P: c& H# D5 S7 `8 W
- (command "hatch" "solid" "l" "")$ X# h. I! M. h( {& z% s
- (setq bcn (getreal "\n Buoc cot theo phuong ngang : "))6 W4 O: L. ]& R$ m; B7 Z
- (setq nn (getint "\n So buoc cot phuong ngang : "))
( ?' o" u2 ~& s% u: _- d0 K1 V$ y! Y - (setq w1 (polar (polar p1 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )0 z# ^8 M [5 R0 T
- (setq w2 (polar (polar p2 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )! R* i) F' N/ B+ T
- (command "select" "w" w1 w2 "")& h% U5 x# m4 \3 }- T; f" M' j7 b2 p
- (command "array" "p" "" "r" "1" (+ nn 1) (/ (* bcn hstl) tile) )
7 c# h9 `' P t7 V - (command "line" (polar p0 pi (/ (* 1000 hstl) tile)) (polar p0 0 (/ (* (+ (* bcn nn) 1000) hstl) tile) ) "")
7 j! i! E8 n0 ?' z1 g6 S; I - (setq w1 (polar (polar p0 pi (/ (* hstl 2000) tile)) (* pi 1.5) (/ (* hstl 2000) tile) ))+ H u4 ]9 o: s* ~! \+ |; o; C: r
- (setq w2 (polar (polar p0 0 (/ (* (+ (* bcn nn) 2000) hstl) tile) ) (* pi 0.5) (/ (* hstl 2000) tile) ))
* A6 ~# X! s" l - (command "zoom" "w" w1 w2)
) M9 S* v. @0 F, b4 q2 A - (command "select" "w" w1 w2 "")
' b! a" ~' v/ O' f6 C$ X - (setq bcd (getreal "\n Buoc cot theo phuong doc : "))2 }7 i- k" r+ O' F2 Z
- (setq nd (getint "\n So buoc cot phuong doc : "))7 `7 t; C& e8 r0 N3 c
- (command "array" "p" "" "r" (+ nd 1) "1" (/ (* hstl bcd) tile) )
* |( {$ ?+ H7 s! X - (command "line" (polar p0 (* pi 1.5) (/ (* hstl 1000) tile)) (polar p0 (* pi 0.5) (/ (* (+ (* bcd nd) 1000) hstl) tile)) "")
{" z- k" \& e0 l8 J9 y - (command "array" "l" "" "r" "1" (+ nn 1) (/ (* hstl bcn) tile) )
9 Z' [2 F' e9 s& w2 b5 L5 m+ z$ G - (setq w2 (polar w2 (* pi 0.5) (/ (* (+ (* bcd nd) 2000) hstl) tile)) )
& ^ P; I0 Z: r% \7 S E+ i - (command "zoom" "w" w1 w2)
* x/ o5 c% C8 [0 U% a( Q4 T - (setvar "osmode" om)
* v- J9 f' t' t$ V' l9 ~% j7 g - )
( }: m0 _6 m, Z% {: i7 r - + a2 ?2 F5 G5 g* r* r2 Z$ r
- ;VE CUA DI
. C$ m$ n H' R) h ?7 H - + f# y+ \ A$ X6 [ D6 z
- (defun c:cuadi ()
9 M2 m+ H: S& Y - (setq om (getvar "osmode"))
! h' K* J/ _. K5 Q- C - (setvar "osmode" 0)
* w, H" U Q) l( x: g6 V' e; u1 G& \
) x. \: |9 ?' E4 O! U0 ^- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
' f/ c# R9 P/ d - (setq b (getreal "\n Nhap be rong cua : "))' M. i% }" p" W' T& I" L* {
- (setvar "osmode" om)
9 d( p4 B# ]3 ] - (while (< 0 1)* v8 J5 T2 i# _* K! K0 e6 T1 y) b
- (progn( p' W1 L! z5 M/ x5 \
- (setq p0 (getpoint "\n Chon Basic Point:"))* ]" k$ a X, s: U2 h( R; R
- (setq p1 (getpoint p0 "\n Chon diem de xac dinh huong cua cua:"))
4 b' C C- @% b N5 B - (command "osnap" "none")1 I7 }5 K; j( y/ t. i$ G" r
- (setq p2 (getpoint p0 "\n Chon diem de xac dinh huong mo cua:"))
' Z2 ~% z2 A9 O - (setq a1 (angle p0 p1))0 d$ a* w1 p* }/ M0 j0 z
- (setq p1 (polar p0 a1 (/ (* hstl b) tile)))
h# | j7 M9 R2 e - (setq a2 (angle p0 p2))
. b1 J& J* r' W9 W4 `; ~9 C m! x - (if (< (- a2 a1) pi) (setq a3 (+ (/ pi 2) a1)) (setq a3 (- a1 (/ pi 2))) )7 p# I- l4 \% t0 D* p$ S
- (command "pline" p0 "w" "0" "0" p1 (polar p1 a3 (/ (* hstl 40) tile)) (polar p0 a3 (/ (* hstl 40) tile)) p0 "")
$ x# ~1 \, z3 u3 T E& t - (command "rotate" "l" "" p0 (/ (* (- a3 a1) 180) pi))
; }& V( O M5 r) x" { - (command "arc" "ce" p0 p1 "a" (/ (* (- a3 a1) 180) pi))
/ X9 e' [1 H& ^" [6 \' l, @! A" G - (setvar "osmode" om); D; M+ W0 v( t9 R( a
- ))1 s: M, I3 ^3 U6 a4 ]7 i+ M+ g
- )8 x% F7 c1 S! B5 b6 N
- 7 W- L; E- c% m. e) F) M3 [% q
- ;VE CUA SO* E; _5 ?: r: ~. e ^5 U- m( t) ]( z7 x& R
- 1 O0 e7 G* l. t0 e* F. [0 N
- (defun c:cuaso (): D% g9 L; v: o! ? G
- (setq om (getvar "osmode"))
- j j$ t* k" `" N - (setvar "osmode" 0), k0 g. s9 Q* O( n1 @! s g
6 F9 m9 k. n5 I' d$ m- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))5 O2 \9 F' f. ?+ z" F- v1 y
- (setvar "osmode" om)1 n% a8 ]! I4 i1 j: E; D. n( F
- (while (< 0 1)
. s3 ^: P' |9 j4 }6 t - (progn" B- ^& S. ]* F, ~
- (setq p0 (getpoint "\n Chon Basic Point:"))( L7 F$ X, t$ f7 d/ L8 o2 X
- (setq p1 (getpoint p0 "\n Chon diem de xac dinh be rong cua:"))
" U0 r4 ~, t! u8 u - (command "osnap" "none")+ x8 a; }+ U! \; x s
- (setq p2 (getpoint p1 "\n Chon 1 diem o trong nha de xac dinh huong cua so:"))
: f) S) C3 w! [ - (setq b (distance p0 p1))( Y& P3 k8 R& F* _0 _
- (if (< b (/ (* hstl 600) tile)) (setq du 50))
2 l5 T8 e9 O) a4 E: l - (if (> b (/ (* hstl 600) tile)) (setq du 150))4 J5 ~0 h# `' a; Z2 @( l0 V
- (if (> b (/ (* hstl 1800) tile)) (setq du 200))
/ O6 E/ H. A/ Z, \( Y7 p- r - (setq a1 (angle p0 p1))
0 E" N4 t) `! J' t - (setq a2 (angle p0 p2))# D( z. G, l2 |, g
- (if (> a2 pi) (setq a2 (- a2 (* pi 2)) ) )
G4 D- p- _& N4 a- } - (if (> (- a2 a1) 0) (setq a3 (+ (/ pi 2) a1)) )1 C1 z. k' j; j. A0 w* g' K
- (if (> (- a1 a2) 0) (setq a3 (- a1 (/ pi 2))) )+ e+ h3 j/ g: }: a
- (command "pline" p0 "w" "0" "0" p1 "")- e: B) B, _ @1 M9 @3 m) Z4 k
- (command "pline" (polar p0 a3 (/ (* hstl 50) tile)) (polar p1 a3 (/ (* hstl 50) tile)) "")
& N% S4 e* d, w; I# y - (command "pline" (polar p0 a3 (/ (* hstl 100) tile)) (polar p1 a3 (/ (* hstl 100) tile)) "")
( D8 `% u8 \" _) N" } - (command "pline" (polar p0 a1 (* (- du) (/ hstl tile))) (polar (polar p0 a1 (* (- du) (/ hstl tile))) a3 (* -100 (/ hstl tile))) 1 n7 g3 I: d" h' u1 i% ~9 U
- (polar (polar p1 a1 (* du (/ hstl tile))) a3 (* -100 (/ hstl tile))) (polar p1 a1 (* du (/ hstl tile))) "")
/ A1 P! o3 G2 U1 u- Q# f: O - (setvar "osmode" om)
5 s) r8 R) t) ` - ))
# D4 c+ ^4 w' ]( C - ); T/ g7 @/ O5 _7 D( m5 d( ^1 T
5 \/ L; {, T7 K8 u- ;;;=== General Utility Functions ===
9 U8 k1 I( l- x5 r% j5 h3 p X2 g
* S% j$ k1 k: G' V& K- T8 V6 W5 E$ W- ; R12 compatibility - In R12 (acad_helpdlg) was an externally-defined * I' F% y; d$ |; O
- ; ADS function. Now it's a simple AutoLISP function that calls the
' K( B" [3 I) J0 r, { ~& Z- g - ; built-in function (help). It's only purpose is R12 compatibility. " o# i) ~) F, Y
- ; If you are calling it for anything else, you should almost certainly 0 X" [( C( ~. U9 ^- K1 q
- ; be calling (help) instead.
5 S; R' r8 d0 j$ [; T' p0 D - & c. `; ~: E) a/ e0 ?; p
- (defun acad_helpdlg (helpfile topic)' r2 g" u8 t4 x) r9 Y L, S
- (help helpfile topic)0 y: l* Q, L5 R* _
- )
6 W8 @6 \9 W0 h( g( ~; x, o d. @
+ J5 |6 R% ~! Q- 1 w8 }( h9 }4 `$ T& [
- (defun *merr* (msg)6 G/ a) m1 z* E, c# [9 _
- (setq *error* m:err m:err nil)- Q @2 Z# Q- O1 g1 |* U
- (princ)% Q/ B h& a8 J6 A% p0 e
- )
+ G; g C# @/ ?, L4 Z5 S; M
7 H$ {, q7 W D/ H; C- (defun *merrmsg* (msg)0 h9 J, E& c, S/ O; Y" Y) k& x
- (princ msg)! X6 N2 v4 e l! l1 y/ E) o; N
- (setq *error* m:err m:err nil)
/ z) d, j" b: p$ W - (princ)0 L+ h7 @1 K5 }" @$ v
- )
2 s! L* p6 u% K3 a# x8 s% O3 e
. l( p6 E# m' d+ _- f0 P4 a& U0 d2 m: V: @- ;; Loads the indicated ARX app if it isn't already loaded
$ c& x0 h; t/ @" {# ? - ;; returns nil if no load was necessary, else returns the2 e5 Q: z; d+ ~) ^1 f
- ;; app name if a load occurred.* m/ o4 l+ k* z) o. x! p$ B t
- (defun verify_arxapp_loaded (app) . [: @4 p( j, U: W
- (if (not (loadedp app (arx)))
+ o0 f( r% c6 Z% o1 F4 v) F) r - (arxload app f)+ U& ~6 I: I" U2 X" j# e' y8 h
- ), M' Y \7 i" m5 c' }
- )
+ v: V5 c5 }9 C. B5 N `0 @ - $ D& G7 I2 e# Y
- ;; determines if a given application is loaded...
4 Z- v* V& D" m" C+ g - ;; general purpose: can ostensibly be used for appsets (arx) or (ads) or....
- C: n4 r5 t. i8 h$ r, { - ;;
) A* _$ O. \6 s( t* I' c# M - ;; app is the filename of the application to check (extension is required)$ f* b, X& D, R+ E
- ;; appset is a list of applications, (such as (arx) or (ads)
2 c, W* E ^) y. K - ;;
+ r! Q2 H6 q t* E) Z, \ - ;; returns T or nil, depending on whether app is present in the appset
% ?3 o. A6 p' I. G" _/ V2 _, N4 U - ;; indicated. Case is ignored in comparison, so "foo.arx" matches "FOO.ARX"- x2 M( J; [( e# t6 W
- ;; Also, if appset contains members that contain paths, app will right-match
7 Y. T1 J! E" W- }' X$ R& i - ;; against these members, so "bar.arx" matches "c:\\path\\bar.arx"; note that
& c% [. K9 _0 v2 D2 k( } - ;; "bar.arx" will *not* match "c:\\path\\foobar.arx."" c0 @8 w! ^3 u. Z4 n7 B6 `0 I- e
- (defun loadedp (app appset)
% a' |& F! S5 } g - (cond (appset (or $ a9 G5 i# j- E7 q
- ;; exactly equal? (ignoring case)
( _; e/ y% o6 f/ N3 K - (= (strcase (car appset)). w E6 f1 x. K6 H0 }( E/ z* \
- (strcase app))9 W% O& l- W+ }3 Q
- ;; right-matching? (ignoring case, but assuming that: |' L) J, ? J! z$ F
- ;; it's a complete filename (with a backslash before it)
) G0 q- D; N# |% h: v# e3 [ - (and " L1 w8 r w0 X. M w
- (> (strlen (car appset)) (strlen app))7 f w- b: K/ Q; n1 e1 E
- (= (strcase (substr (car appset)
' m5 J$ D" Y; v' k* x. {; h I: p - (- (strlen (car appset))
% C1 t( Q0 D4 n8 S( A* }8 C - (strlen app)
( Q& Y) U5 J1 ? - ) 0 l7 d' ]+ R" u& w' h
- )
: g/ @6 v" [/ n+ Y/ F - )
}# n0 V0 g! \% C - (strcase (strcat "\\" app))
# z) S( @% c% } - )3 T o- G7 y9 z6 Q1 F. B' U1 |
- )
0 K- M: Z! t/ o8 \7 q - ;; no match for this entry in appset, try next one....
) z9 N; L# G$ x - (loadedp app (cdr appset)) )))
: R3 J2 e. ]! b/ { - )& [( t' u' B$ Q
+ S* t1 F# Y% y0 {- : P& T1 {& }3 a+ @+ {3 T
- ;;; ===== Single-line MText editor =====4 p8 o; q! r, z3 f
- (defun LispEd (contents / fname dcl state)
/ h9 r0 J* ^ Q; X- O" \ - (if (not (setq fname (getvar "program"))); G5 e2 ?# n# W1 J
- (setq fname "acad")
5 a" K( m7 U; Y$ U* T% W - )) Q6 Q3 q* R7 a" A+ i" W
- (strcat fname ".dcl")7 G. z Q' A6 U- R$ t0 U
- (setq dcl (load_dialog fname))
9 ]5 H2 [4 `6 p. t# h* E9 s - (if (not (new_dialog "LispEd" dcl)) (exit))2 { }/ `5 U4 ~ Z
- (set_tile "contents" contents)
- Y6 V; K9 C! P# Z - (mode_tile "contents" 2). ~7 _" T8 [/ r9 ~9 X
- (action_tile "contents" "(setq contents $value)")5 p& h! Z: U' p8 s8 J; @9 o
- (action_tile "accept" "(done_dialog 1)")2 B$ w9 o7 T0 P' O
- (action_tile "mtexted" "(done_dialog 2)" )
0 x; F5 W, I- r. Q v6 p - (setq state (start_dialog))8 ]7 ^9 b! d0 b* B h. _
- (unload_dialog dcl)) z' |6 W/ M2 t( r5 ]- _
- (cond$ l" L: x% s& k2 R
- ((= state 1) contents)
5 G1 R+ [$ a8 L - ((= state 2) -1)
( R2 h8 u8 U9 F$ V G8 { - (t 0)/ a3 ~6 o# ?0 d& v6 [5 s( |
- )
' u$ g8 g: j: V0 w+ y - )
. r D& \ d' U' o* m1 m - # M: U" S4 W% K6 M! I' n
- ;;; ===== Discontinued commands =====
0 `5 @5 K) Z5 \+ W& k' w7 { - (defun c:ddselect(/ cmdecho-save)
8 l A; d/ P% h7 f4 a - (setq cmdecho-save (getvar "CMDECHO"))
7 ~' h8 `8 I c1 p; K6 ]3 G - (setvar "CMDECHO" 0)
( y7 f; q9 m- ~, X6 C! o - (command "._+options" 7)
6 J! {; H& C7 f( W2 u$ c; D& h - (setvar "CMDECHO" cmdecho-save)$ r T1 c* r; j6 j6 Z1 B: Y; v$ x
- (princ)
- B; S' l, _4 W' F - )
4 P' _+ }* K8 A8 H
/ z' G# M6 n! J T7 M+ A' R- (defun c:ddgrips(/ cmdecho-save)2 Z* c4 y6 B# t T6 S- a
- (setq cmdecho-save (getvar "CMDECHO"))
, J: B8 j3 i- c1 p9 i - (setvar "CMDECHO" 0): N H7 ? g5 [- k8 F% p
- (command "._+options" 7)
9 K8 ^3 Y) e% j6 N4 y - (setvar "CMDECHO" cmdecho-save)2 d, ~0 C1 y/ G, U0 B' n& e! ]
- (princ)
" z H3 v; M2 |- c% h6 N2 ~9 Z - )4 Z- c7 H# t9 u# f O& i
- * q |) A3 y8 U
- (defun c:gifin (); b/ u, {% s. [" m/ D6 X6 z& b
- (alert "\nThe GIFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
+ ]& \9 N3 O: B Q. X - (princ)
; U. S5 a% u8 z% n9 n - )
, G% `! S! x% d - 1 L- k8 r, ]$ t5 J8 f) C
- (defun c:pcxin ()- f# X. b( K, w) W' z& ?
- (alert "\nThe PCXIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")! _9 h W( A. {1 [
- (princ)/ R+ P7 A- H+ F* S% [% t3 O; [
- )
; Z- `& c7 d) z% x, w - + f/ I2 Q8 z$ X7 y0 H& C
- (defun c:tiffin ()
" y! u& K' l0 I% { - (alert "\nThe TIFFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n") `2 M( M! ]! I2 q' P6 [! W! \
- (princ)
" Q: F5 S0 }' a$ s; a - )- m' w1 F$ M, s* m
- 0 F( S5 A3 D. b# z
- (defun c:ddemodes()
! f" j+ z% j5 y+ ^% K - (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.")2 I- P7 v- X- B
- (princ)
1 O& r+ r/ ]- W1 Q1 S( g) b$ [ - )$ p/ y4 w( Q- A+ v9 `
2 J2 ]% Z5 J; N8 q8 l8 j8 _- (defun c:ddrmodes(/ cmdecho-save)
) N+ |8 m. d: L) O - (setq cmdecho-save (getvar "CMDECHO"))
/ a1 |; {) h( w4 g - (setvar "CMDECHO" 0)
9 n5 w2 v U+ C3 L- ~" { - (command "._+dsettings" 0)6 d) q F, V& G! l: K( k
- (setvar "CMDECHO" cmdecho-save)
- |; x" U% Q( R7 v D( P' A5 K - (princ)
: y" P1 @: \$ v/ ?# }) A; i - ), `8 l8 O7 A( T- {0 u% \
% }: ]& [ h6 G, {1 ?3 z. W7 V- ;; HPCONFIG$ K0 p% ]. K8 b% }- l" a
- (defun c:hpconfig (/ hlppath)5 w, d5 R% ?' h3 F' W
- (if (not (setq hlppath (findfile "acad.hlp")))
1 T3 w3 K! E: l0 | - (setq hlppath ""))/ D$ Z1 L% B. R5 Q$ }2 k5 D
- (help hlppath "hpconfig")
6 ?7 o) N5 @. T' U. I* X: ^4 t* m - (princ)
: r3 ^. \1 X% V& q - )
9 r% O: m" e) V0 c$ w+ j! n+ D7 u/ F0 q
6 s: D2 X: M4 x! Z# F& L& b- ;; OCECONFIG
7 Q* S" l) S' F( e - (defun c:oceconfig (/ hlppath)# j P% ~( n1 x, F8 j
- (if (not (setq hlppath (findfile "acad.hlp")))
% a/ v: U( N% }: Q- s - (setq hlppath ""))
/ s, r4 e1 O/ K9 O3 j - (help hlppath "oceconfig")% Y/ e% ^, g8 |1 \* c! N1 m2 E7 M7 L* R
- (princ)
! Q. H3 y) w* c/ ?2 z - )5 H+ I/ X& t, W F7 B7 E* Z- |
4 s) O4 h ]9 r* F* ~; y$ v* J- ;; CCONFIG
& c$ Y8 l Q9 k' i) V; X/ z# _& Y# H m: b - (defun c:cconfig (/ hlppath)2 c" p" a; \' r. X* [: ?, I
- (if (not (setq hlppath (findfile "acad.hlp")))
1 k5 z) m& [' |4 X! K - (setq hlppath ""))
- ~8 l: @; S, q% _2 t. ~8 b! d - (help hlppath "cconfig")& G( q' V0 `( p. \$ k' k$ ?; I
- (princ)! W& t: M% ]5 b# C- r8 {
- )& G" a- M$ |/ E8 _ H' B. x
- 5 h& Y0 N) f! L( U' U% u
- ;;; ===== AutoLoad =====9 C$ E" `+ P# w& _$ @+ U
9 s* \6 G# _4 u/ s. x( R- ;;; Check list of loaded <apptype> applications ("ads" or "arx")
! ~ o2 W0 g1 v( k0 Y - ;;; for the name of a certain appplication <appname>.
# }9 ?8 G1 l$ S - ;;; Returns T if <appname> is loaded.- J e* m M6 k& P0 }
, C5 }1 v4 W" F, Q4 T- (defun ai_AppLoaded (appname apptype)" P) |# E) ~: v+ c0 S& S
- (apply 'or
+ f4 _ Y" E( @ - (mapcar
! s: l, ^- a& q- b [4 { - '(lambda (j)& e$ b1 \% `5 j8 ~! _" S$ z" Y& p
- (wcmatch
+ U% ]$ ?( L- X4 j& O V( ` - (strcase j T)
$ z" |5 Y0 X2 W' C0 p - (strcase (strcat "*" appname "*") T)2 L: f" |% W* @$ \- z
- ) , H T; ?- T8 a F" h1 D
- )
: R5 v* K, V# J - (eval (list (read apptype))) }1 w' F" n( @% L8 v+ B, }4 E
- )! q0 U+ n' g9 n
- )
) L3 O/ a1 b2 w- ]9 x6 N3 y( b - )4 f. `) b9 B; g' K( S+ k
- 9 G" ~" @9 d3 v! L+ ]3 a2 Y& c) P
- ;; 8 `- m9 \5 r& e# A
- ;; Native Rx commands cannot be called with the "C:" syntax. They must
1 X" z, E0 e# J! Y4 `' C - ;; be called via (command). Therefore they require their own autoload
3 B g7 A- L6 o8 S# s - ;; command.
1 `% w) l3 r8 Q9 C C - ; H; R& t/ E# o& m/ [
- (defun autonativeload (app cmdliste / qapp)$ F# P* _! i8 t3 n$ Q
- (setq qapp (strcat "\"" app "\""))" E) B! O" U2 V+ m* r% \
- (setq initstring "\nInitializing..."), D; o, U+ L3 S- l$ H* \. W1 x* l
- (mapcar
; `7 P8 j; }$ E6 p - '(lambda (cmd / nom_cmd native_cmd)
5 F* H. a" L! }, y9 X( C - (progn! O' {1 [- Z9 d$ w" W/ S- i5 |
- (setq nom_cmd (strcat "C:" cmd))
" x/ s Z- C1 T# h' m. Z - (setq native_cmd (strcat "\"_" cmd "\""))/ J% C$ s4 `" q1 i4 n) x6 T
- (if (not (eval (read nom_cmd)))/ Y+ l+ k* {4 @, M4 N
- (eval
( p, b: {. k4 s. Q! }: A) V+ n$ F - (read (strcat
, H9 t, o; O( K9 B# p - "(defun " nom_cmd "()"
' I9 G+ K0 X- \$ E8 ]6 ^ - "(setq m:err *error* *error* *merrmsg*)"
6 W! [, o9 ]& o2 q* T( q - "(if (ai_ffile " qapp ")"
; G, v9 k# J" b: {% D& z - "(progn (princ initstring)"
8 B3 ?! U# S5 d. K# { - "(_autoarxload " qapp ") (command " native_cmd "))"
' {0 F. ~% x( [* Y3 g2 N - "(ai_nofile " qapp "))"" k2 ~- Y% O' |% j
- "(setq *error* m:err m:err nil))"
+ ~( i y4 u) C. m - ))))))
: X! Q1 u( C/ f/ m% N2 M - cmdliste) \3 y- f+ p! N' \$ U/ F7 w
- nil4 O+ e6 \! Q( R( d/ z% u
- )
. `* G4 s0 G8 ?2 k! K! k - & w9 \$ S3 j) `0 `6 B
- (defun _autoqload (quoi app cmdliste / qapp symnam)6 W9 V6 r2 S6 `' u8 U% |" M; F
- (setq qapp (strcat "\"" app "\""))9 a1 h1 q" n. o
- (setq initstring "\nInitializing...")
( a+ A: d% l2 [8 R - (mapcar
) S7 m2 w9 P: r6 C6 J& \1 e - '(lambda (cmd / nom_cmd)
) L! [- T& f, f0 A% U - (progn4 U) Y! o3 C+ w8 V Y
- (setq nom_cmd (strcat "C:" cmd))0 ~) D3 i+ ]( w
- (if (not (eval (read nom_cmd)))) t( p# E2 v/ X* C$ a2 G& e9 Q. b& W2 ]
- (eval: m V# i+ U. [' W% @9 E" `4 K
- (read (strcat
! P6 h" c% s: `# i - "(defun " nom_cmd "( / rtn)"
5 A& W5 P& p, g8 A! H. f; T1 m - "(setq m:err *error* *error* *merrmsg*)"
' t) g) t8 K! A: ]7 Q- x! A; a - "(if (ai_ffile " qapp ")"
( W: m% N5 c1 ]* Z4 W - "(progn (princ initstring)"4 v/ V" p0 u! W; t/ N
- "(_auto" quoi "load " qapp ") (setq rtn (" nom_cmd ")))"
: S6 A, Y: m: ? - "(ai_nofile " qapp "))"- k# _' m4 ^3 u- q
- "(setq *error* m:err m:err nil)"5 J, {/ H% z, e+ Y3 `
- "rtn)"
) p+ N8 y, a0 s I2 \4 z# v - ))))))
, w/ z9 c1 n* K o0 f. o( j8 M - cmdliste), C- K: E5 q$ j1 e0 j2 y
- nil9 }7 L' H7 { f: a/ W" H5 ]" C8 c
- )
1 E, d( x+ q6 c. q" y, T0 u- C
- k/ e s8 P4 e T- (defun autoload (app cmdliste)
. Q8 A, V g) b t6 T7 A2 D1 X n4 [ - (_autoqload "" app cmdliste)0 o! s/ F* @9 _ @8 b
- )4 U9 V2 k# K4 M# K/ ^, [' f
- 1 k& V" \# U0 \5 ^( o. a
- (defun autoarxload (app cmdliste)$ @. i7 \! g' D& `0 k4 B4 S
- (_autoqload "arx" app cmdliste)
. D* Q6 C* ?1 h( |" Q; Z* d7 ^ - )% T8 a6 t; _+ d+ G ~+ H' G
; b- u8 i5 R# E L! M. t- (defun autoarxacedload (app cmdliste / qapp symnam)
) F- D* g6 d( Z, X7 Q0 ` - (setq qapp (strcat "\"" app "\""))9 r% d: ^$ Q: j7 ^$ Q
- (setq initstring "\nInitializing...")0 u9 O# |/ e: K/ z
- (mapcar" I S& J5 ]8 I; ]" ~
- '(lambda (cmd / nom_cmd)
, w& p* I# [/ F - (progn
2 I& J7 F! ?/ M - (setq nom_cmd (strcat "C:" cmd))) O; ]$ N; D6 W5 c
- (if (not (eval (read nom_cmd)))
9 J& j/ D2 ?$ F( d+ t - (eval, h- |* M% y' s6 g3 ~
- (read (strcat2 Y7 P0 P4 i. r* r7 N2 O- R
- "(defun " nom_cmd "( / oldcmdecho)"/ x- t% y. {6 A. T) n
- "(setq m:err *error* *error* *merrmsg*)"
3 s7 P' w/ W4 z" \! z( C; b4 G - "(if (ai_ffile " qapp ")"8 e1 ^, i$ d! Y! ?. {% l, n! e D1 l$ i1 r
- "(progn (princ initstring)"
. @: S+ U6 D5 L# u1 b; y; { - "(_autoarxload " qapp ")"5 Z8 o k, @* X' n0 f9 }4 @+ F
- "(setq oldcmdecho (getvar \"CMDECHO\"))"" r# U ~6 d: R
- "(setvar \"CMDECHO\" 0)"
$ \( [( m: }8 f; v5 f6 [ - "(command " "\"_" cmd "\"" ")"
9 S+ e/ Z2 n4 @ - "(setvar \"CMDECHO\" oldcmdecho))"
: {: V6 s: h; j' g' c - "(ai_nofile " qapp "))"# C: C+ S! ?/ R2 G( U, s6 z7 k
- "(setq *error* m:err m:err nil)"0 A+ i9 c6 a; P: O$ F+ C8 {
- "(princ))"4 K( R2 h- q; v$ c
- ))))))9 R! U' h; g* F, \8 f
- cmdliste)1 f- n8 F- E: I8 `2 Z' b
- nil
6 _. Q0 y! Z/ } h' i( i, X% y - )
U; B( H( g, ]0 X - 2 |" W) r4 g% P9 d$ [% i
- (defun _autoload (app): U) a1 H2 v: p6 `$ X. G! Q
- ; (princ "Auto:(load ") (princ app) (princ ")") (terpri); k6 d4 M; A2 o" |, g
- (load app)/ k; R7 S# O$ p" u8 M2 E
- ). [& S b: W- ?( I" K- I
- ) k! t# g/ N) p. u
- (defun _autoarxload (app)
- L* s0 s6 }$ {4 w# K( o) k4 b - ; (princ "Auto:(arxload ") (princ app) (princ ")") (terpri)/ d" s, H$ D' l
- (arxload app)
3 E) ~3 A, A0 S4 \, p5 `$ F8 A - )
9 ?4 p& b3 y. `1 }9 @
; P% ]' a' X7 t; W4 M9 f4 v h) P, p- (defun ai_ffile (app)6 H8 Y# H0 G V% Q
- (or (findfile (strcat app ".lsp"))
* I5 o1 K4 q: n% w3 O: n2 Y5 x* @+ ` - (findfile (strcat app ".exp"))
. w1 q/ Y w: p+ Q$ C" e - (findfile (strcat app ".exe"))( y% M/ `, ?8 X: _- Z! f5 _, G2 _
- (findfile (strcat app ".arx"))/ ~- e4 @* j% J0 k/ C; a5 u
- (findfile app)
0 E! k- A7 {* y# T* F B - )& q0 r, U: Q8 ~. n
- )
! X% w6 i! m! Y* j0 z% {( {
0 m. d4 ] ?7 z$ @: U+ k- (defun ai_nofile (filename)
& o1 I& s' `" g2 F' e. a - (princ
4 x2 o* w2 S7 k2 Q7 h# e" O4 W - (strcat "\nThe file "" g+ k" W( _- H! s
- filename n9 s3 W* E* w1 U
- "(.lsp/.exe/.arx) was not found in your search path folders."+ |1 ~ M: D: R
- )5 g8 F. h1 f- `# `$ b! b! O$ B. R
- )
6 q4 x0 N1 k6 P& Z/ G# d% m - (princ "\nCheck the installation of the support files and try again."), T: ]: _/ F4 r6 k' u
- (princ)
/ a* r: _$ ^& A - )
7 B7 \1 C& d" A, H2 T" p) ~, d7 U
+ e9 l' e: X$ X+ U1 Z4 K' p* e- X: p0 \- - ]9 y' @' ^' @7 V; `8 W- V
- ;;;===== AutoLoad LISP Applications =====$ o! n( [, q' C0 Y: S! h0 `, b$ d
- ; Set help for those apps with a command line interface! `; R/ N+ i( i- A7 n
- - M5 l9 b0 p9 A4 q
- (autoload "edge" '("edge"))" s) p# t% k3 s: U$ M
- (setfunhelp "C:edge" "" "edge")
) m4 w' {9 E& U, Y: k4 V - / G0 `$ E I o: a. o. }6 R
- (autoload "filter" '("filter " "filter")), ^. c! r0 ]; O$ n; U+ b% B" q- X
- ! r' j c' a+ g4 R+ T
- (autoload "3d" '("3d" "3d" "ai_box" "ai_pyramid" "ai_wedge" "ai_dome"$ g7 D$ U' c W3 {
- "ai_mesh" "ai_sphere" "ai_cone" "ai_torus" "ai_dish")( x6 Z# \# G$ [9 ]
- )9 C" X! ]% H1 |
- (setfunhelp "C:3d" "" "3d")1 t: p2 f: \( q7 g M
- (setfunhelp "C:ai_box" "" "3d_box")% q3 `% w" ?& o9 ^ c- H) b4 K
- (setfunhelp "C:ai_pyramid" "" "3d_pyramid")
3 i# l+ j6 p/ j. @( _6 E0 N1 Q - (setfunhelp "C:ai__wedge" "" "3d_wedge")9 b# G7 P/ T9 }0 j
- (setfunhelp "C:ai_dome" "" "3d_dome")
( ^$ Z6 J9 L& y4 K9 b - (setfunhelp "C:ai_mesh" "" "3d_mesh")1 I" N7 s, S4 N
- (setfunhelp "C:ai_sphere" "" "3d_sphere")% @3 N* ] K# G9 e1 R! V. }
- (setfunhelp "C:ai_cone" "" "3d_cone")
v& T; ]& F1 V) i! c - (setfunhelp "C:ai_torus" "" "3d_torus")
. {9 [. B9 Q/ a" [ - (setfunhelp "C:ai_dish" "" "3d_dish")* Y' X" y6 W; f" I" b
- $ f0 ?" Y2 D" W6 p* v% e
- (autoload "3darray" '("3darray"))6 q6 F* \. u2 X/ z
- (setfunhelp "C:3darray" "" "3darray")/ w3 u! L+ T. ?% C9 v7 W
4 J/ O( {0 |/ O5 B4 d- (autoload "ddvpoint" '("ddvpoint"))
, f8 Q% L9 G& F4 a, G6 z - / q) |" L. n, o
- (autoload "mvsetup" '("mvsetup"))2 k3 w3 d, F8 c7 [4 P
- (setfunhelp "C:mvsetup" "" "mvsetup")% ^ i) ?# L' ~5 ~8 s# m
! B" x6 u7 t, V6 M. A) L- (autoload "ddptype" '("ddptype"))
5 z2 l6 O" m4 O# ?- B1 Y: j
- x$ S" j9 C9 p) i/ E8 M- (autoload "attredef" '("attredef"))
" m$ Y( [( ~7 l0 S - (setfunhelp "C:attredef" "" "attredef")/ } J2 f) `# ]. \
- $ d6 ~$ o h+ v: p' l
- (autoload "xplode" '("xp" "xplode"))" u6 c1 _0 E& d+ ~* c2 K& B- S
- (setfunhelp "C:xplode" "" "xplode"): R# H5 [2 B- p+ `+ d
- % v6 `* I# o5 [+ q
- (autoload "tutorial" '("tutdemo" "tutclear"
6 o1 `! }8 i) p - "tutdemo" . l4 j" `" x2 z( A9 o0 |- B
- "tutclear"))
) c1 B5 n0 g5 E& A8 q
5 F8 [3 S" K' ~4 _5 P/ l0 T- ;;;===== AutoArxLoad Arx Applications =====
2 R3 O2 h1 u: z: {5 R2 B
7 v2 ~6 d4 K: B; _. D3 G- (autoarxload "geomcal" '("cal" "cal"))0 o) q2 D( ?, A+ n8 c* H
0 P- V. q3 z/ z2 F- (autoarxload "geom3d" '("mirror3d" "rotate3d" "align"
v" M6 e1 t3 K. ?2 l6 b3 C" F1 V - "mirror3d" "rotate3d"
8 M/ L5 }! v9 T - "align"))9 [6 Q( p G1 j, n2 S
- ) [, C# _" b' `( l1 ?1 W
3 R4 T5 Q: f c- ;;; ===== Double byte character handling functions =====8 T$ C" Q" U3 d
2 p) P; L; z }0 f$ S- (defun is_lead_byte(code)
/ A; N7 m) R$ z+ b- O5 W0 V2 F - (setq asia_cd (getvar "dwgcodepage"))0 q% m1 Q9 a' d8 E6 o
- (cond
) H& D/ V* p5 D: m# Q - ( (or (= asia_cd "dos932")9 ]. b3 O7 w; J. H8 b
- (= asia_cd "ANSI_932"): [2 H% o' ~, N' P0 A4 O
- )
$ j; O+ T# d* e( d8 P+ @ - (or (and (<= 129 code) (<= code 159))* n0 P& b7 ]* {* } k( s: X( n/ U* P
- (and (<= 224 code) (<= code 252))
9 ^! n% K% w5 v, @( F - )
}* {% q& H5 X3 d6 B& ] - )" h3 ]' J5 o; k: C
- ( (or (= asia_cd "big5")+ D/ {# ?. v, K) V! t! [
- (= asia_cd "ANSI_950")$ k, c# `* Z) G4 S
- )
4 F% _' m( e7 |" }0 ~2 a3 X - (and (<= 129 code) (<= code 254))
# X: L/ n+ ?3 o( } - )
+ ~; @! g' ]: U7 t# C; A1 h" ? - ( (or (= asia_cd "gb2312")6 i$ \ R( o1 V' r& B; S3 G
- (= asia_cd "ANSI_936")5 g8 t7 z; j( m# s/ s. d
- )9 ?- @: G" Q# }! g# q7 B- Q A* G V& l K
- (and (<= 161 code) (<= code 254))
' u9 [( Y0 v' k9 ^( X5 T6 b - )- d" m/ Y5 f+ M+ A
- ( (or (= asia_cd "johab")
! s$ z* b+ E1 F- R' t - (= asia_cd "ANSI_1361")% i) j1 z1 h0 k) g
- )5 G5 o! H* k% h- j
- (and (<= 132 code) (<= code 211))
1 ~4 u4 T& l l' `, w0 I - )" k' w9 W6 N, P/ c+ a4 z: k
- ( (or (= asia_cd "ksc5601")
! }6 f2 b3 p" F4 R8 X( [+ Y - (= asia_cd "ANSI_949")
& f/ R3 E6 X5 C$ G2 g0 O - )
; R8 c' U: {) _1 } G - (and (<= 129 code) (<= code 254))
8 t3 }6 J) s6 L$ @ - ): M' Q: I2 T, h) l2 t: T) x
- )
! V$ W" [$ o/ k5 ~3 T7 W' ~% I - )
- j; `! k0 b+ h/ j. G$ Z6 n5 I
: _7 ?2 \( Y5 _* r* E9 E- ;;; ====================================================
$ w% _/ }/ j% g
% }0 b& C H, a; U- r5 L4 A
" i# M2 `. c, O2 p( d+ L- ;;;0 `) L. D4 T2 [: E
- ;;; FITSTR2LEN2 s3 {# w3 t. A% i5 u3 a6 r
- ;;;
3 p6 i5 H7 L, m$ n - ;;; Truncates the given string to the given length. ' n4 A+ b, p9 Z! x! r% U
- ;;; This function should be used to fit symbol table names, that) N R3 B- P& q6 G4 S# V; {
- ;;; may turn into \U+ sequences into a given size to be displayed
1 B( }, j* N e: _/ f - ;;; inside a dialog box.& z+ J( i. i g% w
- ;;;
. A+ L) t u: p - ;;; Ex: the following string:
' e+ j: }5 W2 q: ? - ;;;5 C9 G2 L* {: B" f/ r) a t
- ;;; "This is a long string that will not fit into a 32 character static text box."( z# H* ^1 v) F7 H: A
- ;;;' E$ F U. Y2 u5 g/ a* N
- ;;; would display as a 32 character long string as follows:* I( V X9 P+ }' v% r" Y. D0 d+ C* q
- ;;;+ B$ [$ @# {3 z9 c# @
- ;;; "This is a long...tatic text box."
5 V8 @& F8 D; Q3 ~" G0 I - ;;;
" L! D1 E8 a5 }) T5 H - 6 f5 ?" y" I" l
- (defun fitstr2len (str1 maxlen)7 G; \# ]) e' g& i- k: a$ B/ ^' I
* {+ [& `; o% t8 l9 `% N- ;;; initialize internals0 [* ^! C. Q# ]! s2 W5 Y
- (setq tmpstr str1)
+ m$ l8 a9 a9 p - (setq len (strlen tmpstr))/ F1 f) _* T7 c+ z. l
: J* s$ h* I/ v/ v- (if (> len maxlen) 8 u; o5 n* _" D& l% a! h" M
- (progn
& B9 k6 j& p- |' ]" s: G; v, L - (setq maxlen2 (/ maxlen 2))
) \" `3 Z7 P% A0 G5 V2 j0 P+ { - (if (> maxlen (* maxlen2 2))
Y4 Y# p+ Y) o' t* R5 ~4 k - (setq maxlen2 (- maxlen2 1))0 I1 z2 s+ V8 j
- )* d9 g) z Z% R6 x2 l8 U
- (if (is_lead_byte (substr tmpstr (- maxlen2 2) 1))# I( {% e9 y8 ]( A6 |( s
- (setq tmpstr1 (substr tmpstr 1 (- maxlen2 3)))
/ m1 Y/ j+ }$ B, e/ [7 w2 n - (setq tmpstr1 (substr tmpstr 1 (- maxlen2 2)))
$ j" W/ l" ~% T" O) b, m - )
+ N4 U0 u& l/ }& D) T - (if (is_lead_byte (substr tmpstr (- len (- maxlen2 1)) 1)). _2 N2 r+ o" x: i; M
- (setq tmpstr2 (substr tmpstr (- len (- maxlen2 3))))
" @* a1 ~) v: m z- C: D( C" N - (setq tmpstr2 (substr tmpstr (- len (- maxlen2 2))))
# s7 [. \+ F6 U& P8 I c - )4 O9 [) w8 W0 u" W
- (setq str2 (strcat tmpstr1 "..." tmpstr2)). Y" h5 l- t9 n
- ) ;;; progn9 K1 x+ E3 y; `/ r, A4 m
- (setq str2 (strcat tmpstr))
$ |) F* \5 J; X" \! n k - ) ;;; if R6 U% [; e& q
- ) ;;; defun% C: l* S$ J( A
- & ~& c8 s( ]7 n
- ; d8 h3 f0 a4 j# ~5 ?# \) m2 l2 @8 O
- ;;;& Z ~( U2 j1 A! H% b4 A, C$ W
- ;;; If the first object in a selection set has an attached URL" M9 a# M& H4 C1 ?2 o$ p
- ;;; Then launch browser and point to the URL.$ I$ q" a9 s5 z
- ;;; Called by the Grips Cursor Menu
1 E8 t1 P; d' O5 o - ;;;
( w6 v$ Z4 f1 w- @- J - 5 J/ Z; \% A& v+ q, ?" V6 K
- (defun C:gotourl ( / ssurl url i)8 S X7 v* F; B* C
- (setq m:err *error* *error* *merrmsg* i 0)$ R9 {1 Y, ^ W4 G
- . E0 B! k. k" K0 W* }. ^9 b
- ; if some objects are not already pickfirst selected,
+ O, h/ x+ E. X - ; then allow objects to be selected
, m$ g4 W, v$ \, y, I - ' k2 L2 `& }: z+ `/ [, T2 n
- (if (not (setq ssurl (ssget "_I")))
+ c) r: ^$ y+ |6 R* z - (setq ssurl (ssget))
" W0 h/ c! @7 k- k - )
/ U0 d/ P) i+ ?& E0 z) y# R
: W) \* [2 Y, q0 M8 D- ; if geturl LISP command not found then load arx application B) u @& C' n6 m/ ~
% T& I! D# G: k9 k$ F+ H( I1 k U" Z- (if (/= (type geturl) 'EXRXSUBR)0 |: ? k% @3 E
- (arxload "dwfout")& Q) a! M A2 E0 p0 u: ?3 s
- )
A6 V7 Q4 B. n" j - 1 {% t3 k) y8 s5 _* F# S4 A
- ; Search list for first object with an URL
9 Z0 F# g6 f8 _2 |6 ? G$ m6 n, T - (while (and (= url nil) (< i (sslength ssurl)))1 i& a% R; c+ z6 a
- (setq url (geturl (ssname ssurl i))
/ |2 F8 |' a5 L9 r- I" o; Y1 w - i (1+ i))( t0 v; L$ F- Q
- )
5 a+ U% ]9 u# Y. u2 j# ~ - ; \3 V t& X; R7 G
- ; If an URL has be found, open browser and point to URL- I2 c. Q' A; E9 w" n
- (if (= url nil)6 S3 f( |$ q3 X
- (alert "No Universal Resource Locator associated with the object.")
6 S0 O! X3 y: z: u: Q - (command "_.browser" url)' g* Y$ E3 u! J5 X* L
- )
- v5 v0 {2 f; ]9 h - 3 s! {; E4 H9 X0 S
- (setq *error* m:err m:err nil)
! r5 L! n' U# e& t0 v/ _7 L9 C - (princ)$ H4 p, \" e8 a
- 7 ~9 C& T( Z# ^, G( G- K
- )5 ^: _0 h$ n- [6 j V) l
- ; m! i0 ]9 g$ u! k
- ;; Used by the import dialog to silently load a 3ds file
^( r( Q0 y% r" G/ V- h3 o* v5 @ - (defun import3ds (filename / filedia_old render)
l4 t2 x. P, M* |( s - ;; Load Render if not loaded8 U/ A* B8 Q! r* i
- (setq render (findfile "acRender.arx"))4 W* v9 H9 k( r: V- a& z) R
- (if render
+ x" j; C" V- v& D - (verify_arxapp_loaded render) ( J+ F, d/ p3 ?# r. z0 S
- (quit)
( w/ W# v# p" K0 T0 [ - )
# B! H6 p4 |* n8 v7 Y/ \$ W - * M# U* D0 H% a: M6 L$ a
- ;; Save current filedia & cmdecho setting.
4 \7 E- Q Y8 _+ Y( g1 J - (setq filedia-save (getvar "FILEDIA"))
4 r; i* k# Y- F+ a3 W - (setq cmdecho-save (getvar "CMDECHO"))4 Q9 R5 O" j1 @2 ^* g: k
- (setvar "FILEDIA" 0)* E; h9 e& q' y. V0 g4 V) B
- (setvar "CMDECHO" 0)
. N, m0 ^+ h5 y$ ^/ @0 F
_' ^( c# _0 V7 r6 C- ;; Call 3DSIN and pass in filename.% c0 Y# q! R4 t% V( x$ w
- (c:3dsin 1 filename)0 t$ j6 E* e' @$ G; q0 V1 n8 N
- 6 l/ w, W! j1 W$ R" L6 Z8 a3 `
- ;; Reset filedia & cmdecho5 @* F3 }, N8 Z# i) p2 N
- (setvar "FILEDIA" filedia-save)
3 e! d E- b9 v7 M. o - (setvar "CMDECHO" cmdecho-save)
; I2 y$ P8 o* l, V* S0 L - (princ)9 g8 u) O3 n; \ c8 }( ?9 D
- )9 n! G* F9 W( w [$ ^2 e
8 Q2 g8 n* }. V' p. {0 R- ?- % [& O9 z4 Z( v. p
- ;;;=== Menu Functions ======================================$ R6 t5 Q0 M# C
( _, C7 c1 s$ }7 m1 t, `- (defun ai_rootmenus ()
( ~8 b/ A$ C7 z1 ]& {; S - (setq T_MENU 0)
* i( @& _5 E% g5 p9 o# d# n - (menucmd "S=S")3 |/ Q2 K( T2 a) V3 y( l4 |; y
- (menucmd "S=ACAD.S")) B! `7 k1 l8 r2 I) ?; W
- (princ)3 q2 }" S |) F0 A8 G- A
- )9 I0 c% S7 U6 F9 n3 e
/ o8 E$ P6 }. b' m" R6 X2 {* ^- (defun c:ai_fms ( / fmsa fmsb)! C) t9 e; t0 @0 E; n5 }! A( w# s
- (setq m:err *error* *error* *merr*). M5 L" C' f( n% h! ^5 q
- (ai_undo_push)
$ I1 A& ?* z' n2 e" z# y - (if (getvar "TILEMODE") (setvar "TILEMODE" 0))
6 ^" K" t' A" ] I c3 |- {0 O - (setq fmsa (vports) fmsb (nth 0 fmsa))
: C6 {) H8 U6 j - (if (member 1 fmsb)
" c5 b/ d+ O4 V$ Y h; ^* v - (if (> (length fmsa) 1)
$ J# K4 K. @1 K - (command "_.mspace")
5 m; m6 e/ |7 M8 a1 }4 I - (progn* \1 J4 `( v4 P6 o G) M
- (ai_sysvar '("cmdecho" . 1))" \, y: ~( Y5 r1 g( ?
- (command "_.mview")
% \$ _+ T. K* m9 A9 Q+ B0 K0 u: p2 X - (while (eq 1 (logand 1 (getvar "CMDACTIVE"))), Z' k' ?1 ` ^5 r. Y
- (command pause)- j, E4 e: o. Y+ o5 p% F
- )
3 K" w6 Q+ w3 c9 F* d: K8 v - (ai_sysvar NIL)1 \; \1 R; j9 y' s% T* d) }5 v
- (command "_.mspace")% e# h }2 B X1 m; b
- )4 ?2 b, Q2 v0 H
- )
1 X* G7 G& n, J/ H" W1 s - )
9 u+ a* a* M% K! R% V - (ai_undo_pop)$ q8 I% B) y; O8 ` S
- (setq *error* m:err m:err nil)
; `( l9 I* T) @* u- ]) g - (princ)
# E$ r4 a- N5 m. L8 {/ Z; _ e - )
A) p* T+ ]5 \! D J
8 ~4 J' ~- u, i& E6 i- (defun ai_onoff (var)
! z% ~. a- [: E1 P - (setvar var (abs (1- (getvar var)))); Q7 v7 D* y" p* }8 g) v+ R! K
- (princ)
, V5 }/ z) a( G* Q - ); `, V* |) [# V/ f; T) t. O) G; Y+ t
- ; W& Z+ u3 [( x' {8 d' g
- ;;; go to paper space4 o* }. D1 `+ G* b( o
- (defun c:ai_pspace ()
6 \2 L8 _( U# S4 X% l# e: C- V6 m - (ai_undo_push)
" w8 T: h2 ^+ }: F- h - (if (/= 0 (getvar "tilemode"))& ^+ y5 p* X; S2 `6 J
- (command "_.tilemode" 0)
- V, h) w; f4 a, ?" M% J - )
' |6 l+ c# g- u" X/ ~' J+ B - (if (/= 1 (getvar "cvport"))
6 t9 u" O5 {! v: U" @1 E - (command "_.pspace")
" V- Z7 t/ N" Z - )3 R/ C, N& T' q! c) m+ \2 M
- (ai_undo_pop)
$ _ V* u* j( b u - (princ)# _7 s* J# C( @7 V# @
- ): X( y* q1 W1 _ H
- 8 l: D4 p; I+ p0 t9 A, E1 g
- ;;; go to tilemode 1
) H0 V6 `% Q8 ^2 N5 b: M& H) |% E - (defun c:ai_tilemode1 ()% ] L6 q& k& q/ d( v: }1 F
- (ai_undo_push); L+ v% _. ?- ]4 F7 H
- (if (/= 1 (getvar "tilemode"))$ h" A+ ^3 b: K/ r! n& W$ ?
- (command "_.tilemode" 1)6 w2 O1 H% n" G) A/ M
- ): \3 c" N u* W0 z
- (ai_undo_pop)
) {3 h0 k4 T% G o, z% B - (princ)
5 s8 ~- o, Q0 Q5 q5 B* T - )/ {1 N' R+ n; I
3 B& F, M8 n* `1 c: J; s5 D- ;;; Pop menu Draw/ Dim/ Align Text/ Centered5 y# Z3 M0 {8 ]& Q" r
- ;;; Toolbar Dimensions/ Align Text/ Centered+ Z: D1 | {; `+ Q6 j1 X
Q+ u2 O( [. g- (defun ai_dim_cen (/ ai_sysvar ai_dim_ss)4 T: T, ~0 K1 u
- (setq ai_sysvar (getvar "cmdecho"))5 Y2 ?! E- A% N8 r; `, W3 L, ?
- (setvar "cmdecho" 0) s; e5 z8 T5 y5 O* Z7 w0 C1 c
- (cond8 G" f) f& |5 i! ]/ G
- ((setq ai_dim_ss (ssget "_P" '((0 . "DIMENSION"))))4 ]: A7 u1 @) P% [( u: r
- (command "_.dimoverride" "_dimjust" 0 "" ai_dim_ss ""
' O. x1 t- y; s$ V) I - "_.dimtedit" ai_dim_ss "_h")3 }0 v# n/ Q( N4 C
- )9 b! ?! k4 z& D
- (T nil)
; H7 i6 l; D: e. h/ ^5 U - )$ Y- @9 K# I, U% d
- (setvar "cmdecho" ai_sysvar) p8 p6 Q* O# j9 p9 S+ A% i
- (princ)4 Z( k! v0 Y5 _
- )
7 d+ E, `7 q2 O2 |( W - & k4 M3 @: z7 m7 S4 f, ?+ v, y+ @
- ;;; Shortcut menu for Dimension Text Above
; U4 A9 Y1 i. ]. J0 Y4 V; z - @4 ?1 Y$ {+ w' J1 @
- (defun c:ai_dim_textabove (/ ss)
$ n: a; a* E1 I" ` - (ai_sysvar '("cmdecho" . 0))
. R6 l& d9 N" L# h# \( E) B - (if (setq ss (ssget "_I"))$ m8 j$ N) Q3 s( c) R8 h$ c
- (command "_.dimoverride" "_dimtad" 3 "" ss "")3 B4 E5 Z- ~+ H
- (if (setq ss (ssget))
' n b0 e+ n" R5 ]9 x - (command "_.dimoverride" "_dimtad" 3 "" ss "")
( K/ @; W; A/ ]2 H - )$ F$ C/ A* n' t1 g M- I& R
- )
, m+ j* t" ?" h6 k. ]8 o, b' V - (ai_sysvar NIL)- U- v) K. J. v8 Z* ~2 l+ f$ T: a0 G
- (princ)
3 |4 G! F$ h4 e' h c; I - )
7 ^6 r1 C$ e( e3 d - 3 i3 J: C$ s E6 k# i* ]
- ;;; Shortcut menu for Dimension Text Center * B$ a4 D; k6 ^+ d+ B9 O
/ u* K% J$ N/ i" X- G- (defun c:ai_dim_textcenter (/ ss)- P' Z* F4 g0 [2 N
- (ai_sysvar '("cmdecho" . 0))
2 F6 z+ |( _6 N+ N4 O9 {, `6 [: c! @ - (if (setq ss (ssget "_I"))
# |* A& E9 v5 C* w3 V4 F - (command "_.dimoverride" "_dimtad" 0 "" ss "")
& Z7 V) l3 ~9 q. s- |$ ?9 t7 A - (if (setq ss (ssget))& i4 s" c8 e/ d+ F8 f( F
- (command "_.dimoverride" "_dimtad" 0 "" ss "")
: [9 j% n8 y5 B: x" j - )
0 j+ {$ E5 n$ I- }: a) m - )
! |4 q5 l' }: _ F - (ai_sysvar NIL)
/ s. ~ L( |7 s0 k7 J - (princ)/ ^3 U. l) D* p f5 x" J
- )
" Q! J: j1 D7 X5 N& J) p5 ^ a" o6 q/ I - . r7 w! f; q) a
- ;;; Shortcut menu for Dimension Text Home 8 F& i2 {/ P: _) k5 \! r7 S6 _7 M
- 1 b i. M/ S9 A) R4 C7 @" r
- (defun c:ai_dim_texthome (/ ss)
3 [! O6 z; K" g3 u" c - (ai_sysvar '("cmdecho" . 0))2 Z6 P4 C2 P% ]( U9 W3 E
- (if (setq ss (ssget "_I"))
" j0 S/ M; f. t2 [: s# b U - (command "_.dimedit" "_h")
5 q/ h" x4 S6 ]( l - (if (setq ss (ssget))* p* z$ I% f& Y) X
- (command "_.dimedit" "_h" ss)
, X0 z7 S, U, ]+ g- T; v - )
8 L G8 h4 y6 X- h6 d - )
6 N0 A! [- u4 O' S9 c, \) G - (ai_sysvar NIL) S/ r1 U+ N! I' {" r9 N6 l5 k0 F: R
- (princ)
: `9 G" L, g* O9 b6 u - )
% F( C0 M. O+ ~1 d; T - 9 C; u* j2 f6 f: ^0 N
% N# J( a1 f4 G- e; |4 J2 W$ Y6 x- ;;; Screen menu item for CIRCLE TaTaTan option.6 H# k* u6 K' h1 F/ ^
- ;;; first, get points on entities8 K4 ~ V$ O+ a7 C( n M
- (defun ai_circtanstart()# A; y/ |3 T8 s) Q4 Y2 q2 g
- (setq m:err *error* *error* *merr*)
- w/ J% _8 R' P - (ai_sysvar
7 ]/ B2 r8 A+ d6 ~- Z; E - (list '("cmdecho" . 0)( c0 B' a6 D7 `9 _# ]
- ;; make sure _tan pick for CIRCLE gets same entity
& @7 w; g7 g/ d, n - (cons "aperture" (getvar "pickbox")), \, ^) x" s8 m( O" f
- )7 f& D% m9 U' p0 {
- )
: t: m; D7 O7 L - ;; prompts are the same as CIRCLE/TTR command option
5 i& y: H) H/ j6 t0 i - (setq pt1 (ai_entsnap "\nEnter Tangent spec: " nil))6 C# ~# V! Q$ y' _" \4 _8 s7 J4 B
- (setq pt2 (ai_entsnap "\nEnter second Tangent spec: " nil))5 H* Q9 Z: ^# m/ u o
- (setq pt3 (ai_entsnap "\nEnter third Tangent spec: " nil)) A* p% c1 D$ r$ }( Y
- ): T5 Z0 L A1 l. a
- ;;; Command-line version5 J% i6 | V6 H
- (defun c:ai_circtan (/ pt1 pt2 pt3)* s g5 U# X6 M$ H2 [* M; Y
- (ai_circtanstart)9 ^1 h( m( }; g, x) Z+ z
% Z! s2 }5 N- a+ s4 q8 `# l& R0 S4 Z- (ai_sysvar '("osmode" . 256))
% F4 k; y- a1 [/ e/ i - (command "_.circle" "_3p" "_tan" pt1 "_tan" pt2 "_tan" pt3)
% Z3 E( d* O- q7 S* `& ^ - 7 G; o$ P8 V9 r' @' M9 h
- (ai_sysvar nil)
# H# _/ n+ s" ~' f4 {* B0 N [ - (setq *error* m:err m:err nil)
% v+ _* y' m( R/ Q6 w: G - (princ)
! D E8 f9 X5 N6 t - )- I& _( i3 p! J: A. J0 y2 `9 `
- ;;; Use this if CMDNAMES == CIRCLE% [- u& q# A$ \2 r
- (defun ai_circtan (/ pt1 pt2 pt3)7 j- a# p: y6 Y- V! d
- (ai_circtanstart)" v9 t+ D) J* C1 S
- 2 g' V4 U- G/ j! ~, W! S
- (ai_sysvar '("osmode" . 256))
, g4 b. L8 A4 e% ]6 b6 H l - (command "_3p" pt1 pt2 pt3)
2 X( H( w- I- X3 X- I -
6 C' w' p+ t( |, I- G - (ai_sysvar nil)
" F5 B2 B+ `4 p* l" G! U - (setq *error* m:err m:err nil)
% `% X" w" m$ q+ O5 Y& A - (princ)
# A1 c( e4 ]' ?6 c - )
8 Z8 `+ e) U8 ^( y9 Z - ! u$ h1 y& i# o: t7 q5 i
- / ^# `9 B& A# [1 S
4 C/ A' T/ @+ a- ;;; Shortcut menu Deselect All item.
" U- }2 T) N; ~9 t - 5 }1 I5 J; Q: \/ M8 u; y2 Z( v
- (defun ai_deselect ()* s$ ^2 l. M Q/ W& ?, |
- (if (= (getvar "cmdecho") 0) ;start if
5 E& r1 W5 G. P8 t+ B2 p# u$ P - (command "_.select" "_r" "_all" ""). g$ t i- t3 u1 r/ [' j7 J; A8 e# s# f* {
- (progn ;start progn for cmdecho 12 ~ g# M% Y8 \3 s* {' C
- (setvar "cmdecho" 0)8 |- b E9 M9 ]5 |2 Z/ A
- (command "_.select" "_r" "_all" "")7 b6 ~1 f3 m8 p' i' p
- (setvar "cmdecho" 1)
; X4 U4 M# S+ y1 @! { - ) ;end progn for cmdecho 12 A+ d7 \6 _& a6 F
- ) ;end if7 R0 t' [/ B: L5 Y6 ^1 D M
- (terpri)2 y, F: S$ K: O1 v% l" y( ?. b
- (prompt "Everything has been deselected")/ ^3 N }5 n' k- a
- (princ). Z" C' @3 Z& T, z+ K ^2 W) D; D
- )
5 h, F. w2 |! W( E* |: K. D - % z: m! z5 L s% M: M
- ;;; Command version of ai_deselect to be called from the CUI
, z9 T u6 j* T; Y2 v - ;;; so it gets properly recorded by the Action Recorder
) ?6 L' I# k* ^( Z& @7 d - ;;;, c1 X4 Q5 i4 o" _, E, v
- (defun c:ai_deselect ()5 _# ?2 @0 R2 K6 _% V f
- (ai_deselect), [2 W8 B3 M6 I& M# E3 C( K z
- (princ)4 ]0 ?- M! C7 M8 K% M3 A1 E
- )! c3 Q' u9 L# @! f% @) S: E
- 3 o3 ]% W) E( i5 t: W# r
- ;;;! F$ V5 u: q4 h# f; N
- ;;; Enable Draworder to be called from a menu3 D ?6 c9 T( M& n$ d# d: h% g
- ;;; Checks for Pickfirst selected objects
! h5 q2 A0 B1 m9 {/ a/ c - ;;;
4 [6 x3 o, N9 s+ a$ h- P( V
1 ~0 _. N6 |! n7 l- (defun ai_draworder (option / ss )0 p6 ]3 o' u1 E; W9 a# Z
- & A7 z; t3 l% @8 n; `
- (setq m:err *error* *error* *merr*)* h) {# t+ t; L! Z6 L" I
- (ai_sysvar '("cmdecho" . 0))$ ]5 Z$ s9 B2 N% Q& ^" p
- E* g7 W& L# _" S: g0 f& J1 U
- (if (setq ss (ssget "_I"))
/ \9 T+ i# k# u - (command "_.draworder" option): d7 Z- v( U. e* Q8 W" R4 ?/ S
- (if (setq ss (ssget))+ w' t! `0 p* \: j0 e: H T
- (command "_.draworder" ss "" option)
) A2 x z) ]& n9 G, X7 }" u - )4 X, i7 _/ X* R; N1 |! O6 V
- )
0 _6 e: r3 s* S1 ^ f8 Y9 y0 [5 T - (ai_sysvar NIL)
6 j2 N1 ~4 o7 S" l' G$ x1 y - (setq *error* m:err m:err nil)
8 S7 R0 ~. [3 X o, X4 r
9 C* o7 G( d2 ^7 A a) `" K- (princ)
: c0 w% }! E5 E a" n - )
# d6 W: o+ ?6 H6 P
2 v2 P U9 Q' r. {, s- ;;; Command version of ai_draworder to be called from the CUI
& Z6 U1 W* V; } - ;;; so it gets properly recorded by the Action Recorder
V) m' M8 p }4 j! D' x - ;;;
* O |/ c |0 \- _# u - (defun c:ai_draworder ()
$ S7 e0 O) }2 M* `! T* ` - (initget "Above Under Front Back")
: Y7 w. T# j" Y! ` `' K/ P, S* l& e - (ai_draworder (strcat "_" (getkword)))
; u1 @. J/ F* G: q W' a - (princ)
/ E' K6 v. p1 U5 b8 W3 r - )
w2 ]) L4 r& F* j7 X, U - ) x% s! T+ j$ F; v; }
- (defun c:vlisp ()! C+ R1 @3 v& y4 A
- (if (/= nil c:vlide) (c:vlide))9 `8 E! S, M/ e+ C2 \' h& H. W
- ): e( l- a2 w9 \0 z' a P4 l7 x
- - o2 I. M: J4 p4 ~- C+ P! P
- (princ "loaded.")' N6 n: O, k8 @
- * j' O$ D5 }; W7 W3 J
- ;; Silent load.. y8 N- X5 V" y; k
- (princ)' e" J8 e' s7 O$ U! }0 ]" D# {
- ; q, @7 r+ s" z/ n9 e" \# g4 `
- ;;;----------------------------------------------------------------------------
$ a& D$ r' d) z7 h - ;;;" v) r8 W) `, d. q& q! C# j! {
- ;;; DDCHPROP.LSP Version 0.5. G$ ]" y# T: L5 T* t8 D
- ;;;
9 Y8 v6 ]# ?5 _2 U6 D/ Q: J - ;;; Copyright (C) 1991-1993 by Autodesk, Inc.1 |2 Y9 f( N0 o7 ~: M/ S1 o, q
- ;;;
" r) x" H- s; P- v1 M( t" W, d - ;;; Permission to use, copy, modify, and distribute this software
( y% [# Z- b1 q) }+ H - ;;; for any purpose and without fee is hereby granted, provided
3 k9 }& R, m/ S9 w7 B4 _: D - ;;; that the above copyright notice appears in all copies and that7 i8 |/ \! }8 Z; ?" ^5 H
- ;;; both that copyright notice and this permission notice appear in# y1 t( d( z$ s/ M# k5 [) @4 T
- ;;; all supporting documentation.% }# `$ g) K9 S# j
- ;;;
2 H/ D$ s {/ ^8 a, i - ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED) P% h# t- K: N& X' j* n
- ;;; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR
% Q* u: D' h& h S) v* F, p* t5 Z2 X: k" D - ;;; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.
2 r' z- h- @; @+ p - ;;;
* o: A/ W' e1 @' D6 T - ;;; 2 February 1992
& G6 T @( T. r4 F; r1 l' l y* W - ;;; / T/ I! a7 o. @+ Z$ m
- ;;;----------------------------------------------------------------------------
6 ?% _ ]% t m* j- ?; O9 E - ;;; DESCRIPTION
- e* A$ E; w# b' s! C - ;;;----------------------------------------------------------------------------
/ x. z! F' E! {' v4 b' N - ;;; C:DDCHPROP is a dialogue interface for the CHPROP command.( k5 W: ]/ W) `) c; z& k
- ;;;
; D1 y5 D1 A( w O5 ` - ;;; The command looks similar to DDEMODES. The main dialogue has an image
5 D$ Q r: H7 W: W6 O; x - ;;; tile, 3 buttons (layer, color, linetype), and an editbox (thickness). 1 o* e! n$ a/ B( w% I L
- ;;; The 3 buttons each launch a sub-dialogue containing a list and edit box.
6 n2 h& O" p: b3 g% R6 ? - ;;; The dialogues are all defined in the DDCHPROP.DCL file.& A6 G ]4 ~1 B, j+ L/ A8 S
- ;;;
) u0 ^% G9 X3 k% ?# _( E$ W - ;;;& \( C; `. ?5 y, |) P( t3 f
- ;;;----------------------------------------------------------------------------& E+ S( j L! v/ I! b: u+ U( S
- ;;;----------------------------------------------------------------------------
6 S6 m/ O+ u) K/ F - ;;; Prefixes in command and keyword strings:
& a+ ]9 B: i* J* `- r/ d - ;;; "." specifies the built-in AutoCAD command in case it has been 2 p" [- C6 T- { o3 W* @" _- G
- ;;; redefined.
4 J: Q0 w% r6 M9 k1 c! z5 t2 R - ;;; "_" denotes an AutoCAD command or keyword in the native language
7 A( v7 l( l& ^7 M1 u - ;;; version, English.
& G6 t5 J) n9 @# P - ;;;----------------------------------------------------------------------------! q6 L9 A v6 t2 Q, ?, q0 K
- ;;;
7 l3 V# s1 m% _; B. v& ?- h4 [ - ;;;9 t) q1 D6 s0 k) s: ?" `! Y: h
- ;;; ===========================================================================; v; ~: R/ o! L0 m0 \7 m+ j( b8 [
- ;;; ===================== load-time error checking ============================
) \! Q) ?1 q* S2 N! \5 x w# ~ - ;;;% b" F0 x: f: k6 B8 R
- " t: e; `" c3 X0 n( M Z
- (defun ai_abort (app msg)
( c# f0 z5 i7 }# P8 H9 y9 { - (defun *error* (s)+ y, |, m! u5 J- m) L7 s+ Q
- (if old_error (setq *error* old_error))! q* q5 A, L7 C S6 h8 H* w
- (princ): ~1 }4 n1 o4 O+ Z1 x
- ), M9 F$ L9 `, E3 V, `' l
- (if msg
/ H& ^$ z+ H: `3 J6 q - (alert (strcat " Application error: ") q$ M0 p0 A5 t: u3 R
- app
+ u+ a& Z2 z s! }( y( `4 ? - " \n\n "
5 [; o$ m; P& |; T- R. t8 f/ x* K - msg
3 S' Q/ U4 ~5 U# F8 t - " \n"
0 H; [1 a" U9 N" p4 v - )5 Z1 v# ?, r X4 X9 X. A- `
- )
: B' v: G. @, Y- A/ g1 \ - )+ U1 B4 v$ J! p9 [( M. d& Z# B
- (exit)
3 k. \8 m8 O/ `" |. ? - )
0 Y+ X9 X, h& T
6 q' Y, j( o. I* `- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,; q& V8 T1 k8 [/ q- `& f* t
- ;;; and then try to load it.
( B5 R$ l0 I% A - ;;;& q, B. o8 H3 s" A u3 e
- ;;; If it can't be found or it can't be loaded, then abort the' ~% L$ X! x4 `' j% s* a6 a7 Q& G
- ;;; loading of this file immediately, preserving the (autoload)
' b% r% c' U% i) O& Y - ;;; stub function.
% [) \3 B! {* Z, f2 q3 q, y - 8 b5 v6 j; R' W7 l1 @% M6 a( X; W
- (cond8 b& E' n2 M: @2 R
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.6 {8 E; d/ s) i
- ! M5 U9 i7 k9 b4 a+ j' c' }
- ( (not (findfile "ai_utils.lsp")) ; find it3 W8 y) o( v/ i
- (ai_abort "DDCHPROP" F% @! D; p8 F& v! M
- (strcat "Can't locate file AI_UTILS.LSP."8 F/ c3 T- @3 G2 V6 K
- "\n Check support directory.")))
, |2 O$ ?. w+ \' D) G3 i! I - 9 x3 d" A5 j. m' z# y
- ( (eq "failed" (load "ai_utils" "failed")) ; load it
- E6 P* H: I4 _* S3 v - (ai_abort "DDCHPROP" "Can't load file AI_UTILS.LSP"))3 h2 W3 C1 t6 A4 o
- )
: f. s2 O r5 ^8 T
3 @: i& T- J' J# P6 @5 p- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP: t. k4 D. l4 F& M2 ~ T
- (ai_abort "DDCHPROP" nil) ; a Nil <msg> supresses
" p4 i. w5 P: r: |6 v - ) ; ai_abort's alert box dialog.
& }# K9 _0 t6 Y - ( y; C$ W) v8 X8 B, Q
- ;;; ==================== end load-time operations ===========================
' B7 ^. q! x1 H2 M$ e1 ~/ z" D
1 s; b/ ?8 `! ~- ;;; Initialize program subroutines and variables.9 m. \' ~: _4 [
: w3 p4 z$ b: q) A: t. j C2 G- (defun ddchprop_init ()4 f" o2 b% {+ `. D
$ E0 k; g. Q! j/ N: a% h- ;;
, U. M$ s. ^( w8 x8 f4 A/ y) r - ;; Define buttons and set values in CHPROP dialogue box / n* b8 `) x/ ?* d$ n5 V' N
- ;;
7 O3 k3 G8 C, ~0 l' k - (defun call_chp ()
6 j6 O7 ] Z7 B* T8 v, T - (if (not (new_dialog "ch_prop" dcl_id)) (exit)): S4 y1 a" P9 o% v
- (set_tile "error" "")# y/ z* _6 a! M5 d+ e
- ;; Set initial dialogue tile values
! V' I$ g+ u4 }( b+ s1 p! {/ U - (set_col_tile)
# g1 f; y; N+ t* F! v$ y - (if (= lay-idx nil)* ~* ?9 ]* x1 _' Z
- (set_tile "t_layer" "Varies")
' Q4 p9 n3 K$ a/ a2 J - (set_tile "t_layer" (nth lay-idx laynmlst))
* J/ b- Y! h# ]2 b. h( m2 N- z" f/ S - )
6 {- R; S2 O1 M! F- n0 |: X0 D - (cond 9 V4 q/ _: x; J
- ((= lt-idx nil)3 Q: F; W. t5 f: t2 d
- (set_tile "t_ltype" "Varies")
- }+ F0 Z) ^1 A, W9 P& ] - )# H' g! B( j" |, X7 v. @
- ((= lt-idx 0) ; set tile "By layer & layer linetype"4 R5 X# @4 {( B$ O3 R& l! w5 k' |
- (set_tile "t_ltype" (bylayer_lt)); x1 \4 B/ L- i6 P. O# B
- )
, R0 ^( e* `- `, a( ^& {6 D - (T
* g& W/ M( S4 a9 H( t - (set_tile "t_ltype" (nth lt-idx ltnmlst))+ n- ]/ F- e* f+ l
- )0 S: \9 Z1 q4 R
- )
; N! x" N# R F M+ L, t8 Z' C - (if (or (= ethickness nil) (= ethickness "Varies"))
4 w, {0 c( F7 T6 A1 s - (set_tile "eb_thickness" "Varies")
9 o/ |7 r: w3 w' V& c5 k& k5 d - (set_tile "eb_thickness" (rtos ethickness))0 k* x0 w4 |2 k) H( H' j
- )# S# p1 f& d- o* J! l
- ;; Define action for tiles7 e9 p$ D6 S% E' T( b a
- (action_tile "b_color" "(setq ecolor (getcolor))"); Z" M( J: j# H4 Y" M: y
- (action_tile "show_image" "(setq ecolor (getcolor))")& \: s; [; h* o: C3 b w
- (action_tile "b_name" "(setq elayer (getlayer))")
3 u, r; y, @) u$ ~ - (action_tile "b_line" "(setq eltype (getltype))")
* r5 b9 o$ e; w. } r' J! { - (action_tile "eb_thickness" "(getthickness $value)")
) D" s7 d( P; }/ I, ?# l* m; U! J- Q - (action_tile "help" "(acad_helpdlg \"acad.hlp\" \"ddchprop\")")) H# i3 P; |- N
- (action_tile "accept" "(test-ok)")( o2 D/ B# X" k& O
- (if (= (start_dialog) 1)" B0 G1 c' U! j5 \; f
- (progn
5 |- x8 s' U6 Y, i& n - (command "_.chprop" ss "")' x+ E' M/ e* s9 O1 t6 C! E- Y
- (if ecolor
) R9 l. [3 _ J - (progn
0 R* t# C w# Q; ^ - (if (= 0 ecolor ) (setq ecolor "BYBLOCK"))
) R' L3 t* `0 W5 r- R v - (if (= 256 ecolor ) (setq ecolor "BYLAYER"))$ k+ z& ~8 p- c1 e" @) U
- (command "_c" ecolor)
- O. f8 ^ d+ s% a8 W# z5 ~* k - )
0 G0 h; d" i! i8 S. g6 _4 O - )
9 G2 ?9 v. e w: L: P t - (if (and (/= eltype "Varies") lt-idx)
0 b+ _$ ]3 p( i7 c; u9 Q% \ - (command "_lt" eltype)
7 N) g0 {& F( n3 X - ): S+ V2 f' H- V! s0 h+ l
- (if (and (/= elayer "Varies") lay-idx)2 r2 |; \1 M+ y' k% c* l
- (command "_la" elayer)
+ U8 ?6 b5 j) P9 f - )
0 u, }" I* z6 s& t2 E3 J! l& r - (if (and (/= ethickness "Varies") ethickness). [* A# ~6 p- D! I
- (command "_t" ethickness)! W. O' |9 |( n8 U k
- )
, o" K5 ]% R# v; K - (command "")
- t" K5 X3 o% E6 _7 t - )
2 e/ K0 q# {( `; ?& e. Q - (princ "\nProperties unchanged")
J! s# v% s( R h! @ - )
& M' I: w4 h0 [0 t/ A4 p5 D$ t - (princ)( t5 ` b. U5 F" ^3 f0 n
- )
" l H9 \' N( F; a: }, S4 _ Q" X - ;;/ L" ~* i/ F3 J+ n- b u% k
- ;; Function to set the Color text tile and swab to the current color value.
' | N% Y( ~- X* ]5 e - ;;$ I. q4 n8 C7 |' r, |
- (defun set_col_tile()2 L1 C( s b+ x+ ^; z
- (cond 2 b( K. m( E0 c2 B7 M0 b
- ((= ecolor nil)/ v8 _& M5 J2 O& K& @) z) J
- (set_tile "t_color" "Varies")+ `! m( R4 v' R \0 \: \+ s
- (col_tile "show_image" 0 nil)
: _" A0 z7 i5 z) j G7 z* d E - )2 N: b& K" h: L P3 i% O- z9 d
- ((= ecolor 0)
w: s( p8 i5 W3 o4 w+ u% k - (set_tile "t_color" "BYBLOCK")
6 C, H5 e( Q. X# x: a4 K [ - (col_tile "show_image" 0 nil)
( N) r7 B8 [; P$ y; i# c. o& ` - )
2 I! Q- \: @% M( b - ((= ecolor 1)
6 m. }7 r# u" W$ S1 d5 K: j - (set_tile "t_color" "1 red")1 [/ l' Y5 I, `2 C
- (col_tile "show_image" 1 nil)4 d3 v9 u% _' |/ s0 B8 T' z4 f& k
- )8 T& e2 a' W% _5 V# V$ e
- ((= ecolor 2)
$ \7 A% b# @/ X% P/ T - (set_tile "t_color" "2 yellow")
7 ]6 i, T6 P3 P7 _0 k6 o! N u$ u - (col_tile "show_image" 2 nil)
8 x/ y/ n* T: q - ); t( o W6 b% S# o( @
- ((= ecolor 3)
5 g0 a0 S# l, L: ~' G# M - (set_tile "t_color" "3 green")$ }; }3 W& ~. C1 N+ z
- (col_tile "show_image" 3 nil)) `4 r* A2 d, f
- )' d( t- [; b! l7 O
- ((= ecolor 4)
( w' P, h0 l& z. R E - (set_tile "t_color" "4 cyan")0 _+ u k* F+ }- i% R! w' t6 J
- (col_tile "show_image" 4 nil)0 ]5 E- F$ N7 Q! F
- )( b) y+ D3 W: S
- ((= ecolor 5)
) D4 f1 C9 J$ W% [+ \. g - (set_tile "t_color" "5 blue")4 F& ~ {0 H& y6 u7 Y# Y, M
- (col_tile "show_image" 5 nil)! L/ q4 q& V4 v6 w
- )
2 n4 |2 z2 V1 R& y0 x - ((= ecolor 6)
) J6 k4 j0 S$ u# O - (set_tile "t_color" "6 magenta")
5 A2 S) R+ k- d* E3 p' L - (col_tile "show_image" 6 nil)
: j2 |6 A* i. _ - ): E2 C3 H K+ \0 n0 D& h
- ((= ecolor 7)
* I& H' B7 c$ I/ A" i/ ? - (set_tile "t_color" "7 white")) ?4 D% f- ?" A$ t3 W/ D
- (col_tile "show_image" 7 nil)
7 p( J6 R( P) }! d% D/ I. G - )5 N7 z/ l) I, S
- ;; If the color is "BYLAYER", then set the tile to
& C% B$ {* W$ }0 L) j- ~ - ;; show it's set By layer, but also indicate the
: Z# ]- h; P1 f) T1 t% r. z - ;; color of the layer - i.e. By layer (red)% H' A2 C* o' @
- ((= ecolor 256)* |5 Z' J3 G J7 j
- (set_tile "t_color" (bylayer_col))
# x% h( ^5 J N* ^* M. b E2 o - (col_tile "show_image" cn nil)8 |3 E0 E: J( G* P0 p/ W( m$ z; _ i
- )) I, C3 F- ?( d- p" V
- (T
8 M1 A. a Z% b* i1 }8 ? - (set_tile "t_color" (itoa ecolor))+ V% I+ Q& A" _, _2 _; }2 l
- (col_tile "show_image" ecolor nil)3 M2 R8 S3 |, y0 o! M
- )- D2 j( R4 v3 G/ f( N/ B8 o# h
- )& I: z9 X0 H) g
- )
/ ^! p4 s. i, Q - ;;
2 V' `/ Y5 B1 j. e! {! I - ;; Function to put up the standard color dialogue.6 o4 D a" O/ x8 N5 x5 Z
- ;;" V0 N8 W& W# ?' Z8 \
- (defun getcolor(/ col_def lay_clr temp_color)
1 y$ q9 S) ?5 V3 a - ;; col_def is the default color used when rq_color is called. If ecolor % ~" ]+ Q' m+ g2 K7 l$ d
- ;; is nil (varies) then set it to 1, else use the value of ecolor.
/ s1 l. w4 n1 E. [$ W0 f - (if ecolor
) j0 X) ~' ~4 i8 f4 `/ i* P - (setq col_def ecolor)) L. E) l+ G8 A, s
- (setq col_def 1)# X: y( [3 t- T, v
- )
. Y5 z3 D& u& v7 e -
7 M5 \2 @* o( C* h. } - ;; If we're working with a single layer, get its color
2 C& r, X) h5 e; @5 I5 t& t - ;; for use in the color swatch if the user selects color BYLAYER.
0 g2 }# w% i8 d5 E3 }) N2 P - (if (/= elayer "Varies")# G, _9 E! A, K, Z
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
9 B; D4 G9 ^; w( N - (setq lay_clr 0)9 Z! P& f; y3 p# k" M
- )% A% J9 R8 O$ L5 F
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
) G8 L4 i8 m Y0 A8 g: H; f - (progn
4 X( `% c, X8 o( X+ G: L6 f7 Z5 f: p - (setq ecolor temp_color): ~; p$ [3 T0 r u& Z( g: M& X
- (set_col_tile)' F; R; A# _( ?6 ?( D
- ecolor
) B/ ^! v! f' {% }' J3 y9 r - )( u. w/ w- S! e2 L' J
- ecolor L+ F& Q! w. L7 W& ]1 J$ u
- ) / q& }2 t- p9 H/ e8 M
- )) s4 Y6 W9 ]4 z. e
- ;; d+ q4 [, I. Z" g2 n s4 ]
- ;; This function pops a dialogue box consisting of a list box, image tile,
0 s! j6 C$ e" T - ;; and edit box to allow the user to select or type a linetype. It returns # `" }8 g' ^' V. m) S2 F
- ;; the linetype selected.4 u. `/ {, C: }3 b5 g
- ;;. _, o, D% H& h' s
- (defun getltype (/ old-idx ltname)
% p S" X6 B3 J" {6 B7 u, x - ;; Initialize a dialogue from dialogue file* F/ ]$ t( X5 M* K$ w
- (if (not (new_dialog "setltype" dcl_id)) (exit))$ c( _# {% M. j3 {( N2 V1 p$ E# e
- (start_list "list_lt")
/ s4 r. p& }4 L% n$ h6 T3 N - (mapcar 'add_list ltnmlst) ; initialize list box
! `& w4 f! P" ?: s# S: t - (end_list)
- _3 T0 {! h s: r$ r% ]2 T - (setq old-idx lt-idx)
4 ]" a" K- `2 Z0 D& H$ u) R( ? - ;; Show initial ltype in image tile, list box, and edit box
( `: b n0 s0 V# x - (if (/= lt-idx nil)& z" v. F% M/ ]1 `- W$ M v6 F
- (ltlist_act (itoa lt-idx))
( i& k, o5 t; s9 f% _4 c5 h - (progn0 {2 ^+ B% y. w2 @: t7 ^
- (set_tile "edit_lt" "Varies")2 l) e% [' c. e
- (col_tile "show_image" 0 nil)
5 J9 g* @3 s/ w8 s6 G - )
2 x7 J0 x0 d# L. \2 x3 e - ), |: U& v& a+ S6 u- |% n: h
- (action_tile "list_lt" "(ltlist_act $value)")$ t0 ~+ ^2 X" S# q; J
- (action_tile "edit_lt" "(ltedit_act $value)")
. `9 e% f! E% A7 E1 ?- P; J - (action_tile "accept" "(test-ok)")8 y% }/ F W% F' y. a
- (action_tile "cancel" "(reset-lt)")( g6 o& y9 D& ]- f- D% m6 K% X
- (if (= (start_dialog) 1) ; User pressed OK$ Z" |$ p2 q6 I) u% N
- (cond
; _2 I( `2 e0 K* D0 e# b7 F - ((= lt-idx nil)
; l b, [+ C" f. |: o - (set_tile "t_ltype" "Varies")# G! e1 I/ d! y: y9 \( U
- "Varies"
# W {6 H7 M: C! k& M5 U9 b, M - )
7 Z/ G! I3 n- M6 ` - ((= lt-idx 0)
& ?3 \6 L* S8 { a: ^% w1 ^) X8 W - (set_tile "t_ltype" (bylayer_lt))
% x2 X6 O9 f4 v. p1 G - "BYLAYER": {% x# i5 U; ^
- )
$ R3 I/ ?& g% Q' l4 J1 O! ?: N6 W/ Q - ((= lt-idx 1)" j) m( I; f/ s& A( W0 q
- (set_tile "t_ltype" "BYBLOCK")
9 o! A D- ?4 F8 t- B' k - "BYBLOCK"
0 g$ ?9 }$ b3 C: D! x9 L+ u+ y - )
0 o% p) C; ~, E& A" R" n* I) J - (T
5 Z3 h+ Z! O4 O4 k - (set_tile "t_ltype" ltname) & Y" a% V+ C; k. ]
- ltname
) l0 a+ e/ U. s, t' c - )7 L! x+ t/ W% V6 A
- )* B% d1 R" t' W
- eltype
6 l3 e' y, n" }) ]# f: G* M9 u - )
6 {8 x p" r/ Q, a, {3 l8 \ - )
, f3 l8 Q2 T6 Y. b' {8 } - ;;0 S5 P- f- @7 j* D8 U7 n
- ;; Edit box entries end up here
- w) A* v9 k0 z: u1 u+ O) N. L - ;;$ k; H: z7 j6 K+ f% H3 f
- (defun ltedit_act (ltvalue)$ c+ Q7 b- F: ^2 V
- ;; If linetype name,is valid, then clear error string,
% {6 A( b& w0 i' ]5 f - ;; call ltlist_act function, and change focus to list box.
8 X( p! b9 H: V* _, N, d - ;; Else print error message.
' l9 Q; _) z2 q9 i# [2 Y4 h8 g - (setq ltvalue (strcase ltvalue))' K3 R/ B* a+ ]* `
- (if (or (= ltvalue "BYLAYER") (= ltvalue "BY LAYER"))
# M7 r* V4 x9 D* x, W6 O - (setq ltvalue "BYLAYER")
/ z2 h, C( X% c- S. ?3 O - )
9 X, Z3 S5 T) _4 z& T5 K( q - (if (or (= ltvalue "BYBLOCK") (= ltvalue "BY BLOCK"))
+ O+ @+ O3 N) ]9 ^2 }% B" A5 v: Y - (setq ltvalue "BYBLOCK")5 {! b A6 d0 J4 G
- )
2 q i5 q( L, R O7 f - (if (setq lt-idx (getindex ltvalue ltnmlst))
7 Z0 ^1 D1 x, Q6 g8 o9 E9 L0 E - (progn$ S6 H5 d4 ^, g1 y
- (set_tile "error" "")' }5 F' x) w0 g: |; v
- (ltlist_act (itoa lt-idx))% |0 X" P$ ?: L' D6 T# }" h
- (mode_tile "list_lt" 2)
0 L5 E* ? N* R$ R - ): d- P* ^% ?% |9 f; f! L5 Y! w
- (progn
6 a2 C; U, K" h7 \! Y, Z, E - (if (/= ltvalue "VARIES")
' Z: B7 L c" ^# _( V' Y# _: M$ O - (set_tile "error" "Invalid linetype.")
+ S' J5 D' o, n/ q/ C - )( Q! g N ]- [% u2 J
- (setq lt-idx old-idx)# R1 l% G% _0 y. h
- ) 2 P) R k# N# M9 ^; p
- )
4 m' q& ]- a: G/ N7 ?2 \* ^ - )
9 W8 N! L2 V8 }5 H* J) ?# Q# W- B3 n - ;;
6 C+ i. J1 m! n% h - ;; List selections end up here
& J4 W/ h3 Y! q0 \; B/ q5 m - ;;6 e! C, g) U9 w9 q* r
- (defun ltlist_act (index / dashdata)
6 N0 N, G6 q( s% _. q - ;; Update the list box, edit box, and color tile
6 ?; t4 s" l/ f1 \: u: I - (set_tile "error" "")
( W/ X( Y7 ]3 J8 j4 D - (setq lt-idx (atoi index))7 w5 \: z1 Y* e7 J: m3 E
- (setq ltname (nth lt-idx ltnmlst))
6 j. ?+ L3 m% |" R0 X# E - (setq dashdata (nth lt-idx mdashlist)), M; P$ G5 F$ l) V2 o: j! ^! b
- (col_tile "show_image" 0 dashdata)7 A. x9 K! e' Q, O. o
- (set_tile "list_lt" (itoa lt-idx))
+ M1 [' u+ |5 @) J, r" r; } - (set_tile "edit_lt" ltname)
& x* c( r) }% C# v% V2 ? E - )
) L# h" S! l1 {1 U1 J4 y, y - ;;) F4 Q9 E- S+ N, g# O1 g- {/ d
- ;; Reset to original linetype when cancel it selected
g# V0 F; a9 A" Y0 P - ;;. F" i. o: {7 y$ i
- (defun reset-lt ()4 O# B, X! Z2 m
- (setq lt-idx old-idx)9 m/ n$ {+ b; ?. Y
- (done_dialog 0)& V& [, t# @+ t- b4 T5 h/ T
- )
# J& M% U o+ e# G, R - ;;% f) X) K |7 q9 y/ p1 h/ q: f
- ;; This function pops a dialogue box consisting of a list box and edit box to
- @5 E# g& p: R* C8 h - ;; allow the user to select or type a layer name. It returns the layer name 8 J) A7 _- E' e o
- ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the 4 a5 ?/ c# D6 L& z. r
- ;; drawing.# v6 _0 D. m0 `+ R- K
- ;;
, {% ]9 s, B$ s! X. [ m. ?' _ - (defun getlayer (/ old-idx layname on off frozth linetype colname)" w1 o, q: A8 r3 L8 U+ `
- ;; Load a dialogue from dialogue file! l7 T* A7 T" L$ A5 I
- (if (not (new_dialog "setlayer" dcl_id)) (exit))# F$ U0 s- x1 b) G. F% _
- (start_list "list_lay")
9 o: |* i! @0 O; X& d" Z - (mapcar 'add_list longlist) ; initialize list box$ C) `3 I, }" ]3 x2 x
- (end_list)/ D& s2 p# Q5 Q# h$ A' D/ v
- ;; Display current layer, show initial layer name in edit
8 n' Z; [% I9 g3 g - ;; box, and highlight list box.! Y' r$ M- {4 d) Y1 ?" K. D5 c6 m
- (setq old-idx lay-idx)6 ?" V) {. y: O, p2 |
- (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))
7 {! p$ M ]9 {& ^, y6 r) e! v+ @ - (set_tile "cur_layer" (getvar "clayer"))7 c) K6 ]. j( ~1 ~+ b/ {* m
- (action_tile "list_lay" "(laylist_act $value)")
5 T8 S: x& l9 R6 u3 u' ~7 R - (action_tile "edit_lay" "(layedit_act $value)")
1 X7 [* ~% d/ i1 @ - (action_tile "accept" "(test-ok)")0 Z9 q, p- g& ]$ q. ^. |
- (action_tile "cancel" "(reset-lay)"); m# x: z4 J2 ~3 {6 p1 l
- (if (= (start_dialog) 1) ; User pressed OK; V- g' w4 H5 `% n# i) s5 i
- (progn/ p/ u1 B/ W4 a. I6 C. t$ h+ ~
- (if (= lay-idx nil) (setq layname "Varies"))
& S( o4 \$ m4 w5 H2 m2 }, \ - (set_tile "t_layer" layname)
5 U m- R: D: m0 f - ; If layer or ltype equals bylayer reset their tiles6 j. i- u( ?' [# {" k0 P! N
- (if (= lt-idx 0)
: g' U8 |3 @' [# Q( f& \- ?& A3 Z - (set_tile "t_ltype" (bylayer_lt))
. _- j8 K w; r - ). S! p6 ^# ?1 [' N3 Y% u
- (if (= ecolor 256)
# a6 j* L. Q9 I$ U1 o - (progn
& F+ i9 ?: g8 Q; v" m4 b! K - (set_tile "t_color" (bylayer_col))
, [( J" ~' ^; m4 `& f2 k; U# W - (col_tile "show_image" cn nil)' L: Q7 @, O" L5 p) {/ D9 ~0 m
- )
' ~% P/ N% m G& h. \' Z. f! y - )
, {: A6 L9 E1 Y. n6 e - layname3 F4 B8 q5 l; _: C9 ?) H. I
- )
4 G& k$ O' ?, x7 D. z) i - elayer
/ L, V1 a0 D, A5 k8 \& M - )
( M( h0 |' i! h, _ - )' E2 D8 E4 @' J% o' f7 D
- ;;$ n" A9 [( {* G& _5 D
- ;; Edit box selections end up here
5 j4 |0 S) _4 U# j; O1 t - ;;3 b" N. t5 B7 s: k/ a. T
- (defun layedit_act (layvalue); ?/ z1 {* g' B: h
- ;; Convert layer entry to upper case. If layer name is
0 F; s, B5 ]8 R0 Q+ A - ;; valid, clear error string, call (laylist_act) function,3 w, t4 d9 G6 ~5 z, ~- X3 A: [
- ;; and change focus to list box. Else print error message.
/ g+ |% e* Y2 \6 D3 }( P - (setq layvalue (strcase layvalue))5 J4 R& `% `3 D" R% m, {* j
- (if (setq lay-idx (getindex layvalue laynmlst))# r: \( Q& s5 S6 V. a3 T9 b% ~# }! S$ X
- (progn
: b+ Y. E) \4 E1 I - (set_tile "error" "")4 P. I: q6 J- t4 W: i
- (laylist_act (itoa lay-idx))
% Q* R+ q9 R o# ? - )
& v- j' ^/ s8 x3 e: ?5 C6 J9 R1 \ - (progn; @0 B/ O# ^/ |6 `! H$ e, A
- (set_tile "error" "Invalid layer name.")" X" p: l9 n& F& ?% }
- (setq lay-idx old-idx)
6 \) k$ ]1 n: u A - )
" [+ f( m# l3 f/ J3 T - )- t$ g. M- k. R% E! M- E) g
- )/ _+ b' i" ~% Z6 ^4 t
- ;;+ j" L2 |+ a% W" e7 v D
- ;; List entry selections end up here
, g6 R& B% R( K) r" ^ - ;;% I P8 }" l' |5 J( C/ f6 q
- (defun laylist_act (index / layinfo color dashdata)+ K4 K1 N# p* N5 w# a6 H; X# Q+ d, t
- ;; Update the list box, edit box, and color tile
! J6 c( P, s5 h5 R6 n1 P8 m+ I - (set_tile "error" "")1 y' C$ ?& s/ y, n" Z Y5 e
- (setq lay-idx (atoi index)): ~& W) X3 f- y T: m) a6 Y
- (setq layname (nth lay-idx laynmlst))
2 O8 W8 d- G7 v* u+ W) s: n - (setq layinfo (tblsearch "layer" layname))
4 Z3 I- J9 H; X, `" ?1 z - (if (= (logand (cdr (assoc 70 layinfo)) 4) 4)
3 @/ ]6 g4 L4 a: m( C+ |3 w - (set_tile "error" "Cannot change entity to locked layer.")
, e! y$ z7 o \ ~8 B5 ?6 k - (progn. J6 A1 K7 @1 q X6 Q
- (setq color (cdr (assoc 62 layinfo)))
/ L9 s2 K1 z/ c* z8 w1 C - (setq color (abs color))
. i7 [1 }) A9 z5 _/ o( I4 L! W) s# _ - (setq colname (colorname color))* G1 ^9 v& [+ q1 r2 F
- (set_tile "list_lay" (itoa lay-idx))
- U0 t( A7 ?; U. Q5 u4 d - (set_tile "edit_lay" layname)
' S: R' {9 v1 z: C9 F! }" u; P. {9 }) J - (mode_tile "list_lay" 2)
3 U" O% S R f% G) [ - )6 j1 c+ h" o% M2 f$ @1 k
- )6 v' q; k" t( P4 @& U% |
- )( ]/ g* i M* o) _8 V. ^; Q
- ;;
( J0 L. P2 j2 ] - ;; Reset to original layer when cancel is selected
+ f+ C3 N! S% i1 R! k* f - ;;
9 ]: R) L+ [6 F& n" d - (defun reset-lay ()
$ F7 x* F) W3 k" ]1 l1 \% l7 v - (setq lay-idx old-idx)
; Q; o6 p& v4 D$ O1 J4 _ - (done_dialog 0)' |8 M. m5 e1 u w' V2 A8 M
- )" J7 V# Q# v7 P6 j) o
- ;;$ G! B% X* k7 v8 u `2 v
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a
6 F6 ^' I7 B% l& D6 U* e - ;; string can't be converted to a real, this routine checks if the first
8 U3 a9 a' {' {% s! f- J - ;; character is "0". It also checks to see if the value equals "Varies".3 _, }" i& M8 Z
- ;;7 m1 X& z1 N! e" @
- (defun getthickness (value)
" M5 ?/ N/ P$ c+ _0 Q% v. ^7 ?0 d - (setq value (strcase value))8 J$ A6 }8 g" \9 a6 C
- (if (or (= value "VARIES")9 h, Y# _3 m& t* s& m; W; T# z
- (distof value)
7 r" p9 d. m! W% E5 M( m - )7 w* {/ S8 I) y6 W1 _6 N, X, J
- (progn1 p3 E+ x% P4 I3 y, H
- (set_tile "error" "")
a7 g0 [2 q% D7 X" p5 w$ c! I - (if (= value "VARIES")/ J9 a" d' k. I9 j+ L
- (progn
# D* `. C# Q* Y) r, J( v; P- l% W - (set_tile "eb_thickness" "Varies")1 ~4 k8 [5 x- L# o3 \" X
- (setq ethickness nil)
6 u( o1 _% l$ x1 e4 F) b - ), w6 A1 v) {' Z3 b7 Y# g! z( k7 [
- (progn7 n5 N2 Y* @" [
- (setq ethickness (distof value))
/ I1 I" N/ [* W' j5 R; }" }0 ` - (set_tile "eb_thickness" (rtos ethickness))' f) D3 y$ I$ H4 `. |
- ethickness
7 ]3 a9 m" a: r5 O+ R* P- b! y - )/ e: h v; _5 Q( t, }7 y
- )2 H; }, d" D! t
- ); B8 g, ]9 I2 a& f2 D0 P" i
- (progn3 j/ b0 {6 Q7 N3 H
- (set_tile "error" "Invalid thickness.") `" |: ]) O! m. v* W+ f& P4 t L
- nil
. k0 K/ j5 H& C) P* Z5 a - )
+ {; U5 c) u& b5 i8 y* u$ \ - )
; a5 _. ~" R" b8 o4 I7 }% m - )2 j6 C; I5 V7 P8 C; d$ }
- ;;# t# L! \( ^" Y$ M3 V9 P8 k
- ;; This function make a list called laynmlst which consists of all the layer
1 y+ m# k+ a4 @* X( Z2 S - ;; names in the drawing. It also creates a list called longlist which
& Z4 O! ^7 f; Q4 ~) ~6 D - ;; consists of strings which contain the layer name, color, linetype, etc. * s4 I! G4 R- u) I
- ;; Longlist is later mapped into the layer listbox. Both are ordered the
$ i2 N# @8 o1 |9 _1 K5 ? - ;; same." ?- [& q2 P% j3 I) W( g
- ;;8 D5 N, \; n( S" X( S( f
- (defun makelaylists (/ layname onoff frozth color linetype vpf vpn ss cvpname / F3 j! ~% r# p" A# b; e
- xdlist vpldata sortlist name templist bit-70& T$ X& t. S) Y; d V* q* k
- )6 @8 l, Y) m( M7 x7 _
- (if (= (setq tilemode (getvar "tilemode")) 0)
# R" h7 X' D1 V, Z: W - (progn: D9 ^2 X0 z1 J$ u9 W
- (setq ss (ssget "x" (list (cons 0 "VIEWPORT")6 K; s% @( i: w2 S/ c% G. E
- (cons 69 (getvar "CVPORT"))9 ?, V- |( v% E5 r0 h; z0 I$ N2 L {
- )
" z% v0 U+ M& C8 v - )! D& A8 E4 s4 f+ p9 Y
- ) 9 v# Y4 B: s% j4 f2 |! _% p/ W
- (setq cvpname (ssname ss 0)); I$ I. `% d1 G% B# q
- (setq xdlist (assoc -3 (entget cvpname '("acad"))))7 b4 n1 g x5 L7 C
- (setq vpldata (cdadr xdlist))
8 e! C q, `+ u# @; c4 b6 i. p2 q - )
; }. z- P. T1 M4 } - )) H6 Y& X+ G0 w; a% F
- (setq sortlist nil)
# o3 w) |" @' {: {6 g% s+ G - (setq templist (tblnext "LAYER" T))
' W) o& ?/ @ U. S7 ^7 | - (while templist2 M* S* D7 j& |0 R- u4 g. o
- (setq name (cdr (assoc 2 templist))) t6 ]8 N4 z2 R
- (setq sortlist (cons name sortlist))
# m( z& O5 }7 l' q0 y$ g - (setq templist (tblnext "LAYER"))
! B' _# n9 |/ n9 T5 f* n7 e - )
7 g$ t2 L1 b& [- B - (if (>= (getvar "maxsort") (length sortlist))% J( r, ?, d3 `( T3 P; ]! Z- a! g
- (setq sortlist (acad_strlsort sortlist)): q; K0 ^: r; D$ x; y
- (setq sortlist (reverse sortlist))
$ X$ D8 @: ?5 r9 ^; @ - )+ c/ _/ |/ F" c* ^! U/ R5 y
- (setq laynmlst sortlist)3 ?3 P b! O; Z% M+ ?
- (setq longlist nil). y! M- y: D4 c7 r( N; ?- R
- (setq layname (car sortlist))' b; t. D4 T$ U$ F
- (while layname$ d7 X6 o" Z1 ^7 S! |' X
- (setq laylist (tblsearch "LAYER" layname))
2 u% b& o; G9 } - (setq color (cdr (assoc 62 laylist)))5 i7 ^! D5 Y# [: e" C6 z
- (if (minusp color)5 S# p- J& ?. K3 O5 [: e% A5 Z
- (setq onoff ".") K" G; H! h' \, ~% p, h
- (setq onoff "On")! @5 r1 @8 {, J8 R
- )8 Y/ I6 u' D2 g
- (setq color (abs color))
# _6 o5 }$ I# R7 J) X - (setq colname (colorname color))
8 I4 V; j" u, K8 y( t - (setq bit-70 (cdr (assoc 70 laylist)))7 a3 d- Y8 ?$ G7 [' {. R
- (if (= (logand bit-70 1) 1); e# P. h9 S. h2 E& O# ~
- (setq frozth "F" fchk laylist)
$ G: |" R' u) J' C - (setq frozth ".")
- r) e, M# J/ I8 B - )
( Y* P& m% Z5 _1 h8 T, U - (if (= (logand bit-70 2) 2)" Y7 \; R+ G* P+ t
- (setq vpn "N"): c! D3 o' Z( i9 I9 Y3 |" x, q
- (setq vpn ".")
) }" I4 H; W* W1 }5 T( ] - )- ?5 b- ]7 v& l1 |9 F) k
- (if (= (logand bit-70 4) 4), x: S( g, o# [3 W( A) g7 V
- (setq lock "L")
V# `' v3 L a$ |8 r9 f5 H T7 x - (setq lock ".")
8 Y* @; z* T' P& [ - )) J/ z# M& Y+ r; v6 J/ T$ K0 U
- (setq linetype (cdr (assoc 6 laylist)))2 u; s1 U, H+ @; N( S, b" d
- (setq layname (substr layname 1 31))+ @ F; j2 H/ {
- (if (= tilemode 0)
- t' R, @# z; V1 @/ `0 w- W+ X - (progn0 J7 t) m; v" M8 Q* M; ~$ O
- (if (member (cons 1003 layname) vpldata)
/ }0 |4 ?$ G! t - (setq vpf "C")
- a! s# B+ X D- G a. n - (setq vpf ".")4 v3 T% u j7 q4 k
- )3 u9 a8 @ |; o: _3 Y( }5 m
- )( D+ `; X2 F/ p" Z
- (setq vpf ".")/ h- N- g! Q5 a7 @: l" U2 f& [8 [% L
- )9 f# X% Q' k1 O* }% q5 m5 d' z4 n
- (setq ltabstr (strcat layname "\t"
7 n: W1 g+ V& v7 r - onoff "\t"4 e7 M/ R) v! K1 g& c3 {" B
- frozth "\t"
' N3 v8 h9 U) D) v j- l - lock "\t"
* @' P5 C# o3 {$ \% [0 }# F0 y - vpf "\t"
9 E0 K* E" a" H! B. t1 m9 v - vpn "\t"
' Q- T: W9 m. e1 F/ i! E - colname "\t"% q# q* t3 Q8 K4 [7 [
- linetype5 x+ h" V4 l3 }- E
- ), ?* N) t8 ]6 i/ `
- )2 e* I& Z3 _/ X$ e) u
- (setq longlist (append longlist (list ltabstr)))
/ n( ^# e! v, Y8 I - (setq sortlist (cdr sortlist))8 C% T0 T' R5 `$ l/ p
- (setq layname (car sortlist))
% ]. m) g9 R R( b- P - )
* I' k8 V. z" a# w! r9 r - )0 a. X9 j' Q* _) N ^5 j
- ;;! m, R' }: z% |& o. R' _
- ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of 9 \, P- c& s$ Y; D; U \- |" ]
- ;; linetype names read from the symbol table. Mdashlist is list consisting 0 d% V3 G$ b+ O+ [" T0 }
- ;; of lists which define the linetype pattern - numbers that indicate dots, 0 D% `/ x, B* v( m, L' b& E1 X% k
- ;; dashes, and spaces taken from group code 49. The list corresponds to the & O. q2 U$ E* [' O* \3 f
- ;; order of names in ltnmlst.
$ t9 E9 {& g: j2 v) g' A) d' p8 _ - ;;* V$ {# h2 { T0 [2 L
- (defun makeltlists (/ ltlist ltname)
. w2 l) D2 t- ]9 P - (setq mdashlist nil)1 R* X9 {6 _* b2 B0 v* `. a
- (setq ltlist (tblnext "LTYPE" T))
$ P0 Z7 p0 P9 @1 h# F - (setq ltname (cdr (assoc 2 ltlist))); Y8 |- c& O, C& s- }, K
- (setq ltnmlst (list ltname))2 H! G% n, t6 u( x' u* k/ s1 A
- 2 w6 ^2 b" U9 K2 g! ]
- (if (= ltname "CONTINUOUS")
( E. `( P" {6 a, }3 G# Y6 m - (setq mdashlist (list "CONT"))
/ q3 J2 g2 K, T7 |- [4 w - (setq mdashlist
: a$ K7 ?2 D/ z1 b8 h$ Z5 A - (append mdashlist (list (add-mdash ltlist))) {$ m' K! x: k% U+ b
- )4 T2 l8 f) f4 S% M7 ~! m) E, g
- )
2 t5 Q- |8 L/ R- b6 M# b6 L - (while (setq ltlist (tblnext "LTYPE"))$ O# b: u! `; N) T
- (setq ltname (cdr (assoc 2 ltlist)))
5 p8 Q) X+ N, ~9 a0 F - (setq ltnmlst (append ltnmlst (list ltname)))
( W# K! A" ]: ]" Z - (setq mdashlist " M& H+ w9 m/ |3 f
- (append mdashlist (list (add-mdash ltlist)))
`: Q/ B" K( r2 ` - )
/ h" o& [6 Y5 ^) Z z. Y - )% T( l* [. Q7 F+ `
- (setq ltnmlst (cons "BYBLOCK" ltnmlst)), ?& Y) T8 h/ _( ]& J: Y S
- (setq mdashlist (cons nil mdashlist))
* I9 B1 W; r3 [6 k# ` - (setq ltnmlst (cons "BYLAYER" ltnmlst))6 S$ c% l% F6 v0 v
- (setq mdashlist (cons nil mdashlist))
8 f; |" R! X) q) X2 d. m - )
9 e' g( h8 H5 A - ;;$ ~. ?) K+ o8 k6 ?) j% k
- ;; Get all the group code 49 values for a linetype and put them in a list # C/ G2 |! ^6 w. f# K2 a
- ;; (pen-up, pen-down info)9 ^4 \ A( t' }
- ;;
5 A& f6 X# x8 K1 o' p - (defun add-mdash (ltlist1 / dashlist assoclist dashsize)/ U+ v- @9 d5 w4 T1 T6 g( X- Y- x
- (setq dashlist nil)
. s4 V) y; R3 }% z, \) h, T& C6 ~ J" S - (while (setq assoclist (car ltlist1))
+ t/ q9 P* L- r3 A1 O - (if (= (car assoclist) 49)
6 m2 c7 ^6 m1 p - (progn
" |& d5 d; {) O2 }+ F7 n' p - (setq dashsize (cdr assoclist))
8 i: b- d y J+ |( k$ N - (setq dashlist (cons dashsize dashlist))
0 F" V3 ]- n& m2 \ - )
; |( @+ d4 {4 q; j+ F) P - )! J% E, {3 k+ K' s& |% [# P; V
- (setq ltlist1 (cdr ltlist1))
7 Z( g5 X: T3 s) j# |& w7 w1 q - )
& c" v& R' E3 u8 [) F - (setq dashlist (reverse dashlist))6 J' ?; z* c" \. _: K
- )
9 d- n/ G2 V' F- a - ;;
! m, v8 ~* k, c. |9 d- e4 S - ;; Color a tile, draw linetype, and draw a border around it! ?9 p; `* Y) n1 h: X$ k
- ;;
1 @" \6 f* b( _' M: v; e/ | - (defun col_tile (tile color patlist / x y)& _6 ~: _, p" k( a( {$ Q% |; M
- (setq x (dimx_tile tile))
. X& ]$ u4 J7 i+ J f3 g! g+ r - (setq y (dimy_tile tile))
& Q$ h9 v& A3 M1 W+ E - (start_image tile)' [* F X% y% w' e+ C
- (fill_image 0 0 x y color)! J y8 }2 u) U
- (if (= color 7)
2 _ o6 Z6 L3 b" d& \! K - (progn
1 ~& H' M$ v# m - (if patlist (drawpattern x (/ y 2) patlist 0))
. R5 p' R) y& }/ H; \" e* V7 I - (tile_rect 0 0 x y 0), f- c/ |% N4 B/ A" S5 V% _1 ~
- )* ~: {% Q5 i8 r$ R' B( q5 ]! }
- (progn
5 R2 m0 ^- d; W' j9 M; d1 P$ d9 B. z - (if patlist (drawpattern x (/ y 2) patlist 7)), \2 H: j% ^, W+ W3 f) q
- (tile_rect 0 0 x y 7)5 i7 q m0 t; Z ~
- )2 r( |- N- W* P! Z
- )" ?) h. C$ f$ G
- (end_image)* L3 D9 A! c! [* o6 ?6 S; B
- )
5 R, Z3 F/ s( h% Y - ;;
7 }: b; D6 m4 u7 e - ;; Draw a border around a tile
3 L" f( H* a- R) P: { - ;;
: c7 R6 E4 E6 A6 A/ d% _& }$ |: m - (defun tile_rect (x1 y1 x2 y2 color)
: Z% _* n; u" k- T/ W* o - (setq x2 (- x2 1))$ w8 w8 M! g4 t
- (setq y2 (- y2 1))! U. {# F- F. w$ u- h
- (vector_image x1 y1 x2 y1 color)" s4 c; |8 k/ j$ W7 M" u
- (vector_image x2 y1 x2 y2 color)4 P/ ^$ B; ] d$ v4 X
- (vector_image x2 y2 x1 y2 color)
6 P/ I) F; ^! |' J - (vector_image x1 y2 x1 y1 color)% w2 r7 M4 \" i* A" i
- )
& L8 _ Y! b: ^$ x! W, G$ X- v9 k - ;;
x$ K8 u; J5 ]! T" J. ] l2 R - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
. S& v+ P$ D6 c) [/ S - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a + U! ]; Z1 P! \) l) b: Q
- ;; list of numbers that define the linetype, and color is the color of the % t9 |& k3 Q/ f3 |6 |5 r, X- [0 h3 R
- ;; tile.2 K- v" |7 z2 c2 q8 \& r
- ;;
5 i1 X* T C7 l7 Z& s3 Z7 p - (defun drawpattern (boxlength y2 pattern color / x1 x20 F, A; O3 Y* `4 |
- patlist dash)0 k7 P1 w0 ^- }& a/ I/ O
- (setq x1 0 x2 0)' \! }5 ?4 E2 a2 v# D
- (setq patlist pattern)- K( ]2 c Q" q/ o0 D& g
- (if (= patlist "CONT")
) k# O- a8 c1 u& a( N3 Y4 H - (progn ' b: W4 k; W1 t8 t
- (setq dash boxlength)7 p/ Z. b, S' O$ v5 s$ l
- (vi)
) Q; _0 B ?4 s9 B' } - (setq x1 boxlength)
% g& ]7 C% A z/ G- a x9 F - )7 C9 i1 f* @6 Q4 w7 |" ]$ S
- )
; K& c& A/ `! K" u7 r7 E$ g - (while (< x1 boxlength)
# o4 U1 Q, U2 c; V! d# u( Y - (if (setq dash (car patlist))) ^, j( q' }* L1 u* V% s* p3 Y8 o
- (progn6 p; }7 C& k3 }9 y' E
- (setq dash (fix (* 30 dash)))
+ B/ m' C H; f7 S) l! H$ y - (cond
: K& ^) |, |0 G$ \# n! b - ((= dash 0)
- [; m% b: S3 Z, Y3 g6 S& s% C - (setq dash 1) * m1 B2 j l; X' |
- (vi) d! N; ^! ^# I# N0 |6 \ n
- )* v& ` q! j, z& Q- G9 Z! H
- ((> dash 0) ; W% h8 S9 v: P5 x" m6 P( v; {
- (vi)
- a1 w/ X; ^) \) C* {: |; w$ |# s - )" ] e" K7 Y& P8 u+ X0 _
- (T
2 c9 m) e! P7 ^- p& ^* a! j$ R - (if (< (abs dash) 2) (setq dash 2))4 C. r# o. ?9 x3 _
- (setq x2 (+ x2 (abs dash)))
2 L7 y3 f3 }* C/ f6 @# R - )' U/ y: V3 B m6 g0 ~
- )# X+ E0 d: }) ]) g
- (setq patlist (cdr patlist))
- z0 ?( z# D7 i# T/ ] - (setq x1 x2)
( C/ O' S: d( F- x Q - )& u/ j% \$ F+ R- _1 e k. I2 q
- (setq patlist pattern)3 o! D" h5 X( H# l
- )
/ P. N' ]5 m. j0 b k9 D5 I( W - )
, V. `# Q" A B3 ]# E" B: t+ Z: B5 O" { - )
5 n1 Y2 L; G: @% g" S% V - ;;
" ^9 ?0 _( C. E - ;; Draw a dash or dot in image tile
3 g- a3 G4 O, u+ N& N - ;;
- x. n/ }6 A: O( {7 i - (defun vi ()2 \- {! h% f! E" |& i
- (setq x2 (+ x2 dash))
$ H* Q& }* ^2 N8 b' o; k/ S' {% _5 I$ K - (vector_image x1 y2 x2 y2 color)4 A# j, h8 G' L( q" Z7 G0 b
- ) t6 Q2 D6 q! [6 _2 w" G3 i
- ;;, D/ f' p' [# E8 v
- ;; This function takes a selection and returns a list of the color, linetype, * M! q# P% p% f6 ], B2 J
- ;; layer, and thickness properties that are common to every entities in the6 L$ m/ L8 @( F0 l \0 B) W
- ;; selection set - (color linetype layer thickness). If all entities do not ; }3 X+ F. Z5 T6 x8 t
- ;; share the same property value it returns "Varies" in place of the
9 w+ A P# q H2 O9 ~# ] - ;; property value. i.e. ("BYLAYER" "DASHED" "Varies" 0)
' ?) P5 ]! Z! c: H - ;;
4 j3 p* K4 t$ v; N. }9 Y - (defun getprops (selset / sslen elist color ltype layer
/ }- f- P# m( { q' q - thickness go chk-col chk-lt chk-lay chk-th ctr)
' d+ R l- e+ G, n8 E1 ~: d; { - (setq sslen (sslength selset))9 F/ N) G" b% K# U5 _0 w
- (setq elist (entget (ssname selset 0)))
3 E2 o [: }1 j' l J" ~# O - (setq color (cdr (assoc 62 elist))): y+ H/ G; M" d7 \4 I T
- (if (not color) (setq color 256))# v s7 P, L6 X
- (setq ltype (cdr (assoc 6 elist)))" l2 ^; k: j5 g A, k
- (if (not ltype) (setq ltype "BYLAYER"))
! B4 k" Q; g, ~ - (setq layer (cdr (assoc 8 elist)))
) y! N6 b0 O0 k e- Z) L - (setq thickness (cdr (assoc 39 elist)))3 b8 P: O5 y6 ~
- (if (not thickness) (setq thickness 0))4 B" _& i9 { r
- (setq go T chk-col T chk-lt T chk-lay T chk-th T ctr 1)
% i8 ]" t8 }1 A v) e6 z% Q - ; I$ g2 i+ h$ O9 R+ a4 N
- ;; Page through the selection set. When a property
$ r. z5 d; G; N/ o+ z3 C" X - ;; does not match, stop checking for that property.* ^# e, H8 Q. W- z* S
- ;; If all properties vary, stop paging.
/ B* c0 R/ D6 x- B9 N2 L
% o* }7 s. c+ U+ m# n% w% _% H4 q- (while (and (> sslen ctr) go)
- Y* Y; n! H2 F; |- U; I6 P - (setq elist (entget (setq en (ssname selset ctr))))$ m" _. `8 }: i( Z" n8 M4 B
- (if chk-col (match-col))2 x$ V0 D" k$ m A
- (if chk-lt (match-lt))
! |$ v1 X+ s" Q' b0 W/ _ - (if chk-lay (match-lay))
/ L2 c3 { V4 C8 _- D - (if chk-th (match-th))3 j Y! d4 q' M/ j( }3 G4 s( g
- (setq ctr (1+ ctr))( \" C( X; P; ?+ r
- (if (and (not chk-col) (not chk-lt) (not chk-lay) (not chk-th))$ t6 I# U3 X1 G2 v
- (setq go nil)
3 z' z* L- z% S3 ?$ }0 w - ). B; K) ?% Z1 Y" y7 f
- )* x% _& G- d( M
- (list color ltype layer thickness): x% w7 A$ l1 ?- b5 ^% |& u
- )7 q+ v! o# w+ ^4 ~" [7 S! z
2 \/ X3 l; L" U3 f v- (defun match-col (/ ncolor)5 e! J, n, e) [" h1 S3 h
- (setq ncolor (cdr (assoc 62 elist))): t. r) q: Y9 l# J8 u8 a4 p
- (if (not ncolor) (setq ncolor 256))
- C( U4 C M8 F - (if (/= color ncolor)$ H1 s0 y1 l6 k, G5 w T0 x! k- x4 n
- (progn
, U/ ?" e% |" D2 n3 v4 b: n - (setq chk-col nil)- s. o% ^$ }) m2 e/ v' h
- (setq color nil)
+ ]4 c: c* Q; @) w2 B1 _& I( ? - )/ T& o' U' P8 r: N, N7 B# H7 U& k
- )
: c5 Q7 y: B, ?, E5 U7 n - )* p% q1 m l2 b8 `; U. H3 L4 I; _
7 R n/ F! ]9 F: Z' k; n- (defun match-lt (/ nltype)4 d1 X5 R) w R
- (setq nltype (cdr (assoc 6 elist)))
. I- Y( K2 N8 X% C* ^' m+ @ O - (if (not nltype) (setq nltype "BYLAYER"))
& p5 h# R* W% W: y$ f - (if (/= ltype nltype)3 Q9 f1 W1 Q$ I4 n/ @
- (progn l% M2 n2 y5 X
- (setq chk-lt nil)/ |5 ~- O3 @( s4 r* [: G- j0 i
- (setq ltype "Varies")
6 n' |+ i4 Y9 Q( x& x - )
. }& k5 V) t7 D0 j# o, u$ i( ^ - )( k. O6 f9 B! Q3 v1 A# {1 q6 J- Z* C
- )% ?9 A m/ G' R+ c; F' P
5 y( s# M9 n$ T. v8 l i6 x- (defun match-lay (/ nlayer)# G: ?2 C% t) ?! G$ l& i4 A
- (setq nlayer (cdr (assoc 8 elist)))( D! _/ E" P9 p( j8 S
- (if (/= layer nlayer)
% @7 Z# i8 a& j+ F6 U$ n2 O - (progn$ P; t" O5 f8 `8 B4 A0 c y' U8 m
- (setq chk-lay nil)8 B- R* r8 ~4 e
- (setq layer "Varies")/ \; b0 k$ }! }' C" ]1 _
- )
5 e! z& L; o; z' q" w: t. `' |# c' r# y - )
; g' t) d. U+ @2 _/ L - )0 n' e/ ^3 H% m5 z- Y, ~
- % d0 v: d0 X M7 \
- (defun match-th (/ nthickness)
1 T5 ^" ?6 G# {2 R - (setq nthickness (cdr (assoc 39 elist)))' w: a9 O% G# {* ^ Q p* s% C
- (if (not nthickness) (setq nthickness 0))
7 N1 r7 d! X6 B& l( G" \ - (if (/= thickness nthickness)
! u5 g& P Z/ M- ]* M! r% e - (progn
/ g/ j q: C; I- Z& [+ X- f - (setq chk-th nil)
9 e* ^; d, \* A8 i8 Y# ^( q: t - (setq thickness "Varies")
1 z( {$ j, O, [/ X4 \7 k - )
" B- Z$ {. R. ]2 _: R - )
7 q! j) z6 s; ^/ H - )
0 ~9 @1 D- ]6 g) n8 h0 u$ x
7 P. B) w1 G! H; v; v; A- y" F- ;;7 V! J* k7 l5 n0 B1 l! Q4 k3 H
- ;; If an item is a member of the list, then return its index number, else
0 Y$ C2 l% Q5 K - ;; return nil.) b/ s% Y W; j0 @
- ;;+ |1 D& M) j3 K; R
- (defun getindex (item itemlist / m n)
& V Y# P' ?( @0 S( n4 v* r+ w - (setq n (length itemlist))
9 L0 W! a( W$ d: J6 | - (if (> (setq m (length (member item itemlist))) 0)
( b9 d' Y% G- X$ v0 U+ B0 Y# D - (- n m)
) M' m! {* |7 `2 P5 E V - nil
5 i5 ~$ O( G% M& U( H+ [ - )
6 f9 `: h1 W6 g7 }( e; ] - )
- O, O3 O: m k - ;;- @) F6 K3 [1 }7 b
- ;; This function is called if the linetype is set "BYLAYER". It finds the
# [/ I/ q- D9 i# A+ g: o( m) u, A& Y4 t - ;; ltype of the layer so it can be displayed beside the linetype button.
+ s8 a5 h$ g# P8 w* P- q5 p - ;;
9 L. G& x7 x' B$ o; V, K/ B3 s - (defun bylayer_lt (/ layname layinfo ltype)
( V$ f) i. M, f; i3 \; f5 B/ [* b, m - (if lay-idx
9 X& g" @% c* O. z( i e! B - (progn9 K1 ~6 m- i, _
- (setq layname (nth lay-idx laynmlst))8 H' J# V8 Z& d; W# a8 g. }) i8 I
- (setq layinfo (tblsearch "layer" layname))5 v2 ^" X/ L! m9 k5 \5 O
- (setq ltype (cdr (assoc 6 layinfo)))
; W0 \& _9 R+ Q2 o; w' ? - (strcat "BYLAYER (" ltype ")")) u& M. ]' ^2 a" ]1 @1 @4 A
- )) n+ v2 u) t$ q' B3 q/ L, |
- "BYLAYER"2 X4 j& E, K( @" A
- ). G. o# Y V" g! ~/ J
- )" d" @1 L9 d0 f% q6 g. C& l
- ;;% M; \% @: w4 Y
- ;; This function is called if the color is set "BYLAYER". It finds the
6 L! C3 c, M% J/ F1 n - ;; color of the layer so it can be displayed beside the color button.
! s i d: w5 V9 g; Q - ;;* H" U4 R8 c& M3 } W5 T& l
- (defun bylayer_col (/ layname layinfo color)
# R/ @7 t+ f& z& ~! ?3 N. P - (if lay-idx- ^( K1 ]' v9 J7 X
- (progn
# g: r' f- y6 O2 h) c/ \/ ~7 {6 i; g - (setq layname (nth lay-idx laynmlst))
) a5 c: _7 x" A1 S: E, X2 ~& Y: Q9 c - (setq layinfo (tblsearch "layer" layname))
" l' C, L7 P3 q6 U0 ], Q - (setq color (abs (cdr (assoc 62 layinfo))))
- `! P" } u; X+ a2 S* {- b' j - (setq cn color)4 Z9 _$ V6 s" x
- (strcat "BYLAYER (" (colorname color) ")")! m1 n! q, [4 [1 t; F: D. V$ U1 \
- )
" E( i: e( M5 @" x - (progn
5 R5 {( V2 P' V) B- w1 s3 U - (setq cn 0)
+ ^+ J' F Z" l" D - "BYLAYER"
" Q! _! B3 @: G% f2 t; }4 k - )
# X s& n L7 W4 t% D# h - ). b M# c3 g; `. g, d
- )
! a# S3 \) K$ \5 j/ l - ;;2 J7 F% Q6 M" n- p' h
- ;; If there is no error message, then close the dialogue. ~* `4 _5 b- l* D( R/ I- B
- ;;2 L; G) m, M# A0 i0 O
- ;; If there is an error message, then set focus to the tile; f; N! e4 Q1 ]0 K
- ;; that's associated with the error message.7 j( {7 X; O9 ?8 B C$ h
- ;;
: j: D! k. ?8 z4 Y9 v - (defun test-ok ( / errtile)
6 B; `/ `7 X) k9 h - (setq errtile (get_tile "error"))
7 K' n: w6 i3 S* Z - (cond
0 R7 r) o# ?/ Y: c" r - ( (= errtile "")
# z8 M# t+ ^- R7 B& G" e - (done_dialog 1))/ n5 Z& C5 y5 G$ U, p' n
- ( (= errtile "Invalid thickness.")2 n5 k4 C& L+ k7 r
- (mode_tile "eb_thickness" 2))! R1 s; }2 j: _* a9 ~
- )6 u& U/ ^7 T+ C' f
- )
3 `+ ^/ {5 U6 x- U0 g* [9 | - ;;
2 R8 \; x8 Z! o$ C - ;; A color function used by getlayer.; Q2 X$ k# M: d7 u: p$ S r. L
- ;;& f' P7 K0 ]- _# p4 u
- (defun colorname (colnum)' ] c) `% _* f! P
- (setq cn (abs colnum))
3 V H8 o- ]+ k" w - (cond ((= cn 1) "red")
0 m7 h ]! j( N8 w. U3 R - ((= cn 2) "yellow")" I# j3 |3 r7 y: g
- ((= cn 3) "green")5 O0 W* a7 h! H' ^
- ((= cn 4) "cyan")6 H; N- ], y& e! I
- ((= cn 5) "blue")- }9 r( u" R2 \, u7 o, A" `
- ((= cn 6) "magenta")
4 p% b0 f9 }. i7 t. w+ r - ((= cn 7) "white")
& W1 V6 d! U5 }& k8 V+ U - (T (itoa cn))
' Z9 P# G* u7 t) s7 ^) v" ] - )5 I; u$ c% u/ R* |3 H; j
- )& e' ^+ L8 x3 O1 O, R$ x
* Y3 i2 c: k4 O% Y8 @- ;;; Construct layer and ltype lists and initialize all% P9 P9 w N( ]. O& l( H1 ?" I. e
- ;;; program variables:/ ~: O+ ~: o6 O( J# O, r& |
- , b1 R3 |- P/ d/ H- o
- (makelaylists) ; layer list - laynmlst
3 u# O: |9 A" t" g$ q* ? - (makeltlists) ; linetype lists - ltnmlst, mdashlist
. U' q( |: ]% [ m* |) z, ` - ;; Find the property values of the selection set.
/ v4 M2 @ c6 [7 N - ;; (getprops ss) returns a list of properties from# H5 d5 `+ s) f6 H; `* y# u
- ;; a selection set - (color ltype layer thickness).
9 `9 r( O! b& B0 f" o6 a/ E* y5 @ - (setq proplist (getprops ss))
8 i' U8 G. B+ @9 H; X; k: Q9 i* f - (setq ecolor (car proplist))/ e# i' N6 T7 O. [# w; H8 x
- (setq eltype (cadr proplist))) r, i0 W/ v- E
- (setq elayer (caddr proplist))2 L' K8 k* @/ H; v2 L
- (setq ethickness (cadddr proplist))
$ L j* ^% _+ r6 @$ _ - ;; Find index of linetype, and layer lists
8 z- Y0 a; L% u$ ^5 `" D R - (cond
1 M4 D9 q" O* Y; v5 F, i - ((= eltype "Varies") (setq lt-idx nil))
# A' b: ^1 p" |' N7 {* O7 j8 K - ; ((= eltype "BYLAYER") (setq lt-idx (getindex "BYLAYER" ltnmlst))) m. @& q; G1 z2 _$ h' u
- ; ((= eltype "BYBLOCK") (setq lt-idx (getindex "BYBLOCK" ltnmlst)))) M# D r: F$ u' T6 o1 ~# x+ } y
- (T (setq lt-idx (getindex eltype ltnmlst)))
/ j. U/ C* y- m+ o- y4 c4 w" E) x - )
7 t; p) R+ I. A% U - (if (= elayer "Varies")
, E& ]3 @* S- C: N2 \ - (setq lay-idx nil)5 S. s1 h ^, ]4 _+ i! m
- (setq lay-idx (getindex elayer laynmlst))
Q& n( l2 d0 y' `9 ? - )
$ f2 o7 T4 y0 B! [, D - (if (= ethickness "Varies")
! ^, M( I6 b( y- } - (setq ethickness nil), Z" t) N- S( H9 r. {
- )
! Q" H7 G4 j$ t
8 u3 K7 R; \# n8 _- ) ; end (ddchprop_init)
; l1 ?' j1 @6 G3 H' H9 V! _" r) y - 3 u, r$ x& d7 b- W" K4 q8 y. u
- ;;; (ddchprop_select)
" ]4 D$ {2 o* [. F- j - ;;;* R q3 e: \4 \* M0 ?9 U7 x7 f
- ;;; Aquires selection set for DDCHPROP, in one of three ways:, {7 ?( C0 |$ l8 c& G; Q! {* N
- ;;;
0 \2 {7 \9 u3 y/ [/ ~# @ - ;;; 1 - Autoselected.
" [6 \0 l2 e( f( N* _- u" \ - ;;; 2 - Prompted for.
+ W* u# O- I+ x% ^; [4 O6 e - ;;; 3 - Passed as an argument in a call to (ddchprop <ss> )% G1 R- `7 r" s8 b5 y- a" U3 x; Z; t
- ;;;8 L8 t2 F4 u$ c5 E L
- ;;; The (ddchprop_select) function also sets the value of the2 S6 n- Q. m2 L% [ D8 u* H2 e- s
- ;;; global symbol AI_SELTYPE to one of the above three values to
' _+ J' [1 C8 H( y7 _ - ;;; indicate the method thru which the entity was aquired.
: P9 f ~- y( T# A; @. M C
9 a! J. f) \1 `7 S0 Z- 5 I' P4 T2 P$ ?( d
- (defun ddchprop_select ()$ G3 X6 E$ V3 q' T2 e; u4 u
- (cond
3 A- x/ S# L F; F( _$ g - ( (and ss (eq (type ss) 'pickset)) ; selection set passed to
" H6 `7 X2 y& H! F - (cond ; (ddchprop) as argument
! k1 V+ T: A' j0 b; K - ( (not (zerop (sslength ss))) ; If not empty, then
; e) b( k8 D+ M$ O3 [# h - (setq ai_seltype 3) ; then return pickset.
, l8 n+ X4 @* y - (ai_return ss))))
( Y( W" l; m5 B - & W5 y( E8 z" q7 ~2 [
- ( (ai_aselect)) ; Use current selection: Q" |$ f& ?3 b& E' G
- ; set or prompt for objects }* u$ b9 W! ^. @5 ` r4 W
5 @) ?# |9 u/ z+ V- (t (princ "\nNothing selected.")
/ W3 U1 F4 W3 R# q: B4 z/ v- [% E, d - (ai_return nil)) v7 l; g8 m3 ~. \
- )
4 h; w5 N7 P! |! `' C7 K# X/ I - )0 W) D+ F5 y1 Z7 j! @3 P5 ~* U
- 8 P( w6 D; l0 S7 t
- ;;; Define command function.
8 ?; n n/ v, B6 x - 1 _ ]) x! Q: r1 ]& [* A
- (defun C:CH ()
: u. h7 p! ^* L; f& p - (ddchprop nil)
/ K9 f/ i1 y3 s - (princ)
9 ?3 Q" F0 O i5 ^* p; w% m - )
1 z* @& @' v0 y* q$ j) N
' k: U! m3 ^! I" ~
* A8 K( K1 Y) T; ^, N- ;;; Main program function - callable as a subroutine.
- u/ V; ?# n9 U8 M3 l! v! z& |/ { - ;;;; Q; r9 b/ @' p; h: p
- ;;; (ddchprop <pickset> )2 K. V' @. Y. ~9 r
- ;;;
3 `3 H+ l- [8 Z - ;;; <pickset> is the selection set of objects to be changed.
8 x) V1 c' k3 l$ z) m1 N+ ? - ;;;
6 K$ E+ H" a# Q4 }: C - ;;; If <pickset> is nil, then the current selection set is* s1 z5 J1 w9 p1 B* F
- ;;; aquired, if one exists. Otherwise, the user is prompted2 L# n2 F2 @. E& _( i" {
- ;;; to select the objects to be changed.' V9 L8 h! R$ K Z& M
- ;;;
8 U" v( H+ [" `; h8 F - ;;; Before (ddchprop) can be called as a subroutine, it must
0 I$ c4 R1 W' [3 W# @1 ~ - ;;; be loaded first. It is up to the calling application to
0 C. [" W: N( u9 D4 k: ^) F- ~( [* H - ;;; first determine this, and load it if necessary.
& I" E2 x, l% P& x) G7 D7 F9 @, h
& G3 f! M9 k7 E% o9 k3 h3 D- (defun ddchprop (ss /
; T7 ~2 Y: _5 i - $ r2 ~" O8 W) k2 ^3 Y
- add-mdash ecolor ltedit_act s
& ~ W3 u$ T) A3 S" N a1 Y, o& a - assoclist elayer ltidx selset
8 b3 x. @, Y0 \; U - bit-70 elist ltlist set_col_tile
: T3 O# d& [3 `( x4 \5 Y- @( \& _ - boxlength eltype ltlist1
* I5 X- `% j2 G3 A0 }+ O' @- e - bylayer-lt en ltlist_act sortlist1 Q( |" r4 V: Y& D9 ~$ _' s
- bylayer_col ethickness ltname
9 g X/ E5 [8 M) y/ Q5 E! L ` - bylayer_lt fchk ltnmlst sslen
7 l. T$ y, S0 N; N! u# m h4 Z! W - call_chp frozth ltvalue templist0 Z" ^- j, ^8 S6 z% d+ U% M
- chk-col getcolor ltype temp_color
% K3 p9 t/ a9 k; p, m; Z, { - chk-lay getindex m test-ok
5 O- c' G/ V& [$ m - chk-lt getlayer makelaylists testidx
/ V; ?& \( V2 q2 a V/ @ @$ M - chk-th getltype makeltlists testlay I t/ y% E3 W$ T% [3 x
- cmd getprops match-col th-value
# V# ^: X. z0 M0 f! L - cmdecho getthickness match-in thickness7 Q J% a, r3 R! Q
- cn globals match-lay tile
" J: _5 S, |& H; } Y - cnum go match-lt tilemode; L, ^5 d9 R+ o, Z! n
- col-idx index match-th tile_rect) N8 k$ q, {* n4 s& [3 P. ]1 E
- colname item match_col vi
) M+ _% Y0 @* n V, Y5 @2 `8 ` - colnum item1 mdashlist vpf8 c0 h8 J6 Y& i7 Q' J) u% R
- color item2 n vpldata
7 A+ `* `4 k1 _+ |2 w% ] - colorname itemlist name vpn" H8 Q- B% C$ N. ]) [% A4 [, q
- col_def lay-idx ncolor x
0 c3 }, w' z" W8 w; ` - col_tile layedit_act nlayer x1+ E: O7 |3 b7 \' h' l2 A& {- u9 F
- ctr layer nltype x2
' F, @) N. n9 R7 e - cvpname layinfo nthickness xdlist! g3 X0 F9 j0 N- O
- dash laylist off y; M2 W7 c! q/ b9 ?
- dashdata laylist_act old-idx y1
$ _) I1 `# l* Y* P3 n8 |& M( d - dashlist layname olderr y2# @( ]1 M' \4 S7 Q0 g [
- dashsize laynmlst on undo_init0 }/ ]( C# t7 d" ^
- dcl_id layvalue onoff0 v- a5 P; g6 H4 |# b. t! A0 H
- linetype patlist2 a4 {/ H. d- W
- ddchprop-err list1 pattern
' P0 H/ J' z1 G% q" P1 F6 I/ r - longlist proplist
9 N, V( k6 H6 D8 w - lt-idx reset-lay% u+ g8 ^# o5 z* A
- drawpattern ltabstr reset-lt
3 ~0 W1 r# H* [ - )1 k4 ?9 l( F1 E5 } F4 n
- 0 g1 r0 h# H* A6 l/ L5 r
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
9 h' |" J1 W! f, _" |( j/ n& K - old_error *error* ; save current error function8 o% w+ K( B' p
- *error* ai_error ; new error function
" a" n) U+ }( z/ D. L3 k) e( G/ v; N - )! d7 X+ [1 S2 R7 V. \) ?$ ?; \' I
- d$ P5 `) w0 ?1 [+ _' J
- (setvar "cmdecho" 0): h! R2 d/ K; E$ [( r' x
. T- Q$ B" a5 B/ d# P, {5 A2 ^8 h4 B" y- (cond
2 Q2 I4 `5 T& q. ^ - ( (not (ai_notrans))) ; Not transparent?
& A0 S7 q( E' M( P5 f0 Q. o - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?0 P7 D. {& y) t
- ( (not (setq dcl_id (ai_dcl "ddchprop")))) ; is .DCL file loaded?0 S& z5 C" ~7 V. A8 q! B
- ( (not (setq ss (ddchprop_select)))) ; objects to modify?4 M1 z+ _* `. X: Z/ G
- ; C, v' G' x0 t% j, [- F
- (t (ai_undo_push)- ~2 m7 T0 W1 h3 N; N6 [2 \2 f
- (ddchprop_init) ; Everything's cool,
- V% Q. t, g" O0 h - (call_chp) ; so proceed!
6 p3 K( A/ F; @* c$ l - (ai_undo_pop)
5 M3 {' P6 V! |/ Q - )' d- n/ j2 N3 W6 u$ C% P9 A" \
- )3 v6 @# @ \& u5 }5 X2 M
- 6 N% D. U8 F8 h0 q4 B4 V: X( H' Q6 q
- (setq *error* old_error) / `! K q3 b: H& s) J+ V' L4 N/ U3 s
- (setvar "cmdecho" old_cmd)" r% C! u# R7 _) a8 h. f) p
- (princ)) x3 C* D% V5 T- R
- )' P- s+ {" y' c5 \# {! n
' F( ]6 M2 }6 Q# m; @9 R- ;;;----------------------------------------------------------------------------
" K3 Z" M$ Q% W h - % f1 b8 ^' Z r+ C! X! M
- (princ " DDCHPROP loaded.")/ e; y1 `+ z$ y
- (princ)
6 ]& g% I3 b* R. Q
( l8 I, m# x9 x: f5 k- ;;;----------------------------------------------------------------------------% k! |1 Y( g/ \
- : |5 u* k/ `% P9 n/ E8 @% h+ a
- ;--------------------------------ddmodify.lsp----------------------------------
0 L! z- e. K& \ - ; Next available MSG number is 111
( U0 R5 }' J& E. s. r$ D - ; MODULE_ID DDMODIFY_LSP_" [- [8 D- G5 e- z" a( d
- ;;;----------------------------------------------------------------------------
( S8 c% }) F* @* k - ;;; DDMODIFY.LSP
: m( N& x% j$ z- Y: e - ;;;
- l5 k4 v! F: P x. V; B& F9 |3 { - ;;; Copyright 1997 by Autodesk, Inc.4 m5 H$ a, q2 c% h; H) a
- ;;;0 A9 S- t$ M: ^& N4 S3 a! B8 a
- ;;; Permission to use, copy, modify, and distribute this software& e$ X4 B: [* e
- ;;; for any purpose and without fee is hereby granted, provided
0 ?* \* C5 U- n - ;;; that the above copyright notice appears in all copies and- L- p# u/ O, B
- ;;; that both that copyright notice and the limited warranty and
( J4 l1 G% F3 ?3 ?0 {1 ?! S - ;;; restricted rights notice below appear in all supporting; h& b7 r1 a: Y. Q$ K. v- W1 z
- ;;; documentation.
( t7 M- l, R7 b$ H8 L - ;;;8 n" Q5 j8 d' X) n8 P A! z' Z
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.) e( |* ?' H7 w: B/ y g
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF0 C+ J3 @! z3 `
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.0 n- B5 i$ M! P0 u! C Q8 j
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
+ i+ S* T, W! F+ n$ c9 u - ;;; UNINTERRUPTED OR ERROR FREE.
+ ?0 d0 ]# z+ d) r - ;;;3 [. C9 n F* I& }+ k; D
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
. j. O X" j4 o - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
/ `6 q/ J# R J( j - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)/ |8 u) t8 J% l2 ]/ w3 @
- ;;; (Rights in Technical Data and Computer Software), as applicable.
* z3 |6 u+ `; d( g- R - ;;;
6 E1 V4 Q5 r1 t - ;;;. g2 o {& N$ b4 H6 D( Z# _
- ;;;" k* \8 w% w) B1 n/ y# n
- ;;;----------------------------------------------------------------------------! S& m' \& n3 B) M% A; W! {
- ;;; DESCRIPTION
5 u; i. D7 Q0 D' ^ o) }" V - ;;;
3 H$ R; T; j" [. Y - ;;; This function allows the user to get a listing comparable to the LIST
+ f5 [ |. E! P( M - ;;; command for most objects. In addition, most object fields in the
1 N7 Q' y) z6 q; N - ;;; dialogue box are editable. Points can be specified dynamically by5 @( M/ i# V' r% `! ]% f6 Q
- ;;; temporarily dismissing the dialogue box. Each object has a unique# r6 k3 ^1 \2 t( M4 |3 L. k
- ;;; dialogue.6 B# C; b* M6 d2 f& B2 M: M
- ;;;" ` V- f# S, ~( E6 S1 d6 `
- ;;; Naming conventions
& Q9 X7 ~* T4 @& E3 n - ;;; Long function and widget names may use an underscore "_"
( D1 }& d8 }" w9 T7 f; k4 J - ;;; in their names to make them easier to read, long variable- |) s8 j# _* w0 ~. g- F
- ;;; names use a dash "-".
. Q1 |" Q U: [& E+ _* K# a) T - ;;;----------------------------------------------------------------------------
& Q8 i! V% {" b# Y; Z- J% A - ;;;----------------------------------------------------------------------------' n- z. ]& H; h1 Z
- ;;; Prefixes in command and keyword strings:
" M5 W0 y7 k9 m! ~- V - ;;; "." specifies the built-in AutoCAD command in case it has been
# C n/ O3 y/ u. e0 D5 K - ;;; redefined.5 R" q* _* A/ G
- ;;; "_" denotes an AutoCAD command or keyword in the native language6 a) U, Z4 V( ]2 _; Q [! `
- ;;; version, English.
4 C3 O j5 k5 o7 |* z - ;;;----------------------------------------------------------------------------9 E! o/ \7 T! O; i) @
- ;;;' x9 [6 [3 p0 ~+ r# S1 ~
- ;;; Avoid (gc)s on load to improve load time.3 q( i1 D3 c: o# @4 N8 }, D1 G. ^1 d
- ;;;
! {* \+ h7 Z3 e - (defun do_alloc (/ old_allod new_alloc)# Z( i9 C* S4 A
- (setq old_alloc (alloc 2000) new_alloc (alloc 2000))
& h# E* {, q0 W& q; ] - (expand (1+ (/ 17000 new_alloc)))% {! m' \2 q0 O3 I( I! X% F" U
- (alloc old_alloc)+ Z0 S6 _0 O9 l1 ] \ J
- )
* {/ J) H) v* T0 @4 { - (do_alloc)& E+ g4 f+ S! }
- (setq do_alloc nil)( B& R6 e9 _/ P8 ^( {. h7 P
- 5 O ^8 J) a$ v: { a e/ B
- ;;;
: o- C3 B3 s( c5 p, R - ;;;
. p/ N# q1 C' V, l - ;;; ===========================================================================' x& M. ]. G! I' ]( o
- ;;; ===================== load-time error checking ============================3 V( o% d: V5 C) Z* R
; p# A6 f0 F3 z/ X- (defun ai_abort (app msg)
3 U4 {3 }7 r* V2 J) Q6 D& C: W - (defun *error* (s)1 Q+ m0 @1 S7 R; k8 ~5 R
- (if old_error (setq *error* old_error))
Q- N3 e7 j/ K' u$ n( _ - (princ)
; q8 O3 e$ y7 R. E! D - )
5 {* j7 S+ C3 C+ l4 X" ^6 x - (if msg3 N+ }" E2 b7 ?$ u' h
- (alert (strcat " Application error: "% [( m/ w* x8 E9 |7 J
- app3 G8 V2 m( u& i/ m9 u; t& G
- " \n\n "4 s3 f0 V. W" |7 B$ {) {& Q
- msg1 J" F! U6 Q7 `* r$ r. Y0 c1 \
- " \n"/ k/ [2 h3 V' T5 F& }0 _* u( r
- )$ ? f5 n x; `& @& d
- )
: R5 X1 ? ]0 c - )5 \5 a2 P9 v7 S
- (exit): \9 w4 `: p& z/ d
- )
* a8 e3 j+ Y9 E9 l
2 F: `) ^7 W& X. y' w- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,5 F% f8 k. b2 }& J2 D
- ;;; and then try to load it. If it can't be found or can't be0 J4 i# B4 N+ z/ c2 @
- ;;; loaded, then abort the loading of this file immediately.4 U1 d( R9 F/ [* E0 c
- & ?0 s" u. F0 M: h- x
- (cond7 d+ C$ p! P! A4 ]4 E0 G! ?- q
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.8 D4 p5 D" d+ R! x4 B5 j
* b. N! k# N+ I- U1 L8 r! r- ( (not (findfile "ai_utils.lsp")) ; find it
2 C4 X3 U# I9 V: }: q! X - (ai_abort "DDMODIFY"; h: r' ^4 z; N8 A& w
- (strcat "Can't locate file AI_UTILS.LSP."6 E0 q. }4 L5 N' V" C9 n, ]
- "\n Check support directory."))) u% A+ { v& Q) i& E! d
- . u" \# p0 }! S: |% J$ g8 P
- ( (eq "failed" (load "ai_utils" "failed")) ; load it0 @& j! D+ y1 X9 [) k9 v" ~
- (ai_abort "DDMODIFY" "Can't load file AI_UTILS.LSP"))# c1 }+ c" k8 u L8 V, m
- )
3 d e! a. u" W0 B: r2 Y - 3 }! ^4 j6 w% Z& {6 l
- ;;; If we get this far, then AI_UTILS.LSP is loaded and it can* g- A4 |/ }/ G% b
- ;;; be assumed that all functions defined therein are available.: F" f7 B. ?- B! P) h& N
& ]* P1 H& O9 _# D+ h- ;;; Next, check to see if ACADAPP.EXP has been xloaded, and abort
4 \4 |* ~! v1 V - ;;; if the file can't be found or xloaded. Note that AI_ACADAPP
) B8 q" z" K4 c; p - ;;; does not abort the running application itself (so that it can; h5 e y. p. S/ Y8 @7 B* p- V
- ;;; also be called from within the command without also stopping
0 n) z5 @6 C$ R9 v - ;;; an AutoCAD command currently in progress).$ [& N, ?; o& D2 u1 k9 `
- ; X/ h; ?. ~$ ~/ R! F u
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
- `8 K3 r0 z2 u& r- n/ N+ e+ H" E7 b - (ai_abort "DDMODIFY" nil) ; a Nil <msg> supresses
; I; B4 @5 v) j - ) ; ai_abort's alert box dialog.
/ |& M" l1 R1 P
% ?$ Q7 H* |; q, i+ J$ ?- ;;; ==================== end load-time operations ===========================: o: q1 [- L+ c8 Q6 c
; F" L+ N7 K# x3 H' P% ^2 q- ;;; global variables
! T7 h T1 \6 v9 J* t - $ A4 ~! d& e: E. e, {+ h
- (setq hatch-elist nil)
1 M7 N9 Q2 z* W% Q
1 {/ Q3 F0 a" V* ?- ;;; If we get this far, both ai_utils.lsp and acadapp.exp are( y& Y- V( N5 K" x# X, h
- ;;; assumed to be available.
$ k0 v+ _, E5 S; a - 9 B$ h( M$ C! M4 e6 x
- ;;; Define and encapsulate all subroutines that are declared5 L9 A: H5 }2 G
- ;;; locals of the (ddmodify) function.( X9 C9 N3 z* J' ] F
D, t7 [* R3 \+ `8 f* d4 I p7 D- (defun ddmodify_init ()+ E( I4 s! o1 ^
- ;;
3 F) f+ m f& Q/ R - ;; These three functions modify the enitity list for common properties. Since
~ k4 F) |/ `5 \ - ;; color, ltype, and thickness are absent from the object list when they are
. n- V: k: }, e( x C# a- E - ;; set to their defaults (i.e. color = bylayer), a simple substitution using! B" T6 a c8 v( ~: U$ N6 N! o
- ;; SUBST is not possible.3 ]/ ]) w: C3 G% T/ z! _; Y
- ;;
) F5 Q3 v) l) L+ X1 t) A3 @( W9 e - (defun modify_properties ()
5 O0 T" t- m2 ^+ C% d - (emod ecolor 62)& g. r0 r g) K! N5 D3 d( s% m6 N$ }
- (emod eltype 6)/ w1 ^/ L N% C: W
- (emod ethickness 39)
. Z, W- j5 `0 ^' { - (emod eltscale 48)" {6 j, c( f1 |, ~* [
- (tempmod elayer 8 nil)
" e# _5 C! ?3 ]5 j/ R2 u% O0 m9 W6 y* a - )' l' C X S. e
- ;;
$ ]! I& L5 t* o( @# d - ;; This function is used for modifying common properties of the ACIS0 S( K6 A& w: \1 Q8 Z+ b. U
- ;; based geometry objects. Thickness is not valid for these objects$ k5 d5 t4 t. R) `4 k
- ;; so it is left out.1 h: k1 ]9 j B' s4 S y
- ;;% X$ j* R- Z& x% S- r* j. T# s
- (defun modify_prop_geom ()* x" v. P0 i* F- c
- (emod ecolor 62)
0 F. F) R, E7 U9 d% W - (emod eltype 6)3 i/ z. _% |% |# p
- (emod eltscale 48)" K, ` \% [. o7 k4 `: H6 f4 ~+ q
- (tempmod elayer 8 nil)
9 E0 k! Q. i: L' i. x7 |% N) [ - )
' s! }8 Z6 e+ k% |/ n3 I4 ^0 G
9 Y1 g; g) ^1 q8 S2 s- (defun emod (value bit)
4 ^" D) `* u% h; k- o( o - (if (= bit 62)/ V7 P* g7 B6 M. C5 v
- (progn
C; B8 p5 L! `# r8 u" a - (if (or (= value "BYLAYER")! ?2 L4 \( g2 D: t6 Z
- (= value "BYLAYER")) (setq value 256))
/ {6 @3 y& g2 o% H+ f* [5 V% C - (if (or (= value "BYBLOCK")
/ v% ?3 j* ~5 k' N, m; @ - (= value "BYBLOCK")) (setq value 0))( @* C7 E6 g# K) b% W7 M3 Y
- )
! R8 l* ]; W* W# [! d - )' o, T# A- ~9 m4 F, {* O6 s
- (if (setq oldlist (cdr (assoc bit elist)))( r% L) W( M% g& V) Z
- (tempmod value bit nil)
& d4 H5 Q7 O' s- Z - (setq elist (append elist (list (cons bit value))))
! Q# ? S+ e7 m ?* ~ `# o - ), J7 ]! Q, Q1 O' W( Z, V
- )
+ q" H2 }' W0 w u' B" k Q - ;;
( g2 A5 m% M7 ^, F( a* u0 ^ - ;; Resets object list to original values. Called when the dialogue or
3 k; ]1 C7 ]7 D - ;; function is cancelled.) N9 s2 y% ~- i% `% Y
- ;;/ N- Y0 [* a* q) b( q! l& C
- (defun reset ()# m5 w! H- X7 p: X' v. n9 U- e4 ?
- (setq elist old-elist- e0 k9 K# l( {( O, @( L- y
- ecolor (cdr (assoc 62 old-elist))
- x/ A# L6 i( l, n - ethickness (cdr (assoc 39 old-elist))
+ A0 @* W) }; T5 g - eltype (cdr (assoc 6 old-elist))
( j9 F/ Z( A% V0 x7 o - elayer (cdr (assoc 8 old-elist)); L! q0 f6 r: y
- eltscale (cdr (assoc 48 old-elist))
N- e3 C8 G- P. b: X" i. Z - )
- Q4 j, @5 f4 X% ~0 s - (if (not ecolor) (setq ecolor "BYLAYER"))
+ z- `' ?# Q- O. P' S! u2 @3 H - (if (not eltype) (setq eltype "BYLAYER"))
& ~9 `& e$ S& v3 r: f3 M; c Y - (if (not ethickness) (setq ethickness 0))4 s$ g2 ~& m6 Q( {
- (if (not eltscale) (setq eltscale 1))
, m& d( [# h) ?: D+ @' m* p5 d0 \$ q% ^ - (modify_properties)
! S i- b7 J) s) s - (setq reset_flag t)
& x8 D( X+ _, J7 e - (entmod elist)
1 Q& h" o6 t% N' j6 J' g - )) m i" A; L4 A7 D
- ;;
4 s( K9 y1 V% {1 I8 G8 ], J - ;; Modify object when dialogue is temporarily dismissed to reflect latest
7 `5 z7 w2 {9 u' k+ S. _. R# j - ;; settings of dialogue. It converts the point from current UCS coordinates to
6 E1 q+ Z T( X! Z - ;; the proper object coordinates (world or object).
; G# H' j6 }. C8 g# B - ;;
, L0 B2 q8 ? Z2 L$ w - ;; Arguments: value - in current UCS coordinates
5 i( n* y* [8 s& Z" [ - ;; bit - object code (i.e. 10 for start point)
( V9 F$ {2 M2 |0 ~% z5 k - ;; ptype - point type 0=world 1=planar
- W/ S" J$ B& V - ;;: W) Q8 c, [* x& T3 F6 ]) t2 P
- (defun tempmod (value bit ptype / newpoint)8 B& j" G1 U: w- `8 o3 M2 J( Y
- (cond: ^; M9 A. g" N# e) A
- ((= ptype 1) (setq value (trans value 1 ename)))+ `# ]5 j* L7 w. \1 B9 j# n
- ((= ptype 0) (setq value (trans value 1 0)))# R3 W' L* l1 m
- )' o/ H+ r2 k; `& E* L
- (setq elist (subst (cons bit value)
/ ~. N( o" y: H - (assoc bit elist): W8 z$ \* [+ q' F% |0 ?
- elist% E- `- [4 m) c# N
- )
4 e2 v$ P) z, X- _ - )
8 d! \+ U" `2 g5 v' N" X! t - )1 C, Z1 g: v( d: I* i
- ;;
3 k: [5 w% x4 r$ t1 x - ;; The following functions are called after a dialogue has been temporarily) T9 p- x% H _* c
- ;; dismissed and the user is selecting a point. If a point is selected the
; w' l2 D7 c$ x, L. \. e' e - ;; object list is modified and new X,Y,Z values set. If no point is selected
2 E% z2 I; J& \( [& u3 d9 p - ;; (null response), then the point is reset back to its previous values.0 c1 A6 m# m' p- {, Z% Y0 U2 m
- ;;
6 N5 ]6 y5 v# E) f3 e - (defun ver_pt1 (ptype)
- s! D* L8 y8 P0 K9 h6 m - (if pt1+ z6 h; Y: b1 J1 w+ g1 p: R
- (progn1 J' I v: C7 x: M
- (tempmod pt1 10 ptype)5 b' n4 Z6 j- f2 G# O( _
- (entmod elist)
# Q& _2 k9 |3 S# c) u& t& r' I - ): G' r+ ~; @5 o9 C( k7 S
- (setq pt1 (list x1 y1 z1))" }# C0 b. j0 m% Y
- ), a2 Q8 n8 e G, K
- )+ N! V2 U$ f4 [
- , [; u% S) `7 j0 E# x- n. ~
- ; (move_pt1 <ptype> ): j( L. q* D& S8 Z5 B
- ;
/ v; i' Y0 N! }9 c4 E - ; Called in liew of (ver_pt1) to translate block insertions which
@: Z8 q8 ^2 x$ |+ D3 h) S/ c - ; might have variable attributes attached to them. If the distance9 i* r" m9 ^1 ]
- ; the block is to be moved is < 1e-6, the move is deferred.0 K: D( T. d+ O* a* A- W
# j7 D; y8 S" ^' c( y- (defun move_pt1 (ptype / basept hi): \5 i1 }) i. b, I3 \
- (setq basept (trans (cdr (assoc 10 (entget ename))) ename 1))
& S; @) e3 K- w2 E# n- u; P' T - (cond
+ A' [. V+ E& y5 w - ( (not pt1)( b! E# H! v) I1 ?
- (setq pt1 (list x1 y1 z1)))( s8 I! M9 T$ ]( d: \
- / A! c B0 q$ ?" R! D
- ( (> 1e-6 (distance pt1 basept)))5 d7 P6 Q0 z, ?; S9 ^2 S: n
% k+ x+ n" s! |" Z/ l- (t (tempmod pt1 10 ptype)
! q' h( g( U% H/ v3 o) Y& v/ j - (setq hi (getvar "highlight"))
. ^7 J+ {# D! `! s, Z* M! N - (setvar "highlight" 0)
/ ?+ D5 |9 H5 ?# _ - (command "._move" ename "" basept pt1)
; Z+ a/ c; v+ @; A9 V& s: ^ - (setvar "highlight" hi))3 \9 Y( v; c& N' ]
- )
2 L! j" x6 C3 B) F, f - )5 N/ @9 ~6 Q) d5 G. z' U- t1 q
- . n5 E! }$ B8 r8 t7 R2 s
- (defun ver_pt2 (ptype)
2 J+ P' r0 b! z, w8 j4 l5 o - (if pt29 u- \. T. K" f: q7 \( m
- (progn
4 S, N7 V9 o3 n" I" o$ l - (tempmod pt2 11 ptype)( @4 R: B( u) e3 \& p
- (entmod elist)) i* ]( |, i/ N& H
- )8 E5 u& ~: J" k W
- (setq pt2 (list x2 y2 z2))1 i4 V8 o+ Y8 }
- )
) D7 J6 v! K2 M% m$ { - )
5 Z8 a, }& @0 X - 0 ^5 {. X3 v7 [7 e$ [: I# ^+ ]. `
- (defun ver_pt3 (ptype)
# R: K3 s# s9 u, L6 e9 {3 c' g$ ~ - (if pt3
/ {: q! ^9 D- b% g+ K* Y: z* h# H8 c - (progn
0 }' B! f7 Y; W# C+ @9 k* \# f2 u - (tempmod pt3 12 ptype)
5 e# H$ F5 u! l9 D2 m3 K" b7 j, n: D - (entmod elist): X- V; m5 Y) {$ l+ R! l3 g
- )
1 P' F7 R X0 \7 z. r% t) f - (setq pt3 (list x3 y3 z3))2 \; L6 T4 H1 R8 R$ {: Y2 C. m( V
- )
" F7 g8 W9 m' q% k7 v, G - )+ F& ]/ r7 N5 O4 p b- N0 Q# k
- $ M# O8 e9 S' K& K
- (defun ver_pt4 (ptype)
' ]- |: g( T( g% Y7 V- f g - (if pt4) }4 `3 k5 B2 S9 R9 [% T
- (progn4 H- z: J7 N5 E8 p
- (tempmod pt4 13 ptype)
4 H. J1 t6 k: U - (entmod elist)9 `6 W: F2 j: M- B! c, E9 U
- )( M9 ^" O+ @9 V5 H; T$ Z0 o
- (setq pt4 (list x4 y4 z4)); P9 H s, p2 Q) t: h
- )2 x8 p" c) H% O X9 I" D! Q5 q
- )
7 ?8 N0 z- P! W E2 o" s - ;; Xline/Ray. N' N7 f9 u o3 e+ r+ V
- (defun ver_xline_pt1()0 O3 C) |4 ^9 {5 G, u
- (if xline_pt1
: L$ b( A# H! `& H+ C5 J - (progn# L/ H$ C4 B" k7 T
- ;; convert to WCS.! r' {7 I Z" F/ |, o! h
- (setq value (trans xline_pt1 1 0))9 m5 s0 l, N: g x3 p4 W2 M
- (setq elist (subst (cons 10 value)9 [8 P; t, K, D% u) ^& f
- (assoc 10 elist)7 j, b/ Y, w+ e" o; X
- elist2 k; A3 ~6 H/ y6 `
- )( @) F9 s8 S9 _% A
- )
5 x2 f0 Y, [+ k& O9 @5 e6 A - )
# b4 U: a& T" ` - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))
7 x; x7 q/ J( A9 y$ ~ - )& \1 U" c2 @; K% ~" N
- )# H! M1 P7 Z3 d- R J! [
- y$ W9 ~5 W& _1 E( r& D- (defun ver_xline_pt2()& g( P" { @; O6 w
- (if xline_pt2
" h$ T' c: u5 y1 V/ c3 i - (progn
8 C z/ H9 E: c - ;;6 r. A: p" H; v' R% @
- ;; Calculate new Direction Vector WCS
% k2 Z- u# }9 e! s0 b/ I8 R - ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))
" d' Z" k1 b1 E- S" m - (setq temp_dir (trans xline_pt2 1 0))0 U& r$ q/ q3 L) L. |; _
- (setq temp_dir_x (car temp_dir))' Z0 @3 m8 P7 C x
- (setq temp_dir_y (cadr temp_dir))
: k9 m8 }' m( \: h) u - (setq temp_dir_z (caddr temp_dir))# \8 Z- a6 _$ _0 m& h
) w$ Q; D ]2 w/ o- (setq temp_xline_pt1 (trans xline_pt1 1 0))5 k% F" Z% s( O
- (setq temp_xline_x1 (car temp_xline_pt1)): w0 E8 n6 K! g. T9 y4 K
- (setq temp_xline_y1 (cadr temp_xline_pt1))
# ?! D. k9 P* p( Z" ^ H* L g) s - (setq temp_xline_z1 (caddr temp_xline_pt1))
% K7 J% `/ u/ o6 _& U8 Q - 1 `& Y2 f+ e8 v4 h* D: m
- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2) A* f) B- F- @: [
- (expt (- temp_dir_y temp_xline_y1) 2)+ h# g8 q' x; J8 w4 W' R. e' v
- (expt (- temp_dir_z temp_xline_z1) 2)# B; s# h" ?$ ~2 F8 v+ f3 e
- )))
6 \3 [# ~4 \! ?8 z2 g2 } - (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
1 O- Q( _, U- u) o. r" v - (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))! U3 h/ N9 }, ~$ x+ P' d
- (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))
' C* z' e; N. x: M - (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))
6 x& ]% j# ^$ d( A+ J& @) H, [1 J - (assoc 11 elist)
0 u6 g9 z( D5 k* K4 Y( u" R9 _, [ - elist5 V; ~ P5 q( K w8 e( Z5 @, D7 E
- )
5 s( @1 P5 c: Q( B% t- M - )5 E9 b, Q0 c1 o7 R) l, v
- (entmod elist)
) w; L8 j* ^/ N* o - (setq xline_x2 (car xline_pt2))6 H. a# O" T4 S. k) r- L$ T
- (setq xline_y2 (cadr xline_pt2))0 v0 u h9 G6 \8 _2 f
- (setq xline_z2 (caddr xline_pt2))2 l% l) Z# M4 Q- F
& q' t6 S' U' g4 M- 8 N+ c- r* W3 q. S. I5 {+ H- O
- )
U0 c/ P# [8 i% |% }( G& V$ y7 W - (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))
3 O. i/ g$ D% k1 W - )" X( L3 k K' @, D, A$ |
- )
2 T$ n* k- g/ z+ x. d; \( t
- ?8 }* B/ g2 `9 j- ;;1 J8 u8 W; z: q: Y B
- ;; Common properties for all objects9 [9 T7 O! Q. y3 a
- ;;
: S3 @3 M9 ~) k+ s& I - (defun set_tile_props ()
$ G7 W% A8 C9 N8 H - (set_tile "error" "")2 j3 _) @% y, t! P
- (setcolor)# ^& F; d2 j: l
- (cond6 |' ^5 t5 I2 f/ ]" N8 W; c) U
- ((= eltype "BYLAYER")
: A) s7 h2 |; ~) Z1 f" R - (set_tile "t_ltype" (bylayer_lt)))
$ `% `3 e/ V3 ]: f - ((= eltype "BYBLOCK")
$ V/ G- b1 G: @/ a - (set_tile "t_ltype" "BYBLOCK"))! l( Y* U( F& C4 p
- (T (set_tile "t_ltype" eltype))
* S4 X: X! q) o - )
+ K3 G& R. I, S2 z9 r - (set_tile "t_layer" elayer)
: x: t* p# ~2 z% Y - (set_tile "eb_thickness" (ai_rtos ethickness))
6 G3 Z5 ~: u* u+ K( z* q - (set_tile "eb_ltscale" (ai_rtos eltscale))
# M, l7 B- a1 |* U4 N0 x+ e% {8 ~ - (setq which_tiles (ai_common_state etype))9 C: f/ m: o1 n% ]
- ;; Disable tiles if need be...6 O7 O: r+ U% M( Y2 Y4 k* A( Z
- 3 T8 l; C" D% y0 L% [
- ;; Layer Button and Text Field) o, v, R7 a% V
- (if (/= 1 (logand 1 which_tiles))* f. e M( s9 E6 M7 T" r& {
- (progn
# [. r n8 y: p4 s - (mode_tile "t_layer" 1). H, _2 Q- H6 U, z/ u/ a* c
- (mode_tile "b_name" 1): H7 O& ^( |% _6 n, g9 z
- )
! i4 c. y% [6 U" S) n0 p- O - )
2 d5 \/ j# z% @ Y! z+ u - ;; Color Button and Text Field) K5 F& E P7 P- h3 V4 c6 h, k
- (if (/= 2 (logand 2 which_tiles))+ q4 Y- k1 C- N4 z$ h! D% g
- (progn; R- u* c7 ?$ X% D$ l4 I! b5 Z: Z
- (mode_tile "t_color" 1)
# T9 i0 X7 A$ A. b# N" k# N( ?% x - (mode_tile "b_color" 1)' @- }2 i) a* K+ ?; b
- (mode_tile "show_image" 1)0 W V. Z: }. x
- )
# K, P" _4 ], `: h( U$ N - )0 n* [, }7 C+ \+ k- n3 m# s
- ;; Linetype Button and Text Field
/ \5 f4 q' r W# r# y - (if (/= 4 (logand 4 which_tiles))/ {% H( }3 f. p2 |( @; r: v
- (progn
8 ?& X* ?1 n5 h3 o8 Q2 W - (mode_tile "t_ltype" 1)
3 [" x1 ^. M. I* A( _ d( m - (mode_tile "b_line" 1)" T# N0 M! L( H4 Z( n
- )
: O/ Q' C' C: h, Z0 d# S0 ? - )
; ^4 F& k: ?" p8 F8 D - ;; Linetype Scale Edit Field" V' y' E L f+ v# p. T' Y
- (if (/= 8 (logand 8 which_tiles)), K6 L$ x0 ^7 n4 j% n! `
- (progn
; y4 K! P: l' C* E4 K - (mode_tile "eb_ltscale" 1)
3 {) v0 |, [+ _- \ - )2 C1 ?# z7 l$ b! a3 ~
- ). v8 I' b! F' G- u4 k9 a
- ;; Thickness Edit Field.
9 }* @3 U: X `5 i0 | - (if (/= 16 (logand 16 which_tiles))4 F* A7 @# a4 b3 C! J( J/ k
- (progn* K) R' x4 [+ R
- (mode_tile "eb_thickness" 1)% h& z; c5 \" ~& Y2 |# J
- )4 c- @& Y6 l6 Q0 ?) v5 H) t
- )
1 ]5 z5 S/ j, V: l% z2 h/ d - )
, ]9 |% w, U' S6 m - ;;
1 G" k' P/ y1 c- @+ u - ;; XYZ Point values for all enitites# V7 }1 V, ^+ T! U0 ]
- ;;
! j$ n" g+ o, {1 F - (defun set_tile_pt1 (ptype)
; L7 W, Y$ J; c; q - (if (= ptype 0)
2 U* T ~+ m' \ - (setq pt1 (trans (cdr (assoc 10 elist)) 0 1))
2 t/ e& m4 a* w h9 K z - (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))
* r1 |1 @& w1 }- P3 d( V* ]% I - )! K* K% |* x2 ^& U- |$ P8 @
- (set_tile "x1_pt" (ai_rtos (setq x1 (car pt1))))
, z1 |% D! }/ z9 F7 } - (set_tile "y1_pt" (ai_rtos (setq y1 (cadr pt1))))& s" p" v; M' Y% I+ \. y# N* K7 }
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr pt1))))! Q, }3 ^, h& g9 _
- )* R8 N7 d5 D8 Z6 b1 n3 d/ b
- (defun set_tile_pt2 (ptype)
% u4 y9 V& x" @8 z: ?" o/ [* T# ^8 j - (if (= ptype 0)0 ?- p2 A2 c! V! Z+ q' {8 R' C y
- (setq pt2 (trans (cdr (assoc 11 elist)) 0 1))
$ O4 L7 k7 N5 \+ T - (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))
2 @4 r: ~7 K/ P' Z N - )
8 V+ m% c- z5 O( H - (set_tile "x2_pt" (ai_rtos (setq x2 (car pt2))))0 i# K7 } N' h+ W' Q' z
- (set_tile "y2_pt" (ai_rtos (setq y2 (cadr pt2))))9 V0 z$ X) N6 f1 o
- (set_tile "z2_pt" (ai_rtos (setq z2 (caddr pt2))))& K* |% q* N6 Y- F/ d6 s; o
- )
8 D) p. G* ?8 Z* F: x - (defun set_tile_pt3 (ptype)
0 k; L* ?8 I4 N2 c8 m* |+ T4 K - (if (= ptype 0)( ^) v& d; k% p" ^8 R h
- (setq pt3 (trans (cdr (assoc 12 elist)) 0 1))1 {2 ]5 K8 m$ J$ \0 n4 K, c
- (setq pt3 (trans (cdr (assoc 12 elist)) ename 1)). N7 `) d" X( K! c9 N! `' x& ?
- )
5 K; ]/ u6 w0 T - (set_tile "x3_pt" (ai_rtos (setq x3 (car pt3))))
% m) n, r4 u# F+ ]8 |1 S; { - (set_tile "y3_pt" (ai_rtos (setq y3 (cadr pt3))))
' p5 V$ l$ r+ d# Y9 B" F# g6 q - (set_tile "z3_pt" (ai_rtos (setq z3 (caddr pt3))))
0 ~" I- z( A5 S4 E8 R - )' p4 I7 J; `/ p; ]0 t. m
- (defun set_tile_pt4 (ptype)
! M1 q' h2 H/ k$ e _8 ] - (if (= ptype 0)4 z$ d3 X7 O6 a* i3 J0 Z
- (setq pt4 (trans (cdr (assoc 13 elist)) 0 1))4 J) W/ G- w- l* N. u2 L- Z
- (setq pt4 (trans (cdr (assoc 13 elist)) ename 1)); ?5 Q8 \5 b: q! {
- )
. `2 U$ S7 P7 T# ^2 C( N1 w9 |6 x v+ M - (set_tile "x4_pt" (ai_rtos (setq x4 (car pt4))))
) m9 g* h. B1 B1 `2 _ | - (set_tile "y4_pt" (ai_rtos (setq y4 (cadr pt4))))
1 N3 {) O# {( X' L; x/ B - (set_tile "z4_pt" (ai_rtos (setq z4 (caddr pt4))))6 X/ w8 V2 y6 G# P+ G u% v
- )
+ P W( Z" L5 Z3 Z, U8 E - ;;5 W) u* L( d! D6 u; _/ u/ x
- ;; Xline/Ray5 N2 V9 T. m. a( H" U# G/ D
- ;;/ Q0 |' W) W7 C6 C" p" O0 {1 }
- (defun set_tile_xline_pt1 ()2 o4 S8 E2 R6 u2 o( v! R* G2 m
- : B3 X! D) V h1 I5 K w3 Q4 x; T
- (setq xline_pt1 (trans (cdr (assoc 10 elist)) 0 1))9 _4 M$ @6 }1 k K
- 4 ^7 Q0 h. z. r( Q- n% x
- (set_tile "xline_x1" (ai_rtos (setq xline_x1 (car xline_pt1))))4 t, o1 Z( V" n, V7 m
- (set_tile "xline_y1" (ai_rtos (setq xline_y1 (cadr xline_pt1))))
" E. g: z- d0 F' X) ] - (set_tile "xline_z1" (ai_rtos (setq xline_z1 (caddr xline_pt1))))
; ~' X- m0 y& T3 S {' s, e - )
! ^ w/ \4 U/ W- r. n/ I; H - (defun set_tile_dirv ()$ g. p7 @- S* S# j7 j4 R2 u: @
- ;; Convert 11 group to local UCS (displacement)) A* D N! b9 h" Q2 I' s9 G7 j
- (setq dir_pt (trans (cdr (assoc 11 elist)) 0 1 1))
6 Z6 y+ ~ H9 x4 y9 y8 s m& Z* N - 2 J3 G' W8 }/ Q. \( P2 U
- (set_tile "dir_x" (rtos (setq dir_ptx (car dir_pt))))1 G& R+ [/ e, j$ P% H. ?
- (set_tile "dir_y" (rtos (setq dir_pty (cadr dir_pt))))- u& }# j/ O. |2 q) K5 f( A
- (set_tile "dir_z" (rtos (setq dir_ptz (caddr dir_pt))))
, B8 v5 w. [. ~: ` - )
# o2 Q0 I6 c7 N) c2 H+ @- F - (defun set_tile_xline_pt2 ()3 o3 x9 o% s4 ?: [% i
- (if (not xline_pt2)& Q, P0 h( @ U) g( d1 b" A
- ;; Initial second point is Root Point + Direction Vector: |* A% c5 W: K0 P$ l8 p! z# H
- (setq xline_pt2 (mapcar '+ xline_pt1 dir_pt))
, M: D: ~% c9 ~" I - ): [2 d/ I8 x* r: ]3 s2 r/ b7 S" I0 q
- (set_tile "xline_x2" (ai_rtos (setq xline_x2 (car xline_pt2))))
1 }4 `3 \/ G3 l! A, G- z8 | - (set_tile "xline_y2" (ai_rtos (setq xline_y2 (cadr xline_pt2))))& I3 g5 Z7 r9 y2 e% P5 C
- (set_tile "xline_z2" (ai_rtos (setq xline_z2 (caddr xline_pt2))))
& H- g" t; R% \6 y. u - )) G$ d# U% J$ a$ N$ a5 ~3 h. P
6 E/ v# f b/ I- ;;
# x2 S% s( }/ i5 \0 w - ;; Handle for all objects
7 Q" @( W! N9 j0 ?4 h - ;;
" T0 c1 x* [5 d, A( S/ J - (defun set_tile_handle ()/ }; F4 e, }, ~, }! L
- (if (setq hand (cdr (assoc 5 elist)))
/ d) x: b% g3 M$ A( p - (set_tile "Handle" hand): R' A2 v0 a8 O
- (set_tile "Handle" "None"), q! u) O; G8 N2 @# e/ N( E5 p# _
- )' ~) [8 z+ k* d. B/ I, s, f
- )0 [# A( G$ z& e. D. O3 n
- ;;/ G6 b# Q6 J) n- [$ u$ b \) a6 Q
- ;; Radius for ARC and CIRCLE B5 m3 ?& D# V, N+ @) S/ x
- ;;1 u; m6 e! f1 G! Q9 H
- (defun set_tile_rad ()! E% t) _) G0 y4 \
- (setq radius (cdr (assoc 40 elist)))% x6 n" Z% @7 P, |% ~& d! i
- (set_tile "radius" (ai_rtos radius))& Z' M$ X4 g- I; k# r& e1 j# ]
- )/ e9 Z, D9 ^" f+ e- o- V5 g5 R
- ;; D& i) f$ k2 m5 I
- ;; Start angle for ARC
! d O) t) B7 O- \$ H* N - ;;
3 M: i" I* O7 v$ W. l% L9 e - (defun set_tile_stang ()& V" J+ G2 f( E8 T# d- r Y
- (setq st_ang (cdr (assoc 50 elist))); u& }$ {; L0 c: U5 t+ P- G d
- (set_tile "st_ang" (ai_angtos st_ang))- F: q; S+ t& w" T' S4 |" f. X
- )+ ]. s! R. i8 o, N6 Y
- ;;
' | e& j+ y' u& [9 v - ;; End angle for ARC
, Q7 X7 x, k& Z1 H1 F4 O' \ - ;;
2 W8 O0 v& K6 \0 J" u - (defun set_tile_endang ()" b# K8 k+ @- U' R S: X' l
- (setq end_ang (cdr (assoc 51 elist)))
4 [# l7 T- }& _* d: S - (set_tile "end_ang" (ai_angtos end_ang))+ [# V. ^0 U0 x ~
- )
/ I( r; F6 L* e7 m0 z4 G0 L - ;;
8 `- G7 c( i& |8 h; N g - ;; Rotation Angle - Text, Attributes, Block insertions and Shapes, c( D" D+ t& d' a) M, U
- ;;) d# s7 [3 d5 a0 _2 c4 m8 }* a
- (defun set_tile_rot ()9 a: _ S3 X8 R
- (setq rot (cdr (assoc 50 elist)))2 y$ O0 {+ X* f! x) ]
- (set_tile "rot" (ai_angtos rot))
: U8 d: L! Z0 \1 K/ x; s# z9 ~$ l8 j - )5 a: Y' ^: E1 e5 y6 T
- ;;
. ~4 d0 `9 q( `" y0 D& a - ;; Height - Text, Attributes and Shapes
" {! S/ t7 W$ y - ;;
. h7 w6 N9 s0 G: T; {! B4 \ - (defun set_tile_hght ()5 z3 ?& A% f7 S1 \% e3 W. D/ z
- (setq hght (cdr (assoc 40 elist)))
3 V- X% J& g6 |" z - (set_tile "hght" (ai_rtos hght)), k* w2 s- k" p- B# U; X% V
- )
/ O; z2 t+ t% g( S1 s - ;;
# I# w8 y% H7 o& Y5 c! W - ;; Width Factor - Text, Attributes and Shapes
, E2 s+ q: e$ \0 e5 b! r h - ;;, J: m! Y% K. x( q( M' T$ |
- (defun set_tile_wid ()
( A! q. ^* g! A6 O$ r9 p, k& R - (setq wid (cdr (assoc 41 elist)))9 {2 C3 [6 M2 I7 U- s4 f
- (set_tile "wid" (ai_rtos wid))
- z+ J/ ^! @: K0 n0 I$ ` - )7 c4 U/ U6 P8 S7 f. O1 [# t
- ;;
* D. P! E& g& ]1 r6 D - ;; Obliquing Angle - Text, Attributes and Shapes- V& Y& x o' I! e/ @+ P( [
- ;;
+ n, F& s9 R! b m0 ?5 ?) v" N - (defun set_tile_obl ()" x2 w( B9 t9 x( p; h
- (setq obl (cdr (assoc 51 elist)))
$ r e- g0 [. a- `/ h C - (set_tile "obl" (ai_angtos obl))9 a$ t ^9 N' d* M4 ^2 T
- )1 j1 V# [/ G0 Y* w! q+ U; y# c
- ;;
: e F5 Q/ p7 {: w- e - ;; Text string
: |: | A4 U$ ?1 D2 E - ;;: x9 T+ l# Q6 N* y: p2 V% h! y
- (defun set_tile_text ()
% U4 Y" t* A8 S - (setq text (cdr (assoc 1 elist)))
) ?; r( y# W9 O1 t. q6 I; d" E) ^7 L - (set_tile "t_string" text), T) l: v+ W5 n2 Q. s
- )( O, P0 \6 \/ S( y; F; K
- ;;1 \$ ~( A N- \7 l
- ;; Attribute Tag
" P% B" e* p x/ u1 e w - ;;6 x/ Y. N& P5 W+ V. V, p: L/ C
- (defun set_tile_tag ()
- T& x3 R) S3 D2 g. F+ I7 a - (if (= etype "ATTDEF")
+ `1 V. D) p. H: D5 K% p - (progn9 ]- W. P5 A5 Q- r) l& p- M" f
- (setq attag (cdr (assoc 2 elist)))) _8 x$ R" T" l/ z6 N9 Q
- (set_tile "tag" attag)
2 i0 ^- G) {( a8 j9 o - )
1 L% B( a- i8 `! q4 n4 @ - )
) n/ \6 j0 ]. X - )
. P# }7 a) F; _- y/ r8 h0 [ - ;;
/ e) d; a5 {0 |1 N m - ;; Attribute Definition* Q+ S) ~9 L7 n9 ?- z2 h- ~
- ;;, M6 Q% [/ ~6 h
- (defun set_tile_prompt ()8 u* V" W4 x0 E) O( t
- (if (= etype "ATTDEF")
; G7 [! i9 z6 l$ B$ v - (progn+ n+ O6 H! J: M. E- l, S L
- (setq atprompt (cdr (assoc 3 elist)))
$ b: |1 [$ D9 `6 J( o7 o - (set_tile "prompt" atprompt)
( \! u8 ~ i2 C - )
0 [" ~! a! }2 }& E, c% D! h - )
) a: g6 `: L! ? X$ N4 M - )
1 v# c) p: L! ~1 U) ?* w - ;;: V E# d& Y# a; A: r
- ;; Justification setting for Attributes and Text. Initializes
3 d! W$ P4 G" L - ;; popup list box/ o6 \! Y# g) @- y" y
- ;;1 e8 G, ?: C$ c
- (defun set_tile_just ()
4 m! ~9 X5 O; T. W - (setq ha (cdr (assoc 72 elist))) ; horizontal alignment) B3 Q: s& O7 ]8 C/ T3 i
- (setq va (cdr (assoc 73 elist))) ; vertical alignment: t- R+ t( ~3 E* i! ^* m7 s
- (setq ha-prev ha)# M4 x: ~1 i* p7 [& e
- (if (= etype "ATTDEF")
; j% d: ]; K2 P - (setq va (cdr (assoc 74 elist))) ; vertical alignment
& ?" q0 m1 M! x* Z- `! I - )( I1 r( J1 _; n8 J8 m/ m7 l# k7 o
- (setq jlist
6 L5 u) Q; p: x" q9 Y4 c - (list "Left" "Center" "Right"
$ N# V3 J7 E5 | S - "Aligned" "Middle" "Fit", S! D7 i W2 i0 U: [
- "Top left" "Top center" "Top right"3 Y E% c& U" w2 l* k" g# L2 q
- "Middle left" "Middle center" "Middle right"
$ M8 e1 d' B: @2 _: Q0 A - "Bottom left" "Bottom center" "Bottom right"6 \1 S! E) x" p, p% |
- )
1 a2 c, P4 O1 v1 V# i- ~. @ - )
# ]$ s+ Y& |! B9 E0 S - (start_list "popup_just")- f5 y, E9 r' y; P( K0 t
- (mapcar 'add_list jlist)$ M5 ?# w: V3 V
- (end_list)
. S: Q7 O/ o. O1 V6 V - (set_just_idx)
! g: t: W$ c* Q* f, ? - (set_tile "popup_just" (jlist_act just-idx))
2 {# l2 I2 L9 H1 F- H2 d, _ - )
) q0 b3 k/ N9 {) k* u - ;;
9 _( ~" Y: ]/ U8 ?, h% p' _% s - ;; Style setting for Attributes and Text. Reads symbol table for popup list
; Q# e1 C* V! d" c - ;; box.4 k8 x8 J; @4 p4 K" z" L& b6 B A
- ;;
# N* }% Z# z, `/ A - (defun set_tile_style (/ sname style-idx tlist)
% c4 R8 g/ J9 t ~7 R. _1 H. c0 { - (setq tlist (tblnext "STYLE" T)" C6 ^5 {$ R) Y4 ?9 h
- slist nil)
8 i3 A: q) s" R" D* i/ _ - (while tlist6 T- d6 @/ @* {2 B' [) @+ P. S( ~
- (setq sname (cdr (assoc 2 tlist)))
" }" o( j1 r: ]0 a( F% w+ F. Z, i - (if (and (/= sname "")6 W% a4 ? x+ w( b: f
- (/= (logand 16 (cdr (assoc 70 tlist))) 16))# e, B |* b8 m: ~0 A; t u
- (setq slist (cons sname slist)))1 ~3 ]/ [+ j6 K- W
- (setq tlist (tblnext "STYLE")))
$ j( y1 l6 N' U+ B) o; u) M/ U - (if (>= (getvar "maxsort") (length slist))
0 {8 Z6 `6 K! s$ W. A9 a4 ]/ ~ - (setq slist (acad_strlsort slist)) ; alphabetize style list
0 ^7 I( s2 j2 Q& r8 k - (setq slist (reverse slist))) ; or reverse it to put it in DB order
% [* h, X4 v; A; e7 E, O9 }, }. `
; F1 s# L: i9 l) `5 O6 b- (start_list "style")4 T+ [/ j( C7 }3 a! h4 ~! M9 Z d
- (mapcar 'add_list slist)$ d& k' H4 V- |9 N2 E j4 x6 W* u
- (end_list)
! M9 \# _; Q2 s L - (setq tstyle (cdr (assoc 7 elist)))
. ]: L5 D/ ?6 S0 Z0 P& @ b7 e - (setq style-idx (getindex tstyle slist))
2 ^$ B+ K+ q$ n0 P1 K. g - (set_tile "style" (itoa style-idx))
. T5 }4 U' o; l9 u0 P9 Y; v3 u - ), D8 Y* l; H9 V/ |8 y: J X
- ;;
+ e) Q) }2 l5 ] - ;; Text and Attribute setting - upside-down, backwards8 W5 J( B; y t/ `4 k2 o' P+ E
- ;;: L$ }, s4 ? L' ^+ Y
- (defun set_tile_bk-up (); @$ F7 I ]- W/ m9 k' w! l
- (setq bk-up (cdr (assoc 71 elist)))* c5 j: o5 U A, l! d
- (if (= (logand bk-up 2) 2)% {/ ~8 L3 Y5 }
- (set_tile "bkwd" (itoa (setq bkwd 1)))
; W& Q3 E' U% N8 Y - (set_tile "bkwd" (itoa (setq bkwd 0)))
' [$ }7 y0 j8 J; t - )8 Y2 a# F& L: l' J+ B4 g
- (if (= (logand bk-up 4) 4)
6 r# U/ `. E& S8 ^0 j+ H5 h. H - (set_tile "upsd" (itoa (setq upsd 1)))
& `* d' Q' {5 c* _# r3 A - (set_tile "upsd" (itoa (setq upsd 0)))) R' f# R/ k0 z8 F
- )5 @3 G" y* {: |
- ): G* b0 n8 s* j% R7 `* l- S2 T9 X
- ;;5 G- G; K" L; _' y3 ?
- ;; Attribute setting - invisible, constant, verify, preset
/ x0 |% f& N) U) D& c1 j5 e: V - ;;
$ n+ c% [# e8 U1 I7 c! r - (defun set_tile_icvp (): J- M }" i5 }, i
- (if (not (setq icvp (cdr (assoc 70 elist))))4 X, H9 |% |) l8 ~* ]+ b! D8 {5 ?
- (setq icvp 0)
% u9 e/ s2 I7 x, _+ R - )9 m/ p! z+ @% U- s+ f# o& f0 I4 z
- (if (= (logand icvp 1) 1)
+ @$ B& N; U! Z; L2 x - (set_tile "inv" (itoa (setq inv 1)))
; i7 y' s7 t5 q; T* [ - (set_tile "inv" (itoa (setq inv 0)))
! S+ Q2 @) B! m& O" | - )6 B# I# @- ]3 x2 T% A: W
- (if (= (logand icvp 2) 2)5 ?" {! V! F2 d) p) A( w
- (set_tile "con" (itoa (setq con 1)))* u! h. r* t" E$ |; O% D
- (set_tile "con" (itoa (setq con 0)))
9 ]1 W( Q @) f# X6 W - )
$ T6 E8 q! w1 q - (if (= (logand icvp 4) 4)
0 W; G8 t. ]# s! @. n - (set_tile "ver" (itoa (setq vfy 1)))
8 E8 B9 I! {" \ - (set_tile "ver" (itoa (setq vfy 0)))
6 f9 y2 D8 b$ R4 D! o2 T - )
9 q- s3 N2 u/ S7 H$ z - (if (= (logand icvp 8) 8)
5 ~. ?, R2 R/ n) X - (set_tile "pre" (itoa (setq pre 1)))) L) K* g7 ]" {6 j/ h+ l |# b
- (set_tile "pre" (itoa (setq pre 0)))! F& r8 a+ U0 ^$ `* |% m4 C2 i
- )
) a2 _) Z5 _) `- i4 A: ? - )# \2 T! y3 t3 L
- ;;
& n* I1 ?2 i8 x/ Y) c5 m1 T - ;; Scale factors for block insertions! ~! v" k% z; o- a
- ;;
) I% \- T+ |, o2 @, x2 I. Z# t - (defun set_tile_scale (/ temp)
: r! K& i- y2 L. F, U$ N0 l& m6 J - (setq temp (getvar "LUNITS")). x( G g, I; z3 d& z, m
- (setvar "LUNITS" 2)( h" Z: K( u" L
- (setq xscale (cdr (assoc 41 elist)))
& P; b2 b* a! T2 y% M% `5 ]3 F - (set_tile "xscale" (ai_rtos xscale)) W( N8 |, z A/ X1 F+ _
- (setq yscale (cdr (assoc 42 elist)))
! |- X( g& _1 k# d1 {& O - (set_tile "yscale" (ai_rtos yscale))/ @1 S' {7 }# f0 A
- (setq zscale (cdr (assoc 43 elist)))
+ ^7 p4 U- B& @# a x3 k) W - (set_tile "zscale" (ai_rtos zscale)). b0 I- ? y, j3 Q2 W/ ~
- (setvar "LUNITS" temp)
5 z9 L$ q1 g# S- n# r - )# P& o5 z8 Z# D1 U6 ]
- ;;
1 V) P Z0 Z9 O1 d - ;; Rows and columns for block insertions) Z2 y/ P- \' R6 _# {8 E q
- ;;6 f/ X8 N& w6 S3 X+ y9 Q- {
- (defun set_tile_rc ()
' q- K9 f7 p! h7 X - (setq columns (cdr (assoc 70 elist)))
" Q# d( _7 l1 n - (set_tile "columns" (itoa columns ))
: v, m L \. d; S4 u- x8 g) W - (setq rows (cdr (assoc 71 elist))), H5 ^7 Q7 \9 Z8 f. x
- (set_tile "rows" (itoa rows))* o" L. w( E( J* J* e, C
- (setq col-sp (cdr (assoc 44 elist)))
/ p8 _- c0 I& r$ t$ ?, `$ I1 z - (set_tile "col_sp" (ai_rtos col-sp))( [- c% n, Z! l5 e
- (setq row-sp (cdr (assoc 45 elist)))
' c7 l4 P/ A$ j( v8 Q - (set_tile "row_sp" (ai_rtos row-sp))
, ~! h1 k1 }# ], f" g: H( H# d1 ? - (if (/= hasclip T)
: N5 h* u H. m1 r1 X - (mode_tile "xcliponoff" 1)1 _, R- [7 {$ K3 h: M& ~
- (set_tile "xcliponoff" (itoa xcliponoff))/ s# o% d+ a4 S5 Z! Z+ v
- )
! D: }1 U1 j/ f& E5 V - )- ?! G: z( E2 p
- ;;
, T- x8 a, G' [) ^, w% ^, t - ;; Invisible edges for 3DFACE5 h1 m x/ ] |( |; {
- ;; d# ?" G- B4 m* y/ N8 E2 H8 ~
- (defun set_tile_edges ()
$ F5 |4 s+ ]2 n* s( l2 x - (setq f-vis (cdr (assoc 70 elist))) ]. |. C' Z- ]* @+ N* e
- (if (= (logand f-vis 1) 1)% W( E- J: f; b4 w; ?8 E
- (set_tile "edge_1" (setq edge1 "0"))
, ^" D3 p1 r, N% m - (set_tile "edge_1" (setq edge1 "1"))3 D5 l1 x( z& K( x. u2 M
- ). J" m1 S6 v' L2 k8 M: I8 X
- (if (= (logand f-vis 2) 2)* ?1 D% c* O6 f: _* z
- (set_tile "edge_2" (setq edge2 "0")); E3 H! `& `" P1 J- Z
- (set_tile "edge_2" (setq edge2 "1"))/ B5 r5 M3 J5 n0 U% b* C
- )
" d/ n/ a% ^8 E& C# p& C; m - (if (= (logand f-vis 4) 4)
0 @3 G N8 S# ?9 Y! | - (set_tile "edge_3" (setq edge3 "0"))* m0 n5 }' z* W4 v: e# b1 {
- (set_tile "edge_3" (setq edge3 "1"))' w3 a U$ V9 H7 g6 B, _: R
- )
! y3 T% x) C, U: j- o+ V - (if (= (logand f-vis 8) 8)
+ ]$ S; d) l& _( [& f' O - (set_tile "edge_4" (setq edge4 "0"))
; n0 P9 o1 }, z5 J - (set_tile "edge_4" (setq edge4 "1"))) ^% \$ d% ]9 @" P& s/ G
- )
2 t$ A) d k d0 n: S - )
2 x# |9 ]: d" U/ {1 K8 R! P - ;;, U% }* q' s a6 X
- ;; XYZ Point values for polyline vertex
6 A" f' }& B$ T- g* e3 L% Q0 Z - ;;+ i s, T1 T+ J( J
- (defun set_tile_vpt (ptype)4 ]8 X9 \9 j) ~
- (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")" E h# c: }" [3 S
- (progn" U2 |& j9 [+ ^# l& e V# J
- ;; ctr is 1 based, vertices are zero based.
. f5 n. V& M# Y7 ^$ B, E - (setq vpt (cdr (getLwVert (- ctr 1))))
- h5 ?2 a* a. i - (set_tile "xtext" (rtos (setq x1 (car vpt)))); c |) ~0 o: V) s# P, S( [/ q) g
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))" f( p/ f. {8 u0 g. T% X
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
; R% j; j/ k9 g. J0 G - )# D* U8 h; ^& J
- (progn
2 i" v) M3 z7 }* r - (if (= ptype 0)( g" y! `5 x. j5 `. {# n2 u& ?( `
- (setq vpt (trans (cdr (assoc 10 vlist)) 0 1)); d" y5 G2 X. e2 S+ G5 w- \1 p0 I
- (setq vpt (trans (cdr (assoc 10 vlist)) ename 1))( G1 W# i) l8 r) `5 |
- )
8 g% G# @+ G2 _8 Q% v v" m
0 X9 s* }9 N* W* Y$ @4 K- (set_tile "xtext" (rtos (setq x1 (car vpt))))
% r$ ~+ E; _/ ?( W9 j p$ z - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
% w5 P8 R0 f* k - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))' v6 B P" M, V+ V3 n/ o
- )6 j4 h6 f0 L' C4 I) c% a! O
- )
. N- e9 f6 W9 r& j. I$ F& n7 |# k2 C
6 O1 H* _$ k. Y- )/ y9 n( T+ X8 I1 N3 i3 m
- ;; This is the equivalent to doing an entnext on the heavy weight2 N3 k4 v( A& s; N
- ;; polylines. The hard coded '4' below allow stepping over the
, _! `( A" ^1 a9 d. p" V0 W - ;; 40 41 and 42 group code information. The while loop finds the+ K: p' n5 g" f+ D% M2 u& W' b
- ;; first vertex which will be used as the starting assoc in the) i' d( B9 w0 ^* `( U! ~% s1 a
- ;; call to nth.
) X& k9 E) ]: E7 C6 u* V# Q# i6 e - ;;
* u4 K# E3 k& m- Q - (defun getLwVert (tmpctr / count tmp)5 g b+ \( l# |
- (setq count 0)
$ c) B" v# ?2 u h7 [% m3 S; m - (while (/= (car (nth count vlist)) 10)
! i0 V6 N6 q- n! s - (setq count (+ count 1))
% u/ e/ a) B; t& [0 p- K - )
5 E' c8 l0 j* D# N+ ? - ;; If the counter reaches the number of vertices,
6 T( n! x& x, G( s5 p7 d' @ - ;; reset ctr and tmpctr to zero again.
3 Y8 G# k: Q& M5 T! s) k7 c0 t - (if (= tmpctr (cdr (assoc 90 vlist)))
G, E) J+ m) C3 K+ z+ C( N: f& e - (progn1 H. L I3 Y" @. |. \
- (setq ctr 0)9 q9 }: d0 v# ^! p- f' I0 p
- (setq tmpctr 0)7 @! h A7 t8 B( `# |- P: H z
- )
& e3 C$ T. {1 |7 T3 u) r6 h0 u - )
0 A! h+ O4 C; z - (setq tmp (nth (+ count (* tmpctr 4)) vlist))
# R) S2 Q V; s% ` - (setq tmp (append tmp (list(cdr (assoc 38 vlist)))))
: }& {* S2 A7 z - (setq pt1 (trans (cdr tmp) (cdr (assoc -1 vlist)) 1))/ ]; g1 I! i# i9 B) q9 Q
- (setq tmp (cons 10 pt1))# Q" C' E |5 x- ]. R
- (setq tmp tmp)
* Y$ p8 x# w8 U - )- @! j' s7 ?% J3 C
- ;;
( u7 T' n9 T9 d+ W/ Y# v - ;; Set tiles for Spline properties. If the spline is rational then we0 F. z' W# t, y& R
- ;; need to display the weight values of the control points, so set. A w0 `; ?" q5 c
- ;; flag to 1.
5 S' I& n6 `# w3 L - ;; 1 = rational spline
% u2 f( X* b* Y: c- x - ;; 0 = non-rational spline
& ~2 p' N& i. T( z$ y/ x: _ - ;;% M" J" j- T0 D3 W) s4 y
- (defun set_tile_spline_props ()
# ^( Q( F/ y+ w+ ?0 T# ~ - (setq rational_spl_flag 0) ;; initialize rational spline flag
" ?" u4 U7 ?+ a - (set_tile "Degree" (itoa (cdr (assoc 71 elist))))
5 @, I5 J6 E; A2 k( Z8 E* ^ G) M8 R - (setq bit70 (cdr (assoc 70 elist)))& z# ` W) J' ] H# h8 `& S6 Q" q+ {
- (if (= (logand bit70 1) 1)+ G9 V U8 Y( G, R
- (set_tile "SpProp4" "Closed")
4 M* f2 m @" X - (set_tile "SpProp4" " ")( c6 u; |* |$ z* X# F- y
- )
1 d0 z0 F1 Q+ x. K" W0 v& x) a - (if (= (logand bit70 2) 2)
* A2 ~4 P! R, B; ^ - (set_tile "SpProp3" "Periodic")
; L1 l7 d" w8 A3 y- d7 ~2 y; j - (set_tile "SpProp3" "Non-Periodic")
+ y/ O7 R# D6 l2 E+ E# I- z; ~ - )9 p2 [6 x( {5 t; Z: J
- (if (= (logand bit70 4) 4)$ {- r V7 H. `" b% F: Q
- (progn
b9 E: V' G) ]7 N - (set_tile "SpProp2" "Rational")
$ L7 q& `" M& w8 d - (setq rational_spl_flag 1) ;; this is a rational spline/ | R l" w' | q: S; \* H
- )7 ?7 U1 b' M* @( `
- (set_tile "SpProp2" "Non-Rational")! j5 X1 K$ u+ `" S) X' y
- )9 V$ M$ Z/ P. r
- (if (= (logand bit70 8) 8); C0 K6 B" M! {
- (set_tile "SpProp1" "Planar")+ L% j# e6 @, z* T0 J
- (set_tile "SpProp1" "Non-Planar")
, ?5 z/ }. [( w$ C9 g - )3 g! f6 V- W$ _( B$ G( W
- (if (= (logand bit70 16) 16)
; ~4 M- G, v5 j/ C W; S$ t - (set_tile "SpProp5" "Linear")
# a# k/ q# A! I$ d( a5 j - (set_tile "SpProp5" " ")# w( f0 m0 T7 H9 r
- )3 I5 {1 N5 X R0 Z
- ), ?* n* c" h# w! i' g
- ;;( l; O# W( ]* V x% E( \( I
- ;; XYZ Point values for spline points/ ^: Z; K' u, q$ i% {7 F
- ;; Need to account for WCS/UCS) E3 M9 c6 |7 ?" T5 ^% ^- T& |
- ;; A; _) d* s- W$ Y2 K4 H. V9 A
- (defun set_tile_cntl_pt (). E2 g- O/ y1 T) l
- (setq cntl-pt (cdr (assoc 10 elist)))
: {: b# V1 V9 m9 O6 n - (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))
1 z$ |. ], i- X$ H x8 o1 w, q6 p - (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))1 [( y- J2 C) |/ W1 @, @( ]+ u
- (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))
, b a) Y& y, P% E% F' v2 S$ P - (if (= rational_spl_flag 1) ;; if rational spline
) q5 b' L+ d! o# W/ y/ k - (progn ;; show weight# i0 g. p' J9 R/ i, e w( `
- (setq weight (cdr (assoc 41 elist)))$ |8 o* r( y+ K5 Z
- (set_tile "weight" (rtos weight)), w! q0 A) ?. a( {0 W) G3 E
- ) ;; else$ k! g! w: R8 E: y# z
- (mode_tile "weight_text" 1) ;; disable weight field
B' \( H0 p, q a. c9 r. V0 H2 s - )
3 A2 r. p5 J7 p7 n/ m - )
/ R3 K: C v0 ^4 j8 `" t - ;;
L6 O g2 E5 z3 ~3 D% [ - ;; XYZ Point values for spline points! ^0 j" r; y* ` y5 H- [8 x9 j
- ;; Need to account for WCS/UCS( o3 i% N# B1 W+ o# Y% J3 A! }
- ;;
1 s5 |, H; T8 K% j - (defun set_tile_data_pt ()1 a/ h, u. |' n
- (if (not (assoc 11 elist))
) i; v$ E5 L0 O - (mode_tile "data_pts" 1)* f+ U: F6 g; G. r! q
- (progn
' G' q' | U9 D4 y - (setq data-pt (cdr (assoc 11 elist)))
2 N, ? h4 X- T# L - ;; display points with current precision.6 R8 }- S2 w2 Q
- (set_tile "dxtext" (rtos (setq x1 (car data-pt)))); H/ Q1 L3 ~6 C2 ~- [) f
- (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
! I7 b2 F; A9 \) d4 g+ E* J - (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))
~- U+ U% C) n6 F - )% v" A k) u; S! F
- )7 M+ b# d& g5 u) A- m1 F4 V3 P" k3 R
- )2 h' W: o, u- o4 _
- ;;7 S/ H6 ~) O8 }" r& ~
- ;; Fit curve, fit spline, or smooth spline surface setting
% ~* n& G) l F1 u- P6 Y - ;;
# Y( [) o2 x% J9 s; C9 k - (defun set_tile_fitsmooth ()' o% q3 T l5 c
- (cond% v, x* u3 t. w- O' ^2 B
- ((= (cdr (assoc 0 elist)) "LWPOLYLINE")
! t! p7 \5 }+ C& z1 \2 a1 z - (set_tile "none" "1")8 I! q, J. i3 p6 O
- )2 r0 h7 w: \' G+ Q, `( I: K
- ((= (logand bit70 4) 4)
& i% s3 q8 c/ G; m' X - (cond( q+ z- ]# u: J% T0 m' y
- ((= bit75 0)6 v( H6 {3 M( p( R5 }
- (set_tile "none" "1")
& g$ j& g* X/ g, k - (setq spltype 0)9 m D ^: o9 c# ~/ b( V7 s9 v
- )
% B0 C# a+ m- Y- @ - ((= bit75 5)2 h' a& |& ?9 t9 F6 m5 O
- (set_tile "quad" "1")
4 }# P! v B: `" `9 W3 G - (setq spltype 5). ?5 f6 D# }2 P
- )
- L, @, m% z- f - ((= bit75 6)) l4 p$ ~1 @' V' \$ B1 u! R
- (set_tile "cubic" "1")
6 h! @& K8 f6 _) Q - (setq spltype 6)
3 t- s3 Y L1 l- d: w9 M ^! y - )) W% @* _) s$ n+ }1 h3 L. _
- ((= bit75 8)2 Y) |( m0 S1 Y" |3 i) C" V
- (set_tile "bezier" "1")' L# O2 [) {) U4 x# N
- (setq spltype 8) a: C# ?) u. b/ t5 v/ I/ \
- )
5 J, D1 x& P1 w# b' [' E - )+ s* Q3 K- A+ H" k
- )
* n; b4 [; }% a3 U - ((= (logand bit70 2) 2)7 b" v3 U( ^) _, F" f2 Z8 k* @
- (set_tile "fit" "1")& t* u8 t, |( C Q2 b
- (setq spltype 1)
9 ` u9 r- J, K2 p2 l9 a; k% k7 j @ - )
% E8 c6 m9 H: m* v3 Z) f# o - (T (set_tile "none" "1"))
' @1 F, E4 y( T8 J) w* W - )( w$ }& K A( G0 i6 G7 o+ C
- )
- n* [# I% z- f - ;;4 Z) H" B3 o. S' \- |5 M( U8 K
- ;; Closed or Open mesh and polyline setting
% o0 c8 B" p% e- g+ C2 w - ;;
. J/ w* S5 u: l! n! O1 u - (defun set_tile_closed ()
3 h. A+ S2 s+ g+ J9 g/ c - (if (= pltype "3D mesh")( q: l5 q9 K# f/ q$ g( Y) }
- (progn
- R+ u5 s$ I4 U7 ?$ i - (if (= (logand bit70 32) 32)
, P1 Y$ ^& k7 n$ b$ {/ { - (set_tile "closedn" (setq closedn "1"))
~6 P( l Z( A$ ~! S3 m* d9 f2 G - (set_tile "closedn" (setq closedn "0"))
* T4 G9 C& U9 n) W& a9 u - ) \, T/ ?. R1 V9 D1 G1 @) [" O% ~
- (if (= (logand bit70 1) 1)
2 Y) d% M3 k- g' E - (set_tile "closedm" (setq closed "1"))# E) q8 }: v# o+ Z! }7 ~
- (set_tile "closedm" (setq closed "0"))
: ]% e4 L: O% u; [ N- `7 N - )
: F& D! I2 l# @, C) B2 R5 \ - (setq old-closedm closedm old-closedn closedn) A8 |; } D6 h+ p
- )2 j" n C( ~3 J& }5 }
- )
5 ~0 V2 b7 ^0 C1 A4 \) t - (if (or (= pltype "2D polyline")+ m! z' D& b. r+ Z# H0 |! t# e# ?( Z
- (= pltype "3D polyline"): H+ v9 x8 ~* _& e6 P+ D; t
- )" O x7 n# A9 K3 G7 H7 v/ |( ~+ n- O
- (progn7 u' ]( _. {& L$ P/ Q8 f$ O n
- (if (= (logand bit70 1) 1)
. P5 {1 T7 M2 n - (set_tile "closed" (setq closed "1"))1 _) R6 I& \- }5 U) E
- (set_tile "closed" (setq closed "0"))
A7 u# X0 n( y - )
7 m, S) Q9 k7 Y5 V- u - (setq old-closed closed)
7 J( ]( w6 u0 I4 n$ w0 ~ - )! S, w, P3 O9 |4 L7 h* g H! b7 c
- )
" d% M! c% p( G8 Z% a+ I - )5 O% v8 `5 T+ m( U( e; r
- ;; Set common action tiles/ N" {7 ~' ~6 O) {, W2 ]1 @
- ;;' d* f) Q8 ^* ^2 H/ z
- ;; Defines action to be taken when pressing various widgets. It is called1 c5 |1 I8 L# c. x3 A
- ;; for every object dialogue. Not all widgets exist for each object dialogue,
# b, `3 M- O. w. l' t3 z - ;; but defining an action for a non-existent widget does no harm.6 i8 I' u1 x, N0 I
- (defun set_action_tiles ()8 ^7 t$ d* o, y& s* l+ j
- (action_tile "cancel" "(dismiss_dialog 0)")
3 h8 u* y, A( n6 d i' @ - (action_tile "accept" "(dismiss_dialog 1)")
$ u. k2 C+ ~$ D0 q - (action_tile "help" "(help \"\" help_entry)")
5 }- Y6 \1 p6 @6 |1 w7 d* u - (action_tile "b_color" "(getcolor)")
; p/ m$ A+ A/ B ^9 m1 n - (action_tile "show_image" "(getcolor)"), A* z% S- T% h1 ~( u. ]
- (action_tile "b_name" "(setq elayer (getlayer))")1 @2 m3 h- i9 ^3 f
- (action_tile "b_line" "(setq eltype (getltype))")* a, `1 ]) e) w/ `: X
- (action_tile "eb_thickness" "(getthickness $value)")8 B9 y8 Y6 F3 `" t4 s6 J
- (action_tile "eb_ltscale" "(getltscale $value)")
+ c+ E# v9 U0 B. c7 Y0 A6 O2 K
4 u* s o h7 O) Z. E8 w- (action_tile "pick_1" "(dismiss_dialog 3)")
# ?- g8 e0 v: a1 n - (action_tile "pick_2" "(dismiss_dialog 4)")
4 b5 Y+ a$ }* o7 a$ S5 L; P - (action_tile "pick_3" "(dismiss_dialog 5)")
. U" |1 H7 K( }& n+ r3 o7 G - (action_tile "pick_4" "(dismiss_dialog 6)")
. M$ ^4 c4 u& |% |; V - (action_tile "x1_pt" "(ver_x1 $value)")
% F3 @# w" U0 E1 z! t - (action_tile "y1_pt" "(ver_y1 $value)")
) l- a2 E- Z& _- p/ J - (action_tile "z1_pt" "(ver_z1 $value)")
{# q, s* W p8 T i - (action_tile "x2_pt" "(ver_x2 $value)")! v( g. l8 f! v. w4 W2 S; q+ d
- (action_tile "y2_pt" "(ver_y2 $value)")$ }8 s" J/ {$ i5 ~3 _/ u: e
- (action_tile "z2_pt" "(ver_z2 $value)")
! j e: J! k' K - (action_tile "x3_pt" "(ver_x3 $value)")! z0 G! M& l! @$ R; f9 ^
- (action_tile "y3_pt" "(ver_y3 $value)")
5 R. a4 v2 C/ \ - (action_tile "z3_pt" "(ver_z3 $value)")
8 O. |9 z2 J1 H- {! T. I1 o - (action_tile "x4_pt" "(ver_x4 $value)"). U7 ~( Z5 H+ t* V+ _: G# Z3 b
- (action_tile "y4_pt" "(ver_y4 $value)")
" ^) k* p* s2 H8 o - (action_tile "z4_pt" "(ver_4 $value)")- _ r0 [: B3 V; D1 }
- " P4 y2 K! _2 M. _7 w! ?: z! \1 j
- ;; Action tiles for Xline & Ray
: E9 ~1 _ u4 N: n! `4 |) Z - (action_tile "xline_x1" "(ver_xline_x1 $value)")& o' R6 s/ j& f
- (action_tile "xline_y1" "(ver_xline_y1 $value)")' F2 Y# r6 y% H6 ]( I
- (action_tile "xline_z1" "(ver_xline_z1 $value)")
5 w ]: Q) a' h& ^7 S$ f# D, p+ r9 P - (action_tile "xline_x2" "(ver_xline_x2 $value)")+ }; S" v9 Z( `% W8 s
- (action_tile "xline_y2" "(ver_xline_y2 $value)")$ P6 t- m$ @; X; Q) K/ j
- (action_tile "xline_z2" "(ver_xline_z2 $value)")
3 o! M8 \; v) ~6 H" [ - " E) n, _) x8 |; b& q# |% Y [
- (action_tile "edge_1" "(setq edge1 $value)")# c( A* {4 M: o1 k4 C, p
- (action_tile "edge_2" "(setq edge2 $value)")
; W- D" z: B R# Y0 D! Y q - (action_tile "edge_3" "(setq edge3 $value)")* Z# L5 E& {4 Q; H- _$ I! F4 l
- (action_tile "edge_4" "(setq edge4 $value)")1 b! M* U( }4 y- H# r6 n7 @3 a
- : E5 v! k( K+ M0 u/ H$ v" c
- (action_tile "radius" "(ver_rad $value)")
6 T& x' o: f1 V$ i" X% b: m1 T - (action_tile "st_ang" "(ver_ang1 $value)")
; d9 x/ U7 j$ l - (action_tile "end_ang" "(ver_ang2 $value)")
8 t8 B: H1 L. q6 k - (action_tile "end_eang" "(ver_eang $value)")
4 y$ {8 }' x* F2 ], [% |; y) W, z - (action_tile "minrad" "(ver_minrad $value)")8 C: E; h0 H8 N, h
- (action_tile "majrad" "(ver_majrad $value)")
+ S7 { M- @5 j
9 i* I0 e2 W3 R- (action_tile "xscale" "(ver_xscl $value)")
/ M+ R+ b/ v2 b/ o( m# I4 J1 s; a _ - (action_tile "yscale" "(ver_yscl $value)")" C( e/ o# D* V H9 j/ k1 o" q9 ^
- (action_tile "zscale" "(ver_zscl $value)")
$ {) k+ T0 p- K5 o0 y - (action_tile "rot" "(ver_rot $value)")
* K( l& z) M( ^) k2 J) M - (action_tile "columns" "(ver_col $value)")
" b6 G) y, [" b) u - (action_tile "rows" "(ver_row $value)")6 ^$ O! @; r* T5 c9 c, @7 v+ j8 F
- (action_tile "col_sp" "(ver_colsp $value)"); |; a1 l: L$ x0 Y/ Z0 N" K8 |' D, j/ }
- (action_tile "row_sp" "(ver_rowsp $value)")
9 k. m$ A2 Q8 j. L6 S - ! l3 W9 Q/ c% `0 N5 M! |
- (action_tile "hght" "(ver_hght $value)")
9 P. k/ R* Q5 i- b - (action_tile "wid" "(ver_wid $value)")# r( d. r1 {1 y, X' M: c9 }2 y
- (action_tile "obl" "(ver_obl $value)"): D g \0 a! x$ y4 H
- (action_tile "style" "(style_act $value)")7 O9 q( [& g; G- Q/ a
- . a1 f/ x+ @: }- V1 W& O
- (action_tile "t_string" "(ddgettext)")
u& i5 E, |# c! ?/ L - (action_tile "tag" "(ver_tag)")
" B- q; m+ j) W, b7 d& a8 [ - (action_tile "prompt" "(ddgetprompt)")% Q# [; @! q; w; e( m4 Z; L
- (action_tile "bkwd" "(setq bkwd (atoi $value))")
9 c! }3 \7 c, ]" }3 O/ g - (action_tile "upsd" "(setq upsd (atoi $value))")# x [0 r+ ~3 L( E
- (action_tile "inv" "(setq inv (atoi $value))")
! `+ M7 j. a, e. o/ v1 l9 e - (action_tile "con" "(setq con (atoi $value))") w. G1 P, F; o) L( b4 V
- (action_tile "ver" "(setq vfy (atoi $value))")1 ~2 |& t5 P8 v( u# ~$ f; s
- (action_tile "pre" "(setq pre (atoi $value))")
9 C; `! N/ ~7 B* \' _& z/ P9 w - (action_tile "popup_just" "(jlist_act $value)")
7 r& b" L2 g- [
) s+ S( Q& p8 i" t, T# H- (action_tile "closed" "(setq closed $value)")
% |; P3 H/ S2 A% K% I. T# [ - (action_tile "ltgen" "(setq ltgen $value)")
6 V I* K6 G: A ~5 K - (action_tile "closedm" "(setq closedm $value)")! l+ g+ A! l+ U# M8 V+ I+ x1 a9 B
- (action_tile "closedn" "(setq closedn $value)")( J4 {4 n! V: Q
- (action_tile "next_v" "(next_vertex)")0 Y0 r$ [# t( q, _* @
- (action_tile "xcliponoff" "(setq xcliponoff $value)")7 Q/ G' }5 ~5 W. p: e- B: N
- : }) [7 b' K* |* Q" c% y
- (action_tile "next_cntlpt" "(next_cntl_pt)")
& Q# C) [2 A# e) P& T- x - (action_tile "next_datapt" "(next_data_pt)")
8 F9 y3 ?7 d- l a! i - + d1 I4 @! Y$ n. C7 i4 f
- (action_tile "none" "(if (radio_gaga \"none\")(set_uv 0))")
& [4 D* o1 j0 O. h. U) n, l - (action_tile "fit" "(if (radio_gaga \"fit\")(set_uv 1))")
& o9 u! C- `! I8 t4 N2 z1 ^ - (action_tile "quad" "(if (radio_gaga \"quad\")(set_uv 5))")" ~0 L# d8 D: k
- (action_tile "cubic" "(if (radio_gaga \"cubic\")(set_uv 6))")
0 ?) l: R; \/ T: v$ k! k3 F - (action_tile "bezier" "(if (radio_gaga \"bezier\")(set_uv 8))")( d* L8 v# s* B, L% C
" W% |, C. \. U+ B& _; N# j- (action_tile "u" "(ver_u $value)")
) V2 \- M8 Z' f, Z3 H8 I - (action_tile "v" "(ver_v $value)")
( L' l4 K7 e' H - )# h; G8 E: d; v2 {% Z
- 0 {" ~7 c$ @. @% a! e
- (defun ddgettext()
" U3 k' [% N" v/ P% W: L - (setq text (get_tile "t_string"))
0 k' g5 N7 H% h" m. \/ R - )& s+ o+ L) g2 ^" w
- 2 x7 t9 u3 x' M; Q, O6 t
- (defun ddgetprompt()
0 S; x, {0 O$ Y8 |6 X: X8 f! U7 ? - (setq atprompt (get_tile "prompt"))' E, @$ o' w4 U5 n3 ^
- )
; j5 |2 ^/ s! y
6 ~ M& B i7 N$ A+ t' S8 k- ;; As OW doesn't support disabling of individual radio buttons within
4 A6 t; B- A$ W& V - ;; clusters, a check must be performed as to the legitimacy of the7 m C3 i; Z# B/ b
- ;; button pushed and reset if necessary.4 W4 q! w( o; l7 b: f
- (defun radio_gaga (pushed)' U9 Z* ]& r/ \: W. C
- (cond+ {* M8 D2 I" M
- ((and (= pltype "3D polyline")' Q* x7 E! u% v6 S) @
- (or (= pushed "fit")
6 u) j( Z, ^) C$ } - (= pushed "bezier")$ R5 ]* ~2 h2 X' q
- )9 x z0 p, S" Q# Q0 \( a2 b. ]
- )+ o+ j. F/ n. @- w0 ~& L
- (set_tile "none" "1")' Y4 h) z) o! `! ]2 Q
- nil6 `' S2 {$ N& k. O6 |1 \ e4 Y
- )
/ }9 g4 \6 x* f* f. O1 n6 d) | - ((and (= pltype "3D mesh"): r. l3 L# E4 f/ P4 E
- (= "fit" pushed)
) G' z2 W) ~, }. q# N) r# x/ O; G# i - )
9 ~; _; Q1 {9 Y+ | P. D - (set_tile "none" "1")4 R- B, y, F# t( N8 Q
- nil
9 F% F% a7 |! C* O o - )
5 j& H- a* V5 y) s - ((= pltype "Polyface mesh")4 w& e/ o( Z$ _6 F# S2 D2 A
- (set_tile "none" "1"). C1 e- b! F" Z
- nil) Q# k" | N* l4 l% f# y( V
- )
+ [- x8 j' N8 k4 z5 x: y' P* I - ((and (= pltype "2D polyline")
; N9 X$ D. R7 ]' F - (= "bezier" pushed)
- u: K4 M! q0 S! } - )
9 K9 H: a. Z' Y+ X( [ - (set_tile "none" "1")- f5 }" k# T' ]! S( c
- nil
$ p/ p; n% r$ I! e+ Y - )
% @, }4 V' \! } - (T)7 \. v/ S# v8 H8 O1 O( H
- )
+ L/ a' n9 d2 P) L. j - )
3 ~! H! V% i D ?+ o2 K - ;;
- v _: h0 G# D8 l4 v* x, Z5 R - (defun set_uv (type_n)
3 V) |6 X2 D* j6 S* W0 G$ c/ f - (setq spltype type_n)
/ B0 | P" Y( Q$ W j+ | - (if (= pltype "3D mesh")
2 l3 P1 g2 B1 ^ - (if (= spltype 0)
3 T$ Z, D! x) m' j$ O - (progn+ _( \9 b7 M+ W4 p7 S9 v7 o6 F
- (set_tile "u" (itoa (setq u 0)))! m, y0 O' h- O* N" E3 o" Z- v* k- m
- (set_tile "v" (itoa (setq v 0)))
2 }5 I. J5 b6 ~+ _ - )' b F; x" p% T H: b
- (progn0 h" X6 n$ f4 i
- (if (= u 0)3 {8 K( {4 ?% Z7 D! W; ~
- (set_tile "u" (itoa (setq u (getvar "surfu"))))
; C2 t% A" \5 c! v- y4 N" N - )
9 G8 M" h# g$ p, w4 L - (if (= v 0)
3 ^! h0 G5 L5 P: c - (set_tile "v" (itoa (setq v (getvar "surfv"))))% X; `- o5 F9 {' B5 ` _
- )
% m; _3 y s T% n A8 p, L - ), Q' I* n! [7 ~0 K
- )1 s/ Y" P1 b0 i* m9 X- i& i2 G
- )" a& z9 ?1 w. y6 i
- ): l; l) W8 {2 y8 h: t1 O2 Q
- . E" J% ^& @! ^0 i" c3 ~
- * u8 J5 u* v' ^( B1 H( p3 K% K
- ;;) |" G) n$ X, i; H4 K
- ;; Verification functions
; {9 s/ H' n) ^0 C, E( r/ [ - ;;# Q7 w* x* P: T5 Z# @% C
- ;; Verify distance function. This takes a new X, Y, or Z coordinate or
( C* D; @/ C4 W# @2 p& D: L+ g - ;; distance value, the tile name, and the previous value as arguments. c, q/ F* T/ j" o1 X
- ;; If the distance is valid, it returns the distance and resets the tile.
9 R: R4 Z" ^) \$ A& s - ;; Otherwise, it returns the previous value, sets the error tile and keeps
) i2 p$ @: P$ D1 D6 ~) x - ;; focus on the tile. Shifting focus to the tile with invalid value can0 }- |5 M7 B- V9 F
- ;; trigger a callback from another tile whose value is valid. In order
. s0 [/ n* P7 ^3 \* h1 e - ;; to keep the error message from being cleared by this secondary callback,# T1 M9 I% ]+ ~! z/ z; `$ p
- ;; the variable errchk is set and checked. The last-tile variable is set
$ J" V! l% C1 k- D - ;; and checked to ensure the error message is properly cleared when the" z8 x) y8 D# {7 x
- ;; user corrects the value and hits return.
1 v/ v1 ]" r' f& w. ^* J8 o - ;;
0 X5 f ~7 W! E7 U! O5 Z - (defun verify_d (tile value old-value / coord valid errmsg)
2 y* o8 s' e# L - (setq valid nil errmsg "Invalid input value.")
' m d' F3 H6 D! m - (if (setq coord (distof value)): j, Y% q, r3 {' [( h
- (progn: F- @3 h! w# c9 D
- (cond
! t/ \( ? O u3 A" u. D1 Y - ((or (= tile "radius")
7 v: B& S6 E% P: y' P/ D1 M1 D - (= tile "hght")" T3 R4 y2 j+ |% h. J% \4 ]. n% H. M
- (= tile "wid")
& K7 b( a6 J2 p - (= tile "majrad") V; N. P( K+ R6 y- r) C' Y0 E
- (= tile "minrad")
- R8 v% f8 g: d: e9 c! t - (= tile "eb_ltscale")
0 M& F( ~# c6 x0 H/ N - )
- m0 q' V: H! J/ h+ } - (if (> coord 0): Q' t5 v* E( h4 [
- (setq valid T)
# K7 ^% S0 k, ~- d - (setq errmsg "Value must be positive and nonzero.")
3 D; M7 l M; T% e - )* p( B0 m4 E* b9 n: O
- )) T. J. g* ~" C& L0 ~ t1 k
- ((or (= tile "xscale")
, u: ]3 i" A" R2 @9 c+ p: V( b5 g - (= tile "yscale"). ~9 t! \( [- R, y& r6 c) x! C: M
- (= tile "zscale")( b+ O2 l' H9 n* j: l% [/ n
- )
2 B+ ^% |# a3 { - (if (/= coord 0)2 }' g: U z: x1 p. `1 H0 ? H2 X5 ]
- (setq valid T)
5 N. W. G9 ]- y. W - (setq errmsg "Value must be nonzero.")
: A$ p1 U" c3 K1 }& D& } - ) h% T) w, j: M: D( p7 O
- ) H7 n, A; \8 d5 {
- (T (setq valid T))$ D) m5 A6 Z9 j1 P7 z, a
- )
3 @$ Y$ T; Q8 g+ F - )) a( I1 s( r' E3 ^# I3 w" K6 R) z
- (setq valid nil)
1 Z& D* Z, S3 l/ i6 U - )
( z1 h3 W1 m' Q% @) J! j0 g - (if valid' W' i) |3 J' l" g# H
- (progn
" |+ {" H8 U- ?6 \! f* O - (if (or (= errchk 0) (= tile last-tile))
6 ~! h4 r) A$ [1 |+ d) t# b1 ]6 j - (set_tile "error" "")* x' B& v0 ?* V# Y$ C8 F. Z! Q" K
- )
" s8 ?7 n! @7 P% E Q% u6 M. k - (set_tile tile (ai_rtos coord))3 i5 A" G1 ^1 K, N
- (setq errchk 0)% m/ P$ g7 Q- x) T
- (setq last-tile tile)
* ~! d% I5 N0 m! ^: Z - coord
2 A; E$ l+ q+ L' T7 V - )
: Y; e- s' m1 U+ ?/ p - (progn- S( w& v2 u# W: M* Z8 I
- (mode_tile tile 2) ; Move focus to offending field! R2 I4 Q3 ]8 j4 R& @
- (mode_tile tile 3) ; Select offending text! |# y: G7 ?2 b
- (set_tile "error" errmsg)
& w) |$ T# l: E" N9 y - (setq errchk 1)
$ d. D6 H( d$ L - (setq last-tile tile) z/ T/ ?4 H0 @; a# I& Y
- old-value
! P# l8 G8 B' Z/ {- d o& E - )
~! ]9 B, t; J2 C ?' l - )
7 R: N3 t: i+ _' O - )
: ], ^4 \/ e8 d, E q0 n ] - ;; Function for Xline coord edit box checking.
- Q& E) O' c1 @) [' \ - (defun verify_xline (tile value old-value / coord valid errmsg)$ Z: h# \6 b& D+ y4 F( H* m) o
- (setq valid nil errmsg "Invalid input value.")
. }) a% E" R/ U: u - (if (setq coord (distof value))
( D1 h" k2 p5 n. W" D" z# f5 d - (setq valid T)0 B, V/ t- J; p% U* x4 M$ U
- (setq valid nil)+ _9 _9 x5 q7 a" X0 M% I# n8 y4 P% k
- )( W( N# V% E7 j/ Q' S- e, h
- (if (and coord; F s& y; F k% ^* t& e) G
- (and (= (atof (get_tile "xline_x1")) (atof (get_tile "xline_x2")) )
9 v$ T+ x ?4 V' W+ P* h; ^ - (= (atof (get_tile "xline_y1")) (atof (get_tile "xline_y2")) )
; d, o# _1 U/ w - (= (atof (get_tile "xline_z1")) (atof (get_tile "xline_z2")) )
& L- p! }3 m" \: T" S3 c; @ - ), q, W- y0 Z% ^# k6 a+ o$ x* Z3 G
- )4 R3 X3 \* ]0 `" J1 Y
- (progn
) U1 t1 [" z; B i. W; o - (setq errmsg3 `* r- ]5 O( r5 y; |- g/ U
- "The Root point and the Second point cannot be equal.")) t( I, U" u f8 w B9 _
- (setq valid nil)
1 ]( N1 ?" C6 {" v/ T' Q/ V% t0 W% c - )/ o6 B# B1 |4 N4 Y+ m. b; {/ A1 y% |
- )
7 G+ C6 }- N' ]/ |3 A! b1 N - (if valid4 |- x3 K$ F5 t0 Y0 Y% d
- (progn
: }% _/ {3 i* W7 @ - (if (or (= errchk 0) (= tile last-tile))) C/ R' \0 }- h$ ^% D
- (set_tile "error" "")& {4 b6 T* e$ i: X7 K3 P2 D, G
- ) L. z" v( [4 ~0 X! P
- (set_tile tile (ai_rtos coord))
- i4 m8 O5 E. A6 W, G$ J* ~1 Z - (setq errchk 0)+ g% Z) l2 _/ Y, _( F7 M/ p
- (setq last-tile tile)
, x) v# K. z+ Q - coord
0 L4 t9 j# ^3 l6 ^ - )
. j" n; X! [8 U, b1 P( e% G/ } - (progn& ^& N3 g6 n9 l9 _ m% T5 c
- (mode_tile tile 2) ; Move focus to offending field
$ Z k# W" e4 u$ Q, p+ n - (mode_tile tile 3) ; Select offending text* f5 u# h; ?/ v) Z* `& w% Y$ P6 O* C
- (set_tile "error" errmsg). A, D) X } O) Q8 X" Y
- (setq errchk 1)! T0 }4 N$ j; m1 ?: x2 p% v
- (setq last-tile tile)/ ~' R& }( u5 \' [% s
- old-value
% B7 y( ?5 H l - ); y. }; P& C5 i, \) {
- )
9 }5 L- | y# _, Q - )$ J9 ?) J; z: z) Z" @, H
- , @5 r0 K7 a8 P( ^6 D
- ;;
* l' X1 J' z9 ? - ;; Verify angle function. This takes an angle and a tile name as arguments.( }, e1 z; e& b
- ;; If the angle is valid, it returns the angle and resets the tile.# t4 ?; m" U. e6 Q+ F
- ;; Otherwise, it sets the error tile and keeps focus on the tile.
6 u5 [8 j, U+ W9 ?9 K4 b8 I: ^ - ;;
3 C2 \" k7 t! t) f% B - (defun verify_a (tile value old-value / ang valid errmsg oblqmax)
4 i' ]% H1 u- K6 ?4 `6 a. m - (setq valid nil
q1 j& w v( M q5 A7 I - errmsg "Illegal input value."
- [1 O) c. a x0 u5 e - )
& D5 Q2 b* c* _ - (if (setq ang (angtof value)): Z! O" y" Z% Z( _2 M- `
- (cond
4 }. C. D- {( l, {1 {* B4 n4 a1 U - ((= tile "obl") ; Restrict obliquing angle; [# F( `- r5 Y' {" t
- (setq oblqmax (+ (* (/ PI 2.0) (/ 85.0 90.0)) 0.000001))
$ U3 j9 J+ A$ r/ D4 U5 b' | - (if (or (<= ang oblqmax)
' q9 [2 o) d; z8 t/ C$ V - (>= ang (- (* 2.0 PI) oblqmax))0 b( t$ j( m$ u- U4 p
- )! q! m4 [) P V- U7 C) F
- (setq valid T)5 c( R6 A4 S1 \/ Z. |& q
- (setq errmsg
; C6 f# [. G) q- p- ] - "Value must be between -85 and +85 degrees.")
9 n3 h* s0 O' ?- ~ I. N - ): |7 i2 d8 F% q- t
- )
/ S% C& l. a' X4 b& v7 }: E - (T (setq valid T)) ; Other angles not restricted% y9 T6 _3 T0 O8 ^0 R
- )
0 i1 s# M& t" N' S! Y9 n - (setq valid nil) ; Invalid angle input
1 P4 H; j0 ^: j( L6 z3 m - )
' o- S x" ?) C" v. @ - (if valid" y- j) M! Q: y5 G$ ]- w
- (progn- |3 b, @. n+ S* h1 d! p
- (if (or (= errchk 0) (= tile last-tile))
( e9 E* \2 y4 s; p5 N - (set_tile "error" "")
$ r, r4 C) D1 ] - )
8 a; ^+ g# I; ^/ f/ A2 I7 j9 y( q - (set_tile tile (ai_angtos ang)). b# |" w, B- e7 p$ `
- (setq errchk 0)
+ A8 m" g/ Q. j - (setq last-tile tile)8 b0 M+ a# D& _ \ b6 Y# u
- ang
6 |/ \4 I; n H, x5 K - )9 |5 A8 C2 p) [& m) s
- (progn
, j; k3 V7 B# N - (mode_tile tile 2) ; Move focus to offending field$ A4 G4 t3 l! _( D% P
- (mode_tile tile 3) ; Select offending text. r, ^7 ~" C' I
- (setq last-tile tile). [. f$ ~0 M3 f! |$ B& h% y& L
- (setq errchk 1)
, t1 b9 k' B: Y - (set_tile "error" errmsg)
& C" G+ \& W# [7 u - old-value
8 I0 ~( s( A1 v - )
( b6 P) W( n: {5 F% v# h% d - )
& ]7 J0 ~ w1 r7 M4 |6 g: N - )/ B) D1 b" Y% @' q& n: ^
- ;;
* G" G9 a( k, t5 l: M# x5 @) D - ;; Verify angle function. This takes an angle and a tile name as arguments., B0 @* u7 r; L& H; t* [
- ;; If the angle is valid, it returns the angle and resets the tile.
% }+ s/ X# q }: S+ y - ;; Otherwise, it sets the error tile and keeps focus on the tile.
H) b8 D, J7 @% T& @& i, h - ;; This function is specifically for the end angle of the ellipse object. If
' V3 k, q( S( w9 u; s - ;; the end angle resolves to zero then we want to display it as 360.
' G0 t8 X" S. ]9 R B, o/ Q/ a# { - ;;
% h$ b8 d" w. e( U4 m# y( E6 _. L - (defun verify_ae (tile value old-value / ang tempend)
4 M% p( @( I- }. s3 H( j9 n - (if (setq ang (angtof value))- d0 M) \: ^+ E" U* `6 n
- (progn+ e( U7 W7 R1 B9 Y W1 c3 }
- (if (or (= errchk 0) (= tile last-tile))2 H* J( `/ k! E
- (set_tile "error" "")& a3 k9 v3 G/ S# a- p1 [7 ~6 p
- )7 D6 l7 r8 B7 u2 M4 z
- (setq tempend (ai_angtos ang))1 K4 o8 V, o9 ]" p6 j' N, p( r
- (if (= tempend "0")
2 y9 @+ O ?0 y4 r" q+ u f - (set_tile tile "360")8 H' I T8 @. n
- (set_tile tile tempend)
: b4 P# b3 |8 i B/ Z( x" V - )
8 v3 i0 O: v/ W6 O2 F - (setq errchk 0)! E) W! D$ Z! ^$ q# ~7 y
- (setq last-tile tile) O9 R1 S' a( y- I" F
- ang) l. m8 o) s- Q1 K' u9 @( p
- )
/ ]4 I2 ]! \( C- l4 Z# ^0 |+ k$ ~5 S - (progn
8 Z; F+ A% m; B, ^ @ - (mode_tile tile 2) ; Move focus to offending field! r* l7 P& m h \: s
- (mode_tile tile 3) ; Select offending text' ~: B: b" s5 T* K) z0 o/ t. q
- (setq last-tile tile)
7 T# n* h/ @2 K& \5 j9 M( B - (setq errchk 1)4 X) y4 u9 Q/ y4 }! A
- (set_tile "error" "Illegal input value.")
: U& [3 S0 L" g) K - old-value t) @: ^$ m9 Z( ?3 n- H6 \- g8 U7 M; E
- )
& t. d' p8 N1 U& W M5 X, U' K# U - )" X9 I. I% ~7 s. x' @- [& V
- )1 I- d& `( R% ^% {8 u1 I) v
- ;;
; v0 n6 I9 r! s- N- N r0 J - ;; Verify integer function. This takes an integer and a tile name as( X2 f) g( M$ t3 \) K8 M
- ;; arguments. If the integer is valid, it returns the integer and resets the; Q0 R; ], h( X6 t p# m' m; e
- ;; tile. Otherwise, it sets the error tile and keeps focus on the tile.. |; z( O( L9 ]# j6 j/ D! x
- ;;! b3 M( s) W; _/ C/ b
- (defun verify_i (tile value old-value / int valid errmsg)" i6 i6 f2 p, N0 Y" |& X7 p
- (setq valid nil)
" w- v0 G7 f' m0 t7 ^ - (setq errmsg "Value must be an integer.")
- O4 b- x, m. L+ W. M t - (setq int (atoi value)): m4 p6 o; l6 B
- (if (setq intchk (distof value))
5 X2 v$ y4 ?( K; e - (cond1 F0 E! Q2 l9 m/ h) n
- ((or (= tile "columns") (= tile "rows"))
6 ]& J& _" q0 ^8 J }, d& f v - (if (and (= int intchk)
, f( Z9 [* y! m. r/ o9 g9 U - (>= int 0)! }* f* i2 r% K( C3 Z
- (<= int 32767)8 G- I4 E. |% r% h: e# P
- )$ D# o% ^. g! Q# @/ y) S" ~/ l
- (setq valid T)# T2 D) [2 Q2 f. {% D t7 H4 Q) \
- (setq errmsg "Value must be an integer between 0 and 32767.")
4 B0 h, z! m; L( f( e - )9 ]/ {' T) ?( `
- )
) O6 `& s& x- O+ x# ~: J - ((and (or (= tile "u") (= tile "v")))
) F2 s- x4 g# E; o5 } - (if (and (= int intchk)
, G9 n. a2 ]$ ~6 M$ n - (>= int 0)
' L- F% o8 l6 W6 X4 q - (< int 201)$ e: X% d! Y2 _+ x4 w: O
- )1 e7 s* z7 k! W/ V0 x
- (setq valid T)
/ T, b+ q% I" Q$ T8 A2 f& A+ O( i, p - (setq errmsg "Value must be an integer between 0 and 200.")8 W; @9 v5 q0 Q3 }- i
- )# d& E a; b% z( d/ m/ k( ?
- )% J; P6 i% a% R( ]8 J/ X: I
- )
) R' x! ?% \* ~ - ), k; }9 f- \: J( u3 \
- (if valid
5 P- L6 b/ d% i2 G5 S - (progn. o% S+ ^/ J2 e+ R* ~# X0 ~1 p: B% U
- (if (or (= errchk 0) (= tile last-tile))
0 c: f& `0 e1 q* T I# T9 o V6 W - (set_tile "error" "")
6 d( ?/ B" L1 ` - )
0 j5 F+ x1 Y* M - (set_tile tile (itoa int)). F' d0 ?4 K7 i# X- R$ Q0 M
- (setq errchk 0), C0 z* C! K3 Y. a _
- (setq last-tile tile)+ `/ V( ?. {: _, c# V. \
- int
3 S+ J; x, R5 O |* a p- {8 l2 [' w$ k% z - )
. \4 T5 u8 t0 ~- g - (progn6 g4 I' [ l: @# `0 g
- (mode_tile tile 2) ; Move focus to offending field: X+ p* r% L$ _9 J9 C
- (mode_tile tile 3) ; Select offending text
+ D9 n# T9 ~, A+ w$ K - (set_tile "error" errmsg)0 M" C) H" o- O& m! }
- (setq errchk 1)" T" ^' {3 Z' X5 X3 w: D/ z" y5 ?" q
- (setq last-tile tile)
+ U. z! y$ s6 T8 I - old-value
2 p8 Q' ?' d% z - )
! K2 x6 K% v) v/ [( ]" V) j' ^ - )" r: p8 N+ S# y. R* l
- )$ e5 @) D; Q% ~# e! N- ]$ e' Z
- ;;3 b' Z0 u' z3 i: }2 Y
- ;; Functions that verify tile values for integers: Y% [; x }3 X0 j9 e
- ;;
" ?1 w& }0 W6 } - (defun ver_col (value)
7 Z% v7 @* |2 B. _* x% h - (setq columns (verify_i "columns" value columns))
' \. \0 ` X# K$ q% | - )
) |( ~& D a1 r1 A# R - (defun ver_row (value)
2 z6 ^2 v, T( v$ o - (setq rows (verify_i "rows" value rows))
9 h& A$ L$ ?8 l) p8 M5 H1 ]) ? - )$ S! s8 D! `. [/ G& o* G
- (defun ver_u (value)- H6 k; B j6 L/ N; V: L$ A
- (setq u (verify_i "u" value u))- O' W1 k& I8 |- q0 ~' J, W
- )& S! s& o: q7 l3 q
- (defun ver_v (value)
, X. ~8 a6 w$ q% A9 H" t/ D, j' T - (setq v (verify_i "v" value v))5 r/ s2 G% x; _! a$ H/ |
- )
' t7 r7 a# t7 u9 F& j - ;;) A1 z+ u" |! U/ _' b9 P$ i
- ;; Functions that verify tile values for reals# n* \: s" q7 }% k% m; M ]
- ;;
, y. F2 b0 j5 F2 M! T% y# O - (defun ver_x1 (value)
, y: r/ u. z4 R% R - (if (setq x1 (verify_d "x1_pt" value x1)) (calc))
/ i3 \: W" ^! R: G) r! K - ): {% R i) G* P7 i+ b% e
- (defun ver_y1 (value)
4 w* C2 {% ~ d) J - (if (setq y1 (verify_d "y1_pt" value y1)) (calc))/ b. L0 E6 T6 Z* \% I$ B
- )
% D" T! O* ~" ]5 h$ E" n3 S i3 ] - (defun ver_z1 (value)
( x: w8 u' i' @: V! w4 N% z - (if (setq z1 (verify_d "z1_pt" value z1)) (calc))4 m a6 q$ W9 y$ s' \. n) v* i
- )
( c% {8 k) L$ B$ A* d; z - (defun ver_x2 (value)
0 }6 e6 q+ p7 s( O7 f - (if (setq x2 (verify_d "x2_pt" value x2)) (calc))
- k1 e9 r$ c( J - )
2 P4 @" i; A, ? - (defun ver_y2 (value)
, b* H1 q6 T f - (if (setq y2 (verify_d "y2_pt" value y2)) (calc))1 F* {+ Y3 b7 i
- )3 z( `5 z+ C7 @
- (defun ver_z2 (value)& A4 K: m3 _7 v. G
- (if (setq z2 (verify_d "z2_pt" value z2)) (calc))3 e. F( U2 o( p, b
- )& O6 _/ x# j7 l/ _9 e s, E
- (defun ver_x3 (value)) p4 X& z4 v0 v0 L% B# R
- (setq x3 (verify_d "x3_pt" value x3))
4 F# C9 F# _) h. y1 E - )
( A/ Q+ D, C5 x6 v - (defun ver_y3 (value)2 N& a: b$ L+ s$ b1 P7 s$ R
- (setq y3 (verify_d "y3_pt" value y3))- ]3 d/ I0 X' ]7 c9 t0 ]0 d
- )9 P- P# A; I/ ?- L3 w3 M9 J
- (defun ver_z3 (value)) H3 K" r4 V3 I
- (setq z3 (verify_d "z3_pt" value z3))8 [' O5 X* m1 Y+ @
- )9 x [: l, W f7 b7 Z8 z% k/ n
- (defun ver_x4 (value)
. R- M2 _( {9 C7 e4 P: M - (setq x4 (verify_d "x4_pt" value x4))5 q" I. E- v" N3 t" e# t
- )
6 W2 K/ K3 \3 H& I. i3 B* G" v - (defun ver_y4 (value)/ d: E% ^9 d6 y1 Z; y! ~
- (setq y4 (verify_d "y4_pt" value y4))
1 Q! b) F# _5 {: [8 | - )
; l3 [5 q8 j r$ u. x1 x" E4 f& @ - (defun ver_4 (value)
+ ]% w6 A' G4 V$ |2 U. w) r - (setq z4 (verify_d "z4_pt" value z4))- l- ~& }9 m0 g( V$ v K
- )2 Q0 ~2 z% k+ ?) d# s9 H9 Q) e
- (defun ver_xscl (value)
; ]# j' d' r+ `# P. Q - (setq xscale (verify_d "xscale" value xscale))
( C- I: |8 |+ f" W - )
8 `9 |1 h" Z( R, }4 r- _4 P1 E+ t - (defun ver_yscl (value)& q6 O: z c P2 J/ \8 _
- (setq yscale (verify_d "yscale" value yscale))
4 T1 D8 p; \( k$ ` H - )5 m& i" S$ z$ y6 P+ |' ]
- (defun ver_zscl (value)# R# Q! |0 f+ p* Q/ `
- (setq zscale (verify_d "zscale" value zscale))& l8 V1 d: o0 y4 D' x
- )' Z0 E1 V5 C' U$ l' e# R
- (defun ver_colsp (value)
3 ^1 P, k. r* B( C- O; f9 B - (setq col-sp (verify_d "col_sp" value col-sp))
; \8 G+ o3 a( x# |" J# G% r# \ f) j - )9 _( g# ~) T* x" J; a9 `
- (defun ver_rowsp (value): m# C) F5 b/ A( r, |! m& q
- (setq row-sp (verify_d "row_sp" value row-sp))
* \2 q( h& O! F! D( l3 X - )7 x* N5 K, q$ H# n( b) _
- (defun xclip ()
1 _/ f6 f7 r( ~8 o* r! x - (setq xclipmode t)2 z1 m. @/ n- c
- (if (= xcliponoff "1")
' ^! X8 a6 v* S; D- N8 t _5 ] - (command "_.xclip" (cdr(assoc -1 elist)) "" "_on")
* M% |& c- H( U6 r E - (command "_.xclip" (cdr(assoc -1 elist)) "" "_off")4 K2 c' u2 S# Q g' E" k
- )
1 G/ {# n3 M: P( ^2 Z - )1 a, Z* C, g- L" w
- (defun ver_rad (value)
+ Z4 h" p& ?! C- J* \ | - (if (setq radius (verify_d "radius" value radius))
6 P* h! v% q& T: K& O; c2 ^ - (calc)
7 l- W! G5 _* U. D - )
. j( p0 w8 k8 O; |, v' v - )- ^! F' ~, U: X
- (defun ver_majrad (value)
8 h; R2 o) w _$ _3 O - (if (setq majrad (verify_d "majrad" value majrad))+ V: j, e1 H! I' X1 @3 l
- (ell_calc_newval "majrad")/ }0 A1 C' p$ E
- )
+ X3 ^2 j8 s. c' a5 q - )
. d/ s: E7 u0 P4 w8 @ - (defun ver_minrad (value)
& D) M7 y9 t r - (if (setq minrad (verify_d "minrad" value minrad))
6 O) z# _! ?3 V; F u/ ?* [ - (ell_calc_newval "minrad")
' m0 Y% W; D, h - )& W$ N5 J+ p' u* H% S
- )4 E: j3 M+ _, g( ?# r2 V Q
- (defun ver_hght (value)' _. l& \1 i! D$ e, O
- (setq hght (verify_d "hght" value hght))$ w. I6 }' }7 j
- )
) N* s7 @& Z& W% n* s* X* y - (defun ver_wid (value)
3 R% ~3 R3 t6 F% \" }% Q - (setq wid (verify_d "wid" value wid))
6 t" O' e r6 U2 N5 _: X, t - )
) f- `' C& [) w' B - (defun ver_xline_x1 (value / temp)
! b ?4 a+ \4 v- U! d* Y - (setq temp xline_x1)
5 q' w& `) m8 M - (setq xline_x1 (verify_xline "xline_x1" value xline_x1))0 {. m- G7 j& ?, e) O0 [
- (if (/= temp xline_x1)- o8 x7 p& d1 ]1 x. }* l$ |1 d
- (progn (modify_xline 0) (set_tile_dirv) )
' \9 Y" f5 M$ s. i/ Z6 b G3 R - )
5 m: S4 Z0 Q7 J9 C1 t - )
b2 e, F& \6 D, D& j: ` - (defun ver_xline_y1 (value / temp)
- d/ g& J! V: l; _0 o7 U4 k - (setq temp xline_y1)
0 }% a. I3 s$ A- p1 h, c0 O" C. ]" L - (setq xline_y1 (verify_xline "xline_y1" value xline_y1))3 t9 \% t1 L5 o+ W8 n
- (if (/= temp xline_y1)" t v: d Y V g% U; X$ z' c+ R
- (progn (modify_xline 0) (set_tile_dirv) )% v1 l2 v; I" C# p: K' x* g) N, a
- )
) Z" o; ]2 F) k. A5 r3 j1 f$ Y - )
$ a" K h ~3 ~( z - (defun ver_xline_z1 (value / temp)% [/ {* X. E/ o7 M6 E1 C/ c9 o
- (setq temp xline_z1)
/ }% U" {$ g# W - (setq xline_z1 (verify_xline "xline_z1" value xline_z1))
' M. y0 Q z7 u7 h2 _ - (if (/= temp xline_z1)
1 m5 \6 ?6 C0 q( m - (progn (modify_xline 0) (set_tile_dirv) )2 ?. W/ ~4 |' {. D C- @; l
- )
/ `2 {) C$ u1 [* y, u$ N/ e - )
7 X" m- `# w& B - (defun ver_xline_x2 (value / temp)& N) Y6 s" r; P x# s. ?
- (setq temp xline_x2)9 O, q1 J: M( w! E, G5 D% }
- (setq xline_x2 (verify_xline "xline_x2" value xline_x2))4 v$ J2 |: U, E+ a! ]1 A4 m
- (if (/= temp xline_x2)7 n) y! I" @( A* b
- (progn (modify_xline 0) (set_tile_dirv))
' k1 s6 k( ~; F - )
- @! z8 V E+ L3 d - )1 F3 ?8 d5 c2 d1 _/ x
- (defun ver_xline_y2 (value / temp)) ^8 L9 l: Z: G8 W/ t6 U. L/ y- {4 R
- (setq temp xline_y2)
* Y' e0 K8 j; p - (setq xline_y2 (verify_xline "xline_y2" value xline_y2))4 T* s+ }; U& t# Q
- (if (/= temp xline_y2)
* F6 H% f( ]4 m( U- O - (progn (modify_xline 0) (set_tile_dirv) )
2 H" x" b- M. Y9 q* c$ } - )
% |* s; E: g" f" f7 |- n - )
: u2 C9 G* k6 k! V" O* P( d - (defun ver_xline_z2 (value / temp)
9 V. x' d2 M w9 c) c1 A - (setq temp xline_z2)
4 w8 }8 {$ {8 ~. y3 M - (setq xline_z2 (verify_xline "xline_z2" value xline_z2))
2 t+ I, j6 H4 m; S - (if (/= temp xline_z2)( {; J: s& S0 Q# q {' T
- (progn (modify_xline 0) (set_tile_dirv) )1 C2 c0 n8 \: `" d
- )7 ?1 s5 t8 J' [* P/ l: T
- ). f# E# J, U; \$ H& h% ]. [* W
- ;;
5 G0 U" |& p6 S5 P' i* Q - ;; Functions that verify tile values for angles
4 j. B3 o" I `! p$ D% k- o$ w - ;;
( M9 z9 v5 S( M2 b! @' k - (defun ver_ang1 (value)
" b' E3 n$ y* r. r% L( ` - (if (setq st_ang (verify_a "st_ang" value st_ang))
4 P% Q' D; d; C0 G: z% [8 U- ^ - (calc)9 I* X! W7 Q5 T
- )
* { B4 E- L1 r# c6 E! W% w - )' H. a Z$ O, ]* b
- (defun ver_ang2 (value)
2 X7 c8 _ \# P9 r9 A - (if (setq end_ang (verify_a "end_ang" value end_ang))
6 f R# y( l! K: A) |' K% O - (calc)+ d4 E8 [' ^ D6 D
- ): `: f" z" k3 F; Y* P: M
- )
1 q, L4 F, s* L* s w2 i - ;;
" J7 O) U* H7 F0 ^: ^4 q$ G( B - ;; Verify tile value for ellipse end angle. Handled slightly( r$ ^+ U: }* B0 q
- ;; differently than the other angles.+ L+ _4 B, `, [9 \1 U
- ;;. r9 y5 K$ o0 o! c0 J! n9 w5 U
- (defun ver_eang (value)
1 k O9 x6 F1 Q8 n7 ?! X6 ~4 U - (setq end_eang (verify_ae "end_eang" value end_eang))) {6 b5 W+ x- C- r
- )
( T6 U+ c! d A& @ - (defun ver_rot (value)
0 V7 L% l& C) S% Y# d - (setq rot (verify_a "rot" value rot))
/ M3 M3 s- L( k9 X - )
. \6 n6 D5 D: e" O5 G) P9 F- {% Y- h - (defun ver_obl (value)% L0 \7 Q6 |/ H6 u+ u
- (setq obl (verify_a "obl" value obl))
0 Y8 k: K; X8 b! v3 b - )7 h2 }* B/ |( _! S" f" Z5 x
- ;;% y# f7 b) U9 {8 b( `; }
- ;; Function that verifies attribute tag field for null string,
1 Y P- P8 B- _9 c3 G" E9 W: P - ;; or a string that contains one or more spaces. Tile value" u4 L( o2 J4 r7 R0 {5 q
- ;; is also converted to upper-case as well.
) I; R5 e. ]9 J* l& G% \/ A7 C - ;;
9 \4 k' w7 g- ?, M - ;; \# t) D6 J9 {
- (defun ver_tag ( / tval)7 u( s: N- n4 Y; S, \
- (setq tagval (get_tile "tag"))
; u. d7 D4 a9 ?% P - (set_tile "error" "")
# F' S8 b6 u$ ]; \4 _ - (cond* [8 U! q( q ]8 ]& Q
- ( (or (eq "" (setq tval (strcase (ai_strtrim tagval))))7 ]' e S+ k4 W( I- t# O$ T
- (wcmatch tval "* *"))9 q2 w X$ G. r0 ~3 D2 e
- (set_tile "error" "Invalid attribute tag."). w# ~0 F+ Y! d
- (mode_tile "tag" 2)
, p6 F% q* M6 B1 W - (mode_tile "tag" 3))( m3 n3 `; r2 }' J$ N
- (t (set_tile "error" "")% R; V) J1 \' g( v6 L. {
- (set_tile "tag" tval); C3 z, c4 E- k% v
- (setq attag tval)))2 }5 h/ \: b- g5 }; j, F- q
- )
- i: F# G* E( i* y8 U" _ - ;;
3 L! {% E6 U: h6 X( r - ;; Calculation functions
+ Y, r9 N7 r: B4 H/ X; j X - ;;
* U5 N8 u; G) }9 @2 m - (defun calc ()
$ o/ x7 B$ X9 j8 j - (if (= etype "LINE") (line_calc))9 o v5 _' U5 U, u
- (if (= etype "ARC") (arc_calc))
6 o3 ]; J9 G# j, u# @% m - (if (= etype "CIRCLE") (cir_calc))
1 Z, d/ C* x; | - )
m' }) Z- E$ ~# ]& g$ }+ } \ - ;;6 B9 `2 L3 r4 x. o/ ?
- ;; Calculation functions for lines, arcs, and circles
/ \0 e' y7 H; I2 h - ;;# C: I" f' m% H
- (defun line_calc ()- V7 k9 k- C% h) R' l% X8 C
- (setq stpt (list x1 y1 z1))
7 A8 U5 ]6 G0 W! n+ _" P- T+ K - (setq endpt (list x2 y2 z2))2 Q: {/ ?0 a8 d9 ?1 B
- (set_tile "delta_x" (rtos (- x2 x1)))
. o' h$ T1 o" F! a3 z+ a. V+ T - (set_tile "delta_y" (rtos (- y2 y1)))
( R$ l+ D, `/ { - (set_tile "delta_z" (rtos (- z2 z1)))) N- W$ e: x$ ^9 t3 m$ m
- (set_tile "l_length" (rtos (distance stpt endpt)))3 Q; B* V6 K$ c% W' z( A
- (set_tile "l_angle" (angtos (angle stpt endpt)))1 O5 l" r; h( G1 I9 v" o ~. s) A
- )
, Q6 I l3 l7 ~4 B/ m - + u; c( o/ e" N7 `. ^
- (defun cir_calc ( / area units)
9 H2 s+ [ o, M7 Z - (setq radtest radius)3 ?' L3 i, T( Z2 b6 e
- (set_tile "Dia" (rtos (* 2 radius)))
# U1 {) ]/ ]5 A' Q - (set_tile "Circum" (rtos (* 2 pi radius)))
0 L: i& z4 K5 f5 [& | - (setq area (* pi (* radius radius)))& K/ D' M5 A) O% S/ g, F; V ^6 n
- (setq units (getvar "LUNITS"))( y* K8 t' g6 X6 s& h7 C) M
- (if (or (= units 3) (= units 4))
# k0 R. V2 y! Y3 a* k - (progn- c7 [3 M& ]1 a3 q% D! V! \% f8 i
- (setq area (/ area 144.0))0 j+ Z0 Z5 [! N3 e, u
- (set_tile "Area" (strcat (rtos area 2) " square ft"))
6 s. u7 T" E7 T! b; e* {2 Y - )
+ U% J* o8 S! n$ R2 }) W+ u' L - (set_tile "Area" (rtos area))
2 g3 m# [5 O$ o - )
/ [- u4 r. h$ X: ^ - )$ L9 C! s. m+ e
1 S0 G( s3 y$ V. J9 k9 N/ l- (defun arc_calc ()' f+ S- k7 ]: P2 b* ~
- (setq totang (- end_ang st_ang))
- `/ v- N3 ^, H8 @ - (while (< totang 0)% g4 h7 M7 I: l/ J* O
- (setq totang (+ totang (* 2 pi)))
6 R7 J6 V2 r: z' c* t4 M" B - )
( {( }$ Z1 ~' v) ~7 V& y - (while (> totang (* 2 pi))
" J# ?6 z& T& }7 c+ t: M( k - (setq totang (- totang (* 2 pi)))
5 w5 n7 d; G* J1 F$ h - )7 Q f* j7 e! z: ]( e. A. Y
- (set_tile "tot_angle" (angtos totang))
+ Y6 U, ~. [, l- P8 b1 V# w8 ^ - (setq arclen (* (* 2 pi radius) (/ totang (* 2 pi))))
" n5 z5 d% b5 S" U- N6 V4 I# E$ c - (set_tile "arclen" (rtos arclen))
: g, f. T: b7 y! H; z" T - )) O$ H. A- q0 W! y. V! b+ [$ H
- ;;
( `' l. H2 D3 q4 Y, w' v - ;; Calculate the major radius, minor radius, major axis direction.
. ~3 J* _$ c' \+ A. M, p' ~1 E - ;; Get radius ratio. Convert Start, end parameters to start and end
$ I, x W z9 Y" c" ~: K - ;; angles. Save Major Radius value in "old_majrad" in case the user
K+ K: t; }" i P - ;; chooses to input a new Major Radius value later. It's needed to/ Z7 b& N, F) N* F# f( V& c
- ;; calculate a new Major Axis Vector value.) R2 o0 M9 M+ }7 ^: B
- ;;0 K: ?5 a* j' q! o- ?( P" H! f# d
- (defun ell_calc ()
3 w) ]6 k/ `$ X; r - ;; Get major radius from the major axis vector.
# W7 M; U9 y* `6 C8 b8 h0 w - (setq majaxis (cdr (assoc 11 elist)))
% E" s5 D: i f+ ^! L - (setq xx (car majaxis)), Z/ O2 P7 r) K# f) V
- (setq yy (cadr majaxis))
$ B, d6 W% k$ Y* X8 W& k - (setq zz (caddr majaxis))
7 Z/ K( e% x" o& @ - (setq majrad (sqrt (+ (* xx xx) (* yy yy) (* zz zz) )))
! c' X- m# S* P: R" \4 O - (set_tile "majrad" (ai_rtos majrad))2 m+ \/ Q$ o$ t( @% S' x" k
- (setq old_majrad majrad)4 G4 r5 G/ H% b4 f
- ;; Get radius ratio% ^/ e( Y- P/ L/ d
- (setq rrat (cdr (assoc 40 elist)))
+ ]% v- W% q0 s( k$ f - (set_tile "rratio" (rtos rrat))
t* {6 B3 M, T - ;; Calculate minor radius5 Z f' ?3 ]$ r# y- ?( l+ e. O
- (setq minrad (* majrad rrat))
I& P9 M' M* v/ \8 b# v - (set_tile "minrad" (ai_rtos minrad))
! m3 U& m" h2 x, `% | - ;; display major axis vector" V% G! K' |* L( P$ {; k
- (set_tile "Majraddirx" (rtos xx))* X1 I/ ~& q H# o
- (set_tile "Majraddiry" (rtos yy))
- G1 s k+ m" I& I- ] - (set_tile "Majraddirz" (rtos zz))
1 q3 T6 d0 ^6 h
3 [% p G: w; X- ;; Convert start parm to start angle
& W e4 b5 P' C* } - (setq stparm (cdr (assoc 41 elist)))
) U+ Z1 s# c; ] - (setq vecx (cos stparm))/ C, g4 w8 Y0 z
- (setq vecy (sin stparm))
! ^) A {. ?1 d% k( \) q - (setq st_ang (atan (* rrat vecy) vecx))* r8 B* ], s. q S) N! {8 @" x' T: x
- (setq tempst_ang (ai_angtos st_ang))
, S4 e3 {- m/ g9 X, \* s - (set_tile "st_ang" tempst_ang)& f' {1 B: {. f% k
- ;; Convert end parm to end angle. If end angle evaluates to 0
) g' r2 g; C4 c2 _ - ;; degrees then display it as 360 degrees.# V7 s; t& {! {; _0 M
- (setq endparm (cdr (assoc 42 elist)))
* y+ w* V- Z* @: D5 ` - (setq evecx (cos endparm))& U; B, [0 z! G# M2 o
- (setq evecy (sin endparm))
+ B# H! L( E& a) U t% u9 M - (setq end_eang (atan (* rrat evecy) evecx))
8 f5 H. K. Y9 P% t* B - (setq tempend_eang (ai_angtos end_eang))
m; s K1 `$ g4 G& e - (if (= tempend_eang "0")
5 a* I+ x/ z0 F+ U& q - (set_tile "end_eang" "360")
8 K4 K. j9 v# K5 h# W - (set_tile "end_eang" tempend_eang)2 d- z% d0 t2 R7 u7 s! u2 p
- )
6 o& w2 D. O/ H# m3 @ - ;; Get area of the ellipse., R- L/ o, ^! Z$ b, x# f: H( B
- (ell_calc_area)
" h# q+ p- x* {- ` - )
* K- a' j" l5 ?0 y5 Z - ;; Calculate area of ellipse. If it is an arc then
3 H" I5 K& p) A- {' n+ {5 O - ;; grey out area display.
$ o {1 B. \- S4 p* U2 h - ;;! ^$ R- X+ y5 O
- (defun ell_calc_area ( / area units)
# M. C& U# ]' a& L' [; K% } - (if (and (= tempst_ang "0") (= tempend_eang "0"))
) V9 T2 ~! i" f" H$ g9 D1 ] - (progn2 b8 o9 u! g, q& N: M" i
- (setq area (* pi majrad minrad))
) o) k" W& y5 m' q - (setq units (getvar "LUNITS"))1 c$ h* o6 L+ C/ g3 ~: d
- (if (or (= units 3) (= units 4))
% u) ^5 y# z: d - (progn% z4 C2 \- E0 b( s. e
- (setq area (/ area 144.0))
, ]( k* C# P( w8 L - (set_tile "Area" (strcat (rtos area 2)" square ft"))& D7 H" {% m+ ? _0 I4 a+ s7 B
- )
2 s0 K2 k0 d. P5 R' `. Q K, o - (set_tile "Area" (rtos area))
# B6 B# z5 f* @% R8 k Y8 ] - )( [( ^$ i, [+ g3 R' N7 w1 }
- )! {" @: F* s* P4 ?4 p
- (mode_tile "Area_text" 1)
8 a2 {. [( S2 t5 B$ Z; ~7 | - )
# E, J4 M( ^6 |' r8 Q* d/ c - )# `! F' T, F% ?( v6 H- Z, c
- ;;5 @* n& Y* k) l" F5 p- e5 _2 ]" h' v
- ;; Calculate new values for ELLIPSE
2 H' C g" l+ a; J! w/ F - ;; Minor Radius, Area0 g. Z s" M6 ^) D2 r$ y: F: B. U
- ;;
% ~4 K: M/ H- `0 x& ` - (defun ell_calc_newval (ell_tile)# \( U) I9 U: m; R' \4 X0 I: R
- (if (= ell_tile "majrad")4 H5 k6 p. e+ R9 f2 M* m3 m5 u
- (progn
e; v' @1 J+ n! K. }: r - (setq rrat (/ minrad majrad))
3 k. H6 ?4 ^% D: [7 l! b2 J) S - (set_tile "rratio" (rtos rrat))
/ x# \2 ~2 B6 W8 ?1 l v1 U k6 u - (ell_calc_area)* z! ~, I$ `* T
- )& z$ F' M; |9 r7 o
- )& p" G [3 ?5 f
- (if (= ell_tile "minrad")
% ?/ B9 o" C) L3 k, J* R - (progn
& i. E9 F8 @& W6 [+ ]3 w - (setq rrat (/ minrad majrad))9 c6 l. k4 M. E- N) X/ e- B
- (set_tile "rratio" (rtos rrat))- Y1 e. f: @# A. S8 ~
- (ell_calc_area)- \. x) Y2 D, P7 b7 O
- )
6 b# Z5 b* M2 V- J+ _ - )! {! B- a9 E- v1 j
- )
: t! C5 B {! O# o; g U3 n. z
) i7 \9 a) W& d0 {" Q4 f, X3 c- (defun set_dimen_props (/ loop a stl txstyname)
( M' U6 p& E$ [/ A6 Z* t - ' }7 p+ z7 [" k: }, b! W
- (setq stname (cdr (assoc 3 elist)) ; get style name; b- t/ k9 z: z/ Q( Z
- stl (tblnext "DIMSTYLE" T)
3 |" x; f- I* N4 r' x, z5 A - stlist nil)
( f6 T3 W8 K, t9 x0 m; l - ;; Get all style names and list them in alphabetical order; O T8 z( a* J' B3 N% _
- (while stl6 ` k7 ]* e7 z. v4 H- _
- (setq sname (cdr (assoc 2 stl)))6 h4 ^1 o9 D) ]' w
- (if (/= (logand 16 (cdr (assoc 70 stl))) 16)
# i6 _; k5 _9 X/ Q/ N+ a0 {! ]8 ` - (setq stlist (cons sname stlist)))
; B, y, z6 |! H5 n - (setq stl (tblnext "DIMSTYLE")))9 t( T+ T) d! N; c2 t+ K" u1 K
- 4 B* t" [* j2 J( s" U+ L: n
- (setq len (length stlist)
4 p: ?/ N9 g" ~; _2 ? - loop 0
/ c' D: u7 [% d' m6 ]5 Z: ?& D: A - dimsty stname# C7 ]% i, _9 X) n% ^
- )
! T) I4 t8 F' t' o6 _8 t
) y4 s+ R9 f( x7 E- ;; alphabetize style list, depending on maxsort9 W, t9 o+ o! O% m8 g
- (if (>= (getvar "maxsort") len)
/ u3 d2 Y: e; @5 P1 } - (setq stlist (acad_strlsort stlist))
4 Z! T3 v# J6 }& u5 H! f! a- C - (setq stlist (reverse stlist)))
. h L4 R; x5 b% z4 f- v) F8 \- n; _
; C+ K( _5 h$ @0 U; x8 w( T: U- ; *UNNAMED style (dimsty = nil at this point) is replaced with
7 Z& y; W5 v9 X5 C) g8 i - ; the current style. After R13, we require dimensiosn to have a
5 S- z! Q7 ?: c% f - ; dimstyle, so we plug any holes where we find them.
( F% [+ j2 e! d% P, E6 M - (if (null dimsty)
. Y; G. [& W: }* z - (setq dimsty (getvar "dimstyle"))
* K! j4 B# y8 @1 r/ I1 n+ U( h+ J( t: D( X - )$ L& e6 ~" F9 @" X* @& e
- ; Show the styles in combo box
- x: f$ y" H5 D# D - (start_list "mod_style" 2)
& `8 g& g7 M' d# I! Y" `) i - (while (< loop len)
7 E g9 \2 S5 z# C Q/ g - (add_list (nth loop stlist))
! ]8 n& C% b; n0 x' F - (setq loop (1+ loop))% l9 W7 L x1 W- F. J: R/ y
- ); y( I" g/ Z4 \7 r
- ]( S1 X' L: t- (end_list)
. \( w0 ?/ |2 j1 q) C7 ` - 2 i# U$ `6 t7 r- R( ^
- ; Hilight the style name of the selected entity2 s7 s5 z) r: t& p8 z
- (while (and (< 0 loop) (/= dimsty (nth loop stlist)))6 v% M4 z/ b5 ~+ p- S
- (setq loop (1- loop))
' ^7 i4 G5 y% x% k - ), g J7 w8 f" Z! _+ w
- (set_tile "mod_style" (itoa loop)) D# \3 Y# m8 z2 I1 l- f0 S
- 6 l7 O. N: n% [* }" q
- ; The following is the list dimvars. It must be sorted in the same% y& R8 |, P( M% C% f
- ; order as the resfub returned from DDIM (ADS module).5 g8 F9 W' p' O7 V) g6 a
- 6 \" w Y" G+ R( _4 y/ Q* b
- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"
" x3 A" t6 {3 v - "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"
5 f( y" D$ D: X$ p) Z8 { - "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"
3 u7 z: k* Q) d q - "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"; H2 z* B. @/ e6 ~# e
- "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"
' V' n8 D9 q* F0 l+ a - "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"
- B/ [4 ?3 M) ]# x( y+ b0 l$ `( I - "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
/ ~8 l6 O$ S0 @8 ?8 v5 Y - "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix": P, x) Y9 H* i5 p: i0 E
- "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit", c+ u" d, u( _0 B
- "dimdec" "dimtdec" "dimaltu" "dimalttd"% }9 |+ J% R M3 I8 T/ E8 w9 ?
- "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"
7 s! N: y0 y( g7 l0 U [( ~$ j - "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"- ]4 [5 q+ I; } [# @
- "dimtxsty"
/ I$ e0 q8 d: i" D - )); r1 P. _+ G2 R, ~+ m
- (progn
# u. v4 O: \1 G. g0 {& S# l - (setq sv_dvlist (ddimen_getostate dimsty)
" S1 q( ^" ]4 {' S I7 B - txstyname (assoc 340 sv_dvlist)6 i& c6 L" R* n+ g% A
- sv_dvlist (subst (cons 340 (tblobjname "STYLE" (cdr txstyname)))
$ }" t) A' m3 Q5 P3 k" l' @4 ~$ S - txstyname sv_dvlist)
7 q8 R! n& a5 s - dimlist sv_dvlist
; n; X6 Q1 r/ w8 j& @1 T& H - )% t+ l: f* n9 x M! q
- )& W2 A' b5 n# N0 [' b
- (if (= dimtype "DDLEADER")
* J# g5 F) f( _ - (mode_tile "mod_format" 1)
8 b u" m+ k5 i3 T6 _ - )
4 A: z; f* K, h - (action_tile "mod_style" "(setq dimsty (ddimen_style))")" |8 b6 ]- V6 N4 M
- (action_tile "mod_text" "(done_dialog 4)")1 b2 s9 j! G3 Z7 X
- (action_tile "mod_geom" "(setq dimlist (ddimen_dlg dimtype 11 dimsty dimlist))")
4 i: L: C" P Q9 W2 o+ B: ] - (action_tile "mod_format" "(setq dimlist (ddimen_dlg dimtype 12 dimsty dimlist))")# U" k9 l s2 g$ H6 }0 u8 z: M! G
- (action_tile "mod_annot" "(setq dimlist (ddimen_dlg dimtype 13 dimsty dimlist))")
4 }# t/ P7 M1 w/ M/ D! L - (action_tile "accept" "(done_dialog 1)")! ~! [7 b! w: C
- )3 G: [- q7 @: [" G: L7 s: i# `
- ;;
" y" w5 N) k% g$ _; y4 e$ t - ;; Get dimvars that have been restored.4 R l! b6 Z. L4 F: Y
- ;;
; D+ | a8 U q, Y( r& [ - (defun ddimen_getvars (/ elm dvlist dv i)3 P1 G. u% Y, f m+ \
- (setq i 3
) h4 A9 X( A& V4 D. f4 d - dvlist (list (cons 0 "DIMSTYLE")( n; K+ ]& U- K
- (cons 2 (getvar "dimstyle")) (cons 70 0))
; _4 ^$ _' S5 J1 v - )
. G7 \3 Y9 c& y+ v2 n6 T - (while (setq dv (nth i dimtbl))
& g& j. d2 i) r- b - (setq elm (getvar dv)
1 c4 \- {7 [5 k* Q- a: R - dvlist (append dvlist (list (cons dv elm)))# c" n1 u8 j% Y& T& f
- i (1+ i)7 \! g& w& q% d" Q
- )9 \" r+ }! Z: W) B. K5 ]" \* z
- )& t5 T9 _' \5 I
- dvlist
' o& j9 m$ ?. ]* H - )
# Q* k) I) Y2 c% L# z3 i3 g: |
* H- _: j0 Z, `; e4 N- ;;
; c$ f7 F1 y# _7 f, m3 g - ;; Get the original states of dimvars. This is for DIMENSION entities.
9 y1 r1 m* e! _5 Z- P* k* h$ | - ;;
7 a& s: ^8 M% a# ? - (defun ddimen_getostate (dimsty / dvlist elm i dvvars)
/ A" E# X* a7 W! x l" | - (setq dvlist (tblnext "dimstyle" T) ; Get a skelton list
, ?7 x u8 e1 s7 u, P C - dvvars (ddimen_getvars) ; Get dimvars for that entity7 W" d/ t- n+ K2 H
- i 1* x' P" O1 D. X8 }! b
- )
8 E# w3 d3 y1 E$ }6 e n7 {
& k! z* p+ f a! v9 z- ; Create a list that contains values of the selected entity.
8 v/ ^1 [$ `# h/ L; D9 l9 l( K
& Y$ a( Y9 t9 W# h8 e5 I0 _+ k- (while (setq elm (nth i dvlist))$ N& d: V& d9 {0 X
- (setq dvlist (subst (cons (car elm) (cdr (nth i dvvars))) elm dvlist)7 W6 L0 m, Z _
- i (1+ i)0 `2 R {6 _+ Y
- )
3 I0 a/ H7 Q9 C: `/ _5 A - )
9 g& `. T+ b2 c0 V7 _) ~ r' I - dvlist; _6 S( S; R$ ^& p9 z
- )" Z) f8 _9 J* q" h& E8 h
' p0 m$ b6 a# V: X C, y# ]- ;;% S2 u% d: D" _0 ?+ w
- ;; Restores dimvars of the selected enity.2 G0 \8 e% b5 l% {8 U; Q+ l4 }
- ;;4 O5 h2 C- B! `, C% T4 B' K3 H
- (defun ddimen_dimsty_restore(/ dimtbl dimsvcurset en)
5 h! i' K6 P2 N$ |7 G+ S - (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"7 l% K' f: z, {' O, G- V0 R* z
- "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"
& m5 c0 V8 o* n/ ?' X - "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"
8 y" t g1 t; D! M9 y1 O: h - "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
# f% k% c7 e5 U1 E$ H - "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp", W5 v4 z9 T! Q' r. {) ^) R! S, e8 q
- "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"+ b( ^. \! |& M' {) o2 |/ U' c
- "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
k( M& V d, a& Q( G - "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"2 t$ ?; O, s4 @: ^" { y
- "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"
; j* J U! m5 O3 e. | - "dimdec" "dimtdec" "dimaltu" "dimalttd"
; }* I; j/ `5 ?8 Y. g7 ~0 x6 G4 R2 t, e - "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"
9 L2 i A4 G7 R: F* ]8 A - "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"
2 u2 Y2 O: o* {; M& ?5 T0 @ - "dimtxsty"1 K" _7 e8 q& f
- ))
, @6 k9 I" O$ a, Z( T' u - (setq dimsvcurset (ddimen_getvars)) ; Save current variable settings0 t8 g! M& g, V0 f8 J" i
- (progn
& V5 Q; _$ ~7 @/ D9 S/ w( {$ t6 s - (setq en (cdr (assoc -1 elist)))
) \4 I, e1 T5 G8 J - (command "_.dimstyle" "" "" en)
7 c( c7 D4 S; b+ ] - )3 c( ~* k M( A N7 e8 d0 g: h
- dimsvcurset
! I8 C4 ]$ T3 \# g- Q - )
) v6 x6 s2 G3 }: U# k& k. y7 F1 i - ;;
3 O& W( b0 H& w) I: H) M! m - ;; Modify Leader. W4 w* N4 [( f, j6 y& L
- ;;
9 l6 z6 \! v* J! |5 ~2 c, D# N4 v; c I - (defun ddleader (/ dtypebit blkname bename sublist a stname n dimtbl
' ?$ `! k: s# j. U' G8 d% J - dimsty dimlist dimtext svtext dimovr sv_dvlist stlist* U. Q& C }. i9 _! w
- dimtype dimsvcurset); E' o7 u Y) C4 F8 Q4 B1 Y
- (setq dimtype "DDLEADER"
) `$ y/ E0 d( [! q - dimsvcurset (ddimen_dimsty_restore)" ~( T! i/ v; |; Z
- )* P0 r0 m; Y, \3 @8 G5 P
- (if (not (new_dialog "ddleader" dcl_id)) (exit)); y1 k4 S5 I ~! j2 c
- ;; Set initial tile values
7 x8 H; l, W$ j8 d. M' J T - (set_tile_props)
- ?. m+ G. G6 `. A5 P- [; ` - (set_dimen_props)
/ M7 S" j/ n% v# Z6 I6 _ - (set_tile_handle)
* S7 r- z K/ Y6 G% O - ;; Define action for tiles7 N# p9 ]% H$ Q. ]+ D4 M$ F
- (set_action_tiles)
- P% b9 Z0 z6 a8 f8 z& g9 L6 R. c - (mode_tile "mod_text" 1)$ v U: ^$ M2 g3 e$ n4 i
9 x" h: W0 W) ~6 K+ [, n- (action_tile "mod_style" "(setq dimsty (ddimen_style))")% m' d: v% X, q9 h g3 Q- P( V
- (action_tile "accept" "(setq leadtype (get_tile \"s-s\"))(setq arrow (get_tile \"arrow\"))(done_dialog 1)")
( E, f/ l) C& }+ H/ y - ;; Get ARROW and TYPE.
+ P- ?$ c9 J) O - (if (= 1 (logand (cdr (assoc '71 elist)))) (set_tile "arrow" "1"))
& r& P7 k# z3 U8 w: X' n - (if (= 1 (logand (cdr (assoc '72 elist))))
. S2 l; a7 E. p - (set_tile "s-s" "spline")
* \. b* K) h; Z% b0 t - (set_tile "s-s" "straight")
6 H6 q, ]/ [+ Z* K, ^ - )
! d- M8 g f8 N- j# k - ;; Start the dialogue.) [% f ]9 X6 m* J7 o5 J
- (setq dialog-state (start_dialog))
# @$ U' t" _$ V3 f" A' X! b2 d - (if (= dialog-state 1)+ @# i6 H8 G, ~( J; Z1 O
- (progn
: t2 b+ G7 s. t N& P9 } - ;; update the style
5 i, J1 V% U6 i) w - (if (/= dimsty stname): B0 P$ W* B s
- (progn1 T( C+ E% j& e/ K% \7 c& | V
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
; c2 I% D+ f, e% I/ M( @ - ; doesn't have it.1 G" i# [+ j/ T/ a+ Q0 v ]$ p
- (if (null (assoc 3 elist)), r: Z& [) k. u1 `6 H
- (setq elist (append elist (list (cons 3 dimsty))))6 X) R% x7 h v1 D: {2 y* z
- ; else just replace it.
4 F3 ]. J) a$ N# N - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
' \( B0 U! x! h& E0 V0 v$ H& p3 s4 i - )
% p/ `) |9 O8 D0 Y; A% C - ; refresh sv_dvlist with new dimstyle.5 Z4 U5 K( x" h. t/ j* T# S3 F5 m
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
! B& \' G3 u- i5 \. w- A" k - )
1 P8 x; D7 ^( B, B/ `) P- k$ ~ - )
. g5 y$ Y4 O5 @. h, [ - (if (not (null dimlist)) ; attempted to change dimvars
/ |* r7 L0 f! L4 }: a - (ddimen_complist sv_dvlist dimlist dimtbl)
& q" ~, O, j' ]% ? - )
/ l+ p' V# B+ r+ D - ;; update for ARROW.
0 A6 V1 a( D+ ?; o- x - (if (= "1" arrow)
+ b8 K6 U; j0 d3 G - (setq elist (subst (cons 71 (logior 1 (cdr (assoc 71 elist)))) (assoc 71 elist) elist))3 b: }" z) E* @+ P+ x6 O: ~/ S
- (setq elist (subst (cons 71 (logand (~ 1) (cdr (assoc 71 elist)))) (assoc 71 elist) elist))
- V/ E4 S- s8 q! Q* K* R! [& ?5 O - )
5 ~1 y9 E7 Y6 l0 J A' d7 g1 H - ;; update the TYPE.
% \5 F) L2 r: f. X - (if (= "spline" leadtype)
& g) O0 }; r! U - (setq elist (subst (cons 72 (logior 1 (cdr (assoc 72 elist)))) (assoc 72 elist) elist))
& p8 d9 O; R" p5 C - (setq elist (subst (cons 72 (logand (~ 1) (cdr (assoc 72 elist)))) (assoc 72 elist) elist))
) v5 ` R& ^/ P" v - )
, l; {( [3 E" l F8 ]( D5 @& | - (modify_prop_geom)
Y5 f! }6 s/ b& l" M" ? - ;; update the Color! `/ G- k3 }8 Z. m: I* r
- (setq elist (subst (cons 77 ecolor) (assoc 77 elist) elist))
h: T" J5 Z! P. h9 z2 }: ~ - (entmod elist)
7 }6 @. |) e4 S# w4 R - )
4 Y, s! H) P& h - )" c' c- }, ?) A
- (ddimen_setvars dimsvcurset) ; Prepare to exit
* \/ ?; g; c' k+ k( } - )
7 b. {8 ~4 C d' q# A8 ^ - % \3 F! |; _. f( t0 q
- ;;$ d) S5 A3 I* @+ v" x% W1 }3 W" F
- ;; Get dimvars of a dimstyle with overrides.
/ b9 F- u$ J( C" {& Q0 q$ u+ t7 O8 c m - ;;0 T# }; y9 y0 }$ g4 \. h
4 @5 Y" |# D, Y/ B- (defun ddimen_getdimvars (dimsty / dimovr dvlist elm i)
& Z K! S8 }; f0 U
9 c6 }2 }4 b4 }7 E, r' k- ;; Get override information for the specified entity.
5 n% B6 j) N% o% N& ~$ K8 { - ;; Leader/Tolerance cannot be restored by DIMSTYLE command, so we$ v; ]- N" R; L$ J3 I6 q
- ;; must obtain override information through this tedious operation.4 I; p7 l. y6 G' o
- (setq dimovr (car (cdr (assoc -3 (entget (cdr (assoc -1 elist)) (list "*")))))5 y ]. r5 U8 P' ?1 f
- dvlist (tblsearch "dimstyle" dimsty)- g* f3 v8 \3 {' y+ V
- i 2
- z& ]" S( y! B: d L: K- O - )7 D1 I3 U6 K, E8 v1 [2 i
% |, r, ]! `3 n g- ; Update the list with overrides if overrides exist.
3 H: {% w$ |" N6 X, P1 h1 v# F
7 l/ q% K5 i, L6 y% I) H- (if (and dimovr (= "DSTYLE" (cdr (nth 1 dimovr))))
+ x) `6 F: \( J1 _0 G$ z- l$ n1 K - (progn. Q+ l T1 W; ^" C" K
- (while (setq elm (cdr (nth i dimovr)))
7 E e1 q, d2 V! V0 [9 r - (progn$ ~$ p4 W! _: D( z' j; P
- (if (or (= elm "{") (= elm "}"))
6 T$ ~- X' B) R3 n0 F: h - (setq i (1+ i))
8 M/ T2 y8 f8 V - (progn: e$ q2 L9 s: |
- (if (or (and (< 180 elm)4 J9 ]2 n: j5 M0 h+ f/ ~% w3 h0 b; T
- (< elm 190)- g5 t2 l8 T: M* p( W
- )
3 t6 }! u) d: E5 ~5 V. ] - (and (< 80 elm)
9 P3 G4 F' v% j, X - (< elm 90). R& {, K* V( [
- )& b! o8 z. n6 k, P& T% R- R
- )
( E. C" f9 U6 l$ _" R - (setq elm (- elm 10))
. T# w/ f6 n" p" C; m: G - )0 E k$ }& f+ w) m7 m
- (setq i (1+ i)- k* r" `/ I& T' m2 x1 l. c8 d
- elm (cons elm (cdr (nth i dimovr)))
7 `- z' ]- {6 y) l8 e3 ` - dvlist (subst elm (assoc (car elm) dvlist) dvlist)
7 u! @6 s0 @0 g G1 U - i (1+ i)
' y3 ]- U8 ]6 m/ G$ f - )
' r, K! G& i3 i7 Q2 o, q - )
3 [: L6 B, @/ @; M% g+ J2 D8 S - )
& {) g- H) Q- a6 _. c - )
+ I x8 b3 t+ v: S2 Z7 Y% M - )
2 A; E) C9 I: D5 d+ n n - )
' A/ r7 T/ V0 N# m* g - )
/ S$ [' ?& ~6 I" W - dvlist' w6 F6 K% q1 C. I; m0 z! U
- )
* D4 |0 c1 R6 r/ T. A# n: i
! {/ K' P+ K% J; d2 e* c- ;;1 S9 Y6 f% d- e; t! \* Q
- ;; Modify POINT) Y- o: |9 x, @# c- a$ B9 N. f
- ;;
6 s) h! ~3 p( C5 z; n# M6 \) }! t - (defun modify_point ()
% T. R* X9 I/ P n! l - (modify_properties)0 ?, Q6 e$ T& m
- (setq pt1 (list x1 y1 z1))
% z! }( G+ v( \0 J1 J- \" x - (tempmod pt1 10 0)
' p* I- o8 @+ u( I" q7 w - (entmod elist). {) q" c2 O: I5 k" p
- )
' e5 l3 ?0 ~$ I7 m3 X - 9 B5 T) P8 K; X9 H( h
- (defun ddpoint ()
O8 a$ X& R5 n* ]3 b - (if (not (new_dialog "ddpoint" dcl_id)) (exit))
0 r7 ~' U5 k2 k" i/ M; N - ;; Set initial tile values8 A" V' {5 q/ g
- (set_tile_props)( T Y! Q) O8 E5 d3 _& b1 E
- (set_tile_handle)
- m- Z2 H; }4 g% O# b- G. ?2 o - (set_tile_pt1 0)0 I/ N2 u; n/ U" ]* B/ l
- ;; Define action for tiles' o8 P" p- f1 z9 D
- (set_action_tiles): v9 Z/ b$ |1 v: b! s" _5 y
- (setq dialog-state (start_dialog))( s0 `) z+ ~: }5 `( i0 C" a
- (if (= dialog-state 0)
( P2 ], N( n. a* O* d. ~. _# p/ n - (reset)7 N# @4 ~0 u; J5 F; E3 v5 f
- )
; ~4 L" b' Y' |3 @& W - (if (= dialog-state 3)
: `8 f7 y' [7 o0 K - (progn/ T: {; c- @2 u$ P& T+ T. j
- (modify_point)
2 U+ D5 g- w" k7 R; U; Y - (setq pt1 (getpoint (list x1 y1 z1) "\nPoint: "))
+ S! n! X. T; n! [7 Q" a# N! I0 r - (ver_pt1 0)/ }- o( S1 b0 U
- (ddpoint)3 L* p* X) j2 Z/ m- F0 j
- )' O# E) [+ V- V& l8 G6 T! G
- )8 l( D1 l! S+ y' t% G
- (if (= dialog-state 1)* S7 }8 s% G- k1 z G
- (modify_point)
4 a$ w4 g6 r" n - )
$ x4 O; T: _( }& Z0 U - )
! ~7 v4 E8 R: _0 { - ;;8 x$ G5 ~% S4 U6 n9 p/ J( l
- ;; Modify LINE5 E3 J; o: @* ^; m; G" _+ r
- ;;
* i9 d6 a1 z) [8 f0 h+ y - (defun modify_line ()
9 ?/ |; N# p, q- v - (modify_properties)
6 e2 L" R1 s$ ` g* j! N. t - (setq pt1 (list x1 y1 z1))1 B: o2 u7 m1 C$ D2 k( ?7 c
- (setq pt2 (list x2 y2 z2))
: n; _; t' D @' k - (tempmod pt1 10 0)
' @& j( E6 Q8 y _' E' g - (tempmod pt2 11 0)
4 ?8 X; I! \; a, s( ]7 ]+ \* P7 P0 @ - (entmod elist)
/ ]6 l. e, {- X( k - )
9 o% k9 _7 E D& {6 B - (defun ddline ()
; q: O2 x' j* i$ @3 W: o5 P - (if (not (new_dialog "ddline" dcl_id)) (exit))& m$ D. a5 T2 ]3 ]
- ;; Set initial tile values
' Y2 |" Z- U, X - (set_tile_props)
, i/ ?: t' V5 j) `8 D3 ?$ l - (set_tile_handle)
! X( r- A# Q3 U+ W4 m0 p% V4 b - (set_tile_pt1 0)- p( R- V# C- N' x
- (set_tile_pt2 0)
( N( r M0 e" y0 o1 u1 f' k a - (line_calc)$ h$ `0 A/ g" u& P- B- S6 {* ?
- ;; Define action for tiles
. z- g' N2 w; } - (set_action_tiles)
! P& H6 S3 s4 E. q7 j5 X& l: k - (setq dialog-state (start_dialog))
1 A! r# Z& o3 u/ ?- R - (if (= dialog-state 0)- @( z" Y6 u7 \9 y# ?7 }
- (reset)
1 g' e" F+ A8 W6 q1 j \0 _ - )
, p2 n; V0 y7 N2 s$ L& C i: s! W - (if (= dialog-state 3)
3 N- L8 q( X+ K) K" u4 i - (progn
3 X! R: Z# q r" f - (modify_line). C! O7 @5 i" q, l, _7 W
- (setq pt1 (getpoint (list x2 y2 z2) "\nFrom point: ")). r) j# [ z! k, f4 o8 m! d
- (ver_pt1 0)
! S- U% r% T9 ^, }* Y! n* B* k, Z - (ddline)1 y2 {- l$ k+ {( n; n
- ). J( E# ^" i$ M& C, H8 M
- )- j7 ~ ~! X5 M, C% J
- (if (= dialog-state 4)/ S7 y& l+ ]6 w9 z5 s( P
- (progn: G- ]* f0 U3 T9 R
- (modify_line)
4 \# `9 f3 Z r* r, X! z - (setq pt2 (getpoint (list x1 y1 z1) "\nTo point: "))
8 f" |* \2 l& W, k8 D' G5 K - (ver_pt2 0)9 K, u' \4 @9 `" z+ n
- (ddline)- v% j2 Q9 u) \
- )
" x/ w- m6 [7 z& F - )
8 x6 `& V! I( D+ }* n2 Q5 d - (if (= dialog-state 1)4 H2 }; g; m2 x% ?; i8 x
- (modify_line)
: T* N3 m+ U3 }! s1 p - )
" ~3 r/ R/ Z4 p - )1 R+ Y" J! I8 a
- ;;
% N7 q1 k: j: g1 B0 F' ~$ b - ;; Modify MLine
: U# j1 b9 m) s - ;;
; ~1 g, {3 M1 E- c8 }3 j - (defun modify_mline ()
0 h" Q) q" k* e4 c9 H - (modify_properties)
- Z+ Q" ^/ b. ~' Z6 n _' G - (entmod elist), X! O; T1 S d4 t
- )
8 _5 J I6 o2 L; D - (defun ddmline ()
# u! [) P4 w) b- P! U) h3 J - (if (not (new_dialog "ddmline" dcl_id)) (exit))- X. g; s" M( t) d, u3 A* _) w
- ;; Set initial tile values" M* Y3 V8 V& M
- (set_tile_props)6 J# y5 f* z, \7 t4 T
- (set_tile_handle)
0 b9 N8 R1 f9 l5 O- p - ;; Set mline style text field.
! n4 g2 |) L' ^8 |2 a - (set_tile "ml_style" (cdr (assoc '2 elist)))+ f$ K$ F$ K6 z
% f% D. O) L& ]2 B; ?' ?8 M- ;; Define action for tiles
# z% b, N* e+ I* l0 ~! E - (set_action_tiles)/ C+ e4 ~8 {4 p2 t: L2 l3 j/ y
- (action_tile "ml_edit" "(done_dialog 3)")/ y9 O& p/ l% B" x7 ?8 u
- (setq dialog-state (start_dialog))
+ j# i- \# e# q0 \6 G5 s: k - ;; Dialog cancelled, reset to original values.
X7 K- s5 N5 c3 K! E - (if (= dialog-state 0)
# j7 a; G# V+ H) _/ B - (reset)% v7 N7 _+ E9 _1 X1 d
- )
# A2 }, i$ t$ u - ;; Dialog OKed, update the mline.
- C- q! O0 F. B/ S - (if (= dialog-state 1)
$ O- y0 f1 |, [, Z: a/ A% b - (modify_mline)
; z& q8 r7 i( S2 {$ g& {% X - )
/ S9 K# w4 ]) _ f6 Q6 [1 P - ;; Edit Mline, call MLEDIT.0 R9 E: j# b% u4 P3 L5 U* _3 o
- (if (= dialog-state 3) q2 x$ M" H/ d# S J
- (progn7 O) d8 y/ V0 b* q; B# [
- (modify_mline)
' z% ^( i- c5 t6 a5 i. X - (command "_mledit")
! f$ O2 j4 M( s C8 L$ B& y - (ddmline)6 r# |& O# g6 Z, Q
- )- `& o8 L9 ^& G$ v7 U \( l
- )" @3 K3 R1 f& S3 W2 v) h* j
- ) E! e3 E" ~3 [" v
- ;;
$ h) w2 E6 a S) a% Y a: e) \ - ;; Modify Xline
7 B, Q" @* m r% F - ;;1 T" E1 j/ [6 e9 [
- (defun modify_xline (flag)
^8 H5 H; J, ^4 C - (modify_prop_geom)
: w# W6 l; G! R7 ^, R. |$ V% S - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))% E# l$ E9 o4 T6 h
- (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))
( k- f+ `* v- _: M& | - ;; Update the Root point.
: s8 X! b$ f7 w+ q! ~; _' Q - (setq elist (subst (cons 10 (trans xline_pt1 1 0))- l% v; R3 h$ U) ^3 [4 |
- (assoc 10 elist)
$ @) `( ^, I7 T - elist- x* Y# `6 Z8 L# o6 E. g5 M
- )2 e! d: H* C: |# k1 A" D7 p
- )
+ G- r! {/ z- O: ~" [- n' P) F - ;;
' n$ g4 T" l+ I3 V* M+ X% L - ;; Calculate new Direction Vector WCS1 P; j8 i1 P: Y
- ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))
( S4 W6 s& S" k/ W
1 h; o9 X& B1 y9 w+ L1 g, f# D- (setq temp_dir (trans xline_pt2 1 0))4 d1 w( A" ]: [ u: O& q2 [
- (setq temp_dir_x (car temp_dir)) d3 S z9 ^2 B8 \& T9 R0 [
- (setq temp_dir_y (cadr temp_dir))
3 G4 q( i0 X# R! Y6 ?/ c - (setq temp_dir_z (caddr temp_dir))
6 O" b5 k! W9 [1 P - $ R1 f# a( n6 Y
- (setq temp_xline_pt1 (trans xline_pt1 1 0))
) e* l2 F# d: w$ t/ N, `: v - (setq temp_xline_x1 (car temp_xline_pt1))5 S* @" u9 v' G
- (setq temp_xline_y1 (cadr temp_xline_pt1))
, i B9 i7 Z. m: h2 [ - (setq temp_xline_z1 (caddr temp_xline_pt1))
1 X) t; w) H' l+ ^ c - & o4 ^8 p4 r0 X3 i5 W- B( y% e V
- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)3 Q' U2 A) g4 a# y2 _# B! I- u2 _
- (expt (- temp_dir_y temp_xline_y1) 2)/ |$ C* ^8 } M3 a9 `, t
- (expt (- temp_dir_z temp_xline_z1) 2)
! h1 g& S! d5 } A - )))
" L1 K. T! N% l - (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
" h- L1 P4 w8 X d6 `) U/ Y. K9 r3 ~0 @ - (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))$ U# {& Y$ S- i/ i
- (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))" P4 ]$ L0 c8 K: a" F# F# Z! }
- (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))0 s7 _' W# Q- `
- (assoc 11 elist)9 ?, J" W. o- A; N. P3 j
- elist
" R5 ?/ M4 u3 D - )
5 X& G, A e7 n' [ - )
+ U9 a4 H9 h8 \ - (if (= 1 flag)- c, i* s6 f7 |- E4 y4 s. P
- (entmod elist): e h/ _* o! c+ v K) h2 X
- ) |+ ]; T$ Z. a5 n- j
- )
+ I- [2 k) t3 \( Q0 t$ i$ O7 l - $ q2 T/ k# ^2 L5 Z8 ~* I/ F
- (defun ddxline ()4 @/ F/ L/ }: A0 H9 m2 l
- (if (= etype "XLINE") R" `& f* B0 Q! X G8 E( J
- (if (not (new_dialog "ddxline" dcl_id)) (exit))2 A! e4 p1 l. v" }* L* q# Y
- (if (not (new_dialog "ddray" dcl_id)) (exit))
; \1 I# z- ]9 d3 Q2 g9 C$ Y( w* t - )7 b: {3 U/ s9 J
- ;; Set initial tile values
" m7 {7 E, _: e5 ? - (set_tile_props)
! z6 A: { C! B# C& b6 ~% W - (set_tile_handle)% R! l3 ^! q! Q% ?
- (set_tile_xline_pt1): H! Y3 g! u4 ]- t h$ } ^
- ;; Convert to UCS and post Direction vector.
. b; Y T6 N, b - (set_tile_dirv)3 s; ?3 S; M2 x' C; r7 y1 x C
- ;; Calculate second point by adding Root Point + Direction Vector.3 L* X0 B, O+ a% p1 b
- (set_tile_xline_pt2)& J# N( V$ L: D8 _5 y- p# N8 [' a2 p7 C
- ;; Define action for tiles+ Y$ x3 i1 R- R, ?' z( c' S: f. [
- (set_action_tiles)
- q8 I9 x' o ?" k - (setq dialog-state (start_dialog))9 C3 G! {* ?8 d( R
- (if (= dialog-state 0)
0 ^/ _& z" e3 c5 W M- Q0 Q - (reset)
5 d l) k8 R0 g& x" P) A - )9 x0 t' R5 B$ t% t7 u( h
- (if (= dialog-state 3)
1 Z/ J# k. D$ b5 o- W( b+ g6 c - (progn
) B" B7 z* J% O7 x( E+ l - (modify_xline 1)% j7 H6 M+ a$ \3 k; F" d
- (while (equal xline_pt2! w9 `; w5 L0 w' {
- (setq xline_pt1 (getpoint xline_pt2 "\nRoot point: ")) 0.000001)
* r9 t' v. w3 X$ b# K* D/ S - (princ "The Root point cannot equal the Second point.")6 A% q- U* f8 O3 A
- ), B0 v5 z- X& `' Q7 c2 U0 Y
- (ver_xline_pt1)2 O7 U* Z& b, `5 T5 `
- (ver_xline_pt2)
8 W4 O/ Q6 A" b7 ^2 j+ r4 E$ j - (princ)- S; x" ?" K- _1 m9 V p* C2 t
- (ddxline)2 [* u) Y' n; \
- ): l8 R2 M" V' _0 Z/ F
- )
4 Q# b; p$ R. K" d1 w - (if (= dialog-state 4), K/ r! F& `; J; H' Z5 _! j4 I; E" W
- (progn
4 q x! @! N' I. Q1 _- p' q9 d$ L - (modify_xline 1)
# g/ j8 m& w$ r" @8 Z5 W - (while (equal xline_pt1
+ v7 a* X& l7 ?6 s - (setq xline_pt2 (getpoint xline_pt1 "\nSecond point: ")) 0.000001)* z7 e6 u6 y/ B
- (princ "The Second point cannot equal the Root point.")
( w! D f4 q" i/ e: s - )
a x+ P* q% V- m9 b; t$ y& H - (ver_xline_pt2)
5 T3 ~3 y( A' p: n - (princ)
1 ~) X, P1 h0 A% g) V2 U. Q( _4 I& | - (ddxline)
1 ?. ?. L# `3 J* u; ` - )( q; T+ h5 H- q) j$ }+ p% q
- )
8 B7 F* L! g8 i - (if (= dialog-state 1)
9 u+ Z; x9 ?% r' A2 y% L6 m- y - (modify_xline 1)' O4 X @# f: Y' U9 ^8 @' k
- )1 T/ H0 N+ L# C9 L1 |
- )6 H3 a1 L* m. b$ t' S8 ~2 r
- ;;
4 w# [, x7 ]6 V1 c - ;; Modify ELLIPSE
+ l/ t* U( f- b+ h) _0 T% |5 S - ;;' s! T6 q( _$ }$ ~
- (defun modify_ellipse ()
( u7 a) k1 B( x0 r' t( G - (modify_prop_geom)! ~+ B5 N: Y! U" w
- ;; Update Ellipse Center Point value.
8 _5 M% [/ Z% A. v" |+ e" q2 e" U, k! w - (setq pt1 (list x1 y1 z1))
; @0 M8 Z9 ^# [ k4 v7 K - (tempmod pt1 10 1)9 N, ~$ A0 |9 `* \
- ;; Update Start Parameter value.- \& @3 w$ p/ h8 L5 n ]
- (setq y_val (sin st_ang)): i8 G- t, d+ K' X( g
- (setq x_val (* rrat (cos st_ang)))
r% B0 k# B- v0 N2 X4 i+ {9 |: K - (setq stparm (atan y_val x_val))7 e G# J! b- }6 K' i6 h
- (setq elist (subst (cons 41 stparm) (assoc 41 elist) elist ))
7 n; O6 j' x" C) Q& X - ;; Update End Parameter value. Normalize it, if it's less than
, ^9 [4 y/ G5 c" m, J3 a! ^0 @ - ;; the start parameter.
2 Q' W6 H C$ n7 B - (setq y_eval (sin end_eang))0 M4 ~! s( M. N" {
- (setq x_eval (* rrat (cos end_eang)))
. Z3 v8 b$ n$ A; L6 B% a - (setq endparm (atan y_eval x_eval))7 i' E! d7 H" K9 }
- (setq diffparm (- endparm stparm))
. J, E4 R1 l( I, g - ;; Epsilon of 1.0e-6 radians for checking a zero length arc.2 Z3 g( ?3 o% U& \
- ;; Since zero length arcs are not allowed - construct the full" b( B* M1 N0 r( w, k6 z: o
- ;; ellipse in this case.. c+ T1 n- b" J* m2 D* X: c
- (if (<= (* diffparm diffparm) 1.0e-12)1 `2 ]) Q$ _+ T
- (setq endparm (+ stparm (* 2 pi)))$ H8 q( G0 q8 n0 x9 x) B" N
- )
2 c2 y5 k; X& J4 q+ ~+ V - (if (<= endparm stparm)
D( i+ v- t8 c; [; @' C - (setq endparm (+ endparm (* 2 pi)))
) ~1 h6 B4 r5 o; ]1 l - )
, f! i* I% t! z; Y$ I - (setq elist (subst (cons 42 endparm) (assoc 42 elist) elist ))
/ w3 B' ]: U; C% O9 [ - ;; Calculate the Major Axis Vector by first calculating1 g& H- N3 S5 t
- ;; a unit vector using the old Major Radius value. Then
$ X V5 k* x0 t( q0 Z# `) S# d/ W - ;; Multiplying that by the (possibly) new Major Radius" A8 T, Z, o$ v. o) s
- ;; value to get the new Major Axis Vector value.. u2 Y7 [. ^8 H6 f0 k
- (setq unitxx (/ xx old_majrad))
( _& v! M T1 L( Y2 O - (setq unityy (/ yy old_majrad))
9 W: d. F/ Y2 i - (setq unitzz (/ zz old_majrad))
" a B2 N0 t/ ~0 p - (setq newvecxx (* unitxx majrad))
6 k& }6 n- {) S3 {( C6 ` - (setq newvecyy (* unityy majrad))
6 m7 h: {7 k2 h: Y* P/ ^5 _( u - (setq newveczz (* unitzz majrad))
1 m/ b& _" k7 T' d - (setq newmajaxis (list newvecxx newvecyy newveczz))
6 z- F. j; i$ K2 b# r - ;; Update Major Axis Vector value
8 y" F+ k( c. p2 w, N - (setq elist (subst (cons 11 newmajaxis) (assoc 11 elist) elist ))
, ?+ R9 ?5 I2 j+ b8 @* C! ] - ;; Update Radius Ratio value) H8 v& [8 ^5 x5 u% @- e1 N
- (setq elist (subst (cons 40 rrat) (assoc 40 elist) elist ))+ S, w" |2 a1 I7 b* x
- (entmod elist)4 o9 i: |/ }$ U& s+ p" t6 O V7 O
- )
5 S" |1 q1 \( o6 ^% f g0 ~
) C) T8 K* B( W: ^ i- (defun ddellipse ()
1 n O0 j' }' ]8 Q$ u - (if (not (new_dialog "ddellipse" dcl_id)) (exit))
! y6 s! g% y9 n8 H - ;; Set initial tile values
0 G1 Z8 `$ y7 V/ [. p9 h - (set_tile_props)
; q9 [# R5 B3 ^! ^4 G1 E - (set_tile_handle)
7 D# c9 f% U2 X - (set_tile_pt1 1)
, H8 n i$ i4 {' |/ M - (ell_calc)
3 ]7 F/ ]$ ]/ V; X" E; Z! p - ;; Define action for tiles' j% b J( z6 O$ F) E
- (set_action_tiles)
7 ]& D3 I- [8 ?; j9 |4 Q - (setq dialog-state (start_dialog))
1 r- O! m4 |6 j; U - (if (= dialog-state 0)
& k. ?8 W0 t; D3 a, B7 I - (reset)
/ v% f0 t: x6 \6 f+ ]% {8 v4 J8 S. V - )
; o* W3 d! d4 ]7 g# I% ^* Y& ~ - (if (= dialog-state 1)
5 a+ Z# c/ U5 a0 R; J9 h - (modify_ellipse)
. ?* k2 W7 a; K! N# v F - )
% m8 n3 \3 U7 } - (if (= dialog-state 3)$ L4 k1 z& L$ k% U& ~5 x# _
- (progn% `" K" x# S. X: U
- (modify_ellipse)" _4 J; B: S0 f$ p; [: G
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
& J8 Y8 @* o' H - (ver_pt1 1)
' V, C3 A& W9 n - (ddellipse)7 H6 `* w0 P, \; h. V( @
- )
" e9 R# s4 l+ ?* C! d8 ?8 I - )
* |( u% [, G# ` K - )
8 Y# Y; i. ~# b) X/ i9 \8 R" k - ;;4 E- X* L& t: o: A
- ;; Modify REGION6 O# r- T& b7 ^0 ~ P8 q9 ]3 |7 |
- ;;! k1 C& n; t" ? f
- (defun modify_region ()9 @; _# {( Z8 Q6 a2 Z T0 h5 o# }
- (modify_prop_geom)# j3 `$ _6 @- s1 W
- (entmod elist)
" ?4 l3 d1 N+ W) P* H - ) Y6 _6 e6 G" s
- / e3 z! T3 f# t
- (defun ddregion ()- c" v J' F) m
- (if (not (new_dialog "ddregion" dcl_id)) (exit))& J8 c- M! j- N0 J. \
- ;; Set initial tile values
& s9 [7 S/ h/ p8 |" T( w - (set_tile_props)
# i; A; G7 L9 i% H+ ] - (set_tile_handle)
, F, l0 z, P% X, z3 p7 F - ;; Define action for tiles" A+ H Y3 f2 v- G
- (set_action_tiles)
) Q9 D5 J6 Q! n' _' E9 l - (setq dialog-state (start_dialog))
7 M5 C, }# E3 u" q6 e - (if (= dialog-state 0)2 c8 g% c% `! }6 h- X
- (reset)
: I% _5 Z/ L8 s; J. |0 M( S - )3 X5 z, U3 l1 l1 a2 X% O" e8 ?
- (if (= dialog-state 1)
+ d8 E+ x* L" s8 d& g - (modify_region)% ]5 s; Y7 ?2 P+ d# i; }9 ^" q1 T
- )( q; k# ~ a. F- w$ r9 v
- )
2 K/ B& d4 B+ V* [0 K1 A - ;;3 f9 M3 z4 X! S( q: u+ {1 ]& ]9 W
- ;; Modify 3DSOLID
( F- @. e7 S/ E3 A - ;;
- \) X9 T& b) V5 S; c4 T - (defun modify_3dsolid ()! V) W) m$ [1 \/ o3 P, {7 H n8 i
- (modify_prop_geom)
: [& |' ?1 D$ t4 \. e - (entmod elist)
. m3 u0 d4 N9 G" `) n7 T- M - )- h2 @* h8 q( t4 s) \7 F
- . O% d% T) j+ O- F: R$ J3 O
- (defun dd3dsolid (): l5 a) ]* L; x7 {! `
- (if (not (new_dialog "dd3dsolid" dcl_id)) (exit))
+ |$ c: C4 _: p4 i8 M% |5 H1 Q% Z - ;; Set initial tile values
7 W. I+ ~7 J2 y# c: P v! C - (set_tile_props)
7 F, K2 i3 x/ L+ P& i0 u: p - (set_tile_handle)
6 N; j1 z/ _) a! j1 T0 C1 D4 w - ;; Define action for tiles, O! w1 `& ~' M5 W1 M1 j, u) d
- (set_action_tiles)) m( @* l5 m3 m" I; a
- (setq dialog-state (start_dialog))1 N4 v8 J7 P' I* Q, j
- (if (= dialog-state 0)
/ S$ @9 u& j$ }' o3 K - (reset)
: ~7 {* V5 \" k2 x% M - )
# g( P& C% r4 f) W! ~+ K9 }! h3 Y - (if (= dialog-state 1)
w; B, s, E; ^9 w2 h4 J2 L/ z - (modify_3dsolid)
8 q9 N" k8 r" D6 Z, B, j7 X2 G - )1 _' _& u0 D* H7 p+ e6 h6 U
- )
$ N- L: _: V. O/ m9 X$ r3 l - ;;! j9 g& i( \: v; F6 l2 ?" f
- ;; Modify AcDbHatch) ]; j, S6 h" Q4 Y
- ;;. R# c' X U( m& q* r/ F
- (defun modify_hatch ()
U4 [/ P( T/ o& b/ ^ - (modify_prop_geom)+ m6 `8 p& X& r/ Z
- (entmod elist)* ^7 b3 T+ F. @/ _/ E6 p
- )6 }5 {& N8 r" ]
! ~; S+ d" Q7 X$ ]2 X- W- (defun ddnewhatch ()& C9 G& x, S8 |* G9 X( r5 g
- (if (equal hatch-elist nil) O, a, e* `5 m1 L- t7 N5 k+ A# K/ I! c
- (setq hatch-elist old-elist)
# k5 a @( n- [; f' a* ` - ); ~* q. v9 [: u& d5 }: ]" W. t
- ) j& z& d) Y1 b6 h0 J" O+ K# P+ A
- (if (not (new_dialog "ddnewhatch" dcl_id)) (exit))# w: Q- D( y7 p4 {
- 8 m$ G7 P$ w* i0 X& `3 {9 J
- ;; disable the thickness tile
, p5 R9 f2 p- R. a# D: v - (mode_tile "eb_thickness" 1)
: V2 K) Y6 ^6 s2 L3 F$ m - (mode_tile "e_thickness" 1)% I8 }5 Q3 C3 v/ ]5 Q }: G
- 1 S' f8 { ] A5 j. n
- (setq help_entry "modify_associative_hatch_dialog")
/ Q9 F" o1 G9 Q3 ^+ S# h& a0 z - (set_tile_props)
1 c/ F- x5 i3 L - (set_tile_handle)
- L1 ?! k! F. \ b
$ d! e; ~) m, `9 U- ;; Define action for tiles$ k0 K. ~3 j; S
- (set_action_tiles)
# H) l( ~+ K" p8 u" b, M - (action_tile "b_hatch" "(done_dialog 2)")
% {; a& n; d( _5 R - (setq dialog-state (start_dialog))
M. _$ w9 s6 H8 Q) M - (cond, {/ z2 q( m( E6 ^5 e9 D
- ( (eq dialog-state 0)" _( h& |1 U9 c6 L- W; P4 U
- (setq old-elist hatch-elist)
" {; O$ k) h* s - (setq hatch-elist nil)( K, k4 [& Y4 H) @& v# J
- (if (= (checkforlockedlayer ename) nil)* T; }7 J2 o; O
- (reset)
( ^" t C; v2 u+ i& @- u. X; m - (progn ;;; special handling for locked layer reset
2 ?; g- O/ @4 |& |) t8 Y - ;; unlock the layer
+ \6 d2 D" ]) d - (setq layername (cdr (assoc 8 (cdr (entget ename)))))0 d( s# g# O! ~1 d$ ^! @# y
- (command "_.-LAYER" "_Unlock" layername "")+ D' n( r. h5 Q7 W+ H
- ;; reset modifiction5 B% e2 n! q7 k( z
- (reset). S+ `$ A8 x- x" y+ z
- ;; lock the layer again
, J' N# A: L8 m1 _2 ] - (command "_.-LAYER" "_Lock" layername "")4 D% y& V, T1 j, ^1 s' N( u
- )! t! Y- p4 l; F# T0 ?) c% [
- )
" S- S5 K) K: {- Y/ g, { - nil ;;; makes (ddnewhatch) return nil for Cancel
I c7 V. B" c$ N1 h0 |& h2 p - )1 p* D- f6 ]$ V: u
- ( (eq dialog-state 1)
1 W/ W# z; l: H3 x0 w( |8 m - (setq hatch-elist nil)) H1 a* y# C H: f% W* i
- (modify_hatch)# I5 [3 x# P" W, A
- T ;;; makes (ddnewhatch) return T for Ok' n: v4 I8 f( Z) C
- )( C. e. F) s6 J& ]
- ( (eq dialog-state 2)
# R! K7 U2 k5 \* I" U - 1 b" f: L7 h& K. P. I' v
- (if (= (cdr (assoc 70 (tblsearch "LAYER" elayer)))# H" H! _3 O; s, c
- 4
! g' g0 J# |, T6 U. [ - )
8 G( v. V; E5 O1 L; ^1 K - ;;; new selected layer is on a locked layer
% W; z+ g7 b# _( J6 b, N( x - ;;; we can simply modify the hatch properties
* ^# \) U, t! U. q! C# A* K* M - (modify_hatch)* P7 f2 l/ c, d2 E0 ]
- (progn
. X- o4 D- c$ ]* |; E( ]! [2 K4 x - (if (= (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 (cdr elist))))))
/ }/ @: J. b' i) {. x- t5 y - 4
+ Z: T; n- T! K8 }; d- V - ) . G. B# R0 M- i$ ~: q. \2 o
- ;;; We changed the layer previously and now the hatch lies on a locked layer.
m8 O/ S5 x% K' v8 o - ;;; We have to unlock the layer forethat we can update the hatch properties.7 c' {( H7 A4 A
- ;;; If we don't do that (entmod) fails to update to the new layer./ I$ s7 l2 q$ c: V" r6 A
- (progn# O. [) C5 P$ X: Y5 D9 B
- (setq layername (cdr (assoc 8 (cdr elist)))); y; t' P8 m$ m6 ?2 `
- (command "_.-LAYER" "_Unlock" layername "") ;;; unlock the layer
3 a# `0 S9 S0 J" J+ w* K ?6 G8 o - (modify_hatch) ;;; update the properties/ w2 u8 K) k( S% E: D
- (command "_.-LAYER" "_Lock" layername "") ;;; lock the layer again! Y4 S7 E3 P4 ^ N2 U. `
- )% V8 L% h" S! T- H3 f& d
- ;;; All other cases we simply update the properties
6 {- c% H4 U/ s3 |3 s/ `3 V. K3 e1 ?! N - (modify_hatch)
3 L' z7 a0 P( U. m3 z( h. @ - )) D! `: s- ]. z9 L& _* q
- )# b1 y. x4 @/ ^$ ?6 b
- )
$ X7 I$ m& V* B8 K& F4 x - (if (= (checkforlockedlayer ename) nil)
' W$ H( ]4 |# M; C0 r1 Z - (command "_hatchedit" ename) J( r! [5 p. y& U0 N
- (alert ;|MSG111|;"The hatch object is on a locked layer.")
6 ?, U& _( |2 c! X - )
* M- B# L9 F& D! e - (ddmodify ename)
8 `# t `% A/ u( l - )- R" I0 R+ Y4 A. V: P' H$ f j
- )
6 {* d/ S+ E9 A - )+ {7 h7 p8 }5 m8 r4 J! N% @" C- \
- ;;
; G# O, [( w4 [+ v' Y2 o- C4 C) B' l - ;; Modify BODY6 U/ R9 ^2 [* G8 O# r6 f7 Y
- ;;! }+ \( M% m5 j; x
- (defun modify_body ()
: L2 f0 Z# z" l! W4 r3 X& X - (modify_prop_geom)" v" K4 C# [* D
- (entmod elist)
0 s3 j) |" ^/ J; L - )/ e5 ? p5 B- E7 @- i+ O0 G2 a i
- ! c" G! Q# W7 G; e) q
- (defun ddbody ()0 c8 T1 K- B1 v" [; Z: X6 H( j0 K
- (if (not (new_dialog "ddbody" dcl_id)) (exit))
2 B" ]' y& o* x5 ~4 x+ x. W - ;; Set initial tile values
3 K3 D" Z: |% O# k* j; l. K! W- T7 _! X - (set_tile_props)
* X% ^7 _' A0 C3 R& o. L - (set_tile_handle)
! U, J( Q: Y, `, x - ;; Define action for tiles
) Q+ R/ h8 k5 w$ M% d/ T - (set_action_tiles)# t5 P; ]0 W) n2 a+ O& }7 F5 ]# g
- (setq dialog-state (start_dialog))
; u" C& n9 T2 L) N8 Q) D - (if (= dialog-state 0)' q$ V5 m/ `3 {/ k E( M1 c! R& y
- (reset)9 B% e+ k0 n4 U0 S4 O: W7 L# \
- )# a [1 U, [ V& N
- (if (= dialog-state 1)& I$ ~. Z! E! d, Z7 U
- (modify_body)
/ S. H) i$ m: w1 g - )$ L2 }/ H# N& s& j% H4 P* J
- )7 X/ `" Z# i0 D6 t
- ;;& Q( k. N3 \8 w# u- [5 i
- ;; Modify CIRCLE
/ e% J5 x; b% X$ L: e8 N; Z$ M& f e - ;;8 h7 D+ j* [. r6 f C2 f1 q: F( _, j
- (defun modify_circle ()6 N" Y9 u4 V2 M. U* V) Z, [ f
- (modify_properties)3 H5 @% e" C X, j. e6 ^- R
- (setq pt1 (list x1 y1 z1)), P$ \4 G/ ^' _5 l6 |$ |
- (tempmod pt1 10 1); Y0 C/ l9 b5 F7 k7 S. B
- (tempmod radius 40 nil)
. M3 ^* w! a) q - (entmod elist)% R; w0 n3 b$ K3 N1 k8 q2 L% A+ t$ k
- )
7 ^9 d& x: V' B
4 D; u8 t3 S9 h9 U/ ?8 \5 I- (defun ddcircle ()" v4 I+ O9 Z* t6 F8 s
- (if (not (new_dialog "ddcircle" dcl_id)) (exit)) P8 S) w/ A# C! z2 S3 }0 C1 G
- ;; Set initial tile values+ ]' l! S& A' |) S
- (set_tile_props)* m% H1 t% R3 `% p7 N! g
- (set_tile_handle)# i9 { ?! v( e! ]) _2 l
- (set_tile_pt1 1)
+ h& W4 W+ C5 Q - (set_tile_rad)) E/ h" f4 f4 e9 a6 i' U) E& g
- (cir_calc)
# T0 S+ w. j* t; j" a' e0 D - ;; Define action for tiles
7 Q1 ]/ @/ a$ T3 W8 [ - (set_action_tiles)& u0 {6 {$ h: E" ]* }1 l6 |
- (set_tile_pt1 1): H, g; n; M- j& H* V
- (setq dialog-state (start_dialog)); U% _7 y0 V. n. x
- (if (= dialog-state 0)
- N! x( H3 E$ N, K \( F - (reset)
% P/ L, Z# T) e% z* T9 w/ L+ x) p - )5 ?# f0 u F1 R, O& n$ z4 E$ @* y5 |
- (if (= dialog-state 1)4 u3 j2 V6 p, F6 z$ y9 L$ n
- (modify_circle). T+ z- r* |( x5 ^6 V
- )
6 q' M0 c: b- u8 U: U8 X - (if (= dialog-state 3)9 ^9 r" \9 B; G9 F: i
- (progn
; `" I2 ^6 ?) G% W+ B+ q( n9 K - (modify_circle)& `$ ~- U6 c; b5 U @0 F# l
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))! a7 n! z' Q, C
- (ver_pt1 1)/ n; K' d/ V) u' y7 I4 M$ J
- (ddcircle)
, Q Z9 u. x* H8 ^9 G) u: e7 } - )
* Q+ r: C, p* d0 ?- |' } - )
( H. M0 S0 A0 y+ z3 F - )
+ A0 c! N( F6 {) T; L, R: m4 f- a - ;;- h- a, T& H7 D% a4 N8 q2 \
- ;; Modify ARC6 Z( _6 ~* Y; P3 _/ {
- ;;
+ b9 M+ p0 q6 v8 F9 m - (defun modify_arc (); Y1 z/ O; S/ ?+ ^8 d
- (modify_properties)
9 k8 ~. w4 W3 f - (setq pt1 (list x1 y1 z1))" C% M; S* I! |! z3 H
- (tempmod pt1 10 1)
/ y! b# Q0 p; q$ H* O7 y8 l - (tempmod radius 40 nil)
5 W3 N6 b5 I8 s' }8 \$ h - (tempmod st_ang 50 nil)
& c, I |9 B* P8 L4 | - (tempmod end_ang 51 nil)* ~+ ]/ a$ v2 H8 i& V& {% D2 B
- (entmod elist)
3 B' ?$ D4 Q" F! k - )$ b: F7 l) _: u0 |+ j
- (defun ddarc ()
% B9 o+ |& T; D6 `, i/ Q) Z8 e - (if (not (new_dialog "ddarc" dcl_id)) (exit))7 o2 c- j5 p: K& }& a/ c
- ;; Set initial tile values( w0 M: p( d `5 q7 s, A
- (set_tile_props)' T# d5 t6 H# p1 Z
- (set_tile_handle)" _& t; _& ]. ?
- (set_tile_pt1 1)3 {5 e. b* w0 `5 W( w/ V8 _
- (set_tile_rad)* N0 T8 ^9 B9 U/ J
- (set_tile_stang)
) r6 b' I# Z( J6 B# g - (set_tile_endang)
8 X/ A n2 C# d: f8 l2 e" \ - (arc_calc)
}- \2 }! z4 }; o( c8 Q; x7 [ M - ;; Define action for tiles
& e9 n3 \5 Q# `; C' K - (set_action_tiles)( S# s4 p9 N* w+ O' ^7 {1 G3 |
- (setq dialog-state (start_dialog))
% U' o/ q w8 c - (if (= dialog-state 0)/ O1 g3 ?9 L% @2 K S- f, _% ?, @
- (reset)
3 m: K4 a* G5 @! n* P- f$ m - )7 P) {/ {6 F, t! l, k
- (if (= dialog-state 1)2 B( {0 {# B2 m* d# _4 e: n
- (modify_arc)
' L) q" k# U. E( t$ Y9 g6 T - )
# t( ~; j9 }% V* A# F6 ^0 t - (if (= dialog-state 3)
" E9 R+ U! z( c/ E; M" X* y; h - (progn
# t5 s, Y5 M7 p9 q% T( w h) ~ - (modify_arc); _4 m5 V8 e0 m- @) B
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))1 U, b8 ]3 D/ H! t/ c) p! @
- (ver_pt1 1)0 i3 N( B) O2 G4 Z8 o# |$ g
- (ddarc)' s8 p- l* {. X! t
- )
& b3 |' U1 P5 t1 J$ w0 ~ - )
7 A; }1 _6 [) T( \. C - )5 s. Y8 Z, X& v. U' s
- ;;) m! }$ l: z+ p9 d+ r
- ;; Modify SOLID or TRACE
) c, |, o9 w3 C' S& e - ;; Note the Z value of the object is determined by the Z value of the fourth
6 U2 f. f/ O6 L& |" K5 t+ R - ;; point - code 13. Changing the point values of a solid or trace from a UCS% ]2 I; J/ A4 B* [- M. N5 B+ ]
- ;; that is nonplanar to the UCS the object was created may confuse the user.
; l% w$ s. A, K" j$ p4 g( o, J9 Z1 m - (defun modify_solid ()5 U$ |" E3 I g- I
- (modify_properties)- u% w$ a ~! ~$ e2 j2 ^$ \5 y/ ?: f; k
- (setq pt1 (list x1 y1 z4))+ ?6 D& A4 C- I
- (setq pt2 (list x2 y2 z4)): N3 z$ c) u- b* i: K+ A
- (setq pt3 (list x3 y3 z4))0 C/ C q% h, ^2 c
- (setq pt4 (list x4 y4 z4))% S! p. @. v |
- (tempmod pt1 10 1)( R" H8 R2 ]5 e
- (tempmod pt2 11 1)
. F: x F, n# ~" q - (tempmod pt3 12 1)' E, A' n+ j/ q/ E
- (tempmod pt4 13 1)" ?- [2 v2 {0 b4 K8 _" x
- (entmod elist)
6 J$ A6 ]' Z5 Z$ V) o7 f4 S - )! l; w# i1 {, _% {
% f) {, {4 p/ ^8 p& w! y- (defun ddsolid ()- R) e7 R: g6 w3 V I
- (if (= etype "SOLID")
8 p! D) R& T7 c" ] - (if (not (new_dialog "ddsolid" dcl_id)) (exit))! v. j1 F$ ]5 P2 d: D! i/ L' @
- (if (not (new_dialog "ddtrace" dcl_id)) (exit))
( ]7 Z. A4 E1 f* c9 h: @2 z- N" G2 A - )
8 p- x& C \8 \) K" r' _% L$ s3 R# K" Y - ;; Set initial tile values; p9 j9 \4 Z+ {& d7 N8 F) H. f
- (set_tile_props)9 U$ R, C- T8 [" K1 ?' m
- (set_tile_handle)
8 [( T1 b, a7 Q2 M) {" X1 T - (set_tile_pt1 1)
8 R1 ^' J9 z' ~% a. L' Y - (set_tile_pt2 1)
* \# S, {6 _: ~( C% ~5 t. K - (set_tile_pt3 1)7 A: c( x7 P! [0 f* _" \% E
- (set_tile_pt4 1)9 C `$ x- `5 ]7 ]9 g. y; j
- ;; Define action for tiles
8 o# v3 x6 D4 y# l. R* f0 K" i7 u - (set_action_tiles)' V3 Y6 _+ B6 J2 ^/ P: D
- (setq dialog-state (start_dialog))+ f! _$ P2 \. q$ c
- (if (= dialog-state 0)( S. l5 ~7 }. f" P9 I
- (reset)
. l& Z* o2 z4 } | q% X' `" k - )0 z- ~% F6 p- b9 U: i" l$ e
- (if (= dialog-state 1)
) ]: e2 Z& o: O' p; g2 \$ U; Y - (modify_solid)) M, w6 z+ M9 @1 A9 r4 {5 ]+ N
- )
! n1 G& T( l/ s2 H. }: { - (if (= dialog-state 3)
- v! s! ?6 n0 s- s - (progn3 N0 F7 x% ?1 s( {
- (modify_solid)
. F* @2 A2 {" B- z/ x8 U! u3 Y - (setq pt1 (getpoint (list x1 y1 z1) "\nFirst point: "))
- y/ r1 ^# |6 W; q- E - (ver_pt1 1)! B9 M g) \" o3 V
- (ddsolid)" e$ f5 b- A+ x0 n
- )3 B; L, h z' |7 B
- )
# M2 E+ b8 G ]0 k# y8 x; g - (if (= dialog-state 4)
# q0 S8 _, f/ b3 a4 W+ _! o - (progn1 z: V. d' o$ p9 a$ d
- (modify_solid)
/ @4 d6 ^$ F, B! g! i: i/ O0 R2 o$ |* S$ S - (entmod elist). P% {" M6 m g; w
- (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
% Y) p! p' @' a9 F - (ver_pt2 1)3 b. W' P; ~* M3 [8 _
- (ddsolid)
* [( e+ r+ `3 q! n5 x9 q5 K - )2 s. u9 c% L" Q) G; S! E
- )
F; E& B! T8 j1 h+ H) [+ h - (if (= dialog-state 5)- ]: a( f; Z, B) N
- (progn4 E! `% j; m' i
- (modify_solid)
, F8 G9 e& R. I6 A) H - (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))+ z& k$ e, _; B3 }0 `
- (ver_pt3 1)' p7 P* U6 ]- ?& r6 w6 e9 _
- (ddsolid)
* R* E6 P& \8 }- j9 W3 v. C - )
" s5 N( F; j$ Z& G - )
1 Z$ U1 [2 M2 o" n9 L0 L5 ] - (if (= dialog-state 6)
5 |' I+ B& ]. c$ W" D% s - (progn
- J0 A$ U6 i5 Z+ p - (modify_solid), F# b/ Z7 u" F7 |
- (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))
% r6 e. ^( |8 w- o/ P - (ver_pt4 1), }, G3 C$ o3 |. u- ]2 {
- (ddsolid)* |8 g2 _6 z* m5 K7 y& e# T
- ); b- h. \2 G. R3 @6 n O1 A8 J+ a
- )
' F$ u) a+ N9 R2 i- k; c: l, C - )
( ~4 w* F' s$ o; t9 ? Z$ ] - ;;
$ t* q, a& E6 h- {! i - ;; Modify 3DFACE: K: l7 g) H' f: V# h
- ;;- _5 m% e& h+ M: K
- ;; Check visibility of edges/ d4 o9 d! _; ?- w& V6 N2 L
- ;;
" q; y9 t0 G- S3 s! V - (defun edgetest (/ bit1 bit2 bit3 bit4)
$ ]4 a) g/ n: u$ M# D+ r( J% ~ - (if (= edge1 "1") (setq bit1 0) (setq bit1 1))
0 d/ i2 C% u2 U( @ - (if (= edge2 "1") (setq bit2 0) (setq bit2 2))
! e( w1 j0 o' } - (if (= edge3 "1") (setq bit3 0) (setq bit3 4)); u' A* S% ~8 O5 j
- (if (= edge4 "1") (setq bit4 0) (setq bit4 8)). Z( P5 t1 |- {6 a
- (+ bit1 bit2 bit3 bit4)& G9 ~' U% S* [' q( s6 ]) g
- )) S" q4 y9 O" ?. l' D, |+ B
- 0 U+ P3 o+ K3 Z3 z: F8 j7 ]
- (defun modify_3dface ()
' @8 K. r" s+ C3 n& u C& S - (modify_properties)
/ P' {6 U5 U. _1 B- {( o/ | - (setq pt1 (list x1 y1 z1))* u* R) n9 ?( c! M! Q
- (setq pt2 (list x2 y2 z2))
* R; @% @2 d; L! p8 F& j Z* v - (setq pt3 (list x3 y3 z3))( u6 f! `) X8 n! J9 U! m3 ^
- (setq pt4 (list x4 y4 z4))
! M$ e3 F8 {; l B) ] - (tempmod pt1 10 0)
! f9 J# g& W! d5 q$ J' V/ U - (tempmod pt2 11 0): S' C& N W, O9 n1 O+ {
- (tempmod pt3 12 0)
% L* m6 K5 {0 v3 r2 } - (tempmod pt4 13 0)4 Q8 W3 t' p* @$ Y
- (tempmod (edgetest) 70 nil)
7 W1 b- W, [% d* \- ]1 `3 C2 G - (entmod elist)
9 Z( j: F/ F% r: R0 ?" u. P" a - )2 a; l5 E& ~7 k$ I3 h% e! l
- ) M) F3 |# F+ Q. d( F- g! H; m
- (defun dd3dface ()
4 r5 |* a5 h2 k. o% ]* }) \ - (if (not (new_dialog "dd3dface" dcl_id)) (exit))
1 y% K! n5 \0 c9 y0 |- \- k - (set_tile_props)
% T& s3 v0 O) _& z+ }* A - (set_tile_handle)1 W( W4 S8 q$ W( i! F! n9 N+ I, k
- (set_tile_pt1 0)
1 N( I1 N4 E* w6 U - (set_tile_pt2 0)# T1 j3 E4 p: p: ^0 |
- (set_tile_pt3 0)
' O& G# s* o4 x3 }* X( s! ? - (set_tile_pt4 0)1 L" s' m+ {, }7 y* p
- (set_tile_edges)
4 O% y( m5 T+ F. Z9 l8 \ - ;; Define action for tiles4 Y1 j: _" v+ P! @& Q1 \7 q
- (set_action_tiles)
7 a; }1 e) E( e, i2 g - (setq dialog-state (start_dialog))3 D2 Y0 z# K4 p& Z3 V
- (if (= dialog-state 0)
3 }+ ]9 S0 Z' h& }1 N8 f - (reset), u2 x' O, a& U3 j: F
- ); D7 N# g- G, c( Y
- (if (= dialog-state 1)! ~( x, M; Z4 t" R' W3 E
- (modify_3dface)
& w1 k) F1 j [7 ?5 H! Y: ~) P - )
. m& P" L* \& ^2 Q8 C3 E5 P3 I - (if (= dialog-state 3). ^/ i$ o; i+ O
- (progn
# F- m' h6 U' Y0 V - (modify_3dface)
) {# s+ `0 | _& m - (setq pt1 (getpoint (list x1 y1 z1) "\nFirst pt: "))
% U% l6 N8 ^% p8 i - (ver_pt1 0)
: p b/ M7 Y3 ~' M - (dd3dface), z. ^' k: p& Y+ A9 D p1 {
- )
" A2 Y, C% l* S; `$ ^ - )
, ?# I' q* k$ h9 [% ~/ Q - (if (= dialog-state 4)
/ `0 Q0 O& V& O3 P% y' \ - (progn
' z' w/ Z4 o7 [; g, B - (modify_3dface)4 T8 {, e( h! T7 F8 r
- (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))+ `- z! y* H Q0 Q8 x
- (ver_pt2 0)9 d- V W) N. M: f4 J
- (dd3dface)
) }4 Y9 m3 x9 g" K3 G* H- }$ Q& v - )
# g. Y _+ G3 X% v7 t - )5 d7 H0 V$ r+ C6 V& n$ ], l0 D9 ^
- (if (= dialog-state 5)# f; G. q7 w" S( V& _" t
- (progn
: D! b" ]* ~. P# i' n - (modify_3dface)) P( B I/ {0 v' h% h; \1 X3 p
- (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))( d4 ^, g7 P3 y4 n, e, o
- (ver_pt3 0)7 Z1 L8 Q& |- _ D- g
- (dd3dface)' [, R. L J* p% w6 h O% q
- )
7 Y' V( O) g4 T( o' G( Y - )
5 z, r" A' _% Q9 {' J# f. z/ a - (if (= dialog-state 6)
/ w$ N$ h; K! c! E - (progn
. A! N [! W6 Z% ]# U! b8 ` - (modify_3dface)8 l+ g6 t' d( l4 J P0 B" F
- (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: ")), J0 v0 K8 R& w
- (ver_pt4 0)% z2 ?( e* u8 _4 a/ n
- (dd3dface)6 D/ ^! k* v' Y& h# H) I# Z
- )8 e- G3 `' y# j4 z3 L0 D( E
- )% S! a/ W" U0 {4 d
- )
9 [% {- ^: S# f- \4 f$ b - 2 s) N. x4 k" J8 d; _. H0 ]
- ;;. j; y3 S! Z" e: a. ]/ @
- ;; Image functions+ k7 G. a- K% V8 V1 F3 y+ e# G' }
- ;;
: Q) P- D4 y/ B+ k' c8 ~9 N - (defun image_scale (/ upixel en n userscale temp)
9 ]: \, N/ c8 H - ;; Calculate the size of an image pixel in AutoCAD units
( q& o5 z9 f4 v- R - (setq upixel (distance '(0 0 0) (cdr (assoc 11 elist))))
1 Y+ v- m( f0 V9 c$ } - : W. A; C9 k" O! C& V
- ;; Retrieve the user scale
8 ~- d# N( C! B n$ `+ w - (setq en (dictsearch (namedobjdict) "ACAD_IMAGE_VARS"))6 J6 k2 v" i r( O. m
, f/ k) s# t. z: B" u) d9 b2 I- ;; Next, extract the image units and pixel resolution9 E- g( V8 a, l/ t2 p+ L
- (if (or (= 0 (cdr (assoc 281 image:olist))) (= 0 (cdr (assoc 72 en))))0 K8 C* E% e, x( Y* g
- (setq image:scale (* (cadr (assoc 13 elist)) upixel))/ m2 T8 x7 z3 f$ k3 |) |, O0 L) B
- (progn
$ p" C7 Z8 H- v/ X - ;; Convert the user scale to the proper word
- ~% q4 }# i' @0 w: | - (setq n (cdr (assoc 72 en)))& Z$ v5 Y+ @% L& p
- (setq temp (getvar "LUNITS"))* G* {$ R4 L) T3 K) f2 {8 p
- (if (and (/= n 0) (or (= temp 3) (= temp 4))) (setq n 5))! [" @' o, l6 Q" M& E
- (if (= n 1) (setq userscale "Millimeter"))
+ A S- v* s# G- Y" o - (if (= n 2) (setq userscale "Centimeter"))' r! J2 I4 B( n0 x/ p
- (if (= n 3) (setq userscale "Meter"))
& M. a0 ]* D6 J/ X - (if (= n 4) (setq userscale "Kilometer"))# j; ?) s) b @# h- R( v* r9 A
- (if (= n 5) (setq userscale "Inch"))
0 J, U4 C' I. D, O - (if (= n 6) (setq userscale "Foot"))
7 @2 { q! J* S' Z - (if (= n 7) (setq userscale "Yard"))
7 I4 s/ h% i( B2 S! P; I0 a! l - (if (= n 8) (setq userscale "Mile"))
; j" F" j- ]! E& B* R# B - (setq image:scale (/ upixel (cvunit 1 "Millimeter" userscale) (cadr (assoc 11 image:olist))))1 S: i7 j& |/ r$ U" z0 N
- )* Z. G5 [* R: c* Y: p3 ?9 u- v
- )! M1 G2 P; q1 ~: h
- )
/ b; y; P A3 K$ h# r
' g! y' ~, `$ h: c, s6 w- ;;" D( _& m" `( P+ Q1 u" \9 m, Q
- ;; Scale factors for block insertions# \! L* {( W3 x1 F. x; g) e
- ;;" b" s2 J9 |, E8 y- N
- (defun image_set_tile_scale (/ temp)
7 t- u/ f1 O$ f4 s" l; F - (setq temp (getvar "LUNITS"))
$ }( S; P, M2 c$ y0 n/ O - (setvar "LUNITS" 2); w5 ^! h* }0 I: e
- (set_tile "xscale" (ai_rtos (* image:scale image:mult)))
7 |5 T& j" ~4 j" S' G! U - (set_tile "wid" (ai_rtos (* image:width image:mult)))
' U8 B% Z: n5 k$ s; g - (set_tile "hght" (ai_rtos (* image:height image:mult)))
) k P: |0 C: A8 ]0 U - (setvar "LUNITS" temp): y, f4 h$ T; L* B
- )" a r% g- z0 @
- / ^& D$ r e+ M& x. S+ J" ^
- ;;9 F2 i; ^* |. ?3 _4 M- |. _' L1 K
- ;; Set the scale, width and height values appropriately.
% U* M4 ]* f+ y; |% q" c2 o& t7 b - ;;8 q: h: k% n" J5 x; `1 \% T N1 w
- (defun image_update (field value / orig_value new_value mult)
( p( P5 Y5 ?7 b# c3 ` p - (if (= field "xscale")
# Z4 ?9 { v! n9 T6 o& o' j' U - (setq orig_value image:scale)
- \) r, [6 w0 z0 P* X% d - )5 P" h4 M6 R7 X' d' u* P" P
- (if (= field "wid")" R9 \. i" [+ X
- (setq orig_value image:width)* e) T$ x) o' s2 a1 N
- )
* s+ U+ J8 P( |+ [* T - (if (= field "hght")& t( O( y6 E7 S# j, F+ N( u
- (setq orig_value image:height)% x) w* p5 a) z! _# T6 |$ o1 `% U
- )
% ^. b+ x9 N: W E5 j ?0 p: _ - (setq new_value (verify_d field value (* image:mult orig_value)))
1 S# s; C9 ^5 j6 w- G0 N - (if (/= new_value old_value), c$ @: Q, ?" C, t2 Z
- ;; Make sure the user has entered a sufficiently large value
/ ~ _# z. L$ H/ ?% [, B - (if new_value; V# u4 n' K. ~! Z
- (progn
3 M! f, H1 @% o; @) C( u - (if (< new_value 1e-8)# R7 p. h2 `( [
- (setq mult image:mult)8 N4 Z* ?# M6 D
- (setq mult (/ new_value orig_value))
* K+ l; S' g- G/ j, ? ~ - )1 W/ c/ h2 p3 W6 _; P- b( V8 N! G. P
- (setq image:mult mult)2 d+ |7 X/ _, N0 I) s! b* P8 f
- (image_set_tile_scale)
# s. K S# Q# p - )
0 C6 n7 c: e2 g5 F - )
1 ]" O( v* Q( X! p9 X - )( H! S( O* c6 `2 k8 @8 f
- )
, e7 R7 ~4 }. ]) \8 ` - & `" U& A1 a( O5 G! q
- (defun image_disp_opt (bit)" o! G' H" r2 x; D+ G1 P" J
- (setq image:options (Boole 6 image:options bit)); ?# v" w' a/ I# t0 ?- u5 \( Y" h
- )
$ a( _' S" m5 H7 B
3 m7 W2 I' D0 _ x, a3 m- (defun image_modify ()! K# [' \ W, }8 z. R, V: b: c
- (modify_properties)+ A0 A' d& K: U$ M
- (setq pt1 (list x1 y1 z1)); A1 v- U0 f) e5 f7 l
- (tempmod pt1 10 0)
9 z1 j; S/ a' j - (entmod elist)5 P: d4 ^5 D- h$ ~& t
- )4 c3 n8 p6 }' q! g, l4 |
- 7 F9 `1 C, [8 D# v: [- i
- (defun image_clean_variables ()
5 Y( m x' \# o - ;; Clean up global variables used here' X. H {. ~4 Q- x! b7 C9 V
- (setq image:scale nil)0 S) ^6 ]( z1 [) x% u( g* ], B
- (setq image:angle nil)+ |( F5 d, a4 g( B P
- (setq image:width nil)
+ L. g4 m9 T) K5 u - (setq image:height nil)
1 C8 }3 S- n' @+ j2 [ - (setq image:options nil)
5 v7 M# S+ P7 j" Q0 z& f8 ] - (setq image:oname nil)! N- T3 v% g% r% w2 o, K, S7 I. d
- (setq image:olist nil)/ e8 T0 E6 n$ }/ @. Y
- (setq image:mult nil)+ E, p' F- Y2 ?4 [
- (setq st_ang nil)
- R+ U, @/ L( q3 w - )3 G0 ~# ~: @9 A5 Q% v& Q/ C
- D# z) U h" o( c9 V l- (defun image_scale_vector (v1 value)4 Y) ?! l& a/ }
- (list (* (car v1) value) (* (cadr v1) value) (* (last v1) value))
: `0 M# U- A9 ~9 X - )
7 M% h- a6 d+ H: p! b
7 g! L v& g3 ^5 g4 s. S" I- (defun image_cross_product (v1 v2 / vx vy vz)2 W) c. T$ h, z& t1 r, z
- (setq vx (- (* (cadr v1) (last v2)) (* (cadr v2) (last v1)))): V# ^: d# j1 P, B* o3 k6 C; N/ d
- (setq vy (- (* (car v2) (last v1)) (* (car v1) (last v2))))+ r# q( Q# F1 D; ~$ |. e
- (setq vz (- (* (car v1) (cadr v2)) (* (car v2) (cadr v1))))% I2 @3 D2 h( i7 y8 u. [
- (list vx vy vz). [6 K: x& k5 ^% g4 k0 B+ }( e
- )
$ O' g: `& Y- G1 k; u
+ u( e( s9 J& q& H# o9 z) h- (defun image_dot_product (v1 v2)* ^# k1 V2 ^+ T: o' d, a: C
- (+ (* (car v1) (car v2)) (* (cadr v1) (cadr v2)) (* (last v1) (last v2)))9 k7 J) d% p1 _6 I' O
- )
{" B0 Q _7 ~3 p% ^9 ]
* F, E. \1 c: Q% a- (defun image_add_vector (v1 v2)% l% V" u6 C! B/ m' {
- (list (+ (car v1) (car v2)) (+ (cadr v1) (cadr v2)) (+ (last v1) (last v2)))
% r0 Z# {7 i/ ^ - )
7 X H' y; Z( S; _$ s7 r - ; z3 {# X3 k. x, N# s3 c
- (defun image_subtract_vector (v1 v2)' S# L# g8 \6 M$ k; z8 L' ~7 Q- q
- (list (- (car v1) (car v2)) (- (cadr v1) (cadr v2)) (- (last v1) (last v2)))3 Q* y) I% r' ^# p5 K+ X4 q6 _0 r
- )
2 M) m7 F+ T; c& n; L
# Z% X, p9 z) r1 a# z- (defun image_normalize_vector (v1)
, ]0 b/ R& U: p8 L( h - (image_scale_vector v1 (/ 1. (sqrt (image_dot_product v1 v1))))
( X; p' ]& O. c" g1 b0 J: { - )* |$ C5 K4 I! \/ h1 {# J
- ( a& i- O+ k1 t* }. T
- (defun image_rotate_vector (vector angle axis / along_axis axis_x_in_rot_plane axis_y_in_rot_plane in_rot_plane)
2 z4 J* N1 k8 G2 \- |' a- V - ;; Normalize the axis$ t' o3 v# j: w( A, S2 S- q3 ?
- (setq axis (image_normalize_vector axis))
1 g1 o7 j; H7 ^/ X: o, V - (setq along_axis (image_scale_vector axis (image_dot_product vector axis)))6 {+ P5 |0 ^/ z5 L( `+ W
- (setq axis_x_in_rot_plane (image_subtract_vector vector along_axis))3 w- l$ [' q' | d3 ?
- (setq axis_y_in_rot_plane (image_cross_product axis axis_x_in_rot_plane))
% [( J1 { p9 i - (setq in_rot_plane
; |3 b3 W8 @/ ]% Y - (image_add_vector- C, [1 x, j, V0 w% ]
- (image_scale_vector axis_x_in_rot_plane (cos angle))
3 { d4 o: \' E# I. a# O - (image_scale_vector axis_y_in_rot_plane (sin angle))
. Z5 {9 k( v0 `# ]9 j9 V8 } - )
3 x0 z- z$ W0 P% C6 b+ e - )% M8 P+ }9 B6 ]& N* b7 p
- (image_add_vector along_axis in_rot_plane)) O' p' L# k% _! C* k
- )+ ]$ ]- ?7 W; C/ E, t' y, G
1 d* m1 ?+ T* q, @( i2 n& N8 B- ;;9 |- Z W4 j" S# I5 D5 J* {9 X" T
- ;; Calculate current rotation angle if appropriate.) s# {' x5 k* I9 h
- ;; If not, grey out the rotation field." d/ r( h1 e; P. {5 `7 D
- ;; H4 a) z, v, b
- (defun image_rotation (/ normal rlength zlength sqrt_tolerance)
# Q) D5 V# V+ Z j! @6 x3 X5 i - ;; Determine if image normal is codirectional with5 i) g6 o8 o: y, D
- ;; the current UCS Z-vector.& Q, ?8 u, ?* r5 f, L
- ;;' n) N$ ~( r2 v* C1 c1 g
- (setq normal (trans (image_normalize_vector (image_cross_product (cdr (assoc 11 elist)) (cdr (assoc 12 elist)))) 0 1 1))& |9 Q# }3 H3 ]* Q1 T7 c0 _
- (setq rlength (+ (* (car normal) (car normal)) (* (cadr normal) (cadr normal))))3 K( a: v9 G+ e; }% e) P
- (setq zlength (* (last normal) (last normal)))0 ~* H, |$ J! Z
- ;; Note that the value .0001 in the radians is approximately 0.0057 degrees.
" Z! w% _" }( p0 @) m* ` - ;;
) h% ?; R [7 [ - ;; cos(.0001)^2
9 F) h4 q' t/ I0 @9 h7 v - ;; Tolerance = --------------
' B0 E' f& D$ A( z - ;; sin(.0001)^22 U# ]+ e( x2 H( w
- ;;
5 B: w- h1 V; I% ~8 k9 ~5 [2 D' ~0 ~3 D - (setq sqrt_tolerance (/ (cos 0.0001) (sin 0.0001)))5 V8 a; C+ f C& z; x. X4 L/ l# A+ m
- (if (and (< (* rlength sqrt_tolerance sqrt_tolerance) zlength) (> (last normal) 0))4 a4 k6 I5 l g& D: Q" D, g# e/ L
- (setq image:angle (angle '(0 0 0) (trans (cdr (assoc 11 elist)) 0 1 1)))
& Y! A8 V3 O1 {. G1 [' H - (progn
! {* m% I' V7 Y9 Z! O - (mode_tile "st_ang" 1)
/ A/ k: l9 U3 w1 ~/ r' @ - (setq image:angle 0); }7 f/ {( P+ a% ]2 Q
- )
. {2 U! v6 z7 S* t! Q/ M# j% c - )
' g: a2 ^" f1 k5 e( ]. S a - )
, [; x# Q! f9 o. M
! \2 K8 S3 I% `0 D8 O. h- ;; N! f0 N q3 U* S
- ;; Modify Image/ Z* b8 F& A- w' N7 m o
- ;;" `" Z8 l( A( j5 \4 l3 C, N
- (defun modify_image (/ u_vector v_vector z_vector)
3 M6 R$ K9 i) a) @) W% Z" ? - (modify_properties)0 M; C# {- E/ c' ?' K; [9 }
- (setq pt1 (list x1 y1 z1))+ L) q: b6 l# ~# `# X2 C
- (tempmod pt1 10 0)9 V- Q6 ^. S$ O3 m$ j) P
- ;; Make display option changes to image
0 R; t4 m0 x; k% C - (emod image:options 70)0 m+ P# M7 _+ n" F4 X
- ;; Get the u and v vectors8 v1 _* v/ \ D& \( |
- (setq u_vector (cdr (assoc 11 elist)))
! o0 l0 m& k7 J/ [* A% \# I - (setq v_vector (cdr (assoc 12 elist)))4 g, u- w; Z" V2 {
+ [( C- u& e, d- ;; Make scale changes to the vectors$ l) l/ e( \9 r
- (if (/= image:mult 1)1 w9 J& e1 Q" D) A% X* p, o7 I
- (progn# ~6 ^ ^1 X& b/ c1 ?0 r! }
- (setq u_vector (image_scale_vector u_vector image:mult))
" w- P; y1 {- B - (setq v_vector (image_scale_vector v_vector image:mult))8 N |' L( U8 ~8 Q5 x- N
- )
1 z- C8 W% c6 [& T7 c) M - )
- J2 T, V$ w# o& K% H1 B* ]+ t - ;; Rotate the vectors- p8 R" V8 ]3 R1 {
- (setq st_ang (- st_ang image:angle))( x0 l T5 b; V: q
- (if (/= st_ang 0)+ g7 }' H9 o! N, B# { ^4 |6 O5 w
- (progn9 n* f, T5 D7 W, ]8 L- v, c
- (setq z_vector' g* @2 Q: R1 ]1 E* u, V$ u* U
- (image_cross_product
# {( V2 t- a$ j9 ?6 l' @ - (image_normalize_vector u_vector)
. ~% C7 w D" ]; ` - (image_normalize_vector v_vector)
# W8 u: `- _; B/ {3 I% e6 @ - )
) e& O) j8 V# e- k2 ? - )) |- l+ X) P5 N. [" [, S0 G
- (setq u_vector (image_rotate_vector u_vector st_ang z_vector))
/ D; n S( w8 i& k9 V( }9 T. y - (setq v_vector (image_rotate_vector v_vector st_ang z_vector))
& w q4 i" p1 B/ m9 C1 N - )
% F! }: U$ b2 e! S0 g - )+ M' V. o) B( E; m9 f" ?( y; j
- (emod u_vector 11)
3 N1 e& R+ h: T' f - (emod v_vector 12)
4 Z( w9 y- L, F, O: r* g - (entmod elist)! [' n/ [/ e) j
- )
$ s: H( K7 e+ d+ r" M$ x
* Z2 P1 f# Y# p7 _& D/ K, N( g- ;;* W" [! q; T/ R0 V
- ;; Run imageadjust on given entity, working around possible6 L: m' X% {# J( V5 K1 Y( u$ a
- ;; re-entrancy problems x; c& w5 W3 ^- O2 r
- ;;
6 ^( L/ e/ [4 E& T q - (defun image_adjust (ename)4 ^) X3 r3 |* o, h
- (verify_arxapp_loaded "ism.arx") ;; make sure it's loaded...
M# e1 V) P( m/ q - (imageadjust ename)
2 t/ o1 v( d1 j% T2 G# g - )
6 ]( g/ ]. E0 V0 S& l
' ~# E1 R2 w% s+ S2 ~4 r- (defun ddimage ()5 ~8 T! H# u, s3 x/ S8 q4 C* ^
- (if (not (new_dialog "ddimage" dcl_id)) (exit))4 c, a7 f+ `5 Q* F( G9 H4 N E. b- A
' M7 R! _: @' v( X. y4 E- ;; Grey out the thickness field.0 D% p" ?; I. ^8 b
- (mode_tile "b_thickness" 1)3 T8 O. s: p# S2 S; [, a$ j- O9 {% n
- (mode_tile "eb_thickness" 1)
0 d& W4 s1 m0 n+ K1 R4 v - * s2 D! l; c8 d& C% N" w: K
- ;; Get the associated def object.
' @, T* B- U' x3 F- { - (setq image:oname (cdr (assoc 340 elist)))
5 D! L6 q5 N6 N/ d1 B6 f - (setq image:olist (entget image:oname))
1 n' Y! C4 Z$ |. D; C& h5 x - # M* ]$ Z+ X" r T9 z6 Z: T
- ;; Set initial tile values3 U4 c% a. N! w$ q
- (set_tile_props)8 z. `( r4 I6 |8 {( N( W- C n4 ?
- (set_tile_handle)
$ d c5 Z. _1 P7 o# h9 _6 N& [ - (set_tile_pt1 0)
0 [( @& ^, k n- b* g( L6 R6 r - (setq image:scale (image_scale))
) \0 E5 s/ N( o: S0 D5 e* s - (setq st_ang (image_rotation))/ O" C( H8 c8 I- x0 ]. ?
- (setq image:width (* (distance '(0 0 0) (cdr (assoc 11 elist))) (cadr (assoc 13 elist))))3 h$ {' D& `& @4 C( o8 h" {
- (setq image:height (* (distance '(0 0 0) (cdr (assoc 12 elist))) (caddr (assoc 13 elist))))
9 }( d, d, e# ~2 R4 P - (setq image:options (cdr (assoc 70 elist)))/ }0 o2 z: d! L3 C) K. N
- 9 d4 X2 k# q% Y* s3 y7 d
- ;; Record the last multiplier for use in image_update function
2 T7 V1 {" d) K4 j - (setq image:mult 1) v. `8 o% y" k( t2 u
- * D |. b$ S* J- q9 c5 ]
- ;; Retrieve the image name* v$ {0 B5 D2 ~6 p7 G% ]
- (setq fn (reverse (dictsearch (namedobjdict) "ACAD_IMAGE_DICT")))
1 j' g, h4 T$ N$ c7 O& f; I4 O; a - (setq flag 0), h# ?& k6 J) W/ a# m9 G( Y
- (foreach n fn
1 L" e) E9 ^' {2 \* e - (if (= flag 1); @0 f4 Y0 ]9 Q; q; f# X! T3 p
- (progn$ E5 Q2 K1 r7 F4 n
- ;; Display the image name
# y8 l8 b$ b9 L9 n" j - (set_tile "image_name" (cdr n))0 p# _3 t4 L* T7 k6 v. v: k
- (setq flag 2)
# S+ H" S g) K# i- I0 C - )
) k. p. M( ?, r! m - )
& }' k2 c* p. A. _ - (if (= flag 0)4 q; g9 b4 r7 R5 {7 w# F6 Q( b
- (if (equal (cdr n) image:oname) (setq flag 1))
$ f2 {+ i+ @! m7 D$ f* R - )2 J& W5 d( D% |4 ]! J7 e
- )
$ n. p1 D6 g# c6 u - 8 F. ?- K( j5 l# m ]
- (set_tile "image_path" (cdr (assoc 1 image:olist)))
; ?& X( W; w2 J0 }9 R3 |1 B - (set_tile "st_ang" (ai_angtos image:angle))
; i6 S2 ~- o3 @5 r# m/ l - (image_set_tile_scale)
( r2 H/ R. M) @' h
: g7 c1 k' C* _) V& b. Z3 k- ;; Check the appropriate boxes) B/ q$ @! N, t& d1 q5 ]; g
- (if (/= (Boole 1 image:options 1) 0) (set_tile "image_show" "1"))2 b, j6 i) t6 k$ m" r. q
- (if (/= (Boole 1 image:options 2) 0) (set_tile "image_non_ortho" "1"))
: l, _3 n7 g0 B9 j2 E - (if (/= (Boole 1 image:options 4) 0) (set_tile "image_clipped" "1"))+ ~6 N# S, _* j3 ~) j: a
- (if (/= (Boole 1 image:options 8) 0) (set_tile "image_transparency" "1"))
% f' u' O- k( ^ L: w: x# ?
3 D& q. j* w2 l: N- ;; Define action for tiles* S' d$ H( j" r: I
- (set_action_tiles)' A9 g- I! d$ X" j& r$ ?
- (action_tile "xscale" "(image_update \"xscale\" $value)")# B4 ]8 v1 g$ U: {8 V
- (action_tile "st_ang" "(ver_ang1 $value)")
4 b9 F+ P' x% s' Y& m - (action_tile "wid" "(image_update \"wid\" $value)")
+ g; Q, R; S3 B9 Q' U) E1 r - (action_tile "hght" "(image_update \"hght\" $value)")
% K9 u4 O( f0 |& ]- |7 ?- `2 }6 o9 R - (action_tile "image_show" "(image_disp_opt 1)")
1 k/ D% g, M( ]. V - (action_tile "image_non_ortho" "(image_disp_opt 2)")
* k+ z3 Y2 P& ^ y" B8 s# y) I - (action_tile "image_clipped" "(image_disp_opt 4)")
0 F" M5 ~3 e$ b1 H. e1 ]4 J. |) k' [ - (action_tile "image_transparency" "(image_disp_opt 8)")/ K# [4 T. X0 P* z
- (action_tile "image_adjust" "(done_dialog 4)"); b: h0 c( b. y7 e
- 8 G, x' u; P2 M9 b' T
- (setq dialog-state (start_dialog))/ V( E% _0 b6 `9 x1 T
- (if (= dialog-state 0)
/ |# b# p# q# m" W h2 J - (progn
; O! H" r# ^: |. H+ M" A) |/ W" g9 k. m+ a4 q - (reset)7 \0 x0 V0 {! S6 h$ @" u
- (image_clean_variables)
/ G+ h% ^) {4 O& c - ), \! \5 B$ _( K8 X- W, q: q
- )+ Z4 \* _0 n8 n( s) D
- (if (= dialog-state 1)
+ X1 N. D( }+ A - (progn( f) v' y- r5 z1 f, S
- (modify_image)
4 d7 n) R; q+ r+ I j6 ? ^ - (image_clean_variables)
5 |, k9 o5 N6 [0 [6 w8 d1 M9 S1 z - )/ T' b8 Q5 ^$ Q7 w! y! s
- )6 [- e0 h+ V) t; b2 X" T1 e2 I0 C
- (if (= dialog-state 3)
. f- N) t: [) S - (progn, e& t* a4 z$ D1 ~4 a
- (modify_image)& l7 r- f) o% c7 E3 Y" [& t+ C1 W
- (image_clean_variables)
+ }/ w/ T3 E1 p2 k - (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))( [% Y3 h! w% i/ m- ?1 v& ]% ^/ P5 P
- (ver_pt1 0)3 j% L3 v" }& R, F
- (ddimage)
; e8 V* g9 F3 y3 _( E% Q5 G3 } - )# @. m5 k% I8 v: ^7 r
- ). Z0 C9 F# f8 v* }+ v% d
- (if (= dialog-state 4) W% E, o( T9 }9 z O, B
- (progn f' M; i$ _' f# H
- (modify_image)
/ H- D f* [ I! c' o8 W2 P - (image_adjust ename)
, H/ ?# A6 a6 M A5 j; I - (setq elist (entget ename))/ j- S; F: D$ F! } a) y' |# Z, t) J
- (ddimage)
$ W+ Q7 f9 B+ Z0 L7 Y - )
: Y4 Q, B* U$ ]) c+ h/ B% N - )
0 o; y5 W9 k K- s( Z - )- U4 D8 _4 A) b0 A. B
- " ]& v3 B9 ^0 G, C
- ;;4 b7 R' {1 U d1 t$ d( h) K5 ~
- ;; Modify BLOCK (and its Attributes, if any)
9 ~* Z; j; g! d- M! [* t* w - ;;
* Q8 f* @3 W9 h) C- j - (defun modify_block ( / el en2 p1 p2 oldp1 oldp2 new_hgt old_hgt attr2 W! C& p! Q d
- new_wid old_wid old_rot scaling old_scale& Q9 }/ n0 j! d" F+ P* f
- xdelta ydelta zdelta xbase ybase zbase ipos)
" X2 I4 O p3 u' x& K9 @) e - (modify_properties). c4 r, l2 a1 ~) L4 ]. W
- 8 x* D, Y3 j* w' {+ l x
- ;; First, translate and scale the Attributes, if there are any.* z1 a' U3 D! m0 a
- (setq old_rot (cdr (assoc 50 elist))
, \& ^9 q+ Q+ a0 S - old_scale (list (cdr (assoc 41 elist))8 k) u! ~+ T- _" _$ C% S. Q
- (cdr (assoc 42 elist))
, ~* H, u5 {) y0 b, Y - (cdr (assoc 43 elist)) |1 ]6 s) \6 w# S
- )
+ u" n8 Z2 Z% C( W - scaling (or (/= xscale (car old_scale))
& E3 {# ?$ g6 ^( i% J4 E9 Q - (/= yscale (cadr old_scale))
* @1 n; T+ e' B! e3 W. y+ J- C - (/= zscale (caddr old_scale))- z3 M+ |- Y9 Q# ^' I a' U+ c
- )/ D9 l( m$ O/ Q/ t' g! Q
- attr nil ; No Attributes modified yet
! j% d" }2 c# e0 p1 \$ Y- t1 G) ` - )
; p3 o3 }4 E5 t9 k' w, { - (if scaling
/ b7 {% Y: a' N8 ?2 Z* m3 F - (progn3 P* I4 H% N$ |4 D, K# ?
- (setq xdelta (/ xscale (car old_scale))
2 x: \# w& P3 G" f) a- V5 n1 \ - ydelta (/ yscale (cadr old_scale))
/ V, i" [' J8 c6 Y: _ - zdelta (/ zscale (caddr old_scale))9 ^( g3 f- r+ @7 z8 t, A5 T
- ipos (cdr (assoc 10 elist))5 [5 Y5 {9 z' R8 i4 A& c" {
- xbase (car ipos)1 I+ @2 R2 e! L. K+ J
- ybase (cadr ipos)% R& t/ [/ V J0 m* l' [" }
- zbase (caddr ipos). F* t" j! \5 a- q+ z# U* ~% [
- en2 (entnext ename) ; First Attribute& {8 D% Y; |# `. f5 b
- )
. l6 c8 {8 z" ?8 ^- r$ ?- @+ ?
+ Z! C8 g8 E P# {3 h$ t1 I- ; If the Block is rotated, temporarily un-rotate it, along1 F- ~1 K+ C" a+ B4 k6 a+ e
- ; with all its Attributes, so the scaling/translation of the
! f" O g1 s) c( \ - ; Attributes won't have to take the Block rotation into account./ E2 v, a# a$ K6 u1 Q) P' n
- (if (/= old_rot 0.0)
; Z& S" f. W, ?6 B5 g, K - (progn: m* b9 ]; t( V
- (command "_rotate" ename "" pt1 (ai_angtos (- old_rot)))# y$ S4 A, P" h! t+ m4 d. I) w3 ?. X
- (setq old_rot 0.0
+ [8 @, A" _% d- h6 M- Y8 \" z - elist (subst (cons 50 0.0) (assoc 50 elist) elist)
6 S9 u0 h4 {/ w/ f ] - )7 L( H) E: w; \/ i! X0 y* Y
- )
# w+ S* \0 I: k# v3 t3 |% ? - )
( B; Z" t2 u [ d- z - / I. `$ f& O5 m% m# }- \
- (while en2
* m0 \ p; c( n: @7 ^ - (setq el (entget en2))" v' S4 o" b. ~+ G3 d
- (if (= (cdr (assoc 0 el)) "ATTRIB")
0 v+ E& R9 b* i$ y - (progn' y/ s) I5 ^9 T V; E/ ]
- (setq old_hgt (cdr (assoc 40 el)) ; Height
6 Q! B# ~+ x) D! t - old_wid (cdr (assoc 41 el)) ; Width-factor% K. w4 a3 K; D
- oldp1 (cdr (assoc 10 el)) ; Generation start point
; y7 M b3 h. E! ] - oldp2 (cdr (assoc 11 el)) ; Optional alignment pt$ Y' |# [. }' \/ I% Y
- ha (cdr (assoc 72 el)) ; Horizontal alignment/ B( V) k" j' P
- va (cdr (assoc 74 el)) ; Vertical alignment
' C- y0 i2 q% |8 Q - 5 |$ P; p4 f5 F ~0 m) j
- ; Translate gen. start point
6 }, |7 Q" A# Q- H0 ` - p1 (list (+ xbase (* xdelta (- (car oldp1) xbase)))' `& ?" @" |( z! Q: B9 w
- (+ ybase (* ydelta (- (cadr oldp1) ybase)))1 U& _; v; R7 d4 f+ z& b) C
- (+ zbase (* zdelta (- (caddr oldp1) zbase)))
. ^" }1 ^& I- d5 |( E - )5 t- g) V! z( Z* M# e
- el (subst (cons 10 p1) (assoc 10 el) el)7 ?1 K) i1 G. X$ }: M' a% Q
- )
. s. e5 s$ Q* ] - 4 s8 x+ q: i. I0 m i4 M
- ; Translate alignment pt similarly, if present and applicable
& L5 m( y% t0 B5 j/ e - (if (and oldp2 (or (/= ha 0)! T: c3 S! h/ t5 V
- (/= va 0)
/ ^% E2 O$ ]7 w0 l, [ - )7 B% C8 J6 |. A2 j8 z7 m1 l) n
- )' q7 o9 {& H0 E4 B# e" e
- (setq p2 (list (+ xbase (* xdelta (- (car oldp2) xbase)))1 H4 v k# g B& b) \5 E9 Q; k
- (+ ybase (* ydelta (- (cadr oldp2) ybase)))9 `7 t' f4 E; ?) E, T
- (+ zbase (* zdelta (- (caddr oldp2) zbase)))
" s' |7 t. B9 R/ `0 `! r - )
* \# w- ^1 E) h5 r4 l$ D% k+ ` - el (subst (cons 11 p2) (assoc 11 el) el)
" e( w! y' ~3 a: E - )
6 [& }: k: K" q* f7 {; c - )# ?1 R( Q+ w- O5 C: ?: Y
1 Y0 b9 ?, s+ v4 [- E* R+ o* m! M- ; Each Attribute's height and width-factor were computed% T: w, {. B( U
- ; based on the Block's scale factors. Adjust them now,
4 H8 y8 [( U/ S5 ^/ R - ; by first reducing to values for 1x1 scale...; Q% x' N" a0 v z7 Y* { c8 ^5 u
- (setq new_hgt (/ old_hgt (cadr old_scale))
5 t$ e9 P; h: I. D' y - new_wid (/ old_wid (/ (car old_scale) (cadr old_scale)))
; o8 U4 o2 ^* g t, d+ Q - )) T1 D: p, u' @: _1 \" S t! W3 o
- ; ...and then rescaling.
8 ]$ a" ^; y% l1 r' q( T - (setq new_hgt (* new_hgt yscale)
I+ {! W2 }" k% J/ ^+ F6 E8 T1 h - new_wid (* new_wid (/ xscale yscale))$ B: N2 h& u1 r0 P- F3 {
- )
3 W( K4 z9 u' R: t) C - (if (/= new_hgt old_hgt)/ ~+ H4 i2 i! t2 v. g1 O% W0 U
- (setq el (subst (cons 40 new_hgt) (assoc 40 el) el))" ?9 S7 t6 P2 e R
- ); h' m8 I' y; }1 K( n* U9 o
- (if (/= new_wid old_wid), z! ?- g) W/ O
- (setq el (subst (cons 41 new_wid) (assoc 41 el) el))
7 F- c5 b2 w0 K" Q+ u, C3 x - ) W' G# l# Q% X
- (entmod el)' b: A! u1 n# N) r/ N) m
- (setq attr T ; At least one Attribute modified
- x2 t# f& H& D1 e4 @5 U( j - en2 (entnext en2) ; Next Attribute
9 b( ]+ H; h4 |" ? - )
7 `7 s9 g: Z7 O: M - )7 E" j7 W3 Y& K' y4 X4 c
- (setq en2 nil) ; No more attributes$ @# |$ e( |! Z( o7 W: D
- )
$ P. B4 |5 B& \/ v: G$ ^ - )
, O$ |: o3 W. q, _1 @ - )" k4 z' m7 C" n: c) A8 f: b- \
- ): c7 x2 r' ?; Z H. m
, u7 ]9 ?/ q& {) C& ~+ k- (setq pt1 (list x1 y1 z1))
9 Q" u8 T! W% Q: R) t7 j( k - (tempmod xscale 41 nil)
& D6 x* P' R) @ - (tempmod yscale 42 nil)$ Z6 Q4 [, S8 P# V+ J
- (tempmod zscale 43 nil)
% O) Q! Z, ?6 b8 S - (tempmod col-sp 44 nil)
) S5 o* c9 `5 I& K, j - (tempmod row-sp 45 nil)
% K& x% w h- S# V1 t2 I - (tempmod columns 70 nil)4 n1 R; c' a+ N
- (tempmod rows 71 nil)
: t& Q) m+ e7 C2 d' g - (if (= xclipmode nil)
4 c7 R0 }' S. Q$ W* p - (entmod elist)
: }. L6 E% r* T% r: b - (setq xclipmode nil)
8 D6 d2 i, p& ~8 X/ a - )4 E7 e* P* J. k
- (move_pt1 1)4 ?0 O9 V$ A9 s" a* K ~- X
9 b7 q5 B* |$ A [+ p6 z2 G4 D7 T& p- ;; Now do the rotation with the ROTATE command.
- K. `6 C. s5 m8 b, l - (if (/= old_rot rot)& x! D0 x0 c& f D7 }1 x
- (command "_rotate" ename "" pt1 (ai_angtos (- rot old_rot)))4 r8 Z l% U" c' L) }; ]
- (if attr ; Else, if attributes were modified,8 @. M4 Y. N8 {# v1 D
- (entupd ename) ; just regen to force attrib display
& b! r" z, w* G9 l$ v! V8 m; [ - )
' J) R2 T4 H+ V - )
. U% j" U6 `( Q1 O& I) J - (setq elist (entget ename))7 Q) a+ S4 E: J! Z5 l9 ~
- )4 i/ ]( s& c; M9 L3 S. ]
- (defun ddblock (/ temp temp_xclip newhatch blkname blklist blktype program xrefpath)# e6 ?$ {& C$ H' v% ]
- (setq newhatch 0)- r" Z/ D9 u- y$ P
- (setq blkname (cdr (assoc 2 elist)))& b- C1 [7 _/ v: f
- (setq blklist (tblsearch "block" blkname))5 x# _+ j q, l+ e" `8 @7 Q
- (setq blktype (cdr (assoc 70 blklist)))
/ r" `( \* a3 ?; I N m - (setq xcliponoff 0)
. F& ?2 |! g" \8 _/ T6 H - (if (or (= blktype 0)(= blktype 36))
( [; p+ ?3 e* h4 }7 s - (progn6 @7 u0 I+ y) S% ~3 g( D8 e
- (setq xcliponoff (xclipon elist))' t7 ?5 O5 h0 z: O. |
- (setq temp_xclip xcliponoff)
2 u2 H: C/ K# m _2 K$ R$ y) q - )
7 M. S- q) g) p' W7 u, I - )
9 I" v2 [' i ^4 v - (if (= (logand blktype 4) 4)& b2 s; p* W0 `- Y
- (progn
; [" X. L1 P7 Y) g ] - (setq xrefpath (cdr (assoc 1 blklist)))1 D0 S, H i& h+ A+ t1 z
- (setq help_entry "modify_External_Reference_dialog")
2 r5 p& W% X+ u- {" k - (if (not (new_dialog "ddxref" dcl_id)) (exit))
7 _# F3 [& P/ u - (set_tile "Bl_name" blkname)
1 L+ q$ ]. m. {; R1 j - (set_tile "path" xrefpath)
2 y% |) N8 I- r" `" t3 N - )0 t% }( l, T; n% k
- (progn
4 L9 R6 V. m; N - ;; Get program name for use as Xdata app name
( Z7 {) g3 H3 i. U5 k - (if (not (setq program (getvar "program")))& s4 q5 [0 \4 k3 E
- (setq program "acad")
) `$ |7 e F; [) c - )
3 A% g# n) Z9 z! ~/ o9 g( T. } - (if (and (setq temp (assoc -3 (entget ename (list program))))
5 d7 S+ L( @6 o' ], g - (= (cdr (assoc 1000 (cdadr temp))) "HATCH")
" K6 f, `5 v. p8 u, s) m" n - (assoc 1005 (cdadr temp))3 @: |7 n1 b& `* I, e
- )
# a( {9 F0 Z6 Q( H6 d$ v, K - (progn
" S, W8 a, C u, \2 q3 t - (setq newhatch 1)
2 X" k3 `* j, f) k - (setq help_entry "modify_Hatch_dialog")( L, O6 a. b+ S# G
- ;;; convert the object into a new hatch( Y; r5 G9 a' @3 Z: X
- (ai_undo_on) ;; enable undo6 t% A& v# i! z& G0 }! j! _: U
- (COMMAND "_.UNDO" "_Mark")' s. v; I# x; {7 u' V; R: y& w" ^
- (COMMAND "_.CONVERT" "_Hatch" "_Select" (cdr (assoc -1 elist)) "")" u. z; c, a' z, d, ]1 i1 X
- ;;; suppress nasty message from convert command
/ M. P% `' b" z# g4 g; `$ l2 t - (princ "\r \r")
3 D( j* ^& z; J: O- w/ L0 K - (setq elist (entget (setq ename (cdr (assoc -1 elist)))))
; I! E8 j: @; W4 o4 w) ?6 b7 a2 L7 O - (setq old-elist elist)2 ? }) R( L3 Q" g1 v
- ;;; If we have cancelled ddmodify
2 T. I3 i+ c! K* _2 l - (if (not (ddnewhatch)) ;;; (ddnewhatch) returns nil for Cancel or T for Ok: C3 Z) {8 o4 a: u
- (command "_.UNDO" "_Back")
0 i W: w3 [* |+ [7 X" K - )0 L6 h0 a5 G8 D+ N' G
- (ai_undo_off) ;; restore undo state0 K1 k! z2 A" }" p- Y" B
- ). A. G+ {! v5 U# p
- (progn
! a' B4 u8 X; I5 T D' W7 R1 D - (if (not (new_dialog "ddblock" dcl_id)) (exit)): d+ x. {/ i3 }* T( t
- (if ( = "*" (substr blkname 1 1))
3 ]& t& ?2 F+ j+ I( n$ b% x* \% x - (set_tile "Bl_name" (strcat blkname " - Anonymous block"))
% Q C9 |$ p; x4 [5 A - (set_tile "Bl_name" blkname)9 J( E% F! r7 f# }$ e$ z
- )
. ? N" E$ f& l& v6 v5 {0 K - (setq help_entry "modify_Block_Insertion_dialog")
@& `$ I$ Q! P - ): D7 ?1 S8 j. ]. L
- ), H9 M% ?" b& r
- )+ m9 F# ^& A* L9 K: l# d# h( ]+ Z
- )# r+ X7 j& e) c. g* t+ r7 X
- (if (= newhatch 0)# j/ F0 a" K# N) c! p4 h7 W9 z
- (progn m% i1 b7 f* Q* Q0 E9 G
- (set_tile_props)
. e4 _' X c; P! Y. P - (set_tile_handle)! W! J8 T; G/ k3 E0 W
- (set_tile_pt1 1)
% x0 D* Y5 T7 M9 `% _: D9 F - (set_tile_rot)% V1 M u$ s. {9 V
- (set_tile_scale)
2 W, ]1 c0 Y$ }) M2 W, | - (set_tile_rc)- o" C- h+ U, t- Z" o; b
- (if (= (logand blktype 1) 1)/ F+ L4 P% T' }* J
- (progn* { m# {6 z3 ~: v& v' O
- (mode_tile "xscale" 1)
3 x: s8 z( H6 t" d* p - (mode_tile "yscale" 1)
0 t |8 M0 I$ ^# C1 T6 u' B" y5 p! [ - (mode_tile "zscale" 1)' k! t; v9 B) U6 |" r
- (mode_tile "rot" 1)
6 W/ s! N; O, x6 r( M - (mode_tile "columns" 1)
( W: b& ~( S9 `0 I: L - (mode_tile "rows" 1)* z4 h5 D+ \ G2 U) k. F
- (mode_tile "col_sp" 1)
3 Y6 K1 W: O2 V5 Z - (mode_tile "row_sp" 1)4 [* L* l5 r+ Q
- )) I5 P- L# n5 S
- )4 G5 Y3 v2 I. r c4 c& L
- ;; Define action for tiles+ w, B6 s; _( U% J
- (set_action_tiles)
4 h- U! c' o/ T* ? - (setq dialog-state (start_dialog))
. O! R/ Q3 e& Q* h7 r& x8 X - (cond
( p$ f; k" O( ~1 T4 b- x - ( (eq dialog-state 0)8 ?, i* O3 F" H8 B. {+ l
- (setq pt1 (trans (cdr (assoc 10 old-elist)) ename 1))
, q# m. p9 h) O7 i( h - (move_pt1 1)
0 ~7 f4 n0 @3 J. k5 j - (reset))1 H% j% C3 r: ? i* ~0 N5 R# i' s
- ( (eq dialog-state 1)0 D0 ?" `5 h9 i: k
- (if (and (/= temp_xclip xcliponoff) (or (= blktype 0)(= blktype 36)))8 L2 X4 o& k5 _8 Y
- (xclip) J( A6 S* ^* [- L1 l# }/ S
- )
- u, P+ F/ P! g" e - (modify_block))# V2 b- x# z! a, s% ^
- ( (eq dialog-state 3)
: ?5 ~7 a( m. g6 K2 J - (modify_block)
, `; B/ O0 X: T( O% ?* d" O4 ]3 G - (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: ")); J5 @, l6 K5 `) m' Q
- (move_pt1 1)9 ?) \- O$ X* E1 t3 l# ]+ ?
- (ddblock)), Q( L! ^, [& U1 h- k4 X
- ( (eq dialog-state 4) }% Y8 d9 \8 F0 |
- (modify_block)
( a' U) z, i8 e - ;; Get current handle.
5 J0 X& D6 N; ~; g9 Z+ M5 f - (setq hand (cdr (assoc 5 elist)))- j* Q+ k% N9 N6 ^7 D; f
- (command "_hatchedit" ename)$ D9 N% L' H1 x
- ;; If OK in hatchedit, a *new* entity is created and the old one
h0 v& y, I- u0 A* I v' ~& O* V* Y. R - ;; is deleted. So if the old one exists, it must have been a
{: u; E+ O2 L$ T6 e - ;; so rest the entity.
& e ~- v6 Z( o+ \& B/ K, j4 y! H - (if (entget (handent hand)) (reset))% N# l5 X6 \/ w9 |8 a( ^/ v' _# E/ r
- )
7 b! t! p: R T - )
( q% A! b4 y' s: x4 I- X - )% L$ s2 Q9 v8 ^( Q" g4 p) I) O% ?5 Y
- )
2 G1 R0 \3 O- b" [. Q' ~, p, o - )
' U6 {; x# _! \6 E; A5 i" K" F - ;;/ n0 a: k( A# C u7 C
- ;; Modify SHAPE0 l& b: g, c* N @1 p, r/ @
- ;;
/ T( \8 a8 K; e# [ - (defun modify_shape () m: @/ P6 P) |! B0 A' L: _
- (modify_properties)# u+ d3 H0 o( U+ |6 o9 W2 j! ^3 b* A
- (setq pt1 (list x1 y1 z1)); C. v. m1 ` B4 M; a. a( p
- (tempmod pt1 10 1)
. q3 W/ _/ r) f1 Y$ d3 | - (tempmod hght 40 nil)
- u8 j) [) {3 L! j - (tempmod wid 41 nil)
3 C# r' v( g3 U; j# j$ J" ]; n8 M - (tempmod rot 50 nil) g/ ^1 c @- |/ d: W$ i
- (tempmod obl 51 nil)
4 F/ }9 J4 T) g; e% z8 Y - (entmod elist) ^; s3 |$ i* ?) d1 q2 p; k2 K1 M
- )" W- l4 |+ m5 G2 S5 K4 F
- . {& F( r+ P' L8 k: `# I) F
- (defun ddshape ()
6 }$ q1 E. D; ^9 p! I- I' n: q( w9 L - (if (not (new_dialog "ddshape" dcl_id)) (exit))
, e$ Z; A8 Q" \% e - (set_tile_props)% q: ~1 w# l4 i5 R( K6 a( o
- (set_tile_handle)# O9 y; J$ x( \
- (set_tile_pt1 1)
* k2 @) J- Q8 k- S+ ]% e - (set_tile_rot)+ a( F0 u' w3 ^3 {0 i- U/ w$ B7 D. f
- (set_tile_hght)
8 [4 T' Y0 K, c% V" | - (set_tile_wid)/ l: O) u/ V( i
- (set_tile_obl)
6 A1 W7 b! a& _( d0 v7 p - (set_tile "sh_name" (cdr (assoc 2 elist)))
, q" h( n, G9 F" y _+ t. _ - ;; Define action for tiles' w) }* W- C8 \" z
- (set_action_tiles)
# w& R7 H; p6 p2 m+ M% ? - (setq dialog-state (start_dialog))
0 g4 a- D% b3 m9 Z - (if (= dialog-state 0)+ j0 {8 [; _' x7 c
- (reset)
/ v/ o( R! D; g5 d - )8 L1 f, ]! `& @2 n1 o" c% O
- (if (= dialog-state 1)
) [) H, A3 G! u' N% P( H - (modify_shape)
+ F- b& M' W2 c( z0 Q - )
6 n+ _: G# c3 M6 j2 y6 D! V - (if (= dialog-state 3)
9 {: c3 G: [- w3 [3 l - (progn7 Q1 {8 B" D; i/ V: B$ v# R
- (modify_shape)
; B8 f9 z: H( _7 G4 v - (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))( P, C- j' Z5 ?' x
- (ver_pt1 1)
, x+ D3 y, b- F, v8 p* v" ?; J - (ddshape)
M! ]1 O# V: t, q7 F! g8 m - )/ g: z3 c5 `+ ]! }1 |/ @; G
- )
4 ?+ \& s& y ` - )( ], z( N7 S: e
- ;;5 }( d6 p5 c+ e& H4 S1 z7 k9 S
- ;; Modify TEXT or ATTDEF
6 P( ~, D" s7 U - ;;( m& V: \2 n# t9 W+ Z5 s" P- r
- ;; Set bit code for upside-down and backwards setting, L7 W) a: V" ~
- ;;
' y# U. W2 V3 { - (defun code_71 ()
6 O& t4 ?2 u' o - (cond ((and (= bkwd "0") (= upsd "0")) 0)$ N. G9 V7 H S7 \4 ~
- ((and (= bkwd "1") (= upsd "0")) 2)7 F7 `$ X, s/ l5 Z% f5 D5 k
- ((and (= bkwd "0") (= upsd "1")) 4)$ Q' _1 v+ j7 S0 e- {
- ((and (= bkwd "1") (= upsd "1")) 6)
2 u7 u' ~2 B( ?% L. f+ K - ). [$ k* a, J+ o4 k/ Y% D7 R
- )# Y5 X# d4 z. t$ S, R( L
- ;; U' h5 w/ S- C/ X+ e o
- ;; Style action. Reset widget values to style defaults
5 d7 x/ B: B6 T7 M1 X( Y) e - ;;
4 m$ G# s9 k: e: Q/ F0 s - (defun style_act (index / style-list). T1 G$ G* r1 `: S, s' H
- (setq style-idx (atoi index))% F% g. i9 P; J1 g5 X! }: G
- (setq tstyle (nth style-idx slist))4 W6 N" f7 `, [& B
- (setq style-idx (itoa style-idx))2 y6 C& D. q4 d1 E" R
- (set_tile "style" style-idx)
% E" g% f3 c* |; z - (setq style-list (tblsearch "style" tstyle))# b+ ?+ Z+ v) q8 V
- (setq shght (cdr (assoc 40 style-list)))
7 {. h8 n3 n# k - (if (/= shght 0)
( h6 ?! j6 G9 W2 {# D, x( M7 N* [ - (progn
) t+ U- m6 U' y& q1 c - (setq hght shght)
0 e6 @3 `+ a; v8 T4 _ - (set_tile "hght" (ai_rtos hght))( j% _7 @9 Z8 U9 {
- )2 G+ q, ?4 x& t# M5 o
- )0 h1 {. \! G" t8 o# w
- (setq wid (cdr (assoc 41 style-list)))4 e+ l7 o3 W6 R' L
- (set_tile "wid" (ai_rtos wid))2 R! a3 X8 O- B, k
- (setq obl (cdr (assoc 50 style-list)))2 S: F" v& o; G g
- (set_tile "obl" (ai_angtos obl))' |/ x- ?! E% [# q. ~+ @
- (setq bk-up (cdr (assoc 71 style-list)))
' I3 \/ |' k4 t9 X7 w - (if (= (logand bk-up 2) 2) G2 J5 U* e1 `' [) d8 B6 d
- (set_tile "bkwd" (itoa (setq bkwd 1)))
2 s- Q# Z- u+ J4 j - (set_tile "bkwd" (itoa (setq bkwd 0)))8 L4 r8 }7 u! {2 l1 J
- )
( _: r" r% p& x/ T h% ]5 l - (if (= (logand bk-up 4) 4)
* u3 r K1 v, @% y6 N- ^ - (set_tile "upsd" (itoa (setq upsd 1)))$ z0 j! h7 V% `3 h l5 p
- (set_tile "upsd" (itoa (setq upsd 0)))
4 }4 E; C' D _( [" b r2 d- A - )
" D) z J. ]- y - )5 _2 [+ a# c0 l" n
- ;;' \' e6 [5 }2 h* W5 r8 |$ n
- ;; Justification action. Set vertical and horizontal alignment variables,$ {1 q* m& E0 g8 p3 V. a
- ;; grey out rotation and height if alignment = "aligned", grey out rotation
7 L6 u. m2 G2 {! X- A' B2 K - ;; if alignment = "fit".
% B! E) N1 ]1 w - ;;& {1 ?- G! s- o* b, k
- (defun jlist_act (index / templist)0 A& j) x8 d: A1 m$ o- }0 K+ g
- (setq just-idx (atoi index))& I) @5 S G8 t8 o. H3 K
- (cond# W7 a# d: o7 @6 U, [" b7 D
- ((= just-idx 0) (setq va 0 ha 0))) V! Z5 w4 o# D8 ~6 A& y
- ((= just-idx 1) (setq va 0 ha 1)) R. m: |- @+ V2 G, x
- ((= just-idx 2) (setq va 0 ha 2))
: [5 H5 A5 M) _ T. |! B/ T/ L - ((= just-idx 3) (setq va 0 ha 3))) O- q+ h# @, R9 H6 }
- ((= just-idx 4) (setq va 0 ha 4))5 A& `+ G# A: r3 _6 b! C
- ((= just-idx 5) (setq va 0 ha 5)): Z) @# |. z! e$ P6 N/ r
- ((= just-idx 6) (setq va 3 ha 0))
8 r% k3 N1 ^$ z! T - ((= just-idx 7) (setq va 3 ha 1))
# m, u0 E# ~0 V. p) {- K/ B - ((= just-idx 8) (setq va 3 ha 2))
& G4 [5 y9 g, {9 ^) ]( r9 m6 ~0 \ - ((= just-idx 9) (setq va 2 ha 0))
6 K; {# ~0 u) z6 T a% [' P - ((= just-idx 10) (setq va 2 ha 1))+ { r8 c7 Z3 ?8 j% @0 z. S
- ((= just-idx 11) (setq va 2 ha 2))
' Y& r& Y+ r. V$ ^ - ((= just-idx 12) (setq va 1 ha 0))$ @+ W5 I: @4 x* ^1 `' @7 P
- ((= just-idx 13) (setq va 1 ha 1))2 P B. |( B: [( `+ W( P
- ((= just-idx 14) (setq va 1 ha 2))
3 l4 {# t: f6 d$ |1 P9 m - )8 r7 D6 E7 B4 S& w5 L
- (if (or (= ha 3) (= ha 5)) ; If Aligned or Fit text0 a7 a: ^5 |0 X8 z
- (mode_tile "rot" 1)+ B6 X7 ^! d5 M1 V+ H# Q
- (mode_tile "rot" 0)
% F M) C5 @; S: Z1 S - )/ p1 b; _) x6 g5 Z6 c
- (if (= ha 3) ; If Aligned text
8 [ r" W0 Z4 m3 G8 [8 X - (mode_tile "hght" 1)
2 A7 R! O4 x+ t8 L1 N% \. Z2 ~. m8 _ - (mode_tile "hght" 0)
+ T; {2 V3 X5 U' x- k4 [ - )
3 G+ |5 n" J' J1 r - (if (= ha 5) ; If Fit text
3 Q* I' _# I( V$ e6 ` - (mode_tile "wid" 1): v0 w+ j1 C/ D+ _& h9 n
- (mode_tile "wid" 0)0 m9 a& ?; x" u! Q8 Z* F
- )
+ m4 o& s+ ^' h - ;; Reset rotation and height if changing from aligned.
: A1 Q7 k% U! e# ` - (if (and (= ha-prev 3) (/= ha 3)): N% c. l) |2 E0 b
- (progn
- j, D6 L( J4 n* O1 _ - (set_tile "rot" (ai_angtos (setq rot 0.0)))3 S( q. j* Z, u A; H
- (set_tile "hght" (ai_rtos (setq hght 1.0)))
9 l, l1 Q' [/ k1 J3 R* s9 f - )
, U! S8 j, o6 g" Z9 E" O - )4 l* K' M3 y! x5 O1 x( y, Z
9 w, h) J6 l: p) J/ p, e- ;; Reset rotation and width if changing from fit.
! G; [* f$ K1 \3 S7 C9 K! R - (if (and (= ha-prev 5) (/= ha 5))# u9 l# G- R5 E+ O# e4 s
- (progn j0 t& v/ V3 R" S. y9 c
- (set_tile "rot" (ai_angtos (setq rot 0.0)))
1 X' \( M: T8 Q- \9 E O5 E - (set_tile "wid" (ai_rtos (setq wid 1.0)))- x6 b/ `4 L2 d
- )
! p; p3 |0 G: _ - ): P( u: y6 m: z# p; G
- , {, i" X9 j3 e, o4 k7 Y/ E
- (setq ha-prev ha) ; update ha-prev for next time" h3 E: u5 G. Q- k
- (setq just-idx (itoa just-idx))) h7 C& a u: U# l8 D* O" ^
- )
0 V; t. R' ^4 J+ P7 R5 l - ;;
5 Q& ~# V1 R, K9 K - ;; Set intitial alignment setting based on vertical and horizontal alignment! M/ h( [' k/ M3 h
- ;; bit codes.
8 Q& i3 c0 b- X, L5 v) }4 t - ;;
2 _& p% w" y4 Y: ]! D4 @4 D$ s - (defun set_just_idx ()" \7 y2 b1 H, E9 q N; s Z6 A
- (cond: X# c& u( v3 m7 J, j
- ((= ha 0) ; Horiz alignment = Left
3 _5 D* W0 N- l; i6 q2 z - (cond) N$ @, {' g$ `+ t* y9 d
- ((= va 0) (setq just-idx "0"))- Y( ]0 a8 @0 R9 e) O
- ((= va 1) (setq just-idx "12")): | L6 Y" j; `# s; D
- ((= va 2) (setq just-idx "9")), I% L2 C# d1 q
- ((= va 3) (setq just-idx "6"))
7 A% E+ S" Y% t- C9 r - )- R7 q. v/ \! M7 x& s, R
- )
( M$ G) |, Q( Z$ k d" { - ((= ha 1) ; Horiz alignment = Center
' l ]/ X9 ^ W! [4 B; `- L - (cond
: l7 T+ g, d1 Y' F: o - ((= va 0) (setq just-idx "1"))$ U8 c' P2 r" }+ s1 U$ s3 [
- ((= va 1) (setq just-idx "13"))
2 a. }: X: w- |" Q: L2 C - ((= va 2) (setq just-idx "10"))
. |5 P: Z5 o& C8 i" v/ K1 @1 q - ((= va 3) (setq just-idx "7"))
# W; Z% W2 O) h v+ u' G+ u - )
. I/ R& R; Q- {- a" V' u% N - )- r" B5 i2 ^" m& |! l E1 g. z7 ?; c% `
- ((= ha 2) ; Horiz alignment = Right
7 A9 P# K6 ?5 `# k! D$ _4 K - (cond
1 Z. x; x: \, _, W/ W0 U - ((= va 0) (setq just-idx "2"))
/ o; J& e- D8 L, K* v# R/ N - ((= va 1) (setq just-idx "14"))$ J. q# A8 c, O: `6 Q3 e
- ((= va 2) (setq just-idx "11"))
" G2 b5 U/ n' O; R8 k - ((= va 3) (setq just-idx "8"))
2 s0 j2 d0 _8 [ - )
3 I# d- {7 G9 E- k' }) A3 V - )* R9 s7 j1 b, O; P& z/ a/ M3 h/ @$ R
- ((= ha 3) (setq just-idx "3")) ; Aligned% r; _) P) e$ D0 F+ n
- ((= ha 4) (setq just-idx "4")) ; Middle6 _* e9 Y7 B) M# [$ E5 A" G7 C
- ((= ha 5) (setq just-idx "5")) ; Fit
0 w) H( v: d6 p! q; z8 z7 V; l' B4 } - (T (setq just-idx "0"))9 I) X; W4 \ X- Z: T4 u# c
- )5 l& i$ f; }) Y4 \& i
- just-idx
4 q' F# Z4 k/ b0 J - )0 r- Y7 I/ C& y! w
- 2 o( X) e# B4 u, a
- (defun modify_text ()0 R- P5 [ x5 N2 e* T0 h+ ]
- ;; insertion point& B3 P2 S0 n! S, C% A
- (setq showpt (list x1 y1 z1))5 \# j- Q2 f2 _ x
- (setq bit-10 (trans showpt 1 ename))
( z6 e4 q$ `% S, `/ }2 ~ - ;; alignment point
5 v" d2 y7 D- o4 [# P - ;; for 'Aligned' or 'Fit', alignment point must be different$ {* @" Z: A d# S N0 b {
- ;; for all others, use insertion point z7 z; w6 w) Z9 u' D, v5 D
- ;; (ACAD will recompute insertion point)
. E) T( m8 t9 Z$ u - (if (or (= ha 3) (= ha 5))
$ [2 h9 P! F6 M% n9 X& m" R - (progn
) `2 w! z" |" |8 ]/ G - ;; if no alignment point, fabricate one2 M* Q2 b) i% A& ?
- (if (not alipt)
' o9 E3 Q! J1 ? - ;; add text width to insertion point# m, E2 d: Y& [; i5 Q6 f" b- P
- (setq alipt+ }1 W F# h; d) v% F9 z
- (list (+ (car showpt) (car (cadr (textbox elist)))), h) Q6 G) g. B! E" E" W
- (cadr showpt)
1 A( |: [. q2 U5 {( E - (caddr showpt)
* T I8 S- K: P - )0 f. O7 U, L& @- z) P/ d0 \
- )+ L% \& F% b0 R% H) U
- )) J3 Q" e% u% j+ a5 P' U
- (setq bit-11 (trans alipt 1 ename)). J8 l' M5 m6 X" Q+ L
- )
" q8 z; T4 V, k6 ?4 r& T) Q7 n7 ^ - (setq bit-11 bit-10)
# X7 A9 J( }& j! P! W - )
5 X5 E/ h5 g7 _+ r/ {' p - (modify_properties)2 X0 N; @6 p# N
- (tempmod tstyle 7 nil)
) K4 H5 n. N+ u1 k$ t - (tempmod bit-10 10 nil)0 n) a2 j, e9 f' D. F
- (tempmod bit-11 11 nil)+ x# l" k1 w$ ~$ w: v# S
- (tempmod text 1 nil)
: J5 s( |2 i6 e2 _2 Q p - (tempmod hght 40 nil)
) U4 f9 K$ U+ ?' t - (tempmod wid 41 nil)3 G. v9 ~5 P0 `
- (tempmod rot 50 nil)
5 x+ E% w, Q. r, L$ c - (tempmod obl 51 nil)
0 r. G" \& I: p - (setq bk-up (+ (* bkwd 2) (* upsd 4)))+ `. V0 q t- q1 K% K
- (tempmod bk-up 71 nil)4 e- b& ~ I4 ?6 J* s0 Z
- (tempmod ha 72 nil)( X# N2 i; G! O& m% u g1 F* S2 J
- ;; Attdefs use 74, text 73
/ G5 \. X, Z% |. e: d" L4 V - (if (= etype "ATTDEF")
+ U8 o4 X% Z) T" K; P - (progn
+ ~% t9 k: G `6 H& F$ o, t5 [. T - (tempmod attag 2 nil)7 D: L3 t, Z/ a8 z. V' v
- (tempmod atprompt 3 nil)
0 \, a' \% U3 w( d, y C - (setq icvp (+ inv (* 2 con) (* 4 vfy) (* 8 pre)))
, ]# p+ r0 |2 C- d4 Q! d - (tempmod icvp 70 nil)
( d" C6 v( T- m9 s3 L& `% h - (tempmod va 74 nil). q* U" F/ M4 h0 n3 b9 p
- )
+ o# ~0 G2 l1 G- i) f7 x4 r+ O) l! j - (tempmod va 73 nil)
- P: J4 N* _; C& ?. O& z2 |. b( F - )) J6 N) K/ s/ _/ O& m7 F
- (entmod elist); ~8 v* A: y* k2 S8 P' d6 d0 x
- ). m0 P3 Y* v6 s1 l, p
7 `. v1 _( W* i- (defun ddtext (/ 2ndpt slist i)* H& r0 Q( P; S8 L/ D0 N- g. {
- (if (= etype "TEXT"), t$ D1 m7 Z7 N' I. `4 ~
- (if (not (new_dialog "ddtext" dcl_id)) (exit))3 H' }7 M; u6 E4 y
- (if (not (new_dialog "ddattdef" dcl_id)) (exit)). g J( g+ }: g' x+ G, V9 h
- )
. ]; n% }. r- `8 X( ^- I - (set_tile_props)4 `- S% ~* A# R; V" z/ X
- (set_tile_handle)
: c# T' Q! B- w2 W1 G) l+ q6 z( d9 S - (set_tile_text)
4 s3 E1 @- V0 Y; U) q% j - (set_tile_tag)
6 B1 T- ?1 _" f) w: Q2 e2 K - (set_tile_prompt), i7 w, f2 G; f' a
- (set_tile_hght)7 M/ Q4 a0 [3 q: X" b8 F- h | l
- (set_tile_wid) s7 y" l% k% l9 S
- (set_tile_rot)" r* ~. I7 c$ L$ h
- (set_tile_obl)' ^; l _. s1 x7 d a
- (set_tile_bk-up)
, G: f% A: Q9 B, W7 L2 d( q/ a' { - (set_tile_icvp)
! m9 O5 y! } } - (set_tile_style)( e) `8 h8 M. o8 `
- (set_tile_just)
7 k% a5 ~" Q! x/ I4 \; w - (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))
% k- N) G) h0 G' c! T) o& `& Z - (if (not (assoc 11 elist))9 f6 C( t5 P& m2 W
- (progn (setq pt2 pt1)8 H" B* F4 p: \; r4 B
- (setq elist (cons (cons '11 (cdr (assoc 10 elist))) elist ))9 u) [5 `0 r2 c4 Z) ~
- )8 B9 F! F5 ^& w" V
- ;;(trans '(0.0 0.0 0.0) ename 1))
$ Z9 D, @, k- J1 i - (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))( g/ l( I; @$ `% z9 g- H7 w! y
- )
( R: _! d$ |9 E! l( r - (if (or (and (= ha 0) (= va 0))7 L- J q- ^* O: h4 I
- (= ha 3)
8 W) f+ A2 M3 O6 H% u - (= ha 5)
9 t9 }8 H- K; y2 ?& t - )! j" D6 H5 P) W* e/ z: S
- (setq showpt pt1)
/ m5 |! S( j3 A - (setq showpt pt2)
2 P0 l) L0 h- G, } - )
# s& s. p, ]6 e - (if (or (= ha 3) (= ha 5))
, r( K' B* q* C* Q' [7 @% [; L - (setq alipt pt2)5 A9 ? ~. S4 G$ y
- (setq alipt nil)& T0 G8 n& _; F( }
- ): H. i& p) m# A0 \6 {
! E8 u, [' ^+ j: R' k- N- (set_tile "x1_pt" (ai_rtos (setq x1 (car showpt)))), r1 j' m; ~; G! Z1 _
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr showpt))))1 }* x( w4 ~5 Q2 l
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr showpt))))
. R$ z4 D) N1 W7 A& {8 { - * _9 z( ^4 {' F& L( F
- ;; Define action for tiles
5 ^: a# J; Q6 G8 _" N5 }; [ - (set_action_tiles)2 z$ {0 T7 R0 F2 ?, n# j# m- V
- ;; Set focus initially to the text edit box.
( X' G& a4 u2 Q - (if (not i) (progn (mode_tile "t_string" 2)(setq i 1)))0 J9 V6 N* A( z
- (setq dialog-state (start_dialog))# y. E' q8 `$ e1 o$ p& P
- (if (= dialog-state 0) ?4 O! L4 l. J' I. A2 k; p) w
- (reset)
A1 |3 [: _' W0 B, @8 x c& p - )
5 K7 N: q" ^: ~; v9 n8 y - (if (= dialog-state 1)+ y& k+ V/ e* B1 ^ {
- (modify_text)8 V2 k8 @0 h, N1 b# z
- )
6 {* p8 t7 y3 @4 y S( A( a+ V' T' x% q - (if (= dialog-state 3)
, u% ?! R$ O3 I! C/ G - (progn
* i3 X; S/ I& N- D0 z - (modify_text)
1 D; ~ j7 d! N J/ I- W3 N! q - (if (or (= ha 3) (= ha 5))
0 J7 \. ^4 [9 Z F/ ~0 ? - (progn
5 W' T( F* V# E0 {( X7 _ - (setq showpt (getpoint (list x1 y1 z1) "\nFirst point: "))
' p% n+ b" c3 n2 A* g/ M- W - (if (not showpt)
) t0 |: W4 t7 b2 } - (setq showpt (list x1 y1 z1))
' M P l# i4 l; E+ G( S) }) ] - ): h+ ~$ ]. \2 g
- (setq 2ndpt (getpoint showpt "\nSecond point: "))
) h1 M* ^# F& K: a3 l5 y7 G/ J - (if 2ndpt' l+ p7 N6 V4 M8 p
- (progn
8 I0 s6 o5 |4 {' \0 ^ - (setq alipt 2ndpt)6 v& I! G5 M; Y" {2 N
- (tempmod showpt 10 1)
0 p/ U( ]1 V$ o! s% B - (tempmod alipt 11 1)4 F. l3 Q0 ~# [+ O: h4 B/ b
- (entmod elist)4 d( X. n& }. x' g
- )
* e6 U1 b$ o# _5 x j; t7 k - )
0 J8 b+ X& o: E# B - (setq elist (entget ename))
2 |/ b' M6 v0 D9 N. l6 f - )8 D8 l# ~) v- }* w; }
- (progn6 W! L7 N0 w6 C3 A9 O
- (setq showpt (getpoint (list x1 y1 z1) "\nInsertion point: "))
. b3 B7 ^8 \3 f% K" z0 V' C. A, f - (if showpt$ t' S1 ^# p, P* v
- (progn3 f( C* ]8 i1 k& O
- (if (and (= ha 0) (= va 0))
/ p2 n/ Q# ?! q+ D) o - (tempmod showpt 10 1)* n. y8 c4 m {- o' Y
- (tempmod showpt 11 1)! I! b" a2 }. }6 T: Y1 E
- )
- m8 w O0 G% } - (entmod elist)
0 b8 |2 L; M" K/ R - )
4 S1 N! H: o& i" n- h$ Z4 @3 @ - (setq showpt (list x1 y1 z1))
1 D& H! N4 S, j- }. Z; d8 b - )! q* E' e% e; X0 L
- )
) e1 _: B- E5 c) G* N! L7 b& x - )! r, D# ~( Z- d) s' j
- (ddtext)
3 k0 j& T. V2 [7 } - )
' ?4 f4 a7 ~ ]/ l E - )8 p+ M' r) ^& _4 r
- )
6 M2 D% ~2 S& Y# N" L' u8 P6 B - / K: b& j# n/ O" n
- ;;& z0 t8 T5 b3 Y2 }! }
- ;; Modify MTEXT9 o' f$ G! \* ~: ^" c, v3 d% `! ?
- ;;
! |+ k, f5 S* v8 w - (defun modify_mtext ()
% q; R+ n0 ^2 ^3 d: r- B8 [ - (modify_properties)0 ^. Q M5 _* }9 n# U5 c
- (setq pt1 (list x1 y1 z1))
) D4 n( y& {! g- n& O - (tempmod pt1 10 0)! s/ w# F+ N5 k# i$ S4 g
- (tempmod text 1 nil)
2 H4 _ ^' k! [. C; q# M1 [3 G - (tempmod tstyle 7 nil)
$ a& }* X3 Q/ F% ]: I8 L' _ - (tempmod just-idx 71 nil)
3 J: X# j& W3 s& f, r) u" Z - (cond$ c% x, N: o) n# o
- ((= dir-idx 0) (setq dir-idx 1))
* F _4 Q3 D8 P& z - ((= dir-idx 1) (setq dir-idx 3)), R5 k5 T( S4 b
- ((= dir-idx 2) (setq dir-idx 5))
" e; \$ B3 f) Y; t9 T - (T (setq dir-idx 1))4 L) v$ e; X3 f3 w" T( b* \% ~) \
- )9 R1 q9 Y4 n3 m; S+ N
- (tempmod dir-idx 72 nil)
$ c# s9 R% @5 m2 u2 }3 Z h - (tempmod hght 40 nil)& S$ b$ [% `1 C+ F
- (tempmod wid 41 nil)
7 C7 A: }8 ]( K/ B8 U - (tempmod rot 50 nil): B' r) N* f* w+ W( y
- (entmod elist) z e' G0 r( G M
- )9 |) W9 I) i7 R0 c
/ o# a/ D7 t+ }7 K* @- Y) O- ;; Set MText text style
; J0 q2 x- I! c4 f% h: w( V+ d - (defun MText_style (index / style-list)
" P* _' p6 f, T$ a' l! R! t# T9 |7 r) L - (setq style-idx (atoi index))6 ?+ w' T. a; ~# ^. u0 e
- (setq tstyle (nth style-idx slist))
; M$ s5 W/ X+ n2 H+ [+ G - (setq style-idx (itoa style-idx))
b# O+ } ?- W% ]1 N) B1 I - (set_tile "style" style-idx)* s$ H: L. }5 X0 T: ^2 K
- (setq style-list (tblsearch "style" tstyle))
$ ^# C9 b( R+ U( e - (setq shght (cdr (assoc 40 style-list)))
; v, w4 Q( Y$ P - (if (/= shght 0)) }/ Z" l: V# B: b3 P* L
- (progn
& ?- R/ e3 ^- P" W3 L. R, N - (setq hght shght)
* z" Z1 O) J% } - (set_tile "hght" (ai_rtos hght))3 M% K0 m5 e7 N) }. R, J
- )
4 `( ?. ^: O9 U% ^* @ - ); C: ^: H" K' ^, z) h' Z; M
- )) r8 p9 y- B' {9 @! g
- A# E$ A$ {0 j4 k" I1 ^& O
- ;; Run DDEDIT on given entity, working around possible re-entrancy
. v: G% j, C4 v0 s - ;; problems with MTEXTED/ @2 D! V& F6 q$ m. t' ^: C* [& o
- (defun safe_ddedit (ename / orgMTextEd work)
0 h* M. ^! o2 X ~ - (setq orgMTextEd (getvar "MTEXTED"))
, {1 M; \' t* M( I [ B - (setq work orgMTextEd)
9 `* k3 _1 V8 ~; w5 y. E8 U4 { - (if (= ":" (substr work 1 1))8 s+ E; v" ^& ]/ m* A
- (progn% q4 k, `* Y% Z+ \1 }
- (while (and (< 0 (strlen work)) (/= "#" (substr work 1 1)))9 \+ W. t! E9 O
- (setq work (substr work 2))
: l2 t6 ?3 V; R0 f9 R( P' w# H% U- z - )
: [+ p' U% T0 P% t" }9 Y+ N - (if (= "#" (substr work 1 1))* s9 \1 y+ y7 x$ Z9 F
- (setq work (substr work 2))0 |; Z# e, N+ b& D# t
- )
8 W- D3 k4 p" Y- g - (setvar "MTEXTED" work)
# N3 J' s6 M( A - )
$ q' q+ ^$ J- C0 [ i# ?7 }6 b - ): F2 V& k7 K, V1 B: H3 D" i9 s
- (verify_arxapp_loaded "acmted.arx") ;; make sure it's loaded... k: n7 ?- m; b8 d
- (command "_DDEDIT" ename "")0 ?7 L0 H& `5 h( R3 K3 @& b- S
- (setvar "MTEXTED" orgMTextEd)
0 F* D9 P$ A) ~ - )1 q% O9 k. \" p/ I
7 w6 `2 L8 D1 f3 e0 l+ W/ r- ;; Verify MText object width
K. g0 d9 [9 i3 R0 h - (defun ver_MtextWidth (value)
* Z0 y! U; M+ a, J) ^ - (setq value (distof value))
: j* O% t+ A% E5 S s4 l x - (set_tile "MTextWidth" (ai_rtos value))2 }4 @) g# F" s7 D. S% h8 }/ R; M9 @
- (set_tile "error" "")& u& Z4 D/ O$ G0 N* u4 A
- (if (< value 0.0)$ S$ Z7 k" V/ _+ {
- (set_tile "error" "Value must be zero or positive.")
6 _& J+ z$ f& f - (setq wid value)6 Q0 O* ]. x- ]/ P2 y5 ]1 g3 a
- )9 M0 {# k+ L; u
- )
& E' \9 \5 \# X' j+ ~
+ s# W; e: f+ f& i8 G# U- (defun ddmtext ( / gc3)
7 Y4 [, C9 Z$ o0 D3 ~, v4 {! X - ;; Get dialog1 Y, t2 O- c5 x# ~* ^
- (if (not (new_dialog "ddmtext" dcl_id)) (exit))
+ s8 i1 v7 |/ y. D$ R" \6 C
4 b6 a W) e, {2 B- D& x. Q- ;; Load list boxes1 f. H# D) G6 Z$ U2 F7 X: V4 _
- (start_list "MTextJustify")
; q, y9 M2 d5 P - (mapcar 'add_list '(
6 W9 ~4 B( }; F( |) @ - "Top Left"$ B0 ]( N! L! @
- "Top Center"4 y: Z% e2 c7 }& k9 j% ^# H* @1 }+ w
- "Top Right"& m, l0 ~9 _4 |1 B# E
- "Middle Left"
1 \6 A$ ^: g- ]! W - "Middle Center"
) m- @+ ]! x' K3 S" \ r0 l - "Middle Right"
3 x% h+ [7 x J- v: s G4 f! L - "Bottom Left"7 [0 S+ p9 K w: J9 s. Z
- "Bottom Center"
: H, ?; B0 J0 g' w - "Bottom Right", i- O. O* o2 @- e, n* ]
- )
* |- A, u/ Z( V6 V* f2 T - )
& \9 ]5 k: W% N2 L u! L& j9 B - (end_list)) q$ `/ p" E- z4 l4 h" ^
! t& D' U+ |- l- T# z6 F- (start_list "MTextDirection")8 u& s3 h) V/ s1 P. J1 d
- (mapcar 'add_list '(7 s& W* L) f( F9 @2 l( q* U
- "Horizontal"
5 t: n I7 I) h& ^) V& k; ` - "Vertical"
+ ^! \9 T' u5 P$ T9 G - "By Style"
& E. z( J. }2 ]' g. w - ). H$ {4 J" ?9 e$ }9 C% u
- )) \; i% _3 M- a9 O
- (end_list)
2 p( k4 v$ S* v# A2 l' H* ^
+ C5 q6 ]% m" x3 J+ P- ;; Set initial tile values% ^% K9 S+ `' a6 c }6 i
- (set_tile_props)+ A; h: s' `* N! `3 I4 V3 w2 G
- (set_tile_handle)9 J1 s1 T( ]* r8 D7 E/ [3 D
- (set_tile_pt1 0)0 l/ F" D9 Z9 f' R0 z- {6 C. E
- (set_tile_style)$ K) g- h& g _7 y3 y. p0 l
- (setq just-idx (cdr (assoc 71 elist)))
/ k) v( H O% V2 E) l - (set_tile "MTextJustify" (itoa (1- just-idx)))
, s: [, f) q. E' J+ b' H3 c - (setq dir-idx (cdr (assoc 72 elist)))
8 |3 B2 M" e- |0 x Y8 p - (cond
& A5 k2 \! g2 y' R9 ^$ Q - ((= dir-idx 1) (setq dir-idx 0))* t8 u0 O) i0 v4 g3 q% X" N
- ((= dir-idx 2) (setq dir-idx 0))
4 r2 c$ y2 x3 y) ? - ((= dir-idx 3) (setq dir-idx 1))
4 ^: T( i6 X# R$ \: l/ ]& l. p - ((= dir-idx 4) (setq dir-idx 1))
' r* B. t+ Q* c - ((= dir-idx 5) (setq dir-idx 2))" A$ q+ }8 M, N
- (T (setq dir-idx 0)) n) o7 }! L$ N
- )
) q4 I+ {# W Y& J# N4 t, B - (set_tile "MTextDirection" (itoa dir-idx))) j. z8 J7 l% v. H$ Q, v" |! f
- (set_tile "MTextWidth" (ai_rtos (setq wid (cdr (assoc 41 elist)))))0 t+ Q( s: D' |3 E4 S
- (set_tile_hght)
0 E- e. B% R( z4 ^7 \3 N( Y4 b; u - (set_tile_rot)7 @4 \6 g7 W* O$ S
- 0 k8 i* U5 l2 m' ^) ?5 q
- ;; Set edit box, disable if too long
* ^5 j3 ~2 H* a' X5 u3 U - (setq gc3 (cdr (assoc 3 elist))) ~" J0 h w4 `6 b+ `
- text (cdr (assoc 1 elist)))( R6 ]% T& I. M7 E( [! p
- (if gc37 G, T4 x* K/ R) s, K' N3 D
- (progn ;; Text is over 250 chars, disable edit tile7 J" E K6 C, s1 D& h
- (set_tile "t_string" (strcat (substr gc3 1 25) " ..."))6 G1 h7 h3 @# a" M. [9 L8 q" {
- (mode_tile "t_string" 1)
5 @4 |4 _* B' Q/ n# ` - )# J. m) }7 p) R" r s' T5 I- \
- (if (> (strlen text) 80)
/ Z2 Z' R/ R, q& n* R0 V* w - (progn ;; Still too big
1 X' c: F/ D4 z% K5 M! Q - (set_tile "t_string" (strcat (substr text 1 25) " ..."))
" C8 y" r6 f: Y - (mode_tile "t_string" 1)& A! L- ~' J! p
- )
+ c% l9 y# s" I6 v) P9 V. U" j5 | - (set_tile "t_string" text)4 ~0 P5 }( l. F3 R' X
- )- N2 y8 Q; m9 ]* A1 M3 a
- )
' K+ k; ?7 a1 v8 |( V( q4 h
# e$ J, H3 i, f% R- r- ;; Define action for tiles4 w- `7 J) s+ e
- (set_action_tiles)
6 A- I: W' B: V0 s" T6 e - (action_tile "style" "(MText_style $value)")
. A7 K3 w- ]: O0 R& n - (action_tile "MTextWidth" "(ver_MtextWidth $value)")% Z& Q% t9 t- ~ e
- (action_tile "MTextEdit" "(done_dialog 4)") p, R. A* D7 x$ Y
- (action_tile "MTextJustify" "(setq just-idx (1+ (atoi $value)))")
8 }) O' a' q* g. \+ e9 C( L - (action_tile "MTextDirection" "(setq dir-idx (atoi $value))")% J- i+ Z$ ^8 ]$ Y% d% W+ J
- % {' w; i' a; B, e/ c$ _
- ;; Set initial focus to text edit box.3 d* Y3 V! V3 @
- (mode_tile "t_string" 2)
* S0 _+ x; P1 P& N, H
" ], H4 ~, u( W- ;; Run the dialog: R0 h5 l; }' ?
- (setq dialog-state (start_dialog))8 I, Z' K0 `6 q/ o. ?' [
- (cond* o c) T* x; A1 S$ U
- ;; Cancelled - restore saved data
6 r, w f6 X! R) t - ((= dialog-state 0) (reset))
! ], b$ ^! f! x! r: j- l, v; u - ;; OK - save new data! N }) d" W7 p# U) M
- ((= dialog-state 1) (modify_mtext))
( \% f! r+ L0 J: \ - ;; Pick new insertion point
9 A, _+ E- B8 Q0 |- {6 F& _ - ((= dialog-state 3)
+ ~' |. g) Q% x5 _6 Q& i2 R' D - (modify_mtext)7 B1 h: S9 `* r, U7 i# k
- (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))* n3 S( I; ^: \/ e3 `- P6 W- `- Z* L
- (ver_pt1 0)
( k2 B Q! ^0 l+ \ - (ddmtext)5 _% \( q% `: a) Q6 d6 \! C
- )
& W/ E+ V, Z Z - ;; Run full editor
7 U* g# }- p L# u+ s - ((= dialog-state 4)% d" ^& D, N. F8 @* g5 p+ m
- (modify_mtext)1 k+ U8 W8 c C1 c) T
- (safe_ddedit ename)
3 V+ Q6 k; A4 |" W$ Z - (setq elist (entget ename)); f8 V$ f0 X: I" m3 n' N0 j7 {
- (ddmtext)) @9 A; B) C0 {* g0 f
- )0 G J) c9 S( b$ R) Y: B2 t
- (T nil)5 S4 U5 _8 t2 y- p' u+ P+ S
- )
) M$ Z4 j( ^0 x& ]+ a - )
. e W, ~) x7 f; ~$ S - ) ]" X8 h* q; r5 |4 X6 `7 }
- ;;
% m, F2 X4 j/ n) D! z8 n - ;; Modify VIEWPORT' v) x' p k8 N3 L
- ;;
: P* Y3 Q; }$ \ a6 { - ! f( C! L& r% j( N! U
- (defun ddvport ()$ z. F, l0 f; z( e
- (if (not (new_dialog "ddvport" dcl_id)) (exit))
2 |! A l2 w+ s - (set_tile_props)$ \+ I1 M0 r5 W1 |3 a* U8 p- }
- (set_tile_handle)
3 F+ @3 \1 N4 C1 a7 I$ J - (setq vpt (cdr (assoc 10 elist)))
3 E# |, i& K0 Z' V$ F! ^ - (set_tile "xtext" (rtos (setq x1 (car vpt))))3 ]- R3 v; H5 u" w& P
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))/ m1 h, C4 b+ o" T3 s
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))3 h1 v* f4 t5 b7 N: d. H
- (setq wid (cdr (assoc 40 elist)))
* W4 P9 h a& `: i7 X: V; H+ q6 p0 G - (set_tile "wid" (rtos wid))! ~6 s& h/ k2 G; y8 l
- (setq hght (cdr (assoc 41 elist)))) c* q' T( L" Q2 f4 b/ a2 U
- (set_tile "hght" (rtos hght))+ J' E/ n/ m4 i% ^9 l5 m6 z
- (setq vpid (cdr (assoc 69 elist))) v! S% K7 c$ a T
- (set_tile "vpid" (itoa vpid))
- m9 L' p4 E8 W% N9 {& e - (setq on-off (cdr (assoc 68 elist)))
$ q7 x3 M$ v# f, O. {2 L - (cond
+ t9 r. D" T- m - ((= on-off 0) (set_tile "on-off" "OFF")), y/ t$ f# I/ q8 y- z3 g$ n
- ((> on-off 0) (set_tile "on-off" "ON and Active"))' U( P! z" V9 |' |, w2 b& J
- (T (set_tile "on-off" "ON and Inactive"))
1 U- V) x6 o% P9 _ K- ?& c - )
7 r0 [' }) D2 r% {/ V; l. M( p3 E - 2 B8 K( @% ^) L
- ;; Define action for tiles
$ j) J$ Q& |' m1 @ D; g ~3 l$ y/ g - (set_action_tiles)* _; z* j1 Y: a
# M" l/ l* V% j- (setq dialog-state (start_dialog))
' a d) q/ Q2 ~$ _. l5 E1 _ - (if (= dialog-state 0)$ B) s! l( F: V5 `, N
- (reset)
8 e! k- r2 B1 j. ?: z: M k7 t - )( j0 D9 L4 P1 r( E \
- (if (= dialog-state 1)
% M! w+ L6 g' I4 M5 y - (progn7 k H( |& [# K+ P- |
- (if (= ecolor 0) (setq ecolor "BYBLOCK"))
* o( S6 d5 Q9 W1 h+ B$ ` - (if (= ecolor 256) (setq ecolor "BYLAYER"))
- c+ F; N* D2 N) w @7 ] - (command "_.chprop" ename ""7 C( C' C& {, G t/ ?- ?
- "_la" elayer
, O# z: B0 H* k - "_c" ecolor ""
6 M$ u: b9 O3 c# G1 W5 S! d0 d% i - ). j* ^6 `5 D& ?% D$ \/ t2 W
- )
1 `; E2 k( s- H - )# S% M* k" R! Q( x! E( w6 S
- )% N+ L/ m u' E
- ;;
; a' O. V2 {; q/ I - ;; Modify POLYLINE
* P, V2 m5 U% U+ P0 p8 C - ;;3 h2 r8 Y; A: W* g/ q/ Z( }
- (defun modify_polyline ()) h M* f& o8 R x: o3 L
- (modify_properties)
1 Y, G n8 I' O8 r# H: r V - (if (= ltgen "1")
+ K. F, n9 s/ R9 J: a - (if (/= (logand bit70 128) 128)
! U t1 B, H3 M |- q( W - (setq bit70 (+ bit70 128))! j* E' b, L4 o8 }' q, L
- )$ i5 |! N5 V8 B$ L/ g6 o
- )
, I; j2 a' n5 d# m3 W9 k - (if (= ltgen "0"): F$ F4 w4 D& ], ]
- (if (= (logand bit70 128) 128)
# A( p' f* d6 F2 k. ] - (setq bit70 (- bit70 128))" r9 z) e- c& m$ j8 r3 q! a
- )" E2 g; H6 t4 n3 ?' ?' u
- )
! R6 [, M' I( E4 D" F - (setq elist (subst (cons 70 bit70) (assoc 70 elist) elist))
" M) H9 r1 N/ o! G8 e6 F% x - (entmod elist). M8 s8 I- J8 o' E& p
- ;; Added to take care of updating Vertex information for color
; h6 G5 }2 E1 G; o - ;; and linetype.. q5 M* f6 U% k2 B+ g+ _+ V, ^
- (setq save-ename ename save-elist elist)
% N/ H# ?& R8 y - (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")# O0 g# R+ i }% x/ A' ?5 b
- (progn
* U' V0 ^( p2 r, | - (emod ecolor 62)
# Y# x% i" O8 i - (emod eltype 6)- s9 _0 X7 ]. s4 l+ k) Y
- (emod eltscale 48)
b9 Z+ H4 o/ y+ n, @; p - (entmod elist)0 H) @* n8 Q- W6 V0 j, O
- )+ y$ W: S. h$ d# ?9 N! m6 n
- (progn1 c4 B! [- P. q" n& o4 w
- (setq ename (entnext save-ename))
+ G7 g+ K. n! b6 n9 P6 B - (setq elist (entget ename))
/ b+ x; W* l* S: X' } - & U+ o' w4 S/ y M
- (while (not (= (cdr (assoc 0 elist)) "SEQEND"))* ~* d( G, E' u( F$ a5 f* b$ _
- (emod ecolor 62)
& K( F9 K; l+ A1 @" i - (emod eltype 6)0 z: F0 i% V ?
- (emod eltscale 48)
& s& w7 z @6 D! `2 k4 B& X - (entmod elist)
( S* F# v M J" W' c - (setq ename (entnext ename))4 U! Y/ u! h0 B+ M0 Z; J
- (setq elist (entget ename))' P# F1 A q9 S" J
- )
: c! S4 d" k" g j1 k - )# @) `% @! n1 v
- )5 w9 j# [% e* a8 c
- ;; Update the SEQEND
- k* p& ]2 M7 W' [, V1 v2 M - (if (= (cdr (assoc 0 elist)) "SEQEND")
" c" |1 F& x1 @$ @) v9 \ - (progn
+ s; ]9 d1 p- S5 n. ~' \ - (emod ecolor 62)
4 {3 H$ ~; I$ o2 T4 [8 H2 y - (emod eltype 6)
# k% i* @! i5 K; m! A/ _. J' j - (emod eltscale 48)
# R" R$ U/ V0 }' ] m - (entmod elist)
) w5 t1 ~9 B; O5 {( T - )
0 H$ E/ C7 H6 N7 w4 X" `/ U- b - )
0 S" O% \6 \, {% q& F K7 h, T - ;; Go back to header.5 l6 Z5 j/ g* \, S
- (setq ename save-ename elist save-elist)
; w* x3 q9 i: R: ]# k - ! | T0 B9 g$ i$ S5 O
- (entupd ename)
. }4 U$ j5 J9 a0 J; ^' U - )' @& f4 p* [6 N
6 N: Q5 P( C6 W6 G# M9 ^) e- ;; Increment vertex. Set tile values to next vertex0 g. `6 _/ B5 H. q! m3 K
- ;;! l( w' Z6 }0 i6 Q8 a5 r
- (defun next_vertex (). p; `. t, ` T
- (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")7 x) e( P) ]8 Y7 s% n
- (progn
: a c& A, \; ~+ n0 I' \ \; H - ;; If the counter reaches the number of vertices,
" J5 V# P6 ?' T: T! t# [ - ;; roll it over to zero again.
+ M6 N5 O% w* Z/ g! o! G3 h; D - (if (= ctr (cdr (assoc 90 vlist)))
/ e' L* Y( b& ^9 V+ D" w. @: U* C - (setq ctr 0)
( P2 k/ r( z5 |8 {$ A - )$ u; A/ E3 j1 L! n2 P+ \' q1 K9 C+ b0 C
- (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))# u3 I& j; a5 B7 Y1 F
- (set_tile_vpt pointype)0 f8 u6 [, k# O$ i" q. ^2 F5 w
- )
. s. w! t8 G. O/ t - (progn* r" v% f* I0 r& L
- (setq vname (entnext vname))9 F; @0 b! f* p0 Z# [% f P
- (setq vlist (entget vname))& U' V% U/ q" j' Y5 V% C2 `
- (if (= (cdr (assoc 0 vlist)) "VERTEX")
: `" H1 i, b8 j s% O0 S y - (progn2 F; N7 y1 d$ l9 p+ d! T
- (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))
' h: C3 `5 E _1 P" s0 a5 ` - (set_tile_vpt pointype)
( A2 i: y5 b/ k* _ - )! h3 S0 S9 B5 F9 ]" p6 l6 u
- (progn; O( ?. Z4 B- b6 |* Q& p0 V
- (setq vname (entnext ename))* M8 y \' I8 j: o, H3 A
- (setq vlist (entget vname)) m4 o7 d% K0 w0 J% s0 Q' w2 _4 {
- (set_tile_vpt pointype)
! n# N; Z0 r' `" T* U - (set_tile "ctr" (itoa (setq ctr 1)))3 C9 R& Q+ r3 b i9 O
- )
- b6 O- t( O" h2 c - )
- N% t4 T* H9 R. M$ z. x/ ^* \9 ? - )
/ @! B: w7 H: [9 c9 f - ). ?6 \# d8 C5 q4 A
- )2 u3 j( _6 H; q* C+ S$ q0 @
x4 l1 w, d# G, i7 S5 }* ~4 o- (defun ddpline (/ oldecho)
9 F3 r6 A# k P( `, z - (if (not (new_dialog "ddpline" dcl_id)) (exit)) J* \9 _, s( o) g' @) j8 ?+ J
- (set_tile_props)
- o5 j* U8 y; ? J, h. r - (set_tile_handle)
5 Z. ]% l" Q6 ^+ n8 j1 D0 k6 E - (setq bit70 (cdr (assoc 70 elist)))0 _) B7 d! J. T2 i* X
- (setq bit75 (cdr (assoc 75 elist)))
* ?% L5 S5 O' i3 q9 p1 l - (cond+ r% A8 u1 X! l. g0 H
- ((= (logand bit70 8) 8) ; 3DPOLY
4 Q. l6 ~5 ]# w6 r - (set_tile "ptype" (setq pltype "3D polyline"))5 X9 E2 @0 Q, Q2 y N( e: F. x
- (setq pointype 0) ; WCS or ECS point values' ]+ s# `, R8 ~( x9 e5 T5 n
- (mode_tile "fit" 1)
7 a- _$ a+ w0 m - (mode_tile "mesh" 1)
) ?# f7 g6 y/ N7 G - (mode_tile "bezier" 1)
6 B0 X& ~# @. M W - (mode_tile "ltgen" 1)9 G& j9 C$ j# p! [
- (set_tile "none" "1")' U- c! M& Y" p f- O$ X, @! [. r
- (set_tile_closed)
7 p! p8 o8 |% X1 u* M' W - (set_tile_fitsmooth)
3 I# |9 Q# z. h% i; [ - )
( K1 c2 o4 ~2 ^ V- r0 M% [3 U - ((= (logand bit70 16) 16) ; 3DMESH
% N) ^+ H4 b! ~3 t6 r - (set_tile "ptype" (setq pltype "3D mesh"))# H: t) b- {+ U$ P& a
- (setq pointype 0)
( `/ p0 _ g% B! x7 d! P5 v - (mode_tile "pline" 1)
: T. O; l7 W, ?! b- n6 |5 ~( W - (mode_tile "fit" 1)% b* S) c* y' M- e
- (mode_tile "ltgen" 1)
" l* B5 U6 U) p# F - (setq m (1- (cdr (assoc 71 elist))))
8 B( @( ]* R0 U- b) [( W - (setq n (1-(cdr (assoc 72 elist))))
" E5 G S7 q5 R8 { - (setq u (1- (cdr (assoc 73 elist))))
6 c' \9 x" _* a+ {& y* M. x- C0 X6 _( W - (if (< u 0) (setq u 0))0 K+ M9 m; [+ t3 t
- (setq v (1- (cdr (assoc 74 elist))))
$ L8 ^8 _/ y" p - (if (< v 0) (setq v 0))
$ a4 k( h# x/ C/ i/ Z0 {, m" U - (set_tile "m" (itoa m))! U7 m3 ^% H# _3 Z
- (set_tile "n" (itoa n))
, B7 M# v* j% \; F4 l3 ^9 t7 n - (set_tile "u" (itoa u)), F- Y! Z; G" R5 S" m
- (set_tile "v" (itoa v))' p: @# c& h Q
- (set_tile_closed)
7 Y9 {/ E# q6 `: x - (set_tile_fitsmooth)
, e: p7 M3 I4 P$ l5 Y8 Q9 P - )6 d u# }3 T* a2 ^2 Z0 Z% L
- ((= (logand bit70 64) 64) ; POLYFACE MESH
6 ~+ _* k: p& ^/ e - (set_tile "ptype" (setq pltype "Polyface mesh"))
% F# z6 u- r: n$ L! M5 y, V - (setq pointype 0)
2 X( p$ [& _, \ - (mode_tile "f-s" 1)
, c, M" b1 F/ [$ U0 ^ - (mode_tile "mesh" 1)
' j6 K6 |% v, L( l9 }$ P2 _9 Z* a - (mode_tile "pline" 1)3 {/ I) \& k2 P
- )/ d+ c' i/ O$ j) z
- (T ; 2D POLYLINE
) F. k, {+ X; Q$ @% p - (set_tile "ptype" (setq pltype "2D polyline"))
+ ?* G9 j* U6 L& a, G - (setq pointype 1)
, F5 h) d3 I. e3 q# @ - (mode_tile "bezier" 1)
' q: e9 k9 h; W; O. }: Z( d! P* X - (mode_tile "mesh" 1)
7 {/ ^" S& t3 t9 o' j9 [% Z - (if (= (logand bit70 128) 128)
: c3 q0 q( Q! L/ y - (set_tile "ltgen" (setq ltgen "1"))
" S+ K( b2 D0 ^ - )5 h5 F7 v& [ C5 O
- (set_tile_closed): d& t0 N4 h9 m) a) U! V
- (set_tile_fitsmooth)
# {' T6 @1 W4 a8 d+ ~) d( e. | - )0 F2 ]; `6 B6 K0 X$ k: J( E5 g
- )' L1 ]" K8 P7 f A0 m
- }, V8 }6 Z( X; b3 q0 h4 M- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
+ Y* p. s: D# Q* s - (progn8 r& q' b/ ?" k7 S5 z) u
- (if (not next) (setq vname ename))
8 }) r1 @3 q' E1 V' c - (setq next T); B# P3 B* ~8 a2 f0 @- x
- (set_tile "ctr" (itoa (setq ctr 1)))8 l, K7 M! O) F" J
- (setq vlist (entget ename))! v( q- v; t: s5 N1 }
- )* A3 ~/ N6 n2 K- i+ ^& O/ H
- (progn& Q& Q4 k7 S9 i: S4 g
- (if (not next) (setq vname (entnext ename)))% J5 }$ s% h" a8 ^* E* X
- (setq next T)9 a$ o. M8 Q3 u# F; C7 i
- (set_tile "ctr" (itoa (setq ctr 1)))( ^2 s( q5 U' @6 @
- (setq vlist (entget vname))
% q& p! x" f2 }2 O( }9 J - )& F, M% m: `6 O4 j5 a
- )( B2 G- W. ~: q9 D J( @
- (set_tile_vpt pointype)
5 ~7 S' J) y- Q' M2 Y' A; W7 b - ;; Define action for tiles
/ g, i' e% J* c' j - (set_action_tiles)4 t4 t& C" S+ W7 o2 }2 ~9 B
- (setq dialog-state (start_dialog))
2 v p9 { Y( H K* }- N - , T6 q, d9 g) Q2 V
- (if (= dialog-state 0)2 q) p8 _7 E- c3 t- e- m
- (reset)
6 o; B' a+ L, u6 A, T/ H' k( b - )
" l/ h, f O( T- I - (if (= dialog-state 1)7 J/ ~* z+ b% j2 E0 d7 X! |* s
- (progn P9 i# `$ f1 A5 a, s t3 c" D& {
- (modify_polyline)
+ T2 z! g- g& _: @* {$ p' F - (if (or (= pltype "2D polyline")
+ j# e( ]6 p6 \ - (= pltype "3D polyline")" p M. O( U8 ^- \9 B6 @
- )
; v0 y9 p3 b" ~9 y4 n4 A - (progn
- O7 ]# M6 H6 A& q+ e3 N - (command "_.pedit" ename); V) u8 L5 D- |2 G' C+ n
- (if (= spltype 0) (command "_d"))
2 y7 Q, R, K! ?" j/ d3 T - (if (= spltype 1) (command "_f"))
: f4 E9 ^; \7 ^/ ^: k - (if (or (= spltype 5)6 Q4 ]+ h4 n" I4 ?; s/ e
- (= spltype 6)! V+ }- d4 g5 N1 F
- )
1 o( @9 z. r$ y1 _% O - (progn
v8 ]# m+ e( p- K - (setvar "splinetype" spltype)
( R3 j9 `# |/ T2 _" S3 c) ^* @ - (command "_s")
4 n; [1 l) O9 \ w - )# s' i g4 D! ]6 U
- )0 k2 r) ~$ y# `3 W0 w+ o$ y
- (if (= closed "0")
( g F- d& d! w, q - (command "_o")
) T7 f( c l0 j: u8 m- X7 p - (command "_c")
# y8 N* F* Y C3 I - )
0 d6 @8 B* E; V2 Y3 u3 x - (command "")
2 R2 c9 J7 F5 }$ v2 ] - ! f" U+ o: a0 l6 v- s& ]
- (if (= spltype 0)
! e$ [9 G0 ~9 n* t, J9 `$ D: X - (progn, d( }1 J- C/ { H( { ?; W7 }
- (setq oldecho (getvar "cmdecho"))
2 O6 s$ P, `- b- @) q - (command "_cmdecho" 0)* @/ c" u4 a/ z. q
- (command "_convertpoly" "_light" ename "")
# D4 z+ J' Z2 j - (command "_cmdecho" oldecho) M( h; A( p$ n& i
- )2 n& o% T4 B# d* h) p, Y2 F
- )
6 d" P3 D+ s: S4 ? - )
: [0 t0 y! T( e' Y2 {+ W) F - )" k0 ?0 {8 Q% J
- (if (= pltype "3D mesh")7 y" T4 b1 P# H# t* x
- (progn
) n2 q- _ _2 o7 ?6 W - (command "_.pedit" ename)
' Y- I- Q8 t% x% M+ O8 e) Y) k - (if (= spltype 0) (command "_d"))0 k3 t. V# ?3 e' j/ j
- (if (or (= spltype 5)4 ^* ]8 k0 S( K7 `
- (= spltype 6)
& `+ N: H% L. m6 r! h4 e" P - (= spltype 8)
% `) ?# x# g$ n6 b' Y! Z, U) {$ A - )
4 ]; D0 B0 [5 E; Y" p/ l% X8 ^ - (progn
+ N6 D% y/ [' }8 D3 ]' j - (setvar "surftype" spltype)
2 P5 K) `- P* S% C ]9 r6 v - (setvar "surfu" u)2 T+ F+ s k5 X' M: B
- (setvar "surfv" v)/ x, E0 T9 f' u6 M& ?' c6 ]4 w9 ~
- (command "_s")* I) D5 {1 ?* Z! |
- )+ M( C$ m+ j! O9 \
- )
! ~1 G! {) m9 \8 B" t5 B7 ? - (if (/= closedm old-closedm)' c, b- _7 a; R$ U- v
- (command "_m")
% ]! L" F3 n3 t7 P - ) V- E3 J# K1 U& K; t
- (if (/= closedn old-closedn)
" D, S5 a' d2 e3 w& i - (command "_n")
" F- `' b" ?; x3 o - )
! }" ?+ J0 [& |( ~$ z) X - (command "")
5 e& ?! U( s( V" y# j- z - )
& M! `# n0 b0 B) r0 g. @ - )8 s& c' P: Q# Q+ C7 b6 n- f7 o3 A
- )! H: T6 I" n. X0 @2 A$ Z
- ); h) L( x! i: i r5 @
- )
- S" `9 n- u3 v - ;;
* P7 Y. |# Q0 @, u5 R1 K& b! Y. P9 x - ;; All the spline data is contained in a single elist. We must do some
- M) q8 W% G3 E9 z1 Y! N7 c" @ - ;; tricky list processing to loop through the elist in order to display7 n) Y f3 b$ P/ {! R
- ;; all of the control points.
0 ?8 U: ^, {0 U+ N( u8 v" J - ;;
9 }2 m& U; y1 P( U0 h: C - ;; The structure of the elist is different for rational and non-rational
' L4 ~3 v" ^; S, K5 @, Q4 h' I* O - ;; splines. Therefore, we check the rational spline flag.
* A; R, l4 n3 o4 P, g; u7 s# c$ k' ]" f' q% V - ;;
7 F, V9 L0 P8 b* y& @/ ` - (defun next_cntl_pt ()
8 D% ]6 U/ F- s, ]- h' c - (setq elem-no 0) ;; elem-no = element counter( n/ |7 I7 @9 h2 ^ H8 ?9 |
- (if (= first-10-time 1) ;; If first time, find location of first
7 s" t4 n, y* F. |. D - (foreach list_item elist ;; cntl point element in elist
* K$ v4 u7 a7 {. ^ - (progn+ m" ^/ G+ A8 [( y, Y
- (setq elem-no (+ 1 elem-no))
* B* r1 C: D- F - (if (= (car list_item) 10)
% T1 F2 b/ S" l" x0 I8 N& ` - (progn
# H2 |9 ?& I4 ]* \) Q4 m& M X. e - (if (= first-10-time 1)
0 l( Q$ e! L U8 R# | - (progn! C- y6 H n4 k2 Q8 a/ B& m
- (setq first-10-rec (- elem-no 1))3 Z; o: F/ ]5 f4 i0 y3 d% a
- (setq first-10-time 0)
' Q5 j% Y" z' D/ ~6 D4 A5 J - (if (= rational_spl_flag 1) ;; if rational
" @* q1 t* y* v: v" p - (setq cur-10-rec (+ elem-no 1))
; v) G4 e( w ~2 v, N" o/ G - (setq cur-10-rec elem-no)" B: F: F+ d3 B9 v
- )0 N+ b9 h) A. x; @: |4 H, x
- )3 ? W/ }0 q' k, B( ^' q: E) c
- )
0 v0 R0 y7 j2 q/ Q% {- [ - )
, `( D; R: |7 _' R - )
U/ u( s4 s. j& B. S/ q# t( @ - )! n1 L/ P, a! I6 M( E
- )6 }+ K N! S$ a1 A
- )
: z2 C$ Q+ \$ Q! @1 h" l - ;; Now we know the location of the first "10" record; it's stored$ w. \7 v5 W1 T9 Y' W/ F) C
- ;; in first-10-rec. The first 10 record was already displayed when
5 E7 U4 h: a9 O, O - ;; the dialog first came up so let's display the second one when& G9 _1 p: A4 g8 [2 v. [
- ;; the user presses the "next" button (the first time through).
( v! d4 G) t% Z) a: S( G" { j - ;;. q3 F" `. G' y# i# [
- (setq temprec (nth cur-10-rec elist))4 ]5 A: S3 H' r& V
- ;;7 o( q' H6 y% q7 f" v# y$ u U! D9 F
- (if (= (car temprec) 10) ;; if 10 record
/ \( R- q4 c, L* P7 ?0 p' B& {0 m - (progn8 h5 w$ x' r& K- O
- (if (= rational_spl_flag 1) ;; if rational spline' J3 t1 p& }% g" C
- (progn
: c1 k2 w W3 x - (setq tempweight (nth (+ cur-10-rec 1) elist)): A4 R, Q0 b6 }( L8 r6 Z
- (setq cur-10-rec (+ 2 cur-10-rec))
; N: Z! [, c6 e$ l - )' W; |) O2 q, q) N/ c- G7 F
- (progn ;; else) z5 t( p. A4 z6 l; }! ^
- (setq cur-10-rec (+ 1 cur-10-rec))
6 k% S$ @5 J. x, f* a. M- l - )
1 E# c) ^( O8 e" n! R1 F - )
) s2 M2 S" o1 A% [8 E0 n - ) ;; end if rational spline6 d* W- f1 O8 z. D+ L
- (progn ;; else reset counters) ^0 \ k3 K4 [! x
- (setq temprec (nth first-10-rec elist)) ;; get 1st 10 rec
* ]- L6 o9 d; [/ f; a& } - (setq tempweight (nth (+ first-10-rec 1) elist))
5 L2 {! F" {! X, \ - (setq cntl-pt-indicator 0)
5 ` `/ ?) a) u - (if (= rational_spl_flag 1) ;; if rational, S) r# P9 @( R. r2 G$ U
- (setq cur-10-rec (+ first-10-rec 2)) ;; point to 2nd 10 rec
3 l9 ?$ I% W: y5 T - (setq cur-10-rec (+ first-10-rec 1)) ;; point to 2nd 10 rec. X! M5 M- R! M- @6 s" o {2 ]
- )! W- f$ P4 @- z) |9 {$ |0 u6 H
- )
: N! ?) R! R1 h6 ? - ) ;; end if 10 record3 n* u5 W3 t8 q `7 C
- 9 x& N4 P3 Z, F% i
- ;; Display cntl point, weight and ctr. Increment ctr.: y: _8 _1 o6 G0 ?/ ]3 C
- (setq cntl-pt (cdr temprec))
5 U* d' L3 N/ N - (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))
3 d- Q1 g0 S. ^ - (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))
+ j7 D M& D( s) D/ x4 ] - (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt)))); a4 K8 o- a# v6 ]
- (setq cntl-pt-indicator (+ 1 cntl-pt-indicator))" E8 c$ t3 F; r+ _% ]2 b% e
- (set_tile "cntl_ctr" (itoa cntl-pt-indicator))
+ w+ `- q% L" ^0 n - (if (= rational_spl_flag 1) ;; if rational- D, ^- e0 P% c- N9 _" V
- (set_tile "weight" (rtos (cdr tempweight))) ;; disp wght
6 h& M6 x5 a7 T" |+ m - (mode_tile "weight_text" 1) ;; disable wght- m j# X2 q! u$ q% j" K
- )
6 L: M! k; y! M! t9 R - )4 p/ J5 [+ R3 c; O9 [
- ;;
# K8 ~; P4 L; k4 X/ {. k$ I. v - ;; All the spline info is contained in a single elist. We must do some
7 l$ g; M9 W5 i! y3 a* t" Q - ;; tricky list processing to loop through the elist in order to display u# f" s0 t" U( S# N* @* i% O
- ;; all of the user data points.
# }# C& i. H) k* A# N; \ - ;;; E% ?/ f% _; f K* r6 N" W
- (defun next_data_pt ()- x A' m) Q) O. [
- (setq elem-no 0) ;; elem-no = element counter
8 v( e+ \) L e9 t - (if (= first-11-time 1) ;; If first time, find location of first: G. p& Z3 `3 o% w* g
- (foreach list_item elist ;; data point element in elist
9 O" N! h, T3 o8 Y! B1 r4 F - (progn4 B6 b1 Z) l+ _1 ]; f" V; j9 _7 G
- (setq elem-no (+ 1 elem-no))
0 u" ]9 P& Z: _% N7 u! g9 C - (if (= (car list_item) 11)/ V( e3 {" S/ s9 Y0 u3 Y
- (progn
& ]' a. J" X( U3 ]% M - (if (= first-11-time 1)- I# V% b" I* @. C+ m* K
- (progn5 k, p+ h: N& y! A7 L
- (setq first-11-rec (- elem-no 1))
3 b+ W( E" Q8 ~2 G3 D - (setq cur-11-rec elem-no)0 R- [. Y( d( ~9 n0 n
- (setq first-11-time 0)* Q) y! r, X6 [3 l1 Q/ ^
- )
5 z4 i& n! @9 @ - )
8 _$ Z- e' g, N+ S2 N6 x - )/ ?0 m) d' `% O$ ]$ e0 ^6 j
- )7 t2 [# a# S, ^9 I3 }) n
- ) ]6 }5 r& ^* G
- )% O4 V4 `+ X4 S0 A2 ]
- )
' x; y: W) G, { - (setq temprec (nth cur-11-rec elist))+ U' @( m* Z, O
- ;; If it's not a DXF "11" element then we've gone past the last
' _- W" ?$ g4 ]0 ~: P) K - ;; "11" element. Go back to first "11" element. Reset counters.
) p5 k. `9 R, e( G+ f0 H2 n' T3 b# D - (if (= (car temprec) 11)" ]% c' [/ j- ]1 Q" k. `% f/ H
- (setq data-pt (cdr temprec))4 J) L( V; f. }( v# ?
- (progn ;; else9 K* {. E3 }5 d- \: y- p- Q3 Q5 Q) N
- (setq data-pt (cdr (nth first-11-rec elist)))/ v! v) m, Q1 W
- (setq cur-11-rec first-11-rec)
& E! W+ J$ S* K3 F8 J8 R# K3 N" f - (setq data-pt-indicator 0)
" \) _4 v* I; F! X% p - )
W( G+ D- t4 q& @* x& X" i - )
9 j* D8 Y+ Z3 Q+ c! K8 S - ;; Display data point and ctr. Increment counters.7 ]8 ~9 W, X1 a/ O) [
- (set_tile "dxtext" (rtos (setq x1 (car data-pt))))# Z. z9 e* W$ E! y
- (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
( ?; G& D! ~+ }& O( s - (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))% d% \5 r0 r/ \- `, c8 d
- (setq data-pt-indicator (+ 1 data-pt-indicator))
$ f; C2 j' O. u - (set_tile "data_ctr" (itoa data-pt-indicator))3 o9 W H9 k) j( P! h# O% C
- (setq cur-11-rec (+ 1 cur-11-rec))7 @! t* C' z, u3 v" C# L F
- )8 j+ N1 `# [1 k2 e' y" {/ q3 q
- ;;
q; ]% a! w |& } - ;; Modify SPLINE5 O1 q) X, Z* R3 Z- i+ I
- ;;
5 ~% @# [2 Q' ? - (defun modify_spline ()
8 T4 ?+ A4 q4 N+ ^: ~9 m - (modify_prop_geom)
6 g' R* P' ?. P& R5 a - (entmod elist)
f" _8 _ S: j7 q4 R' { - )
. _; I$ ]2 q, y0 w5 E/ w/ g7 f - & }3 P5 O+ T5 V( L9 Y
- (defun ddspline ()
2 Y- x: |+ O( z4 z) J9 G- } - (if (not (new_dialog "ddspline" dcl_id)) (exit))
% E! r1 J+ a, D6 I* B - (set_tile_props)
! n1 k, s1 G6 @5 G - (set_tile_handle), r2 f2 a$ D& p A( ]
- (set_tile_spline_props)
. X. f {2 H* _$ R- B1 J - ;; Display first control point
0 m7 t K& O3 N" k4 p1 A: t7 S - (set_tile_cntl_pt)
9 v3 F: W$ J P3 m- t- x" N - ;; Display first data point& }) k+ t+ i% m
- (set_tile_data_pt)8 A$ x8 ~# E) o
& P$ m) a' z* v9 G5 t. {* B- ;; Initialize flags to indicate first time through the dialog.5 Z9 Q0 K, u# F. u
- ;; For control points and user data points the "next" buttons5 V/ T$ Y' E( c, M% R& s( q. a
- ;; in the dialog call the appropriate functions.
0 d2 J, a; x3 U+ _. x - (setq first-10-time 1)
+ t/ M2 d; k4 n; Q# J# t% O - (setq first-11-time 1)
3 ?/ J N& J k: u1 } - ;; initialize control point number counter
}, j% Y9 b' j - (setq cntl-pt-indicator 1)
1 [/ H: u1 E4 Y' U# O1 M' x, | - (setq data-pt-indicator 1)6 ~1 f2 h& h% W5 G6 b& ]7 r
- (set_tile "cntl_ctr" (itoa cntl-pt-indicator))& t1 R' o& K8 L$ |8 T5 z
- (set_tile "data_ctr" (itoa data-pt-indicator))
/ o( b/ \; Y( y4 ^# L. K - (set_action_tiles)
( z+ C1 ^4 g$ s9 |6 b, ^5 L - (setq dialog-state (start_dialog)), }& h# I& Z# D- s$ c4 [6 g
; ^- @/ r- H4 w" a- K4 j& Q" |+ X6 L- (if (= dialog-state 0)
, v' k3 \% v m) v. z' o$ \# ~( J- } - (reset)
! p( E6 d, F/ s' m - ) x+ C7 `! s6 j* @7 M
- (if (= dialog-state 1)' g9 v, n! J2 \) Y; w& `. u
- (modify_spline)
7 ~ z2 A: z+ v. L; c: @# z - )
/ S4 d. r0 x# g( _. g6 O - )
5 w7 \& u; @3 Y/ n# Z - * L3 v# X0 d: H' A, `
- ;;
7 f5 j+ @! o5 | f) S' o* d- k7 B - ;; Modify DIMENSION% Q" D' \# k+ t F2 f& r
- ;;
* B7 c. O o$ T- E) _ Q% Y7 \) k - (defun ddimen (/ dtypebit blkname bename sublist a stname n dimtbl; l1 T* p" l( q# w) f/ S; J
- dimsty dimlist dimtext svtext dimovr sv_dvlist stlist. F/ q k' W- a, z" [
- dimtype dimsvcurset)* o1 d: o6 i9 v
- (setq dimtype "DDIMEN"7 z3 Q; }* _$ H" C
- dimsvcurset (ddimen_dimsty_restore); J! M- Z" v4 [* S
- )
. h4 @) D) e* l - (if (not (new_dialog "ddimen" dcl_id)) (exit)), T( s6 Z- y; ]
- (set_tile_props)
5 t" H' y" F+ s& B - (set_dimen_props)- ^+ J4 o* Z4 V) I5 t: Y3 L
- (setq dimtext (cdr (assoc 1 elist)))
/ Y& S# M- y7 b - (set_tile "t_string" (if (= "" dimtext) "<>" dimtext)): p' v2 R4 N6 I; u/ K$ ^! Q5 R* t
- (set_tile_handle)2 ?, p) C' N: h& t; w. [
- ;; Define action for tiles
0 S" |" k5 P8 ? - (set_action_tiles) M. r% u; g* Z- p" w9 j" c) }, W
- 9 m4 d- M( X4 r! K. c0 R! I1 C! H
- ;; Set initial focus to text edit box.
6 }& K, a; \& V& i3 W( b - (mode_tile "t_string" 2)1 u$ J" H+ E. K) f- [. l2 ]
- ; E( W b; @3 S! ^2 I
- (setq dialog-state (start_dialog))* v5 c9 g* c5 i# R+ [
- (if (= dialog-state 0)7 e; }% A! x* ^- G S. P/ k$ E* T2 s
- (if (= ddimmt 1)+ r& A5 J) v7 C" l& _
- (reset)
2 V P: m$ [' Y - )$ a5 A5 c% R. B5 T
- )/ k$ S: a4 p2 x4 [( U/ L1 Q
- (if (= dialog-state 1)5 |7 @% B+ E: M3 ]+ G6 M
- (progn; ^( b! H, p$ X4 F5 u0 f
- (if (/= dimsty stname)2 ^$ x, M" _* ~) f4 m0 c4 C7 e
- (progn
" Z, P( M4 m3 c7 r. v5 y; o - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
* K8 p5 g. @# F& P% g# { - ; doesn't have it. R. _( \, p3 t5 Z
- (if (null (assoc 3 elist))* l% w- a% v1 \2 X( J; O6 R0 f
- (setq elist (append elist (list (cons 3 dimsty))))6 s. Z; |. Y, i# f8 I4 I' f
- ; else just replace it. Z3 N) T# G; r* H* ^5 n P) s2 d+ l
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))- Z' Z% n( k, {- x% v2 {7 M7 M
- )
2 `3 m4 i$ B# ]5 X' _- N, v; @1 Z - ; refresh sv_dvlist with new dimstyle.
# h3 f( I/ k! q. T6 Y# o - (setq sv_dvlist (tblsearch "dimstyle" dimsty))
# N2 Z1 D$ n* L! G3 D# X - )
: }$ }5 R, n- m( R/ T - )3 j& w; F/ w. B" K; [3 R, i0 t
- (if (not (null dimlist)) ; attempted to change dimvars
5 e' ]4 X1 u* i: K/ Q4 b, v! u0 R - (ddimen_complist sv_dvlist dimlist dimtbl)% k/ E- I0 A4 [1 K
- )5 {( \; S6 o" [( L
- ; Modify dimension text2 I, ^9 e9 g! r% L% }7 Y- \
- (if (/= dimtext text), L# ~! G! F! Y. I* a
- (progn
- i5 {3 s q2 y5 g3 ?: a" O: b - (setq dimtext (if (= text "<>") "" text))
; Q; q! C! H& Z' E; ?5 x/ L - (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
2 k9 @: T/ E& A7 a/ ? - )
f' ~5 m k. z# ~' t* k - )
6 E7 c& q0 B6 f- r - (modify_properties)
& ?; V# J% d3 ]* a; R. q - (entmod elist): O( u8 Q+ z, L! @
- )
/ a) w- O+ l. f0 g' b - )* c7 p, F3 n0 u3 F
- (if (= dialog-state 4)- r; S$ i) a9 m) v/ n
- (progn
( W h* P, f4 `. _' [ - (setq ddimmt 1)
% i. ?, M% s6 T U9 G& H& P; I - (if (/= dimsty stname)
6 ?$ a# b, i: O4 ~7 U" z# N - (progn' H3 M- w: X( ]! `
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
; W: L6 I/ W% A/ A0 ~6 { - ; doesn't have it.* R) o6 a7 G. ~, l6 d5 T! A+ ?" v
- (if (null (assoc 3 elist))7 `; o4 B$ b/ y) T
- (setq elist (append elist (list (cons 3 dimsty))))4 q! L- @1 X3 K$ D
- ; else just replace it.. \0 b. q5 [% b( }) s
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))6 J9 P+ C A: R6 m+ O$ u
- )& O0 h+ i$ Z* g3 \3 ^9 ^ l
- ; refresh sv_dvlist with new dimstyle.' a, a6 q& W Y- v2 S+ E
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))8 ^& o. T5 s1 [8 k
- )
# [" ^' ?; ]( S' M/ G, T - )
. O$ Y* a8 f' A9 d: f0 f% i7 O2 j$ F - (if (not (null dimlist)) ; attempted to change dimvars
% y1 ^5 c* L+ a( x% T/ D' U - (ddimen_complist sv_dvlist dimlist dimtbl) s" J9 h1 }3 H7 k l1 m
- )
4 q4 J$ E, f. h2 D4 v. ` - ; Modify dimension text/ o [/ w/ ]4 F0 g. ]" c8 L- n
- (if (/= dimtext text)
/ z2 k6 H. H& y - (progn) _0 `( O/ h' s5 h- E) t: o
- (setq dimtext (if (= text "<>") "" text))
A, {- {; k8 U) } - (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))% n& x8 r, w9 U8 f2 k. [+ u5 h/ n$ A
- )
( a+ `7 {# H" a! v - )/ g4 ^& t9 {+ Y H
- (modify_properties)6 `- S% A. D5 R3 V6 J" M
- (entmod elist)
3 r4 H6 r: \! R, y1 G: N - (safe_ddedit ename), V# q8 v) Q) P) K# m8 j
- (setq elist (entget ename))
# Y& r- C( F+ g9 @8 X, _/ e+ I& K' E - (ddimen)
6 k3 X" C) k) c7 g - ) m2 b3 n, i+ F# ~2 s: j
- )2 X7 ]& E0 E- [
- (ddimen_setvars dimsvcurset) ; Prepare to exit
1 v) B$ ]. \0 o# {4 X5 R - )% }7 E6 v9 I* \
: Q' D) U& ~( ^0 t7 z, x) m- ;;( ^& N" c% T2 z. t4 j) f* d
- ;; Modify TOLERANCE
& z% b, u& S. b1 d5 s P - ;;/ m6 f3 E# m6 m# O8 I7 @
- (defun ddtolerance (/ a stname n dimtbl
9 {+ l" l# n- W, L, w: l% y+ R# E - dimsty dimlist dimovr sv_dvlist stlist dimtype ]+ g- R( y: O4 u) ~8 t
- dimsvcurset)9 o' v6 m0 w; u( x
- (setq dimtype "DDTOLERANCE"* [# x( `+ z9 U# }, T
- dimsvcurset (ddimen_dimsty_restore)
" t3 J- C- j/ G7 R& Y - )# Q+ T: w- ?' a+ C. I
- (if (not (new_dialog "ddtolerance" dcl_id)) (exit))) N& w( b- B4 V- [4 q, n# U2 j
- (set_tile_props)! n* }4 I5 B u* g/ q
- (set_dimen_props)7 M1 J( r7 O5 s# o" m
- (set_tile_handle)- q0 K" g2 F: D- m; l5 @6 {
- (set_action_tiles)( W6 l. m# e6 E* G7 [
- (setq dialog-state (start_dialog))
5 ~8 s; i4 [: j+ s B - (if (= dialog-state 0)
' o ?& ]# A" ]+ s - (if (= ddimmt 1)5 m' Y; N; H# i
- (reset)
- P% E. I" S& `+ M" b - )/ p/ y2 z5 Y; L1 S1 E- R
- )
& m5 k2 F+ O5 R( Z% m0 ^! m+ A - (if (= dialog-state 1)" m- A' J7 Y( N
- (progn
$ H! }: }# u, E: B8 P - (if (/= dimsty stname)& E1 L0 l! ?- |+ g. _
- (progn9 E2 s! z7 v2 {$ I% e2 D
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
0 T$ W4 v9 U d8 e6 { - ; doesn't have it.5 R3 |2 F! e) i3 |4 e5 \2 @
- (if (null (assoc 3 elist))5 x4 J# K5 A. i9 ~6 _
- (setq elist (append elist (list (cons 3 dimsty))))- N U3 G+ X/ K7 W* y8 Q( A' ?( O
- ; else just replace it.
' m7 b' [' c3 T4 i% T - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist)). ^) q2 y, w: R! M( I3 e' f
- )+ ^# d& t1 \1 b& y5 j* d
- ; refresh sv_dvlist with new dimstyle.
( _( {: E" q; k! R3 ? - (setq sv_dvlist (tblsearch "dimstyle" dimsty))( e9 I! F7 M; }; [6 N2 v
- )$ C7 } [8 F) T1 \
- )
; L+ P0 n0 X# S& [& j+ a - (if (not (null dimlist)) ; attempted to change dimvars
! g/ X1 I. _$ {0 U/ K - (ddimen_complist sv_dvlist dimlist dimtbl)) a$ s2 F! M% N
- )
. Q3 V" H! _1 S% g8 e* Z - (modify_prop_geom)9 g l0 M0 f& G! L+ U
- (entmod elist)
# a' O2 r' h4 [ - )
- X2 G9 ?+ j6 U* ? - ), D% x u, I1 k5 X s% C) a
- (if (= dialog-state 4)- u. r2 a1 C1 s4 D, v) V$ ~1 Z8 ?
- (progn
9 K8 O0 {7 j2 L7 x5 g - (setq ddimmt 1)
$ h- @4 G8 c2 c2 Q1 h - (if (/= dimsty stname)3 y2 _& M( e n- X$ } ^ {
- (progn
1 B6 y+ K1 A) D6 O }" W - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
8 p' }3 {% v: O - ; doesn't have it.1 L* |2 ?6 \$ F' _. s
- (if (null (assoc 3 elist))
0 I3 o; x: N0 K2 o0 |4 n6 ` - (setq elist (append elist (list (cons 3 dimsty))))
5 Q- u/ [9 i1 x2 | - ; else just replace it." B& g7 \; \* _1 {5 p! L( q' y0 u
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
8 w" r* R* ]# s6 V5 _ - )3 `* L8 l; U- Z& a3 P% t
- ; refresh sv_dvlist with new dimstyle." s: K6 }6 I! b2 f9 b
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
: _/ c- H7 n1 X+ Q" [* ^$ b - )
& f6 x. c- H- {8 r; |( X - )% R8 e% X- _ b; P0 O/ }6 y% B
- (if (not (null dimlist)) ; attempted to change dimvars
9 @4 N- U( K4 h% Q - (ddimen_complist sv_dvlist dimlist dimtbl)9 c0 v1 V. J. _( `0 X+ J9 X
- )9 r. }1 Q/ c' x
- (modify_properties)
& @2 X/ }0 A1 ]# s0 m1 { - (entmod elist)
, F( u5 q! | m [1 v3 J+ Y$ X$ ^- Y, X - (safe_ddedit ename)
& P2 ^% P- \1 L1 h, ]# M- ? - (setq elist (entget ename))
0 h: [0 U6 [1 h: x# S5 s, Z6 D9 S - (ddtolerance)
3 q4 u6 p3 B, R$ G8 e - )0 F% Z0 Y! D2 a
- )7 ?2 m6 w$ O( k
- (ddimen_setvars dimsvcurset) ; Prepare to exit: S3 ]& q+ l: i5 |) y1 z. q# F% O
- )
) x% h4 A) ?9 v" c8 E0 m - - l1 Z6 `% ~& d* y/ I
- ;;8 h; @/ z/ h5 ` T" a& {0 f
- ;; ddimen_dlg - jump to ADS ddim module
& m/ \; G- L' z - ;;
* b( [6 @2 a* a, n2 H - 3 E1 o6 F9 G- @* `
- (defun ddimen_dlg (dimtype tile dimsty dvlist / dimlist)4 n" _" J6 _+ _" _# o
' T* N$ r7 c1 f7 E- ; Jump to DDIM with overrides if any.9 ~# P& k6 q6 C. w
- (cond ((= tile 11) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Geometry
7 V- T8 ^; x( @! R - ((= tile 12) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Format/ x( t( T" r; g. Z! V" k. g- o3 H
- ((= tile 13) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Annotation: M# W9 ]6 b' V+ n' G9 ] Z( o
- )
/ U* K) j; z: |. K - )7 f- p1 A8 w% J q0 i5 l7 A9 d n
- . g+ n q& `6 g
- ;;
9 O, N' N' b4 ~3 A, t/ ?+ T! | - ;; Dimension variables updated are stored as overrides.
0 Q% ` o# s) R4 o% ~. E: i+ `* } - ;;
; r u/ H8 e: k" g, w. P" o
& c1 B1 \* I, @; ^- (defun ddimen_complist (dimolist dimnlist dimtbl / i odvar ndvar8 S* ^/ Z- n7 j
- dv dime commandIssued)
6 n; ~$ p4 Y6 a, ?" o, ]1 d* y
, @ w1 ]3 a0 [+ l* `5 X' ~- ; Here we skip the following first three items:9 P% ?- ]% c; `6 c: W! f
- ; (0 . "DIMSTYLE") (2 . sylename) (70 . 0)
9 x, f8 ^# L/ c3 G/ } Y& P5 b - ;- A# \" Z- b0 Y: s7 Z
- ; The list comparison immediately begins with dimvar.
% U& y4 w4 T0 P# ]7 {6 {4 v - ;; U8 [4 K# l+ X6 A1 O, q" {
- ; dimolist - original states of dimvars# s% H2 x* s C; V- g8 o
- ; dimnlist - new dimvar list which is of the resbuf's
' \- a1 a( }0 l+ G- P; i - ; dime - entity name for the dimension8 J9 X( D' V1 K: }7 K$ c
- ; odvar - value of dimvar for the dimolist
1 h3 B5 `/ V+ @" y - ; ndvar - value of dimvar for the dimnlist" {9 `$ [* v# H; \2 A+ m2 b! U
- # y& {- u# w& l& O
- (setq i 3
$ W. r4 w; ~1 r2 @( E - dime (cdr (assoc -1 elist))
' S4 X+ @1 h9 i) p/ R1 T, x6 ? - )7 x1 O! ?. w& e; [3 c7 t( H: M+ o& c
- (while (setq odvar (cdr (nth i dimolist)))- Z, Q- |; f9 D" A" E: n( |
- (progn0 b6 ^5 K) o# V4 |# `* H
- (setq ndvar (cdr (nth i dimnlist)))
$ F. t3 }4 v% L: j! ]. ^9 Z& g: } - (setq dv (nth i dimtbl)). R8 S& Z1 i9 \+ R8 {
- (if (eq dv "dimtxsty")
4 y6 J3 M8 y, n# h' F! L& Y6 @ - (setq odvar (cdr (assoc 2 (entget odvar)))% [& v% |% A* u
- ndvar (cdr (assoc 2 (entget ndvar)))
& n, L/ _( b2 L$ L - )& u4 `% i8 f) ?0 k+ S
- )0 `- U; q5 O1 ?; i# x- H D# d+ k
- 9 t2 ? J' ]/ w3 h" @
- ;) U s9 s1 ]7 G' m" [) }: i
- ; In order for DIMOVERRRIDE to operate correctly with string1 y2 Y _# K1 t3 e* M! r0 h( @
- ; based dimvars, we must pass "." versus NULL strings.
4 X2 |/ o9 {# O$ v. x5 M - ; In this case ndvar is the new dimvar value the user wishes$ E6 p) K8 t# C+ f" _$ b
- ; to update on selected dimensions.
" k9 l3 Y! U8 H% `) t. t2 \6 y% w - ;
3 {4 o( K# A' A6 L2 @ - (if (/= ndvar odvar)
5 {. Y/ A! f$ E& x& Q/ c5 J- }- { - (if (= 'STR (type ndvar))
4 x/ e ?* i% N! |. F - (if (= ndvar "")
( T% l X+ ~$ r2 |+ `6 j2 l - (setq ndvar "."))))& z, R0 U J. \$ L
4 R H/ C) Q& M C- (if (/= ndvar odvar)
5 a6 R4 K. W) a; t' u - (progn
2 u7 w' ?3 K7 L5 A1 T7 E - (setq dv (strcat "_" dv))
# c5 u0 M8 s2 M1 Q9 Q- V - ;" d3 @7 H8 H6 o. j
- ; Start the dimoverride command
$ t- f) @: y5 E* R3 s - ;
* `& h/ z+ R8 i( o+ ~% F - (if (not commandIssued)# Q4 E7 q/ \. X4 ]0 `5 t5 \
- (progn
+ W* e" o8 ~. H* v- G7 ?% x" ` - (command "_.dimoverride")5 A; K5 `2 u9 y% g: E' Y5 d% n
- (setq commandIssued "T")
3 x* s& R2 Z% N+ l- |3 u5 |) g Y - )
( h% T( P3 u O - )
9 P3 p/ S. F1 g" X4 \! z6 h. T - ;) C' J3 ^: N2 r9 j. ]& X& K
- ; Issue dim overrides
# l3 f4 T9 N6 C% P) ? - ;
; n @- s( f7 @( p1 `: ?( i - (if (and (or (= dv "_dimclrd") (= dv "_dimclrt") (= dv "_dimclre")) E% |5 B4 E" U* v4 f
- (or (= ndvar 0) (= ndvar 256))
8 i( E" S: b* \0 f - )
" X* o& P/ l4 h - (progn) |- P: U. n) J) v3 S- C, T
- (if (= 0 ndvar) (command dv "BYBLOCK"))
& M% `$ l- q' c/ T3 [0 c$ {) a8 D" h - (if (= 256 ndvar) (command dv "BYLAYER"))
% w7 [8 l& r/ t% l4 E2 s - )* n2 g# l$ S+ j% m
- (command dv ndvar)' s1 v* T3 B1 V- H* P5 |: G; A1 a
- )6 ~9 n) U' X. M! U5 n& o
- )
( Y( M" x# N: T, v% @! u - ). _! Z Z$ o8 O6 O, F
- (setq i (1+ i))2 a( y/ D% B& b9 V
- )
; Q& h9 h; Q' \2 `$ X C: X+ ` - ); K1 j- R# E4 n9 g% O% J& E$ [
- ;
& e' K0 w$ O7 i, Q4 A - ; Select Entity and terminate command, B) \; S4 J+ U6 a
- ;
" z! U; S$ M4 q0 x$ m' P$ m' Z - (if commandIssued
0 J) N; K- i* q, l) U9 a& M - (command "" dime "")
. e% T5 \ n; f% v7 m0 \3 Y+ _ - )
0 \1 [6 i0 I( N3 J% |# e6 R - )! q' d. P4 a. i, U! e: Y) ~
- ~: k7 S0 V# j8 i/ {- ;;2 z9 a7 N; D7 q6 L
- ;; Get style name currently selected style name.
) m3 y1 v6 H7 R% C! Y - ;;
6 I1 J) L1 j' G \: u a
, ~: a, A: ~/ f: [1 G B. I- (defun ddimen_style (/ dimsty)3 @# k8 c# E( |
- (setq dimsty (nth (atoi (get_tile "mod_style")) stlist)
" e+ W( S2 R& M - dimlist (ddimen_getdimvars dimsty)
" A5 z9 \5 F; l% j1 j j - )
7 A/ ?2 `( S' O; T8 Q - dimsty8 b: \, u b* |" f1 u1 ]! R. i
- )3 U/ t( b7 P; p, Z4 @; Z+ j9 _: U, @
7 q0 ^- K) h: Z) |" h" n8 q- ;;
! J3 \2 {' g+ a# C: ] - ;; Set dimvars; O8 X- _* h# ]- g5 H- Q6 P4 E5 g% J
- ;;- G" u6 S- I! ~8 @
- (defun ddimen_setvars (dimsvcurset / dv i). V1 o8 F* F& |3 g
- (setq dv (cdr (nth 1 dimsvcurset)))
+ t) t, u2 R) s4 M7 `: M - (command "_.dimstyle" "" dv)
' u+ f: m8 y4 m- _! F - (setq i 3)7 X! O: R1 F: F% R. p
- (while (setq dv (nth i dimsvcurset)) A& g. |* I7 R: Q5 c- e z' N
- (progn
* i- d& y6 S- D - (setvar (car dv) (cdr dv))8 H: B* J3 F! H% n/ a% a% R) F! {
- (setq i (1+ i))9 g9 r' v( g1 \
- )
8 T0 G/ G0 F# u: x - ). Q2 E/ R' \7 S' n( ]: E: @
- ) i8 X: M8 i1 x
- ;;
: G# v# G7 I7 w* L - ;; End-of-dimension
1 G( g; ]4 L1 G- @ - ;; ==================$ b$ a7 j. T8 H. d
- 6 W, W% {) e2 a/ D
- ;;
/ c# K& f! J/ J" r* R - ;; Sub-dialogues for properties. Common to all object dialogues* x* e1 s( G( I( R1 |; Z; o
- ;;, r, o3 {5 l0 n# \& b- L
- ;; This function pops a dialogue box consisting of a list box,image tile, and+ h$ N: h0 T* E+ E* u
- ;; edit box to allow the user to select or type a color number. It returns
9 q" ~; v- B/ R, m0 g5 d9 S1 H) ~ - ;; the color number selected.
7 ?) T# }( m1 M: B5 p6 u4 S( ? - (defun getcolor (/ old-idx colorno cname lay_clr)3 i; R/ y7 p' `8 u6 V
- (if (= (get_tile "error") "")% E+ a' X4 R4 n" z! Y9 E
- (progn2 o/ _1 k1 W y1 h! J' b5 U
- ;; Get the color associated with this object's layer, for use+ U) _. ]. u9 K3 u9 ^7 {
- ;; in the color swatch if the user selects color BYLAYER.1 _8 ?! `' x) [% g
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
, `' w s! f; u" V: f6 V" b4 G - (if (numberp (setq temp_color (acad_colordlg ecolor T lay_clr)))
3 u8 F0 \1 D" a% [2 G* F - (progn
$ a- v8 b0 ?+ L# j# D! V% Q - (setq ecolor temp_color)
1 m3 [* w( P; G" ?$ t$ X. r# R - (setcolor)2 G6 }' O3 X( d) m
- )
& G2 J) k8 A0 h- I# [ - (setq testcolor temp_color)+ o! g$ S& B( O8 t3 t3 L4 v) r3 g
- )
: ^$ a( w- }9 \ - )3 Y2 U2 M8 ]6 @$ B; ]' ] X
- )6 B# t% c3 a; F9 L* Q
- ecolor
" Q9 Q# x& @, {" V, F4 o - )
3 p( j% o9 v, ~0 F - ;;
8 l. M; s2 M1 b9 w9 P2 B& { s) c - ;; Function to set the color tiles.
, i/ a, M S- Q( V - (defun setcolor()% d8 ~# @# B: s! C4 j8 Z
- (cond# h# K# V7 z* U9 m; Z0 B, z) ?
- ((= 0 ecolor)
# w9 A2 h9 q2 _* X$ `' U1 _6 G! y - (set_tile "t_color" "BYBLOCK")! W! P" e' R& E8 Z+ O8 r" D R
- (col_tile "show_image" 7 nil) ; show BYBLOCK as white9 E9 K: W' x. U
- )5 w Z5 f, R. E% @& N; T! g
- ((= 1 ecolor)' q; Z0 f$ z; _
- (set_tile "t_color" "1 red")
% m6 ^* y' ^/ R# y - (col_tile "show_image" 1 nil)9 s- Z% X3 R K* L; O2 t# J* ?' k
- )
) h2 B% z! n% t; G7 S$ X - ((= 2 ecolor)# Y* }; ]* {4 |/ o- \4 [: m
- (set_tile "t_color" "2 yellow")0 J! i( o, J g d+ p% `; Z4 ^
- (col_tile "show_image" 2 nil)$ h5 K. ^0 R! Y" K0 G8 i
- )- w8 X3 c+ v, ^; A1 F l: h5 U% d
- ((= 3 ecolor)
, S) @! y/ m; A - (set_tile "t_color" "3 green")
' J6 u5 C7 p9 r; n - (col_tile "show_image" 3 nil). m0 ]! g9 o% m) Z6 K! x4 V
- )# ?9 T, ?; H' `% |4 s( c8 H$ @( U
- ((= 4 ecolor)
! U* q' S- e& k - (set_tile "t_color" "4 cyan")* q9 M _+ u) c
- (col_tile "show_image" 4 nil)# a; _( @! [0 |) B f4 w( e
- )
. A6 o4 B( S V3 g - ((= 5 ecolor)
* s9 ?$ N, a/ ?( e - (set_tile "t_color" "5 blue")
) n8 f3 E3 I9 t+ f - (col_tile "show_image" 5 nil)
( W6 c! y5 `! y7 E( ~% K: r' ^ - )
, M& |1 U4 O& P9 q& s4 a - ((= 6 ecolor)' E0 K6 X4 J. B* s' i1 n7 z
- (set_tile "t_color" "6 magenta")/ A9 C* Z% Q7 W1 }# F6 c5 f
- (col_tile "show_image" 6 nil)% S: C: u' N! m% ~& h1 N9 L) g
- )
9 a; ] q$ U5 B6 A- e4 X O$ g/ f - ((= 7 ecolor)
% A( `& R- |% d( F& K% I+ q& b - (set_tile "t_color" "7 white")
, I) F5 j& D( f+ W - (col_tile "show_image" 7 nil)
/ A, }" A% \) Y - )' r6 @/ H! z% J0 B
- ((= 256 ecolor)
3 F* _: |* V- g: H2 C5 x - (set_tile "t_color" "BYLAYER")' Z( k$ I0 x5 j2 D# M
- (col_tile "show_image" (bylayer_col) nil)
- O" ^! b9 L3 r. k6 x. { - ), r4 ~: o0 b, d: P6 N
- (T( u( {- _3 f. q! G' S! Z
- (set_tile "t_color" (itoa ecolor))# h/ _7 e" L* _& ?+ x
- (col_tile "show_image" ecolor nil)3 e1 S8 \/ k! a) F7 K
- )/ b" A+ t3 q/ ^( b: H; Q& j# b* t
- )/ d# |& i. M( I! s1 o' v
- )
+ J' r3 B( c; [ - ;;. i+ j( M( k4 T8 S1 b
- ;; This function pops a dialogue box consisting of a list box, image tile, and- t M" H% i( J9 Y: d
- ;; edit box to allow the user to select or type a linetype. It returns the: D! k, P; a2 {6 q/ E
- ;; linetype selected.$ v6 a& {0 O) s% x# w
- ;;, ~2 Z- F* D8 _4 c9 {& D& `/ V1 i
- (defun getltype (/ old-idx ltname)
* {3 K# d! W# N- d) Q, n8 l* r - (if (not lt-idx); j( {' }! `) A' k* E/ }
- (progn# |0 }) T4 x7 z* N+ }7 k* T8 N5 w
- (make_lt_lists) ; linetype lists - ltnmlst, mdashlist9 K$ b- C! x# k" p4 r
- (cond9 m) a; Y" v9 ~6 X" g
- ((= eltype "BYLAYER")
' i. X2 x, x z+ f( T - (setq lt-idx (getindex "BYLAYER" ltnmlst)))
# h& ?" h" l+ a) {7 p0 O% \; q. ` - ((= eltype "BYBLOCK")( [( o% W$ ~5 g3 b8 v
- (setq lt-idx (getindex "BYBLOCK" ltnmlst)))2 L/ z9 L4 a1 W9 K5 G, ]) X1 l) k
- (T (setq lt-idx (getindex eltype ltnmlst)))4 V2 [8 O [) y# U; [# ~
- )
4 O3 M- J1 F6 Y - )! t3 e0 Y2 ?4 D( \- `
- )
$ I* X' D. D6 V3 \
" `6 J" u/ V! S$ M# X) v- (if (= (get_tile "error") "")! ?( v: U( `/ q0 E
- (progn, D* ?/ u. A9 F3 V% b- f7 r6 x
- (if (not (new_dialog "setltype" dcl_id)) (exit))
8 E6 _/ O9 Q. m* x& Z - (start_list "list_lt")
8 d! G, e- R0 f. S+ B( P - (mapcar 'add_list ltnmlst) ; initialize list box8 e, U0 G- I$ P+ r
- (end_list)0 t. [0 w* l1 l' Y& b
- (setq old-idx lt-idx)
4 o6 G, B1 m! b4 a - (ltlist_act (itoa lt-idx))
3 i8 P* {% V( ]' n* V1 y
8 ~3 Z7 Y, \- v; I- _- (action_tile "list_lt" "(ltlist_act $value)")
* R9 J* }9 f6 z* W - (action_tile "edit_lt" "(ltedit_act $value)")
# x n' d# \4 k9 q6 q: q5 m- L - (action_tile "accept" "(test_ok)")
1 r7 B+ v+ i" T% o+ N: b - (action_tile "cancel" "(reset_lt)")
, ?6 B4 m! H7 Z# d \4 x& K - . y7 a9 k9 O* C; G
- (if (= (start_dialog) 1) ; User pressed OK
# R) W0 i( R* R3 y - (cond7 y( }8 K' G' s; b' G4 _
- ((= lt-idx 0)1 @) E! t2 u: k) E3 Y# C
- (set_tile "t_ltype" (bylayer_lt))
6 M2 i5 ~) X9 `; ^+ ` - "BYLAYER"2 K+ W/ @8 m4 l, s/ z- N
- )% r7 l( X+ [; F8 ^; C
- ((= lt-idx 1), F' F" ?) E5 I* W @
- (set_tile "t_ltype" "BYBLOCK")
6 |, [) o. f$ l" k3 ? q - "BYBLOCK"
$ F g' v8 l/ J% |" F! l - )1 y. M4 {) h" T& z
- (T (set_tile "t_ltype" ltname) ltname)
/ ?/ Q; k6 E% ? - )
& d1 [5 m5 `6 O0 c1 k9 H - eltype3 z' ~2 m" T& Y: |5 S
- )
% y3 P" P. ]6 \9 _6 ~% j - )( ?7 @, |5 n1 R* c8 L1 r
- eltype; z9 z4 d7 ?; e& Z7 O+ P
- )" Q9 V- p6 J- N- U5 C! ?, p' A
- ), J% z8 l/ T/ }' @: i; _
- ;;* v, d$ j1 {. |( H6 ` n% G' v. B
- ;; Edit box entries end up here5 H7 o, o0 Z, z1 W) S5 w. e) X
- (defun ltedit_act (ltvalue)
4 f% z: b) ~7 R - (setq ltvalue (xstrcase ltvalue))
; Z) J% \& n) c/ x7 P" V - (if (or (= ltvalue "BYLAYER")
! H0 R# ~! Q# |; q8 V - (= ltvalue "BY LAYER")): h. Q/ O8 @$ R/ ?$ y5 o) i$ I' {
- (setq ltvalue "BYLAYER")
# V- F/ F6 U9 e7 G7 S- u& x+ C - )2 U. f2 L0 M0 P) q K6 _
- (if (or (= ltvalue "BYBLOCK")0 w1 t& s1 x5 A: G" D2 V) i( K
- (= ltvalue "BY BLOCK"))% P( n8 d }0 B
- (setq ltvalue "BYBLOCK")
/ _( S( Q& P3 p: ~9 l/ y; I - )
; Z- `. A3 L5 A7 ^5 ^% \* D U# g - (if (setq lt-idx (getindex ltvalue ltnmlst))/ Q; N" A* b/ U L% X' A1 v2 L
- (progn
9 Y- K: h+ q, z+ B1 L - (set_tile "error" "")
" ?$ }7 u' [. z, h* S1 w; c# X - (ltlist_act (itoa lt-idx))/ |1 r# g# W. Z$ _" [2 j6 P
- )/ L% {4 V* @# j. N% N! W, ?8 W
- (progn
4 v7 h' a8 Q$ T - (set_tile "error" "Invalid linetype.")
6 H1 B" Y) y9 r7 n* m" A# j - (setq lt-idx old-idx)" O( N% P$ ^7 z0 J8 W- L( r
- ;; (mode_tile "edit_lt" 2)
" ?4 S7 j. |' M3 o* `9 G; ] - ;; (mode_tile "edit_lt" 3)
9 o+ F& Q! B2 ~" a! e% ~ - )
+ x8 [. D' q' C( f9 e& Q - )
$ e3 {" S, `) E( Y& b, i9 Y - )
/ ~6 z, W% ^" B* _* F - ;;2 K e4 b3 K; |3 L! C+ e
- ;; List selections end up here. Update the list box, edit box, and color
* ]3 l: m9 K0 q1 r* ]: S% V5 f/ }& | - ;; tile.& q1 k3 _# _) G
- ;;$ s& D7 O2 q' u8 p+ G
- (defun ltlist_act (index / dashdata)
% L( S& }1 l0 I - (set_tile "error" ""); ` F t* r/ r' H# R
- (setq lt-idx (atoi index))( a) a& s7 E, U e
- (setq ltname (nth lt-idx ltnmlst))
9 k. M* m P$ X5 f - (setq dashdata (nth lt-idx mdashlist))
) H. M4 {6 ?! C - (col_tile "show_image" 0 dashdata)6 _1 {7 d/ i- f- \4 y& C
- (set_tile "list_lt" (itoa lt-idx))
8 ]+ W& Y5 J7 }/ A5 I; y& {6 ` - (set_tile "edit_lt" ltname)
C* ?$ _5 L' G3 O# x' A) X& q - )' F9 d+ x+ u; N7 H
- ;;
: v/ i# Z9 @0 }: U5 Y3 t - ;; Reset to original linetype when cancel it selected6 j$ g; o( m4 y
- ;; S3 r% I. t3 R2 ~; a* g& t
- (defun reset_lt ()
0 L7 i) i0 V8 C3 S- W0 j! F - (setq lt-idx old-idx)$ l0 O2 b0 k" t3 a4 n
- (done_dialog 0)
+ K, Z; ]2 c: l5 Q7 ^" x2 a - ): j+ J4 [, k, {8 I+ ?0 x
- ;; S% U0 N% M7 B& h
- ;; This function pops a dialogue box consisting of a list box,image tile, and
5 R8 w4 N% q" r( p9 u - ;; edit box to allow the user to select or type a layer name. It returns the$ I. ~4 w, |7 C: e+ T
- ;; layer name selected. It also has a button to find the status (On, Off,
6 p: D& f( e: [/ E) i - ;; Frozen, etc.) of any layer selected.5 }( T7 v9 t! K# P$ {8 z9 L3 _
- ;;
' T$ F7 \4 E, K# n& w7 C - (defun getlayer (/ old-idx layname on off frozth linetype)+ F' A& x% _, L$ l x! ]+ H
- ;; Create layer list the first time the layer
8 N: R" q. `, h# }0 N" w' [ - ;; dialogue is called.
6 @% U# i& F* J& I - (if (not lay-idx)" f/ n M& t& V0 G) o" E4 S
- (progn0 P5 L' t$ d. B& W( y: g
- (make_lay_lists)$ u: S- ^0 M8 i
- (setq lay-idx (getindex elayer laynmlst))
% p8 Q) J: F5 H6 | ]' ]# [ - )0 `5 L0 _; Y* \6 a7 a9 u w
- )2 J: ]" c7 z. |4 b1 k3 d2 A! B$ @
8 P- z4 @9 a' J! k% y9 B- (if (= (get_tile "error") "")" Y* \4 ]0 l2 d0 {& x: N, J
- (progn
& N6 B% q* Y( E - (if (not (new_dialog "setlayer" dcl_id)) (exit))
d# C1 m6 R$ m6 R3 q! [" I - (set_tile "cur_layer" (getvar "clayer"))0 y! n% T8 `' r: G' W2 K4 R" e
- (start_list "list_lay"), Z& p# h, v+ O M; v( Q; T
- (mapcar 'add_list laynmlst) ; initialize list box, T2 V ]# e3 \3 h+ O7 I4 C
- (end_list)
- t# ]2 ?- M0 b6 Z3 Z! c2 B - (setq old-idx lay-idx)
, S- ?0 q1 j2 g* k" q/ G3 I- T - (laylist_act (itoa lay-idx))
/ S& u8 ], @' O3 A& K - (action_tile "list_lay" "(laylist_act $value)")
9 P% }* y8 t- i# X$ M @ - (action_tile "edit_lay" "(layedit_act $value)")
& d% u3 N4 s/ W' c" i5 x - (action_tile "accept" "(test_ok)")
+ F: n; |, ~ ?7 r0 Z) G - (action_tile "cancel" "(reset_lay)"): j" ?( h, H* t X! e# @
- (if (= (start_dialog) 1) ; User pressed OK
* w9 o' t, @4 Z4 `; E - (progn
( {* m6 `7 `# Z w - (set_tile "t_layer" layname)
9 A' z) H# p5 s& I; R! Y; w - (setq elayer layname)
) k1 T0 C) o: W# n8 o4 P - ;; If layer equals bylayer reset color tile
- H- F: s+ S0 N0 L0 I3 y - (if (= ecolor 256)
* Q, f7 J0 |; c- T- n+ [ - (col_tile "show_image" (bylayer_col) nil)
# `$ f" h# ?! t9 k% _0 x) c - )
' r* {1 a3 |' W( C# ]7 } - layname
- p# _+ z. c9 z) z6 H1 F - )
( M- h1 E' p) E - elayer
- c$ r) X, z' v! s9 } - )
& Q+ C8 z% J M9 q ^% I9 V - )
Q% v8 p- F1 r9 V - elayer2 Q* x. }3 x6 i2 ~& f' U
- )
1 v# d4 N. J8 ?. N - )
; d) O H7 M7 l( ~* X. O; e - ;;: V; y' D6 V. W6 n+ W
- ;; Edit box selections end up here. Convert layer entry to upper case. If
: d+ B' @0 E7 B- J* M" d - ;; layer name is valid, clear error string, call (laylist_act) function.
, T- @* x4 [8 _$ L* b! ? - ;; Else print error message.
% Q9 _3 R0 b& T! b - ;;
9 @1 k+ O u1 s' f' o6 N - (defun layedit_act (layvalue)/ Q3 @" ~: ~; I2 K2 K3 Q6 U* }- M
- (setq layvalue (xstrcase layvalue))& P, l, \+ k2 B- G
- (if (setq lay-idx (getindex layvalue laynmlst))
, f$ h+ a1 x. A1 W - (progn+ l0 E4 A* S' A6 Q# ~0 E& N/ A
- (set_tile "error" "")
' Y, X, u0 N2 U9 l) r9 p. J - (laylist_act (itoa lay-idx))
% K0 g0 T3 K( a9 j% i - )
1 s, V. M d" \3 j- [9 {! C# Y0 Q" B - (progn
% c- K: r: J5 A7 h$ i8 r - (set_tile "error" "Invalid layer name.")
7 C3 q8 w( @/ y* y/ [* _3 ` - ;; (mode_tile "edit_lay" 2); F/ o, `) i, a2 G3 Y) ` s
- ;; (mode_tile "edit_lay" 3)' A8 {: F. Z5 |% M* A T
- (setq lay-idx old-idx)1 p- k B$ F6 |
- )0 W" L8 B+ I# j: ?4 A& S6 ~0 H2 ^
- )
. M2 ]( n( g1 l2 a7 N% n - )
, g$ }: I9 D' t' s. s8 S - ;; I( |2 q9 H& r) v+ X- P: G
- ;; List entry selections end up here.
. p5 t5 _, j+ H* ^. d - ;;) u+ {6 H2 N3 P7 t* \
- (defun laylist_act (index / layinfo color dashdata)' B, n$ [7 k; H) U7 s4 L
- ;; Update the list box, edit box, and color tile.% ]0 d3 A' Q8 r$ l5 L1 j7 l: x
- (set_tile "error" ""), j u' N6 ~. _, ^; Q& k
- (setq lay-idx (atoi index))8 j0 R. F* N" V$ a1 U4 b
- (setq layname (nth lay-idx laynmlst))
, r0 v) c6 R8 {( X& _& [4 k - (setq layinfo (tblsearch "layer" layname))0 a. x, S# [0 J- u" A0 s1 `
- (setq color (cdr (assoc 62 layinfo)))$ |5 Y* l* t1 ^7 F0 u4 n' X( M( c
- (setq color (abs color))
, K* `' S2 P2 |5 d$ G - (setq colname (colorname color))
" b5 m4 S& \: Q2 p2 l - (set_tile "list_lay" (itoa lay-idx))
) e5 |0 m3 F Y6 `8 r - (set_tile "edit_lay" layname)8 I* c- V3 w7 m _
- )
: @ A! F: ~, Q) Y5 M8 D# q - ;;
# V4 D: |8 @5 j. Q - ;; Reset to original layer when cancel is selected.
+ m1 t9 a5 n# W8 D1 I - ;;
3 j3 K" f) k# m/ m5 ] - (defun reset_lay ()9 }) t; X) v. r( J
- (setq lay-idx old-idx)
% j8 G6 |3 S1 C+ s - (done_dialog 0)# }/ D1 h# i( J( i, M
- )
& z1 e8 Y& y2 u+ Q( v - ;;
( g! Z4 U3 N( r% H$ k( s - ;; Checks validity of thickness from edit box.
) I" a1 w X) E: B - (defun getthickness (value)0 [; _ k# d2 c# C5 {0 {
- (setq ethickness (verify_d "eb_thickness" value ethickness))) H8 K' y6 w+ i4 L
- )( B l0 d) [, s) K! Z: R) f8 N, X0 f
- ;;) c. o7 p+ ~3 @2 V6 J
- ;; Copy of (getthickness) for ltscale. If more, make this function
; D. x: G% l. P" U& p2 j" T/ J - ;; generic.
9 O3 _! K5 S: q! E4 `, t) B - (defun getltscale (value)
6 D5 ^+ ?, K0 H3 \: D. I - (setq eltscale (verify_d "eb_ltscale" value eltscale))
; W7 U1 i& c; ]2 O/ U - )( z& |- o1 C6 j
- ;;8 w, `/ b7 `# @0 v. |# G* k
- ;; This function makes a list called laynmlst which consists of all the layer
6 H* s# j3 M3 z - ;; names in the drawing. It also creates a list called longlist which
7 O& f+ G" S9 {2 } - ;; consists of strings which contain the layer name, color, linetype, etc.
% ^; I$ O9 b& k. m8 c2 I7 L - ;; Longlist is later mapped into the layer listbox. Both are ordered the5 l- |$ J( ]/ E [2 @
- ;; same.
& z1 ^' t* p7 ^' C - ;;
% Y+ F0 E4 J. c - (defun make_lay_lists (/ layname sortlist name templist layer_number)2 z8 y8 A' B" j% M
- (setq sortlist nil)
* T( T* W" _# j* B1 s' O- }; @! J* Z - (setq templist (tblnext "LAYER" T))7 Y# V3 v1 X' h- l, [
- (setq layer_number 1)& r! v! `! f! Q5 [
- (while templist2 j$ @7 `7 N# S) g
- ;; No xref dependent layers, please.4 ~3 U5 {# V* Y1 T9 d0 K
- (if (/= (logand 16 (cdr (assoc 70 templist))) 16)1 W8 L X. V3 l) m# N
- (progn: S1 U* P) _( d7 |8 c$ W
- (setq name (cdr (assoc 2 templist)))3 J% S4 A; b5 u7 m' J6 A1 x
- (setq sortlist (cons name sortlist))
( }2 q1 O- f4 b! M - )1 a' Z. F* `# g9 {% v7 Q7 I
- )* ^, u+ H3 T6 n! I- |
- ; Get the next layer.
3 m" r; ?6 h, o5 s0 }1 g# t - (setq templist (tblnext "LAYER"))- Q4 m5 ^8 J1 t8 A' F7 z! W
- ;; Not dead message...7 z% R6 i! W/ }
- (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))
9 b) G2 M1 G6 i4 X. d% ^ - (set_tile "error" (strcat "Collecting..." (itoa layer_number)))
B+ \+ S9 D" l7 d9 x1 m8 O3 W - )9 s. d3 g/ ]; J: k5 i
- (setq layer_number (1+ layer_number))
w, c$ n9 Y2 V$ T4 d - )6 T+ ]2 X* D V- r5 ~3 ?; R Q$ J
- (set_tile "error" "")6 y3 Z5 ?* H: C% c
- (if (>= (getvar "maxsort") (length sortlist))# ^6 N) b2 e7 y" S4 `1 f7 k
- (progn
' p% |9 M7 V* S+ U0 K4 [ - (if (> layer_number 50)# r0 B V( G- p1 F [2 h
- (set_tile "error" "Sorting...")* u+ P. e0 x, C, Z2 ]
- )
! m' K! N G0 r0 b# ` - (setq sortlist (acad_strlsort sortlist)); t+ A9 ^* P& f8 A
- )
# y: R' y* ^, a8 `; z& Y# d - (setq sortlist (reverse sortlist))
' }! }0 X, b3 b3 f) E - )
" l9 x+ n \, w) _ - (set_tile "error" "")
) t, `1 _; Y, M; U; X5 o+ P - (setq laynmlst sortlist)
3 Z- T9 b/ {! D8 Y6 s% I. ^7 ?) ]- x! c - )
+ V8 {" @& e3 J1 u - ;;8 o# J1 }0 c$ Q* U( e
- ;; This function makes 2 list - ltnmlst & mdashlist.
5 G( ?# M* [1 I0 \ - ;; Ltnmlst is a list of linetype names read from the symbol table. Mdashlist L- M$ H7 \" P2 D- X% x
- ;; is list consisting of lists which define the linetype pattern - numbers9 g8 E7 i( n$ i9 P' y, b6 i# ?
- ;; that indicate dots, dashes, and spaces taken from group code 49. The list) A4 h$ Q0 j0 P m1 ]! @1 b
- ;; corresponds to the order of names in ltnmlst.
- l# s/ J6 f) \/ w - ;;
& Q1 ~2 k4 u* i Y+ E' G - (defun make_lt_lists (/ ltlist ltname)0 c. I! [! u3 [/ e" V
- (setq mdashlist nil)
" D5 i w9 U: H- Y4 M% r - (setq sortlist nil)- e6 A- y4 U4 `8 h3 ?) I
- (setq ltype_number 1)
6 C5 o, C, c: M+ n - (setq ltlist (tblnext "LTYPE" T)): i2 N2 {, P: c8 G, x1 I
- ;;(setq ltname (cdr (assoc 2 ltlist)))
+ |0 P2 I6 A% w; r& m - ;;(setq ltnmlst (list ltname))9 i& Z% {* u1 [- r& m0 W
- (while ltlist/ b( w/ }3 Z" {# N) Y, k% q
- ;; No xref dependent linetypes, please.
* ]7 j- I3 u0 Q6 v& n - (if (/= (logand 16 (cdr (assoc 70 ltlist))) 16)! A+ L- T0 r' C, M- t' d
- (progn+ w; l3 P; Q# ~' p8 c, j. d* `+ W
- (setq ltname (cdr (assoc 2 ltlist)))
, R, T- m+ S& E7 _1 @ - (setq sortlist (cons ltname sortlist))
4 h% D% v$ \8 S1 y( c. [( ] - )
: T3 v+ h4 x9 Z4 f, F - )
# \2 a8 K1 O4 F7 A. F$ q/ `9 |0 L - ;; Get the next linetype.
: h" r% l( C* [; ?. t - (setq ltlist (tblnext "LTYPE"))
7 C/ X9 G/ O! \% i) z - ) X! f: Y. U& G+ R
- ;; Not dead message...
4 t# v. ~- h J6 f% o" E - (if (= (/ ltype_number 50.0) (fix (/ ltype_number 50.0))) T9 h/ {& R9 Q$ @: A2 b- I8 j
- (set_tile "error" (strcat "Collecting..." (itoa ltype_number)))# n! }1 `7 \* V9 n( d4 s. w
- )
2 w7 t; b1 H8 _" S6 ~% { - (setq ltype_number (1+ ltype_number)): f- }: O/ L# o
- [7 `( A3 i* P- )6 a* H) S5 @2 G. y( l1 W
) q8 I% M9 g( f) ~, E- ;; Remove Collecting message.
/ l" l$ I+ @2 d: C. Z6 @- Y - (set_tile "error" "")0 x' L$ }) v! K2 ]/ g9 p( c4 ~5 k
- $ m( m3 n7 r/ b; d: ^
- ;; Sort based on maxsort.- D+ |9 r8 p! m( @4 P) ~9 \
- (if (>= (getvar "maxsort") (length sortlist))
* T" d/ P& @0 r; e% t/ } - (progn! S8 w$ ]4 D9 B7 j+ C
- (if (> ltype_number 50)' U; R6 N5 A: \4 ?
- (set_tile "error" "Sorting...")9 C" O# L& a; @/ x( M
- )
7 p, Q6 f$ W# i, ~! ? - (setq sortlist (acad_strlsort sortlist))% C) ^0 \: a& }2 t6 [2 q+ d5 z
- )2 n T- n4 ~" A+ ~
- (setq sortlist (reverse sortlist))
' n9 \6 c8 p2 C, f - )5 b1 q! Q. w- |! K
- (set_tile "error" "")# Z2 K/ ]3 c9 V2 Z6 R# }7 N
- (setq ltnmlst sortlist)
4 |% q; w }2 k8 V3 ` - ' e: P5 `# p5 f( Z3 |
- (foreach ltname ltnmlst
`) b9 K0 N& ^; b - (setq ltlist (tblsearch "LTYPE" ltname))% ^8 h9 @' Y+ q/ e7 l2 s7 R
- (if (= ltname "CONTINUOUS")4 p: w4 [% [; ]+ W; T
- (setq mdashlist (append mdashlist (list "CONT")))3 ]# b1 l h* q; ]! v
- (setq mdashlist
, ]! ]2 Z2 B2 Y6 N% D# G - (append mdashlist (list (add_mdash ltlist)))
6 j) I8 F5 R+ L: @7 e - )
7 T( Z) _: C) }8 a6 ?, }: J - )( Q5 W3 _' [! A3 f9 y5 ^2 M
- )
$ T: q: N u w. F - (setq ltnmlst (cons "BYBLOCK" ltnmlst))+ t: e/ ]; ?0 G# ]. S8 t
- (setq mdashlist (cons nil mdashlist))
2 Q. G9 b) \: z# r# t2 b - (setq ltnmlst (cons "BYLAYER" ltnmlst))
" ?( u! Y+ ^% a9 N - (setq mdashlist (cons nil mdashlist))0 E. V9 W! P2 ]
- )
) v! q6 W* r& k: l - ;;9 X! }4 M. T, V0 E
- ;; Get all the group code 49 values for a linetype and put them in a list
1 r( \9 P, |$ m2 U: B0 z v+ S A9 F/ E - ;; (pen-up, pen-down info).
+ r+ ?, N) H, `: I' v - ;;4 g3 k8 ~* B0 d3 F% G
- (defun add_mdash (ltlist1 / dashlist assoclist dashsize)! \+ K/ F4 A0 Q* X* i- N
- (setq dashlist nil)
& N: {1 D2 h' Y - (while (setq assoclist (car ltlist1)); `# t9 l- Y d+ N( Z# m
- (if (= (car assoclist) 49)
- @1 n) i- W9 v - (progn
/ c3 t% f& _6 S; `: e. h; T5 X - (setq dashsize (cdr assoclist))8 g( R7 ~" y$ \1 _7 A4 q9 E
- (setq dashlist (cons dashsize dashlist)), I1 g4 A! h1 R- x7 w
- )# l3 i0 ^' l+ \' R( w. ^
- )
# u$ p3 n7 d. ^" A; ^* o2 k - (setq ltlist1 (cdr ltlist1))
6 k: L1 V8 P4 z3 u% W - )
% }3 s2 W9 }4 n8 P/ z - (setq dashlist (reverse dashlist))
& n5 u3 H& B* L7 B - )
) ~* n+ [5 @5 C1 m, v( Z8 S - ;;* M. d0 o' ~% p( y" c
- ;; Color a tile, draw linetype, and draw a border around it
* d3 E+ m0 s G; Y - ;;
* x! o+ C' I$ [' j - (defun col_tile (tile color patlist / x y)' O0 t" E# X% n% S; e. n- U& L5 ]
- (setq x (dimx_tile tile))) F3 a* B3 t% ]3 v0 t8 c
- (setq y (dimy_tile tile))8 k* Q0 S5 u x+ ?- H
- (start_image tile)8 J m, b; D% V4 H8 H
- (fill_image 0 0 x y color)
{/ {! I0 K- `6 g - (if (= color 7)
% X1 [' J0 Q$ H" x0 R - (progn
( t- N: i! [# l w1 R* ]. D1 i - (if patlist (drawpattern x (/ y 2) patlist 0))) W+ v3 z$ f% X2 ~) u, e% G( k3 u
- (tile_rect 0 0 x y 0)
$ ^: E/ F0 @( u& ] - )
7 h4 m0 O' E# }, `: N- {7 B - (progn+ ]5 F n. Z6 _/ N ~
- (if patlist (drawpattern x (/ y 2) patlist 7))
1 P: D a- q8 v) O - (tile_rect 0 0 x y 7)
# }6 Q0 g6 R* N& U - ) {7 S- x) f) m. R, b; x
- )
' X+ B p: X3 I( _% |' s- G - (end_image)
' f8 K" P' x. `( A( t/ M& k - )8 n& ~$ J4 `: n% U- ]1 i
- ;;0 U7 c$ U& N+ i! m1 ~( I% o7 ]
- ;; Draw a border around a tile0 n$ B* F- S `2 c: X9 H2 w4 N5 c
- ;;
/ i. O+ _0 r5 ? - (defun tile_rect (x1 y1 x2 y2 color)( a) e2 {; V4 l. W
- (setq x2 (- x2 1))) S% e* Y; \# H X6 z
- (setq y2 (- y2 1))
9 s& ~# @/ A' D - (vector_image x1 y1 x2 y1 color)
8 v! h M S! H - (vector_image x2 y1 x2 y2 color)& I% c% o4 f Y4 @, U
- (vector_image x2 y2 x1 y2 color)# I) T2 b- X. \$ l* @3 V" w, C
- (vector_image x1 y2 x1 y1 color)) ^* `0 w5 v7 T
- ). V; ]4 m' J$ q# X
- ;;7 a% a+ ?! A7 E
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image( J$ T4 Z3 Q. Y) Y2 X
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a4 O8 o/ h# b0 s! z4 R6 d
- ;; list of numbers that define the linetype, and color is the color of the4 Y4 o0 {! j A
- ;; tile.5 \. V1 v3 J6 W8 @( C
- ;;9 M+ X1 G2 c% v, ^
- (defun drawpattern (boxlength y2 pattern color / x1 x2, R: Q1 m5 |( O/ }
- patlist dash)5 B7 h- W/ k0 H; L* r' k0 I
- (setq x1 0 x2 0)
& i+ G& C) k9 j5 \0 j9 S, B - (setq patlist pattern)
8 I" G) z* N; O) |( A! p - (setq fx 30)
3 y" y* Y4 K# h; h5 L7 @ - (if (= patlist "CONT")
; [' { f( q7 G/ Z0 T, v - (progn (setq dash boxlength): T9 j( Q# J9 M) P' ?
- (vi) m! h7 X" S S% X# [9 h# y( s
- (setq x1 boxlength)
- o6 |0 v7 J$ s - )+ S$ k% P; P# @. A
- (foreach dash patlist" @9 \' A* V: V/ w# c* u
- (if (> (abs dash) 2.5)
( C: a! o! G6 M6 ~2 w$ i& I: V - (setq fx 2)0 p3 ]) z+ }: x3 _* E
- )
/ f8 R+ q: T5 d& n5 m9 Q - )
" L9 C% |: ? U/ V - )
3 j# y2 D1 b7 P7 V5 j# m9 Y - (while (< x1 boxlength)
8 m1 m, m5 N+ q6 g8 G# F% { - (if (setq dash (car patlist))3 @! f j! P% y
- (progn
$ x) s) a/ c: ` - (setq dash (fix (* fx dash)))
0 y7 H- m0 k- D1 F8 X - (cond1 A" F7 G# T* n. V8 P6 I$ N3 U
- ((= dash 0) (setq dash 1) (vi))
& a' [" f. k( f" } B - ((> dash 0) (vi)). }; u9 }1 w8 u% ^3 @
- (T
; q- u7 O( S0 w* _ - (if (< (abs dash) 2)8 ]- t7 r L/ W1 E3 j' S6 e
- (setq dash 2)# ~/ g9 L4 J P4 X$ m! P) s, u
- )
* Q# l4 K$ k$ T7 z1 _. p: y - (setq x2 (+ x2 (abs dash)))
8 B) d; W W0 C6 v3 E, r - )
6 H3 x+ J* U L- K/ D3 w - )
: b6 S- O% Q' N2 U; U) X- D- | - (setq patlist (cdr patlist))/ \' c: C1 i5 V" R9 w8 K
- (setq x1 x2)
e$ O, K$ o$ T" ? - )% @1 o5 M6 {* Y [
- (setq patlist pattern)
) M& W( R" G1 d1 r" J: a - )5 O2 Y g V7 v2 w
- ). t7 t. V/ H; U$ a
- )
9 r' P) j# E9 O/ H - ;;7 T" {: r, N1 J9 k- E) O
- ;; Determain state of xclip- h# ?/ x6 S3 [* ]" |: F
- ;; Returns the group 71 value of the spacial filter dictionary.; y% L* A. {, \9 t! x! k+ `) l+ ~# V
- ;; If the entity doesn't have a spacial filter dictionary, this; I! n5 h5 ^8 }* `# V( r
- ;; returns 0. If it does it will return 0 or 1 depending on the, T$ f3 v0 R+ ?; k$ J" ?% J- w0 z- M
- ;; current setting of the state of the clipping visibility.+ J. ]* ]- s D: F7 x
- ;;
4 N2 l+ N5 ~* `* F - (defun xclipon(elist)
/ k# U4 K( V( t5 q$ M( A - (setq hasclip T)+ k. C" s1 j8 o) R( t
- (if (/= (assoc 360 elist) nil)
4 F( G/ s3 q4 [3 [7 g$ U - (progn
, N8 {( I4 P, x' I - (setq tmp (entget(cdr(assoc 360 elist))))6 O1 t* O' W# a3 F+ A! p
- (if (/= nil (assoc 360 tmp))
) W3 I# T, G9 M( X - (progn
9 x7 v/ R2 Y: \0 R - (setq tmp (entget(cdr(assoc 360 tmp))))
* p. c @- E V - (if (/= nil (assoc 360 tmp))
: ?& U4 e1 o8 m7 g8 P2 l2 S0 @9 t - (progn
- e& R+ M* q* e0 ~# \9 m$ v+ |2 T - (setq tmp (entget(cdr(assoc 360 tmp))))# b/ v. j$ B( I& }. x/ R) ?
- (if (/= nil (assoc 71 tmp)), C, E! c. o* d2 ~' s
- (cdr(assoc 71 tmp))
* ~. L8 e! m: K$ w - (progn & Q3 q+ D* K! q+ v
- (setq hasclip nil)1 P% d! n6 b6 m! U
- (eval 0)
1 g, e) \9 `6 c L% B - )
" V5 k7 U; [; I - )
0 W' \; Y1 V0 D h/ W$ v - )
z/ [& e, u6 j6 W+ ~ s7 P% h - (progn + I d, \' r8 R. y
- (setq hasclip nil)
7 S5 ~ R ~% r" n9 o0 _ - (eval 0)' W" N4 W. h/ z8 r
- )1 h8 }" `8 s; l& p* n
- )
! N5 t' x8 w/ V7 p - )
9 @. @) C; y; j F - (progn ( T! x. k. B8 [! o5 w* C) L
- (setq hasclip nil)8 J! n5 _% X+ m$ r
- (eval 0)
k# y! P( I5 u" T+ f' M - )
6 f2 _' `6 R8 ~' U - )
8 [/ j0 s# ]( Z - )
% H z0 A1 _% Q) w0 R- ] - (progn
, ~ j9 u* x/ i7 D1 R, z - (setq hasclip nil)
) E4 Q- d% w1 h+ b, | - (eval 0)3 i7 l6 Z" }2 ~3 l
- )
1 Z! f" B0 g$ g: ^; a' P- `+ _7 D - )
& F( L" [) G9 k- N* R; m - )" @, Y# b, V- i0 I# |: t
- ;;
A# Q# b3 _3 T- I/ Z, o* k - ;; Draw a dash or dot in image tile
9 e' p3 Q0 D: d7 ^; f# h - ;;
& P& H6 p8 R7 p* p - (defun vi ()
% w& t7 u1 s9 I5 ?# V$ H - (setq x2 (+ x2 dash))0 c5 {' i" ~" D& b3 o$ _
- (vector_image x1 y2 x2 y2 color)
5 D$ G- z; ]. i) y2 d4 { - )
7 Y$ N0 \+ Y5 U" h+ T - ;;* ^" d6 W5 A+ H! `8 r( P+ p
- ;; If an item is a member of the list, then return its index number, else
8 y: X" x' X% d( e - ;; return nil.
+ y7 @' Y# g8 H( c) O - ;;
6 `8 L4 |4 M; c; w/ l - (defun getindex (item itemlist / m n), i T" ]5 U, q
- (setq n (length itemlist))$ p& U) w, B- c6 c& f. z% ~
- (if (> (setq m (length (member item itemlist))) 0)
6 S$ N O1 N8 x' t6 b, ~ - (- n m)
* n7 f K5 ?( ` - nil, o* A, ~" P% t- j+ K7 ~
- )
& j+ ]+ r8 q, w M. l9 I - )
+ \ r+ b4 R1 d5 W- g1 S0 F - ;;% ^4 c" g0 s* k+ r
- ;; This function is called if the linetype is set "BYLAYER". It finds the
2 k" I- k- z5 M# q - ;; ltype of the layer so it can be displayed beside the linetype button. n/ m0 A8 N v0 ^9 z: Z! q
- ;;
. G% J1 X! x/ N6 Q - (defun bylayer_lt (/ layname layinfo ltype)
4 J" X/ T+ O$ v# C+ B6 \- c - (if lay-idx
0 e- ?& m0 m; P5 w - (progn
4 u. q. C' Q; W - (setq layname (nth lay-idx laynmlst))
( e4 |) \2 Q2 q. v p - (setq layinfo (tblsearch "layer" layname))
) L& ] t# w7 | - (setq ltype (cdr (assoc 6 layinfo)))
+ i5 M% n; J+ _7 q - "BYLAYER"
* H3 k8 ~/ l w$ r, a1 q - )
7 s/ f1 E; f' l - "BYLAYER"6 L0 E. _! S, O2 H# `
- )
% x2 [9 l8 B S - )& G$ | e% N' Y
- ;; K' ~, @/ c; P4 ?4 M
- ;; This function is called if the color is set "BYLAYER". It finds the color
: D. F7 j+ z8 _2 e9 n - ;; of the layer so it can be displayed beside the color button.0 B3 d$ e- X6 b- \2 M; _" h
- ;;( ?) V. n7 U" S+ D& g
- (defun bylayer_col (/ layname layinfo color)
O! G! K' e4 @) `) |9 l - (setq layinfo (tblsearch "layer" elayer))' ^: U* e; K* f y
- (setq color (abs (cdr (assoc 62 layinfo))))! {8 p7 r- ^# |
- )& y; ?- g) T5 p1 }
- ;;
& O/ \$ ~% s1 p8 o - ;; Used to set the color name in layer subdialogue.$ S& U8 Q5 Z, U& b8 N
- ;;& p% l d; ^5 V
- (defun colorname (colnum / cn)
8 h5 R% E: B" r, {% \' t - (setq cn (abs colnum)), J5 T; T% N; q
- (cond ((= cn 1) "red")" Z0 }: \: `1 A: G3 d( x
- ((= cn 2) "yellow")2 a: R( y8 t' ]
- ((= cn 3) "green")
! z: O4 y. H0 P1 C' S+ F& v - ((= cn 4) "cyan")% |9 x+ s: ?! J0 z9 ^" e
- ((= cn 5) "blue")
( o2 A- i4 ?- q, a3 q0 A9 s1 Y - ((= cn 6) "magenta")
5 G* J' s' L& W8 U$ Y3 s1 \9 e - ((= cn 7) "white")" C3 u8 m; _* }9 J8 R6 \' s% O
- (T (itoa cn))
/ k, [& o7 ~* H& p, d: R# a - ). w3 G# D+ c2 I5 [' b
- )# ^- f% M% a4 K1 p t
- ;;
$ D. X. O$ b( X0 D: z - ;; If their is no error message, then close the dialogue.
( A$ a! f+ _ {* l - ;;$ n/ F( K) q. m+ a* R/ y
- (defun dismiss_dialog (action)" I0 J6 `; h0 b
- (if (= action 0)
+ |1 }- d) U8 }+ B. q - (done_dialog 0)' M+ M. j4 g7 L2 ?& x. R5 U4 ?- w) M
- (if (= (get_tile "error") "")& r1 b: O: P' Y5 s, s$ y
- (done_dialog action)! z4 P- f/ u: }" i. J) ~0 G
- )8 @1 D l4 W& p) h6 B, {3 p6 d$ }
- ), \+ g+ L( |0 j; D% J
- )
% w: u V2 t" G. Y2 D2 l - 3 d& G% n: u( k: ^4 O
- (defun test_ok ()
, x/ W4 A- m; t2 v( [( T! L7 ? - (if (= (get_tile "error") "")5 O3 u7 g7 R4 y! ^
- (done_dialog 1)
3 n+ \( d5 A( n5 |4 u) U - )
. e* S/ _. n% b |' x7 Z - )- z) ?+ L6 q- |( m: p
- 3 x; v$ B' B3 k- {! F
- (defun cancel ()" B9 }5 t. P1 J$ l0 z
- (done_dialog 0)0 G+ z, A7 Q: L# g/ H/ k3 [* K O/ b
- )) M: i, I) \$ M6 `5 _$ n# R
- ( E0 P- | y0 _" w. H& _4 S9 _+ V
- ;;; =======================================================================) R5 |; R# z$ T% a0 `
- ;;; SETUP layer and linetype lists for application, and initialize all
7 y& a1 r5 [2 V( f8 b& ] - ;;; program variables.
2 C3 T: ?8 P& A9 E% Y - , u2 a1 B: u. ^+ _% p r: {
- (setq elist (entget ename)+ r' E. _8 p& |
- old-elist elist
& u& R7 _' d j) F: H) g6 ?$ l - modlist elist K/ o# h* o p6 L+ X
- etype (strcase (cdr (assoc 0 elist)))/ A( U1 a) N( z- r
- ecolor (cdr (assoc 62 elist))
" p# V% f. L. j8 Y. B* K! r, c - elayer (cdr (assoc 8 elist))0 J( b( q( z! u0 q9 y
- eltscale (cdr (assoc 48 elist)). Q" _4 e4 ]' \+ k3 o+ k
- ethickness (cdr (assoc 39 elist))
% T$ j! f+ Z: {, c1 z- Y1 G$ D, e - eltype (cdr (assoc 6 elist))
/ d9 h3 X( J( \9 q - )
1 F# ]$ K4 K* K - (if (= (assoc 210 elist) nil)
5 ?0 u4 ]- g) ^# G - (setq extru (list 0.0 0.0 1.0))
! G2 @0 C$ L$ Y/ r7 o) c& N6 d+ B# p - (setq extru (cdr (assoc 210 elist))), k3 ]" P- y5 @, R
- )/ r6 B# Z: h: I. K7 s( [* e
0 e4 o5 W& \& p6 e+ V- (if (not ecolor) (setq ecolor 256))! F: r0 H0 t7 B
- (if (not eltype) (setq eltype "BYLAYER"))
' b9 @$ s! Z- |0 v' Z - (if (not ethickness) (setq ethickness 0))# H/ N( k2 c" Y& G3 |" H
- (if (not eltscale) (setq eltscale 1))
8 s6 C5 f. n$ i* d2 B3 Z - ) ; end ddmodify_init
- Z' g" P5 X4 e- H - + _6 c7 ^" ^3 e7 U1 G( F% Q7 o
- ;;; --------------------------------------------------------------------------. x* T$ q" F* N0 @
- ;;; Function: DDMODIFY_SELECT
; l! p: t' i! d2 `6 s - ;;;1 Y" H" t# n# J
- ;;; Object aquisition function.
; J' x. ^ X1 v/ S* n6 N+ @ - ;;;
6 V) _7 n- K W+ T3 E2 { f - ;;; (ddmodify_select)8 ?5 A, `# b. Y; u# t% R5 s
- ;;;+ v, X7 ^& _/ w1 ^1 b
- ;;; Obtains object to be modified, in one of three ways:
0 x! r D4 S; Q- X9 W - ;;;% f: p$ q6 P- f. a5 W% B; r# v4 o$ X
- ;;; 1 - Autoselected.- S9 b* H" v: }2 @- f$ R( J& n
- ;;; 2 - Prompted for.9 U/ |# U( y+ S0 f
- ;;; 3 - Passed as an argument in a call to (ddmodify <ename> )
& k% J, `! s; \" p5 J- P/ ~ - ;;;& \6 g7 e5 T5 u! c& g0 ]! C
- ;;; The (ddmodify_select) function also sets the value of the* G. Q. U4 f* N# y' m1 s% Y' w
- ;;; global symbol AI_SELTYPE to one of the above three values to
1 W4 X, f8 H4 `, d+ z - ;;; indicate the method thru which the object was aquired.
, b5 E+ F1 P4 t - ;;;3 K% K0 |1 l$ p0 t& x% j
- ;;; This value can be useful to applications that want to RESTORE8 W( B# u2 w6 P/ f2 J+ b
- ;;; an object that was autoselected to its previous selected state
V+ v8 }4 j2 F1 T4 k - ;;; when they terminate, although there doesn't appear to be any
* A' s4 o; P9 |0 c, U8 X - ;;; way to do this right now.4 \; d2 Z' w* W. T
- # ~* l7 k- f+ Z' m& h. K
- (defun ddmodify_select (). k8 n; ~- B, K: p- T
- (cond
# w# l2 `, H/ W - ( ename ; (ddmodify) was called
% M- C' S$ [$ z) J; _1 ] - (cond ; with an <ename> argument
/ }3 w6 H+ q" s L - ( (entget ename) ; If object is non-deleted) }$ [0 C9 J0 ]. z" z) h5 F1 p# b
- (setq ai_seltype 3) ; then return its ename.
5 z4 y# m9 e5 \4 N ^; V' M h% B+ N5 t J - (ai_return ename))))
5 `* H6 m3 ^% m3 f - 9 d( K0 |. m) U5 V# r
- ;; return auto-selected , see ai_utils.lsp. T3 G# U5 v8 H
- ( (ai_autossget1 "\nSelect one object to modify: "))# d3 ?9 {# p2 |' N$ R3 E" _
9 F5 b2 D! Q" A- (t (princ "\nNothing selected.")! P- m' C+ Y* O4 K ^& }
- (ai_return nil))
|- P2 t: e9 I" q* r1 V& V - )
: K3 U2 l, C) R& T/ ~7 n$ U) B: Z - )
: b- r( F, V- ^% B; H& A
7 C- ~: J9 q% [2 e/ G- ;;; ============= Command line interface function =======================
9 O5 Q2 ]4 n2 \, W
* `$ b4 z+ N+ `# o; a- (defun C:MMO ()
, d$ j4 ]! v2 Y - (ddmodify nil)
j" i2 U& k s! I - (princ)4 e8 _. z7 }# I& V# V
- ): F1 A. |) d% W8 t8 I" f) k& d
1 y- T, }' V! w; Z6 q0 t6 B- ;;; ================== (ddmodify) - Main program ========================
! `1 } J& o" A+ H) ?$ V - ;;;
! T5 E- [ q. s4 }& t) h- } - ;;; (ddmodify <ename> )
( t8 M" ]. E# u6 }% z4 h- \; J - ;;;% w- f" L5 N1 N. e' e& @
- ;;; Main program function, callable as a subroutine.
/ h/ N1 I' h2 x4 F; J5 g& U- X, ~ - ;;;/ c5 U3 V3 f k3 H2 T$ \5 U# `, r
- ;;; <ename> = object name of the object to modify.& w$ s# `& a& J( o* K
- ;;;1 O3 G/ D) M9 G' T2 u6 `
- ;;; If <ename> is nil, then user is prompted to select$ Z% [, [" f4 \3 R
- ;;; the object interactively.
+ J$ @8 h" z3 {4 Q+ K* ` - ;;;# F6 J6 q! e( H7 q$ Y8 p$ k" p
- ;;; Before (ddmodify) can be called as a subroutine, it must" {* d% V5 n2 q" d" y2 {1 L3 W
- ;;; be loaded first. It is up to the calling application to1 h/ {0 j; `- k x5 w
- ;;; first determine this, and load it if necessary.. X. I; h }7 i; t
- 1 B' P% b/ N" X5 L. i
! o9 b0 Z$ `( L R5 D, |7 [- (defun ddmodify (ename /; J3 W6 o, I8 o2 R, G$ Z1 Q
- 2ndpt ell_calc_area move_pt1 templist
+ v3 L0 o2 g' ? _9 s8 E - add_mdash ell_tile n tempmod
# c; O% |8 c2 S - alipt eltscale name tempst_ang
c& q7 Y) H! j0 U& S3 D9 Z - ang eltype newpoint test_ok3 s7 Z9 l( O2 C# @
- arc_calc emod next text
2 I j) i1 k& N% k9 i - arclen end_ang next_vertex th-value
- ?) z2 i$ a6 V0 G - assoclist endpt obl tile( d' u N9 U( _! `7 [, Q6 S9 w
- atprompt errchk off tile_rect$ L6 ~8 h \2 X. B8 {
- attag ethickness old_majrad tilemode) L! Q* F8 S% d1 \- m
- attprompt etype old-closed totang3 j% \% E- O2 F3 S! ]* j, c
- bit extru old-closedm tstyle# @- |$ g- j5 t s% ]
- bit1 fchk old-closedn u
; }, o6 {1 L1 C; V5 Y3 \ c* s - bit-10 first-10-rec old-elist undo_init
0 g) k& ]7 A% ^' \ - bit-11 first-10-time olderr upsd2 ~& U/ o9 w6 s% ?+ h3 ~# Z
- bit2 first-11-rec old-fit v, u4 Z- ~1 ~6 N9 S# c
- bit3 first-11-time old-idx va
. Q0 K0 M. b" E$ e* a - bit4 fit oldlist value
( [, `0 h3 i1 Z; f: t `1 s/ b0 k/ i - bit70 frozth old-spltype ver_4
3 h' O7 s5 z: e/ p - bit-70 f-vis old-u ver_ang1
3 x, [. y( X9 u$ O4 a+ L- G: E - bit75 fx old-v ver_ang29 o6 h$ Q, F. }: Y
- bk-up get_color on ver_col: Y4 ]! C6 m! ]6 v4 @
- bkwd getcolor onoff ver_colsp: l1 H& C# l, P$ R& B
- boxlength getindex on-off ver_eangle' D8 S$ {2 p' h8 Z* j! k
- bylayer_col getlayer patlist ver_hght
7 c' _$ y% ]6 ]1 C' {& r - bylayer_lt getltype pattern ver_majrad
) h, ] g7 }' A$ y" i: L0 M3 t - calc getthickness pltype ver_obl Y1 x# l% P% e$ J8 Q0 o5 h
- cancel globals polytype ver_pt16 @$ U8 j; S$ W; M
- cir_calc ha pre ver_pt2
9 Q( ~9 T/ P$ z3 F3 ^0 {# a - closed ha-prev proplist ver_pt3
6 }4 Z# O( f' |; V$ E - closedm help_entry pt ver_pt4
) d- y( D3 E) \- M - closedn hght pt1 ver_rad
% q$ G) M, Q/ c/ d - cmd icvp pt1_eq_pt2 ver_rot
4 U7 b8 l( P6 h, C v - cn image_add_vector pt2 ver_row* Z6 \3 }* [6 \4 F+ H+ m
- cname image_clean_variables pt3 ver_rowsp
: Z. T$ j, z0 `# h; U+ H - cntl-pt-indicator image_cross_product pt4 ver_tag, g8 v s$ a' c/ i! ], ~& T
- code_71 image_disp_opt ptype ver_u3 o% U! c/ M: l# k
- col_tile image_dot_product radius ver_v/ c! J$ |$ l) D! h E
- col-idx image_normalize_vector rational_spl_flag ver_wid4 j1 Y5 t; o# X7 v4 Y
- colname image_rotate_vector reset ver_x13 o9 O6 r; J2 R% }/ _" \
- colnmlst image_scale reset_flag ver_x26 y Q! t4 ^2 D3 P
- colnolst image_scale_vector reset_lay ver_x3
4 s: W0 A4 ]8 P1 _9 K - colnum image_update reset_lt ver_x4
m: A5 p# h2 |4 L5 @+ Q - color index reset_uv ver_xline_pt1
$ D, z" i9 D. R7 }$ s7 o - colorname inv rot ver_xline_pt20 d! O% {" O5 h4 i& [' |* U5 {
- colorno item rows ver_xline_x16 d& Z7 c1 ?" ?4 U/ r4 K6 r
- col-sp item1 row-sp ver_xline_x2
$ j) j. R: A$ f9 e5 t - columns item2 rrat ver_xline_y1( U+ b! ~6 Z+ Y" N% c$ b7 K& @
- con itemlist s ver_xline_y2. y( I' p- h) i0 ?
- coord jlist set_action_tiles ver_xline_z1
3 Q P4 \1 ]6 R/ D/ E3 f: ] - ctr jlist_act set_just_idx ver_xline_z2
9 C) H, p! `' M$ s - cur-10-rec just-idx set_tile_bk-up ver_xscl8 {! x) S Q7 R2 a$ N0 P* ^
- cur-11-rec layedit_act set_tile_cntl_pt ver_y1
8 K B9 V# c1 \% F - cvpname lay-idx set_tile_data_pt ver_y2. v, V0 i1 @ [: E8 i
- dash layinfo set_tile_dirv ver_y35 x4 B, g# e2 o
- dashdata laylist set_tile_edges ver_y4' s; d! y5 x& d$ f
- dashlist laylist_act set_tile_endang ver_yscl5 N3 p; X! R" w) o8 p: n7 ^; Q
- dashsize layname set_tile_hght ver_z1/ Y0 m4 L1 a Z. h5 J
- data-pt-indicator laynmlst set_tile_icvp ver_z28 W' x/ {4 ?9 L0 M, b
- dcl_id layvalue set_tile_just ver_z36 g9 s3 F+ J: q' X
- dd3dface line_calc set_tile_obl ver_zscl
6 _) s( G0 }4 K1 Q - dd3dsolid linetype set_tile_prompt verify_a7 i: A5 D8 B3 W+ h, w1 T$ F
- ddarc list1 set_tile_props verify_d
* @4 j* ?5 ?9 A - ddblock longlist set_tile_pt1 verify_i
% L9 ?+ V0 \# d( e9 ~( c9 \ - ddbody ltabstr set_tile_pt2 verify_xline. N8 Y! W" o5 `' D0 E/ ~" j( R3 c
- ddcircle ltedit_act set_tile_pt3 vfy5 T5 V- e; d% Z7 g" Y: ?
- ddellipse ltidx set_tile_pt4 vi
: ~) u" ^. p) ~) F - ddgetprompt lt-idx set_tile_rad vlist8 U$ J6 r/ s7 U/ S% q7 A* j: O
- ddgettext ltlist set_tile_rc vname2 c! y0 N' B" [5 U7 x2 U- R+ I. |
- ddimage ltlist_act set_tile_rot vpf7 Y8 \2 ]) ^ h0 R
- ddimen ltlist1 set_tile_scale vpid. P+ l8 v& c/ }
- ddleader ltname set_tile_spline_props vpldata
2 M1 I* J& A) }, C7 B$ W( p% m - ddline ltnmlst set_tile_stang vpn. z' s3 f+ [1 e
- ddlist ltvalue set_tile_style vpt8 A y2 C1 R5 x% M& t5 s8 H
- ddmline ltype set_tile_tag which_tiles1 S# s! v% d9 X& q& O) p
- ddmodify_err m set_tile_text wid
8 S5 ~; N4 y( V7 @9 E: M4 Y4 `* T5 V - ddmtext majrad set_tile_vpt x K0 \8 n4 B0 T; m& B' p- f
- ddpline make_lay_lists set_tile_wid x1
. x" L& v& Q9 B9 T/ G - ddpoint make_lt_lists set_tile_xline_pt1 x2
4 O1 q& W& q# h; R% M( _ - ddray mdashlist set_tile_xline_pt2 x3: G1 L4 P" ]- ~1 D2 ~1 z
- ddregion minrad setcolor x4; l8 H6 f3 F, i4 y* E
- ddshape modify_3dface shght xdlist
, e& T b1 {4 `0 l2 A- Z( h1 E, o - ddsolid modify_3dsolid showpt xline_pt19 l( `: h- y5 P
- ddspline modify_arc size xline_pt2( J. B6 I$ s* Q) l$ {7 G
- ddtext modify_block slist xline_x1
: L* J# |! }7 t3 ~7 t - ddvport modify_body sname xline_x2$ }! _9 g7 s+ y, R3 b
- ddxline modify_circle sortlist xline_y1% A9 M' T K6 Y2 h
- denom modify_ellipse spltype xline_y2' b8 |7 E, Z! c t# t4 } p
- dialog-state modify_image ss xline_z1
5 E4 X# N% }; l! M7 f) U/ M" y - dir_pt modify_line st_ang xline_z2) q5 l5 B4 J j) c" w
- dir_ptx modify_mline stpt xscale+ z0 J7 E |9 {% X9 {
- dir_pty modify_mtext style_act xx
: r( ^1 x7 |4 }6 S: T/ ~. g - dir_ptz modify_point style-idx y
; n0 |$ V: @6 `7 V* T - dismiss_dialog modify_polyline style-list y1
/ t6 z% O% w7 u1 K+ W& D - drawpattern modify_prop_geom tagval y2
5 a& O" r5 H- L3 R0 }5 @ - echo modify_properties temp y3
* v7 c( V) ~2 B) j1 k$ ^/ C - ecolor modify_ray temp_color y4, B5 |9 d6 ~: R: j2 I2 B& |
- edge1 modify_region temp_dir_x yscale& t4 @- P6 ]) p4 J# B: k
- edge2 modify_shape temp_dir_y yy% [7 W: L) @0 ]7 E
- edge3 modify_solid temp_dir_z z1! g9 k: s# M; D# p- t8 N% {; r
- edge4 modify_spline temp_xline_pt1 z2
# R! p8 m+ ]& G; v$ F - edgetest modify_text temp_xline_x1 z3
, o$ j" i# y5 g1 b - elayer modify_vport temp_xline_y1 z47 I$ I4 v; W A6 v4 c8 h$ x* F
- elist modify_xline temp_xline_z1 zscale
8 t. M7 s9 X7 K! h* o - ell_calc modlist tempend_eang zz6 P9 f4 G4 W0 k8 E
- dir-idx safe_ddedit ver_MtextWidth xcliponoff
, Y# j4 t, e! P, _ - MText_style
: }5 b, G D! R9 }1 q - )1 s0 A' {. i0 z1 L s
- , k: G* k1 q$ k9 a6 ^3 W6 z% F/ I
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
3 d& [( i9 k: k6 P, U0 l6 _- k - old_error *error* ; save current error function
5 {* C- N+ o: z. _, j - *error* ai_error ; new error function
/ j: D% X5 }8 K8 c7 X' F8 [4 C - )) A! D( k0 Z K0 z1 Z5 g) ?( K1 r
5 K* Q7 y) J/ B+ _- (setq old_pickstyle (getvar "PICKSTYLE")) ; save old pickstyle8 U+ c# A/ b$ N& |" w8 T/ }
- (setq new_pickstyle (logand old_pickstyle (~ 1))) ; turn off group selection
# P! E% V' B. L: B7 b - (setvar "pickstyle" new_pickstyle) ; bit and set to new value
+ ^. G: m$ u U/ K0 ]' c
7 t& m: `2 A+ L$ S& C- (setvar "cmdecho" (cond ( (or (not *debug*) (zerop *debug*)) 0)0 `* O4 T0 o2 ?2 b
- (t 1)))+ C8 W' Y% u/ o6 d$ |- h: p
- (cond
5 R8 \) `5 G- ^8 @% ]) ~) m - ( (not (ai_notrans))) ; Not transparent?# f6 ?1 V/ u4 H- _6 J
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
- P M) X4 Y1 E @2 D7 D2 ], B5 c - ( (not (setq dcl_id (ai_dcl "ddmodify")))) ; is .DLG file loaded?7 K+ |, E7 {7 {5 \# N6 ^
- ( (not (setq ename (ddmodify_select)))) ; object to modify?! X+ J, o. ~4 k' l" c' ]4 a
A6 F7 F: |2 m; ~( L+ Y! ]! Z- (t (ai_undo_push)5 d$ ?2 v0 s: L* O. R
- (ddmodify_init) ; everything okay, proceed., T4 P4 r( D7 z* |1 O* ]) s6 n# K
- (cond
4 K0 |( S6 A3 n7 r - ((= etype "LEADER")
' V. d* E% Y2 G5 k! d5 S" B - (setq help_entry "modify_Leader_dialog")
$ J2 t( s. h/ {/ t" @ - (ddleader)2 f: u6 G7 \ S; F; r
- )
$ @/ i/ ~4 v( u. G8 l - ((= etype "ARC")$ c# R( z1 p+ |; H& ]
- (setq help_entry "modify_Arc_dialog")
$ s/ n8 C: X6 ?3 f - (ddarc)
) H9 H6 c0 T$ t( Z2 X& y: u9 m5 g - )
: b1 E% u& ?$ D! f7 K - ((= etype "ATTDEF")! t; N! E! V$ j; D# P
- (setq help_entry "modify_Attribute_Definition_dialog")$ n& }- R0 e9 w4 L
- (ddtext)) n- J5 G4 w, J6 j6 ?
- )
4 W- u/ C3 b" q' x: I1 T+ }0 w - ((= etype "CIRCLE")
- |* H5 F/ Q4 e: L - (setq help_entry "modify_Circle_dialog")
. b& o$ I$ o1 |/ h1 r8 G% q& { - (ddcircle)! W" X! f' V" R6 X# B
- )) |& d( V3 V3 ~$ t+ f! Y
- ((= etype "ELLIPSE")
; [& f# _1 |5 K - (setq help_entry "modify_Ellipse_dialog")! M- X# ]( S* c& m( T& t: ]; h
- (ddellipse)9 e8 O# G/ \5 t3 m$ y& A+ C- W
- )) r$ x# d% C0 R" S% z
- ((= etype "3DSOLID")
9 p) s, O4 _$ M$ ?$ b) Y7 H - (setq help_entry "modify_3d_Solid_dialog")
/ D9 B$ T: u! A& k - (dd3dsolid)+ c6 R- H5 {, w" Y* \
- )
7 b* j, {) e7 j5 |& w - ((= etype "BODY")4 T$ h! d( U! o O3 X+ W2 x& y: | z
- (setq help_entry "modify_Body_dialog")$ x( f$ m% a: x0 y" O- {
- (ddbody)
' ^* V3 y9 [1 q: v* U( V. ] - )
3 U: d% g; v+ V( I( l( v6 k; X - ((= etype "REGION")
. M& J1 m/ U: B4 B+ C - (setq help_entry "modify_Region_dialog")) j4 \, v% s2 F
- (ddregion): O+ i+ F8 Y2 {2 z' D7 r& [
- ), S9 i- I- W( p& }# @! D
- ((= etype "HATCH")
U1 K; ?7 ]: e( s4 C) V - (setq help_entry "modify_Hatch_dialog")% }% {- ]9 D! g) v* d; h( N# G
- (ddnewhatch)* V8 |6 C, Z r+ a/ N
- ): Y/ n( x+ a4 Q% B3 h$ Q2 [
- ((= etype "SPLINE")
- M* H) z1 [" o - (setq help_entry "modify_Spline_dialog")
) ]5 M/ l4 v6 G7 T4 @" ] - (ddspline)! ~: Q; W& K4 e. B! y3 v' s; g. O
- ) C: h. F( W0 l6 r' H2 _) [# w
- ((= etype "INSERT") ; see ddblock for help_entry
) C8 ` C+ @: l* z6 J* H - (ddblock)
6 U9 W# ^, _4 s! j; H5 {2 Y - )
$ F2 s( P. O6 V" [ E% _! K! A; B7 e6 z - ((= etype "LINE")
$ _+ o J. c, @0 B( s3 I - (setq help_entry "modify_Line_dialog")+ O2 }! Y6 C+ q a2 O) y# @' R
- (ddline)' G5 }5 f: m+ m
- )
@4 K Z, I; L w' K1 E; \ - ((= etype "MLINE"); \9 E) H3 J- ]2 | Y& r
- (setq help_entry "modify_multiLine_dialog")! ]/ U; `3 n* l8 d5 O+ I
- (ddmline)( L T. e G6 \4 d$ V( h
- )' u- p- z% |% | s& s5 e! ?
- ((= etype "RAY")& a8 a' _( ~* _5 W9 V5 d1 _
- (setq help_entry "modify_Ray_dialog")7 ^" b# y1 c$ Q9 G
- (ddxline)
. \1 E! |/ j& C6 Z/ \8 H8 I6 I \ - )7 ?2 d7 v) a8 l" u8 p8 L0 h5 k
- ((= etype "XLINE")
9 k8 I# j4 L& k1 _5 j! X& r - (setq help_entry "modify_Xline_dialog")
! w* F2 s0 n6 v- m - (ddxline)4 y& p9 s A1 q9 Z, D/ u2 j
- )4 R) e9 j& S, E, J; Y
- ((= etype "POINT")
J, A* ?. g) c) s9 Y - (setq help_entry "modify_Point_dialog")
7 {1 F% {4 Y9 t0 w# P1 E4 s - (ddpoint)2 g4 H* [4 ~% S7 ?4 L1 Z4 [/ |
- )
. B5 ~, N; Z# C' b- N' ? - ((or (= etype "POLYLINE") (= etype "LWPOLYLINE"))) n" \, q5 T6 [- i% L7 t" p& T& W9 x4 v
- (setq help_entry "modify_Polyline_dialog")
* M( v- A; P# M5 R& i A V5 Q$ x - ;; If a 2D pline, check to see if it is planar to the current+ [1 k* {& e' I+ O4 r6 I4 P- x
- ;; UCS, reject if not. To see if the pline is parallel,
& u) _; S0 u c - ;; the 210 group (WCS) is added to the current UCS origin (WCS)
5 n0 i# u% U( I, t - ;; and then converted to the current UCS and checked to see if
# P+ _, }! @7 q/ B, e- |: f - ;; it is equal to (0,0,1).! ~# {5 M/ k& ^' o' a6 E6 m" W
3 m3 X7 a- `7 r& y4 ]- ;; Incase the 210 is default and not in the dxf list.
Q% J& ]" a$ B5 Q- [ - (if (= (assoc 210 (entget ename)) nil)3 i2 G; j% h7 m) G, [- o5 H/ i% }- h
- (ddpline)& S" D, K. _( n1 {9 J
- (progn
' X# J; a& x* o1 a - (if (and (zerop (logand 120 (cdr (assoc 70 (entget ename)))))& }5 `" q( r; F. N, G/ e* `3 O
- (not (equal '(0.0 0.0 1.0) F2 ?; l8 ?' K) B( L# b8 q5 O* r
- (trans (mapcar '++ P! }9 Z1 x3 Y. J' p
- (cdr (assoc 210 (entget ename)))
! J2 _0 k( \ b; i6 F- {3 y - (trans '(0.0 0.0 0.0) 1 0)+ P& a" t+ {' }8 p$ |/ A
- )0 C* c! H; U% {: Y
- 0 1+ j) e2 w4 M" ^7 \3 e' J
- )7 D! [3 i W: {6 M7 J6 f' z% F
- 0.0000000001 ; fuzz
4 o! B0 H5 L t1 M5 H - )
: D. ]9 K& O7 o, Z$ }. E, F( T - )) ]- }: ]8 ]3 y7 \/ Y0 f) G
- )
; F6 I4 E0 f j( P, @/ K5 ^) Q - (princ "\nThe 2D Polyline is not parallel to the current UCS.")1 a1 w6 [' e: ^" U: V4 m5 E7 }
- (ddpline)
% C& G3 R2 z- i* H( I7 @ - ) o- ~0 K% B4 H
- ) \% v" c& J' h9 B
- )
* C6 m, K, H9 ?% ]+ K* ^5 x- K6 u - )% b$ E# l$ I8 A' U8 S+ P
- ' F; P8 l0 R# L- C9 [/ d
- ((= etype "SHAPE") y( z1 b1 Q/ D. h
- (setq help_entry "modify_Shape_dialog")
" k& v* W! \# O* r - (ddshape)
6 Q( }( u3 }2 Z6 c/ V - )
; Y2 c7 A: `, V" C+ G1 ~# q9 X1 b - ((= etype "SOLID")( J5 l! k2 h2 T) K+ D$ t1 M
- (setq help_entry "modify_Solid_dialog")6 a2 _# X, |$ c! l8 z# v) S
- (ddsolid)' X' I3 M: L2 s0 |6 B" @
- )
Z: o: D: ]' w: _) J4 c& P - ((= etype "TEXT")
6 T0 f; l' _3 k! O - (setq help_entry "modify_Text_dialog"): x$ q9 C) x7 ~! v
- (ddtext)9 }; }. Y" H2 q, I
- ): i- U& q. j, e4 A `/ n5 Q F; N
- ((= etype "MTEXT")
* c2 h, U; i( L+ G" \" o+ r - (setq help_entry "modify_MText_dialog")/ x/ [# \% x c9 E& f! h! I9 _
- (ddmtext)% L& |9 b) Y6 h7 r: ?; s
- )
) n: F Z; z6 l9 y - ((= etype "TRACE")* P, z& b* `7 V0 C
- (setq help_entry "modify_Trace_dialog")
. H- B( `4 r6 X& } - (ddsolid)' i* o# C$ z; l: m- H* I& X
- )
1 ^/ B0 Y& e m @ - ((= etype "VIEWPORT")
2 b& D1 i' Q, r" ?* a: H3 @* [ - (setq help_entry "modify_Viewport_dialog")1 @ ^" Z5 |/ k4 w+ z& _
- (ddvport) V% N3 u; n$ F* z3 H, `( Y- V; s7 [
- )" h! e3 K* B) n1 S; a4 }
- ((= etype "IMAGE")9 j0 W8 ]* G& p' Z7 `8 f- ?
- (setq help_entry "modify_Image_dialog")* t _& X3 G. R' a, H
- (ddimage)
: {0 Y7 s8 k# O% j+ D. ~# G - )4 `, L/ Q: \$ ]' R, X! f
- ((= etype "3DFACE")
5 M& y/ }1 i5 v2 @! S' L* p6 W - (setq help_entry "modify_3D_Face_dialog")8 W, U+ Q, E& b/ ~- d$ m
- (dd3dface)
) t* _! ?% i/ S7 i$ Z+ h - )$ x& w# ^& l/ l
- ((= etype "DIMENSION"), X0 ]5 Y* t4 R5 G2 ^- z. D
- (setq help_entry "modify_Dimension_dialog")
* ]2 f$ W% F$ F2 A( P9 C - (ddimen)
) F& W) L7 W7 g8 l - )# t: k5 U- F( d5 `
- ((= etype "TOLERANCE")
! H3 i& S1 z" l - (setq help_entry "modify_Tolerance_dialog")
1 Q& R" P1 T$ y% s - (ddtolerance)' i2 M4 J$ Z8 @6 c
- )# j5 U) t- _2 y0 D2 Y: O
- ;; Fall-through condition changed by MCAD for MDT 1.1 release.
" i* v- F& t7 ~' ~0 j - ;; This allows DDMODIFY to work on any custom object or any new object type9 ~7 t* U2 C; u5 x b! x1 k4 n9 Z
- ;; that isn't specifically handled above by calling the more generic DDCHPROP.% m% }- o# r- [3 |; V0 S
- (t
# Y; y7 J/ N7 H1 b! E. G, E) n& h - (if (and (not ddchprop) (not (load "ddchprop" nil)))
9 w' V0 o8 ]2 Y% s: o - (princ (strcat "No dialog support for object type: " etype ".")))
5 Y0 W; l0 [) m2 `* c - (progn
$ K; L/ m% ~6 U9 r) v( h" V$ D7 T - (setq tempss (ssadd ename))
5 } w3 D4 h* D( S$ L; ^8 y - (ddchprop tempss)
7 ]) ^5 D3 j7 b& @" _ - (setq tempss nil)
4 S4 u/ `' O; U! {" N" t/ i; K/ I - )
1 @: Q/ z( j2 d, r& k+ \4 W% s _ - ), n7 P0 M( Z6 S$ N& ?2 W
- )
% Q( m+ R& B% }4 [! V2 t - ;; Previous fall-through condition.- N8 C7 ~2 k/ |3 A) J( N5 \7 @* u
- ;; (t (princ (strcat "No dialog support for object type: "
9 A/ G+ e* o9 i+ j7 T - ;; etype "."
4 e! u s; R- T2 @' w6 { - ;; )
! E6 h5 i" ]0 t% @3 }* e& e, G - ;; )/ q/ a }+ K1 o7 w/ \: N- Y
- ;; )( L( X" \7 o: l" q. B0 k
- ;; )
( T: t/ r: T3 Z4 q- z - (ai_undo_pop)3 E" m" A/ l% W6 I
- )% j$ U+ t" K& d( n* ?; A
- )% X! c# G2 N& m: G
- % [6 G, n) `7 L, K% d& n
- (if (eq new_pickstyle (getvar "PICKSTYLE")) ; if user didn't change pickstyle6 F& C. i7 L* L8 L: `, |) y0 `
- (setvar "PICKSTYLE" old_pickstyle) ; transparently then set it back& ^# j) S! _" p K
- ) ; to what we started with
* r/ W3 R0 ?( L" n) y
9 j$ S, H& p6 w: s- (setq *error* old_error)2 h6 X/ O. W9 G9 x% S, \8 V
- (setvar "cmdecho" old_cmd)
' o. n2 r w/ k7 A4 P# k/ P - (if (not reset_flag) ; if object was modified, then
3 i+ D9 ~9 Y1 _: Q0 O, ~$ r: f - (ai_return ename) ; return it's ename to caller
% J( ]0 K, K8 @6 r( A% B - )
+ s" u: f! o, Z# f - )
& h. ~& c! \: g1 s/ S" I" q- T; E! e - $ o7 D p8 w2 k& g
- (defun checkForLockedLayer (ename)# H! \1 w, a) o% F
- (setq layername (cdr (assoc 8 (cdr (entget ename)))))7 H' r5 s; q: @, k% o2 o2 f) J
- (setq layerflag (cdr (assoc 70 (tblsearch "LAYER" layername))))
+ M! g5 r/ Z n3 k% t0 ] - (if (= layerflag 4); `# a2 X' `) Y
- T$ s" t# M0 V5 O# W1 U
- nil
0 \: H1 f: c- ^4 [0 w5 G - )
" i. F4 O* G: I8 ^" p - )
8 X- \' B' ^1 F5 e8 p/ ^, W5 K- e
% V1 L8 n/ R, P! L- (princ " DDMODIFY loaded. ")
, h1 E5 ^( e4 v, I2 v8 C - (princ)
) W2 a- \! d0 y: R - ;;;???;;;---------------------------------------------------------------------------------------
( C" e& L2 P* P& m6 h, p - 1 _5 g, u3 G' c6 k: q
- ; Next available MSG number is 8
3 j, r# K6 p2 e - ; MODULE_ID DDUCSP_LSP_- ~# Z5 b( O u, e6 j3 Z
- ;;;
, S# k* R4 ^* c3 W - ;;; dducsp.lsp* n' R; J0 o, V I8 _
- ;;;
6 I" p1 c6 J6 ?- A - ;;; Copyright 1992, 1994, 1996 by Autodesk, Inc.
4 n5 y+ U( o- I4 T/ O9 l5 E - ;;;
/ ^* k% [4 ?; ^, S% u" P! C4 R- _ - ;;; Permission to use, copy, modify, and distribute this software
& D7 P2 Y: ~3 d3 ]$ c# W+ V- t - ;;; for any purpose and without fee is hereby granted, provided, _5 i" ]. _3 H' _) `- w
- ;;; that the above copyright notice appears in all copies and
/ }0 c" x6 K O* M2 T' q% T* T6 J# o - ;;; that both that copyright notice and the limited warranty and! d. P9 u) z$ Z2 l
- ;;; restricted rights notice below appear in all supporting8 G# v9 b' L% z- [ f
- ;;; documentation.
3 [/ h8 x' _6 v - ;;;
+ T' ~2 w7 y( e D# E! r - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.8 S+ \ W6 s6 `8 r" g+ [
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
( ^- |6 T# [& M" h4 c1 q) r! W - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.. y3 w: K" j( Y8 e1 A1 T7 {
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
& [2 f5 `' H* M1 y1 d - ;;; UNINTERRUPTED OR ERROR FREE.- z. W+ O, X- e3 H3 h, b: U
- ;;;2 c! V2 B2 i1 N( Y% j, c
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to P2 ]# w% h6 h2 D/ |- w8 o
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer. w! E/ F& ^6 y' ~2 v( C$ u
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
4 q- u0 E9 r" P) n8 p0 k# C- F - ;;; (Rights in Technical Data and Computer Software), as applicable.
( `* E8 p. R% k - ;;;
' Y0 j' `6 A) U3 F3 S$ ? - ;;;.
" o9 O, G3 F, j( }" v7 Q6 x - ;;; C:DDUCSP - User Coordinate System presets dialogue.
8 ^1 K+ L, v' A& S2 i; N - ;;; / O! [ k) q( H( l4 |7 n: [$ N* i6 Z% |
- ;;; Uses DDUCSP.DCL for the dialogue definition. The
# ^/ \8 m6 L0 \4 o$ N - ;;; slide images are in ACAD.SLB.5 N3 _6 B3 F( T6 M
- ;;;+ K2 J) ~1 ^9 u4 W, ?
- ;;; ===========================================================================! ~0 @5 u( I# s
- ;;; ===================== load-time error checking ============================+ J6 j% o+ v% d8 m
- ;;;
: l. g% Z# T+ C: z
3 R# G4 V$ C$ ^6 a9 s- (defun ai_abort (app msg)
* w, t7 O8 P* C - (defun *error* (s)1 F5 ~$ h8 B( |% L: k% ~0 y
- (if old_error (setq *error* old_error))1 W/ z# e/ t) }1 u# B
- (princ). ^2 \- y- ^! _
- )! l U& P+ l; u
- (if msg/ K0 q; _) L" y+ K8 H5 G
- (alert (strcat " Application error: "
- I. H8 K& n5 n$ x; B, r - app& _2 d- U4 ]1 w
- " \n\n "
n* D1 v7 T, g. [ - msg
0 [! [( f2 m5 h: ?+ m5 v1 d( a - " \n"/ ^# \+ J0 N% F3 d. ~+ |
- )* u4 \( |5 W* _) f* c6 `
- )
7 Q+ m( b% X9 k: d4 A - )9 g& { F$ q& o1 t+ ^( {) @
- (exit)6 k# e4 Z; m) p) F, H! {
- )4 n9 q" i* Z8 U9 e. L
" Y( ^( N# B* ^- q! Z0 ^) |9 W k0 I- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
1 Z( M$ U5 t/ h$ W5 F# P - ;;; and then try to load it.7 ~ V$ d! S" H, m/ A! R( i# t
- ;;;5 Q/ t9 d6 ~# e. ? c
- ;;; If it can't be found or it can't be loaded, then abort the8 `) z# N2 r( L0 P9 G
- ;;; loading of this file immediately, preserving the (autoload)
7 p" I* V8 U" \, g - ;;; stub function.
5 @' R& m: U4 {, c - 8 G, g6 |+ h1 Q" e! R
- (cond
& R o8 j( o: }5 b0 B- g - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
5 i( z$ L2 V" G2 r! j" u- t8 t
) U) n* @; |" D' q8 S4 m2 [- ( (not (findfile "ai_utils.lsp")) ; find it K- f- C2 W4 T
- (ai_abort "DDUCSP"
& S% R+ e$ F# f; v. @+ f/ C5 M - (strcat "Can't locate file AI_UTILS.LSP."
( i6 d: k$ P9 }) Q+ o! Y - "\n Check support directory.")))4 F3 e1 N, S- [5 c% J# u
7 H0 u2 y# J8 m# m- ( (eq "failed" (load "ai_utils" "failed")) ; load it
0 |& e' `: r/ _+ }+ Q0 z - (ai_abort "DDUCSP" "Can't load file AI_UTILS.LSP"))4 f/ P1 L5 r) S9 ~$ T1 }
- )
1 J. g4 K/ V( m5 T
. X6 u8 o- z* | a! L2 E5 O& B- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
# w+ I( D0 c D1 b- \7 g - (ai_abort "DDUCSP" nil) ; a Nil <msg> supresses
+ F" O4 L6 c( a6 P - ) ; ai_abort's alert box dialog.
4 s3 O" B6 w3 [% U# Z6 S9 }4 P8 j
) Y% U) ^9 f5 t& @- ;;; ==================== end load-time operations ===========================
4 @5 D2 l+ ?% }6 I& r: _9 ^' }0 { - 4 q9 `' S% }* I9 B/ m
- (defun ai_ucsp_start ( / program)
% l$ |' ^5 q/ f/ ] - ;; Get program name
& I0 M7 |% i$ ~0 W* R - (if (not (setq program (getvar "program")))
% `$ C. W) ] \3 p z* v - (setq program "acad")
! i0 C7 Z) W1 u6 P5 s2 q5 v8 _$ t - )
8 i i* b8 v& @. I, B" J - (foreach v0 '("world" "left" "cview" "top" "front"
7 b- Z! T5 z$ ]+ |- c. A - "bottom" "back" "right" "prev")
8 U1 f& p3 V/ n w+ E" g0 F - (start_image (strcat "ucsp_" v0))' ]0 ?5 z" Q& c+ d% X3 {6 f
- (slide_image' ?% o/ V9 P7 V* D: i
- 0 0
3 ~% \9 i6 J4 \0 i! P6 X, ^% N - (- (dimx_tile (strcat "ucsp_" v0)) 1) (- (dimy_tile (strcat "ucsp_" v0)) 1)
6 y2 ]8 Y+ u8 z- d9 u7 ]; t - (strcat program "(u-" v0 ")")
9 H. w6 P& ~' B: `" u - )
$ c w8 D2 `4 }# k" d% V7 ]7 X" T - (end_image)4 B1 F* k7 C3 H% B7 w# `
- )
$ Z5 @9 a1 N# o7 _4 D - )8 p' }% g0 a: x, K: r# w" x
- ( b: J/ ^; p* H) b% Q( \
- (defun ai_ucsp_set ()
' w9 ~; S% q s3 J$ g0 X3 M. T - (if ai_ucsp_sv
) n: H3 b1 y/ t6 [ - (command "_.UCS" "_V")# }6 G0 U4 U' [+ b- {& Y# g
- (if ai_ucsp_prevs6 n9 g* e& U& N( f$ ~- d
- (command "_.UCS" "_P")
3 G$ o/ K2 S9 g. l/ L/ P - (if ai_ucsp_chg0 r2 \% G* `8 a- S# V5 w
- (progn
! _" D; Q- e6 p( {' q W; O6 B - (if (/= ai_ucsp_a "*")
- o! r8 `5 t- x L- a) Y - (setvar "LASTPOINT" (trans (getvar "UCSORG") 0 1))
* g, ?" b$ e. `7 y - )
! M$ G8 ^% ?& u0 N2 L" C7 c t - (if (< ai_ucsp_pick 6)
' X4 {6 e! m2 `& f# I( M - (setq ai_ucsp_set0 "@")2 Q1 @; g6 ]" R+ V$ @3 B! J; ^
- (setq ai_ucsp_set0 "*0,0,0" ai_ucsp_a "*"); W! P$ g; Y' e+ J% c1 V
- )
6 ~! U! `# p" L - (cond ((= ai_ucsp_pick 0)& L' g1 |- `2 Y, }9 R" g2 K4 k
- (setq ai_ucsp_set1 "0,-1,0"
$ a0 i, |' B' s7 w - ai_ucsp_set2 "0,0,1"* `" x. X! \! M
- )8 R) s( Q5 [ |3 ~
- )
" K/ {* S+ f, F7 S0 V - ((= ai_ucsp_pick 2)/ e2 _5 u4 r, G: ~, r2 f
- (setq ai_ucsp_set1 "1,0,0"
/ t- [: P6 r3 Q& r* ` - ai_ucsp_set2 "0,0,1"
# f/ z# {1 v; A7 t3 S7 K - )
# D+ R6 _2 E* p9 U - )
$ Q$ r4 f9 S/ C0 H2 b4 X - ((= ai_ucsp_pick 3)0 N4 m! `9 m7 j( r9 m% a
- (setq ai_ucsp_set1 "1,0,0"! {) X! c+ o r- |
- ai_ucsp_set2 "0,-1,0"8 I1 K0 \8 @& I. m) o' ]' p
- )
' j7 u3 k1 l, @: Q - )
) M$ N9 u4 \1 [( t/ t5 _- w* |3 L - ((= ai_ucsp_pick 4)
5 p! J% F/ W4 P5 e3 G. b - (setq ai_ucsp_set1 "-1,0,0"
H' n9 q5 l2 R1 K% ` - ai_ucsp_set2 "0,0,1"
3 E0 p4 }' m% R& p" Q U - )
1 g: s& @9 c8 N. p4 {: w! ?" g - ), f% O) x7 p% v- F, E. A6 K0 a
- ((= ai_ucsp_pick 5)3 U7 G9 m! K. c5 N" S
- (setq ai_ucsp_set1 "0,1,0"
3 \% T1 g' r7 V: U* ]. j) I - ai_ucsp_set2 "0,0,1"& Z( s! C& N3 J0 _" F& g
- )
2 U/ N9 c1 z- I4 u5 w3 R. T - )8 G- E% _. N! {' v/ @
- (T5 z$ f3 j; n' y$ z$ ^
- (setq ai_ucsp_set1 "1,0,0"
- ?: F$ P3 R7 c( M' R - ai_ucsp_set2 "0,1,0"
% z! F( {' x, X7 z - )9 i+ N; p# N, n2 X5 {7 o8 t! Y( n
- )
" l, }% m* M/ ^7 w3 [ - ): p9 Q$ C) [( S4 I3 u
- (command "_.UCS" "_3P" ai_ucsp_set0 . f% W4 @) T' P" r
- (strcat ai_ucsp_a ai_ucsp_set1) 2 R2 w3 w0 R/ r* _
- (strcat ai_ucsp_a ai_ucsp_set2)/ [9 d( N( j1 B5 ~/ }4 v
- ) 1 b* Q+ F1 J* K% p W/ a' ^ T
- )
3 T- h. h6 F# p - )
) i% c L& T) c; I( s - )
, x7 D/ C: y7 Q. h2 j: h" _% ?0 {# C - ). ], T. {. x6 q- }7 L
- )& g, Z' s; S: v6 x, w
- " a* O( Z% [4 _/ _( T# g* U
- (defun ai_ucsp_p (val currtile)& h2 {8 H" M# i" g: Z: |
- (mode_tile ai_ucsp_currtile 4)
3 `* o9 e, U0 L( L - (setq ai_ucsp_pick val" F: l! V$ u9 i
- ai_ucsp_sv nil
0 O7 s, Z5 z& X Q - ai_ucsp_currtile currtile
" ^7 a& P. V, E+ V7 F( K8 ~ - )+ D! f! X- s) I. w' U
- (if (/= val 1)6 T4 ^. `$ ^$ r" ?7 ]$ A7 D
- (setq ai_ucsp_chg T)5 ~0 E. N& s% f# u+ q8 J3 o+ f
- )0 I% O! |! j$ \- u
- (mode_tile ai_ucsp_currtile 4)4 R7 c0 R+ W' E7 {. C8 k
- )& Q9 y$ P1 X8 e# J
- # S0 t9 t$ Y: P* a0 F
- (defun ai_ucsp_swcs ()
N$ l& M& |8 T8 p5 R1 F4 h% c - (mode_tile ai_ucsp_currtile 4). B1 @7 t9 R. }; P8 O
- (set_tile "ucsp_a_wcs" "1")3 K9 _3 w- I( [+ y
- (setq ai_ucsp_pick 68 _5 H. W+ b. i. s a
- ai_ucsp_sv nil7 S- \: b0 M& W" B3 O
- ai_ucsp_currtile "ucsp_world"
, N1 S H6 i9 a1 o' u! X - )
: }( V/ ~+ f4 R0 Q - (if (/= 1 (getvar "WORLDUCS"))
A2 b- o! r- Q! z. Q# Z - (setq ai_ucsp_chg T)
& G- D& N! f- V: k' N - (setq ai_ucsp_chg nil)
D" T$ U7 l, Z2 X; G - ); K+ f( z4 c8 M* j( e) @; V
- (mode_tile ai_ucsp_currtile 4)3 t6 n# H8 d4 p
- )
$ _9 s, y% p& |! F4 w# v
6 q. q+ M; [3 [9 J" T1 D. i- (defun ai_ucsp_cview ()
: o0 @5 b: o; f - (mode_tile ai_ucsp_currtile 4)
E0 Z9 r) D5 r" j [ - (setq ai_ucsp_sv T
7 \9 G+ x' y9 n- q& R( G - ai_ucsp_chg nil/ t- H/ I& A t% z8 B3 u5 W
- ai_ucsp_currtile "ucsp_cview"& z7 G" G B( [7 x& ^- c1 A
- )
( }8 D* j8 B3 V1 x - (set_tile "ucsp_a_wcs" "1")
7 a6 Z' D7 F5 X" ?: n# k. W: U - (mode_tile ai_ucsp_currtile 4)+ p( q8 ^8 G4 r+ y* @4 ^- |
- )
/ K" @5 @4 \ e( S( A
) i! e- v" i( v" @7 B- (defun ai_ucsp_rucs (typ)3 C* o( I0 q- q. P% h+ _
- (setq ai_ucsp_a typ)
% K3 j, w6 x1 f5 u( _ - (mode_tile ai_ucsp_currtile 2)5 u+ X: y3 x/ j E+ s8 X; d
- )
* i, c9 f1 r/ f' }+ v, @
3 u) L4 `, }% F- (defun ai_ucsp_prev ()
9 s2 e( ^! ]# @4 q - (mode_tile ai_ucsp_currtile 4)
# \$ s7 R s% B: k - (setq ai_ucsp_prevs T0 \) I. e" k3 \! d
- ai_ucsp_currtile "ucsp_prev"% L2 x) E# c4 |- @7 M
- )
% p4 A! ^, w# M& I. y- V - (mode_tile ai_ucsp_currtile 4)7 s8 q# G8 b% Y' ]8 Y* Y
- )
! c! k- V! V2 d( I1 D+ y) d
4 r4 Z% D, K4 |3 |$ ?5 f- (defun ai_ucsp_main ( / ai_ucsp_pick ai_ucsp_sv globals)
- e _3 v" _* k% I( n8 O - (if (not (new_dialog "dducsp" dcl_id))
9 Q+ c! u; G3 Q1 t - (exit)
1 K. ?2 U: c2 S4 A - )/ ]9 }, Z) ?$ n% g9 Q
+ j9 T# K: E0 _/ q0 V e$ ~- (ai_ucsp_start)
; C& j6 P- }2 R6 f* h9 L - (setq ai_ucsp_a "@" + j9 B3 r3 Y4 t& Z) T* {
- ai_ucsp_pick 2
- d. \: h$ G) U9 `: \2 l - ai_ucsp_currtile "ucsp_top", o0 \8 ~8 L2 @+ T9 s. w/ V% W
- )
# T. z/ T, b% V3 e# C; e - (if (= 1 (getvar "WORLDUCS"))7 T; d* z4 W- h1 I+ I9 x' j
- (progn
# g2 c' ?/ |% `+ m. O' j2 X3 R* O - (set_tile "ucsp_a_wcs" "1")" e6 K/ ?+ E- U. Q* m$ K
- (setq ai_ucsp_currtile "ucsp_world")9 ]8 z3 N5 I" s5 m0 A
- )
+ H( G* v, @9 P- [* g4 [ p - (set_tile "ucsp_r_ucs" "1")
3 n# ?2 e% i3 D$ H* _2 }* K - )8 p- A# C$ T+ c% d) R/ j9 G5 O, r
- (mode_tile ai_ucsp_currtile 2)
4 y; v! l ~ l( u( e( a' i8 q - (mode_tile ai_ucsp_currtile 4)2 }# A" R# U, J9 r% g0 ]
- (action_tile "ucsp_world" "(ai_ucsp_swcs)")4 {+ Z5 H ]% I7 b0 R
- (action_tile "ucsp_cview" "(ai_ucsp_cview)")- x2 p" i. X- c1 u4 R+ W
- (action_tile "ucsp_left" "(ai_ucsp_p 0 $key)")
: N% Z( l+ ^. H7 B/ y3 b - (action_tile "ucsp_top" "(ai_ucsp_p 1 $key)")0 n! V) b5 M1 N( x7 h
- (action_tile "ucsp_front" "(ai_ucsp_p 2 $key)")7 C/ {+ f- h. q ]5 }
- (action_tile "ucsp_bottom" "(ai_ucsp_p 3 $key)")5 F- Y5 j5 u# J4 \
- (action_tile "ucsp_back" "(ai_ucsp_p 4 $key)")1 j) l+ _+ i' d
- (action_tile "ucsp_right" "(ai_ucsp_p 5 $key)")
% z; u+ }# I( R% X) U3 ? - (action_tile "ucsp_prev" "(ai_ucsp_prev)"): ^# o; g0 H. ?% g! Q1 j
- (action_tile "ucsp_r_ucs" "(ai_ucsp_rucs \"@\")")
$ }( X0 J. u6 n8 T8 z - (action_tile "ucsp_a_wcs" "(ai_ucsp_rucs \"*\")")
3 T1 @4 R5 L8 x5 I3 n$ U - (action_tile "accept" "(done_dialog 1)")8 b! @# m, e6 n. H. W1 B5 j: j
- (action_tile "cancel" "(done_dialog 0)")0 t( k- N: U! L/ a
- (action_tile "help" "(help \"\" \"DDUCSP\")")$ ]! f1 }* O+ G. {9 s$ Y
- (if (= (start_dialog) 1)
6 l# ?( K8 \ A: b - (ai_ucsp_set)% e; A; R" @6 [1 \6 Z6 H4 C
- ), P" z- i! t# e1 U
- )
' a+ R, V* i9 C; R" q. ]) R - ; \& X2 c+ N/ D! `$ W" S) L
- (defun c:UUS ( / app dcl_id old_cmd old_osmode ai_ucsp_prevs 5 _3 y. a' s, i
- ai_ucsp_sw undo_init)# ?- a3 n9 a8 W4 c, }
4 K9 M7 _! a0 p1 I" T4 f- ;; Set up error function.8 q; I3 D% |/ a2 s( }+ R0 J/ a
- (setq old_cmd (getvar "CMDECHO") ; save current setting of cmdecho
4 Z* E% O8 m Q+ P1 V - old_error *error* ; save current error function
4 Q. Q7 y- G, i' g6 U% T3 i - *error* ai_error ; new error function$ n& W3 P4 _: r: y0 q" C
- old_osmode (getvar "OSMODE") ; disable OSNAP for duration; G0 p% z8 B) [/ j1 t- C
- )
$ B& O" g. m q9 {" N5 A, }2 M
( @7 }7 U% f" b( ?- (setvar "CMDECHO" 0)
* Q7 ^" W& w9 b
0 p; e0 z# m7 ]8 a3 G4 X$ e# v- (cond) u# |6 a$ \7 K
- ( (not (ai_notrans))) ; transparent not OK5 Q4 p, ], J5 L
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
% E/ G4 z% L3 [. S, l - ( (not (setq dcl_id (ai_dcl "dducsp")))) ; is .DCL file loaded?
3 N- O1 m# e& j% ] - (T (ai_undo_push)
6 _) R3 ?; t' K" j2 t! L1 o& G2 l: S& p - (setvar "OSMODE" 0)
6 ^4 i$ V9 z$ @9 _8 R; ] - (ai_ucsp_main)
8 q9 G3 p; X0 i4 e+ g# y: |6 q5 X7 I - (setvar "OSMODE" old_osmode)
) ]4 w; f: k8 e; I$ Y; S" e2 M2 @1 L - (ai_undo_pop)4 L+ k g" S; I
- )* T0 Z& f) B; G) P
- )2 X0 @# y9 k% b" J3 I
- , ^5 t! U k- D! z
- (setq *error* old_error)
* E' G+ t* O, v- d) p! T - (setvar "cmdecho" old_cmd)
9 E E+ o1 P$ n+ e - 0 C0 Z7 t& j/ Y$ E" q7 `7 k
- (princ)
3 Y+ x7 W. ?4 i- ?: s - )
! L4 X) Z ~1 N& \+ F0 G - # V! s/ \% ?! {4 Z5 G- _
- (princ " DDUCSP loaded. ")
! w" E" Y8 r1 l% e. K+ }( j - (princ)
2 ^9 K- C) _4 ~, [' X
$ ]2 o; z0 ?& E; l- ;;;???;;;---------------------------------------------------------------------------------------4 Q! x2 d% h! I
- . a$ Y0 v# ^! R' Y/ p" p
- ;;;----------------------------------------------------------------------------- e1 d9 X( c4 F6 C7 Y
- ;;;
$ ~( O# T* W( d2 y4 W - ;;; EXCHPROP.LSP 4 P1 J, p, ?8 z, x) d5 V
- ;;; Polyline and text modification capabilities added by X- |( ], i: J, g
- ;;; Randy Kintzley - y5 [! j# V1 I
- ;;;
4 c& h7 v8 z$ C- x: t' {) b - ;;; Copyright (C) 1997 by Autodesk, Inc.
8 ^( h5 \4 p& V - ;;;
) A$ S5 I* \5 f. x& L. g; \8 z4 J - ;;; Permission to use, copy, modify, and distribute this software
7 q1 B! x( o; ^* w - ;;; for any purpose and without fee is hereby granted, provided2 o; ^/ {0 a* E& |( V
- ;;; that the above copyright notice appears in all copies and
+ l% Z' c1 \" ]8 S: a% d* M2 Y% t - ;;; that both that copyright notice and the limited warranty and; ]- g" N( q! h
- ;;; restricted rights notice below appear in all supporting
, K; E( {9 m3 F7 S! H - ;;; documentation.2 _/ i# F4 n+ f. e) p( h: _
- ;;;
; ]: _( b% K6 B- } - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.% D6 b2 t1 ~4 a8 E; z2 P9 m- a# U
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ~% E3 R0 w' T- N
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.. |5 V; {( h3 \: K" Y1 ^; A' t
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE+ ?6 A7 I, a* u8 ?* @( d
- ;;; UNINTERRUPTED OR ERROR FREE.8 }) P8 W; |: [! U2 S% [. ]# I
- ;;;9 c0 c: F3 k# A
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to! i5 L4 z' I$ E4 n' ]6 y
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer8 n, n5 N" L- B4 h8 ^- k
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
; f+ _+ \* \; @) [/ x- W! l - ;;; (Rights in Technical Data and Computer Software), as applicable.: U( ]6 V8 V# S. _5 s6 W+ {7 x* [
- ;;;0 }, b5 p% X4 {
- ;;;.
9 x0 ^* P3 c% f - ;;; 28 February 1997* E7 @( y5 t( M: G2 w% Y+ R
- ;;;+ d* v# q' n, Q
- ;;;
" i. K8 {# H3 n0 y' P" Y9 y- h! } - ;;;----------------------------------------------------------------------------1 ~ v% \0 l" ?, k* v, Y
- ;;; DESCRIPTION, ^( S3 S. G8 Z* |
- ;;;----------------------------------------------------------------------------
# j3 b5 Y/ U0 U8 a, M - ;;; C:EXCHPROP is an extended or enhanced version of ddchprop. This
5 c6 e( o# `" S8 H4 ~1 [ - ;;; command gives the user the abilitie to change several characteristics : z# |, I) A2 {6 {
- ;;; of selected polyline and text objects. + q6 P: P! j& g8 n2 v
- ;;; The style and height of selectected text objects can be modified
& f* m, ~/ @( M4 ^/ W) T G s# q - ;;; (including text, mtext and attribute definitions) as well as, width and / ~1 M1 }% f' T( y2 Z
- ;;; elevation characteristics of selected polylines (includes lightweight and
7 f# i3 k. T9 x, h4 X! E- P. s6 H - ;;; traditional polylines.)
8 n4 b1 z3 `& @+ e" v - ;;;----------------------------------------------------------------------------+ Q9 @7 r8 P9 w% v T6 _
- ;;;----------------------------------------------------------------------------
& h/ U1 C6 ]# a `, ]8 w& I7 M! f - ;;; Prefixes in command and keyword strings:
4 \0 S/ ?3 J! b$ k - ;;; "." specifies the built-in AutoCAD command in case it has been& F" M/ Z# Y7 y: j: t y/ }4 j
- ;;; redefined.+ i6 V. }$ ~3 f. B% t
- ;;; "_" denotes an AutoCAD command or keyword in the native language, n. W( T e, |/ t! D
- ;;; version, English.1 V7 m$ V; g: M7 n* D. d
- ;;;----------------------------------------------------------------------------
# h% J B4 a: j4 T0 q% x- U( q7 D - ;;;
8 {2 }2 q- O5 a - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
5 T1 @: f# B6 A9 G% ^ b5 Z* f( W - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8 W. q1 }3 K) ~3 q* t
- ;Functions created as result of loading file: exchprop.lsp2 R- X4 b" M! B( V8 q- V
- ; DDCHPROP20 c F3 j8 Y' u* _* h: z
- ; DDCHPROP2_INIT
: P: W) [% x1 Z/ h8 Z/ \5 p$ v - ; DDCHPROP2_SELECT
5 z! S+ J5 @& {% ~ E1 d* p - ;" Y! M, ]+ x3 Z( i
- ;Variables created as result of loading file: exchprop.lsp4 A# g- T4 S7 R% w0 S
- ; OLD_ALLOC7 w l' b! k X/ C0 Y6 d6 U
- ;
9 Z) s- I. N( g! z1 U: r3 v - ;Functions created as a result of executing the commands in: exchprop.lsp
( c$ g" [8 z4 Y& N2 R - ;
5 z: `4 @8 w, `- E/ l o% U0 o: T - ;Variables created as a result of executing the commands in: exchprop.lsp
7 @ M! M( ]" _$ ?% s+ Q; s - ; AI_SELTYPE: ?/ t/ B; U' c* c6 ~- C
- ; BONUS_ALIVE0 k- ~7 `4 P6 p) c. a% A8 F4 a7 x
- ; BONUS_OLD_ERROR
; F3 w: J) K1 x% Y5 g% s. \1 g1 ?- U - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
, M& [% j/ g) `+ j* S - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
, b6 Q9 z* T& v- g8 j' _
+ e2 s" s( f) V$ g, j! E. a6 G- ;;;
, k; {) D. _; z% {! X- H8 \ - ;;; Avoid (gc)s on load to improve load time.) j0 k! d- d' g3 M7 c" g2 s
- ;;;
# |" ^+ h& A- W, }3 @! L - (defun do_alloc (/ old_allod new_alloc)
7 b9 L( a; G9 n: O' G# s! ? - (setq old_alloc (alloc 2000) new_alloc (alloc 2000))
0 _$ X, k' Y+ v - (expand (1+ (/ 4750 new_alloc)))
: r' T4 U8 R6 \ n. B - (alloc old_alloc)
5 Q$ i$ q7 R: m5 U - );defun
9 ~2 q. ^% g5 P3 P9 o/ T
/ |0 p0 U- |! J- ;runs at load time - rk
" i _/ i& u) O' F7 `: { - (do_alloc)
1 W4 \+ H' p8 a* z - (setq do_alloc nil)$ x& ~. Y c' d. `# H
- ;;;1 _0 Z+ M3 y' r, ?, u3 Z
- ;;; ===========================================================================9 D! T8 c! h9 ~+ t; J
- ;;; ===================== load-time error checking ============================
3 r8 T5 W2 ]8 O4 r. M/ F - ;;;* U; z, O" K: [" g
- ' ~: t; [ D0 m8 x8 F1 G
- (defun ai_abort (app msg) & T: C- q9 X5 J; l) x4 O
- (defun *error* (s) q5 T! J& X" P: O2 k
- (if old_error (setq *error* old_error))
' \! N+ ?! x9 c' q6 \4 |" D - (princ)4 ?- |- u: S6 ~# t# E% P: R
- );defun6 A) f# k d4 B5 U
- (if msg
+ d' p2 Z! O* B' } - (alert (strcat " Application error: "1 D9 b8 T) r1 N, d6 \, t
- app
e4 z8 g' I3 Q2 w9 W - " \n\n "
3 g5 K; P1 S% [ - msg. t' i& i# Q* P! b) w5 H& r
- " \n"9 r! O9 d$ N: g
- )
$ _: ~- R( d( P2 a+ o - );alert# f0 u9 d; Q8 U- L
- );if7 V$ _1 H6 s! c5 l% N5 V* x
- ;(*error* msg) a% D9 F* H# Z! ^7 [: ], z
- (exit)
/ {" n6 n6 V9 D5 B - );defun ai_abort
$ n$ G' J, X& ?. s! N1 F - * Y+ _; k& {) g6 d: Z. }
- ;runs at load time - rk3 x9 S3 r( v; \9 p+ y8 |# [
- ;(if (and *error* ;added the if wrapper around this - rk.
7 Z- R- I$ E: u$ G, C: M - ; (not old_error)
3 [* E! y, f9 I: |' f - ; );and & Y3 O N7 M6 Q/ t' d$ H
- ; (setq old_error *error*);setq
: y5 W* _: e I, U! F - ;);if
$ I" w: I ]' j/ V - 2 l) q; [7 e3 E7 `" V
- : h% a4 a3 J1 ]; g" E
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,9 o4 j7 j* x `' D( Z r* Y1 a
- ;;; and then try to load it.
5 D" w2 G* D1 H! z! m6 p. }% ~ - ;;;
6 p$ Y$ X, j- S4 X - ;;; If it can't be found or it can't be loaded, then abort the( e8 N# q: {% U8 H7 u( d+ z
- ;;; loading of this file immediately, preserving the (autoload): e, C$ x: a8 L3 E( l
- ;;; stub function.
. P( o4 E; N6 m( |
1 X. [8 v1 K( q$ E5 g; N& s0 U- ;runs at load time - rk.
/ G4 j* j, X7 E% r% ?$ ~5 `; w - (cond. b' X# y: |+ _; u+ u7 ^* S3 s
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded. |% O8 @& N8 f: {: C
- ( (not (findfile "ai_utils.lsp")) ; find it! x% h' u( W" ^( b' k
- (ai_abort "EXCHPROP": X6 c4 E( {2 I; _0 T1 h# w
- (strcat "Can't locate file AI_UTILS.LSP."7 k9 ^5 I. X9 g) }# `; a
- "\n Check support directory.")+ i' K$ W" a3 D7 i+ B6 L1 A
- );ai_abort( U" D6 W7 Z, \4 a+ j( D
- )
* V: V) w4 a) K/ D- M- F - ( (eq "failed" (load "ai_utils" "failed")) ; load it$ y' ^& I/ q7 d$ w7 O6 ^& c' q
- (ai_abort "EXCHPROP" "Can't load file AI_UTILS.LSP") B0 x4 C& B3 K1 R
- )' H" a+ M- y/ V( I5 t; X5 c
- );cond close
8 P8 F4 b7 A) j, O3 d% X( A2 Q$ i
1 d! B1 n# r: q0 M- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP Y1 p) s4 m' Z& ~1 `' ^
- (ai_abort "EXCHPROP" nil) ; a Nil <msg> supresses. \$ s8 x+ m8 [& `
- );if ; ai_abort's alert box dialog.
2 W! I1 o& B ^" |) G - 8 ]! b$ ^3 {1 C' G+ Z& I" q! d
- ;;; ==================== end load-time operations ===========================; ~: s. j) n. S% M' L; B
- - l6 x; f, H5 B! h( q6 N: K) f
- ;;; Initialize program subroutines and variables.
) q. P) y: c8 D- w, B) S
) H0 V0 q. t# l5 S- (defun ddchprop2_init()7 z. o$ k' y( c: }' w
- " s5 `+ q) U1 ~+ \! a4 s* l- a% t6 j
- - u; C, G: N; B" b/ Y
- ; `+ W) `% ]8 p Z$ e7 ^
- ;;5 \8 u7 K2 c) D0 S( {% d' y7 J
- ;; Define buttons and set values in CHPROP dialogue box
$ e A7 N$ v7 U - ;;: s$ U) i) L! Q) ~& E
- (defun call_chp2 (/ cmdact p1 p2) B' U7 }: s" S
( @1 [$ C* q+ v8 [9 l' L# M9 V+ k- (if (not (new_dialog "ch_prop" dcl_id)) & y6 F5 |" Z+ v
- (exit)
9 Y2 J% U6 j- J0 u1 x* t* R - )
8 _5 E ?+ e: D1 C2 F6 j - / N5 o/ }8 N& O" y+ w9 G7 d
- (set_tile "error" "")3 U3 }6 m& l# [. z' A
- ;; Set initial dialogue tile values- i w& X1 ~6 V4 _) D- j
- (set_col_tile)
! l" F; |. @. h - (set_tile "t_layer" elayer)) x3 s' s1 S" _) T
- 2 q( i% f9 Q+ {' n" k3 K: |; G! t+ \
- (cond
) y; I% j3 ^! u3 z9 T - ((= lt-idx nil)* m# a9 u! v, I% l
- (set_tile "t_ltype" "Varies")
" b& a. R& O3 b& v& A - )
7 N' u% {- d) @/ e3 T+ X2 h6 {! T - ((= lt-idx 0) ; set tile "By layer & layer linetype"& ?$ s8 z8 Z; W/ C6 M
- (set_tile "t_ltype" (bylayer_lt))% A# p2 C) s: E3 v
- )
0 X$ _0 I8 q& Q/ e; W; i: P- ` - (T
! k( V' u* D+ ~) g2 F! [# {; X - (set_tile "t_ltype" (nth lt-idx ltnmlst))
6 x+ n D+ ]3 u$ |8 e - )
! {9 `. L0 P$ A r - ): H8 C m, r* [: `
, |; ]) w6 Y* h1 C6 y4 P! u( s: i I- (if (or (= ethickness nil)
6 \( A0 J& N: Q# n* }0 E5 V6 A( f - (= ethickness "")6 d. J" N( |7 l! j+ R/ L3 |
- (= ethickness "Varies") 0 n( R/ A) Y3 r. b+ N
- );or
6 }& [$ j* l* r" w. c$ c - (set_tile "eb_thickness" "")+ q E0 w6 i0 O9 ~; l
- (set_tile "eb_thickness" (ai_rtos ethickness))1 t) H% j/ P/ n" h. N" ]
- );if. h" q0 `2 B3 Y9 ~
- (if (or (= eltscale nil)# n( e2 ?8 c& [
- (= eltscale "")% m# F) T6 {/ j
- (= eltscale "Varies")+ h& @, V6 o' @ ~! j
-
$ Y7 L/ x o/ b* ~ - )
9 J9 P* w: ^5 v- d# |1 m& d) m - (set_tile "eb_ltscale" "")
, `3 u+ ^! G3 f4 b4 d, H% M$ Y) S' U0 P) L - (set_tile "eb_ltscale" (ai_rtos eltscale))4 V$ ]9 N* d! J! W7 R3 m
- )
: B9 _% l% e; Q3 O0 ^; l( f$ C$ } - (if
9 e2 [* m4 Z, @& w3 O# }! ` P - (numberp ewidth)
8 f4 k" d0 P4 R: x - (set_tile "poly_wid" (ai_rtos ewidth))
/ E4 Q2 a" W; w* v - (set_tile "poly_wid" ewidth)' s1 D2 Q; |3 B p3 z
- )$ C% L. b ]) h# a5 j
- (if% X+ E4 }- x: J0 l$ J
- (numberp eelevation) H; Z+ l( y9 b& m5 n/ Y& p
- (set_tile "poly_elev" (ai_rtos eelevation))
/ F }/ I: l8 c0 o - (set_tile "poly_elev" eelevation)
1 ^$ j' i5 {* z: n, U) \) Y7 j9 M - )
# E4 p! a3 ]( l2 @' |$ M6 I6 _ - (if. S2 d9 \+ P1 W; |
- (numberp eheight)
7 H$ }" T& C/ `3 K - (set_tile "text_hgt" (ai_rtos eheight))
$ c5 y8 e. f; _! u4 ` - (set_tile "text_hgt" eheight)
# U0 r8 h8 C) l, j( N% E1 h - )( X* S+ M1 `$ D$ O$ m# h$ C
- (if (not estyle)
/ P- L/ n/ m2 c6 D# t m+ [4 F - (setq estyle "")
6 T; s6 \6 n O _7 d" @ - );if 5 }2 l: h! j/ S0 L R' u
- (setq hair_style_list (tnlist '("style" 16)));setq
, h8 e2 T( e7 ?9 i8 k& _) o3 t9 K - (if (not (member estyle hair_style_list))* Q- m- G. G2 U, V: J; ~
- (setq hair_style_list (append hair_style_list (list estyle)));setq
* n# [2 W- E4 E+ X- G - );if
& B$ p" f: z* @0 l( P$ W4 g1 h8 t
! Y/ o+ R# c" L& w- (setq hair_style_list (acad_strlsort hair_style_list));setq
2 j# J4 E9 Z/ P& a$ k0 R# i1 \- { - (mpoplst "text_style" hair_style_list)5 _! a) p7 Q4 {
- (set_tile "text_style"
1 f$ G' G$ J! E - (itoa (position estyle hair_style_list))
. A! f" K; ~7 ^7 c' X - );set_tile 9 u2 o& s6 g& L* f5 Z' [
- & `& R% E$ F7 z
- ;; Disable tiles if need be... ;@RK9 R# I# \; Y# B: L1 r0 ?8 N4 {
- (setq a 0)) n' |% d0 w( f k7 O
- (while ( < a (sslength ss))
* D8 W0 J+ B" c; x' e - (setq which_tiles
' S* Z+ x+ m8 q) i M: {* S/ F. w - (ai_common_state (cdr (assoc '0 (entget (ssname ss a)))))), q8 k' {% D7 `- o
-
- n3 E$ U! k# k0 h - ;; If all fields are enabled, don't bother checking anymore.
5 u$ @9 V/ X$ {2 L - (if (/= which_tiles (logior 1 2 4 8 16))
) y# a8 ~+ z5 E' U0 o' C - (setq a (1+ a))" c0 k ]$ R* @# g8 F. b, {
- (setq a (sslength ss))
7 s/ }# P' a- z% [& ` - ), t, E4 T, r0 I6 v4 K
- )8 e: l. h- w* ?4 H4 \! F
- ;; Layer Button and Text Field) X1 T8 Q" [; S/ T+ H0 ~! E: N7 y( z
) @$ i8 n8 _9 o' E _: m: g- (if (/= 1 (logand 1 which_tiles))
* m7 K- H! U7 P - (progn9 i# _1 ]% q3 `0 C" o. U3 f
- (mode_tile "t_layer" 1)3 z, o( k9 d0 m* r" f$ L, m" q
- (mode_tile "b_name" 1)
4 i/ J! ^* M; p9 E - )
6 s( f+ a# Y5 R* h, q( F a$ | - )/ W/ g3 R+ s& L1 }) ]; n
- + x3 ~# [9 e) i" Q% {. D! r
- ;; Color Button and Text Field
/ M5 {* V, g8 z% | - (if (/= 2 (logand 2 which_tiles))
6 g) F0 Q5 Y1 c( b2 z - (progn
; [+ m3 J9 a \% o# i# D( D& A- N' L0 x - (mode_tile "t_color" 1)
( |% J9 {* w1 X& x - (mode_tile "b_color" 1) ^; A y7 k3 G+ n" s
- (mode_tile "show_image" 1), c* p3 F7 o: Z$ d* [
- )1 Q9 M/ M; e! T: K7 w+ ~0 ?
- )
& J6 I* ?3 l7 ^* q m% s - ;; Linetype Button and Text Field0 W- u+ H5 m4 D5 b8 J
- (if (/= 4 (logand 4 which_tiles))
" ]: X* b6 K( w. W - (progn
. i1 T4 }5 y$ C - (mode_tile "t_ltype" 1): J' y" Q: v! \# p4 L
- (mode_tile "b_line" 1)& l3 c8 H9 T7 Q5 N0 b
- )
: d& h- J- `& b! v6 y - ); z7 B$ l4 _6 ^$ G5 I$ ^" `
- ;; Linetype Scale Edit Field
4 y1 ~4 {/ b. y6 D% [+ ~ - (if (/= 8 (logand 8 which_tiles))
) X7 c, _+ f' s6 L( W; B - (progn
: v% ?. N3 z3 {& i9 ? - (mode_tile "eb_ltscale" 1)
0 k$ T: w9 F/ U - )& m. ^6 q' l5 N1 N
- )
- |& t7 M4 J) Q" `1 h8 l - ;; Thickness Edit Field.! V1 z! E& Q: h6 S/ t) {* l
- (if (/= 16 (logand 16 which_tiles))5 G/ i" b- Q# m* e) V
- (progn, v8 C' u1 z; I1 D1 y% _9 B9 ?9 t3 _
- (mode_tile "eb_thickness" 1)8 Y4 M* H w1 {% Z, C4 z( z
- )5 _/ h7 @- X7 Q0 ^8 p4 r
- )# P6 q9 z! t& M9 } P) `) e% f
- . Y- ]9 l: p6 W2 b
- ;; Polyline box and tiles @rk 10:05 AM 1/30/97, M; [1 O/ l0 w: P, R( l) q7 C
- (if (not (= 2 (logand 2 eflag)))/ o( A: C/ S% H( {! r9 A$ [
- (progn; |7 D2 A+ \5 D' e5 c; C
- (mode_tile "text_hgt" 1)
2 j+ @6 q0 S, V - (mode_tile "text_style" 1)
' \: N$ v" T7 [# `, W - );progn
% N! d6 v/ G/ i; O( H9 z - );if+ M- X- H0 t" |: K. [9 f1 Y; C
- (if (not (= 1 (logand 1 eflag)))6 i$ a5 \4 Q5 X- u
- (progn
. ^- {: k. @1 @4 p" q% ?; W - (mode_tile "poly_wid" 1)+ z8 u1 ~; K8 x) O u' O
- (mode_tile "poly_elev" 1)
( q. ^# H2 J+ }$ ~! y0 _ - );progn then disable polyline fields% u% }/ C! [# m- J& l8 }; }* x/ W0 |
- );if
( O# Q5 M$ Z3 X0 c- P6 V% k8 z( ?4 |
( G% ~- C* k: A* R3 K$ u( j- ;; Define action for tiles+ D8 F) \& g+ c' V( S+ f' {
- (action_tile "b_color" "(setq ecolor (getcolor))"), l: N5 C3 w$ J- U0 W1 m* K* T
- (action_tile "show_image" "(setq ecolor (getcolor))")' G$ V$ Z' `: K n4 a. m" F
- (action_tile "b_name" "(setq elayer (getlayer))"): c% }* m1 q1 w6 u
- (action_tile "b_line" "(setq eltype (getltype))")7 n. N# L8 |8 C. v4 |4 I3 J7 s0 p4 x% c
- (action_tile "eb_ltscale" "(getscale $value)")) q& D: q5 t/ J* A8 b
- (action_tile "eb_thickness" "(getthickness $value)")
l" `9 |& ]3 P" u- ^# p# q - (action_tile "poly_wid" "(getwidth $value)")! n- t/ c5 r" J4 G, U. ]% I0 z
- (action_tile "poly_elev" "(getelevation $value)")
( j6 N- w" k% \0 Q9 W/ I, @ - (action_tile "text_hgt" "(getheight $value)")' ~; N/ K3 ^4 g! {* y
- (action_tile "text_style" "(getstyle $value hair_style_list)")
8 {5 o, H& Z1 r. F/ A& \- _4 P1 u - (action_tile "help" "(help \"AC_BONUS.HLP\" \"EXCHPROP\")")! f" z. O, h5 j! K4 |/ f; q
- (action_tile "accept" "(test-main-ok)")
+ D: M& f1 o9 ~- d
) q$ A" \7 t2 W5 h4 U8 H- (if (= (start_dialog) 1)$ \( w+ ?5 U+ q" [' R! o P9 D
- (progn% M/ |4 T \7 m9 E
- ; Update special properties for polyline and text selection-sets.3 G3 Q. W, S& i6 H; V' M) u; d' Q
-
- }* x$ z! I/ H' u6 ` - (if (and (= 1 (logand 1 eflag)) ; polylines rk chprop
9 E+ o# c, A o* f5 e) t8 _( C* i - (or ewidth
) x, e3 N$ R8 _% Q+ F" d$ \ - eelevation7 ~8 n1 n; B+ ^' K+ {0 S* F2 n
- );or3 M* j! e, ^$ g) B, l3 \
- );and8 W+ \8 N" ^* t3 ]# D
- (progn1 v7 Y- ^5 {+ ~9 H. T! O" K
- (setq ss-index 0 ( L. ~! V3 `4 }% @9 X: V9 j
- ss-length (sslength poly_ss)
; _9 E, w' D# J - );setq; m, d2 T: m& Y1 u6 C& t1 u
- (while (< ss-index ss-length)
: ]! L p/ } m - (setq ename (ssname poly_ss ss-index)
, c# Y% h; N9 e* T% m& A - elist (entget ename)
l: f3 v1 J+ V; Q: W - );setq
8 K! L0 D* W- d# i R - (ucs_2_ent (cdr (assoc 210 elist)));this function lives in ac_bonus.lsp+ H7 t4 ?7 v% t6 w# M
- (if ewidth
8 W$ Q- ^4 U6 A% J. P8 i - (command "_.pedit" ename "_W" ewidth "_x")
4 o4 u8 w* Q. j- j - );if
M" ~/ F* Y8 W3 D - (if eelevation
* f0 n& t/ m/ q! x5 N - (progn
7 I' i4 F! s& i. v& T8 r$ p - (setq p2 (list 0.0 0.0 eelevation));setq
3 e1 O& _" \* w! M- u8 g8 R - (if (equal (cdr (assoc 0 elist)) "POLYLINE")# d' [/ _: f+ r/ D- g- [: c) b6 l
- (setq p1 (list 0.0 0.0
2 L- |: P* [3 V6 N k% p2 r- ? - (caddr (cdr (assoc 10 elist)))
E* T. b; r% o( \" R8 ` - );list
) k a8 `( u- e; M) W( [: R - );setq
0 ^& |! T$ W- ` - (progn# o# \/ w- J+ Z1 Y7 z! Z6 a
- (if (assoc 38 elist); L* O1 j8 z; F0 q# D U+ y( j
- (setq p1 (list 0.0 0.0' L) W+ e/ W2 e6 O5 @
- (cdr (assoc 38 elist))
& S% s4 C' z/ N& ^0 x - );list2 E( ^2 U+ |% v& I9 i
- );setq6 D9 I% x0 p9 [- ?
- (setq p1 '(0.0 0.0 0.0))3 ~2 m' J% c( |" h# [) I$ g# j- G
- );if( Z4 V, Y3 }+ z. o
- );progn
. }9 }; f, ^7 u. b) f0 y3 m! W3 [ - );if
. o0 f: L- X& [, c, |7 F k$ C- a% ^ - (command "_.move" ename "" p1 p2)
) D# m; E4 S, X8 a8 o8 G, ~ - );progn then change the elevation of the polyline
+ v/ F+ ?. h8 X# C1 y0 \3 A9 W - );if
3 ^& V, Q k4 r; G9 G! T) J, Z5 M - (command "_.ucs" "_p")
) }7 |* r9 A9 b* _/ V: I) D* F& b - (setq ss-index (1+ ss-index))
4 d' C4 d8 {9 e# b# N B5 k - );while
: k' v3 g# e. L! L( S - );progn then polylines are in the selset
, d+ P1 t: g: Z5 F& i7 C( K6 ~5 H: | - );if& f$ `5 v" ?9 H8 k
- (if (and (= 2 (logand 2 eflag)) ; text
# x" ^8 [8 r0 v+ q0 Z - (or eheight 1 u6 ?% f" H+ P7 H& a% E
- estyle5 c8 d6 f' h% Z
- );or
% |, P% g; i6 s7 y - );and: L; [: D2 F K6 {0 i% }7 K
- (progn6 Q% M n8 Q" h5 B+ |0 g6 z
- (setq ss-index 0 ss-length (sslength txt_ss))
: X: a1 U, H! G) Q7 h - (while9 y1 W$ O4 f' D& w
- (< ss-index ss-length)! @. ~( F% c: G# m" P2 q& d; l/ P b
- (setq elist (entget (setq ename (ssname txt_ss ss-index))))# l& X0 S& D* Z# c' I
- (if (numberp eheight)! Z. x7 `. x$ O+ M( T
- (setq elist (subst (cons 40 eheight)3 Z+ V% H/ \* ^9 ?
- (assoc 40 elist)7 e4 N( o* s( P, n. t
- elist
; Q; D1 } q2 X- u( _% \8 E - );subst+ ]& h% d6 Z" _9 F+ r
- );setq& Z4 f6 S# B2 F$ g) u
- );if- n+ q0 c! r8 r$ n1 x
- (if (and estyle ;(not (equal estyle ""))
9 n2 }* ^: J, d1 c1 M - (not (equal estyle (cdr (assoc 7 elist))))8 L6 t2 F4 d. v/ d7 i- B) ~6 t ?9 Y
- );and
" e( k' F. D! d: M8 ]4 q1 ]: } - (progn / Y# [/ R0 [3 x( x3 y# x
- ;rk. This needs to be implemented as per mtext font issue in ; ddchprop_notes.txt
* G& A8 c$ i- O - ;(if (equal "MTEXT" (cdr (assoc 0 elist)))! K8 [ n1 W$ _, G. z: D+ i
- ; (setq elist (fix_mtext_fonts estyle
7 E% J5 _/ i1 b: r9 l - ; elist
0 t# L# p8 v# C) Z1 H - ; )
9 Y. W+ t; h' {7 _& J - ; );setq then0 B6 ?( n* L, M2 K2 R+ m w
- (setq elist (subst (cons 7 estyle)
& y8 M6 B/ U; {/ X" `( ?! k - (assoc 7 elist)
0 p: i8 m/ ^' x. ~0 U% b - elist
5 G: \: S" J0 |0 Q( o: l$ n - );subst9 q1 o8 a O- ?' h& C$ s
- );setq else
6 r: i4 b3 i7 H9 B7 l! O5 | r - ;);if
! Z7 D. r- f6 e0 v9 i - );progn9 u1 ^ _$ j- U: o% n! j
- );if3 l4 N: O1 \. x# v3 |
- (entmod elist)1 X2 _- h0 W: s* J& z
- (setq ss-index (1+ ss-index))% i1 ~4 c! t. l" H6 v! ~
- );while
- f, V$ [7 ^+ J! U1 B1 ~, W- o - );progn then9 J% c8 d7 u! v
- );if
, E4 g9 A9 `- w) k! F - $ y2 K3 @2 z! X. i8 ?3 H2 v
- (setq cmdact (getvar "cmdactive"))
1 E! q& f9 ]$ [ - (command "_.chprop" ss "")8 H5 W d' {- G
- (if (/= cmdact (getvar "cmdactive")) ; Is CHPROP actually running?4 Y; A( {/ Z. d
- (progn( p. s l$ r" Z& V' O
- (if ecolor
4 X/ h2 e# {/ I, P/ x8 ]8 s- v - (progn# W% m9 m/ x0 M' s$ j s
- (if (= 0 ecolor) (setq ecolor ;|MSG0|;"BYBLOCK"))" p& o5 G: }$ L4 x0 _& C
- (if (= 256 ecolor) (setq ecolor ;|MSG0|;"BYLAYER")). o# ~6 S# G$ H/ t( n
- (command "_c" ecolor)$ I4 S. W# f; { D3 J `- b0 k
- );progn then
* ?4 d% B- D# L# H - )* t( k6 D+ R+ L6 P# r9 Q8 ~ h1 u" x
- (if (and lt-idx4 p. Q, Q% Z0 M9 y K3 L/ r8 a8 Z
- (/= eltype ;|MSG0|;"Varies")
" P; @# M1 t! `2 d1 z/ F - )( S9 d6 f# E: |% p" V, Q
- (command "_lt" eltype)
2 f) t2 {& `5 d: l3 \ - )
( N( c7 l, X2 |" v7 {% C1 m1 s. q - (if (and lay-idx
/ B. Q' `; p: ^ - (/= elayer ;|MSG0|;"Varies")- K3 s0 `: `3 B! D
- )! [4 r* x( S. b8 p( q# t
- (command "_la" elayer)" E$ w8 ?$ w) i2 k8 a2 P: ?
- ) N4 ^9 o+ M% X5 y6 T
- (if (and ethickness
( ^8 x \8 J- d8 V( A - (/= ethickness "")% D0 |0 x* Z. O( K
- (/= ethickness "Varies")
% ~$ }1 {, M5 i# z) ~ - )/ Z3 A( \8 T# g
- (command "_t" ethickness)
r# c2 M6 Z+ F3 N6 O) a# U5 s - )
( F$ r7 R M" w1 [ s - (if (and eltscale (/= eltscale ""))
1 j$ m# {; p( P2 S - (command "_lts" eltscale)
6 d8 D7 j% q& E2 } - );if! A# P5 o! w. K; f- f* D9 K
- (command ""); r# o4 q1 Q7 c0 i2 K$ ^; m# M
- )$ Z% E: o: h2 Q& X' d
- (princ "\nProperties unchanged") ; CHPROP didn't like our SS set
# h$ k4 F; _* U8 N/ B6 } - )
) D0 r% q/ H/ f( u7 j5 t9 `. u - / \: t+ d, E, b$ ?1 V
- );progn then OK was picked in the dialog.
s# G6 p' A5 V& u -
: m5 N9 ]% a {3 A6 ]/ F - ;; Fred GERBER - 25-AUG-948 m T) Q1 m: C0 B6 e
- ;; Don't print the "Properties unchanged" message when the user cancels
& X6 S6 @4 W3 _ y) W - ;; the dialog because he knows that already (otherwise he would have- {4 [9 B$ a5 l; F% W! T v1 b
- ;; hit the "OK" button). Display the message only if CHPROP fails for' g! ^; q, i0 T# X. f2 L
- ;; some reason, because it is not the expected behavior of the command.8 z' z! i4 g! F: Y
- ;;
, M0 S# R9 r n9 ^ - ;; (princ ;|DDCHPROP2_LSP_8|;"\nProperties unchanged")# `/ M2 J. O9 O" Y
- );if( ^% a f8 f* I6 f, {7 |
- (princ)
$ g' @" t, Q: [ F - );defun call_chp2
* Q6 c9 F5 C- c7 Z - ;;
! v0 l9 h8 c0 A M! T0 F4 G - ;; Function to set the Color text tile and swab to the current color value.
: O6 k: G/ @! D P - ;;
1 H v3 _, N/ u' k - (defun set_col_tile()
$ r0 a$ w! o* r* A - (cond. `, J9 Z- N+ B- }0 y7 F
- ((= ecolor nil)
4 X1 F/ [/ j- L6 p - (set_tile "t_color" "Varies"); o$ v/ I/ a9 U0 t5 H) w
- (col_tile "show_image" 0 nil)# r% o2 U5 E& u$ D( F+ O7 K: p
- )( H; s( o2 o" H' s* u3 f
- ((= ecolor 0)
. D% ^; L5 Z$ N. z" [7 s - (set_tile "t_color" "BYBLOCK")
& n! [- r( v6 }" {, `( |+ c/ F - (col_tile "show_image" 7 nil) ; show BYBLOCK as white5 f* K( n% q4 u `
- )* C! @% P1 w7 U3 Q, d o* b2 y
- ((= ecolor 1)
6 A8 O; f! S' P4 q: O( ]. D) O - (set_tile "t_color" "1 red")
* ^0 T* r$ A" D - (col_tile "show_image" 1 nil)
5 o1 z$ K* @+ C) R6 O- w - )
' w) W2 X# M" ?9 B( [2 e6 h - ((= ecolor 2)
: K! w; m/ k" D% { - (set_tile "t_color" "2 yellow")) W) n/ Q! ?, H4 o4 E+ W8 c
- (col_tile "show_image" 2 nil), V2 ~; @* P7 M# ?% D
- )0 t/ F& A. x" j% L
- ((= ecolor 3)8 W$ b( ~& U) S! M( s/ {
- (set_tile "t_color" "3 green")
$ H/ t/ C! Q, a7 v. m - (col_tile "show_image" 3 nil)
" C- ?6 B3 u- S. f - )' q* E, K$ {$ J
- ((= ecolor 4)' `0 B5 b# A8 R6 R. A1 x
- (set_tile "t_color" "4 cyan")/ K5 b6 c, o8 Y- w. l4 \; K* s
- (col_tile "show_image" 4 nil)* c" @+ G6 K. C7 y% W4 N+ p0 O
- ), P! D0 Y d! C
- ((= ecolor 5)
" ]9 |8 c) A5 ` - (set_tile "t_color" "5 blue")
8 Q: q8 H# g. q8 n& Z, ?8 s: o- b - (col_tile "show_image" 5 nil)
, k$ `1 x$ M/ n1 Z4 F3 L - )& a! _+ f/ k$ ` m, E$ F! d
- ((= ecolor 6) b* U' B6 D& |: L; s
- (set_tile "t_color" "6 magenta")
: a2 e* {* `4 r; P% X - (col_tile "show_image" 6 nil)2 o v3 b' j8 K. e6 F6 Z, s, B( S$ K
- )
8 G; A& v& ^. [) A3 h, H - ((= ecolor 7)
/ F& h& [+ f. f4 Z; H/ J - (set_tile "t_color" "7 white")3 z2 l; N. D: K* U1 U- o1 r
- (col_tile "show_image" 7 nil)
5 N( X3 O8 g3 C0 b0 a' y% u - )
. Z1 i8 S# g3 q! w- ^2 U4 {) e - ;; If the color is "BYLAYER", then set the tile to
& n F3 a4 `( R4 W/ ` - ;; show it's set By layer, but also indicate the7 ^7 X# }2 r! R
- ;; color of the layer - i.e. By layer (red)! C8 r: t% |3 D! F" T5 @) c
- ((= ecolor 256)# b; N+ x' `0 u
- (set_tile "t_color" (bylayer_col))
2 Y1 b- i" ^1 j5 F8 c - (col_tile "show_image" cn nil)
6 C0 M2 }4 Y4 c, Y0 C3 ` - )3 P" {& l/ ^1 ]3 j$ r v
- (T
- o, U! X( O' m% y' z - (set_tile "t_color" (itoa ecolor))
* b8 Q& O& Z' F; N - (col_tile "show_image" ecolor nil)' k2 h, {8 v8 q
- )) q; r" U- ]! w/ q9 s5 V7 W9 w
- )
7 G! X h) e6 f7 v# b% j - )7 l0 ^# G9 h; n6 u
- ;;2 X* @7 e: h3 @# \2 z2 o
- ;; Function to put up the standard color dialogue.# L! K# x) w h$ u* O! |
- ;;2 n8 j1 v/ ~9 k: R$ T: k
- (defun getcolor(/ col_def lay_clr temp_color)
( J* I2 w I% J+ N! e% G6 _ - ;; col_def is the default color used when rq_color is called. If ecolor
* E3 r: Z6 k1 h7 y - ;; is nil (varies) then set it to 1, else use the value of ecolor.
8 ]! F. n/ ^: @ - (if ecolor
) K W4 P0 \$ H - (setq col_def ecolor)
, O5 X( {( T( M( c' v - (setq col_def 1)9 P3 ~; b5 s5 m3 C, T" n
- )
2 |2 i% Z2 m; e7 T8 B" W
7 e; Z' H/ `8 ]/ j0 K! F1 s- ;; If we're working with a single layer, get its color
1 }1 ~; D% x% g! i - ;; for use in the color swatch if the user selects color BYLAYER.
; y' x* h& h$ [2 I! r7 H- `4 U - (if (/= elayer ;|MSG0|;"Varies")3 t. V; I5 @2 H. E3 r
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
& v; q$ m* C7 \ - (setq lay_clr 0)) k7 [5 I, {! y
- )7 |& h# a4 a/ I# E% V2 z
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
; C, G# u- b' l8 _ s5 q5 K - (progn
8 I8 m$ v( v4 R" o, Z- I - (setq ecolor temp_color)
3 y# u- V S. q8 Q5 [7 H - (set_col_tile)
1 w% ^5 e9 G& Z" e$ { - ecolor' q7 Q$ V7 V- C3 |
- )
$ o9 I K9 ?7 @' e: Y9 x' q - ecolor
- s; i l" ^1 a - )
/ {1 f9 |" W8 _# X8 V4 a5 E! R - ); Q1 |# E* [9 i) ~+ i% H, B5 X' u( Q% Y
- ;;
y: b" \' e: W( ~ - ;; This function pops a dialogue box consisting of a list box, image tile,' r2 G8 F# w s0 M* s6 G
- ;; and edit box to allow the user to select or type a linetype. It returns: X7 m9 S5 B& [1 G
- ;; the linetype selected.
' @5 g' X* B2 j) ~5 R$ X1 ~- U - ;;
8 R) j8 _3 @6 w/ I3 x* b! L - (defun getltype (/ old-idx ltname)( X! c, U- V4 z$ ^
- ;; Initialize a dialogue from dialogue file% o+ `1 }) q# E v0 k# ^* K
- (if (not (new_dialog "setltype" dcl_id)) (exit))+ i- ?1 o6 V$ c$ G I' Z0 h' a
- (start_list "list_lt"), p" k9 Z+ T: _, P5 c3 A6 u; J
- (mapcar 'add_list ltnmlst) ; initialize list box( S L& _# Y r8 o3 A8 N% r+ |# d7 X
- (end_list)
! S: e) g- h( h) z( q- k - (setq old-idx lt-idx), r# Q; V* X5 T; Y( p4 Y
- ;; Show initial ltype in image tile, list box, and edit box: o* V2 E' c6 }- ?! o( K4 H) T! ?
- (if (/= lt-idx nil)
+ K8 c3 N/ M6 F( F+ b - (ltlist_act (itoa lt-idx))
/ s: g% @' }% a$ T- A0 j7 x: i5 g - (progn& @' `& s$ c$ e# C, e* X- s: E
- (set_tile "edit_lt" "")
: @% H3 ~( l9 D% x. Y! @$ Z5 R - (col_tile "show_image" 0 nil)4 h! E- E/ y% I1 u* x9 A
- );progn else
/ P6 G0 D8 n9 _' K+ m9 F - );if
# s0 s* [, h6 M0 b+ N' r0 N* b - (action_tile "list_lt" "(ltlist_act $value)"): Z/ ^4 u; `; j
- (action_tile "edit_lt" "(ltedit_act)")
& m, d3 Y3 V! b - (action_tile "accept" "(test-ok)")( r4 H7 |: P- H/ N9 p. B4 E$ ?3 O) b
- (action_tile "cancel" "(reset-lt)")
2 B4 O5 |$ B; z4 ]" y3 b' C - (if (= (start_dialog) 1) ; User pressed OK0 }, x* N' n3 u/ j8 Y# m
- (cond; ?; v# p" B p2 L* L
- ((or (= lt-idx nil)
1 w. w0 N' O( _" f8 w4 h - (= lt-idx (1- (length ltnmlst)))
, n( r: \; H& c9 b z9 ^ - );or
9 y, K' _$ O: S; D" v7 q2 ~2 A - (set_tile "t_ltype" "Varies")
" P- o. C9 G) u" j - ;|MSG0|;"Varies"
) i6 E1 R+ T3 O - )5 F$ r9 ^7 O# V) Z3 _
- ((= lt-idx 0)9 A3 j) H `1 w% F) O1 ^+ i
- (set_tile "t_ltype" (bylayer_lt))
2 g# v' u l% C: \5 o! l - ;|MSG0|;"BYLAYER"
) X+ Z, o' q& }, M - )
7 H- L7 v, F3 s/ S - ((= lt-idx 1)" E$ t$ ^) K. L. m0 ?
- (set_tile "t_ltype" "BYBLOCK")
/ A- x! I% P& A% |" g- ~ - ;|MSG0|;"BYBLOCK"
c# z$ I! {+ D* o8 N3 B8 N( F - )
) _8 Z5 H b1 M/ N; t" h! ^. | - (T1 D( W8 \5 u4 v5 x: y
- (set_tile "t_ltype" ltname)
& G- B+ f" B4 G/ C; I! X( R) v3 G3 ^ - ltname
' \0 I- X k# {5 S) } - )# o/ p9 f# l$ U0 W' R& T4 S0 Q
- );cond then
: H; V5 ?% |0 E. y- N' c D - eltype
6 t: c# r9 h. p- R; {( j% s - );if
$ `2 { H! B+ e) o( i - );defun& z% s6 q" d; J
- ;;
0 O) H6 ?6 R3 G& C" q3 g - ;; Edit box entries end up here
( ?# }: q$ K: }9 L" R, o - ;;
$ x! n! H3 F2 s - (defun ltedit_act ( / flag)
6 L2 h) j& w [" G - ;; If linetype name,is valid, then clear error string,
/ E D, V6 n% D7 \, ]' `6 [ - ;; call ltlist_act function, and change focus to list box.
4 P. ]/ T8 }+ ^4 Q - ;; Else print error message.
, s! k2 k) g0 y- ?: T- D7 ?8 M8 }8 Q -
$ {# n1 y+ O t4 t - (setq ltvalue (xstrcase (get_tile "edit_lt")))
4 l i6 o5 T! X+ E+ _2 ?7 \ - (if (or (= ltvalue ;|MSG0|;"BYLAYER")
* N3 a. s3 n) S* ~4 D - (= ltvalue "BY LAYER")
4 `3 Z5 g; ?% e) T - )( r) W1 r( f1 e3 H5 a" Y4 x( Z
- (setq ltvalue "BYLAYER")
3 R5 d2 d; N) b - ): `- G) U: @7 m0 o
- (if (or (= ltvalue ;|MSG0|;"BYBLOCK")
& I6 [9 Z; `& {2 w7 l7 T5 h - (= ltvalue "BY BLOCK")
. B; c Y# h- b7 p0 J1 p - )
" K+ k# V& T. ?2 g9 G* I - (setq ltvalue "BYBLOCK")
% N. h9 Q# q5 W* t/ b# q - )/ U6 M/ e1 l$ t9 c: y- ~0 g
- (if (setq lt-idx (getindex ltvalue ltnmlst))
3 i. v# _; R6 }% [ - (progn
* M# Y/ ]$ S* E0 i4 | - (set_tile "error" "")
' s& _& c4 r" U) P" { - (ltlist_act (itoa lt-idx))( n$ l: N; {3 R$ H
- ;(mode_tile "list_lt" 2), O' z! N6 T8 g* U9 f, K6 {' n
- );progn then8 D+ c0 z% P9 `; }! a& B. a
- (progn0 M- u+ A$ R/ J8 ]
- (if (/= ltvalue "")
0 A6 B2 Y' }% r" y# f% X% z - (progn
* I8 O+ f2 p" E/ w - (set_tile "error" "Invalid linetype.")4 k2 s: S& n \+ o
- (setq flag T)
9 M+ I) g* i, Q6 O% R; p' B' N - );progn$ ^7 M, N8 \8 A* O: B1 z" J* n/ f0 e
- )
4 A. l( N, m2 I- C - (setq lt-idx old-idx)& _/ T% h: h6 D' I8 J
- );progn else; U+ S. }& A9 j) R2 x
- );if- o- I! p; b3 ]* R' W
- (if (and (not flag) ;added so a return will take you out of the dialog.3 e& ^: X" ~/ e6 j. s
- (= $reason 1)/ i5 p4 H% C4 @+ X. ~& r
- );and+ V+ {" X3 |$ @' p% u8 ^" R% O
- (done_dialog 1)
$ _. A- w4 x. R5 @7 ]. d" w7 L - );if
1 k2 U+ h6 t1 F- n5 @ - );defun ltedit_act6 f ^; e7 {9 Z; C+ T
- ;;, C* M1 T1 o7 ?% e: J( `2 B
- ;; List selections end up here
" Q8 }0 c6 q8 P - ;;
3 k# M/ ?+ o p0 s9 o g! d, l - (defun ltlist_act (index / dashdata)5 D4 i: I1 W0 }2 ?# Y3 F4 d
- ;; Update the list box, edit box, and color tile3 X" y- b4 N3 \' w
- (set_tile "error" "")( m1 r6 V0 y! E V, S
- (setq lt-idx (atoi index))6 u( |; `. H1 k& A
- (setq ltname (nth lt-idx ltnmlst))3 g- o: |# Q7 v E7 I! A/ j
- (setq dashdata (nth lt-idx mdashlist))
' t7 o. y- `' ]' K0 b9 ~ - (col_tile "show_image" 0 dashdata)
, d3 r7 t' n" O! B8 N( b+ ]& Z - (set_tile "list_lt" (itoa lt-idx))3 \. k- E% V+ p* u* \ [
- (set_tile "edit_lt" ltname)
/ V6 `; L ]% u3 d3 a4 M0 d5 q - )
- {5 }# a) s* g - ;;
6 y) H5 H* `$ S9 e - ;; Reset to original linetype when cancel it selected" p" Q/ L, n N, w$ Z+ B3 Y( m+ q
- ;;
3 I0 a7 O* b! y: ]. W! e) ? - (defun reset-lt ()3 r7 f4 k3 F1 L- j; |! o
- (setq lt-idx old-idx)
P& }# G# C4 U% n- b* [ - (done_dialog 0)
+ Z: i3 m! g8 J& e. p - )7 ~: m/ F# F$ m' ^5 ~0 B
- ;;
/ u b; ~* `8 e% l - ;; This function pops a dialogue box consisting of a list box and edit box to
) w' i" L& |% i5 Q* J( Z0 C& F6 g - ;; allow the user to select or type a layer name. It returns the layer name) t" ?5 F: F9 w9 O. k) X$ J
- ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the
; V! W# y. Z" p t4 W& f - ;; drawing.
0 ~/ |, z* _6 } - ;;
2 E! |& d& _" ~6 ` - (defun getlayer (/ old-idx layname on off frozth linetype colname)2 V% p- j! d5 r) E, p- \7 _
- ;; Create layer list the first time the layer
* X# X- z( ^2 d5 o& J3 d1 Y; R( Z" \ - ;; dialogue is called.- s% `- `8 S2 V6 _3 _+ `5 O6 v
- (if (not lay-idx)
6 h, H' \6 G7 B% H - (progn
- N4 O8 f8 a/ R D$ j - (makelaylists) ; layer list - laynmlst* l1 z/ c( V) P7 S: Q0 k! r+ l4 V
- ;rk
3 N: ^4 `7 v, M% V - (setq lay-idx (getindex elayer laynmlst))
7 T* Y( K" t ^7 \ - );progn
- B Q+ h# {4 o1 `1 [ h3 ? - );if' B; s0 }# v& V8 a! o
- 2 ?$ ~/ {6 b2 x# [- W9 w3 g+ R
- ;; Load a dialogue from dialogue file; d: e) o9 z2 P1 X, x# @4 C
- (if (not (new_dialog "setlayer" dcl_id)) (exit))
6 F& a7 @/ F& _9 X+ T. s; A" W - (start_list "list_lay")" F5 ^7 a4 @4 ^8 p
- (mapcar 'add_list longlist) ; initialize list box
$ u- M! g- R9 }$ Z" i( _% A# m - (end_list)* m5 A3 G+ x; q0 ?5 S M+ p
- ;; Display current layer, show initial layer name in edit
/ t+ {' H% F9 R! c - ;; box, and highlight list box.- q/ @) D" V7 _7 J' D2 c
- (setq old-idx lay-idx)
" F& n6 v0 w3 y8 x; L - (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))9 J9 s% E b" t
- (set_tile "cur_layer" (getvar "clayer"))
5 k9 R* @; ^9 u - (action_tile "list_lay" "(laylist_act $value)")
8 M9 F( P0 ]9 r - (action_tile "edit_lay" "(layedit_act)")
* n$ ^7 N* X0 g0 y* J. N3 N7 m9 O" b - (action_tile "accept" "(test-ok)")+ T" [* t: K/ r" E9 y6 a
- (action_tile "cancel" "(reset-lay)")
3 ^+ F8 A2 M1 q. f$ r - (if (= (start_dialog) 1) ; User pressed OK
- N7 g- M4 k. m2 d) ^$ t. l - (progn4 P, P# k3 a& x& _# }! r
- (if (or (= lay-idx nil)% w8 Y% m8 `3 K
- (= lay-idx (1- (length laynmlst)))
; ` q6 J& P8 T. l) t4 X% N: B - );or" u9 l3 L; g: T& G- Y! J
- (progn
% P" q( a0 ?8 s - (setq lay-idx nil)
+ M( j2 R: U. L, r" W* p& v# g - (setq layname ;|MSG0|;"VARIES")6 z1 {6 V2 \) K+ V: S1 I
- (set_tile "t_layer" "Varies")# q E8 M7 d1 g0 `2 U( z& l4 @8 P+ L
- (setq layname "")
: f. u7 {1 y( n( O, E8 { - );progn" }; i8 S8 P; N( u5 _
- (set_tile "t_layer" layname)
, s l8 S: ^, p, \. B6 l! r4 {: H% ? - );if
7 @) v' U$ G: B# A! U% b+ m" k - ; If layer or ltype equals bylayer reset their tiles9 A" z6 d$ a/ @! s
- (if (= lt-idx 0)
0 [1 D. `+ n) o/ j: `. R" Y - (set_tile "t_ltype" (bylayer_lt))
0 M4 p, Y% H/ Y+ _% I - );if" a5 @+ P; J1 { k! S& n% A# }
- (if (= ecolor 256)
( L% g8 F: O3 o9 f$ Y* D6 E2 x - (progn9 y# O. t1 N. u# H8 _# G$ k" j
- (set_tile "t_color" (bylayer_col))9 r" O3 T7 P) Q$ g
- (col_tile "show_image" cn nil)6 g, C: ^- Z1 g( [& K; l
- )
; w3 [, C E" y8 I1 j$ ?( w# w - );if
' J& Q0 k* L$ o/ J$ L+ J - layname
6 L! B, D; W7 c! `. x! [ - );progn
9 Q* ^( ^1 \/ r9 C1 D - elayer
( P9 ^& y/ u$ t - );if
2 r9 C: K+ N, D- V3 T+ e4 l$ I4 m - )
) t# L3 `6 t3 z# j - ;;
6 ?0 K2 v. d/ L4 { - ;; Edit box selections end up here
h% Z8 B4 W+ a# Y( b5 i! n - ;;
' m! h n1 m J7 _0 { - (defun layedit_act()% G- \4 @. o+ g1 X7 t
- ;; Convert layer entry to upper case. If layer name is2 j" m9 k* Y& M
- ;; valid, clear error string, call (laylist_act) function,4 A6 J4 {) ]) Z/ V2 ?' o/ }
- ;; and change focus to list box. Else print error message.
0 Q5 r+ E, e3 c, O+ R - (setq layvalue (xstrcase (get_tile "edit_lay")))
. I: @( j) e3 V7 D- G4 q; x0 f - (if (setq lay-idx (getindex layvalue laynmlst))- R) e& b4 X! z* U) c7 L
- (progn
7 Q0 S1 A' s+ b Q: t! ~ - (set_tile "error" "")6 |/ S+ d( q$ r$ o
- (laylist_act (itoa lay-idx))
2 y3 v& p. _( A g" L - ) g; |% _! L3 b9 i: ?
- (progn
- i7 e c. E6 L' n3 D0 ]/ o1 Z0 y - (set_tile "error" "Invalid layer name.")
. s& k/ s/ o& f; c2 _2 i - (mode_tile "edit_lay" 2)3 C8 L6 Z4 O i1 i; }+ S9 a
- (setq lay-idx old-idx)' U# [* x) c7 _
- )
9 w- c6 B9 ]* p3 p) C8 x9 P - );if
4 M7 l' _, X6 X( H9 ?, u u2 l" | - );defun3 E% l8 H$ y5 }. k- e( N1 {$ N
- ;;
: d' I0 J- C/ T9 E, ]+ H' z L8 y8 u - ;; List entry selections end up here# z( H' w1 x: i/ ? P! B
- ;;
, O% l2 @2 K3 G. o5 Q. d - (defun laylist_act (index / layinfo color dashdata)
! H) i7 P( S& u/ S6 y0 R$ N2 o - ;; Update the list box, edit box, and color tile* J- }" N1 t$ J
- (set_tile "error" "")7 V9 Q5 T% v* c$ f1 L6 k. y9 {* p
- (setq lay-idx (atoi index)): h9 K# f% A; q5 s3 u+ I( d6 ^+ |; o
- (if (not (equal lay-idx (1- (length laynmlst))))
4 m. j$ P5 g7 v- h# o - (progn
]; N: P* f" k5 Y* Z - (setq layname (nth lay-idx laynmlst))
* t$ G" u6 D- q6 f6 G0 G - (setq layinfo (tblsearch "layer" layname))
- W" Z9 |2 O L; |( S - (setq color (cdr (assoc 62 layinfo)))5 k# A! O) C [9 b5 I: t
- (setq color (abs color))9 \4 ]: E u& k
- (setq colname (colorname color))" @. o8 \7 ?6 ? K& v; E* n
- (set_tile "list_lay" (itoa lay-idx))) @( f. [9 R3 s" R5 h) }1 b" I
- (set_tile "edit_lay" layname)3 |$ ?' P6 q4 F" G5 {
- ;(mode_tile "list_lay" 2)8 P7 Y, Q' {2 X( p# d) _& P
- );progn then
# Z. X5 U8 \( J( E - (set_tile "edit_lay" "")
( }- S w1 a$ P7 G u - );if
! B; Q1 y- c8 r0 a) ` - );defun laylist_act; I/ {! d" u) O2 x; k; K1 F9 f0 s
- ;;
9 g/ O4 n- ~4 U - ;; Reset to original layer when cancel is selected/ W: e7 X% S1 S0 ~
- ;;
+ w% u9 o6 \; ` - (defun reset-lay ()! ~( _8 N3 M( H; k F6 i
- (setq lay-idx old-idx)
# i/ A) ?( @/ _& V% i - (done_dialog 0)7 Q3 S" R$ ^3 f8 n7 L) Y
- )* \" \. i9 v, C% ~9 c% ]2 B
) [( T1 `: B5 E2 ` R3 r- ;; Checks validity of linetype scale from edit box. It checks to0 t9 ]9 m0 p. x" c
- ;; see if the value equals "Varies".
" k& f& G0 N5 _: x( ^, H; L, }
+ x) {- y) h$ V. r- b9 h- (defun getscale (value / rval)6 ]! l# o r: w+ i" |$ Z6 H- L
- (setq value (strcase value): j( P |$ m, \( h
- rval (distof value)' @1 h2 l4 y# n" m' ?
- );setq) B, H; x. ?2 Z) r1 [& Y
- (if (or (= value "")% K8 K- K! R/ D- z& z0 j5 x
- (> rval 0.0) ^" _0 s* X! e0 m/ {
- )5 w# q3 C8 V7 N+ [5 \
- (progn
; Q; r% r- T' G- T - (set_tile "error" "")
. u1 _3 u$ G8 ?4 | - (if (= value "")
" d0 S/ J! V: ~3 w - (progn
Q# w. S* x6 O' y9 I- \7 N - (set_tile "eb_ltscale" "")( r) ?- X. O7 }& ]
- (setq eltscale nil)
7 ?. u5 q7 R* c4 I4 k, P }" t - );progn then
: J, i* u8 ?' b# t0 ^ p - (progn7 J; ]# c, _* h
- (setq eltscale (distof value))
! @$ _# ?: O( Q5 } - (set_tile "eb_ltscale" (ai_rtos eltscale))/ d9 x1 q6 R! M: b4 a
- eltscale
: X5 V8 S; b3 g! W - );progn else4 j8 @9 A) Z! Y- _' l% B0 f
- );if
0 ^/ p/ }) M, ]% q1 o - );progn* q8 ^0 {2 i9 ?
- (progn
+ _! ]* \* \) c - (set_tile "error" "Invalid ltscale.")
- S( g) C) [: {' Q - nil
; m# G) ~4 f9 U p - );progn else
( j! e2 ^% }0 T0 N - );if- u' H! R0 Z: ~% y
- );defun
+ r, e t+ W& V1 O* ^* b - ;;0 X# S7 S) n0 }! D* j
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a
+ v: |' N& c9 q) l( ]% ? - ;; string can't be converted to a real, this routine checks if the first3 X% t' l9 H E9 T
- ;; character is "0". It also checks to see if the value equals "Varies".. l, b5 i) z" D: f- u
- ;;
5 s4 b) ~) ?* L - (defun getthickness (value)- }( j; ~# v/ s& P3 q* T; T
- (setq value (strcase value))
) Q7 E2 Z- [2 x; _$ K- T. c- j4 \ - (if (or (= value "")
3 l- ?0 f" v+ b - (distof value)1 v4 z/ C6 u& Z5 ^( H
- );or- b6 M% ?. O' J( s J7 p
- (progn
7 [9 }# x: e: @ b! V4 {6 c. q& `8 ^3 I - (set_tile "error" "")
8 L( o9 C! J! n0 A% y. v: y - (if (= value "")
# D) m6 W1 V2 A5 m, _" h - (progn# Y6 |4 N9 l; A
- (set_tile "eb_thickness" "")( {' o+ v8 f( D1 j1 f5 S( U5 Q* d
- (setq ethickness nil). D4 R* z! _3 \8 Y
- );progn
2 }7 t% m$ @/ x - (progn2 m0 [& J5 V7 Q+ c
- (setq ethickness (distof value))' ?5 t) r; \% }& S
- (set_tile "eb_thickness" (ai_rtos ethickness))
. `( z% D$ O1 `" x/ X( v - ethickness
6 }9 i2 `# g2 { - );progn
% w: k P$ ?- t3 Y( U - );if
6 A2 O; Y& a0 U: W2 A, f - );progn
2 C/ |! o$ Z: D3 x( f - (progn
- z* `, ^. K: a* Y0 t8 a - (set_tile "error" "Invalid thickness.")5 n( A9 F, m9 m5 O6 z+ u
- nil- v* ]# p: c# w, J Q
- );progn
7 @+ w4 o+ B, d6 ] - );if+ j% X% z. Y, S
- );defun
0 I: c4 g$ b8 | - ;;1 N( l6 e9 T. u" q& z
- ;; Checks validity of polyline elevation from edit box.8 e' K% l4 H2 _( q$ J! r
- ;;- P6 E0 Z2 I' a) ]6 X8 z* \8 [
- (defun getelevation (value)
( J/ O% m4 L9 B& A' e* G- K9 N - (setq value (strcase value)), t% h1 _: u, S& H1 X5 p
- (if (or (= value "")
% a9 q0 R5 H% J- c - (distof value)( V- @% c' s% G( O/ ]- _
- )
! D$ B5 r) [- K$ I - (progn
; ?; ~+ q3 B9 z3 C8 \) D1 a! x - (set_tile "error" "")- }' d7 Z/ R/ \
- (if (= value "")
# a5 a1 \! \- C9 ?! q' P. w4 j1 M - (progn
9 o' I: V7 {; V8 b$ k - (set_tile "poly_elev" "")" k, f' F8 Q/ ~0 G: b! d$ T
- (setq eelevation nil)' N6 ] ^3 R* V4 Z& R' k/ e
- );progn
, O2 K& m+ f2 B# A - (progn0 b) V( ^3 o y) Q
- (setq eelevation (distof value))2 d- d8 ?+ O! K& `# C+ u i
- (set_tile "poly_elev" (ai_rtos eelevation))6 | H7 h3 E: X9 \
- eelevation
7 h: t1 O) j# u2 I0 B% s - );progn+ B6 e3 E% S0 V# h$ O
- );if
9 ]3 I3 |* P: R% Z$ B- c2 B' T7 M - );progn5 r7 d9 t+ _$ J: B
- (progn. j1 Y7 v( w+ I9 A3 v
- (set_tile "error" "Invalid elevation.")
" c2 M3 t6 S9 z - nil
* ^% c) R; L8 R - );progn
/ c& d4 [& c2 J: u! K - );if
. _" p3 D& I( G1 ~8 m% n - );defun5 v' d4 G, n2 w4 }2 U3 I3 b
- ;;
( }+ v; v$ H4 t8 ?0 x: Z - ;; Checks validity of polyline width from edit box.
7 _2 B# f4 d( A; g% _ - ;;
9 Y& ^" a& d: C4 H' ^. z# u; w - (defun getwidth (value / rval)
* [2 w& k- D' |8 `, M# P8 N - (setq value (strcase value)
# W/ K! J6 T# C: M7 q - rval (distof value)
?3 T* ~' d R" ^: O: p - )
2 F& b! _9 A- ~. R- v - (if (or (= value "")% }1 ~: @# |8 y% J5 X
- (>= rval 0.0); k% f4 F( V* }: g
- )
6 u4 X: ~ r. w; |8 v/ x# e - (progn
) U2 p7 }0 h% G W3 s - (set_tile "error" "")
# u/ v8 K3 |7 P* T - (if (= value "")2 t9 L5 o6 E1 d5 ~6 B n
- (progn
4 v* W- l9 }6 b6 @ - (set_tile "poly_wid" "")
4 j0 b i) l" N# q1 E - (setq ewidth nil)# x, Z4 K& w- @. ]5 C
- );progn
# T8 s. C, }8 `! B7 V3 d0 t - (progn
R/ L/ @3 o4 I& _) |5 m - (setq ewidth (distof value))$ ~/ }. M9 [8 l& H1 C
- (set_tile "poly_wid" (ai_rtos ewidth))/ d: }7 c) a( y) K7 u6 m
- ;width
) I* E, c. Y: t/ A - );progn; Q8 A: R( m$ x4 n# i; q( ^2 ?, ?
- );if8 W" @9 B: }6 J- w" f% S
- );progn
% A3 W; Q5 q5 |! G ] - (progn
# X# }8 v8 j- V: | - (set_tile "error" "Invalid width.")8 s7 U; W+ e: F: P9 o- E
- ;(setq ewidth nil)
3 l. m2 H' H. W1 v - nil L. d. p2 E& s, p
- );progn
/ F4 z* d* P( D7 N8 e - );if
9 Q$ ?" F3 G$ x. Z" A1 S& f, ^0 w - );defun
r0 R2 L: n: a ^" K% n8 k+ B* u - ;;
0 J6 b+ @) F8 B, D1 r6 V; V - ;; Checks validity of text height from edit box.
6 w7 q& k3 G$ w, l- X N. w - ;;
- t1 m$ w' u9 l9 a - (defun getheight (value / rval)% Y x O4 S* s& S
- (setq value (strcase value)
1 ~/ C4 Q7 g+ d* h4 L# E - rval (distof value)
5 Y3 H" b: k1 c5 ? - ), j- l8 N2 V2 X) |7 o/ C4 Y
- (if (or (= value "")
6 V) y+ z( x# Y3 x' F8 O - (> rval 0.0)$ b, D2 ?7 n4 x! E1 W0 [% S+ a. g
- )
% W! Y( ~5 e2 ?/ I& S: i - (progn
8 C% B: i7 i$ g2 x/ C h* ] - (set_tile "error" "")! g- b( p) F1 N& j p
- (if (= value "")
/ ~# |5 `, B1 K" v. u0 I - (progn
- x# y5 E" T% H0 S0 o - (set_tile "text_hgt" "")
& z$ q$ k7 X4 R* _( q* ^ - (setq eheight nil)) z/ @: U$ s p- p; [
- );progn
* p' G; ^9 Z/ T6 k" S5 k - (progn
& f4 }! A# I& l3 O+ }3 | - (setq eheight (distof value))
' f9 `# i8 r9 }( a" q7 Q( c/ U - (set_tile "text_hgt" (ai_rtos eheight))
: P3 T* w, K# Z" t8 t) F, F - eheight
1 P: g P. B- A5 R, h - );progn7 h6 @! Z3 B, H
- );if
0 r( k9 }) Y9 x, `* T; {8 ]! J - );progn+ r6 ]% N& z# s2 K5 C" q+ ]
- (progn' j" v& [0 H- G1 b* `/ T5 w" t
- (set_tile "error" "Invalid height.")# f& R, X- [% L X6 C8 }
- nil6 _8 O |! w# b2 C( ~
- );progn G1 A4 ` a& V) P6 T- v) o! N
- );if2 j/ t/ P# l3 Z. O) e
- );defun
1 V$ Z' t, s# @- I
( U, @, R0 x, E9 P, U+ k p# @& ~- (defun getstyle (value lst / rval)) @* F% r1 L0 [" n: S
- ;(setq value (strcase value))
8 i2 i5 R# Q; L4 X8 j9 B5 w - (set_tile "error" "")2 | ^- Y7 }. k5 C# Q
- (setq estyle (nth (atoi value) lst))
' O+ t( E) S, Z- l r - (if (equal estyle "")
0 y' q6 X! Z# B( q; y6 C- B. } - (setq estyle nil)! k3 T4 ]; u7 ]6 j; M o v
- );if& N4 y8 j0 v0 }# f, V- B- q( Y3 I
-
9 X9 _' W: g. i% ?& D: H) h - );defun getstyle' n2 D3 t! i; S: [0 | W! Q
0 V3 h% c. c2 K$ k6 v0 Q& s9 v- ;;
4 y" T" P* h) z3 ?- l - ;; This function make a list called laynmlst which consists of all the layer9 ]" {9 P3 n" i9 l0 T
- ;; names in the drawing. It also creates a list called longlist which( V: ]. l: i( D; R7 G! ^, Q
- ;; consists of strings which contain the layer name, color, linetype, etc.' X, Q, U6 }* x# V9 q
- ;; Longlist is later mapped into the layer listbox. Both are ordered the
* P% A/ N$ ~% O) @2 d9 I& Q - ;; same.* S H, s5 o# C" k/ h3 R* A& h
- ;; m* V) s+ u; T6 C
- (defun makelaylists (/ layname onoff frozth color linetype lock vpf vpn ss cvpname' a& [" ?$ S4 ` l3 A
- xdlist vpldata sortlist name templist bit-70, H! ~: c) a* R/ F
- layer_number2 y: Y$ t) e9 T
- )
$ E2 U# z$ Z" k5 o4 x" v( w4 P: T, A) U - (if (= (setq tilemode (getvar "tilemode")) 0)
0 _ k5 P V/ A9 a% p - (progn9 _6 e( @1 D* i( h
- (setq ss (ssget "_x" (list (cons 0 "VIEWPORT")6 i1 M, A; b. c' {# n
- (cons 69 (getvar "CVPORT"))* @! u& I: O5 V3 p+ |4 |& E
- )* r# x0 \2 l# V# e" x9 _" x
- )
. F8 F9 G V5 S; C9 _ - ): i+ ]7 ~' p0 @, H& k8 F
- (setq cvpname (ssname ss 0))6 d: [/ ?3 L, m) i( B6 u
- (setq xdlist (assoc -3 (entget cvpname '("acad"))))
, e6 J7 r. B, t) j/ G4 D* P* r - (setq vpldata (cdadr xdlist))
: x9 G; X b( c9 @ S s r - ); [( K' C( ^6 L2 M: E$ N+ E- m
- )
" F7 ^% M8 X" ? d( k) v- V1 W- P - (setq sortlist nil), _0 b: p/ D0 ~3 E
- (setq templist (tblnext "LAYER" T))* a+ x: a7 g0 A E8 x
- (setq layer_number 1)" U- B3 T. }5 \! W1 L( D9 [5 N, ~
- (while templist
' l, M$ V3 P' f$ t - (if (not (equal 16 (logand 16 (cdr (assoc 70 templist)))))' u; u t% D% u" m
- (progn 5 [* u+ ~. j9 v8 E5 K
- (setq name (cdr (assoc 2 templist)))
" ]9 u. n6 k& _4 @: \7 n' ]1 J - (setq sortlist (cons name sortlist))
) @3 n2 y8 Q) p8 R2 @; { - ;; Not dead message...
+ M+ T) |. K/ j0 a) \ - (setq layer_number (1+ layer_number)): i+ x0 l- y/ Z5 Y+ L# y. m$ L
- );progn# P% t6 J7 c9 r6 q6 K* ^
- );if
( p5 E- T7 R( c3 D3 X" r* Z# k# A - (setq templist (tblnext "LAYER"))
7 A# a8 E; [2 u1 w: [2 M - (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))8 ~# D% a6 v& u' [
- (set_tile "error" (strcat "Collecting..." (itoa layer_number)))
+ J- V+ L* {* `# e3 d3 `8 Q- e - );if, \. N% o1 a$ f& h
- )
% r& t5 p! \! c4 [: e: g - (set_tile "error" "")6 U- {: o) _, l: [, ?% U) _( X
- (if (>= (getvar "maxsort") (length sortlist))! Y% s. C; f6 t+ ~( u8 z
- (progn6 W0 ^( j. z+ d/ R2 |
- (if (> layer_number 50)8 J# x9 E4 P- v: l, o" g( }
- (set_tile "error" "Sorting...")
6 Y1 C0 D. }# @& Y$ {; ^ - )
# ]% D- B4 |; u9 F - (setq sortlist (acad_strlsort sortlist))6 S6 J# ~4 C; F" ~7 V
- )
) P0 u1 M- U" c& O3 W9 f - (setq sortlist (reverse sortlist))
( x2 p) H |& H - )
) a# O+ `. Z1 e6 |. V - (set_tile "error" ""): K4 S8 \4 U7 c* h4 z' [
- (setq laynmlst sortlist)
7 O, P/ f' [3 o4 b - ;rk ! T0 u2 k9 j- }" {
- (setq laynmlst (append laynmlst (list ""))) 2 `& g3 h! X4 H# W3 W
- 7 I- n$ |% d+ V! i4 C- \3 m, U
- (setq longlist nil)$ {! ]9 ?' H! e+ M
- (setq layname (car sortlist))+ s$ q+ p; s5 W7 {
- (setq layer_number 1)) ]# O' `5 l3 s- m- A6 E5 x
- (while layname
8 f# i' J5 X$ E: U2 ^# G - (if (= (/ layer_number 50.0) 8 V, q1 a- K4 e5 A
- (fix (/ layer_number 50.0))
/ i. u# g6 B# I: V0 o - )" b! n6 x' E0 }7 B! U1 z
- (set_tile "error" (strcat "Analyzing..." (itoa layer_number)))! R) k& b! h0 ], }5 |2 w( U# Q
- );if0 _; r! O' X% S7 Q+ Z* b
- (setq layer_number (1+ layer_number))) H4 |) A0 r1 ]) b c
- (setq laylist (tblsearch "LAYER" layname))
# m6 B9 B9 H" H1 G! J7 _& p7 ]5 K - (setq color (cdr (assoc 62 laylist)))2 d/ I9 L9 n! u1 C- R+ F) H7 y
- (if (minusp color)* T* Q( F8 N5 g+ D, o
- (setq onoff ".")- K7 H4 E' l: i; e3 |1 u3 H" G
- (setq onoff "On")
3 N, ?3 b. v. Z( Y* X6 G4 Q - )# K* }4 Y" M% `; K' J' Z- U& w5 S
- (setq color (abs color))
8 E" Y. Y& v# |0 v2 L - (setq colname (colorname color))
/ v. h- t& y" F7 i0 ~- Z+ d - (setq bit-70 (cdr (assoc 70 laylist)))
$ T- j3 F1 H7 V - (if (= (logand bit-70 1) 1)
`* d1 f) p f. |) e9 }! B - (setq frozth "F" fchk laylist)
" L9 j! B) \+ W5 o, d - (setq frozth ".")- f5 O+ v- H# ~9 G( e5 S
- )8 w5 e" f ?5 v2 q
- (if (= (logand bit-70 2) 2)
2 {+ C$ p* [; i3 W+ n6 v - (setq vpn "N")
& `2 E' c0 M G - (setq vpn ".")
X/ r9 D( R2 _2 x: e2 p - )+ \ l G* R5 x8 W
- (if (= (logand bit-70 4) 4)
$ v: c' E# w( l; C0 S6 g - (setq lock "L")
8 C% ~2 E1 z$ a0 r - (setq lock ".")
6 c& E' c2 S% s1 t1 Z6 b - )
* }; `* D( z9 O9 T& \ - (setq linetype (cdr (assoc 6 laylist)))* T5 i2 B' Q) K6 r8 Z. C4 U& Z) c
- (setq layname (substr layname 1 31)) E1 R: h8 J9 ?( H$ G( j1 R% [
- (if (= tilemode 0)
, }8 w6 C% b V! n4 R - (progn
! v- ]( i$ V8 k+ o& c* z. }0 v - (if (member (cons 1003 layname) vpldata)( v; i& m" A5 w: \; ~( e9 \
- (setq vpf "C")
1 ?) G& W( }+ Q# A7 b - (setq vpf ".")8 `7 c# Y7 b! }+ w
- )4 i* k6 v/ a e+ c& G: \: z
- )5 c3 O- j' d" @( i4 i
- (setq vpf ".")! u2 ^" I% A$ h. E4 O% O. y' h% [
- )0 r; Y& E, \ J7 K6 X) }
- (setq ltabstr (strcat layname "\t"
; \+ s1 I! X' e - onoff "\t"1 g( ^2 O2 O* l; h, R2 } ~' s6 g
- frozth "\t"- X9 p$ q$ T1 X( _" q
- lock "\t"8 x* V1 v2 l- H
- vpf "\t"1 ^5 e c; I$ p0 v: c
- vpn "\t"
7 W- w- C( ?0 ] - colname "\t"7 E' C0 i. V! v/ t
- linetype
8 E8 M- D8 R1 j8 [ - )- P* [! M* _. k% J) i3 K4 J/ H
- )
4 V4 d# k1 V J4 I, f' B# w6 J - (setq longlist (append longlist (list ltabstr)))
; w2 T: ?2 {+ ?5 d4 e$ q- l4 ? - (setq sortlist (cdr sortlist))
0 E* D3 Z, p$ y - (setq layname (car sortlist))
e8 G9 j( s% c' d - );while
- e( P* d. ?3 Y/ k' e, U - (setq longlist (append longlist (list ""))) n6 r5 t$ i, N W+ M% S
- (set_tile "error" "")/ s- w8 ]0 U1 e* A
- )3 m# V' u! R% Q* b
- ;;+ p! j: S3 }2 S2 p3 S) `9 K( A' c
- ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
: x/ c% S- P9 ^8 t - ;; linetype names read from the symbol table. Mdashlist is list consisting
Z! W! a7 [5 {8 r' ~ - ;; of lists which define the linetype pattern - numbers that indicate dots,. Q7 H8 O ?! u( a }% Q
- ;; dashes, and spaces taken from group code 49. The list corresponds to the2 r+ t1 k! l, y! O; c: {% @
- ;; order of names in ltnmlst.
9 E, K8 a$ w$ m- f; l1 [ - ;;! x J% C1 @. S6 B+ ^+ z X/ Q
- (defun makeltlists (/ ltlist ltname)( [0 k8 n' F& a2 L$ a
- (setq mdashlist nil)
+ m/ `& v' N9 r- Z$ M( l1 c% \ - (setq ltlist (tblnext "LTYPE" T))
) X: u" p! Y! o% ?4 H - (setq ltname (cdr (assoc 2 ltlist)))) V7 Q7 f* k) Y4 c( v
- (setq ltnmlst (list ltname))- m& L$ o* _: G8 v8 u. n4 ?7 t1 ?
- (while (setq ltlist (tblnext "LTYPE"))
# e o. X6 h/ F - (if (not (equal 16 (logand 16 (cdr (assoc 70 ltlist)))))
* E! {4 z) A E- J$ c - (progn
, Q8 _2 w& n+ b9 L - (setq ltname (cdr (assoc 2 ltlist)))7 O. J @2 T* i2 s
- (setq ltnmlst (append ltnmlst (list ltname)))& { {# U( f2 H: E3 j
- );progn
7 }2 d. T; y$ N( u. m' Q - );if 7 F# s- ~+ X; |7 F2 y' P
- );while0 f7 z5 @$ e/ V6 o+ E. W
- (setq ltnmlst (acad_strlsort ltnmlst))
/ b/ y/ x8 O4 M) `& n4 k - (setq ltnmlst (append ltnmlst (list "")));add by rk * W+ F5 u, v4 }7 T3 t# |
- (foreach ltname ltnmlst) {# d0 z6 k# c& y) F, o
- (setq ltlist (tblsearch "LTYPE" ltname))
9 m3 v3 g# C9 }* T, }& C - (if (= ltname "CONTINUOUS")
% L& n' [( D+ {* D - (setq mdashlist (append mdashlist (list "CONT")))1 ?8 _/ F7 _8 E1 h8 c" l1 `4 U( Z
- (setq mdashlist
5 W" A! m, n6 o8 \3 C$ E/ l - (append mdashlist (list (add-mdash ltlist)))( m6 d/ i4 a$ ?: j% y
- )0 l4 V: d/ E |& ]+ N
- ). R( i4 ]7 S- V
- )2 }. W" C& o W+ B: o- B
- (setq ltnmlst (cons "BYBLOCK" ltnmlst)); |9 B( Y6 Q3 U4 |5 E; O1 H
- (setq mdashlist (cons nil mdashlist))
* z5 L* G# X7 B$ y% B3 T - (setq ltnmlst (cons "BYLAYER" ltnmlst))2 Y' }; N0 g0 a$ C+ Y# i$ F2 r
- (setq mdashlist (cons nil mdashlist))8 Y" h2 q* n7 h! U* L9 r: h5 T% r
- )
2 Z) _& K4 J+ s2 v: V4 \0 e - ;;
l/ d7 g% l, |+ P# [& c6 P* V# l - ;; Get all the group code 49 values for a linetype and put them in a list
! C* ], j. d C" P3 Q L - ;; (pen-up, pen-down info)
$ r4 I3 e( J. P$ j - ;;) B' K) l, z' v* f. ?- }2 e
- (defun add-mdash (ltlist1 / dashlist assoclist dashsize)$ }. f9 d2 X o, |' a# |% ^- R' v' O# {
- (setq dashlist nil)
1 r, R! N* ?' { p - (while (setq assoclist (car ltlist1))
% V2 I! G$ m. w- B9 q8 [' a - (if (= (car assoclist) 49)- h( k, x) s4 ], w1 j. H
- (progn
9 J8 s, ]( Y) w% Q/ Q" G4 S0 x - (setq dashsize (cdr assoclist)) ]$ h& d2 G0 |" Z, O6 [
- (setq dashlist (cons dashsize dashlist))" c3 X6 r1 W8 K9 q0 s% U- S- P
- )4 F: ?0 l4 [+ u4 `2 N- v# c3 J
- )* Q) D! H9 T+ A( Q: I$ o
- (setq ltlist1 (cdr ltlist1))4 H* I' G$ g: j% ?- j7 `+ ?
- )" b' U! g0 @2 |3 Y+ D7 p1 }9 S
- (setq dashlist (reverse dashlist))9 A4 g" F$ x/ C' H7 K
- )4 [1 f- b0 g! }3 R9 \
- ;;0 B2 q! S0 H. j( Y
- ;; Color a tile, draw linetype, and draw a border around it
% i8 s! D/ {4 B( @( ]% X1 O; O! v - ;;
+ [& ^" P# y! }+ `5 J - (defun col_tile (tile color patlist / x y)
% v+ M, X. x7 F% Z# z: e( o- ^ - (setq x (dimx_tile tile))
4 ~* G9 Z: j# C& _# U* w - (setq y (dimy_tile tile))
' s# T6 p) U9 J3 s" p, A3 K0 z - (start_image tile)
1 T, Z" h. A( V v" R3 H3 P - (fill_image 0 0 x y color)/ M5 f' I% D( H
- (if (= color 7)
$ @$ K" m b2 s2 c/ W - (progn! f: A3 B) a8 F
- (if patlist (drawpattern x (/ y 2) patlist 0))
9 D4 H+ }$ x, a5 ^2 m' a - (tile_rect 0 0 x y 0)( }4 u. d7 D P7 F X
- )" G3 l$ ?; A. k' E; u# X
- (progn
( V' m, X, v3 c0 k) M7 R - (if patlist (drawpattern x (/ y 2) patlist 7))
9 ^ Y9 q! I& M/ H5 P6 m" D - (tile_rect 0 0 x y 7)
* B* c7 e/ R2 ?2 ] K - )
$ Y4 {. }" @* g$ [8 }: I - )
# ]9 \% m% k( Y' U4 \ - (end_image)
0 u& M$ a+ T8 o4 g - ): y5 Q0 Z+ N$ \3 ~
- ;;
! W( _8 {; g1 r9 w - ;; Draw a border around a tile
6 B& W" ?4 v) ~4 x# c' k - ;;$ K& o- x" ?3 s7 R. {* q
- (defun tile_rect (x1 y1 x2 y2 color)
* a$ }% Z. q; O7 @) v& [ - (setq x2 (- x2 1))1 j4 R; b) d a2 M! p" \
- (setq y2 (- y2 1))
* ?/ u4 I/ W" Q! o6 U$ Z( K - (vector_image x1 y1 x2 y1 color)
5 K, J" @, @. q2 m7 X - (vector_image x2 y1 x2 y2 color)8 Q- C. s4 \/ x# m2 [: ]
- (vector_image x2 y2 x1 y2 color)
) k! j7 Q6 l f4 ^ - (vector_image x1 y2 x1 y1 color)
) o; T- u8 F5 b( ` - )
# P" _9 y1 v" F! u$ `+ ^ - ;;7 S2 o2 ]0 w" U+ w; ^8 j
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
' L, v, C+ a+ l$ D. x, f: t; D - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a0 W- Y9 r }$ ~# V
- ;; list of numbers that define the linetype, and color is the color of the0 K1 n1 U0 P% H
- ;; tile.
1 i- {, v$ j0 ~6 k$ a. J6 L - ;;
* l# C' S: l% a! ]4 i/ G - (defun drawpattern (boxlength y2 pattern color / x1 x2
! ~$ N/ f9 k9 K) [4 _ - patlist dash)# b I& F/ o) J7 Q
- (setq x1 0 x2 0)" K$ \3 i, B1 Y( `, y+ z5 z7 T- X! H
- (setq patlist pattern)1 \' L3 h, s2 B, t1 q+ J7 u0 K
- (setq fx 30)
0 N' n0 {. c6 C f+ q - (if (= patlist "CONT")
( u0 g2 h5 S: ~! h6 D" b/ \$ v5 R - (progn
* `% E e6 j+ y% [ - (setq dash boxlength)
/ ~ q4 c. J- k" L6 X8 Q0 x - (vi)
; i/ J5 ?5 O# k - (setq x1 boxlength)2 d# \5 r. W# u2 T/ v* g
- )
9 W' |( p. s6 R( E0 p - (foreach dash patlist
! W" j' ?6 }- S5 p2 @: | - (if (> (abs dash) 2.5)
) h# T, |; u# I( J3 ^& V$ Y7 H - (setq fx 2)
3 K* D. _' L6 c0 ^( d - )
+ Z, b5 e, {( M+ l# u% t - ) ?$ l! g; E/ h1 E7 b' I8 a h# }
- ). B- r$ C; K! h6 W" ^" }: d
- (while (< x1 boxlength)
' d" u( ~# s0 e% C! H$ i - (if (setq dash (car patlist))
5 f0 {' [0 E" E7 Q - (progn; w( i0 u- {+ M# U) A! Z# {( o
- (setq dash (fix (* fx dash)))
5 ~8 K, E6 X/ o- {; L - (cond% H* U. [+ ?8 T
- ((= dash 0)
: s5 B" d8 L5 J, N6 Y - (setq dash 1) Q1 ]% ]# V# |; g$ c
- (vi)
7 h2 G6 [3 m: s- x" k4 J, k3 T - )7 q+ ] ^; b( I9 N c) y1 T
- ((> dash 0)
! S2 o' D e* T) [% Y2 D: D, W - (vi)1 r+ T1 E+ p/ X' J2 P- P7 x
- )
# Z, s4 u1 v/ l i - (T! x$ G2 c' @5 o+ E& p0 i2 O
- (if (< (abs dash) 2) (setq dash 2))
" o" }) P: U! T) M9 u - (setq x2 (+ x2 (abs dash)))+ y* U# r Y1 r2 m) P
- )
: ~& t* A: M" x, h4 f8 W; R+ u - )9 Z; B& s7 j( F$ w
- (setq patlist (cdr patlist))
- S' [7 n) S5 }3 b& n! S - (setq x1 x2)
3 S1 ~2 I. n1 n" q" x - )
8 {8 N) a/ C4 X - (setq patlist pattern)
8 k8 v# \- I: a5 z! H% c* W T - )
" I4 u' m+ H9 V6 K8 ]% G- h - )
& x2 X. \$ h0 r- I; ]2 O! f6 V - )
# |2 m' m& @ N - ;;( J- g+ [7 H# j
- ;; Draw a dash or dot in image tile1 _ m0 A* N# T v [
- ;;
/ q# P6 _( X+ ] - (defun vi ()
# O- z" i: y, Z. m! v# W; v( p+ R2 J C - (setq x2 (+ x2 dash))
+ b) j+ O9 b! k3 W5 u) {% D - (vector_image x1 y2 x2 y2 color)
, t. Z1 ?, J: O+ A/ X- |$ @8 b8 G - )
+ G8 [& P Z! R: j/ [
: p+ V* Z/ g' m! b1 r- ;; This function takes a selection and returns a list of the color,
' `2 r) Q0 T; ~1 N% [- r# m - ;; linetype, layer, linetype scale, and thickness properties that
; @7 r2 y# P1 b# Z - ;; are common to every entities in the selection set - (color4 C6 `& P0 ]. D+ X' L& d
- ;; linetype layer thickness). If all entities do not share the same7 w+ g4 d/ y8 b- b* M9 m1 l
- ;; property value it returns "Varies" in place of the property
7 I( e1 t9 i; a( Q, @ \ - ;; value. i.e. ("BYLAYER" "DASHED" "Varies" 0)
. X, I+ C' X) u z1 r! {3 | - ;; The last item in the return list is an integer flag for the
( }; x' [" T- a - ;; homegenity of the selection-set object types.3 [: P. I' ]5 s, C* e1 w) E
- ;; 1 = All polylines( b% c+ o# m2 W7 T4 o/ d
- ;; 2 = All text or mtext or attdef, or a combination of the three4 S3 t( T4 |# G3 c( [
- ;; -1 = Any other mix of objects9 R: E2 L: j3 q% h5 W4 t
- 3 L0 U m% [$ B
- (defun getprops (selset / sslen elist color ltype layer ltscale thickness
( U- ^1 V% x6 }8 v - width elevation height go ctr & N& e* x/ D. o
- eflag
- ^' d1 }3 c! O - etype temp 5 U# y% U. d! G5 s2 s; _
- txt_ss ;;;;rk 11:24 AM 1/30/97
. b G' T( F" r - tmp , L8 _2 \) y- r2 E& V
- poly_ss
2 v8 g5 X; @$ q9 F# w - style
3 U t5 J% `1 @3 Z$ H - )
2 ~) h; o2 {- Y( X: m+ i - " \* V; Y1 ~8 w
- ! A: }# b/ F0 P" F& i2 h! V) \
- (setq sslen (sslength selset)
1 t# p! k6 t, h. h - elist (entget (ssname selset 0))
# a. I& Q9 o$ s) R, _- Q6 W - etype (strcase (cdr (assoc 0 elist)))$ X3 {( J3 R6 ~, }- ~: P9 B! X9 M
- color (cdr (assoc 62 elist))
: F ~+ Y4 ~0 [$ ^8 J( B. m - ltype (cdr (assoc 6 elist))
% w; e* S. D9 c* _) Y# G - layer (cdr (assoc 8 elist))+ J$ ]8 Z& u2 ?! g" H. u3 b" [
- thickness (cdr (assoc 39 elist))) e. e! l* ^# Z& ^, q
- ltscale (cdr (assoc 48 elist))" I4 L$ Q: e2 r) a U v
- );setq& D+ P( o* i& q, S9 x2 G
- 4 ~5 f* B# E8 ~6 q
- (if (not color) (setq color 256))/ p$ B J; i: f& X( m* n' E2 {
- (if (not ltype) (setq ltype "BYLAYER"))
& ]0 P) o) |1 [5 e! X4 ]& R) z - (if (not thickness) (setq thickness 0))0 w) P/ ^4 X& K4 w3 W# K
- (if (not ltscale) (setq ltscale 1))" ?1 n6 H5 d% z' t" V1 l& h
- ) c8 ?2 z. h/ V+ s* e
- (if (not width) (setq width "")), x) Q7 v6 R$ g
- (if (not elevation) (setq elevation ""))( D! v; y/ e$ h7 A; H# t
- (if (not height) (setq height ""))% c# X D& W5 w3 c5 C+ S Z
3 I# w- P9 V2 ` V) L. @% T- (setq go T - Q( M" v/ \; K; X- [7 I
- chk-col T , B2 H. d8 `2 Y5 L6 Q, \" @6 c
- chk-lt T 2 [; a& K. k; X
- chk-lay T
# b% Q- Y% B+ h2 q$ J - chk-lts T
$ z1 }7 M0 M$ c( _& B! g5 m - chk-th T * N$ N& ~& Q `
- ctr 0
& L W2 P5 g9 J9 S& ^ - );setq
& x& I4 o2 M: ^' m8 t4 M! V6 o2 i - 7 d+ C E: E: T, ` Z
- ;; Page through the selection set. When a property" c3 p% ^: e# A( k
- ;; does not match, stop checking for that property.
0 y: Y1 h3 j j5 c8 o - ;; When the selection set is not homogenous, stop checking.7 w7 d1 K* i( f: n( a
- ;; If all properties vary and the set is not a type 1
5 o y `' E# t - ;; (polyline) or type 2 (attdef/text/mtext) set, stop paging.$ @, N, W( }0 o$ x4 V( l
- & D y/ o' v( T
- ;Lets set the eflag so we know if the selection set includes any
, F# g) Q' ]( a* Q - ;combination of polylines, lwpolylines, text, mtext or attdefs.- T/ w: N1 s: Q
- 8 {4 a! r0 z5 w. P
- ;watch out for 3dpolyline and 3dmeshes here! @rk 10:17 AM 1/30/97
% m4 p* T" ~; {1 y) q" M - (setq eflag 0)- x# N' U3 b0 N
- (if (setq poly_ss # w. U3 F8 e; P8 ]) l/ a
- (ssget "P" (list '(0 . "*POLYLINE")
6 d5 [0 g1 d! b3 h - '(-4 . "<AND") 9 r" j/ g, t; ]
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 8) '(-4 . "NOT>"); E9 e6 u6 B6 G* g( p, }
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 16) '(-4 . "NOT>")
+ L+ l4 u! c2 n* s& _ - '(-4 . "<NOT") '(-4 . "&=") '(70 . 64) '(-4 . "NOT>")
( M! g2 ^. Z, N: N" \& t - '(-4 . "AND>") " t# j+ C( p( i: ~* ?
- );list! @- b7 [5 h5 G: y
- );ssget get 2d polylines (legacy and lw)9 O5 }/ ]$ ~4 D* |# ~- R
- );setq
0 m% u( f" M$ I2 E - (progn
& b- _( A; F e' M, s - (setq eflag (+ eflag 1))& K( ~+ |/ b0 P+ x- @8 Q% a
-
; D4 F1 S* y* a( S( f% H: ? - (setq tmp (entget (ssname poly_ss 0)));setq
6 A* W. o6 Q2 T. R# w* |4 ^ - : ]/ ?# P5 _3 q* T; v2 v/ q& X( }1 P
- (if (equal "POLYLINE" (cdr (assoc 0 tmp)))
% ^6 G" i1 v, E* B9 Y - (setq elevation (last (cdr (assoc 10 tmp))))- |; {, A9 L& H d5 h
- (setq elevation (cdr (assoc 38 tmp)))
" W* b8 N E) a4 n1 H# ?6 [ - );if
' y3 `, j0 M t9 q/ ]1 o - (if (not elevation)
- `( D4 b. I% _2 \1 o - (setq elevation 0.0);setq
! I$ d: N, a; c$ s2 U( T7 r7 E h3 i - );if
- @! y' H! p' n) A+ j6 x - / W) l, m% ?( ?! r
- (setq tmp (ssget "P"
! ?$ T% ~% f. O* E8 E% _' m - (list
( o+ m5 N9 a5 ^) K - '(-4 . "<OR")
1 x6 E F9 i8 I, A% W7 u - '(-4 . "<AND") & T% k g7 t0 T* \
- '(0 . "LWPOLYLINE")7 k m) j5 X. h8 O8 V! n2 ]9 h
- (cons 38 elevation)5 M% d/ Z6 f& f/ P s
- '(-4 . "AND>")6 t# t$ B7 O4 p
- '(-4 . "<AND")
2 k- n' A* N T& V - '(0 . "POLYLINE")
( M0 Q( L% s& ^8 ] B6 S3 i- s - '(-4 . "*,*,=")
& [) a$ H& [6 `1 ^ - (cons 10 (list 1.0 1.0 elevation))- ~' c% P( @* W, e1 O' u
- '(-4 . "AND>")
0 E7 S3 g6 z1 o8 e" s6 W - '(-4 . "OR>")
, G! |! L! Y0 [( o- F0 ^ - );list; p# H4 B( ~* D6 z* e. U
- );ssget8 Y, ^, Z& E1 } H( b% N* {" N1 b
- );setq
" u% h. Y* u5 i. e5 O
% i$ j1 q0 z5 M( a# F) W2 \, y# H+ F3 \+ P- (if (and tmp
" E# T" l; `6 O) r+ L1 C8 S3 X - (equal (sslength tmp) (sslength poly_ss))
5 g E0 h2 I# o4 k' D - );and# y! b, L/ q7 V
- (setq elevation (ai_rtos elevation));setq* m5 ]. z) b* i
- (setq elevation "")$ w8 K5 h0 e& e% m4 n/ H
- );if; f* Z+ n p) q( H
- / l, A! e, l, L/ g4 y8 @
- (setq width (pl_width_getter poly_ss));setq
" v% B! c1 w8 Z# [( b) H7 N -
& w" @. |( ^( O* G3 W4 Q6 ? - );progn then 2d polylines and/or lwpolylines are in the HHHHHOUSE!
9 R. G$ E; a" O$ H- I& D - );if
?% F8 A( X8 o! g# A$ v8 } `4 Z - (command "_.select" selset "")
2 H" I1 j& a5 X) S -
. S3 D# @/ A0 S. |% i7 R7 ~ - (if (setq txt_ss
" D0 G) p. [* e* @# z% L - (ssget "P" '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT")
* U9 u+ D2 J$ ^* e$ J - (0 . "ATTDEF") (-4 . "OR>"))/ h1 \: N1 L8 @! W
- )
; y2 @- l/ d# d# q" ] - );setq
5 E" ^/ P* w& H' I ~ - (progn
. }+ N' S p* ?! ~9 {$ l - (setq eflag (+ eflag 2))
j7 j) X/ y2 a' e. Z7 k' K - (setq height (cdr (assoc 40 (entget (ssname txt_ss 0))))
# n U: p ^: w- \2 F; }- I7 U/ F8 i - tmp (ssget "P" (list (cons 40 height))) 6 c0 D0 o3 Q; b( B
- );setq / X6 r: ?/ g, E! G% C' ?9 n
- (if (and tmp4 L$ D* K* } x( w' o# f+ P' ] D
- (equal (sslength txt_ss) (sslength tmp))
- g6 a) }. Y* B - );and" `$ K( S$ q3 o
- (setq height (ai_rtos height));setq ;@rk need to translate from float
' A2 S+ _. H4 Y9 I3 e - ;to string and back again easily$ T( D2 \* |+ Z& I
- (setq height "");setq else the height varies 9 F6 a& c1 l8 ?" s# r9 n ~: s H: ]
- );if! L' C% N( s: T5 p/ @
- (command "_.select" txt_ss "")
* G1 ]. i! ^' Q W# B7 I - (setq style (cdr (assoc 7 (entget (ssname txt_ss 0))))( X7 h% W+ W' ~
- tmp (ssget "P" (list (cons 7 style))) U# D: N. m4 H4 [: P/ ?5 Z6 y9 a
- );setq
2 e$ |+ k4 m( z- D- K - (if (not (and tmp ~: \2 L9 ?* P0 C! u3 d, q0 K
- (equal (sslength txt_ss) (sslength tmp)) 7 ]+ [# l- E3 i! v
- );and
/ `" f8 ~3 }( J: ~/ d* ]8 R; @ - );not* Y! g. V- V; \& B' D4 J. {+ F
- (setq style "");setq then the style varies " V0 X8 r$ N6 E; z$ C$ p
- );if
5 D8 u! Y( m' {& T2 @( Q - );progn the text type objects are in the selection set
+ Q0 @3 F1 S) L/ C+ [& z" i; V - );if0 M: y! p) X2 ^ k2 F, V, ^- S0 @
- (command "_.select" selset "")6 O/ Q7 X' o& D) o. F) [
- + e# R* ]+ r4 X- S2 B# T
- (while (and (> sslen ctr) 2 {6 Y2 U0 [) C; b l! X; Y
- go& b+ [* ]4 L/ I; k% L4 h# j
- );and
; `( x, j( \0 V! B( b/ `; } - (setq elist (entget (setq en (ssname selset ctr))))
$ v- O& r5 a' ~( b
& |$ I a( _+ F n- (if chk-col (match-col))
O* |1 Q/ e' t" l$ X- N - (if chk-lt (match-lt))
# y% ^; R- `* K - (if chk-lay (match-lay))
/ e! a" J, F. X1 L2 t! H - (if chk-lts (match-lts))" l) S) L I' b& |2 l- O, M
- (if chk-th (match-th))& F' P, ~& M# Q
; o# k1 N5 Q% M7 r5 x- ;(if chk-etype (match-etype))
. A9 K4 \6 o4 j/ {8 _; y
3 n6 l9 ~ v5 ^# q- (setq ctr (1+ ctr))
/ V2 r$ l8 Q$ b' D! \; ~ - (if (and (not chk-col)6 ?1 n6 v* |. B$ m/ `5 I
- (not chk-lt)# `3 C a5 z* Z
- (not chk-lay)
( u5 X' d8 e4 ~ n* L3 _$ V - (not chk-lts), ]6 E, m, p. [2 v3 P
- (not chk-th)
s6 K; o1 q& ^/ t0 i* Q - ;(not chk-etype)
& ]2 o) f+ V6 h9 U' v8 ?, X+ O - );and K. A$ Y. L' i2 e/ w, b: n
- (setq go nil)
3 O' j% u6 k1 e% k3 B Q - );if
' `) ~$ X( }' T7 _ J" A - );while) ?9 d$ p) e9 f6 z
- . M) i" A, g/ [* [* X
- (list color ltype layer thickness ltscale
! p2 W0 z" Y. r V! m - width elevation height eflag
4 m0 i+ a5 k* `% N$ \ - style poly_ss txt_ss* l8 f/ B4 c& }5 G8 o, m! w \; w3 z
- ). a6 D3 P. |8 F0 X i J* ^! V
- );defun getprops- Z6 j# r) t& R/ M
8 D3 w$ Z6 }3 t! L& m; d" i- ; This is a speedy little routine to tell whether the polylines in
$ l( {; D% j& U - ;the selection set argument are of varying width or a constant value. 2 n$ f9 J; k8 k
- ;Looping through the vertex's has to be done for old polylines when
, C7 ]# {2 k" B5 |+ B4 T0 `" H0 G+ E - ;the polyline header has width values of 0.0. Basically, in this case, , o+ D5 f8 G6 X# k- z# m* ?8 H% B
- ;information in the polyline entity header is abmiguous. Width values & H) A, H# I5 f9 e5 ~) `
- ;of 0.0 in the header entity could mean the polyline has a constant 0 x. F! ]4 v+ R: e
- ;width of 0.0 or it could mean that the polyline has vertex's of varying ( d+ Q% {0 U1 L W7 [7 s
- ;width.
* z: M8 U/ {5 K0 e - ;
* |& h1 F2 o2 I& m! c. O' e, H! X - ; It's all in wrist. Err a.., I mean it's all in the 'if'/ O% J, a6 h/ S
- ;;3 E6 B& ?+ K& Q
- (defun pl_width_getter ( ss / ss2 ss3 n na e1 width width_a width_b flag flag2)+ l, h* Q2 _6 W8 b3 }
$ [) V/ G1 B- S( B/ P/ R- (if ss " f- N$ w7 O7 ?6 M
- (command "_.select" ss "")
5 e9 |+ `4 }/ X' G& p4 [. D; G - );if9 Y# G4 }) {% K) X- b/ s% u/ R
- (setq width "", x' y+ g) x( v
- flag nil
: @' V' G+ S o7 e5 u - flag2 nil
2 N( o9 x% b7 n; H - );setq8 z. e9 D! n/ }+ t
- (if (not
3 j0 ~4 C: }( |1 @$ r4 G - (and ss
1 @7 W- @6 k8 |5 ^. J. i3 ] - (setq ss2 (ssget "p" '((0 . "LWPOLYLINE"))));setq
& W/ q. K7 x& w! ?0 `: M6 M# z4 d - (setq na (ssname ss2 0)
# ?6 L) z) ^- y6 D% g) R% I0 b- e - width (cdr (assoc 43 (entget na)))1 n. x9 H: P# K
- );setq5 @+ D5 Z' @& M( A# \7 k
- (setq ss3 (ssget "p" (list '(0 . "LWPOLYLINE")
2 y( a4 t: }1 M- V5 }# d. W* ? - (cons 43 width)
+ c7 h& ?# ~+ ^. w - );list
; s/ q! }; f. {% v4 | - );ssget
: f7 F0 J* I$ e. A6 N) f: A - );setq$ U( D4 `3 j* R4 J% _" O- F' b
- (setq flag T) ' d& C8 L j/ J3 ]5 Q$ U
- (equal (sslength ss2) (sslength ss3))# g3 s( x/ {* P8 k4 _. L
- );and* |3 P1 X- ~: [+ |( J
- );not
1 N2 X: m! _* e5 F/ Q# y" k - (progn; M" G- ]7 ^. R, b! U. [6 I
- (if flag' ?( \& O4 E0 M* X5 a0 X
- (setq width nil) 5 r" k1 i* k# |4 r- `- t( w$ ~
- );if) L" W. K" u" s# C* v
- );progn, O9 [+ L4 z( k+ w p3 A
- );if
# U. G$ O$ u) e5 j1 H$ c -
2 R) e6 v1 g4 u6 s+ r/ m& V/ J' a - (if (not / M$ Z* i2 L. r' `) S" ~4 }
- (and , H1 x" N" R5 T3 c+ \0 x" d
- ss
& B) |, x* N& F - (progn (command "_.select" ss "") / P i$ Y, o) c2 Q* o) j
- (setq ss2 (ssget "p" '((0 . "POLYLINE"))));setq; t- X, Q" b- u2 r4 b
- )
# A# ?4 z; {& Q% E. O0 b2 l - (setq na (ssname ss2 0)2 v' k0 u3 |! U) m5 }+ d- z& A
- e1 (entget na)
8 ^- H4 _. R% \: I7 N$ W( t - width_a (cdr (assoc 40 e1))
6 v+ F; S$ L9 \7 D& v$ v3 V3 m+ a! f - width_b (cdr (assoc 41 e1))
, o3 T6 i& w& { h( d; J - );setq% z" M8 {; P+ e& Y
- (equal width_a width_b)
' c2 I8 o; z# t9 _ - (setq ss3 (ssget "p" (list '(0 . "POLYLINE")
$ s3 S) u. ?1 C+ F3 B) O7 E1 j - (cons 40 width_a)
& {* z: }- k* a. j$ i - (cons 41 width_b)! |2 P' S7 ]% H
- );list
4 h" W7 y. S2 r5 T - );ssget
5 p$ g# e8 R8 s9 e/ g - );setq% |5 ?5 s# b' ^
- (setq flag2 T)
3 p1 I6 [! Y% z3 o - (equal (sslength ss2) (sslength ss3))
1 P$ m% P$ f! a# d6 L) A; e - );and $ C% A. [- m1 ^1 i1 l
- );not 1 \2 b# }* V6 V/ x# [- B) s
- (progn
0 [0 \( }3 H: `! f m - (if flag2
) e d" R D7 Y/ H( L+ A - (setq width nil);setq4 Q! }! I1 E* w' ]- s& g. a: ?
- );if
$ E8 r3 ?0 H& k( a! N2 t - );progn then
9 W1 |+ u0 p6 {* M* p - (progn
9 w! v1 F8 s$ C# S - (if (or (equal width "")
1 \: a) F" ?/ N - (not flag)
) C$ B1 b. m# F" a* ?0 _5 N - );or
3 K: c* p+ S+ ` - (setq width width_a)* n$ d( \. O: I3 B! h! b1 i M
- (progn
& }! h- Y# O8 L5 B2 X - (if (not (equal width width_a))% p Z2 N/ Q$ S1 J; l/ \# f
- (setq width "")" \+ h& P0 r8 g1 F
- );if
2 N+ [) j7 j1 B! R - );progn
6 A8 V/ y5 l0 T. p - );if
- V8 S+ j, Z# Z3 J1 Q3 } - );progn
; e: F) |# b8 N c" u9 v2 @ - );if- G) M# c/ a- G9 L
-
) a" D* c2 j1 B ?3 D - + r' X5 \" Y5 v9 N& z4 P
- ;now for the special handling for old polylines2 _6 ^4 L% a. d* o- g& V2 _
- (if (and width 4 |/ b" y4 B+ y' s t; F5 i
- (equal width 0.0)
$ c, [' J2 d2 A* \ A& A' q - flag2
: b/ ?. t/ B& U; f - );and
1 i/ a& v- x x" h* e5 k# n - (progn
$ X# F4 g9 |9 ~( m9 t' q - # ^& N/ \$ q8 { m5 B/ d" w
- (setq n 0);setq/ n9 o" T0 |8 ^" w% a; x0 d
- (while (and (equal width 0.0)# X( o6 ], L7 f) I
- (< n (sslength ss3))9 T' E9 Z4 d) \& \
- );and
* Y/ A* M3 p" Y - (setq flag nil
+ W! @* l4 }/ [( V w% |6 M3 ~$ R - na (ssname ss3 n)4 w: F1 ~1 @7 j: U O/ v. V: a0 R
- na (entnext na)
% K4 Z* R) j& M - e1 (entget na)
* s X) D' ~3 N0 i - );setq
/ [8 S: u' N0 l! a' b - (while (not flag)& Y4 e3 _. v! W# h$ V( N* @9 n
- (if (or (equal (cdr (assoc 0 e1)) "SEQEND")
. _ `6 o8 s" }0 L6 P* ? - (not (equal (cdr (assoc 40 e1)) 0.0))& f+ Q+ W: K( U3 h) S
- (not (equal (cdr (assoc 41 e1)) 0.0))9 U! [: K2 J: a% M! M& H$ ?" ?
- );or
4 w: t; y( ^3 U: h* k - (progn: ]1 N4 P0 s. X7 _
- (setq flag T);
7 e1 b8 x( E9 M' P$ C0 q+ A - (if (not (equal (cdr (assoc 0 e1)) "SEQEND"))# }( g% w) \8 z
- (setq width nil)
) U* X' u4 L0 o - );if
: Y+ R( p: d3 h/ h2 w! ], a/ g, b. i - );progn then jump out of the loop; ?! B/ O! o5 i7 r
- (setq na (entnext na)* S) k3 [& J0 W
- e1 (entget na)5 h, r$ M0 h" o
- );setq
( d7 N5 y7 G7 E$ f% X - );if & V* H" j7 d0 x# T& I
- );while( ?6 \* M i% Y. i/ W' [; u8 {
- (setq n (+ n 1));setq ( k3 Y9 W0 s. l, U0 p6 [3 j j
- );while % }- K- r9 Z6 [: d
- ) L% F7 T* J4 ~( d- b) |' n8 o
- );progn then it's a legacy
6 f7 K( G# S: X, C$ X - );if ;legacy polylines that may have varying widths
/ O. s; `+ l2 p# R1 R1 k - 2 H0 w; Y: _) V) h9 }0 M) u
- (if (not width): W. _; C3 |3 X; T0 l
- (setq width "");setq
. E! ~* u2 w, t7 s7 m - );if
/ `1 Y, }4 J5 u8 r, p - (if (not (equal 'STR (type width)))
9 N* b" v! _6 E( a! Y - (setq width (ai_rtos width));setq
; D4 U2 W" J& y0 O) q - );if . X8 L% X/ @( W% x$ f" n
- 3 M* W% H: y3 y' c% l( W
- width * m& S6 B( e. D A- A, [0 y
- );defun pl_width_getter1 A7 o5 p3 u2 \9 b
6 U9 p2 _3 d4 d: h9 }& g# m- 0 F& N0 O7 d) R! O- O6 ]
- (defun match-col (/ ncolor)6 }* T6 W% y$ Q4 D/ e0 J+ S
- (setq ncolor (cdr (assoc 62 elist)))
6 _$ S) W/ q T. \4 ^( `) F - (if (not ncolor) (setq ncolor 256))
r5 s9 F; K: l" e. {+ n( Z0 K - (if (/= color ncolor)
6 _2 U+ Z# S: O* F6 U - (progn6 C0 c) S7 c$ W7 w
- (setq chk-col nil)( O7 f7 e: t8 `7 d8 r5 U
- (setq color nil)* g# B- {0 z" t/ v3 w. [- r- }
- )$ ?% `8 W% \- a9 F! A5 T
- )+ D, I1 G5 O& L% b
- )
5 h, w& m9 T9 Y1 ?: T6 { - 6 @& N: q! |+ x6 v0 s4 @
- (defun match-lt (/ nltype)- N" o+ a% w8 i) {8 D% P+ w& L5 P
- (setq nltype (cdr (assoc 6 elist)))
- f/ a; B6 d0 j( ^- z - (if (not nltype) (setq nltype "BYLAYER"))8 a- q+ [ M; g. ~% N% N8 O
- (if (/= ltype nltype)
# U! p& T. r- {/ ^ - (progn% r& g* L- q1 ~5 S/ V) v0 r1 F) E
- (setq chk-lt nil)
2 [7 g) V# K' _' I8 A2 W! t - (setq ltype ;|MSG0|;"Varies"), R( g$ x5 Y$ X, c1 ^4 O
- )5 t, S" H* o+ s# n/ r$ J' T& `
- )0 W1 v7 J! h* u: K, P
- )0 Q0 n9 j1 ?' H
2 W7 i0 U4 ]) D% x# V1 L$ A2 r$ V- (defun match-lay (/ nlayer): R- \- h* A2 u: G! S- k
- (setq nlayer (cdr (assoc 8 elist)))
( }5 D; n# v% ? - (if (/= layer nlayer)
' ?5 f4 n5 g5 [1 C - (progn
+ M+ _6 _. t$ U( k3 z3 K9 Z - (setq chk-lay nil)! T8 E* Y2 [( {5 F& N# }
- (setq layer ;|MSG0|;"Varies")
: t: p% o: \- B8 [- r. B - )) h2 ^( e) S5 ^% M: G
- )1 N2 R9 `5 f, _& @7 S
- )6 y. d- H/ y: L& q& a/ [) u g
- # ?: _4 c! v. f m/ u
- (defun match-th (/ nthickness)) q7 w+ c, w% x2 o9 b H
- (setq nthickness (cdr (assoc 39 elist)))
5 O9 O+ p" L5 b- N) C& L: E. N - (if (not nthickness) (setq nthickness 0))
* }& V: j: I+ X- S4 z - (if (/= thickness nthickness): ~! V/ ]) v4 v$ T* u
- (progn
. V, H0 u2 f C6 I - (setq chk-th nil)3 h! x& ^( S5 f, R6 |% V# i
- (setq thickness ;|MSG0|;"Varies")$ _4 e* m+ b* w1 }1 t
- )
9 ]" @: T' k$ ]9 `% v - )8 p8 s% o0 P+ ^ E& L$ g5 p8 x
- )% N7 ^0 d8 h% b7 \
4 i o1 `5 K- o9 Q2 z; N( w- (defun match-lts (/ nltscale)
8 `4 v( |% x: O" N+ u - (setq nltscale (cdr (assoc 48 elist))), ~: G4 v8 E0 e
- (if (not nltscale) (setq nltscale 1))
# X: N" v6 a6 m - (if (/= ltscale nltscale) t/ t+ }9 f9 y+ `: O
- (progn
- N7 P) D9 w/ B) [* s I: O- l - (setq chk-lts nil)9 c' f3 [8 Q& K' P
- (setq ltscale ;|MSG0|;"Varies")
3 _: q& R$ N0 _' Q$ q, v - )
# X# {0 O9 u0 _: p w$ Q' ^ - )3 o5 j: \1 I9 M ]7 I
- )
! u9 j8 G" a7 m. O9 o/ c
! K% j' }1 K3 u$ k4 X9 M! A- y- ;;
9 s0 Y1 j" D' J( q! K( ]% G - ;; If an item is a member of the list, then return its index number, else
% n, L) B) {5 e* S' c - ;; return nil.: X" [4 a/ k+ y7 i8 ?
- ;;
1 x& B; D1 Y: {7 J' e6 S2 k - (defun getindex (item itemlist / m n)7 l o* z# R, p8 J' i' m
- (setq n (length itemlist)). n% }2 l8 H9 O# B6 d. E$ h
- (if (> (setq m (length (member item itemlist))) 0)- K' y+ s7 G! S0 J u! u3 I) t
- (- n m)( M3 @8 l4 x1 t
- nil
9 _/ Y# G" g7 I) A2 E$ M9 U" M8 r; B - )
2 p5 [1 d* H; _* f - )
1 t8 [- [# Z" Y t' c7 E" U - ;;
% Z( Z2 Y/ M( \- l* |& G' ?7 U" T: T - ;; This function is called if the linetype is set "BYLAYER". It finds the
5 @% {' e; V' r9 v2 O: A3 O - ;; ltype of the layer so it can be displayed beside the linetype button.3 I9 |* ]6 d7 I2 Q( Z7 e- M9 N
- ;;
' K) l4 B9 x$ q0 k- h! G' Q - (defun bylayer_lt (/ layname layinfo ltype)
3 B) P z' K8 i1 M- d2 u - (if lay-idx7 `+ f1 x4 V8 H9 ?
- (progn: V* W, b1 q9 b
- (setq layname (nth lay-idx laynmlst))0 j* I0 k$ P0 v7 J' P9 n4 B8 H
- (setq layinfo (tblsearch "layer" layname))0 H2 ?* ^1 e+ G* S7 |% H
- (setq ltype (cdr (assoc 6 layinfo)))/ P K+ e4 Q1 b! \4 ~% t
- (strcat "BYLAYER" " (" ltype ")")
$ @" M3 M; @8 `) v6 p - )
1 F4 T( M# i$ O* p* j0 H. p$ L5 q - "BYLAYER"/ i# H/ j. W; \% J, M
- )
6 Y5 k0 Q, v# [; a - )5 a- x+ [- j0 d- {4 c9 `
- ;;9 t- y/ d* [3 g$ x) \" A7 ` K
- ;; This function is called if the color is set "BYLAYER". It finds the
+ t: U+ u) [( l& L% ^, p6 D; r - ;; color of the layer so it can be displayed beside the color button.! l& `" e, Q W& r5 S/ A
- ;;
* n( W0 d& w- K1 ^' v2 S& b+ W3 f - (defun bylayer_col (/ layname layinfo color)0 g5 q6 D$ @: ?3 q4 [7 o4 g
- (if lay-idx
+ J( X$ _% J) y; R - (progn
' M. ]- w8 ~5 _, m. [& A - (setq layname (nth lay-idx laynmlst))% B* b% O3 P% t+ r9 i/ D
- (setq layinfo (tblsearch "layer" layname))
- D; B; o9 s, Z$ | ?* { - (setq color (abs (cdr (assoc 62 layinfo))))
3 H+ V2 h( Y0 E - (setq cn color)
( V( H0 i8 \( p k! q. L - (strcat "BYLAYER" " (" (colorname color) ")")8 O+ R3 `9 l- O4 X- l1 y
- )8 w: F* o2 X* ]; |; V4 {* o
- (progn3 R( v; ?4 N6 V
- (setq layname elayer)8 s, `! V/ n( ~$ [; x- l
- (if (and (/= elayer "") q0 a- F! ]- s( Z
- (/= elayer "Varies")
" r5 m Z% R2 U$ a# ~6 S - );and
, N; z" q/ {" t( U. H1 G# T! a - (progn
. F9 i" m7 X3 X: ` - (setq layinfo (tblsearch "layer" elayer))$ i! W+ A) \% M% W4 w6 h" h
- (setq color (abs (cdr (assoc 62 layinfo))))/ Q* W3 K1 m2 ?( Z6 Y
- (setq cn color)% d1 A- Z. P* y3 K
- (strcat "BYLAYER" " (" (colorname color) ")")" O- W9 c/ h( K, I
- )6 I) T3 O! I& m/ O$ j
- (progn
0 {. [3 v' U; a l* B - (setq cn 0)/ U' ?; D# g4 {* a
- "BYLAYER"
9 Q4 ?$ X8 m% m0 C+ y! j9 K - )
; L1 Q& H# ]/ I4 N - );if! n: K* x6 o6 Y, C; |0 r. m
- );progn' N% ?8 g5 h' o- z7 w
- );if0 R2 @# Z; i0 ~ t
- )
; g% a7 Q+ x4 O T2 X1 f - ;;
+ }& ?# [3 u. y) T% Q/ I - ;; If there is no error message, then close the dialogue3 A( G( u' r- q
- ;;. i) W. t6 o8 n$ t2 m
- ;; If there is an error message, then set focus to the tile
# {, O) [1 A. L& B& m# i$ C - ;; that's associated with the error message.
3 O# ^7 X) V! m - ;;9 C, z6 H* |0 X) s- Q0 j
- (defun test-ok ( / errtile)
% Y; Z6 p- u0 p1 h) S- l - (setq errtile (get_tile "error")), ^0 V/ F- ~- S( l2 v. g
- (cond
7 t2 v5 f# C1 N% `% C' _) ^ - ( (= errtile "")
+ K9 T: W( h r, A( L! t - (done_dialog 1))
3 s9 [! j4 i X. k. E - ( (= errtile "Invalid thickness.")
( L; K4 Q( v/ Z/ _ - (mode_tile "eb_thickness" 2)), W" ]# g( l1 Y
- )
/ g* r( c9 R% k* Q/ f& s - )
u j" Q7 r/ D& D V) O4 G - ;;' i' F: G% u9 Y y2 j' `1 ^; U
- ;; OK in main dialogue.+ d6 t0 P I, ^! o% o
- ;;
+ d- K. i# i0 d; ?4 T K+ t" T3 I - (defun test-main-ok ( / flag)! p7 `" T6 w0 y4 W+ Z# a$ N1 |
- (setq flag T)
5 H) X) w1 R [9 O$ | - (if (not (or (distof (get_tile "eb_thickness"))
. e% Z% P( w: U; b - (= "" (get_tile "eb_thickness"))
' A' ?& F% y7 R2 J; Y8 Z$ @* i# a9 h - );or$ ~- V$ P; \+ N/ J9 P% ?* Z' u: e
- );not4 p, Y9 K7 b' J* Y
- (progn
1 V! g1 N/ p+ Z. n! B - (set_tile "error" "Invalid thickness."), M% ~5 r: J9 Q1 I R% ~/ H
- (mode_tile "eb_thickness" 2)
: n- v. R/ a) d) C4 ?1 J - (setq flag nil);setq
3 a0 k# E0 D6 l# V: G - );progn8 s& a6 L# ^* Y% P/ Q( }
- );if
7 Q& [& W+ V7 O9 h2 [1 M0 O - (if (and flag
4 E! m$ C& E1 R' } - (not (or (< 0 (distof (get_tile "eb_ltscale")))' E; V- G4 ^! f
- (= "" (get_tile "eb_ltscale"))
! \3 C2 K4 m# y7 s5 J8 N; E* G. ]1 w3 e - );or : m5 X3 \8 k1 t+ L& p3 N! R8 c% C
- );not" ?- L. Y D1 J) @
- );and
# _( W( j& j. ?; l% C - (progn) s. _+ y% G; w5 U' K1 g4 |) K
- (set_tile "error" "Invalid ltscale.")
+ T) I/ A% Y) [/ d7 _7 ^: o - (mode_tile "eb_ltscale" 2) E4 g* N2 J+ _) k* _. P
- (setq flag nil);
: O1 A7 A3 A% N# K8 O - );progn then% g+ n5 n+ }: F+ A1 N" v
- );if
! |. a, H) h( F/ ^, G7 X- I& q - (if (and flag
; r0 e. Y0 y. ~6 G, ^* W# M/ d - ; Don't test the tile's value unless it's enabled.* Y# N+ G! c, Q" y- O
- ; We're not set up for the display-only value8 T- e6 ^, M2 p2 H0 p
- ; of "" here in the error handler.
* p7 i: n& J8 s) P9 | - (= 2 (logand 2 eflag))* q! ^; E1 X: t
- (not (or (< 0 (distof (get_tile "text_hgt")))
% h$ }3 X. W. R0 C - (= "" (get_tile "text_hgt"))
, O8 W3 H( ^5 D6 L! b1 e8 B - );or
2 G; [; _( L$ m% z: ^- e - );not
& K! [8 @" f7 B - );and! ]$ M* J) x6 ~+ i: y6 e
- (progn
' E. E$ N' G, @! _ - (set_tile "error" "Invalid height.")
; o5 E) z" [( o7 v9 `) ?4 v5 ^ - (mode_tile "text_hgt" 2)6 [, W& T9 L1 ~1 j; Z/ t" C
- (setq flag nil);; _' [0 u$ f& a5 B) f( z( x
- );progn then+ Z9 D0 J# }) f
- );if2 i5 I# I0 L, E- y2 z8 Z+ c; G" `
- (if (and flag
9 z0 K- n. s) ^( q8 {3 I# c8 X - (= 1 (logand 1 eflag))( V0 Q9 n) \- g# Y& k: S
- (not (or (<= 0 (distof (get_tile "poly_wid")))0 @, b5 [$ J7 J$ Z1 S' \3 T
- (= "" (get_tile "poly_wid"))( ]* K, K" D b% ]* k0 a/ C6 \- v k o
- );or
, h; R6 ?3 j: g/ v5 J - );not+ X+ Q' {7 a1 _( z% q6 @6 p! A9 S
- );and9 [ I! c( a. z' K+ \0 y9 I2 r5 T& K
- (progn
- ?& z6 {: L! R' Q - (set_tile "error" "Invalid width.")
$ z9 E* U8 Y% U, c% V; A - (mode_tile "poly_wid" 2)
' Y7 f6 A4 B. Z% { - (setq flag nil)" }) m4 j+ `1 S) e, T& H8 V- E v
- );progn then# n' f3 n7 k( j! f4 y( y% t% W8 d
- );if + C4 v$ A1 o* ^. @; m( G9 a
- (if (and flag. u6 P/ P& \4 j; z9 s
- (= 1 (logand 1 eflag))9 G7 p3 p6 w4 H. B, `$ [
- (not (or (distof (get_tile "poly_elev"))2 B- ]( |0 o* ~& {. ?9 {
- (= "" (get_tile "poly_elev"))
9 A3 [; P2 M8 }/ N# z9 O - );or
8 P* Y6 n- T+ v* h( F( l: D - );not3 w( U7 K9 F( N1 @/ A" q2 N
- );and
: k0 G9 s: E: g9 [2 R* O - (progn
8 I* C1 G5 i/ c9 ^. { - (set_tile "error" "Invalid elevation.")
t, ` @' P& c5 E8 e - (mode_tile "poly_elev" 2)9 h; e1 D' {$ o4 O8 |9 a! [% q
- (setq flag nil)/ t3 Y- g% |! a
- );progn then
7 d, ?5 h- ~7 ] - );if
( N3 M& r! \ n4 n; s - (if flag & _) K' ~3 ~( @& E$ F- f9 X+ H. p
- (done_dialog 1)& H+ n# l5 `5 y1 g3 R1 E9 y
- );if
% |- A4 Y B; e. | - );defun test-main-ok5 P0 C: C8 X( W7 Z0 ?
* a$ {5 `2 G! E/ ` Q* @" U- ;;4 _2 d1 O& r0 ]' h3 B& Z& e
- ;; A color function used by getlayer.8 o% o; j0 u/ c6 p) o
- ;;
4 t3 T6 q2 H) l( ?& r0 u - (defun colorname (colnum)/ M/ \1 r3 ~: a _
- (setq cn (abs colnum))
' A) Z! t. P$ r) b1 ^" f - (cond ((= cn 1) "red")( s5 `; n3 m0 w# D
- ((= cn 2) "yellow") e/ ^2 ?3 y6 x; y- E
- ((= cn 3) "green"), d$ g% Y9 T+ ^6 L8 V) V
- ((= cn 4) "cyan")
( g* h, x+ M O& J* T - ((= cn 5) "blue")
: I; k, t4 P! V: B - ((= cn 6) "magenta")
; B, o" a. b! d8 O1 i" B, p - ((= cn 7) "white")
v) S) }: l0 z' h4 a1 C1 Z9 I - (T (itoa cn))
, E" f$ c" g: W - )7 V- W6 N8 }" C, V* Z+ ^8 E
- );defun2 s5 A: S# W/ v2 z1 D
. T8 s8 r, @, A: O d$ B3 Y- ;;; Construct layer and ltype lists and initialize all
) z! P* Z1 f- N- t/ t - ;;; program variables:: F" `3 H+ V! R; H0 b
4 T9 x: m4 D7 o5 S" O0 | s- ; (makelaylists) ; layer list - laynmlst9 a# j+ E4 \- Q/ ]9 k8 B
7 b5 u3 b; \' O' i; ], _/ m- " r1 ^% l- I! I: E- t
- (makeltlists) ; linetype lists - ltnmlst, mdashlist4 ]: Q @2 |6 s/ E& ~$ q3 f
; D- n+ d/ F( x: c( e- ;; Find the property values of the selection set.
0 s7 n/ B6 D) ~ - ;; (getprops ss) returns a list of properties from
0 ^, u' q9 u( `# T# ? - ;; a selection set - (color ltype layer thickness HEGHT STYLE WIDTH).- _) y+ k, ^/ h+ e4 @& s" P' A3 {
- 9 a0 t0 E9 g; S' [4 b
- (setq proplist (getprops ss));@rk interesting things happen here
5 o- t) W6 Z5 d2 d1 J" M2 l; [& M - 7 `/ O- m3 {- ]
- (setq
; A! c8 v, ?4 j2 E/ y - ecolor (car proplist), Y ^( o4 ^. q
- eltype (nth 1 proplist)
4 N- A0 I. U) c# }8 X# E3 W" ]1 E5 |' Z - elayer (nth 2 proplist)
8 [% w4 ]5 o- r% ~1 I - ethickness (nth 3 proplist)! n6 T3 {; G2 s: y
- eltscale (nth 4 proplist)
$ K! H2 ]0 S; T: n/ ~( X - ewidth (nth 5 proplist)& |, @; B; V1 q2 h; _
- eelevation (nth 6 proplist)
4 Y3 O, ]3 R/ L1 X- n - eheight (nth 7 proplist)
l* K) D: e1 n; ]; A8 }+ ~5 ?& n - ;etype (nth 8 proplist);commented out and replaced with the line below. RK.2 e' W3 a8 m1 I9 I$ G
- eflag (nth 8 proplist)8 m* M7 ~3 s+ r2 @8 h* Y
- estyle (nth 9 proplist)
) e6 w3 |" ~; M; l. M - poly_ss (nth 10 proplist)
$ T# w1 l- O! A. z - txt_ss (nth 11 proplist); F- x8 ?5 j0 g$ M0 L
- );setq
% H% N( ] O" E- [
* L( X& F* s+ G. f0 M# ` f. o s# A5 s" X- ;; Find index of linetype, and layer lists
' K& A# s+ Q, x2 a5 s4 Q& N j9 ^ e4 g - (cond# q+ ?- I! m. K! w" o2 O
- ((= eltype "Varies") (setq lt-idx nil))! T8 w z: R, A+ X( c7 J! q: b- C! p
- ((= eltype "BYLAYER")
1 `+ z* R6 ]* Y$ S& R! B; ] H1 ], f - (setq lt-idx (getindex "BYLAYER" ltnmlst)))# P3 _& y+ n4 m! h8 u$ c" z
- ((= eltype "BYBLOCK")
$ P9 A5 f9 n/ l& T - (setq lt-idx (getindex "BYBLOCK" ltnmlst)))- x: P7 _7 p' u. x7 q1 L
- (T (setq lt-idx (getindex eltype ltnmlst)))
; a5 m+ |$ d0 Q" p/ O - )/ d" {! Z2 F- o: k ]+ ]
- (if (= elayer "Varies"). u' T, R T' ^; Q5 Q: r' n
- (setq lay-idx nil)
, K. e! f0 A2 A$ g: v- w; ]9 E - (setq lay-idx (getindex elayer laynmlst))
6 L2 v5 H9 R- m/ \ - );if
: ^: J/ |, j4 K- s- Z5 k# D! n- e - (if (= ethickness "")6 A# e" H6 r, F3 J+ d
- (setq ethickness nil)2 T# h6 D% h! P' u
- );if8 k$ i: _5 W$ c3 R2 j& @! `
- (if (= eltscale "")% U% h. `% x& ?9 w
- (setq eltscale nil)
* M9 {6 `+ l; Z" X - );if3 Q+ o4 B R6 E6 R# o
- # m4 s; h5 a6 M5 f
- );defun ddchprop2_init ; end (ddchprop2_init)
( v% Q& g$ O: f* u" B
' v" n" B6 u5 A( A' A& ~7 ^0 f1 j4 {- ;;; (ddchprop2_select)8 e3 a$ Z- K7 f% E
- ;;;1 b; l, J, @/ }, p# w
- ;;; Aquires selection set for DDCHPROP2, in one of three ways:: E# @* g; \, W, t
- ;;;
8 } g% C# H" m K - ;;; 1 - Autoselected.
) V- ^; A5 S$ ?- [9 ~ - ;;; 2 - Prompted for.
3 T a# ~% o( ~: X# d# Q" M - ;;; 3 - Passed as an argument in a call to (ddchprop2 <ss> )3 @+ Q9 O4 x8 I: U; _& O9 S& Q( |( E
- ;;;
5 ~1 J9 M6 X3 L% C- ]! E, ]2 ` - ;;; The (ddchprop2_select) function also sets the value of the
0 P. B& _9 o A" [! w# T, Y - ;;; global symbol AI_SELTYPE to one of the above three values to4 {6 E6 p* J2 {! O7 J
- ;;; indicate the method thru which the entity was aquired./ R: S/ D: o$ R1 F( T
! Q7 h& H" Z$ V$ w2 T9 h' B
, J" |, b% n2 M+ v6 D/ X- (defun ddchprop2_select ( / )
; r& T, F+ x( \5 [! o
+ w2 ~ }5 s4 I+ x, r$ C$ n- ( ~5 ~+ \/ X5 r. T, I c
- ;returns only entities in ss that are in the current space.
8 S- C/ n6 i! B) W: A+ w - (defun ss_in_current_space ( ss / a cur_space ss2)( h" H: I& P: X( }& M/ D1 n
- : N3 a5 o1 G3 x" B7 J Q( B9 a2 C
- (if ss. s7 |1 L! L0 Q6 ]8 ?9 X( d
- (progn
" }3 Q) k# _: i3 O/ o, \ - (if (and (equal (getvar "tilemode") 0)8 o# Y! Y! U% _: x% p
- (equal (getvar "cvport") 1)7 p1 h& V6 Z3 d3 t+ s5 x
- );and # i$ [6 l. ~4 F* Y- |) D! O' b
- (setq cur_space 1);then paper space is where we are.
5 K: d2 U) Y7 A - (setq cur_space 0);else model space.% ~8 y( q- b: }% v$ ^
- );if
! v6 _8 R+ ?) O7 O8 K* k& M2 b - (command "_.select" ss "")$ I( O1 J# x( ]2 ^5 E
- (setq ss2 (ssget "p" (list (cons 67 cur_space))));setq" w9 W7 |5 ?5 \+ S, C* j `
- (cond ;;;;;tell the user what's going on.
! s$ @" B( r! G - ((not ss2) (princ "\nNo objects found in current space."))
5 u0 U5 U7 ~- D - ((not (equal (sslength ss) (sslength ss2)))
s( W' x- g6 G2 i8 G - (princ (strcat "\n" (itoa (- (sslength ss) (sslength ss2)))" `0 r6 G: B! B/ w& O7 Z. Z: d( D
- " object(s) were not in current space."* Z# ^* c4 `; c4 l/ @% f, {. s2 }
- )6 H$ c( {( Y8 D! o) H2 }
- )1 I* A. J5 P! d$ j
- )
$ |% c6 y, H9 V' M& d: j - );cond - Z- y8 T3 D) \, e8 ~
- );progn then: U f7 L( V$ N( l& s+ w6 v
- );if + _1 u' M' Y, d$ q9 u1 D2 k
- ss2# E& T. X1 A5 N) N- D6 p5 G% `; q
- );defun ss_in_current_space+ S+ q) [5 ?; p
$ K! C( o7 [9 v$ ^
# d% W% W) H9 N; k- ;;;begin the work of ddchprop2_select0 }& e7 N# N0 P" d
- - n |8 L' {8 c1 V) B) k& p
- ;; temporarily restore original highlight setting.
# l+ d9 Z& ]# | - (b_set_sysvars (assoc "HIGHLIGHT" (car bonus_varlist)))
& p& ~0 i5 Y! i; A - (cond o8 ?8 f, q t5 y0 I7 {& ~; I* g
- ((and ss " D+ l7 h" ^8 p; c1 r
- (eq (type ss) 'pickset)
$ s# b; B4 G. l# b1 J - ) ; selection set passed to
2 }- ], {- F( @& ? - (cond ; (ddchprop2) as argument0 h; f) \( Y" c- i) o
- ((not (zerop (sslength ss))) ; If not empty, then" w; @$ F; R7 r8 k
- (setq ai_seltype 3) ; then return pickset.
B4 n2 x7 q# p - (ai_return ss)
9 T0 t0 P3 [$ d W4 g3 B - )( R" Y! T& N+ i |- w
- );cond close& ^$ Z& z! z2 ]1 U0 C8 ~+ N) S" L
- );cond #1
% u1 I5 ]; c% t - ((setq ss (ai_aselect))) ; Use current selection
( g7 a7 {# ^2 u4 ? - ; set or prompt for objects
$ X8 }/ P% ~: r1 X2 ~ - (T (princ "\nNothing selected."). p9 {8 M/ P. @+ L: i2 c
- (ai_return nil)3 K/ f3 s$ U9 u3 F9 |
- )4 [, {+ q7 C5 P Q( ]
- );cond close
/ M& M4 M: L' k; ~; X - (b_restore_sysvars)7 J ]( z0 y( r; i6 w
- ! |/ p: f. X2 v$ z7 N
- ;(if ss% v) }) \: I8 b2 g& J
- ; (setq ss (ss_remove_locked ss)) ) E% Q, `4 P4 D( x( f6 Y- e8 ~
- ;);if k% Y; n# N) `
- (if ss
9 x1 Q- b) S- ~9 ?( L - (setq ss (ss_in_current_space ss))
2 c! V, R/ V6 O& y1 H3 w4 { - );if
- t% s r' t& j8 ^8 ]
* l* \" r0 e% D. f2 s _- ss
7 J7 A: d4 U. D/ D# c w, G - );defun ddchprop2_select! K, A+ Q0 h- ] l; R2 a( }! J
) j5 m2 c& Z* d* A& h) w) Q
$ V) U; k/ ^5 ?! g. y% ?- ;;; Define command function.; O4 U) `; x4 @* ~+ Y' E( v
- (defun C:CCH ()# C0 \4 |# v# s( `3 R
- (ddchprop2 nil), [. r1 e- R) H" m# G
- (princ)# R$ ]1 j( ~% A" T/ t0 d
- );defun
) e g, [! e4 i0 G+ z. K - " O6 d. V- N5 S B5 ?: B
- ( {+ }$ n. @) }5 ^- H9 C" w
- ;;; Main program function - callable as a subroutine.
) y9 Z# w0 k/ B# T. [ - ;;;0 S( b* W: N4 [: Q' @% ?/ ~* U, U: Q
- ;;; (ddchprop2 <pickset> )3 }" {0 R7 B) ^3 Z3 g/ a
- ;;;( @ c% ^( A' s* V, Z+ e2 T2 N
- ;;; <pickset> is the selection set of objects to be changed.
/ P, a2 F" a3 d; Q$ @5 h1 }0 l+ u - ;;;" a; k- v2 |& p* _
- ;;; If <pickset> is nil, then the current selection set is
5 }# {9 m7 a* R* @9 Z' n - ;;; aquired, if one exists. Otherwise, the user is prompted
( `5 g" E# u* E' v - ;;; to select the objects to be changed.
( a9 W2 {( l5 q+ R) l - ;;;
. T" F4 W/ o$ E; f - ;;; Before (ddchprop2) can be called as a subroutine, it must
* F0 ~2 G* t0 ~3 H: a* N' r2 [3 ]3 g0 R& z - ;;; be loaded first. It is up to the calling application to
$ t! U) Y0 f3 O% A( r - ;;; first determine this, and load it if necessary.
, A/ h$ Z2 ^) c( D - ( u* q m8 T! u
- (defun ddchprop2 (ss /; h7 h& s, V d& G' X
- ( h9 Q& @, J' K$ |! s4 v
- a
& K! `* V4 m* w: D, ` - add-mdash
; Y9 u1 y& C1 r' g$ d - assoclist
% G* b0 o# L' H/ ~+ b2 q+ ` - bit-70! ^3 n7 K. W+ l ~, w& E4 ^
- boxlength, U1 X: I# b3 o) I4 h" Y
- bylayer-lt& P- P2 T+ }9 q5 v) ~: Y
- bylayer_col' P6 x+ I5 x3 b* H# U; {
- bylayer_lt. J/ y9 M2 {0 L' ?& y
- call_chp2$ t9 X$ K/ Q1 X' G, |+ m+ x7 G( e
- chk-col, [+ D$ y# ?4 R. \) M+ E
- ;chk-etype ;var removed by rk
0 @" }/ h: f) u - chk-lay ) l/ a) V! q6 v$ K
- chk-lt
. j! g: w) s! d& i$ {, A1 ? - chk-lts ;var added by rk
) a% ]3 Z- b$ g( o5 B8 D - chk-th
% h1 y3 W7 y0 C" N6 Y - cmd
% O& A) q! m7 t- ]8 W5 @- p - cmdecho
v0 _6 e9 W7 J3 h - cn
0 x! Q2 y: T' ^1 F6 a - cnum
& g( V+ {' y$ p- o: t - col-idx
4 d- L! {% e c - col_def3 b' \0 T6 e8 F# _
- col_tile) b- i; z. A9 K! h6 m- a8 n
- colname6 _( o& o* O- y- y# z- x
- colnum; T0 |9 h' ?( L# Y3 J, |3 o/ Z4 r0 D
- color/ w5 Y; J2 k4 k S' @
- colorname! l3 }, i! W7 n: a! W$ r
- cvpname4 |5 u1 q& X2 r; I* d2 C- Y
- dash7 Z" B. l$ r' S; S* Y7 b; r
- dashdata
6 X9 l5 Z3 y( }5 w. y - dashlist( G' K5 u: |. G. K; H5 E" ^
- dashsize p1 _# N: c# X- |, H/ r
- dcl_id
6 n3 s7 |( R( m% Z7 I5 W - ddchprop-err4 @/ o0 Q2 W7 ?$ U; F0 E) k- d' {
- drawpattern! T" L! E8 R3 @; [
- ecolor/ f2 J& I# B" j6 W; n8 z
- eelevation
; ]# n: `% k8 I( J8 C - eflag
% R+ n4 r% e, j' P$ J9 A- {8 Q) } - eheight; H& k! H( L2 I. J# q
- elayer4 y+ E$ }' G! N+ Y; {8 T" G
- elevation
8 ^- h2 ?/ c8 k! q4 K - elist
7 e( C. o# k& d; M6 b3 Y1 Q4 n - eltscale
0 _2 h% J5 v6 \9 F$ {( k# B. m - eltype( L) H8 X4 Y6 _
- en
* f9 T! T7 N7 J8 o2 X - ename: J9 d& i" {8 f: l, @
- ESTYLE ;var added by rk% i! \9 P1 [+ v0 }" J
- ethickness- O# P9 n. u( d% V4 }- J9 Z
- ;etype ;var removed by rk4 \- S3 j5 V9 k, o, X
- ewidth2 _% x4 x* {6 W
- fchk8 `9 O# L& E0 q; M' \& e
- frozth
! p6 A; c; A: J; V2 |/ S% ^' @3 V8 t - fx5 r. I8 _6 F. y9 r0 A5 A- v4 n: E/ E
- getcolor' w' S7 g( R3 J) N$ f& t; F
- GETELEVATION ;function added by rk7 I; H% F$ u# a/ b5 l( ^
- GETHEIGHT ;function added by rk9 Q4 e2 x7 [) u' o4 w8 B
- getindex1 C1 G# |+ l+ } a8 W! ^
- getlayer. a* b r5 M4 u
- ;get_locked_layers ;function added and then removed by rk " m* o. s; u3 E! z0 \7 X
- getltype
, _9 L6 Z) \- D( f0 t. ` - getprops
6 B/ ]9 O3 k* r- W5 ~ - getscale ;function added by rk
; P8 X5 Q0 s W7 `- R! y - GETSTYLE ;function added by rk
- y- t7 X: d+ {4 Z3 u - getthickness* h8 p' b/ g8 U
- GETWIDTH ;function added by rk
4 W, e3 Q7 _/ F* Y; \ - globals
! S% P0 y# f, b! c* ?9 a% ^ - HAIR_STYLE_LIST ;var added by rk- b& I! e+ P! [8 K9 G( Z# \. Q
- height& o- @, q$ {! ~3 v- ^
- index% m6 U. s0 w% v) h
- item
6 ~5 ?0 B( I/ i - item1
6 }% l# R& t6 {# A - item2
3 \. n1 ?( w% v4 d' S; Z7 s - itemlist. q0 s; a8 ~4 D
- lay-idx
6 e$ X- u; ], w- i - layedit_act6 K! l r# p9 ^ R1 `( J" f; C
- layer
" O; P1 ], a& J4 E! l - layinfo, `1 k7 e* H$ q+ A' Z( }9 e2 d
- laylist6 r( y$ X6 v7 y6 h0 R* z
- laylist_act
0 w6 U* V1 @, j u( Z - layname
: @" Y$ K: u1 b - laynmlst
/ O4 N. x- X. b9 w* S: N% p1 _ - layvalue
3 x# g0 c4 V. b( w c: W - linetype
# o; I3 x9 P5 E& c - list1
t ]( l" J# w1 A* V - longlist* o% p8 `2 ~# q/ {
- lt-idx
0 t: d O" f) X4 H) f: n; v - ltabstr7 z5 R2 q7 x" `2 ^* ?
- ltedit_act% n3 Q! T8 ?. x9 G
- ltidx- l4 G1 y0 x* ?3 R# D
- ltlist
) {! b( y. E8 ?8 }8 u - ltlist13 j' R a$ Y z8 r' J
- ltlist_act
* ]' g G; j$ {% v% V2 N - ltname2 f3 a8 }! D- L! }4 L H# s6 ?
- ltnmlst
; ^: M) p% j, \4 |0 x, P( D# n - ltvalue3 C2 X* I' y! K! W9 B- }
- ltype
" K( d" s& C, l - m
3 Z8 D$ u# r' \" C: m' r7 h - makelaylists
- \; b: w6 y" b1 L6 G* L. l" c - makeltlists8 l& s5 @- ]" W) J x
- match-col- [; V4 b$ @. }7 o+ A4 p \# _5 t
- ;match-etype ;function removed by rk* R5 a- C* t8 B- Z' G
- match-in9 H$ T0 c" C# F& J1 S9 v
- match-lay r& \& P C' j9 {1 M
- match-lt) T; J5 [: Y+ J
- match-lts
( J8 I2 M$ M$ o. \4 K5 ?. w - match-th# @. i7 v6 H" P
- match_col% m- `7 q M$ A( A
- mdashlist9 H, a, I5 m6 T& H* A
- ;MPOPLST ;function added and then move to ac_bonus.lsp by rk1 s( S# z1 A7 P; B5 G/ O
- n3 ^8 U1 x7 e {4 x* l$ |
- name
& L7 q+ K2 O. J7 @3 | - ncolor/ N9 u( f7 l# N8 ]" B
- nlayer1 K! b- |, Y$ u
- nltype
) L$ q$ o' { q- Y" V- U - nthickness
* V! V- p; U- c+ X; g( D: e - off
$ ?& z, @' z2 g# Z) J- F9 P% r - old-idx+ e) v! s# k: j; B
- olderr
+ X, g# c" Q) E9 q7 n - on
4 q' B0 B( l: T - onoff: g7 b n) y$ f1 K1 o; ~+ @+ D7 A
- patlist5 U/ _5 P; H% f! G) S
- pattern
' F* w O3 e6 j3 M. ?' \- q2 w$ F - PL_WIDTH_GETTER ;function added by rk
- r' @# U6 _2 ~- r, E# H. A" c; m - POLY_SS ;var added by rk! ~: K2 V! s3 k" a/ A
- ;POSITION ;function added by rk and then moved to ac_bonus.lsp q9 A# F% ]# n
- proplist
5 c2 j0 A9 S- W - reset-lay
5 s5 ]6 Q7 Z4 C+ I. j) {: S9 w9 D8 A - reset-lt
{: O) E( |9 W1 g" H1 M% V - s) b/ m- h* d7 M0 Q" z b
- selset) _+ l5 g( w. [
- set_col_tile
% V' O1 H* D7 ]' t - sortlist8 t/ `- Q: f/ `+ }
- ss7 |# T4 P) n5 L$ {* i
- ss_in_current_space ;function add by rk.
$ E/ i G8 C" M( a - ss-index( y& x) u, Y+ \+ P7 J( p! t- Y
- ss-length; c2 ~% _( s2 f- f; T6 c+ J( b/ w
- ;ss_remove_locked ;function added and then removed by rk.+ O+ w! R# `2 P( \7 A r
- sslen% Q `+ c) B v' I
- temp_color4 j# y5 L" p3 @' n' X' [
- templist
' F b7 S2 ^1 w9 e7 b - test-main-ok
) h2 \# @+ s4 X$ M& B- H- d: e - test-ok1 u6 [, E4 m' q. E7 s0 q; l
- testidx
- W6 j# K% ~! D& N/ t2 s. n" E - testlay# \ H* G* s- P( r, S. h# X+ j
- th-value( T5 l; L1 K- T3 Q
- thickness+ h W6 V, \- g% B
- tile3 c7 R9 w, q/ q2 O5 Y
- tile_rect3 L6 [1 x, X7 W4 i
- tilemode
# ?& f- I4 U; |' i; W - ;TNLIST ;function removed and moved to ac_bonus.lsp by rk) j: o+ b* [! H* _% b1 g
- TXT_SS ;var added by rk' N }/ h9 v, b! \# a
- ;undo_init ;removed by rk." Z. a. V. Z2 ~. p4 O' m& a) I
- vi4 l2 j! O1 ~; p, K: C% C+ D, y
- vpf
! t- `/ g6 X: `+ f9 ~0 z - vpldata
1 H7 A8 M- h- B8 U5 n - vpn; q4 F S! v- Y( @
- which_tiles
+ Q% X: ^/ i/ Z! Q/ ] i! H - width! A, ?0 L& p. I8 I: l2 V2 o& k; z
- x
N5 Y! n* ~* p, g- W" a5 M - x1; p, U. o; K& V, X( A3 I9 h5 w4 S
- x2, `8 G: Z9 B0 X2 _' k1 t, x* [
- xdlist$ V$ ?" }, A' z3 o
- y I# w5 G& Z& D! q- F( _% f Q& ~9 b
- y1
% p" E+ {. `2 `: Q5 _! `3 o4 H - y2. k7 l$ ?5 K" P/ r. o; s
- )
! k- B) j/ x4 q1 V9 I' D
5 N! f8 p, c( A- (if (and (not init_bonus_error)
- `* V& s2 K2 t0 E7 w3 h$ L& e - (equal -1 (load "ac_bonus.lsp" -1)) ' T/ ?& i6 n* D- x4 b1 Z
- );and+ i# ^. ~8 l% r
- (progn (alert "Error:\n Cannot find AC_BONUS.LSP.")(exit))' Z2 l$ ~& y3 f
- );if
+ _6 _6 a p/ p2 k - (init_bonus_error (list
/ }* T! f4 ]0 _2 U - (list "cmdecho" 0 % z0 Q$ Y& @7 V" D* H3 B
- "highlight" 07 J" e' Z; s! `7 n
- "regenmode" 1
/ E. S+ p6 M3 B/ T& Y) P( @- t - "ucsicon" 0+ C: R$ ^6 |; t4 w* j7 k) J7 x0 J/ z
- )
! d5 i- K C P6 \ R9 O+ E4 Z3 P - T ;flag. True means use undo for error clean up. , E! z6 H3 g5 B8 B/ n3 T
- );list
8 T& M* a& G: Y. n# E - );init_bonus_error* \7 E% Y* b: P% Z$ A
- , `5 L% K8 b) o* k% k% R
- (cond8 R8 l0 h$ t( U7 D
- ( (not (ai_notrans))) ; Not transparent?
- J) Q+ ^) ?4 e. s# M - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
$ H) }# {* C1 s% y+ `5 e - ( (not (setq dcl_id (ai_dcl "exchprop")))) ; is .DCL file loaded?$ t; D# K( a8 B; P" y
- ( (not (setq ss (ddchprop2_select)))) ; objects to modify?! {2 B) u- X0 f# ]; X: U
- (t
' h. M1 d* L' M - ;(ai_undo_push); I) |$ J& ^" ^9 t, ^4 h( P. S1 r5 i
- (ddchprop2_init) ; Everything's cool,
% H! f- g' ]! b; K; o - (call_chp2) ; so proceed!5 Z! P3 ^# _$ O% S9 u C
- ;(ai_undo_pop)
# _ F: j. C8 h+ d- a" _ - )
" S) t/ y K! r4 W, M+ d - );cond close+ D+ h+ d" V/ q* F
- " a6 Y- Y( l( }2 O' d6 f
- (restore_old_error): h2 d9 c6 u f- T/ B
$ }- K: @, I/ ]3 C+ f' w+ G- (princ)
* b' I$ s4 N4 d1 {. o( v, ^6 H - );defun ddchprop2
_8 q+ Y' G( v4 g; ?4 S - 6 N9 j q* A4 u; |- R. Y' W/ [- ?
- ;;;----------------------------------------------------------------------------
o6 F" `: t L; O& q" @0 { - N' P+ Y2 Y6 w7 X) o+ F
- (princ " EXCHPROP loaded.")) O% z! ?. U4 @( {: S; G3 x& f6 k
- (princ)) K3 ?: L E' m: Y$ j/ ]6 i" E
- 7 K9 |" ^% [2 X/ X" N5 z: D7 w: ?$ W) _
- ;;;----------------------------------------------------------------------------0 }% \' D5 A3 h7 z
- ;;;---------------------------------DDCOLOR_LSP--------------------------------
% F3 _; @+ e' f; ?( @ - ;;;----------------------------------------------------------------------------
/ U. y0 M- v6 s: h9 \) m - - p; g( ]+ z5 ^0 T
- ; Next available MSG number is 24
6 m7 ^: H/ f8 I( i1 z - ; MODULE_ID DDCOLOR_LSP_
% L6 D9 r: V+ G( C6 A - ;;;: \! K! Z1 T8 s+ ~
- ;;; ddcolor.lsp# H* p( l; U. U7 a, l3 R
- ;;;
+ V% B0 U f" K8 } - ;;; Copyright 1990, 1992, 1994, 1996 by Autodesk, Inc. d7 _4 D) |% V
- ;;;8 r/ Q8 R, F+ U+ G7 ~
- ;;; Permission to use, copy, modify, and distribute this software* A% E' e- V# c1 h& d$ q( B
- ;;; for any purpose and without fee is hereby granted, provided
5 @' ~7 Z* Q4 T" Y7 ~8 U2 a6 d( I3 y- H% W - ;;; that the above copyright notice appears in all copies and
, |) L- s/ V1 _( n: e8 O - ;;; that both that copyright notice and the limited warranty and
& D+ {( }* K: j - ;;; restricted rights notice below appear in all supporting
6 ?5 t6 j$ s. b2 |2 `- y' y - ;;; documentation.4 e4 n- K X* i9 x2 p) [
- ;;;3 Y( s; h; r) P$ E! @# ^: c$ j: H
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.+ ~ \6 E, [; i
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF! W& z, B, V" T* y) ` b9 [
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.* x3 }5 P' G) _0 E |2 c: a
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
( S8 z+ t9 h; [* ?) [; ]8 P - ;;; UNINTERRUPTED OR ERROR FREE.
! Z' h7 Q; I5 u7 S- H' c: N - ;;;9 l$ q8 N: u u) l1 C
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
" }" E! E0 ]* s; C5 b6 O - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer) U8 Y% r0 S3 ?0 d
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
( L q; i4 Q/ w- D, { - ;;; (Rights in Technical Data and Computer Software), as applicable.+ w( h9 [, d, U$ q9 j
- ;;;# M& t- [1 Z5 M' z5 b( \
- ;;;.
4 c3 Y& i+ C7 e: }3 }0 p2 v* z. N - ;;;1 E$ S% H7 k9 W. j
- ;;;----------------------------------------------------------------------------
7 B/ v+ z4 G' b# P0 c/ j - ;;; DESCRIPTION
8 y- N9 e- _) [/ o - ;;; - ], O# i- P7 n0 _- v" o9 D
- ;;; Chromatic Pallete style color selection dialog.
+ M! t! f- U; S) |0 R, t - ;;;
+ Y! V; q+ B! `: r* b* |6 j - ;;; Globals:' ~+ K$ x: o, f) L" J& H7 `' N
- ;;;
4 p" I- O' X# L9 E5 T# E( W8 z: I2 h - ;;; chroma_color - Integer color index. The last value selected
2 G8 _9 j5 t1 C2 t Y - ;;; by the user in chroma dialog. It is not cleared or reset. b: h A, O N8 {9 ^5 g
- ;;; by a cancel. Only used for communication between callback8 S9 _$ j: p# r0 M! z( m$ |( P2 c6 h
- ;;; functions and the (chroma) funciton.
1 e( }0 j# X* P3 C9 `1 A1 a - ;;; 1 [. N F9 U7 X( m6 E6 N
- ;;; Depends on the definitions for the dialog provided in chroma.dcl.0 U7 V9 M3 s- c
- ;;;
0 [! f+ w8 `! e+ r - ;;;! @3 `7 M* E- M0 q
- ;;; C:DDCOLOR -- Dialogue front end to the CECOLOR sysvar. Uses the chroma ; P- I% d9 ]2 M5 X
- ;;; pallete style color selector.* C, r9 S, O, r" v5 Z+ F
- ;;;
e1 p0 C* `9 Y9 [ z: Z - ;;; ===========================================================================
4 d1 F$ G1 i2 y' g - ;;; ===================== load-time error checking ============================
* t" E9 }3 ]0 T - ;;;( J, ?6 N0 r+ j# @) _$ n; l
- 0 E3 p- P, s( y3 a4 Z1 m6 B9 Z
- (defun ai_abort (app msg) h5 s. T q5 s o5 o+ {
- (defun *error* (s)8 M2 S2 S) s9 o3 g6 |9 Y
- (if old_error (setq *error* old_error))8 a( i m* i; F
- (princ)
3 b9 B- Q4 p6 V* a, q - )
4 X# g# z+ T0 J$ h4 X5 h5 J3 M - (if msg
6 B# c$ T2 e# u3 ^ - (alert (strcat " Application error: "% |! f6 t6 O9 }8 x
- app+ a. T( B( x" ]2 G5 Y2 D7 n8 y
- " \n\n "
) ~7 [6 Q0 B+ s7 ? - msg$ y- \0 w. F! O, M/ z
- " \n"% S) g, I# t/ ?+ c% q
- )
$ _, s$ T! A5 n( ?2 e& s0 l% c - )1 [" P: v4 B" l" Y2 V
- )/ s4 h" r8 y( i7 J; E0 s' i# [
- (exit)
# ?# f2 p5 i$ T: N7 q) Q" B - )
7 V! _2 `% x$ @! a: m% T7 W1 Q- g - 0 {: d, o; T& C, s0 E2 S& F1 ~/ c
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
5 z; k" H+ `6 z" D! J9 ^9 K6 |0 [# ?9 V - ;;; and then try to load it.
- Y) I+ x3 w( W1 ?8 g. m* a9 k - ;;;" A6 n% p" O1 s7 L
- ;;; If it can't be found or it can't be loaded, then abort the
6 Y% D( h, _7 c# V! M. _ - ;;; loading of this file immediately, preserving the (autoload)# Q4 F% G! _, h6 s
- ;;; stub function.) }9 y; l8 z- [
! e$ V' o* Q5 G0 ~* Q$ M# H+ H3 p- (cond! n3 X2 k. A* y5 Z& }2 p
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.6 J& ?6 F; g: f4 z
* k6 }. |( [! H" e8 B6 N- ( (not (findfile "ai_utils.lsp")) ; find it1 q0 f$ U/ q, a) w% A6 ~* B9 y
- (ai_abort "DDCOLOR"5 {4 V2 u( L; \0 J2 \
- (strcat "Can't locate file AI_UTILS.LSP."
4 \. _ Z* m+ ~5 M - "\n Check support directory.")))
: r8 Z$ J" y8 _, o2 I6 W T
6 n& E J2 p2 |; n! {- ( (eq "failed" (load "ai_utils" "failed")) ; load it
4 m' d. Q2 K7 R# H* l0 c$ ? - (ai_abort "DDCOLOR" "Can't load file AI_UTILS.LSP"))5 S2 i& T u6 ~& y7 |) P( X5 [
- ): e' U4 \" Q) i: M4 h( d% T/ }& s
- 8 O) t0 g ~" c
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
& h: A3 W0 W9 H' P' A - (ai_abort "DDCOLOR" nil) ; a Nil <msg> supresses
o+ F: I; y. [) g: J) T - ) ; ai_abort's alert box dialog.
7 F6 m3 I7 K/ O+ Z; [- j! b
, q6 F. B# }8 e W5 ~$ ~- ;;; ==================== end load-time operations ===========================5 g6 ?$ t, U2 W) A6 ^' p, T' V# U
* u' ? _" d$ i# m. y- (defun c:ccc (/ co_oce clrx co_err co_oer lay_clr)6 T; u/ q0 {9 u$ ?7 T
-
, N; ?2 X+ j( `7 S) g9 I' [ - ;; Main Color function, called by setup code.
' l7 x W* h B- Z - (defun ddcolor_main()
6 ~* p! G0 Q) j+ ?
9 A5 V$ G* s, _; [) i7 B9 D- (graphscr)8 y0 P7 K6 j6 x2 s: E: ~2 {1 d
- . ]' ^+ g* I1 y2 z) ]* P
- ;; Get the color of the current layer, for possible BYLAYER color swatch.' k+ O6 a6 w5 U: ^$ w! X5 T
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" (getvar "clayer")))))
, w* ~* O9 X% Z- J$ m6 _1 J
3 t( x# K/ K' o c/ h; w1 G( g- ;; Call the dialog here...! r) H5 ~% v. W0 x1 H
- (setq clr (acad_colordlg (cstoci (getvar "cecolor")) T lay_clr))- a+ d# N) b4 Z6 U, D. \" I6 _
9 Z, U% w% h& d% u: V6 O K- (if clr
5 k; j7 S9 t: J/ n - (setvar "CECOLOR" (citocs clr)))$ v/ a& }9 t* ~, }
- )+ M% y2 Z/ Z) V( O0 v( R
- 0 L8 o, p% ^: x. \9 @( N( N
- ;;;
- l5 d6 S: T2 G+ f - ;;; CSTOCI -- Color string to color index( o0 l8 \* q! ]; I" M
- ;;; Convert an arbitrary case string into a color index.3 S! z" Y% o1 `* }& Z1 L7 g
- ;;; Returns nil if string is not a valid color.
+ t' G9 X4 ]' g( @3 u8 | - ;;;
( l9 M1 i/ t, z* n( T - (defun cstoci (str): ?+ _- z* E" O0 L* }, C; H
- (setq str (strcase str))" J0 h$ _! G; b- E& ?* x1 m5 ?
- (cond K" r8 G8 \6 \9 F+ V( ~6 c; I$ H3 R( T
- ((= str "RED") 1)5 o$ U- F! h7 y6 m
- ((= str "YELLOW") 2)
( e) }5 c( z: M0 J) H" i5 u. L. X - ((= str "GREEN") 3)/ v- C) [; C4 v6 b9 W4 {
- ((= str "CYAN") 4)4 }1 ]5 ] e. W1 ]9 ]
- ((= str "BLUE") 5)
1 [4 g, c" d1 L. l) w - ((= str "MAGENTA") 6): w: {1 S) _2 a! V& J4 P; n
- ((= str "WHITE") 7)+ P& E0 C+ @: N, x# s g( I2 O
- ((= str "BYLAYER") 256)% ?; Z* }/ E' q- g( l# u- I
- ((= str "BYBLOCK") 0)% {' s5 i8 a/ u) G6 K I: Z. _ s
- ((= str "BY LAYER") 256)
* F7 ~4 | @( | - ((= str "BY BLOCK") 0)
9 p4 n1 l; p5 A# ]3 O& S8 s - ((and (< 0 (atoi str)) (> 256 (atoi str))) (atoi str))$ R+ M# @2 U7 P$ H8 G6 E
- (nil))
3 ?4 T) J3 U. a - )0 w/ c a$ S" q7 Q* f/ [' h
" A# J+ \, _' X/ J" S& D. k- & o8 V3 |2 R2 D& B7 R, h5 P
- ;;;, Z% u' {9 m) V$ Y" ]/ T
- ;;; CITOCS -- Convert color index into standard color name.
- G8 i; B, Z3 G& ?9 b+ L - ;;; Will return the standard and logical color names as text6 N" f9 s. b# e, f4 G0 H: I# [
- ;;; strings. Returns nil for out-of-range color indicies.9 G2 c% G9 D8 N$ c7 W
- ;;;
/ z+ `, e/ L- M% X7 y1 M8 K; e9 X0 w4 N - (defun citocs(i)0 n3 `1 |3 x' m7 V
- (cond6 I# V6 e8 k. @2 a; n
- ((= i 0) "BYBLOCK")* G5 }# V3 v! T' \
- ((= i 1) "red")
" h' J1 W) g' }! D( P4 W - ((= i 2) "yellow")9 t: B4 b) N* E$ p+ T: c
- ((= i 3) "green")/ A. i3 `' A& |+ o
- ((= i 4) "cyan")" ^0 k6 L* L" {# t8 i$ K" x
- ((= i 5) "blue")9 X/ w) _/ P8 ^* `1 u" r8 g
- ((= i 6) "magenta")! {* V( m2 K% A/ f. T3 s
- ((= i 7) "white"); U1 L# H1 m/ m3 J( A8 u
- ((= i 256) "BYLAYER")
6 C8 e5 @; K" P0 [7 ` - ((and (< 0 i) (> 256 i)) (itoa i))
! o0 l8 N, v: |, B, h1 i8 F# A f - (nil)); w9 `: p2 X, u6 X. ~
- )
6 b2 {" p! X. P) V% P [1 h - & K& y4 u0 h3 C. m' l
- ;; Start of ddcolor
: d- u0 p. U5 b0 y% l - (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho8 a* G$ h4 }- ~2 }
- old_error *error* ; save current error function
4 I# f4 H$ U J9 L q( t - *error* ai_error ; new error function b# @# H% C: C M6 v2 q1 Q" b8 g
- )
' z' t+ s" z* Z% V# w$ p, L - I& I3 X4 u8 `
- (setvar "cmdecho" 0)$ _# ?8 A; y, M! p7 S; Y% Y
9 }9 z' N- v: x0 G+ ?7 L8 `- (cond3 E8 r4 T! S/ B2 }4 u' i# {, h
- ( (not (ai_trans))) ; transparent OK
9 Y, E, d6 U, |3 S* ? - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
5 v0 L: i2 O1 k% p - 1 ]! T1 g/ W/ l* W: S! g; h
- (t (if (and (/= 1 (logand 1 (getvar "cmdactive")))( ]0 w x6 J1 d; w2 C u
- (/= 8 (logand 8 (getvar "cmdactive")))$ ^2 d. f1 }/ }1 Q+ E: Y
- )" i/ Q7 }+ T. _3 [, t
- (ai_undo_push)
. `1 @" E2 ^7 q& R+ j - )3 L' T r- p2 b' U% @; y- v/ Z9 n
- ! O8 p. ~9 q- S& U
- (ddcolor_main) ; proceed!+ P4 e t+ e! f3 V. K7 p
3 j3 s: i5 R0 k* [( O/ a: m2 H- (if (and (/= 1 (logand 1 (getvar "cmdactive")))
& M- B% l9 |; j' Y1 c - (/= 8 (logand 8 (getvar "cmdactive")))
- m; K8 I% [: a) ^# Y1 F# E+ J - )
. z8 y3 v6 C2 n5 q/ k9 c - (ai_undo_pop)" D* Z6 W; w, E$ g, R
- ) z! k/ F7 q {
- )7 ` h& Z* G# N# Q
- )% B9 Z8 t# f4 G4 g* l, Z
/ R1 U- s5 a, p v1 @- F" m- (setq *error* old_error)
# b4 ? C% r* k0 D3 @9 g- v, X3 D( @ - (setvar "cmdecho" old_cmd)
( m' D+ Y. A. h4 I5 {4 X - (princ)9 r: L+ Q3 L+ D7 u
- * r, E/ `+ d! l1 ?5 q
- ), L2 i; R" M2 P& Y9 b# D7 I
- & ?8 o% J6 {" A
- ;;;----------------------------------------------------------------------------2 q" }' l! y* ^1 t# i6 l5 N: C
- 3 p9 \8 q* R9 ?" y; b+ V3 @) \
- (princ " DDCOLOR loaded. ")
8 Z8 d6 `9 \3 W3 a% m - (princ)
, J* a* I, n3 U' O- a6 o: [ - ( [. u o1 `6 u& j8 S7 o8 ?! j
- ;;;--------------------------------------------------------------------------;8 f$ M) m& d: G ?3 P
- ;;;---------------Chon NHANH Nhieu Doi Tuong GIONG THUOC TINH----------------;& g9 Q' x5 H, r X
- ;;;--------------------------------------------------------------------------;
, }0 Y. K0 Z! o; s$ w( L% ] - ;;; ssx.lsp
5 z4 i* S) P T. S3 P - ;;; Copyright (C) 1990 by Autodesk, Inc.% B# P3 c' m2 W+ B" B |+ d. w# h
- ;;; Copyright (C) 1991 by Control Systems, Inc.5 Z4 ^3 n. ?7 x
- ;;;
# d3 s9 J& B1 T2 l. z- S, P - ;;; Permission to use, copy, modify, and distribute this software and its
& Y* \5 b- e& \5 T. c2 i, t/ a - ;;; documentation for any purpose and without fee is hereby granted.
6 J) ~( y! A# l- P; g, b - ;;;
5 V3 q) y7 Q1 r! C! l - ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.: `9 E1 @( G" t; T4 [5 }" H3 x
- ;;; ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF
% C, P. o/ M- ]) i - ;;; MERCHANTABILITY ARE HEREBY DISCLAIMED.& m! ~! d/ h9 e
- ;;;, U Z, t' U( b3 L2 Y0 r9 f
- ;;; Larry Knott Version 2.0 7/18/88
8 W' ?3 F/ q2 x E1 M6 d# d4 U2 D - ;;; Carl Bethea & Jan S. Yoder Version 3.0
6 J w+ ~; n: ~$ u1 U9 H - ;;; Enhancements to (ssx).7 J' o$ x0 U7 i' }+ W
- ;;; 15 March 1990
9 P, M6 T& D2 e+ T - ;;;% m- c3 Q9 o+ F1 M9 j7 S
- ;;; ARTIST Software, Inc Version 4.0 December 1991! c( D" E$ l# P2 k# h, I- m2 d
- ;;; Modified for FLEXICON usage. If the variable FLEXVAR = 1,9 ?9 F m9 ^' d0 p! {. Y! v
- ;;; use Flexicon menus
; l/ A. ?1 a# k x+ e4 A4 M0 z' U0 T - ;;;, j1 l( I" Z- ^/ @; w
- ;;;--------------------------------------------------------------------------;) G- W) a, I- L5 B( Z2 ~
- ;;; DESCRIPTION+ G R6 l& o4 m& a2 }+ S0 b d$ i
- ;;; SSX.LSP ! q/ B% n1 p, l. I! k2 m! W
- ;;; # h& w5 q2 ~( b2 ]+ b6 U" I
- ;;; "(SSX)" - Easy SSGET filter routine. . N& e" q8 O/ f) ?! |
- ;;;
) i' C1 U9 y) e" N; M G - ;;; Creates a selection set. Either type "SSX" at the "Command:" prompt ! p4 y( f& ?, F9 k$ m0 M
- ;;; to create a "previous" selection set or type "(SSX)" in response to 1 ?6 m d3 X- ]5 H
- ;;; any "Select objects:" prompt. You may use the functions "(A)" to add % Y) I6 `. G( R" B5 h% y! h5 f
- ;;; entities and "(R)" to remove entities from a selection set during
0 S3 h2 i- ]' J7 `) H4 d - ;;; object selection. More than one filter criteria can be used at a
& h: s$ R+ G2 ^) i - ;;; time. . @ i K1 v$ {: ?- N5 z/ Z% [" p# m
- ;;; + H# H3 l" S3 Y; E
- ;;; SSX returns a selection set either exactly like a selected
, a0 d" v5 z+ V5 s- |( ]0 D - ;;; entity or, by adjusting the filter list, similar to it.
7 B( X7 A Y3 ^& V4 }: F. n - ;;;
8 O6 p7 { L" E) h2 ^) q - ;;; The initial prompt is this:: }' U! c7 o6 y1 R
- ;;;
$ u% j: E7 b. @ - ;;; Command: ssx
) k9 P7 d2 S. c; n% \* y" b% b7 C - ;;; Select object/<None>: (RETURN)/ K" d% e. V" B% e
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
% C5 U1 Y( W0 W5 e' h: G/ _4 t - ;;;
, ^# G# t1 d- {1 J. P3 I - ;;; Pressing RETURN at the initial prompt gives you a null selection
+ z2 X& J" T8 n9 \ - ;;; mechanism just as (ssx) did in Release 10, but you may select an
2 A" c$ ~, n1 s+ c7 C9 ` - ;;; entity if you desire. If you do so, then the list of valid types
# H( ?# O% b1 f& Z: f( G0 b8 y0 v - ;;; allowed by (ssget "x") are presented on the command line.
b1 n) X, B7 x - ;;;
- N! h3 B0 {! Z: K# N5 j- C - ;;; Select object/<None>: (a LINE selected)
. {+ U+ z4 ?! p M - ;;; Filter: ((0 . "LINE") (8 . "0") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0)) # u3 G# [$ u6 Q$ E+ e) |% U
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
' x5 o$ W# h8 F8 X ^# u8 q - ;;;
! ]) ]+ D: P% o& r0 F - ;;; At this point any of these filters may be removed by selecting the
, T5 K* B* P& s) [" I) s8 t" C - ;;; option keyword, then pressing RETURN.
! @# v) e: w" l8 ]" W+ K - ;;; 0 d# v- C J; Z5 x5 u
- ;;; >>Layer name to add/<RETURN to remove>: (RETURN)
: s( n6 r" D4 Y/ f$ `' B# A - ;;; 5 I+ ]) f) Q9 t* g# a }8 J1 X5 Y
- ;;; Filter: ((0 . "LINE") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))( o3 [' E' u1 v3 V' X5 J
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: ) J. L2 J! G+ ?# m- P
- ;;; 7 `4 H' R6 z4 k8 S4 D0 O+ k1 H
- ;;; If an item exists in the filter list and you elect to add a new item,
# Q- t+ B7 C- c: s4 v2 W& G. W7 ~& | - ;;; the old value is overwritten by the new value, as you can have only - E8 D, B/ \+ n9 u9 o1 l3 S4 D
- ;;; one of each type in a single (ssget "x") call.
! H0 n5 Q f, x) P! u# k" ~$ g/ K - ;;;4 `, I; n! B' p1 K) G
- ;;;--------------------------------------------------------------------------;" J7 ]4 }0 i+ P# W: }
- ;;;
$ g7 e+ ~/ R$ L2 C" l - ;;; Find the dotted pairs that are valid filters for ssget0 n# F# {' w5 E3 C% Q$ n
- ;;; in entity named "ent".
& @6 }/ z9 ?6 Z$ y( q - ;;;: e# O% l6 F8 S- l; u5 z4 ?
- ;;; ssx_fe == SSX_Find_Entity5 z3 G2 ^4 p [6 G6 t
- ;;;* q% W3 ?8 D( Q/ G9 c( H
- (defun ssx_fe (/ x data fltr ent)" j& \' J4 @0 A7 D
- (if (and (= flexvar 1)(/= t2 "Pick"))
/ l! F! I5 c i/ x: e: O) K' t - (setq ent nil)
, Q. O, o% B; l6 s8 {* D - (setq ent (car (entsel "\nSelect object/<None>: ")))
; ]+ s. u3 g* W! w - )
# {9 h9 y- B* ~' ^2 G - (if ent- s+ P) A/ e6 ~% H/ \; Z
- (progn2 \# ~5 L0 g8 `5 Y" |
- (setq data (entget ent)). [5 t- I% u9 [8 n) v1 x
- (foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 38
" l @3 w! g* t" K - (if (assoc x data)$ e8 V4 d1 F5 {
- (setq fltr $ [2 H' l, W% f" V6 N* l
- (cons (assoc x data) fltr)% e1 o, T: z: x4 x
- )
8 Y' I2 w9 ]3 m n - )
* I+ I& V* i# z - ) 0 i, M1 ?2 g8 P, Z% W
- (reverse fltr)
3 i& U( Q' D9 C" O - )
( Z7 m& h0 P2 d. B( H) b - )
5 q- S- {% M2 s" V5 v9 @; w - )
" \0 `5 u3 |7 e - ;;;- R4 G$ U; O( z4 A6 j
- ;;; Remove "element" from "alist".
0 a% G9 }! F& w; d! W4 C9 G' t - ;;;" Q9 i' g0 a! f, N
- ;;; ssx_re == SSX_Remove_Element3 y/ Y0 P' C, H9 x3 A
- ;;;' z4 d5 ]* D# u- M! V
- (defun ssx_re (element alist)
4 x- H# @, ?# \ - (append5 G! Y( q, g, D% J6 R/ I
- (reverse (cdr (member element (reverse alist)))). e1 S1 q, Z0 L) Z9 `
- (cdr (member element alist))
7 t0 f: @1 {7 e# U - )/ k# _3 W$ u X5 J) u# L" `. Q
- )
+ \! ~' Y& G, `/ f# u) X - ;;;
- _% ]7 B$ o: k0 c - ;;; INTERNAL ERROR HANDLER
9 | r2 j1 b: v& K. ? - ;;;$ W/ T! d5 v+ p3 N9 s5 z$ Y
- (defun ssx_er (s) ; If an error (such as CTRL-C) occurs
8 e) y3 e. X/ I$ a' A. A& I3 T. G - ; while this command is active...
; u3 p& u1 K G2 K* @ - (if (/= s "Function cancelled")
z6 R$ L+ O1 q' B6 `4 U6 J2 l/ p - (princ (strcat "\nError: " s))
5 [7 ^/ r* m. Z" @8 @7 y - )% s: ~& w- e% ^ K8 c
- (if olderr (setq *error* olderr)) ; Restore old *error* handler5 N/ l8 v2 m" V2 o& x/ m# F
- (setq flexvar 0)
8 |0 e9 H" m& W, t7 h' X+ b; B1 t - (princ) c$ B% A* H7 y2 z
- )
# P. k! s% V$ n+ o9 R. J- } - ;;;
- x; [- R2 I9 ` - ;;; Flexicon call routine+ @! G* T9 C! P3 Q" j
- ;;;
5 B8 ^# u/ N' a r4 m - (defun flexmnu (a)$ ~9 v4 X- {5 |) C
- (if (= flexvar 1)7 w2 A8 ^+ f7 \
- (command "FLEXICON" (strcat "FLEX" a))
- r. A: ?, c' k: u - )4 t" }! o- G3 X3 T- f4 }& Z0 b. V
- )
% c! l: h) l) K4 z& o$ c
% z. A& X# L: B2 a! }! [# y/ u4 \- ;;; " B9 r0 R* ?+ U8 `5 O& K
- ;;; Get the filtered sel-set.
; K) J( u! L( M2 ?& Y0 X; X+ u - ;;;
8 X' l5 |2 o! t1 _9 s - ;;;) S7 D6 h8 t/ t, ~" ?. V
- (defun ssx (/ olderr). `0 ?2 [& s- t3 X, W
- (gc) ; close any sel-sets
+ G, D* s" H2 `+ c) ^ - (setq olderr *error* 7 F \, F* j' D& ?' M; |/ o$ G- M# m
- *error* ssx_er $ _: k. K/ I8 b) h; J) H
- )5 p" T4 T! _3 U# x. _
- (setq fltr (ssx_fe)) 4 `% L: H3 j/ ?+ q% S/ }. X
- (ssx_gf fltr) 8 E: x5 [; A, g9 A9 o
- (if (= flexvar 1)0 b6 p% _; q( w7 `3 F
- (progn
# X+ \8 u# q3 O - (prompt "\n \n \nNow select the required EDIT command and (P)revious.")/ `" B9 l9 E- o: z L
- (flexmnu "EDIT")& F2 G/ \; Y( D( O/ @) |/ O8 Y% m5 z
- )
8 h3 k/ n0 c8 g) D8 M, \, \' k - (command "p")
9 n) Q# N& g; d - )! x% `: ` v1 N% P5 T
- (princ)
) R! k- e; P) S! `# P p - )
9 ^8 z8 S3 r4 B4 y& @6 X8 W9 b/ C - ;;;
+ @5 z8 c' p5 k - ;;; Build the filter list up by picking, selecting an item to add,% \5 w* ^; J! t/ u x9 `
- ;;; or remove an item from the list by selecting it and pressing RETURN.5 T( r5 z- B5 d' ?9 n4 F8 R- Z) m
- ;;;2 l$ s0 |# ?0 z4 h. Y9 _$ o
- ;;; ssx_gf == SSX_Get_Filters. D# {8 g( H8 b) W t& C! W
- ;;;5 s) Y" V3 v9 d" d$ p/ [4 x
- (defun ssx_gf (f1 / t1 t2 t3 f1 f2)
& ^/ [" y. P. w% M - (while
0 D! N9 V( Z! E6 Q4 Q& G, h - (progn
' x/ Q1 j/ X4 \& F; A# u6 c- S - (flexmnu "SSX"): Y: g% c1 X* C6 n( e
- (cond (f1 (prompt "\nFilter: ") (prin1 f1))), p) e, t; A# B4 n
- (initget
! {1 t* I" l; J" M+ M4 P* z- o6 s - "Block Color Entity Flag LAyer LType Pick Style Thickness Vector")/ Y' o g1 a) R6 s1 p, R
- (setq t1 (getkword (strcat
/ b9 R2 e* h9 a6 x - "\n>>Block name/Color/Entity/Flag/"! ^1 _4 {* k) c" @
- "LAyer/LType/Pick/Style/Thickness/Vector: ")))
3 H5 Y9 n% h; q$ u0 R - )$ d, \7 T2 ^: G* @# f |
- (setq t29 n+ d0 b G- R+ v& V1 ]1 e3 b
- (cond
+ D- w/ b8 q. Z4 Z! m - ((eq t1 "Block") 2) ((eq t1 "Color") 62)
* m7 b* n4 e2 o7 n - ((eq t1 "Entity") 0) ((eq t1 "LAyer") 8)4 m; [% Q% m6 n" ~) w
- ((eq t1 "LType") 6) ((eq t1 "Style") 7)( O: I, ^ a6 r$ H
- ((eq t1 "Thickness") 39) ((eq t1 "Flag" ) 66)7 ]8 o8 E1 T! s- N2 ]- w u9 |- U
- ((eq t1 "Vector") 210)5 ^% W# V R- K" z5 D
- (T t1)
' O% Q, o. W# S+ w" Z* I9 A - )! Q9 m# E* j1 w
- )9 I2 p( J) l4 w% ?1 b2 P) J3 ?
- (setq t3
( l' w* E; B$ ? - (cond' u1 ]5 Y- y! ?8 b- ^# t
- ((= t2 2)
' W e8 H) k" e; `( y$ E - (if (= flexvar gtads 1)1 q" S+ F4 k+ _, o$ w$ @6 e
- (progn
0 M/ }( W L! G7 h y - (prompt "\n>>Block name to add/<RETURN to remove>: ")3 Y$ g8 Z. f+ c4 J- N0 x
- (gttable "BLOCK")2 M/ Y0 u# |9 B! ~: ?9 k1 V9 R
- )# Z! o4 v8 J% s; v1 z) i$ X4 C
- (getstring "\n>>Block name to add/<RETURN to remove>: ")+ Y! S$ z+ Z, U: h
- )
$ l/ Q3 t: }* S - )- y% t/ M' e8 a* ^; r
- ((= t2 62) (initget 4 "?")6 m7 t! P# }, S6 L( d, a5 r$ J
- (cond* U4 N. p) V; A4 I
- ((or (eq (setq t3 (getint
8 a7 S3 F* |- T2 T - "\n>>Color number to add/?/<RETURN to remove>: ")) "?")
6 t( J$ C6 Y' h" x) b- w- _3 c - (> t3 256))
# v" G. c% r2 l( y - (ssx_pc) ; Print color values.
& u( \5 @+ R+ m5 e4 k4 N# m* J - nil
7 H& N. |. T- _( N7 a' b - )" u' H2 {2 }% R: l# L$ ]
- (T
! Z% M8 s4 K' E - t3 ; Return t3.
, u1 @9 |! S0 L$ [9 ~ - )
5 ~' ~0 p5 y" ]3 O: H, ^. G - )
! O, K8 e9 j6 W* m# q - )6 P3 M' t: @5 c. T# J+ j
- ((= t2 0) (getstring "\n>>Entity type to add/<RETURN to remove>: "))
& n' e3 W* B4 l - ((= t2 8)
% r! \; J9 N4 m& R6 A/ V - (if (= flexvar gtads 1)
9 J; S% @0 a4 W; z0 g2 n: |$ a - (progn5 [& T% ]" F3 u* s$ Q5 N+ }
- (prompt "\n>>Layer name to add/<RETURN to remove>: ")$ O8 y' l3 n* ]6 v7 n8 M* S
- (gttable "LAYER"), Z; k/ T* O7 ?+ W+ Z
- )
0 }! A2 h K. N" A' Q - (getstring "\n>>Layer name to add/<RETURN to remove>: "). t$ l$ @% @2 N( w! ^
- )1 J: H" X! w0 V$ F
- )
1 t7 i8 C8 W& x. _: r - ((= t2 6) * d5 @3 A. {5 X" `% c8 d
- (if (= flexvar gtads 1)
% y! E! W2 x" h- z. k) P - (progn
8 D1 ~# b( N+ w6 X* Z - (prompt "\n>>Linetype name to add/<RETURN to remove>: ")
/ A; V) @9 Y2 x9 r6 i - (gttable "LTYPE")
/ }* d% v- A+ b1 u( g - )
6 ] R6 j- q0 _ - (getstring "\n>>Linetype name to add/<RETURN to remove>: ")
' g- I- M5 D* o7 P" y% b7 [ - )
" {) U2 t B* ?$ A5 X% S - ) E; }, P& d' o8 c- P2 J2 c
- ((= t2 7)
, d H2 x3 |- a& \1 a - (if (= flexvar gtads 1)+ h J) K, [$ @) f* s! `
- (progn9 {' X/ W& S& s* [9 x/ r1 c
- (prompt "\n>>Text style name to add/<RETURN to remove>: ")
+ D# Z) V; u& S$ D- U( M2 p; a - (gttable "STYLE")( D- @% f& w. U& V% K1 }4 f" [
- )- i. Z5 A9 v& S% ^; l
- (getstring "\n>>Text style name to add/<RETURN to remove>: ")) ^5 g, h2 ]" Z; ~* ?
- )# O2 p) y7 g/ f% U0 y- V" @$ O
- )
$ `% w& q$ ^7 V9 i" a/ z - ((= t2 39)3 B7 i* @0 q: p% E/ H4 r
- (prompt "\n>>Thickness to add/<RETURN to remove>: ")
3 c& J6 C3 H1 w - (if(= flexvar gtads 1)(gtfnum"Thickness to add:")(getreal))6 o. C( O4 s. o' Q' @
- )
2 O5 r0 P% u9 X - ((= t2 66) (if (assoc 66 f1) nil 1))' {+ M C" f, N5 B! r
- ((= t2 210) , i& N: G# u. K7 ]6 i5 [0 p
- (getpoint "\n>>Extrusion Vector to add/<RETURN to remove>: ")$ i6 J# ]* K2 Y% }% ~$ [
- )0 o3 T0 X9 C a& r- P) c# Q
- (T nil)
4 {$ x, i s' ]( A - )# ?5 _, V8 O! a/ t$ v
- )
8 A T8 I2 J8 t+ E4 `# r - (cond
3 N. k. A% [0 X" K% B - ((= t2 "Pick") (setq f1 (ssx_fe) t2 nil)) ; get entity- T5 _& F8 R' \9 `
- ((and f1 (assoc t2 f1)) ; already in the list4 v7 X; w% v5 S1 f: @
- (if (and t3 (/= t3 ""))
$ w0 W1 j& T4 K, F - ;; Replace with a new value...
% a1 U9 A1 `: J8 m- e3 ~ `- p - (setq f1 (subst (cons t2 t3) (assoc t2 f1) f1))
9 @- y" V1 ?% \- r9 K/ x3 y - ;; Remove it from filter list...
7 a+ F0 ^+ A) g! Q) o/ k - (setq f1 (ssx_re (assoc t2 f1) f1))
) {6 K4 p$ L9 F3 G$ z1 w - )
0 }! _ y8 Z+ H; P - )
3 M1 O5 G1 z) Z9 Q - ((and t3 (/= t3 ""))' i+ C0 l' O$ E2 W7 d. {9 M$ { u
- (setq f1 (cons (cons t2 t3) f1))
. p( U6 n8 o* y$ R1 j6 J - )9 I' k/ w3 n% O; k9 i8 T3 [
- (T nil)6 c2 e/ U! V) ~' i! N, C% |5 u
- )
8 w f) N/ g2 r/ ~3 n - )+ b: ?+ g; U T/ E) [7 m
- (if f1 (setq f2 (ssget "x" f1)))
0 p, F. {+ M0 Y) Q' N - (setq *error* olderr), Y9 q- o. H0 k5 [# t
- (if (and f1 f2)
) P) L# l/ H" a; k# ? - (progn
7 }5 P x: t, K- ] - (princ (strcat "\n" (itoa (sslength f2)) " found. "))
0 D4 f3 N" x" l- a ^( P8 S, | X - f2
' d5 I4 P" y% e0 x; C7 X& w/ u) i - )
7 y6 O- K: m1 v7 Y - (progn (princ "\n0 found.") (prin1))
. l4 m! ~0 m6 |% z2 P/ }4 q& {' ^ - )
( s4 r* A5 d' z& @/ X( G - )
( j2 G5 Z4 g3 K3 J" V& z$ j - ;;;9 J+ }% R+ m! B6 Y
- ;;; Print the standard color assignments.
6 |' [$ R$ h3 { - ;;;
0 o4 U g) d& o! } v9 p$ | - ;;;
0 ~* @/ X$ A. k' C - (defun ssx_pc ()# t+ _' [' V/ d' ~* r
- (if textpage (textpage) (textscr))! i/ a4 f: X4 D% U2 g
- (princ "\n ")0 p( B+ N( e& m! ]: d6 d
- (princ "\n Color number | Standard meaning ")2 { Y; @. C6 U7 \/ [+ z( S2 Q
- (princ "\n ________________|____________________")* Z" O! F; t- @. f
- (princ "\n | ")- j6 d6 J0 F5 @! ?: K y% \
- (princ "\n 0 | <BYBLOCK> ")
0 B* i& z5 z3 Q* |" E$ ]- X - (princ "\n 1 | Red ")
( S; P; q* F% _$ N1 `. ?( ^# z - (princ "\n 2 | Yellow ")
/ R3 L6 W7 c2 v' A+ q, c7 q2 F - (princ "\n 3 | Green ")- e( n/ k( F7 Z' u8 k- Q! y
- (princ "\n 4 | Cyan ")- A$ Q8 H1 l4 R S4 w0 ^2 E. U
- (princ "\n 5 | Blue ")
+ r7 s7 E& d6 W2 L - (princ "\n 6 | Magenta ")
+ j, @1 R- t# A* A0 q% ^. ? - (princ "\n 7 | White ")
1 |# Z; m; B S2 E9 m8 [4 V/ ~# f - (princ "\n 8...255 | -Varies- ")
2 E' F& |" ]! R5 K4 m - (princ "\n 256 | <BYLAYER> ")
1 G! h( x j+ p9 h% B - (princ "\n \n\n\n")
{) h* e1 j, a% J* m - )
& x7 i1 _2 x( x+ v7 [0 X' x3 ^ - ;;;/ z' Z! I$ ^; u g2 Y1 \5 j+ v
- ;;; C: function definition.
* @6 P5 ?) o5 u4 E( M1 i4 m7 d - ;;;9 J$ \# |/ O+ M$ @& c
- (defun c:ssx () (ssx)(princ))
/ D5 p9 V! y& W7 R! z - (princ "\n\tType \"ssx\" at a Command: prompt or "), `8 X" Q* \0 Q7 B7 C
- (princ "\n\t(ssx) at any object selection prompt. ")# j$ w* K# A' B4 ^ \( Q6 {
- (princ)
' c4 K0 ? l) s, N9 g
. q" A1 X( ~$ p2 b- ;;;--------------------------------------------------------------------------;
' [0 o: S. Y z& c' | - ;;;--------------------------------------------------------------------------;
) _4 g. J. W& m# G" p [4 [6 o* N - ;;;--------------------------------------------------------------------------;
R' X" q, ^7 \) S3 p; r3 O - (defun S::STARTUP ()
9 {) }+ W6 ]$ X - (setvar "cmdecho" 0)
j& g0 X9 D/ F% I - (setvar "cmdecho" 1)
: u1 J6 Y# j! X* O" l - (setvar "LTSCALE" 10)7 h* ~* }" t: I: P" q8 f
8 z$ [0 W$ B) k f! `- ;(command "_load" "chenKH.fas")/ p( p1 K$ E) H! U* y# l
- ;(command "_load" "ctcot.fas")3 A" t |$ U: w- `
- ;(command "_load" "damdoc.fas")- B( \; c* l) X8 ?/ b
- ;(command "_load" "ghichu.fas")
; Q/ H2 Y( D$ S+ d( v5 l" f - ;(command "_load" "hamtutao.lsp")# l8 q a+ V: N8 S% b1 `. G
- ;(command "_load" "KHOITAO.fas")
8 X2 h( C l4 N3 a9 ~/ Z - ;(command "_load" "KHthep.fas")% b" ]7 B- R6 }) o4 q! r" F) J2 K
- ;(command "_load" "mbmong.dcl")
3 A. I! @6 a1 B6 ?+ o - ;(command "_load" "mbmong.fas")( e; C* `* M7 D5 s/ b+ J
- ;(command "_load" "mccot.fas")) {+ B- t [- c
- ;(command "_load" "mcdam.fas")
. {+ [- E- l& i% G - ;(command "_load" "mcmong1.dcl")0 q8 N! v1 ]# }2 Q" B; H* A: s" e
- ;(command "_load" "mcmong1.fas")
5 O* d& D! I$ X' Z5 ]: G - ;(command "_load" "mcmong2.dcl")
C9 A; ]9 Z& ^+ s - ;(command "_load" "mcmong2.fas")
0 X+ ^6 g) n) I% w/ {3 o - ;(command "_load" "mcmong3.dcl")
, E. K+ @/ _$ d9 j1 P# U0 l, A - ;(command "_load" "mcmong3.fas")2 A& ]4 l& C, l
- ;(command "_load" "mcsan.fas")1 K; F9 Q) ~+ N* ?
- ;(command "_load" "thepdai.fas")
z" }/ M- a) H# K v0 g - ;(command "_load" "thepdoc.fas")
! x& v1 z. s& ? - ;(command "_load" "thepmb.fas"). @0 y ^/ B! Y0 r: f
- ;(command "_load" "thepphbo.fas")
5 ~( g" L. y& f# l3 |/ x - (command "_script" "thongso.scr")" Z- j: E5 Q. n
- ;(command "_load" "thongso1.dcl")3 o4 M4 ~" L) E3 ` k
- ;(command "_load" "thongso1.fas"); Y, ]1 I* N9 L. l+ X
- ;(command "_load" "thongso2.dcl")4 o2 W) l# o2 r9 L
- ;(command "_load" "thongso2.fas")' S7 r: n4 [) H% {: s
- ;(command "_load" "tietdien.fas")% o" n2 [% F, A( e( |
- ;(command "_load" "vehan.fas")
6 {9 d- p" P+ K- } - (command "_load" "phamDuy782006_TKT.lsp")
6 s$ d2 d6 J5 m8 Q! B - (command "_load" "phamduy782006ganhtd.lsp")
% e4 M9 N& g. V3 q0 I. | - (command "_load" "phamduy782006ganhtds.lsp")
( W! C& [* k9 z3 U: d$ C) b - (command "_load" "phamduy782006htd.dcl")7 e* z- q; g: Q$ r0 J8 ~0 v" ]
- (princ)
. E% M, ?' Y( l - )
" D. v' S! J6 |: ]4 T' p
4 P' w& t, X0 t- p% }8 F* n* a- ;; Silent load." J) K+ X; `; T( I. G
- (princ)' V$ u' k3 r" U- R# y8 B2 m% p* ]. Q
) f: ?# ?. j; U, R
/ r- f3 D i( q! }- ;; Silent load for the Express Tools.$ l5 v, a6 T7 }# t$ z
- ;; Altering this line will affect Express Tools functionality. x" }- d4 @$ _" k
- (load "acettest.fas" (princ))
2 h3 {3 C3 G4 c: t) i( o& {* ]4 Z+ L - �32
Sao chép mã
1 r/ a- a/ L- ~8 P00st Cách Thêm Menu & Lisp Vẽ & Fonts Chữ mở Gõ Chữ Administrator để Gõ
: ?" g+ K+ e# N. @/ f" X5 v |3 k |
|