|
|
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 |
- ********************************************************************************
: [( W6 h8 f( U% M8 v: B8 R# s5 s - * ACADLISP FOR AUTOCAD R.14 -> AUTOCAD R.2012 *
1 `5 H- [5 f n G# {1 K: c7 ] - * Tran Ngoc Thang DHXD-HaNoi41 from years 1999 -> 2015 *
: a: ?# l( \3 [: {/ ~ - * Suu tam & Soan *' @7 [$ X( M# ]% M. ]) J* v( _+ y
- ********************************************************************************
( \% l$ Y9 R# L# q
2 H l1 U7 w& j$ i) F% R7 \( d- ; Next available MSG number is 104/ |# U, P D- F- W* [
- ; MODULE_ID ACAD2000doc_LSP_
' c% B# S, C5 O5 J8 F - ;;; ACAD2000DOC.LSP Version 1.0 for AutoCAD 2000
- w( y8 v6 X, g, X/ ^) | - ;;;
8 C/ s& j1 `, A/ o - ;;; Copyright (C) 1994 - 1999 by Autodesk, Inc.
- k2 R+ ~2 ]+ w! {4 \$ l! { - ;;;
- e, a* e2 Q4 c" R- d2 n! c - ;;; Permission to use, copy, modify, and distribute this software
. ^/ b6 [& b3 l' w: E - ;;; for any purpose and without fee is hereby granted, provided. L) F* ?0 Y$ B) x. [6 @
- ;;; that the above copyright notice appears in all copies and
. U3 x( q) o+ a' Y - ;;; that both that copyright notice and the limited warranty and$ W: e& d# u/ E- `! @/ b _
- ;;; restricted rights notice below appear in all supporting6 Y; I7 U! _' L
- ;;; documentation.
% p3 c# q! F% e0 X4 R" q - ;;;
* w5 |6 ?: V1 L* O' `% A/ Z - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
% b& o4 g3 p& g" a/ x) ? - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
5 v# G8 E3 d% E9 o4 d - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.$ q& O6 S$ N6 Q
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE8 s2 @6 }5 a4 U- T2 K
- ;;; UNINTERRUPTED OR ERROR FREE.9 L( s1 \0 T3 `+ j
- ;;;7 l, D: [: l" C/ f
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to/ M/ p, Y# s, z0 _4 n" p
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer7 J8 j" f. X8 {: T# Q1 S
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) " i, \# g2 _- \' G/ `: _& B
- ;;; (Rights in Technical Data and Computer Software), as applicable.. u. Q! W7 w1 d& n# N
- ;;;
3 }1 h2 m" K0 Q$ H - ;;;.
. ~- }' q7 V- M2 v" X8 b& O( Y - ;;;+ i$ `7 z+ `3 t6 x1 E4 h
- ;;; Note:
% C( W# I- M" v2 G, j: z - ;;; This file is loaded automatically by AutoCAD every time
9 O" k/ V9 i4 `; n1 X: K7 d - ;;; a drawing is opened. It establishes an autoloader and
- [6 g. l$ `" x" G2 y - ;;; other utility functions.
( Y: O. P/ u: F) d! w - ;;;
* D2 v4 Z! G, g2 F - ;;; Globalization Note:
9 K6 |6 ]! b- h: p/ }- ]0 q - ;;; We do not support autoloading applications by the native 2 J5 C8 C8 [, n- u8 ?
- ;;; language command call (e.g. with the leading underscore- S3 _, z, F/ r, k; T" ] `
- ;;; mechanism.)
: K+ r2 r& `6 ~- s) Y
5 t. D1 c0 a" L4 R' R
7 H2 [6 n! t" T* T, f- ;;;===== Raster Image Support for Clipboard Paste Special =====/ \0 }4 E" a8 H
- ;;- `; U( u4 W; r: Y. C$ t
- ;; IMAGEFILE
& G0 ^. a. H( Q; ~& s/ d9 r - ;;
. {. E7 ?9 g+ L5 ` U - ;; Allow the IMAGE command to accept an image file name without
1 Z8 x$ R$ L) l3 K6 \ - ;; presenting the file dialog, even if filedia is on.
" Y1 s- E* g3 A: F4 g) g% {- l$ W - ;; Example: (imagefile "c:/images/house.bmp")
- l* K: f+ }( z7 `3 R# s6 @: C - ;;
! _' O# U+ j' Y4 h - (defun imagefile (filename / filedia-save cmdecho-save): I0 p) K# Y. E" S
- (setq filedia-save (getvar "FILEDIA"))
6 Y; K+ O- E' K0 t - (setq cmdecho-save (getvar "CMDECHO"))& l0 C% J1 n/ F3 v3 l
- (setvar "FILEDIA" 0); ^* f/ p. s: [ E0 ?
- (setvar "CMDECHO" 0)
+ E, U' v7 y. G1 |, ]% I, f3 d - (command "_.-image" "_attach" filename)
) { z3 p6 H) N6 O r( k1 k+ n& ^ - (setvar "FILEDIA" filedia-save), ~" ~, l; [/ m) p
- (setvar "CMDECHO" cmdecho-save), y* b |* h& L0 e
- (princ)# K! T2 Q: d# a9 Z: R
- )
p8 s z) ^, p) {* r) `+ J* A
4 k6 x4 C# @& J5 {- (defun c:zx () (command "zoom" ".5x"))
7 @" g7 Z: D7 d9 D1 n# U - (defun c:zz () (command "zoom" "p"))
7 J# j) y; _. [+ [! x - (defun c:za () (command "zoom" "a"))
7 a: { @( c: Y0 r - (defun c:zd () (command "zoom" "d"))+ z1 G @ s" [8 j8 d6 I# _, a, T+ [
- (defun c:ze () (command "zoom" "e"))
' D; d* {3 \0 M5 c: R) U5 K - (defun c:zr () (command "zoom" "" ""))7 O! H x: C4 u; @, a: H3 i7 `) `, p; C! v$ m
- (defun c:vv () (command "ucs" "v"))3 a* ~. `9 S$ Q/ b+ n, R6 c- v
- (defun c:co () (ssget) (command "copy" "p" "" "m"))
" t; C+ s, V& H - (defun c:c () (command "circle"))1 d- O4 T: |7 J; ^% f6 |
- (defun c:rt () (command "rotate"))1 c* `$ ?: ?8 @
- (defun c:3q () (ssget) (command "_rotate3d" "ANGDIR" "value" pause (princ)))7 R+ C5 }! M+ g6 \
- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))
7 p9 o- t5 [1 l$ A% G# ]/ B2 N - (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30")) ^; K7 r4 b! j, c
- (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))
: K; |2 Q+ [: p8 `. i4 n - (defun c:r5 () (ssget) (command "rotate" "p" "" pause "5"))9 C* |# \# N; N5 Y8 w. t
- (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))0 g+ x8 {1 D/ f+ F6 Y# I+ p
- (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
* L% ]# h9 ~* [0 }2 q" g - (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))
% D3 a+ \+ H% X. | - (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))$ f0 A6 l: {5 N2 n4 H
- (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))- F' E. {0 k/ S( [6 P# X' I
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))4 H+ W$ ?# T2 C2 H& I b5 {2 w, r
- (defun c:md () (ssget) (command "mirror" "p" "" pause pause "y"))
7 y" ]* C5 w) I. S5 Z4 N - (defun c:fd () (command "find" "p" "" )(princ))(princ)' T( c# u& Q+ S3 D
* R# t5 ^# |% b$ R1 B* c2 }- (defun c:romantdim () (command "-style" "ROMANT-DIM" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)& C9 e+ {* Z% r4 H1 _
- (defun c:romantext () (command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200""1""0""n""n""n"))(princ); U6 x1 \2 C1 L
- (defun c:vnhelvthuong () (command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1""0""n""n""n"))(princ)1 R1 z/ L5 p6 e0 V( D
- (defun c:vnhelvhoa () (command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500""1""0""n""n""n"))(princ)6 r1 y- W7 h- y; r$ Z+ n7 Q2 u' w
- (defun c:truc () (command "-style" "TRUC" "impact" "0""1""0""n""n""n"))) Z; |; r2 m. @* O9 \
- (defun c:chu () (command "-style" "VERDANA" "verdana" "200""1""0""n""n"))
% |8 l! m ]( o - (defun c:cot () (command "-style" "COTES" "verdana" """1""0""n""n"))
[# ?( V. {. F9 x5 @! B A* A
5 [" O2 _- l; n- (defun c:an () (command "-style" ".AVANT" ".vnavant" "200""1""0""n""n"))! f, z9 E. `+ b9 p
- (defun c:ah () (command "-style" ".AVANTH" ".vnavanth" "200""1""0""n""n"))
8 S( o3 ]- S0 ?- ^+ a2 d+ ` - (defun c:ha () (command "-style" ".ARIALH" ".vnarialh" "200""1""0""n""n")), N3 w+ x( }8 M2 W$ N
- (defun c:na () (command "-style" ".ARIALNARROWH" ".vnarial narrowh""1200""1""0""n""n"))8 ?+ ]* x9 J6 L. [; l c
- (defun c:vn () (command "-style" ".VNTIME" ".vntime" "200""1""0""n""n"))5 e H. e& ` ~ H6 ^0 L
- (defun c:vh () (command "-style" ".VNTIMEH" ".vntimeh" "200""1""0""n""n"))
% P" J4 w0 ]% d1 R/ \
% k9 V0 g) x' H( o: y2 K- (defun c:ps () (command "PSOUT" "CorelDraw-import-Photoshop" "W"))(princ);export the current view of a drawing as an EPS file
: X+ g% O* q" @: t% S1 A* P7 @3 J
U8 [8 }$ X2 a8 R( V9 r e! t" s4 D- ;free lisp by cadviet,cd2k44
3 t9 o8 @2 ^. i& y9 p - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830, ~; g( l$ X2 h$ [/ b$ h9 _$ ]
- (defun c:FTEXT (/ ent tstyle )0 u' {& ^- r# r! T0 S5 M, u9 g: W
- (command "undo" "be")8 k% a2 j& v$ ~1 Q" ]1 c, l) O
- (setq ent (entsel "\n Pick text :")): d7 |; }! B/ I) n O6 |
- (setq TSTYLE (cdr (assoc 7 (entget (car ent))))) Y0 }0 a3 C9 q1 @
- (command "STYLE" TSTYLE "romant.shx,vnh.shx" "0" "1" "0" "N" "N" "n")& [. J" b$ T- @$ a
- (setvar "TEXTSTYLE" Tstyle)
n9 m @( G: \7 M7 Y. \/ e - (command "undo" "end"), t" e) a6 m l, t0 s
- )
3 |, l3 p' A) }' O6 I - ;Cam on cadviet nhieu 27-11-2023 04h15p36s (thanks cadviet)2 a! k7 u/ s( m; [
- 3 {* U- z. `: l* f P# l& F( U7 W5 d
- ;free lisp by cadviet,cd2k44; J+ Y5 i* L* l2 E6 F C
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
" ?) I5 c# }" o. }4 Y& B - (defun c:Fvnh (/ ent tstyle )
9 [- [ S: c t6 k) [ - (command "undo" "be")$ s/ F* E# J/ n2 R2 E; Z: s& D
- (setq ent (entsel "\n Pick text :"))
0 A8 ~- m( R* }* ^: a! p' x& W - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
) b2 d7 b; {. l: F - (command "STYLE" TSTYLE "vnhelvh.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
+ d" x* U- g- t$ {# O# m. y - (setvar "TEXTSTYLE" Tstyle)& l5 E0 y! R H% P
- (command "undo" "end"). y w8 v: z' k- o6 ?! }
- )
3 `) u7 Q/ U& O# v! i4 Q% p+ M
/ b+ a( _0 q# r7 C' V. `- ;free lisp by cadviet,cd2k44
1 o3 x1 r" Q- v - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
/ i1 R3 Q# t( N7 v# r9 l - (defun c:Chbg (/ ent tstyle )% d" H% n5 v$ C
- (command "undo" "be")6 `. n: D) R% c# H
- (setq ent (entsel "\n Pick text :"))
9 K+ G V) e" T - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
1 C! y6 E. \! ?3 R+ u0 |2 C - (command "STYLE" TSTYLE "chhbg.shx,vnh.shx" "0" "1" "0" "N" "N" "n")6 \" `) _9 e/ k/ G: r& |! O7 E8 N) Z
- (setvar "TEXTSTYLE" Tstyle)% x$ s" N% J: O0 c
- (command "undo" "end")
: w! @7 ~, ]% c) P$ |. B - )
8 @- U" b+ j; q - - z$ f+ {2 s+ j, @4 m. p- F) ^
- ;free lisp by cadviet,cd2k44
! h' V5 k) O9 l2 g0 P - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830+ M, G! p9 [4 n4 R& d: [
- (defun c:Chsm (/ ent tstyle )
* S' [0 ]# P, w# k - (command "undo" "be"). E+ x8 O4 R. y% g' Q0 {5 C8 g
- (setq ent (entsel "\n Pick text :"))
6 U' j9 C; J0 G- ?# C - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
* z' m8 k( S# E" v - (command "STYLE" TSTYLE "chhsml.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
2 _ X( @0 P3 y# G) @$ U - (setvar "TEXTSTYLE" Tstyle)
2 W. G( p" Y# \0 T) X - (command "undo" "end")
; B- l$ D* L6 U& e" }) P7 Z5 @) k4 s - )
& u7 S" ~5 I g( C: K$ P - % ]& j: {0 T6 T- y1 I) X: f, ?
- ;free lisp by cadviet,cd2k44
0 ?" i! x/ v* ` - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
8 S, |% x* c% P1 o' A1 ~3 { - (defun c:Fttf (/ ent tstyle )- @- u1 X/ y" G! o- L* z- p; k' t
- (command "undo" "be")- |. c3 v- `; c# p/ S
- (setq ent (entsel "\n Pick text :"))' }8 R- g3 v0 ?' ]
- (setq TSTYLE (cdr (assoc 7 (entget (car ent))))). H W9 l- `, ^" [$ P6 \
- (command "STYLE" TSTYLE "verdana.ttf" "0" "1" "0" "N" "N" "n")
/ P! c' V. _# a2 V3 s. W, } - (setvar "TEXTSTYLE" Tstyle)
: T/ B' @6 u; W5 m- o - (command "undo" "end")
. x. p/ X4 B O9 ~7 c* r- z3 D5 A - )0 R( i. d5 I E% _5 J
- 1 b# F; I q4 B% a8 b* q
- ;;; ============================================
3 ]+ N" B9 f. L" W - ;;;/ X4 J) i5 O) [) T" V
- ;;; LISP Creater Tao Duong Dan AUTOCAD2000
8 ~* O" u( t4 i$ q. k* k* C6 u - ;;;* d6 J/ C" N O" z+ h5 ~1 Z( t
- ;;; ============================================- N% e" p$ \5 I9 R: j! G3 {4 G6 J
- : Y. Y& m' k$ ^1 j+ A, b$ [* C
- ;;; ============================================
- ?& l3 N4 M6 Q/ Z9 f - ;;;
$ t% |1 a2 D' h, ] - ;;; CREATING FROM AUTOCAD2000
: p* C- }1 N9 A/ u) M* l - ;;;4 A/ [) w7 Z! V9 l/ E$ t
- ;;; ============================================
1 b: ?# G* n4 s& K6 b* ^! ` - 0 e3 E* |7 Y8 o1 s1 x; I
- (setvar "INSUNITS"4)4 u9 y- m8 u; A
- (setvar "ANGBASE"0)5 g& \0 y7 U4 R! }; M$ d4 h$ J
- (setvar "ANGDIR"0)* B. `' a. s/ ?. S& b! s- g5 n
- (setvar "AUNITS"0)
. S) N& ?' k! E3 `. G7 z* ?( o - (setvar "AUPREC"8)# r1 c& [# ~# t# H+ @
- (setvar "LUNITS"2)
3 J0 k! G; V2 i( P1 s x - (setvar "LUPREC"8), s3 I: ?8 @: o' e- ]+ P* O7 K
- (setvar "ACADLSPASDOC"1) 5 d" `" K: }" v% S/ [: l* g, f
- (setvar "pickbox"5)' R0 ~( f5 P, Z7 T1 n
- (setvar "blipmode"0)
, a: n8 g$ G; i" }: _; h& [& ^ - (setvar "mirrtext"0)
0 {2 l- z8 j9 c* @4 a) q0 E - (setvar "cursorsize"100)
: R7 q1 A) s* ^ - (setvar "ZOOMFACTOR"75)2 H. [# A7 R8 d9 U1 \
- (setvar "LTSCALE" 10)- @! h, e; m; F. S2 ?
- (setvar "lwunits"1)
9 g) b0 x. v, U: C - (setvar "DIMBLK" "Closed")
4 `5 I' }! e! d/ D% ^' ]% o9 i0 d/ v - (setvar "DIMGAP"0.0693)2 ~2 \2 S: a; L* b Q
- (setvar "DIMASZ"0.20)
1 [) g! R" s0 p3 @% b - (setvar "DIMCEN"0.2) L8 ]2 K- q6 i1 Z3 c
- (setvar "DIMDLI"0.1)
4 c8 b' D9 j% [, v# x - (setvar "DIMEXE"0.0693)# t$ a9 a3 s& ^
- (setvar "DIMEXO"0.25)
6 p' _. ]( T0 ^5 J+ S - (setvar "DIMDEC"0)0 z7 u, J% L, c1 @; Z. q( z& V# s
- (setvar "DIMTIX" 1), D, K0 I' B) y4 p' P- L4 ?% u
- (setvar "DIMTXT" 0.099)+ t: |, S6 [) E
- (setvar "DIMCLRT" 7)
- f1 u) G) n& g4 j8 F. F+ F - (setvar "DIMTVP" 1)
# L6 w8 o+ B9 `$ Q/ q: ?1 K* o - (setvar "DIMJUST" 0). }! j6 A! k9 C. q
- (setvar "DIMTIH" 0)
2 o9 W' l3 A, L( [7 o - (setvar "DIMTOFL" 1)% h9 I" M6 Z( `9 j+ G/ F
- (setvar "DIMSCALE" 1111.1111)# k$ R/ N/ e/ B
+ R* f. S; h" y
: R. o; Z+ F( z# r- x+ @
W" u9 x" W: R- (defun c:zp () (command "'.zoom" "p"))
' b- h% ?% q3 h$ j6 M2 ~ - (defun c:zz () (command "'.zoom" "p"))
; l/ O$ `4 T' l& v$ G3 Q - (defun c:ze () (command "'.zoom" "e"))
, j8 }( w, E" K - (defun c:za () (command "'.zoom" "a"))
- o D6 ?6 M) G m6 V# @ - (defun c:zd () (command "'.zoom" "d"))
' n. l/ F$ J+ i! a& {5 |+ r - (DEFUN C:ZZZ () (COMMAND "ZOOM" ".25X"))* U2 |% ~8 ?* q1 S( p1 A+ t
- (DEFUN C:ZX () (COMMAND "ZOOM" "2X"))
a1 t2 `) M; C4 q* ~ - (defun c:de () (command "ddedit")(princ))
; G$ ^, ~* x2 h6 J1 z# } - (defun c:dda () (command "Dimaligned"))7 y6 C. b2 N0 Q2 K1 d6 r& `: n2 A
- (defun c:ddb () (command "Dimabaseline")). ]) M1 [' D7 e' |7 B4 {7 n
- (defun c:ddc () (command "Dimcontinue"))& _: x' O7 H% A7 m4 h. a, M
- (defun c:dde () (command "Dimtedit"))
* Y. ~" `9 d' w* D$ E8 f - (defun c:ddf () (command "Ddattdef"))
0 S2 i4 @1 A7 M4 p3 u9 a0 c - (defun c:ddi () (command "Dimdiameter"))( \# |# S: t" x7 M
- (defun c:ddl () (command "Dimlinear"))% @$ s5 N: D- U7 O; w6 Z
- (defun c:ddn () (command "Dimangular"))
( w4 C3 S7 P( U+ c2 \) k - (defun c:ddo () (command "Dimordinate"))
. N3 e5 x8 m5 C7 _: X3 Z - (defun c:ddr () (command "Dimradius"))$ Y3 _ M+ p& F/ K5 n' @( g
- (defun c:dds () (command "Dimstyle"))% w) F- v. C6 B
- 9 M$ l k8 ]1 g
- (defun c:DU () (command "dim1" "up" "select" "exit" pause ))(princ)
t* l' d- B: \0 V( d) K - (defun c:DH () (command "Dim1" "home" "select" "exit" pause))(princ)
9 i1 B/ Q; H9 m- E- }' { - (defun c:UU () (command "dim1""update""all"))
. t' ^% ]9 R/ Y4 u: c+ y% V - (defun c:ded() (command "dim1""tedit"))
! H! l" c+ g$ V. a+ f6 L0 q - (defun c:da () (command "dim1""ali"))
& K/ P! T' C5 [) {3 o - (defun c:dll() (command "dim1""l"))
( l2 L& z r6 N$ |" X# ] - (defun c:dan() (command "dim1""an"))6 F+ f9 w/ ~' W/ _2 z4 L4 s! W1 @' t! U
- (defun c:d1 () (command "dim1""ra")). M$ n" U3 V! R+ q9 z: |% M- f
- (defun c:n () (command "dim1""new"))
! s- t! J9 T+ z, _" S0 m* {
; D; ]. q8 z4 [5 f" Q- i1 Y- (DEFUN C:PE () (COMMAND "PEDIT"))
% @9 o4 m7 j, |% p- h6 T+ Q - (DEFUN C:PL () (COMMAND "PLINE"))" C; D9 A2 P, A- i1 l
- (defun c:dd () (command "dist")(princ))
1 c# u+ {- ]- l$ W - (defun c:w () (command "pedit" pause "w" "au")(princ))
! \( s* x6 q( z2 b9 _ - (defun c:pg () (command "polygon" "polygon"))7 q; i$ |! S4 N# a4 D8 ^: P) L
- (defun c:el () (command "ellipse")); ^) z7 I4 Y7 Y0 O( y2 e7 B; P1 ~2 {
- (defun c:xe () (command "explode"))
9 p f: ~0 \. a - (defun c:eex () (command "extrude"))
' t. Q7 |7 Y2 K; ]( r6 K - (defun c:xg () (command "xline""a"))/ P( e5 s8 o: t4 _6 z2 q' G
- (defun c:xh () (command "xline""h"))
7 p+ P- C4 d' B) h& p/ e- N! t# G2 f, o% I - (defun c:xv () (command "xline""v"))
, Z. ~4 u2 Y$ O4 ]9 G v
( P, T; H2 G+ Y3 b3 z: {1 D' H- (defun c:oc () (command "osnap""cen"))
+ p1 L# M1 ~0 z2 O8 \" M# f" G - (defun c:od () (command "osnap""nod"))- a/ W0 ]& h, y. J% S
- (defun c:oe () (command "osnap""end"))
! D( s' u0 ~3 C. s - (defun c:oi () (command "osnap""int"))8 ?/ F% [, z- _, @& f% D. Q
- (defun c:or () (command "osnap""per"))6 Y7 E" p! @3 V$ z
- (defun c:on () (command "osnap""none"))) k0 ]& _4 h5 O0 J: X `8 O
- (defun c:oq () (command "osnap""qua"))2 l' m, v" N& I: R) w5 m7 |! f. r
- (defun c:om () (command "osnap""mid"))4 Q$ r) y+ ? s0 m, ?7 r
- (defun c:ot () (command "osnap""tan"))
6 [4 A* M" A" R9 o, \ - (defun c:oin () (command "osnap""ins"))
3 Q* L) B) q4 A9 e, f - (defun c:oa () (command "osnap""nea"))
: v8 g4 r7 m2 H# R! I7 M& n6 l; l' x - (defun c:ol () (command "osnap" "End,Mid,Cen,Node,Nea,Int,Perp,Qua")(princ))
3 x o8 w& q3 ?% b4 ` - ;(defun c:du () (command "dim1" "up" "s" "pick" "other"))
/ a1 H$ B4 J; Q9 k - ;(defun c:nn () (command "new" "y" )). g2 L) b% O( A6 X" P/ A
- ( Q+ o6 m& ~, p# T! f: B, s
- (defun c:/ () (command "limits"))
. g7 Z/ ]# Z8 C E" y' g9 f5 ^ - (defun c:`1 () (command "region"))( `. |- h1 J( N9 G$ X& N
- (defun c:`2 () (command "subtract"))) }7 P) [+ G( B! W' V
- (defun c:`3 () (command "union"))1 l8 W! P/ o( E4 d
- (defun c:`4 () (command "intersect"))6 I5 K; U$ G: s
- (defun c:`c () (command "cal"))
( {) d3 |1 z# C- f; W - (defun c:`g () (command "Polygon"))
0 b3 G2 A4 N8 \3 h5 X% j1 e2 ~( D - * d" y1 {1 F/ q0 G( j
- (defun c:lmi() (command "LIMMAX" pause "" "zoom" "all" )(princ)): L% A5 Y( u$ K( q$ S
- (defun c:drt () (command "DRAWORDERCTL" pause "Integer" "" "" )(princ))
, C% c2 V1 l) S4 w2 n3 O' m - (defun c:ip () (ssget) (command "print,_plot" ))(princ)
# n4 U+ S0 u% E. Q& t+ Z - / `3 [/ s2 s* m: V; G c5 q# G- s
- (defun c:ddm () (command "ddlmodes" pause))
$ a$ U0 j/ v6 u( C' m4 y+ i - . B0 B* x- ?5 |4 t& U% x
- (defun c:sha () (command "shade" pause))
6 O7 m) u- C: A" N
% a: P3 Y6 @7 X6 u2 u; t- (defun c:sr1 () (command "surftab1" "p" "" pause))
, G' V& ^. N6 b+ z4 q& u1 \ - (defun c:sr2 () (command "surftab2" "p" "" pause))
: ~5 p* a* z Y9 M4 L6 E - ) ]( f/ D+ O! O; }
- (defun c:ad () (command "audit""y"))5 X5 m: D( l ~- N
- (defun c:q () (command "quit"))( s% \ J' `$ u4 n K" p9 R9 I
- 0 b: C3 {7 w; |# F# r5 }1 z
- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))5 I2 [6 @1 D5 f$ V, V3 l8 U( ]
- (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30")) S: e O* R5 I: O+ Y) D; E h
- (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))% I% @' z& L P2 T9 M: z" ~0 y
- (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))" C1 B8 k) Q1 I8 Z$ i3 i5 I* D
- (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))3 v7 V1 s6 L/ s; \6 D
- (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
# T. ^$ x# `7 O) J) X5 A: l( a0 p - (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))
% @) s* ?! C4 u$ d4 O( l - (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))% {; C5 z2 Z" t1 n
- (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))
! k/ P& w- s' q* d3 H6 a! B, \' d
6 m3 g9 U+ k8 F# A. a- (defun c:u3 () (command "ucs""3"))
6 i/ l' q0 z/ @ - (defun c:ue () (command "ucs""o""end"))
, E+ U6 j# Y7 C; f- w% S - (defun c:ui () (command "ucs""o""int"))
6 |3 x3 o5 ~4 N) x& M: }) ]: R - (defun c:um () (command "ucs""o""mid"))
7 g' K: j* D3 \% i# F# C, M - (defun c:uc () (command "ucs""o""cen"))
; {! V8 J$ f( r6 I3 c" L/ ~- e - (defun c:uq () (command "ucs""o""qua"))
* r3 ^: ?. O Y# E6 } H - (defun c:3s () (command "ucs""3"))
3 d6 k2 ]5 g& L - (defun c:sx () (command "ucs""s"))
) R3 s/ R) r+ ~/ T4 F2 s% ? - (defun c:sf () (command "ucs""o"))
. D$ h' x; y0 W0 R - (defun c:sz () (command "ucs""p"))2 Z! w% I B* T X. _; x( {
- (defun c:sr () (command "ucs""r"))
5 Q1 B I# X" v/ a% c, q - (defun c:sw () (command "ucs""w"))5 {. n( x) C( J. C6 w7 ]4 W
- (defun c:fv () (command "ucs""v"))
. }4 z* l0 W) r. s - (defun c:ux () (command "ucs""x"))0 B: M. }) Z* }+ \, v$ s
- (defun c:uux () (command "ucs""x""90")), q$ w2 o6 P3 s% m. g. c6 T5 m
- (defun c:xxu () (command "ucs""x""-90"))$ Y2 L1 |8 Q: i" h( G% c9 I2 f
- (defun c:uy () (command "ucs""y")). N: A2 T4 m8 d% _3 U
- (defun c:uuy () (command "ucs""y""90"))3 N# J* A; q! M5 l9 f, E
- (defun c:yyu () (command "ucs""y""-90"))+ f0 X: ~- l& x* Q( r, H. e6 c
- (defun c:uz () (command "ucs""z")); x J5 }7 ^$ y1 u' N# ?- C& v
- (defun c:uuz () (command "ucs""z""90"))
8 ?! @1 W5 } B4 W! _1 ] - (defun c:zzu () (command "ucs""z""-90"))
1 z+ R* c6 Y0 Y6 f4 T. Q4 k9 I2 M* A, E - (defun c:uci () (command "ucsicon" "Properties" ))(princ)
6 D B- _- q1 M( L2 N `1 | - (defun c:ucm () (command "ucsman" ))(princ)1 ]# v- A7 V5 l) W6 g
3 }; e' A# t# ~. ?' m- (defun c:sa () (command "vpoint""_non""-1,-1,1")). W1 Y( K) n' @- |, \/ t" \; Y
- (defun c:sd () (command "vpoint""_non""1,-1,1"))% Y! C1 `; o0 k" g
- (defun c:se () (command "vpoint""_non""1,1,1"))2 `) b2 A# m* f5 U5 U$ f* B6 V
- (defun c:sq () (command "vpoint""_non""-1,1,1"))' c7 F; f2 q5 ?! V' ]
- (defun c:vc () (command "plan"""))
3 P0 h. j! e& t; p - (defun c:vd () (command "dview""all"))
: L# R5 Y: p& x$ R) u - 9 p# |) n4 l0 J6 d" v9 z1 d' r) h
- (defun c:TT0 () (command "tilemode""0"))( m8 t" h2 k% e( s* G9 d2 a
- (defun c:TT1 () (command "tilemode""1")); [1 ~/ E0 q# K% e# T, J
7 _" v, B7 q! m5 S3 B& g' B+ `9 t& Q- (defun c:vt () (command "vpoint""_non""0,0,1"))# T+ P: _. S! e( ^/ x/ l2 S
- (defun c:vb () (command "vpoint""_non""0,0,-1"))
" D( v' M! X% X6 u g: E# z - (defun c:vl () (command "vpoint""_non""-1,0,0"))
) p9 A; L2 I7 O" f1 o9 R" |" l0 x8 D - (defun c:vr () (command "vpoint""_non""1,0,0"))
. Y: G( h3 o: l) S5 a - (defun c:vf () (command "vpoint""_non""0,-1,0"))
( Z( t. O2 ?0 {) O7 g9 { - (defun c:vk () (command "vpoint""_non""0,1,0"))
! @, j# }/ }8 j1 k# y: x3 i" T4 g - . D" X6 N( j0 @, \, o' B% u# L
- (DEFUN C:MM () (COMMAND "MIRROR"))
% A$ x* I3 u- k - (DEFUN C:MP () (COMMAND "MOVE" "P"))6 s3 v4 h1 X) i- |1 x& f- \: o
- 3 s* ~( l" P+ L" _ @- \8 `: }
- (defun c:mee (/ a)- v0 p: y" u1 ~) Z1 X }; W4 g, K
- (setq a (ssget))(command "move"a"""end"pause"end"))
: k( x* Z( t* T - (defun c:mc (/ a)
) c9 O" B: K- n/ j V! L- I - (setq a (ssget))(command "move"a"""cen"pause"cen"))
6 J0 N* [, m6 o; ^ - (defun c:cc (/ a)
" O v: w. n( U5 @( x: K' } - (setq a (ssget))(command "copy"a"""m")): E$ R! |1 l+ `9 g9 N( J
- (defun c:ce (/ a)
2 j8 `. @% O2 u7 \ - (setq a (ssget))(command "copy"a"""m""end"pause"end"))! c4 [$ n! {( F+ x3 Z
- (defun c:cn (/ a)
. v# u- l: r; E. ] - (setq a (ssget))(command "copy"a"""m""cen"pause"cen"))3 ^3 g; T/ G/ j
- (defun c:tl ()(command "trim""l"""))1 ]6 u, G' W4 D6 X) X
- (defun c:tf (/ a)! v4 q' n' t" B5 F0 c" a+ _, I
- (setq a (ssget))(command "trim"a"""f"))
& y0 {9 ]$ p3 I& c) ]7 E7 i - (defun c:el ()(command "extend""l"""))6 `, w, X% N! E3 b
- (defun c:ef (/ a)7 H7 M0 [% B3 X
- (setq a (ssget))(command "extend"a"""f"))
2 n/ F. h. ~2 R7 b5 @/ F - 1 p+ O1 h3 ^! a C. N7 s1 W2 A
- - A9 e" M/ n- Z: S4 `" ^
- (DEFUN C:110 ()(princ "\nChon doi tuong can offset ra 110.......") (COMMAND "offset" "110"))
1 T( d" [. N" Y" X o - (DEFUN C:220 ()(princ "\nChon doi tuong can offset ra 220.......")(COMMAND "offset" "220"))2 p+ |5 V9 b. a- b) G
- (DEFUN C:330 ()(princ "\nChon doi tuong can offset ra 330.......")(COMMAND "offset" "330"))/ d) }8 A: j% c+ {
- (DEFUN C:400 ()(princ "\nChon doi tuong can offset ra 400.......")(COMMAND "offset" "400"))& @8 O5 A. {- l1 N2 n& T8 A7 X
- (DEFUN C:55 ()(princ "\nChon doi tuong can offset ra 55.......") (COMMAND "offset" "55"))/ p `! a. s; V7 z0 S
- (DEFUN C:600 ()(princ "\nChon doi tuong can offset ra 600.......") (COMMAND "offset" "600"))0 q4 P) U3 L% C) e6 @8 H6 x
- (DEFUN C:700 ()(princ "\nChon doi tuong can offset ra 700.......") (COMMAND "offset" "700"))
3 g) x3 I# E+ w) Z' w - (DEFUN C:800 ()(princ "\nChon doi tuong can offset ra 800.......") (COMMAND "offset" "800"))
/ s& o/ i- p: n5 H - (DEFUN C:900 ()(princ "\nChon doi tuong can offset ra 900.......") (COMMAND "offset" "900"))) P: N; T0 q3 W4 E
- (DEFUN C:1200 ()(princ "\nChon doi tuong can offset ra 1200.......") (COMMAND "offset" "1200"))
) l/ J9 n; ~, _/ o1 m4 M, ]; T/ R, h - (DEFUN C:1500 ()(princ "\nChon doi tuong can offset ra 1500.......") (COMMAND "offset" "1500"))5 \7 M- Y2 b9 ^: {
- (DEFUN C:1800 ()(princ "\nChon doi tuong can offset ra 1800.......") (COMMAND "offset" "1800"))
2 Y v3 m8 C0 H( ?- z B9 { - (DEFUN C:2400 ()(princ "\nChon doi tuong can offset ra 2400.......") (COMMAND "offset" "2400"))
: s" i+ ]2 U5 i3 e5 O/ B - (DEFUN C:3000 ()(princ "\nChon doi tuong can offset ra 3000.......") (COMMAND "offset" "3000"))
: M/ p! m" I9 P! k2 Y% G; U+ h - (DEFUN C:3600 ()(princ "\nChon doi tuong can offset ra 3600.......") (COMMAND "offset" "3600"))! U$ q& E6 @# ^ b0 h
- (DEFUN C:4200 ()(princ "\nChon doi tuong can offset ra 4200.......") (COMMAND "offset" "4200"))
. h( r1 z X& n. q. _: F# O - (DEFUN C:5000 ()(princ "\nChon doi tuong can offset ra 5000.......") (COMMAND "offset" "5000"))
" i: }; k+ ]7 r7 C! X4 x
4 X) v; A7 L! u: |. u+ O% X! }7 S, ?- (defun c:mla () (command "-mledit""av"))1 ^ E2 @/ U& O' K) _
- (defun c:mlc () (command "-mledit""mc"))
. H& D, @( W3 Q2 x7 { - (defun c:mld () (command "-mledit""dv"))$ X7 ~& [" G9 G9 m! X, n& Q+ Z3 }
- (defun c:mle () (command "mline""end"pause"end"))
# C2 q4 G& \% |- p2 f - (defun c:mli () (command "-mledit""ca""int"pause"int")): X8 c! y$ k' G7 ?! h" c* R
- (defun c:mlj () (command "-mledit""cj"))
# s5 j& i# g8 {* ]( M# O - (defun c:mlt () (command "-mledit""mt"))
$ v3 U2 d4 \5 C8 { - (defun c:mlk () (command "-mledit""ca""end"pause"end"))
% h; y$ d" Y; A - (defun c:mlw () (command "-mledit""wa"))8 v4 O8 K: U; r& ^6 ]
/ \6 V+ \7 ^2 v$ X- (DEFUN C:DCA () (COMMAND "DVIEW" "all" "" "CA"))
9 L6 n4 e R7 m - (DEFUN C:DPA () (COMMAND "DVIEW" "all" "" "PA"))7 f) G8 x! y1 K$ X$ r$ G
- (DEFUN C:DPO () (COMMAND "DVIEW" "all" "" "PO"))/ M/ Z- T G+ H
- (DEFUN C:DDD () (COMMAND "DVIEW" "all" "" "D"))
& ^0 E( V+ G9 U+ G - (DEFUN C:DZ () (COMMAND "DVIEW" "all" "" "Z"))
! Q4 u3 P5 g5 m, x; A
) K1 b% D6 ]( M5 d. z/ m8 _; u- (defun c:p0 () (command "pline""""w""0""0"))
9 u: W0 l/ h1 m - (defun c:ot () (command "offset""t"))
/ c5 `' ]7 N: l1 X) y$ g - (defun c:t () (command "mtext"pause"j""bl""h"pause))
# _8 l a w- g - (defun c:uo () (command "ucs""ob"pause))8 A* m: w2 L: I( c" \6 j+ J
- (defun c:f0 () (command "fillet""r""0"))+ X6 p* W% ?* B9 I, [" k( i# P
- (defun c:fr () (command "fillet""r"))4 {5 e" K7 }" Y7 _; _) ?6 n
% w/ S8 B. o) _. q: m- Y5 ^, w- ;CHAMFER
/ X: v: [, f1 U2 N - (defun c:cf () (command "chamfer"))
K8 Z8 S% S5 L6 h, N( ?0 |8 b. R - (defun c:cfd () (command "chamfer" "d"))
# \6 r3 W" f3 a( A7 b$ O Q - (defun c:cf0 () (command "chamfer" "d" "0" ""))) |6 [6 M$ \2 W# [3 L+ M, J& J2 \
- : a- p: _/ p7 M4 j9 A6 `
- ;FILLET
7 q D1 k, w$ P O5 r% ~ - (defun c:f () (command "fillet"))
) A3 V) a9 t1 u' d/ Z+ | - (defun c:fr () (command "fillet" "r")); J' y5 {6 c- U3 v$ O$ C: C
- (defun c:f0 () (command "fillet" "r" "0")): w+ U3 E$ ]1 m% {3 a
$ b. u% k, D' l5 o5 g- (defun c:OO () (command "oops"))% a' H7 z% _! @( A0 U" v
- (defun c:dln () (command "dimlinear"))
! n6 c* N* f; ?" [7 ]3 G - (defun c:dan () (command "dimaligned"))) M8 b8 y9 X) }* ?
- (defun c:ddc () (command "dimcontinue"))
9 N* [' P% i( Z+ l - : \0 a0 [7 g F0 i* Z
- (defun c:sc () (command "scale" "auto"))( Q; L2 _" u# _ t3 i& e" |
- (DEFUN C:XO () (COMMAND "snapang"))
; {% x. O% O r5 Q0 T, ^# Y - (defun c:cc (/ a)* m3 x! Q! P& T; H. j0 ~
- (setq a (ssget))(command "copy"a"""m"))4 F1 ^: U) N& r7 Q: h0 [5 j! S
& {" Y' C& f o" y- (defun c:PJ (/ a)% p( e; w+ y( B- W/ f1 Q/ Z" U
- (setq a (ssget))(command "pedit"a"""j""all""y"))
8 i' Q/ n1 h0 C# x7 X F% T - (defun c:JJ (/ a)$ H" h% K4 ^. H& y9 ^
- (setq a (ssget))(command "pedit"a"""j""y"))
- H4 u8 @. f# N - (defun c:TN (/ a)1 }( J- O9 p& C! u. p& v* }3 Z8 S' E
- (setq a (ssget))(command "change"a"""p""T"))& }; P7 q+ l T' M" u
- 6 m" E ~2 l1 i c' Y' g H
- 3 U G0 T; E3 V. s
- ;=======================Tran Ngoc Thang - Tu nam 2000 - Hoc nam cuoi KTS . DHXD=========================
4 x0 G4 d# O/ p; ^! L5 p - ( ^' u5 s: u6 v# j. D1 `1 }1 \
- (defun C:IB ()(setvar"cmdecho"1)$ \0 \* H4 ]( t3 R a: `* c
- (setq pt(cadr(entsel"\nSelect Block:")))
7 n5 _' I! r4 A$ i+ D - (setq e1(ssget pt))
8 U( O+ M6 t d3 ~# {1 ] - (setq e2 (entget (ssname e1 0)))
4 k! {. f, j& U ?, C2 z - (setq blname (cdr(assoc 2 e2)))) I0 M) ]& J8 Y- v+ [4 }: m
- (setq oer *error* *error* err2)(command ".insert" blname))
& x4 {& |2 _1 E- p: o
6 s. D( z- l! h4 G5 F8 h- ^- (defun c:II ()3 }# j# @( K/ S+ [+ {) G& @
- (setvar "cmdecho" 0); D- J- f: Z5 K3 G
- (setq olderr *error* *error* myerror)
( V0 f; x+ N, `2 u% j1 S b - (prompt "\nSelect objects: ")# u7 s9 @/ D% E* k
- (command "select" "au" pause)6 a, ?/ ?" a2 D( a0 x7 H F
- (setq sstxt (ssget "p")
' f( q _9 j, I6 A4 m - sslen (sslength sstxt)
' h* K& v# J4 S' Z - ctr 0
U7 u& E* l4 @( m/ ?+ k - )
& v% z! T7 b, S% N0 {$ L' _ - (command ".undo" "mark")7 ]6 `. P# W# o/ B8 \# J4 o
- (while (< ctr sslen)
( P0 L, w: P+ R, s/ e1 C - (setq listxt (entget (ssname sstxt ctr)); g: S* r( D: @/ i9 T7 w
- txttxt (cdr (assoc 1 listxt))
0 {% x- v+ j- P+ E: a - enttxt (cdr (assoc 0 listxt))
9 O; ~' b* t. [ ?2 m - )
: X' f& P5 \# J3 w8 L/ [# G; h - (if (= enttxt "TEXT")& A7 g3 ^) D, t3 O5 {: S2 [) I+ b$ I
- (progn" M) [2 s3 a, ?% n' \9 N/ z5 D" J
- (setq testxt (substr txttxt 1 3))8 e, c, P! X4 I2 s U) W6 ]
- (if (or (= testxt "%%C") (= testxt "%%C"))
& k& e9 M, i& y, h( C& A* k7 t - (setq newtxt (substr txttxt 4))9 |% t! h& s t* f- K
- (setq newtxt (strcat "%%C" txttxt))
% o7 ~3 b$ F9 |: x - )
|) _2 u9 a3 l, E- v( B0 w' p - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
3 T1 [; x& U# G0 }$ P: R - (entmod listxt)
5 H0 C+ }9 G- f5 `0 V! N - )
: n. z- E2 u# F/ f - )2 x: v9 ~. W6 i+ z6 W( v
- (setq ctr (1+ ctr))
! q3 T: L" T. X& S* R+ P - )0 N9 [8 a2 S- E, b+ g! B
- (setq *error* olderr)
5 ~- b. ?' Y2 e; K" N- V+ d - (setvar "cmdecho" 1)
; d' e, N( [+ A - (princ)& f2 N, b+ i- v. _
- )
/ }: g! X2 W: k0 H9 ~% A6 g+ X5 S, f - : F) I' b* p% \9 k
- (defun c:DG ()% G6 S" p& R3 I |. i
- (setvar "cmdecho" 0)
! R7 L+ l w! i: o - (setq olderr *error* *error* myerror)2 {- h- N# _: {1 D/ Y( q$ A* u
- (prompt "\nSelect objects: ")
, R, C1 i8 J$ L% t - (command "select" "au" pause)
+ J9 N# t/ A$ B0 U7 v - (setq sstxt (ssget "p")# l) {$ A6 x) a
- sslen (sslength sstxt)& Q6 h0 d6 y( e" y! I
- ctr 0
; e8 S$ U$ m9 A9 Q4 v - )/ {* `% C; C% i0 J4 J) y7 ?% q
- (command ".undo" "mark")
* D" g# f9 p: k/ j5 U" d% @) s - (while (< ctr sslen)
" }! [6 `! t, j6 S+ i - (setq listxt (entget (ssname sstxt ctr))6 P! {" ^" j% E |9 I
- txttxt (cdr (assoc 1 listxt))! X+ e: [6 r, W% I1 G" g7 M
- enttxt (cdr (assoc 0 listxt))
* x/ V7 K G6 J7 k6 C) L - )& `7 P1 a! t# r4 i; T. K
- (if (= enttxt "TEXT") c; V8 I% \! k) G7 p
- (progn
9 }8 L9 i; J. G ~; B" W - (setq testxt (substr txttxt 1 3))
+ M. c; x% A% j2 W# Q6 }$ |2 v( J - (if (or (= testxt "%%d") (= testxt "%%d"))
, Y6 K3 p% D) T/ ~ - (setq newtxt (substr txttxt 4))
* @# N# E1 N$ A, ~ - (setq newtxt (strcat txttxt "%%dC" ))
/ N; @2 X" ^& x - )
$ t2 o! f+ K+ y( x( V# C# O - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))5 @) R5 v" f3 c0 ?5 e. M
- (entmod listxt)
5 ^+ \- |6 c& H) L+ L7 ` - )" }( s! k$ |; }$ h1 I: q* S( v
- )7 q$ T3 \5 [$ `" U/ j7 |
- (setq ctr (1+ ctr))7 m' G% z0 E h0 }: y' k2 o9 h
- ), r! o) z; @; P- m4 s* i0 w
- (setq *error* olderr)
$ P; k6 o' j, a7 \+ ?0 g) n+ f' ]! C1 A7 G - (setvar "cmdecho" 1)( n# a" z( H* N
- (princ)
. w$ S; j4 w6 u4 v% B - )3 h& X, v/ l0 p9 {" O
- 6 q! U' F4 n% }
- (defun c:PI ()1 o, G/ Q( m' s9 |! x0 w- `' L0 a
- (setvar "cmdecho" 0)
) N3 u3 t: ]* j* v9 {: ?6 j/ J - (setq olderr *error* *error* myerror)
0 `. }% A- f R+ {1 j/ K2 N. g - (prompt "\nSelect objects: ")
, n2 y8 F1 q$ m$ }2 J - (command "select" "au" pause)& F% r; M1 h- h" g3 b
- (setq sstxt (ssget "p")& |6 F4 X# v$ g7 j' [
- sslen (sslength sstxt)' K- o' R0 u& N6 ^
- ctr 0! x( ]7 d% Y! U
- )
8 p- t* s3 s: {: o/ L7 R - (command ".undo" "mark")
' M7 K+ U8 e( W/ l$ [6 H: c - (while (< ctr sslen), G4 X, E7 k/ U* [1 S/ \) x
- (setq listxt (entget (ssname sstxt ctr))
5 C v* i2 a6 q9 g& U3 T - txttxt (cdr (assoc 1 listxt))+ k& Q; b1 g- ^, ]
- enttxt (cdr (assoc 0 listxt))% t, J! Y9 y) X" t9 Y: ~' c' i% _# K
- )6 S3 T' T$ I& c1 ` c
- (if (= enttxt "TEXT")5 |# Y( [ e; `1 l3 C, T" z' l/ M9 f5 a
- (progn5 E% ^: K) j6 _# Y: e% r% K f
- (setq testxt (substr txttxt 1 3))4 D3 N( A( y3 G9 y! V
- (if (or (= testxt "%%p") (= testxt "%%p"))
' `3 \8 |% D3 P: u" ^" M/ P - (setq newtxt (substr txttxt 4))
4 e4 D# K% o! F+ M% }; \ - (setq newtxt (strcat "%%p" txttxt))% L7 p$ v5 E: A0 ^2 h) J$ |
- )2 B6 N, E4 d% V( k) s( C
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
. G; w1 R N* B' l( I - (entmod listxt)6 c: V j4 `9 z
- )8 U/ L- L \4 F* X+ t& x8 x# I, m) b K
- ) m7 G4 A; L+ B# A9 S/ i0 C1 D$ }
- (setq ctr (1+ ctr))
& v7 c5 ?0 P# T- | - )# h0 i7 B: s7 ?1 ?% I
- (setq *error* olderr)
* {4 ^- W, n+ [, e' ` - (setvar "cmdecho" 1)$ ~6 Q1 G/ q& }0 X* u9 ]
- (princ)
" v+ U9 @0 F D9 ]7 S - ). m3 I* P" D+ y
- 7 H% t$ U1 a1 {
- (Defun c:CB (/ a)
, I' j# N K! Z' j5 |3 O - (setq olderr *error* *error* myerror)
8 z9 ~& `2 C; G% f" P' W - (setq ocmd (getvar "cmdecho"))
% @9 r$ s4 t9 i9 ]2 X! V' \' Y - (setq oblp (getvar "blipmode"))9 v+ i- y; O. s$ p1 p, B
- (setvar "cmdecho" 0)
! Y" Y9 |: E* R* Y" }, h - (setq a (ssget))
) S! F* z5 h0 v d' L4 G5 L - (command "CHPROP" a "" "C" "bylayer" "")8 F5 Y3 `$ `% e7 x* y5 j X
- (setvar "cmdecho" ocmd)2 M6 Q w. d5 E% C+ D
- (setvar "blipmode" oblp)4 f8 o) u1 f' w& e+ t9 C
- (setq *error* olderr)
9 `8 e3 {3 S4 W" A7 w - (princ)2 p- W& O* ?7 T, V9 D- t
- )+ f& r3 B. v0 ?9 A% ]# E* g
/ E! b* U) f6 t% c: Z- (defun c:LCC (/ co43 obj23 la23)
4 i* J* H# ^, ]$ Z- n - (setvar "cmdecho" 0)
$ r) t8 ?3 ]- B, h* p( H - (setq co43 (getstring "\nNew color : "))
+ e2 \) g$ w, {5 d; x0 k" D/ ? - (setq obj23 (car (entsel "\nPick object on desired layer: ")))$ O3 W# k C% y! L( D6 g# v4 t
- (if obj23 (progn, c* K: E" u& ?
- (setq obj23 (entget obj23))1 I( T7 I3 K$ r- Y
- (setq la23 (cdr (assoc 8 obj23)))
) ^" V0 r+ E& f4 O! d - (command "layer" "c" co43 la23 "")* \ m6 P6 y3 I6 a
- )
, X( D9 b" ^; y! J9 { - ): ~* @5 L" c0 _ E/ x2 J* a
- (prompt (strcat "\nLayer has changed..." la23))/ }& Y# W9 H8 T' q
- (setvar "cmdecho" 1)! A* C; _8 ?+ ?# d5 l
- (princ)
0 W6 I, ~1 J$ u* K - ) $ I0 O# ?9 g: v
- % W7 M3 }3 s6 ?5 p) S. B/ A1 ~
- (Defun c:RP (/ a)' e1 D3 k$ \4 _; c$ T- G6 [
- (setq olderr *error* *error* myerror)8 `: T+ m' B2 {& o( h. w( N/ N1 C
- (setq ocmd (getvar "cmdecho"))
7 } i P7 K' w" e2 T8 H9 Y - (setq oblp (getvar "blipmode"))3 a$ p& v" ~1 m6 E1 d( I
- (setvar "cmdecho" 0)- W; M Q' G9 ~9 B- U
- (prompt (strcat "\nUSE: Delete object(s) belonging to"
8 e0 F: _& K9 {8 |* W$ a% ? - " the layer of the entity picked...!"))
3 g1 m. D1 ~* O. w' O f5 b - (setq a (entsel "\nPick the entity with the desired layer to delete: "))0 r* k$ e# x, P! W# f
- (if (/= a nil). I$ o/ m- c) J$ q. |, F1 p
- (progn (setq a (cdr (assoc 8 (entget (car a ))))). U" H" b: ~, J p) Q
- (command "Erase" (ssget "x" (cons (cons 8 (eval a)) tempword)) ""))
' l0 N$ E* G* m8 L! J) @5 b- j; \ - (prompt "\nNo entity selected!"))- {3 ^1 r$ X7 y/ I5 Z, @+ y
- (setvar "cmdecho" ocmd)" L# k; S$ w# S* a" B6 z
- (setvar "blipmode" oblp)
( q9 H. X) I& D5 V0 c) E, ^ - (setq *error* olderr)
& Z$ G) ~0 O: I: I1 j - (princ); Y4 ^1 ~9 @# h9 _& X/ L
- )
, p9 c' J* X5 [4 b8 V
7 u5 m L2 B0 k5 d$ j, ?2 t- (DEFUN C:WL(/ SSET NET SSL M)
& n( n0 F# _. }6 Z' K" H - (PRINC "\nSelect lines :")$ n t) Y2 S' w8 H" D* ~+ G4 {8 ]
- (SETQ SSET (SSGET))
" B3 ^2 K) x+ R - (IF (/= NIL SSET) (PROGN
L; ^+ u k! ]* k6 H - (SETQ SSL (SSLENGTH SSET))
" H. `: w# w z2 H5 W - (INITGET 4)( P' b" l9 Q+ p2 j N; c& D
- (SETQ NET (GETREAL "New width : ")), l$ g- U$ C& c" m
- (IF (/= NIL NET). P/ W4 v+ r0 u$ ~
- (WHILE (> SSL 0)
" F$ X2 [7 B5 D1 H - (SETQ M (SSNAME SSET (SETQ SSL (- SSL 1)) ))
5 j- P& A0 y0 V4 d - (IF (= (CDR (ASSOC '0 (ENTGET M))) "LINE") ' K$ v7 Z& x1 I" U# d
- (COMMAND "PEDIT" M "Y" "W" NET "")
& u6 F$ @9 w( ^; d ^ - )
5 d( m3 }! ~3 N. [ - )
0 \/ i. W+ y8 m) B& a3 b- n - )))! Q- M# b; i7 |" [
- (PRINC) q, p# ~. L7 ^3 W3 F! S, F) {
- )
- n7 f- Z2 T$ s- N8 Q1 O9 k, k
% J$ S% R$ z- q; |6 e3 B9 ^- (defun C:MML ()
3 R' u( }2 W' O - (princ "\nSelect objects to move to another Layer.")
; F5 k7 ~+ G5 J- b4 V4 p1 X' ^ - (setq ss (ssget))6 s& y$ g+ ]" \
- (SETQ UL1(GETSTRING "\nLayer to move entities to : "))
# Y; T0 |9 J+ B5 q. D m! v - (setq counter 0)
. r$ }4 u1 i8 |5 A8 ` - (prompt "Moving to layer.....")(princ ul1)
* s# e6 a+ _5 T. {, m4 d3 ~ - (setq e (ssname ss counter))( N% Q, K) _5 O* g
- (setq l (cdr (assoc 8 (entget e))))
( i9 d( }1 w2 G - (setq S (ssget "X" (list (cons 8 l))))( R, H" i/ D w: u
- (command "CHANGE" ss "" "P" "LA" UL1 "")
, [) D" E# x' | - (setq counter (+ counter 1))
+ M- m. o* N( z8 |+ | - (princ)$ r2 I- t1 p0 q4 g/ P3 m
- ) - Y2 P9 i0 Q# V6 P$ @ J, H0 u2 c" B
# Q$ b. o! f: ]# f9 C1 a- ;;; ================================ GHI CHU ============================
$ p5 N6 p3 G; g5 X) T- q - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========; V+ J7 {1 k7 [! M, _1 ]. T- E
- ;;; =======================Thuong Dung Font Romant.vnh===================
' y2 u$ D3 z/ J ^! P
. }+ V' u. j' @4 s1 j) R- (defun c:RS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
% \$ K, B* B+ k" j" f; \ - (setq oer *error* *error* err2)6 j$ c# n7 N* T. \% q0 s
- (PROMPT "\n(UNICODE-Verdana)(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. (M)aster Bedroom. ")
0 ]. N6 d5 R B9 Y, A - (SETQ Cpt(GETSTRING "\n (ROMANT-vnh)(DD).(SS).(LL).(CC).(OW).(KK).(BB).(MM). (UNKNOWN-font)(oD).(oS).(oL).(oC).(oww).(oK).(oB).(oM)."))5 G8 e9 f/ S) u$ _, `
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nha` Bê´p"))' W& M1 t9 `% P4 }1 q$ C& \
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Pho`ng Vê? Sinh"))0 ]) X' ]/ I: u" p3 S8 `/ p1 o7 L
- (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Pho`ng Ho?p"))
* E) T8 ]6 H! O5 v/ I. x - (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Pho`ng La`m Viê?c"))/ {# ~- n& ?: ~2 ?' W' Q
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Pho`ng Ngu?"))
: m1 y8 @; i) A6 `9 b4 W - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Pho`ng Bê´p + An"))& j3 T7 E w% r: }# W
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nha` Kho"))0 O J" b0 \& g% K
- (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Pho`ng Ðê? Ðô`"))
( D: z8 ^, P' S - : t% N+ W. R v, d
- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))6 T; j- q- [3 c$ c- S
- (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh")), Y9 p/ d& I5 e) {
- (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))
; W; a3 f6 w5 n$ Y0 I+ r - (IF(OR(= cpt "OW")(= cpt "ow"))(SETQ CPT ' "Phßng Lµm ViÖc"))
( v% z' f2 P" O U5 @: ^7 { - (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))
" \% U) l3 ?& j( R: F7 K - (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))
/ E: d z/ T; I8 x! x/ W: F - (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))
' \7 {( V* m6 f! P6 m0 M; U6 d - (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
1 l" y. o2 l0 m- e - # i6 @3 ^- l9 X; D ~% z/ W
- (IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP"))
/ p C# @$ o! b6 s3 H: q+ W7 w - (IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM"))
4 E4 `" z7 k; C$ p - (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP"))
7 v4 G( q) Q& B; c - (IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC"))
" B7 q4 X% x) ~1 g2 L! S - (IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R"))
4 m; U2 a. }& O+ O6 h5 k5 J( h - (IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))% u0 y' Y- h* L& J6 R' g% y
- (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO"))
1 d7 J& I+ O# i - (IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))
! G+ c; g8 V4 ?7 k - (setq pta (getpoint
! }7 {( f( F' M( i. Y3 K% j$ A - "\nPick first corner. : ")): T7 \! V! T2 D8 D) h" A, V! w
- (setq ptb (getcorner pta
9 V1 z$ f. a* O W; O9 i - "\nPick second corner. : "))0 M7 R" o3 k; Y) N: ]8 V7 g4 G9 }
- (setq ptc (list (car ptb)(cadr pta)))
7 G! [- B, L# m' ?# _ - (setq ptd (list (car pta)(cadr ptb)))# a9 O& X+ i& X2 d" F8 m" u) A5 v
- (setq ang (angle pta ptb))1 e C' j8 N8 g
- (setq d1 (/(distance pta ptb) 2))
. O7 S# z# J) L6 h$ p/ b - (setq cp (polar pta (- ang (dtr 0)) d1))$ Z; p" h1 d- _, v) x+ u. O- C
- (setq X (distance pta ptc))/ }" D* A/ p$ F1 a: D
- (setq Y (distance pta ptd))$ M) M) S; u& ?* n) K y, u
- (setq X1 (rtos x 2 1))1 P% y* l% [: [4 }% M
- (setq Y1 (rtos y 2 1))' ^9 z' x( O( q
- (setq rmsz (strcat "(" X1 " x " Y1 ")"))' r5 n0 i$ A& [9 @" O
- (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))' S- G7 M$ _: h0 O% x0 [- N
- (defun dtr (angg)
C3 {' Y8 s' S& q; l& r" J - (* pi (/ angg 180.0)))
! o' q) q5 y5 g4 C
1 m% q$ n' R: Z- (defun c:WS (/ pta ptb rmsz pl1)& S/ E" I( s6 `/ Z5 f
- (setq oer *error* *error* err2)
& u, ^% M. Y) x, ` - (PROMPT "\n (RomanT.TXT)floorp(L)an.(E)levation.(S)ection.(M)planFoundation.(C)Found.(K).(P).")
?; N* f" A+ G1 i+ i - (SETQ Cpt(GETSTRING "\n (VnHELVH.Vnh)(LL)floorplan.(EE)elevation.(SS)section.(BM)planFoundation.(CM)foundation.(KC)Structure.(PP)perspective."))
! \) y# Y* e6 V5 @( d# R
H4 k% r3 L2 q; c# c/ u: j$ g- (IF(OR(= Cpt "LL")(= cpt "ll"))(SETQ CPT ' "MÆt B»ng TÇng 1 : TØ LÖ - 1:100"))4 W. m5 w& R* x0 F! V2 C& z, m
- (IF(OR(= cpt "EE")(= cpt "ee"))(SETQ CPT ' "MÆt §øng Trôc ?-? : TØ LÖ - 1:100"))5 L- c4 u m0 H* b9 `
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "MÆt C¾t A-A : TØ LÖ - 1:100"))* C, ]( c6 |/ I" b0 r
- (IF(OR(= cpt "BM")(= cpt "bm"))(SETQ CPT ' "MÆt B»ng Mãng : TØ LÖ - 1 : 100"))
" Q8 `$ t2 ~5 |- p - (IF(OR(= cpt "CM")(= cpt "cm"))(SETQ CPT ' "MÆt C¾t Mãng : TØ LÖ - 1 : 100"))& h( I% w1 u% O/ u9 Z+ @4 r/ _
- (IF(OR(= cpt "KC")(= cpt "kc"))(SETQ CPT ' "KÕt CÊu Khung Däc Nhµ : TØ LÖ - 1 : 100"))
, Z( N% o# m3 N7 h r% a1 r - (IF(OR(= cpt "PP")(= cpt "pp"))(SETQ CPT ' "Phèi C¶nh Mét Gãc Nh×n"))
' Q% J7 ^, m( ^' u! _ - 6 |/ t8 M9 c* ^, d) G; c& s+ Z
- (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"))
* M0 E ^' n3 }- S0 @# Q4 F - (IF(OR(= cpt "E")(= cpt "e"))(SETQ CPT '"MA/W/JT /D/}/SNG TRU/JC ?-? : TI/R LE/M/J - 1:100"))+ T! V: F# [9 [6 F3 [6 c+ N% g
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT '"MA/W/JT CA/W/ST A-A TI/R : LE/M/J - 1:100"))- @8 U/ A! g$ D* t1 U
- (IF(OR(= Cpt "M")(= cpt "m"))(SETQ CPT '"MA/W/JT BA/W/FNG MO/SNG : TI/R LE/M/J - 1:100"))
/ g. i$ i. V1 G$ }% ?7 I - (IF(OR(= Cpt "C")(= cpt "c"))(SETQ CPT '"MA/W/JT CA/W/ST MO/SNG : TI/R LE/M/J - 1:100"))
6 t8 p/ E7 H. Y - (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"))
" h. e F/ [! C: o - (IF(OR(= cpt "P")(= cpt "p"))(SETQ CPT '"PHO/M/SI CA/R/NH MO/M/JT GO/SC NHI/FN"))+ \& A8 a8 |: `8 }8 Q
- (setq pta (getpoint
0 N. G5 o& b, B: Q5 V1 f - "\nPick first corner. : "))
. s/ m; P; T5 M- e - (setq ptb (getcorner pta
: T) d6 X% Q) x5 q; J% s6 G- V7 [ - "\nPick second corner. : "))
' Y5 Y3 H& {, W - (setq ptc (list (car ptb)(cadr pta)))
; p) x* ^4 h2 m" c( D3 a - (setq ptd (list (car pta)(cadr ptb)))1 T- H( R7 X8 c' ?
- (setq ang (angle pta ptb))
W% h) }( r5 A7 v- Q) I8 W - (setq d1 (/(distance pta ptb) 2))
% w, d F# y u! }9 M4 [ - (setq cp (polar pta (- ang (dtr 0)) d1))
1 f* F' E. c* p: A) s - (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))
; {8 Y8 O( U; d9 M+ H i7 o - (defun dtr (angg)
( W/ R* o6 F) @ - (* pi (/ angg 180.0)))! L8 a. R; E6 c; E- K* l
' f4 C* i% D/ Y2 n- ;;; ================================ GHI CHU ============================
6 R! S; P: z4 z, `2 V- W! }2 A9 f - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========7 C1 ]5 G0 W' A" E4 a( d! c& }7 c) R
- ;;; =======================Thuong Dung Font Romant.vnh=================== T' h/ \: e- L# H( P
5 g; V1 x+ ^" I( }! S, L2 ]- (defun c:RRS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
$ h2 z: F& ^& z* | - (setq oer *error* *error* err2)
, a X! a1 S( s& L6 L1 ^ - (PROMPT "\n(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. ")
3 `0 v( i3 J$ N8 P; ` - (SETQ Cpt(GETSTRING "\n(M)aster Bedroom. (DD). (SS). (LL). (CC). (OO). (KK). (BB). (MM). ")). y+ I& C2 f. ^4 A/ k; ]1 l1 z
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhà B?p"))1 o6 _4 s, M. q; p) M5 Q2 R6 Z: Z
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phòng T?m"))9 _# z4 v7 N6 d. \% e6 N& A4 v
- (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Nhà H?p"))
' S0 }1 l3 {7 r$ d - (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phòng Làm Vi?c"))
( V7 ~9 {) H8 i4 w# j) M4 C/ L/ ~ - (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phòng Ng?"))& G3 ^7 Q: ]5 c. e
- (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phòng B?p-An"))4 \! q9 o* [; E3 O
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhà Kho"))
! h/ G3 Y% i% K' l5 R( x0 B - (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phòng d? Ð?"))
) W3 v8 M% O- ~9 n: J+ @' I- }1 ] - (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))* x& q* e, T5 b' K/ f
- (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))
0 N7 D* O9 Y, P B" o8 D, ]& e7 I1 g - (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))
+ l! z: q0 P: q+ `- f9 F - (IF(OR(= cpt "OO")(= cpt "oo"))(SETQ CPT ' "Phßng Lµm ViÖc"))& T2 w& Z# B' E& M; R
- (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))
0 C8 I+ S3 b( u: d8 f - (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))- q0 P9 f8 W1 n$ i
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))' j' T8 \9 r( K' q
- (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
- L2 |( y: {- w- p; B8 W - (setq pta (getpoint1 i4 X: I Q1 a' I+ c
- "\nPick first corner. : "))
! P6 V; O: \' z5 H; U - (setq ptb (getcorner pta
: g' f% q, W+ m+ s - "\nPick second corner. : "))! S# |3 Z( }) w
- (setq ptc (list (car ptb)(cadr pta)))
; [7 J. C: z5 l0 m. ^ J- m - (setq ptd (list (car pta)(cadr ptb)))
* d' {# p2 k6 N' m - (setq ang (angle pta ptb)); t* t! k& A" k$ c ]% }1 I1 b
- (setq d1 (/(distance pta ptb) 2))
" R$ U# A: x2 M3 F; [7 [, E! n6 o8 P - (setq cp (polar pta (- ang (dtr 0)) d1))5 S% y' _' ]( N0 u; c: C- V* v. y# o
- (setq X (distance pta ptc))* I$ V; q" P) A* u
- (setq Y (distance pta ptd))
# ]2 f8 }2 s3 W. `% ^6 }3 ? - (setq X1 (rtos x 2 1))
; e% e; G) U* p6 e* G - (setq Y1 (rtos y 2 1))" ]4 b. p) n" G
- (setq rmsz (strcat "(" X1 " x " Y1 ")"))
/ c9 g- {; Y v( N7 X! T - (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
, Q% z; z4 X( v% L. }6 P - (defun dtr (angg)
4 l1 l5 D0 X/ ^) f - (* pi (/ angg 180.0)))
) o( h1 P9 s& E; o7 o - ' V0 p5 _4 q9 a! P6 @
- ;;; ================================ GHI CHU ============================
. t k+ L+ Z9 B- S0 y( f" I - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========- P/ K7 E; U. \7 Q
- ;;; =======================Thuong Dung Font Romant.vnh===================. o3 P" g" B& ?
- * c. ` W, v# z/ i7 N3 c4 k
- (defun c:GS (/ a b c d)& T9 U; `: u1 d8 u. U8 ^5 f: A# p2 ~
- (graphscr)
& ?' N* d6 F ^8 x: T: j4 w$ H h - (prompt "\nSelect text to set style....")
: W+ @% u9 J- s$ M# c3 h - (setq a (entsel))
3 k# ^/ C; @, T - (setq b (entget (car a)))
7 h' l! C" Z0 x" t7 j - (setq c (cdr (assoc 7 b)))
, K; @" a8 }* Y* B - (setq d (cdr (assoc 40 b))): |3 e+ ]' H' J
- (command "style" c "" d "" "" "" ""))
; z' Q' r! ^$ Y: d - (princ "\nType GS to set text style.")2 _! C/ u7 G8 A2 S
+ j; z# _5 B1 g7 g% A& m- (defun c:RC (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w)
2 s4 p! d. V3 P" ^" ~ - (setq olderr *error* *error* myerror)+ j7 L6 e9 N# ^& Q4 ~. Y- |, F7 J
- (setq ocmd (getvar "cmdecho"))5 P4 F$ _4 l. k( _
- (setq oblp (getvar "blipmode"))2 w3 `% h( ^1 B" x7 A' _9 R
- (setvar "cmdecho" 0)
. L, ]0 f; c/ V5 ^' V- K( D- r - (initget 1) ;3D point can't be null
7 y# b8 ]% b( y7 s - (Setq pt1 (getpoint (strcat "\nCorner of rectangle or square: ")))
" P* U5 r$ e; l: x2 [ - (setvar "ORTHOMODE" 1)
3 X! |& g ^3 ~8 ?0 ^ - (initget 7) ;Length can't be 0, neg, or null
7 d( W5 _8 G" K* \4 U - (Setq l (getdist pt1 "\nLength: "))
2 a/ \ z3 T i1 W" y- U* d - (Setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1))). w# D. D' S# j
- (grdraw pt1 pt2 2)# i. ^: {/ q1 r
- (initget 7 "Square") ;Width can't be 0, neg, or null; d3 R. h" |# C v! F
- (setq w (getdist pt1 "\nSquare/<Width>: "))0 `2 a/ p( W5 q
- (if (= w "Square")
& y- _, ?9 i: x. m+ } - (setq w l)6 ]' L. B& {! v/ K* L$ x" K2 ^* U2 [1 o
- )
( W$ {5 D1 K6 W( m - (setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2)))
5 `2 m( x- Q5 M# x - (setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1)))+ V0 M i p0 J! `& U7 ] ^8 H! f
- (grdraw pt2 pt3 2)- v: y0 I- C- o' Y
- (grdraw pt3 pt4 2)
7 K7 z* x, r# _( _( M - (grdraw pt4 pt1 2)
, H7 N5 _" T U( ^% A - (setvar "ORTHOMODE" 0)
2 t$ F& k6 x4 O - (command "pline" pt1 pt2 pt3 pt4 "close")) s9 `! T& b& N% d) j/ E' D- \2 c
- (setvar "cmdecho" ocmd)
' Y. M; `$ h. c8 }5 o - (setvar "blipmode" oblp)# G$ g* C G/ o$ j: Z
- (setq *error* olderr) ; Restore old *error* handler
+ y5 G2 o* _/ H - (princ)3 e9 U, L+ J- W7 a: X
- )/ ^- `6 P: Y$ N7 P4 A) [% @, @
- 6 C2 U! c0 c9 s+ s5 [, s- k( Y$ A/ T
- (defun c:SG (/ ent pt1 pt2 ang)) K% r7 Q' O* J% E! x, b
- (setq cmd (getvar "cmdecho"))
7 f) n$ Q) S g! g - (setvar "cmdecho" 1)7 L1 A: [) J- _9 ~( n: t) s9 x
- (prompt (strcat"\nSnap angle will be set to angle of line"))2 a _0 n; E8 G* F
- (setq ent (entget (car (entsel))))
4 _1 D! q/ K, T' B9 C' F# ~ - (setq pt1 (cdr (assoc 10 ent)))
- K6 K* u# j" s R3 U - (setq pt2 (cdr (assoc 11 ent)))
' c2 s! M( a: Y3 n) g% P - (setq ang (angle pt1 pt2))# i# |. o C$ Z u3 X, y
- (setq ang (/ (* ang 180.0) pi))
. Y3 s9 B. M- E0 R) ` - (setvar "cmdecho" 0)
& ~. ^1 h0 l9 T5 C% W- D - (command "setvar" "snapang" ang)' _& l5 Z/ v9 D6 R' F& O9 c; t
- (setvar "cmdecho" cmd)
) L3 O" p* G6 c3 i- r - )
+ j) l J) \5 S( q( T# W
# s! [/ ]0 {' h# @- (defun C:TG ()$ }, L& g5 P. K8 R x7 Q
- (initget "Increase New")
. g8 i" Z% N9 Q0 ]# E# u4 R - (setq ans (getkword "Increase/<New>: "))
& M( T% L* H& v; L: U - (modang)
0 \* d# x M. f, e, }+ e- [0 U - )
$ r2 O+ t: m B) a - (defun modang (/ ang ss ca e na ssl)9 X) K: m( O+ v7 n" A! w
- (if (= ans "Increase")
& b, v* ?1 R9 P' Z+ l( N' B - (princ "\nIncrease angle for text by: ")( [% l* y. P& T6 \3 _. I* ^
- (princ "\nNew angle for text: ")5 o; A) p- z I& I2 M; Z7 f \6 q: Y# l
- )- z. e5 Z% V3 o& Z/ N# q
- (setq ang (getreal))
' \& v8 i4 E9 a0 }1 l3 f3 W - (setq ang (* (/ ang 180) pi)). v6 h& d! t# ~( h& E1 z
- (setq ss (ssget))" W$ P$ s9 \ {/ A& o$ `, z: m2 S7 `
- (setq ca 0 ssl (sslength ss))
, A4 U7 ^ f0 u. ~" ] - (while (< ca ssl)
4 M; ~6 U, f5 M8 a - (if (= "TEXT" (cdr (assoc 0 (setq e (entget (ssname ss ca))))))) N( O4 ]- P; G& q% r w7 B" i
- (progn) }7 P# M. w8 [
- (if (= ans "Increase")
, d" y2 g3 W Z - (setq na (cons 50 (+ (cdr (assoc 50 e)) ang)))$ r& }( J f9 R1 e: X
- (setq na (cons 50 ang))# ~2 q( J0 C# t8 U
- )2 S4 P$ X: e; m8 v9 @( }+ ?
- (setq e (subst na (assoc 50 e) e)); Y9 k7 W$ P$ M* o: D1 K
- (entmod e)
. s$ R8 o/ Q! e( @) t - (setq ca (1+ ca))
2 z. z, I# H0 p, R3 J1 y, d - )
2 i( v" `5 H6 [+ O. v - )" q4 A- \! F: u* R; I
- )
& f8 B) j+ e& ~. C& L. j6 a# m - (terpri)
8 b+ A, \* T4 u& d4 L - )! f x5 N: I [
- : }- Y; I9 l7 b+ m
7 ?! h) t9 H) B+ M, Q5 q- (defun c:WL ()
8 N8 G) _- q+ e$ n. L' ~0 Q8 l - (setvar "cmdecho" 0)
/ @7 s3 s# y! l8 f: x - (setq a 1)0 K0 P/ [3 r. N! F9 d, {2 ?+ [
- (prompt "\nSelect Polylines to change: "); G- d# B3 t9 c, w! w
- (while (/= a nil)
0 [) a: E% l: Q7 ?% b" Q: G, ~3 _4 j - (progn
* }1 f3 ]7 [- D C! o - (setq a (entsel))
9 V' ]9 E% S: V. o, v( i( |* w8 [ - (if (/= a nil)) T( }0 p5 M) ^+ D
- (progn
, D. [7 p- h" N# j, N5 h - (setq b (entget (car a)))
9 \) ^9 J" j# e- v5 O - (setq c (cdr (assoc 40 b)))
2 D# J! k' l- L, s - (princ c)* `6 M7 R+ b9 o6 u8 A }7 y
- (command "pedit"a"w""lw""")
! O* ]1 M# o _5 @$ x& _ - )))) 8 C ` y! @4 G- i( T4 Q4 b6 C% o/ `
- (princ)
' |! P. v$ U8 B/ D& ] - )
- c6 F6 ?! o# {, n, |9 c/ J4 ?5 a
+ D/ _8 O" ^& _/ L- ;;; ================================ TEXT FIT ============================
8 x" e) ?, a3 Z) O# ?% x4 I
: ?) u% @4 Q" d3 x0 d- (Defun c:FT ( )
9 A# U% `# a) D. A$ C - (defun setsnapang (arg /) (setvar "snapang" (angtof (angtos (cdr (assoc 50 arg)) 0 8) 0 )) ); u7 F! @/ x) m' e5 M) n0 P! a
- (Defun LL-xyz (arg) (CAR (TextBox arg)) )/ d) z$ o! l' R% a- a9 D
- (Defun UR-x (arg) (CAADR (TextBox arg)) )
1 a2 R; U3 ?' x4 p8 f# D - (Defun LL-y (arg) (CADAR (TextBox arg)) )# @6 }* E6 g, G( _5 Z
- (Defun LR-xy (arg) (List (UR-x arg) (LL-y arg)) )
0 h8 J+ @! W8 C& R/ z# r( `! c% T - (Setq ename (CAR (EntSel "\nSelect Text to stretch/shrink:" ) )2 M3 P# R0 z5 f [7 }7 @6 A% ^8 {
- Textent (If ename (EntGet ename)) )
: I+ ] J6 t: _2 z - (If (= (CDR (Assoc 0 textent)) "TEXT")
: Y( _0 p6 Z5 [5 @! O8 \ }1 r9 f) N4 Y - (Progn (initget 0 "Start")
7 F' h9 V- R( v8 X+ j" ^ - (Setq NewEnd (Distance (LR-xy Textent) (LL-xyz Textent) ) )$ j$ E- a- K# s( T f: B" c& M6 [
- (setsnapang Textent) ;set snap along text entity( x( S5 j* S/ e* e: x
- (setvar "ORTHOMODE" 1) ;drag along the text
& ^& r, g! P& E2 O% t) c% { - (setq
9 `% ?& l0 D; |) M1 C7 { - TMP (getpoint (cdr (assoc 10 Textent)) "\nStarting Point/<Pick new ending point>: ") )3 \. W2 ]! d- l* ~- i9 M
- (setvar "snapang" 0)
( H ^+ L% h' p/ r - (cond
' f! b9 N0 k/ F" n1 {8 K - ((= (type TMP) 'STR) ;;new starting point to be selected- s8 U$ F3 N/ u4 m; ~ ?2 L
- (setq Start (getpoint "\nPick new starting point: ")): G8 D5 q* ^, @1 n: b* m) S' z# `
- (if Start (progn
0 K/ ~5 O6 `0 |, C - (command "_UCS" "_E" (cdr (assoc -1 textent)))( r+ K! ^# ?0 n$ V4 m0 M
- (setvar "ORTHOMODE" 1)
! n' h2 ]9 [& c7 r0 G9 ^; } - (setq NewPt
9 @4 X( w* f; g) [8 I( o - (if Start
|6 V$ [: ]3 _. I" N, ` - (getpoint (trans Start 0 1) " ending point: ") nil ) )
: K2 g6 W0 m$ a8 C* n' j - (if NewPt (setq NewPt (trans NewPt 1 0)))4 @2 S9 ^) L6 X3 T
- (setvar "ORTHOMODE" 0) A& }8 C# V9 _+ Q$ j1 W2 ?
- (command "_UCS" "_W") ) ) )
1 w/ |3 S$ U, D! \, y9 q - ((not (null TMP)) ;;new ending point selected% l! W, M: Y: D: {0 n
- (setq Start (cdr (assoc 10 Textent)) NewPt TMP) )
o# K3 G, j( k- V! \3 i - (t (setq Start nil NewPt nil) ) )
3 G' F5 G6 o* M! T( X! N2 ~9 K4 ?; G - (if (and Start NewPt) (progn& i- L& e' x, h. U6 ] d
- (setq Val (Assoc 41 Textent) ;;current width factor4 Z& y8 e+ F4 J. a& i# }1 G u
- Val (if Val (cdr Val) 1.0) LTC_% . w& {2 y+ {; X2 T9 D5 x) R
- (* (/ (Distance Start NewPt) NewEnd ) Val ) ?) L+ j. y- x x' ?
- textent (Subst (cons 41 LTC_%)
: N+ A" U, I3 q: ~ - (assoc 41 textent) textent)0 M. F ?, ~' N* M+ u; C3 y9 g( _
- textent (subst (cons 10 Start) (assoc 10 textent) textent)/ s6 V4 G+ Y$ c/ X8 d3 O3 k; M
- textent (subst (cons 11 NewPt) (assoc 11 textent) textent) )
6 l4 q4 @7 ?& c - (EntMod textent) (EntUpd (cdr (assoc -1 textent))))))) (Princ))
' V% O+ v# n/ R: W" s9 e - _4 _' T; A7 g. X( p7 A5 x; O
- ;=====================================================================( ]: Z, P0 |: z6 {7 j. g
- ;=========================COPY + ROTATE ==============================0 c1 A. |$ d; q
- ;=====================================================================
* C7 a V9 z) r. M7 |; n
9 @) ^4 d6 `; o; K- (defun c:CR(/ olderr cm loop ss1 ss2 bp mult lent ss2 lp1 lp2)
( d8 U7 u7 F. q* z0 n! c6 L6 D0 j - (setq olderr *error*
5 ?- Z F% `5 \, _9 F - *error* croerr)
1 d6 y, t! G8 R c. r6 X) K - (setq cm (getvar "cmdecho"))
. U- T; m1 s+ F% j8 Z# m6 ^( j - (setvar "cmdecho" 0)7 s, T j5 A& N( i: `
- (setq loop t)9 A. \9 \. i' w5 q
- (while (not (setq ss1 (ssget))))
V( X6 [; q, Q% Q+ r - (initget 1 "Multiple")
$ g- G0 l- i9 i$ n+ \ - (setq bp (getpoint "\nBase point or displacement>/Multiple: "))
6 o0 k- ~" w& Z0 @ - (if (= bp "Multiple")7 J3 K9 j' Y. y0 W0 _
- (progn
7 g6 O* @5 [7 r( y - (setq bp (getpoint "\nBase point: "))
5 J, x$ K2 L( s% {; [& E - (setq mult t)
# F+ i H5 p. ~/ _7 K- n - )
; P" X7 `/ x* u" h& C7 H2 K - )
" U6 F$ x7 c- r' z* X' k1 x - (while loop6 m- ~- |! G! ^5 o2 g. t k
- (setq loop mult)
+ Y6 E/ e, M" ]6 v" @ - (setq lent (lastent))
8 u) G/ e" W/ J. S - (command ".copy" ss1 "" bp bp). P% c! v, C ^& I* ^) w
- (setq ss2 (lss lent))# w5 C8 m1 D$ ~1 n7 y8 B7 Z& o
- (setq lp1 (getvar "lastpoint"))
( c0 D1 T. y% q0 e0 [1 } - (prompt "\nSecond point of displacement: ")
" W' S0 j- p4 L - (command ".move" ss2 "" bp pause)
; }$ X6 e( g: y2 g9 N - (setq lp2 (getvar "lastpoint"))
1 `5 g1 n3 R* p% N3 n - (redss ss1)( C3 N1 c, z- Y0 y
- (if (and (not mult)8 y! S# E9 y3 O/ Z8 X3 ~
- (= (distance lp1 lp2) 0)4 z$ F% c7 m- h/ V
- )
! L$ ~, I1 a6 f3 u3 q- A0 S* } - (setq lp2 (getpoint "\nRotation Point: "))# E/ O1 N! d+ w
- ): i& F, i8 ]% Z3 J* x
- (if mult! M4 E6 _( E( ~( z" N! T
- (prompt "\nRotation angle ")
4 M+ H P" W: p$ E8 i - (prompt "\nReference/<Rotation angle>: ")5 D+ L# e! Z7 a2 |4 i
- )2 \+ N6 q% v5 b
- (command ".rotate" ss2 "" lp2 pause)
' k- c: h7 {: D' {7 g3 a" { - )
3 R9 w% n3 _. M) X- p: e - (setvar "CMDECHO" cm)
- P0 ~2 {4 Z9 v: k - (setq *error* olderr)1 |8 A( z# m5 C8 m5 w/ M
- (princ)
u( L* u0 e4 b6 s* S- v - )
$ y, g4 J$ [7 B# G( f# t- W - (princ) A$ `0 X; M& a4 z* e
- (defun croerr (s)
& `! U3 u8 A& [' N2 K - (if (/= s "Function cancelled") . q" l% A3 ]: h+ B X/ V& _9 u
- (princ (strcat "\nError: " s))
0 C2 |% \1 |5 \9 p: i: S* m - ) : Y" j3 W# K: U1 a; u+ m
- (setq S nil)
; @1 p& N/ h, H, ]% x ~ - (setvar "CMDECHO" cm)
, F' q1 ?+ h, I2 M9 |# ^ - (setq *error* olderr)
0 L1 T' O% G$ i$ _ - (princ)7 j( Z, w' g4 j
- ), M( U! D8 M9 D% q# Q0 R, h
- (defun lastent (/ a b)% L& A8 b" n! s! B2 J+ T( z
- (if (setq a (entlast))2 E1 f& {( _$ d5 r
- (while (setq b (entnext a))
6 ~' s; V* s0 }0 @* q( g - (setq a b)
2 w& @0 I6 {5 L - )
o+ \* ~- ~2 X+ A6 n - )/ I1 f ?3 X; \; r
- a
4 t$ v$ S( k" A9 ]/ p W: f - )6 m+ F0 v! E( P2 f$ w6 r( s' o
- (defun redss (ss / en i)
9 j- ?6 ]. Q9 ^3 }% E - (setq i 0)+ n6 x8 ? f+ I) m
- (while (setq en (ssname ss i))
8 C( |$ `# S$ [) O0 V8 A7 B - (redraw en 1)( P9 s4 K j- j0 b9 F) {8 L
- (setq i (1+ i))
* Y9 o& N' z% F' h - )& p5 e! R4 J r4 h
- )5 h2 O; [* I! D/ ~9 B4 Z& d% Q
- (defun lss (en / sels ed)* J, |- z8 D# Z
- (setq sels (ssadd))3 M( a* ^( d( p$ Z7 e- ]; o2 [
- (while (/= en nil)9 c5 j4 R4 _; x2 U
- (if (setq en (entnext en)) (setq ed (entget en)))1 s! Q" T/ j9 C6 Q0 x M; Q
- (if (/= en nil) (setq sels (ssadd en sels)))
, L% x4 m7 o$ L3 Z9 E/ A. O. M3 g1 R - (if (or (= (cdr (assoc 0 ed)) "Polyline")
8 b. v0 `8 l/ I/ e4 Q2 {3 J - (= (cdr (assoc 0 ed)) "Insert")
3 Z n1 F0 f$ G, U - )5 j1 z6 s% b- _! M! s% Q( \) K r
- (while (/= (cdr (assoc 0 (entget (setq en (entnext en))))) "Seqend"))
0 C, m0 @4 z, Q7 K* b8 I - )
2 \8 X& v; B6 M/ L# @$ } - )( t0 b1 a' f' {+ w9 m
- sels
2 U* C N% I+ R* `5 s' K" Y - )
8 N r3 r: Y: x
' ?3 N: w0 d% y' j7 G# L- ;;;; ================== CAC FUNCTIONS DUNG TRONG ACAD.LSP ==================) M) X" @0 B# j7 K' Q: i) b
- ' T+ j! _6 a, J* m+ S
- (defun c:00 ()(princ "\nChon doi tuong net Defpoints")(ssget)(command "change" "p" "" "p" "la" "Defpoints" ""))7 a+ p5 O: d$ r# E3 E. [7 g
- (defun c:0 ()(princ "\nChon doi tuong net 0")(ssget)(command "change" "p" "" "p" "la" "0" "")); s2 K* c; v' s4 u& ?5 R
- (defun c:1 ()(princ "\nChon doi tuong net COT")(ssget)(command "change" "p" "" "p" "la" "COT" "")); {5 b1 @, }2 `: v
- (defun c:11 ()(princ "\nChon doi tuong net DIM")(ssget)(command "change" "p" "" "p" "la" "DIM" ""))
) V% j. x$ D+ V4 o - (defun c:22 ()(princ "\nChon doi tuong net MANH")(ssget)(command "change" "p" "" "p" "la" "MANH" ""))
$ a7 w8 H$ q& w9 S - (defun c:33 ()(princ "\nChon doi tuong net NETMANH")(ssget)(command "change" "p" "" "p" "la" "NETMANH" ""))# N6 j& P* C5 F, s1 [; v# r
- (defun c:2 ()(princ "\nChon doi tuong net NETDUT")(ssget)(command "change" "p" "" "p" "la" "NETDUT" ""))
6 l5 F6 p1 j0 E/ ] - (defun c:3 ()(princ "\nChon doi tuong net NOITHAT")(ssget)(command "change" "p" "" "p" "la" "NOITHAT" ""))
( i4 ^% B/ L, K% {, z. { - (defun c:4 ()(princ "\nChon doi tuong net TUONG")(ssget)(command "change" "p" "" "p" "la" "TUONG" "")). i) Z6 n: P* G8 G9 H
- (defun c:44 ()(princ "\nChon doi tuong net KHUNGTEN")(ssget)(command "change" "p" "" "p" "la" "KHUNGTEN" ""))5 K2 w2 y+ l# f: ~) |
- (defun c:5 ()(princ "\nChon doi tuong net TIMTUONG")(ssget)(command "change" "p" "" "p" "la" "TIMTUONG" ""))
- r+ X7 h7 F3 \8 @! t2 G - (defun c:6 ()(princ "\nChon doi tuong net CUA")(ssget)(command "change" "p" "" "p" "la" "CUA" ""))# j( D& c9 }2 w" c, b
- (defun c:7 ()(princ "\nChon doi tuong net THAY")(ssget)(command "change" "p" "" "p" "la" "THAY" ""))
Y2 U: {1 t% A - (defun c:77 ()(princ "\nChon doi tuong net NETTHAY")(ssget)(command "change" "p" "" "p" "la" "NETTHAY" "")). V0 e7 x. V2 F+ i* T
- (defun c:8 ()(princ "\nChon doi tuong net HATCH")(ssget)(command "change" "p" "" "p" "la" "HATCH" ""))
- ^) n0 r$ _' V$ b: s/ ]9 G - (defun c:9 ()(princ "\nChon doi tuong net TEXT")(ssget)(command "change" "p" "" "p" "la" "TEXT" ""))
, G6 ?5 d5 k/ ]" q, l+ g" M) s - (defun c:99 ()(princ "\nChon doi tuong net CUAMATDUNG")(ssget)(command "change" "p" "" "p" "la" "CUAMATDUNG" "p" "C" "bylayer" ""))
/ ?3 x5 m9 ?! |5 K, S4 R - (defun c:td ()(princ "\nChon doi tuong net THEPDOC")(ssget)(command "change" "p" "" "p" "la" "THEPDOC" ""))! @7 y' V* b7 G8 t9 P
- (defun c:ddt ()(princ "\nChon doi tuong net THEPDAI")(ssget)(command "change" "p" "" "p" "la" "THEPDAI" ""))# ?1 c7 W0 C. v8 x, b. _6 N4 a
- - V8 K# n' e8 t
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
- f1 E9 l7 A" \: _5 J0 @5 G' E - - B' K( I+ i+ r' i8 i
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
7 l6 h7 q' e! [& l( D
# e3 D8 u! r' s% U4 g! g- (alert "Using the NetXuatAnh-[ 5940.00 x 4200.00 <pixels> ] command!")9 q8 L) y, Y" x$ z
- (princ "\nEnter (DEFUN C:netxuatanh () to get to real LAYER command.\n") (command "NETXUATANH")
; R$ q' Q6 g! H1 f3 a2 ^ - ' P# n0 A( P( Q$ \! @5 g
- ;=============== DAT LAYER NET de xuat anh JPG [W x H] [5940.00 x 4200.00] ===DRAW===
9 k1 P% [" Z& {. r - 9 P- x! U/ `, K8 [" J1 u) h
- ;(DEFUN C:netxuatanh ()+ [$ l# i+ G/ r3 M
- (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.6" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""
* ?/ j6 q6 c$ z - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1.58" ""- x* B, @" L a
- "M" "MANH" "C" "9" "" "Lw" "0.5" "" J- w4 A* k; }* g
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
, t: q, K! Z4 ]; C' e a+ n - "M" "DIM" "C" "1" "" "Lw" "0.6" ""
w* r$ j2 t+ O# w1 n( x - "M" "THAY" "C" "7" "" "Lw" "0.7" ""4 W. n) W. o, ]: B1 O! u/ J
- "M" "NOITHAT" "C" "3" "" "Lw" "0.5" ""' f- J, Q* f+ E
- "M" "HATCH" "C" "5" "" "Lw" "0.35" "". d# Y( A& ~9 m
- "M" "COT" "C" "2" "" "Lw" "2" ""! k* V2 [ M6 R0 u, B9 \4 t' c* Q
- "M" "Defpoints" "C" "7" ""
9 H# e: W1 I2 m7 N; H- h3 S - "M" "0" "C" "3" "" "Lw" "0.5" ""1 j# P6 @7 x/ q8 U
- ; "M" "1" "C" "1" "" "Lw" "0.5" ""
5 A7 {# `5 O1 g3 q - ; "M" "2" "C" "31" "" "Lw" "0.5" ""' C" h% z" K a. h+ S8 C$ ^
- ; "M" "3" "C" "8" "" "Lw" "0.35" ""/ s. e3 M3 }% {/ P0 e
- ; "M" "4" "C" "4" "" "Lw" "0.8" ""
% P* I* ?# h$ k+ `- F - ; "M" "6" "C" "6" "" "Lw" "0.35" ""/ m, b; P2 Z! W- o+ X
- ; "M" "7" "C" "7" "" "Lw" "0.4" ""& A9 g% k( L* F7 p5 L8 X7 Z
- ; "M" "8" "C" "8" "" "Lw" "0.35" ""
2 k, C! p7 h. [) P - "M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" ""4 j7 M& T" u! L8 k" z8 g+ x
- "M" "DUONGBAO" "C" "7" "" "Lw" "1" ""; V6 ?4 C; o- [8 }
- "M" "KE" "C" "8" "" "Lw" "0.3" ""0 L6 w& S9 L2 }; A: j
- "M" "KT" "C" "9" "" "Lw" "0.35" ""
# q) U& z, Z9 I1 } - "M" "NETTHAY" "C" "255" "" "Lw" "0.7" ""
+ i. w( @2 C* E9 ~ - "M" "NETMANH" "C" "43" "" "Lw" "0.5" ""
0 b: p N9 |# V9 R! F - "M" "TBD" "C" "2" "" "Lw" "0.8" ""
1 R8 h6 b( e; b. S" {. x z/ J - "M" "TEXTTXT" "C" "7" "" "Lw" "0.4" ""7 z: J( X9 L) N& R7 O8 ?9 N0 w
- "M" "TEXTVN" "C" "132" "" "Lw" "0.4" ""
5 \4 \' |& {9 q9 y& j8 E - "M" "THEPDAI" "C" "3" "" "Lw" "0.7" ""
" c% l% }1 L# @* n/ k0 r - "M" "THEPDOC" "C" "2" "" "Lw" "1.58" ""; _& l4 U% n0 e
- "M" "CUA" "C" "6" "" "Lw" "0.5" ""1 g* A) c e6 X0 y( B
- "M" "CUAMATDUNG" "C" "6" "" "Lw" "0.5" ""
/ E7 a8 T( s6 }* Y3 c: q - * z& E v, t9 b& q* Q7 s
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] ===NUOC===
1 }( s1 E, E" K4 F: _* }0 d8 i T# ?: ~ - 3 ~' X( f: M8 [4 c
- "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" ""/ |# l, ?& ]! B; B: j' W! Z
- "M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" ""3 a! s: e" \8 u, s0 _' R, u
- "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" ""
5 @2 E* i& r4 r5 ]% h) k! A - ; "M" "250" "C" "250" "" "Lw" "0.35" """ w: N' v* x' W$ a# M
- "M" "KHUNGTEN" "C" "4" "" "Lw" "1" ""
! y2 f6 p I, B - "M" "TIMTUONG" "C" "5" "" "Lw" "0.5" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" "" )
$ Q" X9 ]' \, O9 I% s
) s4 S. j, q% p3 d! {- ;=============== DAT LAYER TEXT de xuat anh JPG [DIM] [TEXT] [GHI CHU]======
/ X0 l7 Y, U) m# q, J+ K. I - ;===================================30|04|2024==============================: w. ^6 {2 K. W* e$ n! L
- 9 M0 O6 i) ^% j$ J4 ~, m
- (Command "-style" "Vni-VietNam" "vn_vni,vns.shx" "0" "1" "0" "n" "n" "n" ). ^/ r' A" q: K7 e1 X' z
- (Command "-style" "Vni-ROMANS-TEXT" "vni-romans,vns.shx" "200" "1" "0" "n" "n" "n" )8 t8 d+ {( f' j& \; S6 x! ~
- (Command "-style" "COTES" "verdana" "" "1" "0" "n" "n" )
y8 x! P1 }6 w: O* G$ @ e - (Command "-style" "TRUC" "impact" "0" "1" "0" "n" "n" "n" )$ S9 t* q" H$ e$ _, _
- (Command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500" "1""0" "n" "n" "n" )0 A4 I$ ]% K# D
- (Command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1" "0" "n" "n" "n" )
/ l! j0 z T- O% I7 B5 c/ Y/ h - (Command "-style" "STANDARD" "Verdana" "200" "1" "0" "n" "n" "n" ): U5 Q. E1 S" d
- (Command "-style" "VERDANA" "verdana" "200" "1" "0" "n" "n" )
0 a; O$ A; |$ p0 M4 U0 w5 i& }$ Y - (Command "-style" "ROMANT-DIM" "romant,vnh.shx" "0" "1" "0" "n" "n" "n" )
$ B: w+ p% @* A' K4 {0 m5 N* e - (Command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200" "1" "0" "n" "n" "n" )(princ)
" o7 s, E! z; ~" k2 }" i! Z# v1 b4 v
: [* W- R5 u% j* u+ X% y- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=& i# r$ g* V' X |2 L6 R$ x
- ;===================================17|10|2024===================================
9 K" n6 l: A5 L9 ^8 l" S6 i+ E - 9 m R& S6 F) }6 f+ w: {1 T! _
- (Command "DIMTXSTY" "ROMANT-DIM" )+ K% X# |' V N; ~! V9 J" i- r
- (Command "DIMBLK" "" "Closed" )" ^6 @2 _# p$ e4 k9 M8 o4 X
, ~. D' s" ?- }- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=. y5 z4 D6 o/ o4 q+ P$ l4 {& n
- ;===================================17|10|2024===================================3 x, i7 X7 g! T! R- A) d
- ! R2 G6 I2 U8 z1 i4 x5 S7 @/ K
- ;(Command "-units" "2" "8" "1" "8" "" "N")0 C0 \# d5 p$ G( t) p
- (Command "-plot" "Y" "" "publishtoweb jpg.pc3" "User 1 (5940.00 x 4200.00 Pixels)" "Landscape" "N" "Display" "Fit" "Center" "Y" "monochrome.ctb" "Y" "")(princ)7 n: E: i7 T4 o3 Z+ A n$ b( B
- ! T$ e, \4 L5 H0 ?
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
3 S" e0 r2 [; Y+ Z - ;===================================17|10|2024===================================
3 }5 N# ~0 l0 Y: x3 t$ v
5 b, ^* ~( q! m- ;======== KET THUC - DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =====$ X; J3 ^8 j& |; W1 }! A `
# V( b0 M7 _; A8 T9 n( |1 v- ;======================== DAT NET IN & TI LE BAN VE =============================0 \" \" w W1 u2 `$ ?* o2 `
- . d% n, m. b4 A0 f' v" i
- ;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================
; |2 O: s6 I% N8 _7 Y - ;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================0 R$ b- J9 w8 P, A. R
- ;=============================11|07|2025==============================, e$ v. s9 I3 P
- ;Ti Le Ban Ve - 1 : 100
8 |. b: e3 D5 {8 h& g3 `7 g5 e - (Defun c:kta4 (); ? ]; N# ]; E% Z
- (setq mv_sc 100);Ti le ban ve
7 _7 j% C/ N# S - (setq x4 297)
5 r7 d H! a6 I! w) c% K- B( S - (setq y4 210) X% ^0 T7 K5 [
- (setq x4 (* mv_sc x4) 8 v0 ]! r8 ]! ~
- y4 (* mv_sc y4) )2 m- _- X w0 S/ {2 [& ~4 v" q
- (command
8 v# R: J/ H' M - "LIMITS" "0,0" (list x4 y4)
! u8 \: S* j! W- x - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
7 c# n+ ^1 V: ?) H9 q+ r2 j9 i - ;Khung CHU NHAT Chinh
) F& ^4 K8 x% z F. I. J - "RECTANG" "500,500" "@28700,20000"# c- B! Z) u; a Z
- "RECTANG" "700,700" "@28300,19600"
. u3 U9 g. N" C5 s3 C; t - ;Khung Ten Chung
: M/ I% }' H1 Q9 O2 X7 P$ h' ] - "RECTANG" "700,700" "@8000,1250"# b+ E' e9 S" d* J4 ]( y" `
- "RECTANG" "700,700" "@17300,2500"0 g# S) O& ~3 D+ ]) j% V
- ;Ten Ban Ve5 G, A2 b' O+ n3 }' f. `* i ~
- "RECTANG" "18000,700" "@11000,1250"
) n# |' n, x% O/ a v - "RECTANG" "18000,700" "@11000,2500"
( N2 ]3 B }, y' Q! R' \ - ;Khung Ti Le + Ngay Thang Nam) ]5 ]. e. Q) b0 ?9 u5 P2 t* K
- "RECTANG" "22500,700" "@2000,2500"9 h' P# j8 D* u5 ]' c+ }9 I
- ;Khung CHU TRI0 P) F& o# m* q7 u5 u% p9 g) m
- "RECTANG" "8700,700" "@3800,2500"
, J8 c7 }3 q7 ?+ y - "ZOOM" "_a" )); D6 H. u1 k+ R' ?0 B1 V$ L
- ;=====================================================================
9 X3 @% Y, y) v) G; n - ;Ti Le Ban Ve - 1 : 100
& M3 ]' s4 ]# R F' ?& |' \7 k - (Defun c:kt4a ()# T- V. f! r" r( `+ n' @
- (setq mv_sc 100);Ti le ban ve
. k* D" E+ y& U8 Z - (setq x4 297)
. ?& |6 n! T: b2 l$ q8 E' n - (setq y4 210)
% x3 f* S/ c y# t; _2 }. I - (setq x4 (* mv_sc x4) 5 V, F: t8 x( l: r' w' z6 i
- y4 (* mv_sc y4) )
2 R+ {8 g5 p7 P1 x2 U: c - (command
% P* D( _" x: d3 ]! p f - "LIMITS" "0,0" (list x4 y4)
r& N( f8 B% z |0 W; \ - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"/ [5 y7 u7 \1 n5 |/ @3 i
- ;Khung CHU NHAT Chinh
z5 r! n' s$ G: F/ v8 L7 z - "RECTANG" "2000,500" "@27200,20000"
/ b" C8 |4 _. ~8 v - "RECTANG" "2200,700" "@26800,19600"
4 C7 @5 L% b3 a7 c - ;Khung Ten Chung$ k* H) E& m* T f+ j. O8 O
- "RECTANG" "2200,700" "@6500,1250"4 P7 U0 R6 `- f" d1 y
- "RECTANG" "2200,700" "@15800,2500"
- l) ~; b7 z5 a - ;Ten Ban Ve5 ~5 j4 q5 x3 y, h( O* U
- "RECTANG" "18000,700" "@11000,1250"' ?+ \# j- R" [$ q
- "RECTANG" "18000,700" "@11000,2500": R& `. ~7 M4 ]
- ;Khung Ti Le + Ngay Thang Nam
H9 O3 ^0 i" G; E' ?' C. ] - "RECTANG" "22500,700" "@2000,2500"
' U/ O; t; G9 I. L6 W - ;Khung CHU TRI8 w1 i. g# x2 j7 _* P% V
- "RECTANG" "8700,700" "@3800,2500"
6 V( u( |/ T) N8 T( N - "ZOOM" "_a" ))1 @. l$ _- a2 y N8 C
- 6 F5 P: f* E5 S6 j9 _9 q& L+ i' @
- ;;; ============================GHI CHU Khung Ten========================
9 Q( S( ^' y% O5 v4 o2 q# x - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========& B4 R7 ?% ? d6 j% i5 j
- ;;; =======================Thuong Dung Font Romant.vnh===================
0 x/ K! y) D. v; ~* O) Q/ f* [ - / G$ Z- o& t* `3 X1 X
- (defun c:GhiChu (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
+ Q( m# |$ M* k- v - (setq oer *error* *error* err2)
; v4 S0 @0 [+ D8 C; g* L1 o: z( j0 { - (PROMPT "\nChuTri. ThietKe. KiemTra. TiLe. Ngay. HangMuc. QuyMo. KieuNha. CongTrinh. KyHieu. TenBanVe. Kts. TranNgocThang. ")
- D6 t7 u. X, F, o - (SETQ Cpt(GETSTRING "\n(CT). (TK). (KT). (TL). (Ng). (HM). (QM). (KN). (CTr). (KH). (TBV). (Kts). (TnT). "))$ N$ d" V% c& z; n: S1 q- x2 N4 W
- (IF(OR(= Cpt "QM")(= cpt "qm"))(SETQ CPT ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông quy M« :"))
* K- ~! z" l; V8 l8 w4 h3 q - (IF(OR(= cpt "KN")(= cpt "kn"))(SETQ CPT ' "2 TÇng 1 Tum Thang"))3 h+ j+ m/ g& Q5 o/ t$ w$ h& w
- (IF(OR(= cpt "CT")(= cpt "ct"))(SETQ CPT ' "Chñ Tr× :"))
6 F; O* F' f. `4 I6 h - (IF(OR(= cpt "HM")(= cpt "hm"))(SETQ CPT ' "H¹ng Môc :"))
! X0 e( F* B$ P( L+ I. M - (IF(OR(= cpt "CTr")(= cpt "ctr"))(SETQ CPT ' "Nhµ ë Gia §×nh - Nhµ LiÒn KÒ"))
9 R( H" A0 A$ o. }+ v! w7 W - (IF(OR(= cpt "TK")(= cpt "tk"))(SETQ CPT ' "ThiÕt KÕ :"))
! Q8 e+ C( ^" c- r5 b0 o) V - (IF(OR(= cpt "KT")(= cpt "kt"))(SETQ CPT ' "KiÓm Tra :"))" }) x, d) z" t3 h, \% I
- (IF(OR(= cpt "TL")(= cpt "tl"))(SETQ CPT ' "TØ LÖ :"))
& d* p+ Z$ P4 T. {7 ? - (IF(OR(= cpt "KH")(= cpt "kh"))(SETQ CPT ' "Ký HiÖu :"))
: F* \- z2 o7 T* w+ u) ` - (IF(OR(= cpt "TBV")(= cpt "tbv"))(SETQ CPT ' "Tªn B¶n VÏ :"))7 P) {) T) M1 E: p" y) r
- (IF(OR(= cpt "Ng")(= cpt "ng"))(SETQ CPT ' "Ngµy :"))+ e. C4 F! q/ V& b5 R D
- (IF(OR(= cpt "Kts")(= cpt "kts"))(SETQ CPT ' "Kts. TrÇn Ngäc Th¾ng")), a r; ?1 u& `# G# r G% I1 e
- (IF(OR(= cpt "TnT")(= cpt "tnt"))(SETQ CPT ' "TrÇn Ngäc Th¾ng"))1 i9 ^2 `" C; F- l
- (setq pta (getpoint
8 s! s9 L8 ]+ M6 O - "\nPick first corner. : ")) Z' H# [6 c) F0 o/ R" ^& {1 g) f
- (setq ptb (getcorner pta
5 Q+ |/ C' x+ s; X9 X - "\nPick second corner. : "))
4 p! q- V+ w f$ C# F - (setq ptc (list (car ptb)(cadr pta)))4 L& u& I$ p( S V ~) k% p
- (setq ptd (list (car pta)(cadr ptb)))
6 S: u( Q' l% n( B( h u - (setq ang (angle pta ptb))
" C$ v3 f9 @6 X; p3 o0 ~ - (setq d1 (/(distance pta ptb) 2))
" x5 _+ @3 m" ^, h- ?: W - (setq cp (polar pta (- ang (dtr 0)) d1))$ j2 X( K6 A) L! C0 b% K, {
- (setq X (distance pta ptc))1 B' r0 Q. o' W
- (setq Y (distance pta ptd))' m9 k: F2 S& x
- (setq X1 (rtos x 2 1))* K. E {" a# ]6 r+ Y r! o
- (setq Y1 (rtos y 2 1))
* y& K: _: {, ?; V - (setq rmsz (strcat "(" X1 " x " Y1 ")"))
" l# U9 D3 h# ^) v0 B4 D, B - (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
3 K! }: _. Y) \$ l6 w- Y8 W - (defun dtr (angg)
7 t$ v: U5 h v$ H5 ~* G: h - (* pi (/ angg 180.0)))- q% c8 }/ w( Q
- 4 ^! A5 t$ M5 N; u1 I
- ;=====================================================================
& ~8 l2 r& c4 }, C- i; U - ;==========================DAT KHO GIAY BAN VE - KIEU 1========================, P! B! l, {( e
- ;=====================================================================
2 l) W2 l5 u- a. z4 K( I& x
& Q, F: [ ^4 b- e! ]; X: i- (Defun c:a6 ()/ m( r( ]" z# [1 t* ]- I
- (setq mv_sc 100);Ti le ban ve$ n) |, x- t8 P0 W8 w! t" T
- (setq x4 74.25)% l- i9 ~5 s" u# \# J2 g
- (setq y4 52.5)
# Y8 Q6 q2 |8 f0 O. i) l - (setq x4 (* mv_sc x4)
/ e6 M# S# \( t0 a& l - y4 (* mv_sc y4) )# G% Q+ \) w- q5 M) J s M( r
- (command
: i/ u' F5 b+ f - "LIMITS" "0,0" (list x4 y4)
' D; n) I! Q& H$ ^; { - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"# s/ m* ~. H2 P7 `/ { T
- "RECTANG" "125,125" "@7175,5000"9 f2 h9 q3 w% f" ] M. @! E" V
- "RECTANG" "175,175" "@7075,4900"
2 G$ E" q* p7 d! \ - "ZOOM" "_a" ))4 z+ ?" Y( T: C: Z' G
- ;=====================================================================
. k- ?- ~# v7 j: T) m4 ~( |6 }/ f - (Defun c:a5 ()
) F4 c) H1 h; }* U$ `2 _( ^ - (setq mv_sc 100);Ti le ban ve
( _$ x p+ @% }( t T" l% H - (setq x4 147.5)- {+ `9 u+ I" D8 s' u7 O D
- (setq y4 104). {0 l1 G9 s7 Y( d8 h
- (setq x4 (* mv_sc x4) ! M& m3 z' G* S# z& m
- y4 (* mv_sc y4) )0 x0 F! J$ z9 \4 ?
- (command ) H4 q3 x' \5 C/ @0 M7 `7 D: ]+ ]
- "LIMITS" "0,0" (list x4 y4), o8 G+ v1 ?8 }4 Z+ a7 x- |
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
$ g, W0 P0 G& L/ B& x+ O - "RECTANG" "250,250" "@14350,10000"
6 X8 ~$ A- q- Q a - "RECTANG" "350,350" "@14150,9800"
" U7 N/ M1 I9 E7 y0 h2 u: I - "ZOOM" "_a" ))
$ ^# E0 v) ]& Q% [) h' v) e - ;=====================================================================
$ ^" d* x& c3 C3 f) k; J7 p - (Defun c:a4 ()
) `& J+ Y, u7 y8 s: M4 H0 M) p0 J+ Q - (setq mv_sc 100);Ti le ban ve6 g2 K l7 c0 u' ^5 e
- (setq x4 297)% [( O# @ f; W1 g& ~7 Q
- (setq y4 210)
9 z- t9 ]- U# j( b7 K - (setq x4 (* mv_sc x4)
* p7 J! m3 u5 P3 W4 y O - y4 (* mv_sc y4) )
* }4 t2 e. n4 _, T) f. u% M - (command 7 \! g0 w' l" n$ G! \1 A; F
- "LIMITS" "0,0" (list x4 y4)' a0 T' b4 t# F, \. f: }. }+ s T3 q. Q
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
9 K+ B! A+ _" h& i& z - "RECTANG" "500,500" "@28700,20000"
% K) I1 D2 K {7 v) ^1 J - "RECTANG" "700,700" "@28300,19600"
' z$ u7 b# \4 x( O - "ZOOM" "_a" ))7 x; {/ Y0 f3 ] _" [3 c
- ;=====================================================================8 z6 p+ _+ w* \: A* `$ Z; |2 h3 x
- (Defun c:a3 ()% u+ C* w! `1 t v: c
- (setq mv_sc 100)
' z2 p9 H) r' Q2 ~9 G* B - (setq x3 420)
' ~8 y% Y8 c1 | - (setq y3 297)
$ ]" S8 i2 |5 { - (setq x3 (* mv_sc x3)
6 t: k; O: }+ `# \* @ - y3 (* mv_sc y3) )$ ^+ `8 }3 [; ?8 Z
- (command , o2 ?5 W( ]3 S8 `( w# d
- "LIMITS" "0,0" (list x3 y3)
% s5 w- k w; z - "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C". D# U8 Q. c: p0 [
- "RECTANG" "707.14285714,707.14285714" "@40590,28285.71428571"
$ [! }2 B- }6 ^- w& m! K - "RECTANG" "990,990" "@40024.28571429,27720"; `9 C& m& _/ e
- "ZOOM" "_a" ))# ]" U8 M! |) P' T; [
- ;=====================================================================1 p2 M: J& X( h
- (Defun c:a2 ()
4 v: a3 H- k3 _6 e3 A - (setq mv_sc 100): a% J% o& {& F3 W0 H# s
- (setq x2 594)/ U. ~- {: G0 C O
- (setq y2 420)8 r2 @' I \ x% ?2 i
- (setq x2 (* mv_sc x2) 8 }! H# ?4 Q! S
- y2 (* mv_sc y2) )
! N1 u0 V" F" M4 ?, T+ r4 Y6 ~+ d - (command " B' B8 O# b. J$ C
- "LIMITS" "0,0" (list x2 y2)/ N& x2 [( [0 T4 j$ W
- "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"
, Q* }: J3 o. O6 v8 } - "RECTANG" "1000,1000" "@57400,40000"4 V: h& r G' n7 I: M+ `( n/ q
- "RECTANG" "1400,1400" "@56600,39200"
4 \8 b! {9 V t4 H0 ^ - "ZOOM" "_a" ))& d% E- m) ?7 j" w O4 i
- ;=====================================================================9 |4 ?, b1 @; }- L1 @1 f
- (Defun c:a1 ()8 _ g+ ^; ~/ f' \
- (setq mv_sc 100)1 ~5 B* M: T& k& V5 U
- (setq x1 840)
/ d# {; b4 Y* ^2 {( h - (setq y1 594)
1 Z$ N6 a- d; M$ |# s3 d Q, p( X - (setq x1 (* mv_sc x1)
; N' J* `7 V, K' v) C3 R+ `7 L* z; D - y1 (* mv_sc y1) )
6 u4 E$ L" E; G% c/ w" m - (command 6 W, I( {5 {* s4 _. f1 ?
- "LIMITS" "0,0" (list x1 y1)5 M, U F! ^' ~) i2 W
- "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"2 o& L& x$ O* o7 y
- "RECTANG" "1414.28571429,1414.28571429" "@81180,56571.42857143"
" m" J5 U3 t. ?. V2 @. E' H - "RECTANG" "1980,1980" "@80048.57142857,55440"9 D1 h# K& k% R: k, d# P8 S# a
- "ZOOM" "_a" ))
, ]# W5 z+ \; w - ;=====================================================================) G9 f. T5 P/ f
- (Defun c:a0 ()$ n2 E& t+ `6 e( z% `4 D& _3 T0 q
- (setq mv_sc 100), }; T0 L! c0 ~6 b
- (setq x0 1188)
4 c% E8 ?3 N7 T& k& u1 X% D8 H" p - (setq y0 840): N, Y' ^& [' v+ _9 l4 ]9 ~
- (setq x0 (* mv_sc x0)
9 |# S0 {3 ]# T6 q; R' l+ n z* v8 J - y0 (* mv_sc y0) ), }! v1 [9 K+ H0 v
- (command " A4 A$ L' K, S
- "LIMITS" "0,0" (list x0 y0): y; |) ^& g0 z A2 g7 N; Y
- "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"7 ~: q$ w; R6 r3 J( H, i- r
- "RECTANG" "2000,2000" "@114800,80000"
% v5 w, ]# W: Z8 V, W/ v/ {- z. G - "RECTANG" "2800,2800" "@113200,78400"
. L- k+ u8 h) ?. _, _ - "ZOOM" "_a" ))) B* a) D) w) _
- + a' w' z/ i7 n. o
- ;=====================================================================
7 E% _; P4 X3 T - ;=========================DAT KHO GIAY BAN VE - KIEU 2=========================
8 T" o/ y7 s& s3 J! t* w& R, L/ e - ;=====================================================================
) T' {3 S( m- b( Z7 }' ~
/ k! ?- x; Z7 q$ ?% T3 b- (Defun c:6a ()' W7 p- O+ T5 l2 x9 y
- (setq mv_sc 100);Ti le ban ve( l6 Z5 B; _3 |
- (setq x4 74.25)' [4 [/ T: B$ x9 l: o0 v
- (setq y4 52.5)5 D5 m0 q6 M# V: R- T
- (setq x4 (* mv_sc x4) 9 r W! L2 u9 n' A7 h# y, i/ H
- y4 (* mv_sc y4) )# H: v6 C% b$ n7 [# q$ S/ N
- (command
1 |, [+ d$ I2 F& S - "LIMITS" "0,0" (list x4 y4)
( n0 h4 i* A3 u - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
`0 i' f, x5 n, ?1 Q - "RECTANG" "505,125" "@6800,5000"
+ ]! h# B: N: c' [$ j - "RECTANG" "555,175" "@6700,4900"+ D0 F2 \+ T Y( {9 i; P8 C" l
- "ZOOM" "_a" ))2 a# X x+ l0 d) X( o# K, u
- ;=====================================================================& \8 j v, b( W* v1 r
- (Defun c:5a (). k# N5 r v: ~/ `
- (setq mv_sc 100);Ti le ban ve
* Y+ e q3 s. w8 \; L0 A - (setq x4 148.5)
) [; @/ V' d4 Y: E - (setq y4 105)6 x9 q4 ?/ K1 J; Q/ T. k8 J
- (setq x4 (* mv_sc x4)
+ v9 P$ e) V$ X, F2 m/ ^# Q- C - y4 (* mv_sc y4) )
/ J$ ?8 u6 C* _" t y - (command ' d$ J+ _5 p9 F H" n3 B7 Q) X
- "LIMITS" "0,0" (list x4 y4)
' Q$ X4 x7 N M: H1 E - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"5 l: J' w. ?! r
- "RECTANG" "1000,250" "@13600,10000"9 X' t8 u8 Z& D# E4 T$ D
- "RECTANG" "1100,350" "@13400,9800"/ E& L+ n5 x! u' h
- "ZOOM" "_a" ))8 w& ]+ j0 B% X6 v% z: Q
- ;=====================================================================# _& C; u' m1 {
- (Defun c:4a ()
( i6 z! I: |6 M' N, x. H$ ~7 S - (setq mv_sc 100);Ti le ban ve! C! a( O* B& Z" X" E: S
- (setq x4 297)
0 i# w: n0 j: m - (setq y4 210)
+ u J) b+ o# O: F2 j - (setq x4 (* mv_sc x4)
8 D3 P: ^7 ?9 O. X3 X - y4 (* mv_sc y4) )
# p, |( B7 o3 @) P - (command
- J; i8 B* i7 Q4 H2 `; N9 O - "LIMITS" "0,0" (list x4 y4)6 r# x6 ?$ x5 @8 J$ W0 ?3 k
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"' U* c' d. g9 n$ a3 L
- "RECTANG" "2000,500" "@27200,20000", J, `- D: x# `3 w0 ?8 ?
- "RECTANG" "2200,700" "@26800,19600"
# i/ N( K) G A, g# H - "ZOOM" "_a" ))
& h: f% `) ]" D# H - ;=====================================================================' j0 ~% r& e) E; _
- (Defun c:3a ()
! Z# z! J* T+ M# ~% N. a1 _ - (setq mv_sc 100)3 S, ? S9 U$ p* r$ Y; a+ m7 r+ E
- (setq x3 420.0428571429)! j, K3 l+ y! q- h
- (setq y3 297)
1 \! _" u- ~5 y - (setq x3 (* mv_sc x3)
3 O! Y& r8 a$ @: E7 D- c - y3 (* mv_sc y3) )' n/ _, Y p3 u9 ?
- (command
" {) t2 M0 m2 W" l: u0 ]0 V' a - "LIMITS" "0,0" (list x3 y3)( g8 g& ]( E) D" {3 M+ }4 l
- "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"! _; E# X) Y& P$ w0 p k* x( P
- "RECTANG" "2828.57142857,707.14285714" "@38468.57142857,28285.71428571"
% X; Y( ^1 S5 N+ Q* u2 Y. D - "RECTANG" "3111.42857142,989.99999999" "@37902.85714287,27720.00000001"" @6 |# [1 g* M. T3 {; H+ |) E
- "ZOOM" "_a" ))/ F9 b% ?2 s3 d
- ;=====================================================================
; ~& o) q& D6 e - (Defun c:2a ()% }, \* J" i5 `# f5 I0 ~# f
- (setq mv_sc 100)( ?" Q# Y8 l' x6 X; g
- (setq x2 594)
A* R: m4 f" E& X( s6 B - (setq y2 420)
) @$ h- Z B# Y r" o3 S - (setq x2 (* mv_sc x2)
' J& s# g+ k. U$ x' a, }" R3 W - y2 (* mv_sc y2) )
, ]! u/ p, p5 k. X - (command , A& ~ E5 z; f* M5 L
- "LIMITS" "0,0" (list x2 y2)
: d1 }- a" ]4 J - "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"6 L G- t% N7 D! p/ p+ o1 Y
- "RECTANG" "4000,1000" "@54400,40000"9 t1 c4 v3 u( g, z. ]( }
- "RECTANG" "4400,1400" "@53600,39200"& |+ ~% V j3 Y: V
- "ZOOM" "_a" ))
% S- H' k6 W" Z+ c3 R - ;=====================================================================2 B& `9 Y$ b7 O" q
- (Defun c:1a ()# w2 x; ~! }+ y4 D; S4 ?# e
- (setq mv_sc 100)6 g; v! f# i& ?+ b
- (setq x1 840.0857142857)
3 b s; e. {7 k2 p - (setq y1 594)
, X. D7 H1 a3 O0 j5 ~ g8 y - (setq x1 (* mv_sc x1) , i% w& h8 I, v/ P
- y1 (* mv_sc y1) )
4 u8 Q0 H; u/ Z! L - (command % D! q2 q8 ?3 i/ Q6 P q5 Y
- "LIMITS" "0,0" (list x1 y1)% ~0 ^* R0 e% S; O; h6 i9 K, q
- "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"* e1 a" L. f; \+ Y1 ]* s
- "RECTANG" "5657.14285714,1414.28571429" "@76937.14285714,56571.428571436"
1 Y- Y# R0 o1 a9 `; P; y( V - "RECTANG" "6222.85714286,1980.00000001" "@75805.71428570,55440". |2 T. H5 T+ p7 Y/ ? l
- "ZOOM" "_a" ))
; |. W. V0 X" t0 S3 n$ @0 Z) J - ;=====================================================================
+ g5 m" o! U6 D! \ - (Defun c:0a ()! l+ S" K/ B3 ?+ Z
- (setq mv_sc 100), i. Y* c3 H& s1 H
- (setq x0 1188)
x. L! j! n7 J% } - (setq y0 840)9 l( R! ?$ K6 p" ?
- (setq x0 (* mv_sc x0) b" D9 G4 ]6 I% V; w9 F" x3 i
- y0 (* mv_sc y0) ): S1 h1 Q2 g& V5 }
- (command
7 c9 d' F2 U" j* f7 V - "LIMITS" "0,0" (list x0 y0) v. ^$ F. I+ k; u
- "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"( V) m" r. X# F, [ b8 E7 n
- "RECTANG" "8000,2000" "@108800,80000"
' I3 O8 b l9 x- g8 n! ` - "RECTANG" "8800,2800" "@107200,78400"4 B0 R4 q5 t6 I6 e: A# k @: X
- "ZOOM" "_a" ))
) r' p% v; u+ r8 \
7 d4 ^+ ^2 i6 @, o4 o. u- ;=====================================================================
- `" w/ [4 @9 v8 p+ l3 E3 C - ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================% n9 F8 u7 x5 O* p: }. o; G- \1 ~9 x/ a
- ;=====================================================================
: I* t: k) d: H) J: v$ R4 h - (defun c:khogiay (/ oldlst a b c d e f g h kho TL)& w* G4 i! R) p1 |: ~ _
- (command "undo" "be")+ W5 ?5 N$ ]1 ?7 X7 I
- (setq oldlst (mapcar 'getvar (list "CMDECHO" "OSMODE" "cecolor")))3 x h4 Q* Y, ?! Z1 r' u( j
- (setvar "CMDECHO" 0)
; b, {, Y7 X( G9 K) x7 m+ V - (setq a (getpoint "\n chon diem chen :"))
# L9 ]: `* x, ]3 j ` - (if (not TL) (setq TL 1.00))
, P. n' y9 o* y# K - (setq TL1 (getDIST (strcat "\nScale <" (rtos TL 2 2) ">:")))
% R: x- ^* G+ ]5 k2 b* U - (if TL1 (setq TL TL1))
- _" Q9 q. X/ N - (setvar "osmode" 0)
0 o! i! b9 w" ]& W& o0 `) H - (if (not (tblsearch "layer" "Defpoints")) (Command "layer" "N" "Defpoints" "")): _$ |8 h: g" C, V6 `
- (initget "0 1 2 3 4")
* V& j( Z6 B' n - (setq kho (getkword "\Kho A0 _ Kho A1 _ Kho A2 _ Kho A3 _ Kho A4 [0/1/2/3/4]? <0>:"))3 d8 \7 N3 t) |" l$ r, ~( b
- (if (= kho "0")0 v" g: v8 I p( g `4 v1 C
- (progn8 q! j6 i# Y: M U
- (setq b (polar a 0 (* TL 1189)))2 M% _! d+ D' j1 Y2 L) f
- (setq c (polar b (/ pi 2) (* TL 841))). n: f- w* m+ d
- (setq d (polar a (/ pi 2) (* TL 841)))
, L& n# f& @: p2 I! s - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))1 ^5 L3 l# `( p9 l: O( o* D$ c
- (setq f (polar e 0 (- (* TL 1189) (* TL 24))))
& k9 p* ?5 u( T5 a - (setq g (polar f (/ pi 2) (- (* TL 841) (* TL 24))))
* X4 n; \( |$ S+ ~. j8 ^* ] - (setq h (polar e (/ pi 2) (- (* TL 841) (* TL 24))))1 s/ e* P, ~% T" u2 w( D
- (command "Pline" e f g h "c") * e; A* e3 g2 W4 a( f
- (command "change" "last" "" "properties" "layer" "0" "")
! Y" Z9 l, i2 a/ e* s% [& T% _ - (setvar "cecolor" "4")8 t% q2 E( s1 w( |' ^
- (command "Pline" a b c d "c")
' Z3 l/ o9 `9 x7 H. q; C4 V - (command "change" "last" "" "properties" "layer" "defpoints" ""))) . `" `6 O1 n e( V3 E4 o
- (if (= kho "1")
( o" a8 d& Q& K+ W6 n+ J7 } - (progn
+ `& j0 v) F0 b. q7 z1 |) i - (setq b (polar a 0 (* TL 841))), p, L" u& E" J- n0 I$ \
- (setq c (polar b (/ pi 2) (* TL 594)))' R4 z9 }; v8 V
- (setq d (polar a (/ pi 2) (* TL 594)))
/ _+ e* U7 Q. c5 } - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))
* E& i. K/ |$ H3 l- R7 H - (setq f (polar e 0 (- (* TL 841) (* TL 24))))
$ D! }2 M% M' H - (setq g (polar f (/ pi 2) (- (* TL 594) (* TL 24))))5 n. ~. i6 m! ]4 l1 `/ O- a
- (setq h (polar e (/ pi 2) (- (* TL 594) (* TL 24))))9 z$ V* v9 u0 @/ U9 R% d9 `0 ~4 J6 c2 J
- (command "Pline" e f g h "c")
0 p& D; ]- e) _+ z* a' J* C% B( c5 T - (command "change" "last" "" "properties" "layer" "0" "")( H' p& T: y! p/ O4 D
- (setvar "cecolor" "4")% u# Y& K8 c: f: A0 b
- (command "Pline" a b c d "c")
- s% {+ K, L Z& I' n - (command "change" "last" "" "properties" "layer" "defpoints" "")))* v" y$ U# ^& @5 \3 i
- (if (= kho "2")2 @6 _ \! k+ ~2 S# X) c
- (progn6 ^0 O4 P$ j5 u9 e' z# o. V; N
- (setq b (polar a 0 (* TL 594)))
9 n% Z2 n: H# O7 `' x - (setq c (polar b (/ pi 2) (* TL 420)))2 ~3 T: H& V3 \& q
- (setq d (polar a (/ pi 2) (* TL 420)))5 {- `( P; b d$ d( b$ R4 V
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100))))): B y, _4 y) ^' a: \$ K6 Z
- (setq f (polar e 0 (- (* TL 594) (* TL 20)))); u2 H+ U9 N( e0 ~& h( i
- (setq g (polar f (/ pi 2) (- (* TL 420) (* TL 20))))
5 |: x( j& o; ] - (setq h (polar e (/ pi 2) (- (* TL 420) (* TL 20))))
8 q( z* a2 f( A - (command "Pline" e f g h "c") - C1 S; |3 [ a% U6 b
- (command "change" "last" "" "properties" "layer" "0" "")% H7 }3 T# W3 k( x
- (setvar "cecolor" "4")
; c6 B" j" P2 x6 B( c k - (command "Pline" a b c d "c")
7 X8 M# H# l1 @& d4 y3 y* ]8 L- o - (command "change" "last" "" "properties" "layer" "defpoints" "")))
, T! l) M5 ?2 w - (if (= kho "3")8 B; B" r' S: x) ?* y
- (progn
- V5 |. L' j: U0 d: `3 T - (setq b (polar a 0 (* tl 420)))4 l# v t, Y \+ l5 M0 H5 I
- (setq c (polar b (/ pi 2) (* TL 297)))
1 D# F7 D' X, _9 _9 |3 Z$ ? - (setq d (polar a (/ pi 2) (* TL 297))); ?+ p) w, f5 y# z* b' D
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))
5 e* \ v7 K8 L0 n# n _ - (setq f (polar e 0 (- (* TL 420) (* TL 20))))
) P! a3 R, X# B2 L3 Q - (setq g (polar f (/ pi 2) (- (* TL 297) (* TL 20))))
' {% t3 G8 B2 k' u7 E! b' l' l - (setq h (polar e (/ pi 2) (- (* TL 297) (* TL 20))))1 T$ W* n; }7 c W* p
- (command "Pline" e f g h "c")
; a2 i+ B) E# ^! B - (command "change" "last" "" "properties" "layer" "0" "")+ I! `8 |) C, q5 ^; L; T
- (setvar "cecolor" "4")$ C" |- F9 z3 e8 c
- (command "Pline" a b c d "c")
8 o1 `3 u3 r! ?& Q8 r5 r; R - (command "change" "last" "" "properties" "layer" "defpoints" "")))% o( y4 z$ y. a; r9 S
- (if (= kho "4"), Q9 Y; Y; @6 A$ r
- (progn- p0 p+ g% ?( m8 T
- (setq b (polar a 0 (* TL 297)))
6 e$ L! @7 G1 f% P - (setq c (polar b (/ pi 2) (* TL 210)))
6 \) Y7 o$ s* l - (setq d (polar a (/ pi 2) (* TL 210)))' C& x& T) Y2 m! c
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 81)))))& ?$ d, Z7 p- [* Z( k
- (setq f (polar e 0 (- (* TL 297) (* TL 18))))
2 y" ]& Z q# C; l - (setq g (polar f (/ pi 2) (- (* TL 210) (* TL 18))))# O' Z* g( P$ H
- (setq h (polar e (/ pi 2) (- (* TL 210) (* TL 18))))# }2 i6 z: p" y# ]
- (command "Pline" e f g h "c") $ s/ J; Q, |6 T4 Y0 k( @. J5 _7 v* w3 g2 i
- (command "change" "last" "" "properties" "layer" "0" "")
: r- X+ u2 u3 z) i+ R, C) j - (setvar "cecolor" "4")
6 i1 q* ^) y/ N3 A( q2 N9 ^* W6 Z - (command "Pline" a b c d "c")
) t) @& P9 N+ F' v - (command "change" "last" "" "properties" "layer" "defpoints" "")))
+ g6 [+ ]6 d' ] - (mapcar 'setvar (list "CMDECHO" "OSMODE" "cecolor") oldlst)% r+ G: S$ U! @
- (command "undo" "e")8 {" i- K. E- z2 p$ D
- (princ))/ m/ R- p( x4 I) @: S& P( S. O( N
- ;=====================================================================# `7 @/ v: J6 F* Z, z# v D
- ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================8 ~( i) ]2 D. m; Y3 d/ H
- ;=====================================================================
) A3 ]7 n$ e+ R2 L3 x
. X3 m; G7 h: E7 T0 U/ t- J+ z- ;=====================================================================- c2 m8 q* v. [, E
- ;===================DAT Ti Le Theo KHO GIAY BAN VE====================5 m4 R2 }( b, [2 L
- ;=====================================================================' C7 r. C! ?3 l3 M2 N
- 2 C6 f) e7 h. D; }7 O6 q1 J) x
- (DEFUN C:SA6 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.1" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""5 e: F# t- F" g: @* u6 T1 ]1 U
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.3" ""0 X* ~, i) u: r" k) v% x P
- "M" "MANH" "C" "9" "" "Lw" "0.1" ""
+ n( f. i4 p) p% V; s - "M" "TEXT" "C" "7" "" "Lw" "0.12" ""
) K2 I$ i7 r' X- G" I$ _ - "M" "DIM" "C" "1" "" "Lw" "0.12" ""
4 ^) f. Z/ t2 i. v* _ - "M" "THAY" "C" "7" "" "Lw" "0.2" ""
; u/ Z# h# I8 q5 x- b* { - "M" "NOITHAT" "C" "3" "" "Lw" "0.12" ""
6 a5 J& e0 L# @8 E% c2 | - "M" "HATCH" "C" "5" "" "Lw" "0.1" ""9 l9 G @, @% u
- "M" "COT" "C" "1" "" "Lw" "0.3" ""
. U5 \: Q, ?; I8 h - "M" "Defpoints" "C" "7" ""
8 y% x5 K: [! A+ s7 u& ?6 `( U - "M" "0" "C" "3" "" "Lw" "0.12" ""8 P! ^( r0 ^! ?' k
- "M" "CUA" "C" "6" "" "Lw" "0.12" ""
4 Y$ b! U# x: f* K4 A9 N0 T( l - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" "" m" o3 k8 H& s4 W
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.1" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "3" ""))) f# d& ~) j d. O# m$ h( N
- (DEFUN C:SA5 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.12" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "10" "": I) I& j% Z" \3 b; b |
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.4" ""' [- v: c0 g: Y2 y T
- "M" "MANH" "C" "9" "" "Lw" "0.12" ""
# i& \; F, e% Z' K6 y" a - "M" "TEXT" "C" "7" "" "Lw" "0.12" ""
6 g1 e' S. r( P( r: Y! ` - "M" "DIM" "C" "1" "" "Lw" "0.2" ""
& G, ]% F e2 c6 |# ] - "M" "THAY" "C" "7" "" "Lw" "0.2" ""
7 f7 D& w, z# R; E7 m$ G2 u - "M" "NOITHAT" "C" "3" "" "Lw" "0.2" ""
* p' \8 F1 i' m ]) t* s4 D6 e - "M" "HATCH" "C" "5" "" "Lw" "0.1" ""& L* ^0 O+ c* F1 ?9 p
- "M" "COT" "C" "1" "" "Lw" "0.4" ""
: K' i9 E3 ?% e& T8 i1 B/ X - "M" "Defpoints" "C" "7" ""
: W% V' J' e! f- ] - "M" "0" "C" "3" "" "Lw" "0.2" "" v$ v2 a% E. q" T! o" C+ \
- "M" "CUA" "C" "6" "" "Lw" "0.12" ""8 b" E: D9 e C x
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""$ f G$ x8 {% X9 t0 C' C! o
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.15" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "5" ""))$ G; t; K# O/ e( x6 s5 {. F
- (DEFUN C:SA4 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.2" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "20" ""$ T) Q) ]( P& _$ a1 N1 C2 r0 h
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.6" ""
( f$ ]* Z; i" @9 G/ ] W - "M" "MANH" "C" "9" "" "Lw" "0.2" ""
' K/ K0 E% R1 q( ?- } - "M" "TEXT" "C" "7" "" "Lw" "0.2" """ e9 g8 ^% A1 X6 k* h) w
- "M" "DIM" "C" "1" "" "Lw" "0.25" ""' N3 L' u8 I- C3 `8 p* L
- "M" "THAY" "C" "7" "" "Lw" "0.35" ""
& e# p3 n& J! j - "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""' U2 \$ v( P: r+ H2 k7 C+ Y
- "M" "HATCH" "C" "5" "" "Lw" "0.15" ""# s. _; }- t% ~6 ?4 k# v l
- "M" "COT" "C" "1" "" "Lw" "0.6" ""$ Q: g+ f; I! t$ c
- "M" "Defpoints" "C" "7" ""
4 A; l2 m. e( x9 K5 x% s - "M" "0" "C" "3" "" "Lw" "0.25" ""# q- V# G2 x3 D. P
- "M" "CUA" "C" "6" "" "Lw" "0.25" ""
2 A6 T# J+ \6 d" ^- K0 ^7 p - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.25" "", d9 ^; c3 Q0 S4 h4 Z; V
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.2" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" ""))
" o4 j+ ?/ t; S8 ~+ ~# L1 L -
# q; Z+ h6 W/ |/ C - (DEFUN C:SA3 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "30" ""
* ~5 r4 {0 U; D2 h& i) M - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""5 Z/ X, ^9 k5 ]9 i
- "M" "MANH" "C" "9" "" "Lw" "0.25" ""' `/ @% U$ \$ v
- "M" "TEXT" "C" "7" "" "Lw" "0.2" ""
/ v: k+ f( I. C! \+ a - "M" "DIM" "C" "1" "" "Lw" "0.35" ""7 O5 m; _, f: g& U9 I/ G
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""0 y3 B+ A7 h9 \* E7 R# q/ L+ ^1 l
- "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""
8 N+ G' d( R. W. m - "M" "HATCH" "C" "5" "" "Lw" "0.2" ""
( o6 X ?! k- V( I0 p. X - "M" "COT" "C" "1" "" "Lw" "0.7" ""
) x! _7 f, s. e - "M" "Defpoints" "C" "7" ""6 p$ r" S6 T5 C7 q3 d% _# Q4 ~0 f C3 l
- "M" "0" "C" "3" "" "Lw" "0.25" ""
% E' K U) l' V7 w( p$ Q/ O - "M" "CUA" "C" "6" "" "Lw" "0.35" ""+ D7 K* s) t+ L1 x4 ^+ q
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""
5 n0 B3 F2 z! f' R3 H - "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "20" ""))(PRINC)
! ~* A& Z2 ~ |
o9 h4 P, F# |" l- (DEFUN C:SA2 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "45" ""0 T4 c+ a# ]) C: ^
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""
# \0 `1 i9 m7 i1 w ]1 w - "M" "MANH" "C" "9" "" "Lw" "0.25" ""7 S2 T8 ?+ ?& {3 _- f6 a7 @' j0 w: p
- "M" "TEXT" "C" "7" "" "Lw" "0.25" ""
6 }" z+ F' N4 V! b, S. n - "M" "DIM" "C" "1" "" "Lw" "0.3" ""/ V' H J- _. o
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""
% h% e Y! P1 _7 ]2 l+ W/ x - "M" "NOITHAT" "C" "3" "" "Lw" "0.3" ""# _( [) Z9 Z! B5 b4 x
- "M" "HATCH" "C" "5" "" "Lw" "0.2" ""$ q5 V5 Y6 `/ x$ d, K+ E# d
- "M" "COT" "C" "1" "" "Lw" "0.7" ""
1 ~0 P. B1 ^+ @% ^& |) N - "M" "Defpoints" "C" "7" "") o3 }9 a$ g' C2 u( w3 l
- "M" "0" "C" "3" "" "Lw" "0.35" ""
) n0 g# L& l) B - "M" "CUA" "C" "6" "" "Lw" "0.35" ""% F1 \. O3 U2 {, c3 c7 y- H& c
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""
/ I4 y b( ]. { - "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "30" ""))+ d! n K. i1 q6 T) {7 U% K
1 F" h9 q! v8 G: i I k- J- (DEFUN C:SA1 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.4" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "60" "" {9 O+ E* T5 o8 a0 J. x
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.85" ""
* Q& m) f7 m* b - "M" "MANH" "C" "9" "" "Lw" "0.35" ""1 J/ |7 }$ O- L0 C, d) `" x Y$ [
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""! l+ b+ `3 }! K4 u" t$ n
- "M" "DIM" "C" "1" "" "Lw" "0.35" ""8 H* n, V5 e# O, q8 U6 _; j
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""$ \. f/ Y! d) R0 q5 A d
- "M" "NOITHAT" "C" "3" "" "Lw" "0.35" ""
5 D/ t t8 g/ U+ n4 h1 Z" Y - "M" "HATCH" "C" "5" "" "Lw" "0.25" ""
. l- T* R2 B/ I/ u4 q - "M" "COT" "C" "1" "" "Lw" "0.85" ""
6 ^2 L) C5 w( |8 } - "M" "Defpoints" "C" "7" ""
0 k- o6 L+ d% \8 f/ b - "M" "0" "C" "3" "" "Lw" "0.35" ""
3 I/ M* N( j" m9 _0 U - "M" "CUA" "C" "6" "" "Lw" "0.4" ""
9 ^3 a v+ V8 y# f& @5 J' d/ b - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.35" ""
) z B# A+ @ X9 ~2 c - "M" "TIMTUONG" "C" "5" "" "Lw" "0.3" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "40" ""))6 F3 ?+ a5 w( E, d: h& o P, o+ I& L
- 3 h t- @1 ^3 c9 ?8 ~9 W! P( V$ X
- (DEFUN C:SA0 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.5" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "85" ""- w" j5 l N8 k% e* i" y
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1" "". ]! z0 g/ G/ y7 \; Z3 J( E. I
- "M" "MANH" "C" "9" "" "Lw" "0.35" ""
1 H' N0 Y7 U4 S0 a# ~* d, ? - "M" "TEXT" "C" "7" "" "Lw" "0.5" ""0 N4 d) g! I) [+ w7 H. `
- "M" "DIM" "C" "1" "" "Lw" "0.35" ""
. [7 R( N4 R3 P - "M" "THAY" "C" "7" "" "Lw" "0.5" ""/ Y L! k( _, k8 _; A
- "M" "NOITHAT" "C" "3" "" "Lw" "0.4" ""6 L! ?6 n# a- d' [' E/ S
- "M" "HATCH" "C" "5" "" "Lw" "0.35" ""
8 M5 Y7 q5 Y+ ?! r9 v- Q0 t* m - "M" "COT" "C" "1" "" "Lw" "0.1" ""4 p, O4 y% R: C a; C- u5 k' k
- "M" "Defpoints" "C" "7" ""
" p4 Z3 x* `8 V. W, l - "M" "0" "C" "3" "" "Lw" "0.5" ""1 I! }! q8 _* i' y' ]( |! t
- "M" "CUA" "C" "6" "" "Lw" "0.5" ""
3 V, }( d" m/ M4 {. i - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.4" ""2 K' [' m. j# _+ C+ W* S% h0 A3 m
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.35" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "55" ""))
- H, \: M0 ~" q1 @& e - (DEFUN C:O () (COMMAND "OFFSET"))
: O1 g9 b5 ?- d% p& o7 Z7 S& j! T - (defun c:s1 () (command "surftab1"))
1 D8 k* x, ^0 | - (defun c:s2 () (command "surftab2"))* m4 [3 u4 O; v" m$ s' v
- (defun c:ep () (command "explode"))! l& i: Q, ]. a) L8 Q3 c
- (DEFUN C:QS () (COMMAND "AUDIT" "Y" "purge" "all" "*" "N" "QSAVE"))
- O+ A7 T5 q2 G - (DEFUN C:QV () (COMMAND "QSAVE"))
& }2 R. m3 Z5 a- V' L, D8 q - (DEFUN C:S () (COMMAND "STRETCH" "C"))
5 F6 r$ l1 [7 p7 |0 ?& k
+ z" `5 y2 C6 m; U& c4 h& b- ;************************** CAT DIM **************************, J# k z6 y/ F# |
% o, h9 L; B7 [" L- (DEFUN C:DC (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I
9 T, H8 Y% u9 y7 V3 E/ D9 S - PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11): p+ K' ?8 r) f% U7 |
- (SETQ CMD (GETVAR "CMDECHO"))
U' I% j1 l9 u9 f6 r' r1 r3 [2 ]8 g- N& o - (SETQ OSM (GETVAR "OSMODE"))
, k% C& ?: { k/ O5 n - (SETQ OLDERR *error*
" m3 }# W* i: C& I _+ v8 A - *error* myerror)9 d5 k: \( C& R7 ]2 z1 n& l
- (PRINC "Please select dimension object!")0 a! a7 |5 L+ \" e5 c+ c
- (SETQ SS (SSGET)); [8 z, R. p' G. t9 |" P
- (SETVAR "CMDECHO" 0)( J' u5 n3 N0 J& D) H# \
- (SETQ PT (GETPOINT "Point to trim or extend:")), U* M8 x3 U9 y# F
- (SETQ PT (TRANS PT 1 0))3 R8 B) l: N0 M6 `
- (COMMAND "UCS" "W")
! l6 n0 h0 q: Y1 T) Q% v& a4 q - (SETQ LTH (SSLENGTH SS))' B7 c1 R4 M+ A: s/ J) }- u+ o6 G4 E
- (SETQ DEM 0)
( |2 p( ?" V) ?5 P - (WHILE (< DEM LTH)- [9 N+ \' z6 m/ [
- (PROGN
% G/ }5 v6 ~& Z6 s* t - (SETQ DS (ENTGET (SSNAME SS DEM)))- Q; A& m& g5 h9 m+ v) p {
- (SETQ KDL (CDR (ASSOC 0 DS)))5 C. [' e# q+ H
- (IF (= "DIMENSION" KDL)' C" ^ C( R, Y
- (PROGN
2 }3 @7 O6 I5 J4 Y! f - (SETQ PT10 (CDR (ASSOC 10 DS)))
* F( c: S0 F% {2 j$ I, o& t - (SETQ PT11 (CDR (ASSOC 11 DS)))
) v `- [( Z. q# s) v6 B ~- H: _ - (SETQ PT13 (CDR (ASSOC 13 DS)))
6 p1 g" v. L5 d! b$ p f3 F I, \ - (SETQ PT14 (CDR (ASSOC 14 DS)))
. ?3 t& m, ^+ s1 e: D; q' b - (SETQ N70 (CDR (ASSOC 70 DS)))7 Q8 K, C# F8 d) h' Z3 ~% d+ B
- (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
- p/ y3 d+ [( K! f; S& _ - (PROGN
! E/ Q0 ^7 T/ s5 L) m0 }; m! n - (SETQ GOCY (ANGLE PT10 PT14))
9 S7 s1 X8 j2 R A. z- i7 { - (SETQ GOCX (+ GOCY (/ PI 2)))) z- l: e9 W+ H" S( c( S6 [
- )
0 f7 N4 [/ `6 |) s/ _) C - )- T+ J( o5 h2 }1 u, V& z* d R( A
- (SETVAR "OSMODE" 0)+ e9 W) p. h. Y l) v
- (SETQ PTI (POLAR PT GOCX 2))! D9 U* u4 q$ K* F+ p$ e6 j
- (SETQ PT13I (POLAR PT13 GOCY 2))
* h+ U$ T0 l( y' E6 j/ I - (SETQ PT14I (POLAR PT14 GOCY 2))
+ S2 l4 a& t) A) z- a1 S1 b - (SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))
" h5 u' }1 M- X - (SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))
% @2 O" ?3 q# e$ N& z$ f$ X - (SETQ O13 (ASSOC 13 DS))+ x% w9 r6 _/ I5 k. B
- (SETQ O14 (ASSOC 14 DS))
1 Z9 U+ M6 r$ s3 \! w9 t - (SETQ N13 (CONS 13 PT13N))+ H4 b4 S a! R1 `* q3 s0 @$ }1 g
- (SETQ N14 (CONS 14 PT14N))
% A9 ]4 d& H/ J) Q; K0 L - (SETQ DS (SUBST N13 O13 DS))
# ? h0 `8 Z, S - (SETQ DS (SUBST N14 O14 DS))
) @: i+ `- n& j - (ENTMOD DS)
/ w6 o1 z9 _- O( C0 Z0 _ - )
& y7 q. @: e+ ^2 o7 o) H - )' [9 c$ N( w) q1 C( g2 ]- {0 ^# L% K
- (SETQ DEM (+ DEM 1))
1 [' G% U" \2 m: n4 w# z - )5 \$ P" ~. ]( N/ c \0 \7 J
- )
: @: Y: }$ }& G3 x1 O2 J& L7 r - (COMMAND "UCS" "P")7 `3 C; m& l7 R! s8 T, T2 T
- (SETVAR "CMDECHO" CMD)3 Q) N8 _1 a$ a6 T; A
- (SETVAR "OSMODE" OSM)
/ ~: @7 n5 H) O- [6 r, O - (setq *error* OLDERR) ; Restore old *error* handler# c1 @1 A( C) J6 ^
- (PRINC)
; L% {3 Y3 t$ _9 K5 h# P: ~ - )) R/ _; z6 n9 Q9 l4 n8 M. ?
- ; M9 z) m% Q' K! R( ]
- (DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI
2 u* N! ]$ q& ?8 @( M" x - PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)# `& |& ^; S, X4 X9 r# u
- (SETQ CMD (GETVAR "CMDECHO"))" f3 I* I2 [1 _8 p- J
- (SETQ OSM (GETVAR "OSMODE"))
: i( J4 g" P/ Z - (SETQ OLDERR *error*
2 a% F: q$ @1 { - *error* myerror)
# U0 W6 h: D; p; \. y - (PRINC "Please select dimension object!")
; O# `) O- T! X5 c - (SETQ SS (SSGET))6 k$ N- w/ h+ k: v' i D7 b d
- (SETVAR "CMDECHO" 0)
! Z2 u5 t; Q6 \$ O6 B! e, K - (SETQ PT (GETPOINT "Point to trim or extend:"))& r/ b+ _5 M) e
- (SETQ PT (TRANS PT 1 0))
% E$ b, o$ s7 T3 G7 A+ s4 y - (COMMAND "UCS" "W")7 z8 B3 T2 Y, }" t D
- (SETQ LTH (SSLENGTH SS))
7 p" t) H" m9 g1 v3 T# x - (SETQ DEM 0)# U1 ^- g' u! i- U q
- (WHILE (< DEM LTH)
: T+ a' t0 C) u7 K% S - (PROGN
3 A- y! h# @! L - (SETQ DS (ENTGET (SSNAME SS DEM)))6 v3 @$ v# C t( m: t# c
- (SETQ KDL (CDR (ASSOC 0 DS)))- ]8 `+ {& R* y5 o: E0 h5 k
- (IF (= "DIMENSION" KDL)
9 D7 R( a9 \) t5 z6 b% j - (PROGN
+ W, u. f1 `( m& k - (SETQ PT13 (CDR (ASSOC 13 DS)))' U8 _( c1 \& K
- (SETQ PT14 (CDR (ASSOC 14 DS)))" S! _4 P0 O) k* u9 c. d/ }) f
- (SETQ PT10 (CDR (ASSOC 10 DS)))
7 v% O0 j( b: b - (SETQ PT11 (CDR (ASSOC 11 DS)))
; W- V; W i8 p: [# o - (SETQ N70 (CDR (ASSOC 70 DS)))
6 y# m+ D! `( C: w% z5 i/ h5 K7 A' Y - (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))( J$ P9 n' a% b, Q0 y, A/ p
- (PROGN
& }. L( J# t+ D - (SETQ GOCY (ANGLE PT10 PT14))( B4 O& ^6 I' n6 P; a l9 d
- (SETQ GOCX (+ GOCY (/ PI 2)))
4 `/ i/ r. ]+ _ q' `; d7 I# ?/ z* C+ V - )
! G- Q& f0 p, E5 P - )- M" n7 _9 x+ [: M9 N# e
- (SETVAR "OSMODE" 0)
1 x5 i: k# T( U. j/ y - (SETQ PTI (POLAR PT GOCX 2))3 M5 x9 D3 Z, b
- (SETQ PT10I (POLAR PT10 GOCY 2)): {4 {! b6 v. z( _
- (SETQ PT10N (INTERS PT PTI PT10 PT10I NIL))
9 j: S1 I. }% O* I* ^( p u% o - (SETQ KC (DISTANCE PT10 PT10N))* h8 d9 \) i4 p- @- U$ X
- (SETQ O10 (ASSOC 10 DS))
, y6 H' t; Z, }5 O- ? - (SETQ N10 (CONS 10 PT10N))
- z$ N7 L% q) z* i# B4 L - (SETQ DS (SUBST N10 O10 DS)): M( Y+ }$ o( n7 b
- (SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC))& {1 h3 H7 ^: Q
- (SETQ O11 (ASSOC 11 DS)): o4 i# a( R( g ~" o2 S+ e
- (SETQ N11 (CONS 11 PT11N)): J5 a$ l* ]8 n
- (SETQ DS (SUBST N11 O11 DS))6 E+ y' ~0 R `3 K' j& @1 I
- (ENTMOD DS)
$ ]+ U5 [; r V! [! } - )
" k2 G: i8 g6 J: z$ Q2 x - )
' ^7 u& i' L4 {# ] - (SETQ DEM (+ DEM 1))
9 z$ e& B6 U' u2 A Q, U+ }+ a - )
& Q/ M& v0 m; w& ]' O w0 @9 q4 J - )8 V' b2 m/ @, E7 ^; u" l, p
- (COMMAND "UCS" "P"). C; u4 s, }$ }# ^
- (SETVAR "CMDECHO" CMD)8 s+ e$ n' ?4 x; D
- (SETVAR "OSMODE" OSM)( ^6 y& E/ m. }" M# n
- (setq *error* OLDERR)* `( c e# c- V4 ~
- (PRINC): e" q' ]! v( ?2 v% _
- )
% h4 |/ b1 ?$ B7 R" a - 6 V) P+ @9 w( w4 C# V# ?2 E" G6 C3 V* B
- ;;; ================ BAT - TAT CHE DO GACH CHAN TEXT (TU) =================
( X0 g; @1 @" J
" }9 `. n7 c- x3 w3 c- (defun c:tu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can gach chan ")2 e: S* Z- w4 T
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
- @# g Y) L2 F- A% ]$ B - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt8 H, o' u8 ?. i) d, i0 U$ `
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
" _9 _1 _" m7 B4 D" B1 S, r) C5 j - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%u")
: M$ v6 H5 B U - (= testxt "%%U"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%u" txttxt)))
6 N( A0 v. W- @ - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
- O6 b* t& z/ Z( \; Y+ N; ]; B - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
$ i3 S6 z9 S- S1 a - + `3 V w, o8 f i: O
- ;;; ================ CHEN COT (TUU) =================
2 e" e9 S; d& y o
& l5 V3 G5 D' h$ M* s2 e- (defun c:tuu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen cot "). o3 H3 u* y% U9 e9 r" F2 l: Y
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")% T$ y# D7 s2 L: @& C( b) m4 D
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
8 @( i" J5 A& p$ n: B8 W- E - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
- Y. T' I5 R. R# K2 G, s - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%p 0,000")4 D9 y0 b3 T' ?/ ?2 s: t
- (= testxt "%%P 0,000"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%P 0,000" txttxt)))
J5 v. T: n( g. h - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))- f }" U5 z5 b! U( R
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
9 u8 k! T: d# }5 x) L: F - 3 c7 n* f/ y! \* ?$ c# }
- ;;; ================ CHEN KY HIEU THEP (TP) =================7 g/ J* W0 a6 P* V% S: x o* r# Z
- 5 ]" G# i/ n; @5 P
- (defun c:tp () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen ky hieu thep "); m0 W* |) A. I! l6 U7 }
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")5 i0 z. I- h" s" ?; \
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
" ]/ ?( _* j5 L5 X2 q L - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
6 B; Z* D. P* E3 C+ { - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%c")
! {- Z' y F3 R* n) p; F# {: g - (= testxt "%%C"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%c" txttxt))): u6 v2 T2 u' f# g6 j
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))& H$ u* J4 g, Y/ e7 W) }
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))4 ~- q T* H& D7 e3 O! t/ j
- D& G0 C0 s) ]2 n% y) V
- ;=========================== TAM TUONG (TAM) =================================
- Z; ]' Z4 `' [( b7 E
. G- _, N4 j7 c. D- (defun c:tam(/ data_m)
2 G E9 r2 h w1 o. w5 S& o n - (defun import_data(/ i)(setq data_m (ssget))(if (= nil distan_m) (setq distan_m 110.0))$ r8 }5 Z$ D4 Q( ]4 s' y
- (princ "Distance (")(princ distan_m)(princ "):")(setq i (getreal ))(if (not (= nil i))
" e, I+ X5 y- b& n9 w R" } - (setq distan_m i)))(defun process(/ ent check)(defun p_check()(setq check 0)
' C$ P) y2 n; L1 A/ Q6 }/ x( g - (if (= "LINE" (cdr (assoc 0 ent))) (setq check 1))(princ))(defun p_d_offset
' R R2 H# g& @" W$ Y" t3 e0 _ Z - (/ p1 p2 p3 p4)(defun makeline(/ e2 e5)(setq la (list (cons 0 "LINE")(cons 5 (cdr
[, `$ |' z: W; k5 A% V - (assoc 5 ent)))(cons 8 (cdr (assoc 8 ent)))(cons 10 p3)(cons 11 p4)))(entmake la)(princ), h& @. E. q5 m; _
- )(setq p1 (cdr (assoc 10 ent)) p2 (cdr (assoc 11 ent)))(if (not (= p1 p2)) (progn (if, F% c9 C `+ _( U* K
- (< (abs (- (nth 0 p1) (nth 0 p2))) 0.000001) (progn (setq p3 (list (+ (nth 0 p1)' K+ v* `7 Q! v* I- s
- distan_m) (nth 1 p1) (nth 2 p1)))(setq p4 (list (+ (nth 0 p2) distan_m)(nth 1 p2)
+ |' ~ P/ X( g8 G - (nth 2 p2))) (makeline) (setq p3 (list (- (nth 0 p1) distan_m) (nth 1 p1) (nth 2 p1)))+ o6 C" v5 A, K$ {3 P4 T
- (setq p4 (list (- (nth 0 p2) distan_m) (nth 1 p2) (nth 2 p2))) (makeline)))(if (<
4 P! c- \* V n( Q - (abs (- (nth 1 p1) (nth 1 p2))) 0.000001) (progn (setq p3 (list (nth 0 p1) (+ (nth 1 p1)
9 t5 i1 f# A9 L+ z' p - distan_m) (nth 2 p1)))(setq p4 (list (nth 0 p2) (+ (nth 1 p2) distan_m) (nth 2 p2)))( ~5 }* M& f% G$ V [4 o
- (makeline) (setq p3 (list (nth 0 p1) (- (nth 1 p1) distan_m) (nth 2 p1))) (setq p4: Z8 u' z7 \7 d! I' e
- (list (nth 0 p2) (- (nth 1 p2) distan_m) (nth 2 p2)))(makeline)))))(princ))(if (not
+ M$ _3 N% a; I - (= nil data_m)) (progn (setq i 0)(while (< i (sslength data_m)) (progn(setq ent (entget% K2 o1 s# M, N6 [& C" l
- (ssname data_m i)))(p_check)(if (= 1 check) (p_d_offset))(setq i (+ i 1))))))(princ))& C2 a+ y1 Z V( [* E; x( F% i
- (import_data)(ai_undo_push)(process)(ai_undo_pop)(princ))& n2 l. T6 W1 J' ]' p! g9 q
- 6 v4 t! u y# E/ T- i+ y' p1 G
- ;============ GHI CHU PHI (T1) ================
0 C1 h0 ^% k6 X. X - : p2 C) t1 e, d, R
- (defun c:DuongDan ()(setq D1 (getpoint " Diem thu nhat: "))(setq D2 (getpoint "Diem thu hai: " D1))
: w, V4 G9 m/ I - (if (> (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (< (car D2) (car D1)) (setq D3
. ~8 h! f- d9 j/ U+ } - (polar D2 PI 16)))(if (= (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (> (car D2)+ Y! p$ @. J1 B
- (car D1)) (setq D4 (polar D3 0 3.2)))(if (< (car D2)(car D1))(setq D4 (polar D3 PI 3.2)
2 W3 m/ }0 c2 F# c$ q9 y3 C - ))(if (= (car D2) (car D1)) (setq D4 (polar D3 0 3.2)))(if (> (car D2) (car D1))- T$ N9 ^6 S( G3 V1 Z! H
- (setq D5 (polar D2 (/ PI 9) 3)))(if (< (car D2) (car D1)) (setq D5 (polar D3 (/ PI 9)4 ]/ J0 \& b! M1 J% p7 _, f! g
- 3)))(if (= (car D2) (car D1)) (setq D5 (polar D2 (/ PI 9) 3)))(command "color" 1)
& v- |) d' ~* o0 `2 ` - (command "line" D1 D2 D3 "")(command "circle" D4 "3.5")(command "color" 7 )5 k0 g) M3 z) s7 Z3 g
- (command "text" "m" D4 2.5 0 "1")(command "text" D5 2.5 0 "%%c6a150")
; o6 X! `; y0 r' y' q - (command "ddedit" pause))1 v" ~, m- g s9 ?
- - f0 Z, d( M+ K' n
- ;;; ========================== Join (J) =================
/ b6 } c# h- C3 T - , u8 n- x# _" |
- (defun C:J () (Setvar "cmdecho" 0)(setq m:err *error* *error* *merrmsg*)(setq sset (ssget))+ L0 W- g9 N U* q1 a. @) p
- (if (null sset) (exit))(setq kt (getstring "\nJoin all (Y/N) <Y> ? "))
% g8 o3 h7 ^5 e - (setq ssl (sslength sset))(setq temp (entget (ssname sset 0))etype (cdr (assoc 0 temp)# {& y8 o" v; b& k9 ?, o+ D, ~' n4 E2 X
- ))(cond((or (= kt "Y") (= kt "y") (= kt ""))(progn (cond((= etype "POLYLINE")
7 H# n1 \6 n5 S" }2 B: C* b, x - (COMMAND "PEDIT" sset "J" "all" "" ""))(if (or (= etype "LINE") (= etype "ARC"))
- [, T8 L4 \) i! L6 j - (COMMAND "PEDIT" sset "" "J" "all" "" "")))))((or (/= kt "Y") (/= kt "y") (/= kt ""))& x- i7 F8 h- p
- (progn (cond((= etype "POLYLINE")(COMMAND "PEDIT" sset "J" sset "" ""))
1 x2 I2 j, R- B" o8 a, u - (if (or (= etype "LINE") (= etype "ARC"))(COMMAND "PEDIT" sset "" "J" sset "" ""))))))
1 _% y8 | y. h: ^! | - (setq *error* m:err m:err nil)(princ))
" x1 z6 m- ^" P! I5 l
- a1 j: O: i' l R9 | N- ;=====================================================================
2 R, l: Z( F1 W' E" ]/ E - ;;; DOOR.LSP 1.0, Copyright (C) 1998 by CAD Department, HUCE.
) h! ]% u. Y0 a$ M ` - ;=====================================================================
" N# y4 [, r( L& n, c. V* r3 } - # y! n: T3 n: Y
- (defun C:D1 (/ p1 p2 p3 p4 side dis wid ang angsile old)2 \5 [8 S3 S) V
- (setq old (getvar "OSMODE")) ) e/ l$ a) h; e0 O2 X
0 ~. y% i* [+ S- (setq p1 (getpoint "\nStart point:"))
4 U8 d/ Z9 l9 r/ T' D- \& s - (setq p2 (getpoint p1 "\nEnd point:"))
4 o6 ?3 P: K. ]6 {* X8 f- P4 k# }, f - (setq side (getpoint p2 "\nOpen side"))
8 U0 w/ o3 c; U1 [
b/ Z" h6 H9 R3 s- (setq dis (distance p1 p2))
7 X2 w- t. |- j0 x - (setq ang (angle p1 p2))/ C0 D6 G, C6 ]+ `2 F
- (if (< ang (angle p1 side))
: a+ P* v/ l9 _2 `, S7 P - (setq angside (/ pi 2) )9 q$ l% s. c4 ^/ d8 R+ x
- (setq angside (- (/ pi 2)))
. s5 h/ h2 T8 X - )
/ ]+ }5 E* }# [8 d - (if (>= (- (angle p1 side) ang) pi)! W; e4 R) V* @. x9 W$ Q
- (setq angside (- (/ pi 2)))8 A; j! z; e$ N- U0 ?
- )* B: R9 l* t1 A3 V* {
- (if (>= (- ANG (angle p1 side) ) pi)
" n9 ?2 V4 F+ U+ S - (setq angside (/ pi 2))0 J+ _# m( T$ ?* ^5 g2 \
- )
2 v% H8 a8 Q) p1 M - * t! o1 @6 U. A- h# o' P
- (setq p3 (polar p2 (+ ang angside) dis) )
K) b6 R% [# I s - (setq p4 (polar p1 (+ ang angside) dis) )9 o1 K6 _/ B/ }% Q+ G
- (setq wid (/ dis 15))
! V8 d, n) O- J: b2 l - 1 h4 J; m K7 U, }
- (setvar "OSMODE" 0)
' w( ^+ i, F n! w
6 \2 E8 ]7 D7 A/ D. b, N+ [1 ~- (command "PLINE" p1 "A" "D" p4 p3 "L" p2 ; c8 Y% y; G: q3 i8 p4 _% [8 f
- (polar p2 (+ ang pi) wid) G1 |( b3 ]5 J
- (polar p3 (+ ang pi) wid) 9 g. S k9 n) C- o' v" `
- ""), N* `, p8 F) t# h. f$ e+ O# G
- : D( m& h% P, n5 J
- (setvar "OSMODE" old)
6 g/ C: D- D* |/ H2 j - (princ)
3 T, \$ x* q9 I4 j5 N0 O! \ - )% y0 c% C R, [4 i- e7 q) i% @' F
- ; j4 x: t \+ M" g' a
- ;=====================================================================
+ ^# E: s- R( U3 v) a
8 P, W k4 t* ^- (defun C:D2 (/ p1 p2 p3 p4 side dis wid ang angsile old), d+ h( ~' g7 n# a, w( z; p3 h
- (defun cua1 (pt1 pt2)
3 |( j; }: B$ w5 G - (setq p1 pt1, v7 [$ Q# V0 Y7 U2 i
- p2 pt2)
( D6 n1 E8 @9 U Q9 Q# t' S - + X$ i' t7 i6 _0 C3 S2 @
- (setq ang (angle p1 p2))
z: _; c5 J4 X2 U - (if (< ang (angle p1 side)): i0 ^( L0 l0 a1 j" ]' m3 p
- (setq angside (/ pi 2) )
) j/ T6 d6 Z9 O - (setq angside (- (/ pi 2)))
& W4 M* \: K# v. h - )
! F5 d3 ~! g* N. ~9 S8 ~( j: k - (if (>= (- (angle p1 side) ang) pi), `6 y" Y) b0 N, X: a* n
- (setq angside (- (/ pi 2)))5 N1 H# J, S# _5 {. A
- )
: H2 u: i+ a4 j0 `" C - (if (>= (- ANG (angle p1 side) ) pi)* d; h2 {! j, [6 y
- (setq angside (/ pi 2))
' V3 A, T$ @! }& q3 Q4 y) { @ - )
' W2 j) L' i7 s$ o. Q9 [) G7 s - 7 |% C9 D5 J) P6 |9 x5 U6 A1 `' U
- (setq p3 (polar p2 (+ ang angside) dis) )
7 w1 [0 W S) [: u! e; n8 p! Z - (setq p4 (polar p1 (+ ang angside) dis) )/ G+ _ |& C. ` x6 }
- (setq wid (/ dis 15))4 `% P8 B: H7 e4 R6 K4 U
- 4 o' V, |! |. |# h) A
- (command "PLINE" p1 "A" "D" p4 p3 "L" p2
7 `0 a* P3 v2 I4 j! k; j: r - (polar p2 (+ ang pi) wid) 4 { l8 F7 P7 _
- (polar p3 (+ ang pi) wid)
' p2 V7 C3 p1 \: y - "")1 @# s# h: A/ J5 t" \ B+ G
- )
! O6 x9 P+ k0 |+ [7 a - ;=====================================================================) R4 }0 ~- Y' C) { O
- (setq old (getvar "OSMODE"))
4 y5 j% D6 a& n% Y7 e2 B) p - 6 P7 \6 n D' N# U, V3 n
- (setq p1 (getpoint "\nStart point:"))# N1 g* s' B7 a6 B# j3 c+ d% P
- (setq p2 (getpoint p1 "\nEnd point:"))
3 x+ I1 V6 f* s4 R+ ]) B% |8 Q - (setq side (getpoint p2 "\nOpen side"))
" F" P! Q7 h. o7 s4 f
7 o9 p9 U) {* i- n2 k* `$ _8 D. r- (setq dis (distance p1 p2))) ~5 o* ]/ p! c7 n: M1 c
- (setq dis (/ dis 2))
: j! u3 X) P) S5 x
9 `8 }$ \# r- d$ }5 V0 p/ }- (setvar "OSMODE" 0)6 M, W: ~0 P. b' }0 F
4 j2 r4 I( k8 }6 }% j7 K4 K- (setq p1 (polar p1 (angle p1 p2) dis))* i3 L& D# s0 o; |3 b
- (cua1 p1 p2)
& B0 G+ u( t7 |; E - : K# `; P' K l& w% w+ |9 C0 R
- (setq ang (+ ang pi))
. I6 S8 }1 Q. [6 s# U, y - (setq p2 (polar p1 ang dis))* I5 G3 w6 `& Y% }4 C
- ; (setq side (polar p1 () dis))5 I% Z" L. T; v
- (cua1 p1 p2) . S7 p S! ]# E
- 2 b- W* q7 T9 C( w2 I! q- k; P
- (setvar "OSMODE" old)
, J9 h9 ^5 q0 r( m8 \0 h+ M$ K - (princ): o5 S% t8 z( E6 @
- )1 y* E" K- K% f. Y% O/ B3 u$ w1 C
- 2 S0 |, ~$ U1 t9 q6 k
- ;=====================================================================2 ?* w+ F$ o ~0 v! C) E" F# ~# x9 m
- ;"Glue" text strings. All adopt first's properties.
; Y( m1 i( y, p' F* S3 e+ f - ; Author:
* J( Y6 M* R( u- u5 j8 f - ; Henry C. Francis* z+ l8 k- G- d3 g. \
- ; 425 N. Ashe St.. D/ T5 c9 ]: f9 O
- ; Southern Pines, NC 28387
9 C+ Y s" p8 z7 A% k X; k+ i" f - ; http://www.pinehurst.net/~pfrancis
) U9 @! ]6 X- R" y - ; e-mail hfrancis@pinehurst.net3 T/ d8 H6 \6 x5 ?8 T
- ; All rights reserved.
8 f5 w; L. h B8 f' }, d# W( G5 e - (defun c:gst ( / ename ent1 ent2 old1 oldsl old10 old11 old40 old50 newstr newsl new1 new10 new11)
+ Y6 X) g, J& H5 S - (while% g9 ~4 x5 F( P2 t) }! H: b' p
- (not9 h" f0 P, m3 F, r
- (and9 j4 w) a; j/ i
- (setq ename1 (car(entsel "\nSelect first text string to join: ")))
' V" T7 l6 |/ d - (setq ent1 (entget ename1))
$ I+ A6 G/ W' f, a0 {% C/ L - (eq(cdr(assoc 0 ent1))"TEXT")0 R$ E3 u n4 y
- );and# s! T( e9 f8 r; w- W
- );not
; |3 V# u8 Y8 S8 k% k3 N7 _ Z - );while
, U+ v- y( n9 r' x* n" y - (setq old1 (cdr(assoc 1 ent1)))* @, H ^: Q7 [4 M3 d' k
- (while
1 f' ^3 ~5 C, k/ O - (not5 k! p0 p" f$ L1 `$ q
- (and
7 a6 c' s+ L- m: [ - (setq ename2 (car(entsel "\nSelect second text string to join: ")))
" }6 c5 Q$ B3 ~0 @8 b" o( r. b - (setq ent2 (entget ename2))
+ q+ c/ U: [2 z - (eq(cdr(assoc 0 ent2))"TEXT"). c2 }* W' E" l+ @; K( y* R
- (not(eq ename1 ename2))
! L' }! J) p1 ? - );and
# T1 E: }$ E: l3 q, o1 t - );not" Z# y/ r5 @$ u6 |! g
- );while
+ `' N Y/ Z/ W, y - (setq old2 (cdr(assoc 1 ent2)))/ T b# m, Z2 c
- (setq new1 (strcat old1 " " old2)
9 E6 s8 M7 P0 O - ent1
9 U& i- T' k/ T/ F' W - (subst (cons 1 new1)7 m9 m' T3 w6 E. b* J
- (assoc 1 ent1)' e4 h+ n( {8 @0 M2 O
- ent1)
* G+ G; |2 _* l8 ~ - );setq
7 B1 I; E6 E0 e( K O; c - (entmod ent1)8 H7 _, Q3 ^) {6 E% k
- (entdel ename2)
. j5 s& Z- Q; k/ M8 J" A% N - (princ): y. ?+ u+ S" r3 y5 A
- );defun
" D @6 y+ ?% f6 B
% h, D! c) e6 F! j4 v' d- w: b- ;=====================================================================
% N; Q8 A6 e. a% R
4 R; a! ?4 o; U' Z5 x- (defun c:nt (/ g1 g2 ss1 olderr nterr l i temp e1 e2 new old dd dc)
# y7 X7 ]1 |2 B& s5 b7 \0 r
# f9 _( x3 m5 w0 N' H3 e% B- (defun nterr (s)
( A: p+ b" l# P4 M4 `) p, Z - (command "_.UCS" "" "_.UNDO" "E")
: d( M6 s/ \5 }3 s7 T - (setvar "cmdecho" 1)
! [0 Q1 n0 w/ k; i1 e" ?1 t - (setvar "blipmode" 0)
3 H$ r& e6 p/ e& I: o4 X, L - (setq *error* olderr)
4 Y8 {$ b8 c) Z+ P - (setq g1 nil g2 nil ss1 nil e1 nil e2 nil olderr nil
4 \3 ` \: F" c& h$ L - nterr nil temp nil i nil l nil new nil old nil dd nil dc nil)9 O; h% P! [( `( ], I6 {$ K% ?
- (princ)" E! G# v5 c0 H0 c! ? T
- )5 A/ t2 z- s7 \' f( V: y' d- {( W
# S( f9 m' X9 b$ M/ \- (defun tim_in (dt / p01 p02 ktra)" l# }) r* T2 r* u" o6 A& H
- (setq p01 (cdr (assoc 10 (entget dt))))
, Y- B0 h6 o- f. [, q1 m+ G - (setq p02 (cdr (assoc 11 (entget dt))))
# L, r7 A1 F1 ]- b/ B - (setq ktra T)/ ~& _& S& g) r& o& \" s% V
- (if (and (> (car p01) (car g1)) (< (car p01) (car g2)) 9 {* R: f+ \' i5 u% L; P/ p
- (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
1 A- F& {9 s4 d2 e( } V - (setq ktra nil). B- j- m8 C, z& T
- )
9 l+ g9 F7 f& N6 B: V - (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
0 I( ~7 Q6 Y9 J# j4 f - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
1 h9 _+ a7 [. q7 U, |% ?; D% r8 g - (setq ktra nil)
* r8 a) L0 F8 ] - )
& D! w& n3 J; Z% N5 G - ktra4 _4 y g) \! I/ W
- )
2 t! T' b" q6 {! U& |
8 f0 _& v8 C4 Y7 e9 P- p' ^1 \( L- (defun timdt (dt1 dt2 / p01 p02)7 l( L( S$ @: o* o8 ?: _
- (setq p01 (cdr (assoc 10 (entget dt2))))
- o: X4 [. y) h2 {! k - (setq p02 (cdr (assoc 11 (entget dt2))))
% a. O. r! ]( I* G1 j3 `$ q - (setvar "ucsicon" 0)/ g3 P/ l. n W) F) e& u. O
- (command "_.UCS" "E" dt1)0 P5 ^0 y$ U- O5 Z# e
- (setq p01 (trans p01 0 1))
- K+ k ] l* g5 b& d6 a2 ] t - (setq p02 (trans p02 0 1))
b% x/ S; M- x7 |! a4 H - (command "_.UCS" "")
+ ^5 n, R9 C, U7 f - (setvar "ucsicon" 1)& G6 P% I9 Z' ] H9 p
- (if (and (equal (cadr p01) 0 0.001) (equal (cadr p02) 0 0.001))( y# x( m ?# S
- T
4 O/ |9 T" K2 t x& w - nil
6 |% y& {- {8 S4 W8 _" w2 f - )
2 T+ b- l/ l; ^7 G( R& v - )
( a4 |- ]5 m, q7 W5 H - ; Z' H& X; z$ c% r
- (defun tim_out (dt / p01 p02 kt)
% T7 R+ \ X. \5 j& t h; i - (setq p01 (cdr (assoc 10 (entget dt))))
' \0 i! u$ D5 D* ~# K( ~0 @ - (setq p02 (cdr (assoc 11 (entget dt))))
: C" j8 e. Z8 K# R& C( A2 _ - (if (and (> (car p01) (car g1)) (< (car p01) (car g2)) 7 }2 G9 }9 ^9 Y4 Z
- (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
7 f& ` X1 S7 \5 n) L5 { - (setq kt p02)! `1 M) A3 l3 v8 ?3 @& E
- )6 V, Q6 K- y$ g& C0 d1 F: R3 `+ d
- (if (and (> (car p02) (car g1)) (< (car p02) (car g2)) 8 ]; x% q/ h6 C" f% N
- (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
( x+ k( }# F4 j3 ]! W - (setq kt p01)
) A, A+ C4 G; L+ a - )
4 }. P; ?0 M# `$ x( `4 @6 B - kt
M& ^2 x1 w) O8 k0 x* ` - )
$ O! V3 S) k' ^8 V& D0 \0 T - B3 O! w1 m4 |# P$ e1 |
- (setvar "cmdecho" 0)
7 d2 L2 a/ a$ h& T - (setq olderr *error* *error* nterr)9 j" _7 {/ `" t
- (command "_.UNDO" "G" "_.UCS" "")
6 z+ Q( \; j/ G1 R' j - (while (null ss1)
8 K9 m% g# K) X# Q# ^ P - (princ "\nChon tuong muon noi...")
3 L2 }* ~6 A( t% k - (initget 1)" \; H) p' F4 P7 h! ^( `
- (setq g1 (getpoint "\n>Goc thu nhat:"))1 H2 Q; _4 R' |1 J
- (initget (+ 1 32)), L9 h9 q$ I$ w. r; x6 u- F
- (setq g2 (getcorner g1 "\n>Goc thu hai:")); U( l: C6 o# P4 k" Z
- (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))9 ~+ E' z- B9 T. {
- (if (null ss1) (princ "\nKhong tim thay doi tuong!"))
) I5 F2 ]: U7 j2 ]( J - )6 x3 f' U5 h C" ?
- 5 L7 n& t7 E0 r& h# p( k
- (setq temp (list (min (car g1) (car g2)) (min (cadr g1) (cadr g2)))+ w4 x9 S3 q5 U1 p, |7 r6 t
- g2 (list (max (car g1) (car g2)) (max (cadr g1) (cadr g2)))
0 r4 b- f) |: \0 Q% v - g1 temp)
( d5 d. X2 l+ d/ m - (setq ss1 (ssget "w" g1 g2))! o8 ?! n- J$ d
- (if ss1 (command "_.ERASE" ss1 ""))
" X# M) K3 \9 H# P b2 z* @ - (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))
; S' r" O) U" Q% @0 ?) X5 D - o" [9 e- ~0 W; a5 o& I, z% U9 v
- (setvar "blipmode" 0)
! h6 F" O* f1 U3 E/ V - (setq i 0 l (sslength ss1))
4 c3 I5 l0 \7 w+ L - (while (< i l)" b) s" j S' q# t
- (if (tim_in (ssname ss1 i))
9 y, r9 Q( @1 [- c - (progn & C8 p3 H$ S3 D% p
- (ssdel (ssname ss1 i) ss1)8 W8 M% d2 P3 X4 J
- (setq i 0 l (1- l))# H0 o1 u/ F8 @, k( _0 v, R
- ) , e) p) Z j2 ? C8 q
- (setq i (1+ i))
* i; J& E, Y( s' Y - )1 Q3 }; w: B6 ^
- )
% }3 V; c% R, b3 ?+ @! o0 K - (setq l (sslength ss1))
' }. V& C6 U; v* k6 C - (while (>= l 2)
# N/ B2 x6 ~; Z - (setq e1 (ssname ss1 0))+ o+ t9 g _% `6 j' n. L/ ~0 m% F
- (ssdel e1 ss1)
' q- t9 x6 T; D8 O1 Z+ a - (setq e2 nil i 0 l (sslength ss1))
; N; h8 X' _0 N, t* ? J( H - (while (< i l) & i! p+ r) T9 m1 Y4 @ C
- (if (timdt e1 (ssname ss1 i))+ a$ P& M) p' H7 F k
- (progn
1 Z+ Z! x ?9 D- F$ _' t3 R - (setq e2 (ssname ss1 i))
1 m" o0 O' d$ X& W4 |( p - (setq dd (tim_out e1))1 ]9 u: R% l0 d2 S
- (setq dc (tim_out e2))
4 d; D! |8 I2 L - )$ z0 |& j0 V# ~" \
- ) g: u) K$ ?- p( l0 z' |- H; T
- (setq i (1+ i))4 y8 X: }! \) t; a+ i3 |) Y
- )
8 g. w8 c( a0 S# {; j! l - (if e2 (progn
6 c2 B# A1 ~& |' J: g - (ssdel e2 ss1) 7 a; c! d# y; }6 G; T& h) S
- (command "_.ERASE" e2 "")
; O3 A) s4 s5 a - (setq temp (entget e1))
) @3 ^: H$ U5 i. I2 S V - (setq old (assoc 10 temp)) |8 Y; ]9 t5 u- b3 C& [. f: A
- (setq new (cons 10 dd))
+ y7 X0 c# X4 F- D8 {* d: m - (setq temp (subst new old temp)) W$ |; r7 L" C! R5 n+ `+ U
- (entmod temp)
7 _+ r3 I9 E4 [ - (setq temp (entget e1))
, N. t3 W" ~7 }& u) w0 d/ G, ^ - (setq old (assoc 11 temp))
5 |6 r @5 P4 q4 D, j. m4 } - (setq new (cons 11 dc))0 P7 ^# H7 Y0 |% o3 \/ c$ P
- (setq temp (subst new old temp))
2 R, Q( W( ?3 Q/ \* {, O) n9 k, q/ d - (entmod temp)' z6 R8 y5 X9 y: k
- (redraw e1)) }0 [7 f4 z0 e/ Q9 e" b+ i
- (setq l (sslength ss1))
' S# u8 r# H; @: [, o9 K+ I8 x. c - )$ l7 k$ q2 x2 }% v
- )
4 v+ R) L9 E( P( N, z6 L - )
! A* T. {- [0 i9 y - ) h4 b! X" ^8 L" ~( A7 b$ o
- (command "_.UCS" "" "_.UNDO" "E")
, ~- E% m5 [1 s# y' H# c) o' ? - (setvar "cmdecho" 1)
" C( c6 ?& r) a4 g: o3 ~" w - (setvar "blipmode" 0)
3 [. S l, E: ?3 {$ I& M - (setq *error* olderr)
_. z" O u, ^) D - (princ)5 h( a9 P9 l) W0 t" x
- )
2 K7 m+ ~8 v) o2 U s `2 N9 i R - ;*********************************************************************5 |0 ^2 \5 O1 j2 c5 j
- (defun ketthuc ()
$ K# w; k t6 v, C4 I! p( n - (setvar "cmdecho" luuecho)
8 a0 U$ r. o' L% g% y/ D - (setq *error* luu
6 N# w% \1 d0 i- l' d - luu nil
; Z5 k5 h' i V) Q4 _/ R0 Y+ l$ e - luuecho nil4 G2 W5 N; V% A7 |8 b' X. q' ^
- );setq
* r7 R1 i$ w8 y+ Y: R5 o- _7 K7 } - (princ)# N) J( B) _6 a) ]. F
- ) " y) f$ S: B7 h# {! _8 Q/ O& _
- ;*********************************************************************: T3 S; C$ i& t3 {( ?/ j
- (defun modau ()
6 J3 j, R1 H' J% b7 _1 t( I - (setq luu *error7 s( @" Q' ]7 \9 }
- luuecho (getvar "cmdecho")
$ j+ u$ g8 k% o - *error (ketthuc)# _2 t8 C6 M: p6 W& x8 V) v" U
- )" P4 \) |2 z" Z* N
- )* ~) H% f# J# w0 T9 H0 ?/ j9 a) z
- ;*********************************************************************
$ ~- s- K$ d4 G6 O/ Y R5 z/ z - (defun xulytext (text / kytu ma sokt luusokt lui )! X1 ?( P; K7 X0 z
- (setq kytu (substr text (strlen text))
- I M3 W6 X V3 S - ma (ascii kytu)
% l( w8 y. `" g% _8 R2 N3 [ - sokt (read kytu)
" Y. ~0 u0 m, h- t - lui 1/ ?2 l" U- n/ T/ ]8 `
- )
' h' s3 ~: f+ Z% Q - (if (numberp sokt)
/ l& N. m5 N# { - (progn; N1 [. H: D& a% d- @3 S
- (setq luusokt (1+ sokt))
* s# V+ T) c; ?) N5 y, c - (if (and (numberp sokt)
1 a3 S$ M9 b- A0 H; M - (> (strlen text) 1)
7 V0 @- {2 M' G0 [1 d - )
" f1 t! b; z# W3 V% C8 o - (progn
! I! Y& J# ?+ u& T3 r" ` - (setq kytu (substr text (1- (strlen text)))
' x& w0 ?5 h" T( B) } - sokt (read kytu)
2 c6 X7 f% W" d! W, o; n/ n' q# y) a - )! ?3 m1 q9 f" }, F; |$ \: r; M
- (if (numberp sokt)
/ K* O& y% e7 Y/ B7 |% j9 a' s - (setq luusokt (1+ sokt)
+ C5 G7 q% s3 f - lui 2
2 D# i) ?0 ?& c( T) S - % o8 f" c5 @9 d. O
- )
9 F( d3 ^6 U9 m8 i& D6 ] - )
5 n9 ?" ?3 j. t2 B6 ?$ y - );progn . V7 W5 g6 }; a% x& M2 f
- )0 B* v8 V7 ]1 _4 Q0 f1 y; g V
- (if (= luusokt 100) (setq luusokt 0))
; t% {. v9 Z% g& ^- H1 @$ G - (setq kytu (rtos luusokt 2 0)
" I0 w- e; G) G% r4 z- k - ( g6 k9 ]- z$ v
- text (strcat (substr text 1 (- (strlen text) lui)) kytu)* w, u# s# c, [. C1 Y, Q/ M
- )% _" c. I2 i7 @1 `
- );progn 6 [: V" K; X( t' T4 o
- (if (or (= kytu "z")3 I6 |9 B; V5 { t
- (= kytu "Z")
9 m5 X5 i/ Y7 c - )3 D. c) q# D5 e9 ~
- (setq text (strcat text "0")
% {% m% h- l5 Y+ g5 _ - textxl "0"# x* [7 m g0 F6 J/ t5 T& F3 n
- )
+ H3 ]) Q1 a$ L. \ - (setq ma (1+ ma)$ @' k- g( {: |1 Y& F0 W
- text (strcat (substr text 1 (1- (strlen text))) (chr ma))
: X4 ?1 i( C3 _8 |9 l - )
6 f2 R$ d: z9 Q, q& o0 d - );if# G5 `" G- g5 y2 v
- );if
2 Q" B: t( C: C2 Z2 \* u; e - )+ `6 Q( l5 H9 m, S% t
- ;*********************************************************************' j, t9 X3 l; N* P5 O9 ~3 t
- (defun doitext(tendoituong / chuoi doituong thoat tam dsach kieu text vitri10 vitri11 dem canle)
" B0 k3 D7 q, W2 v$ y7 p% N - ;Neu doi tuong la text thi tiep tuc
4 U4 M* j. p( ?' g - (setq doituong (entget tendoituong)
1 ?" N0 Y- E# D8 X - kieu (cdr (assoc 0 doituong))/ T* h' E$ ^0 g" g; H) X+ Q3 Q
- canle (cdr (assoc 72 doituong))
0 w, {7 Q/ O2 t4 R/ @8 V - ) # e3 O4 a1 R& i* V7 I
- (if (or (= kieu "TEXT")
( S1 v" H9 }* x/ x8 G! b) G+ v - (= kieu "MTEXT")
. f+ X4 H( G- v- q; ^) o L. T6 m - ) 1 l5 I5 F! L/ l* {
- (progn
f9 l0 e v5 `+ K8 _ - (setq textxl (xulytext textxl)
! `/ o; @, D. c6 N - text (cons 1 textxl)
: H1 B7 b4 V7 K/ `9 y - vitri10 (cdr (assoc 10 doituong))1 J! L3 {& M- h! J4 A6 a
- vitri10 (list (+ (car vitri10) (car vitrilech)) (+ (nth 1 vitri10) (nth 1 vitrilech)))
6 r; g6 U4 w" c2 w: ^( R9 k; G2 K, H( G9 ~ - vitri10 (cons 10 vitri10)
+ M& I; \. K9 K - vitri11 (cdr (assoc 11 doituong))" ?; |" y* {8 U4 |, B/ u7 `, K
- vitri11 (list (+ (car vitri11) (car vitrilech)) (+ (nth 1 vitri11) (nth 1 vitrilech)))# Q6 E2 p4 A9 Z2 D# e
- vitri11 (cons 11 vitri11), x( Z, Q) L# ]5 J
- dem 0. q3 W1 ?/ O( _
- dsach nil
+ N. V0 l# K3 v( L0 T9 g - )- v* @% t3 j' V% A
- (foreach tam doituong& O, q- q0 v5 X: R1 M
- (cond
. D% ^& l+ g0 h3 C$ w3 B2 e' J - ((= (car tam) 1) (setq dsach (append dsach (list text))))
# h: X1 [+ E/ A* g/ J! r - ((= (car tam) 10) (setq dsach (append dsach (list vitri10))))( S) R$ E8 m. ^. k
- ((= (car tam) 11) (setq dsach (append dsach (list vitri11))))0 i2 b' Q% w% n: B4 Q9 F
- ((setq dsach (append dsach (list tam))))
! A# Q4 t" ^4 e5 A - ): m# L8 g! E3 n
- )0 J' X5 P# G8 q N a+ O+ t
- (entmake dsach)
5 w" g. F! f7 q/ H$ t - );progn
! u$ t' N6 R0 p: F4 f - );if$ U% c# e% H7 l- M( \
- );
, B9 Y( c7 G- m c0 T - ;*********************************************************************
" Y( [6 y- M$ j' O - ;sao doi tuong cu sang vi tri moi
; u& Y$ g: Z2 f S# M1 @ - $ z0 L3 Z Q' b7 d9 {
- (defun copy_dt (tendoituong )
" W$ U+ p% [2 v4 A! J - (command "copy" tendoituong "" goc toi ), Y# `( U3 A) ~: T9 q& S
- );defun0 m, P' m. y! h4 ~$ v
- 4 K/ G+ B$ T4 g2 Y* ?: B: i
- ;*********************************************************************6 P* h& `/ x j4 i
3 _1 C: r* e/ r% m- f+ f' E& r% k1 k- (defun c:ct ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
- e0 h# J) z% f& B' G - ; Khoi dau cua chuong trinh; ^5 A) g% ]8 `4 k
- (princ "\nCopy Inteligent...\n")
, t7 r. j/ c" X$ { - (setq luuecho (getvar "cmdecho")( o7 ^7 j$ e$ p
- luu *error*5 U: j9 e' i- l: e
- *error* ketthuc& s( B, m c; G$ Z' X' I. S; G
- cumdt (ssget)
' G, C: J/ d: L s! n - dodai (sslength cumdt)
0 E5 L9 y1 B, b - goc (getpoint "\nSelect base point:")
; W1 }- t. O4 X( ?. P6 ~: [6 D - thoat nil
; s! M$ i# N* }) S5 h% E l! i - dem 0
5 p: a$ X& e. m% K, m) M - textxl nil
- t% v* O0 H$ d" d - );
$ R) H6 |9 Q5 k0 D! w" v - (setvar "cmdecho" 0)
6 b p) q1 f7 e, F0 n6 L6 G; ^ - ; Loc ra duoc ong text de xu ly
! a) x, ?/ S5 s, O e - (while (and (= thoat nil)5 J, }2 P! \5 P% l# O: Y. `
- (< dem dodai)# A+ Z: N% A& S0 A# \: _ r$ b+ x
- )
3 K# m$ q6 Q: I8 m - (setq ten (ssname cumdt dem)
& _6 K% O1 u) e% p' o- C6 t% G - dem (1+ dem)/ s+ i9 ~/ o7 X' F: q" G
- doituong (entget ten)
$ ?! \( _# f z+ V7 v - kieu (cdr (assoc 0 doituong)) * v4 C/ r2 k# D9 Z* ~
- ) c" p3 H# g5 }9 E9 s( l3 i
-
8 b& ]) e" `! s' i5 M - (if (or (= kieu "TEXT")
P# ?1 o% `: A! Q7 O( S% Q5 i - (= kieu "MTEXT") ' S# R0 j' V0 U# z6 h
- ), m l# {5 K" ]# M j+ H
- (setq thoat T# ]9 ?3 U8 n0 ]& G
- textxl (cdr (assoc 1 doituong)) 7 C* W: w4 ~7 q9 J' m$ c$ h8 n/ [
- )
$ {; [6 ` m+ W0 Q - )7 x2 x2 H# N5 W5 M3 g; ^
- );7 ^$ g* M# V9 O" `! M! V
- (while T
8 R8 H2 o0 B8 e$ `( {7 `9 @ - (setq toi (getpoint "\nSelect next point: " goc)
) ]7 Y! D/ \" D/ O! E+ W. P! h/ i - vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))3 ^0 N& E* ^: A+ c3 P7 ~. I
- dem 00 I* [+ U6 z& H8 [ E
- )9 q: m9 d- E! v0 \' R8 Z
- (while (< dem dodai)% c% B, J2 i; G6 G3 \( \% H
- (setq ten (ssname cumdt dem)
; a0 v! a+ F6 @* g$ { - dem (1+ dem)
% O3 D! K1 q3 q - doituong (entget ten)
3 u5 C* [6 h2 l G, S, _$ F" l - kieu (cdr (assoc 0 doituong)) , P. n: m# N, e3 e" ?. y
- )" h# w6 i* [. K/ W5 |
- 6 [( K( A6 `6 @% k3 |2 ~# ]$ J
- (if (or (= kieu "TEXT")
( W% t! [) ?6 j7 L5 E/ f - (= kieu "MTEXT") : Q' ?+ d! H. G
- )6 _" `5 o3 D* s. x1 r7 c
- (doitext ten)
: s% ?6 q+ w$ t7 E. l3 o - (copy_dt ten)
" W6 S. @: B2 X% n: o - 5 |( a& E1 V# [# a: k
- );if8 x0 V7 K, w" \' h) U. n/ n" c" W
- )3 h$ t2 I3 j8 \! Q" [# {
- );while+ _: b+ [" @. |- t1 m
- (ketthuc)4 r. u! {7 ^7 p: N) k$ M
- );defun
4 F- F1 g! C6 v" g - (princ "Type \"DG\" to start")
: q' j+ m& Y" q - ;Note: bien toan cuc: textxl vitrilech
/ _2 o! i. h, \$ h; F
; i& f/ f( ~' m8 a$ H2 M- ;=====================================================================
. L5 N! a2 P! U& E6 c - ;;; PLJOINFUZZ.LSP0 A3 U" }* x, z. t5 M
- ;;; Joins lines, arcs and polylines using a fuzz distance ?8 r/ e, Y: ]) x
- ;;; If only one object is selected it tries to join to all objects that are possible6 W! |3 Y$ G2 d5 a! p1 m8 C y
- ;;; By Jimmy Bergmark
& ~! s/ W! x2 Y* d D+ b - ;;; Copyright (C) 2003-2004 JTB World, All Rights Reserved6 P) N1 k7 P6 }1 Z! c, i# m
- ;;; Website: www.jtbworld.com
1 t9 p1 ` ^; h" q - ;;; E-mail: info@jtbworld.com: U, F# N$ a1 t% D$ k) }
- ;;; Tested on AutoCAD 2002,2004 and 2005* M: p" B( R1 I/ t- d
- ;;; Latest revision made 2004-11-117 {/ W, u' V2 n3 t Z! k! c
- ;;; Minor code cosmetic change made 2004-11-13. @/ v* f4 N: H% K3 E
- ;;; Bug corrected 2004-12-23
% q8 S% [$ C) v k - - A2 p B" g6 b' A, j) D+ W8 \
- (defun c:jf () (c:pljoinfuzz)) ; this line can be commented out if there is an existing command called jf
- {' n) H2 E$ g- \" J8 m - (defun c:pljoinfuzz (/ ss1 entLine objType oldcmdecho oldpeditaccept fuzz okObjects)
7 ?& v; t6 r' ?, o* D- R$ c5 {0 ?8 n9 v( d - (setq oldcmdecho (getvar "cmdecho"))7 W& @% k8 ^, F. v& z3 m0 F6 H- l+ I
- (setq oldpeditaccept (getvar "PEDITACCEPT"))7 n) P" x7 R& m& A, c d
- (setvar "cmdecho" 0)2 I0 I3 g7 Q. s6 g& ` n
- (setq A2k4 (>= (substr (getvar "ACADVER") 1 2) "16"))
h( C% z0 L& x7 F7 h - (if A2k4 (setvar "PEDITACCEPT" 0))
: w8 p/ z+ n# c - (setq okObjects '((0 . "LINE,ARC,POLYLINE,LWPOLYLINE")))
8 M4 ~1 j% z% {, D5 f; m - (princ "\nSelect object to join: ")* s9 ^ ?" Y4 M) P$ S
- (setq ss1 (ssget okObjects))+ ?8 }& G$ K: o8 ?: |
- (setq fuzz (getdist "\nFuzz distance <0>: "))5 P! D0 Q: `. Q, x/ |
- (if (= fuzz nil) (setq fuzz 0))
2 n3 Q4 K$ i4 S! U6 p& Q - (if (/= ss1 nil)
6 n5 s$ x4 H$ d! A0 L' Q - (progn" K5 b7 }8 j3 s+ V$ ]' i. e% a5 g+ X
- (setq objType (cdr (assoc 0 (entget (setq entLine (ssname ss1 0))))))) g5 s+ T$ d7 o1 @
- (if (= (sslength ss1) 1) (setq ss1 (ssget "X" okObjects)))! b4 B/ {' q) ]' ?! `- ~( P# H' G
- (if (member objType '("LINE" "ARC"))
. O1 \+ `8 }1 v5 z: a - (command "_.pedit" "_M" ss1 "" "_Y" "_J" "_J" "_B" fuzz "")
2 s1 m6 y h) \+ @% ^ - (command "_.pedit" "_M" ss1 "" "_J" "_J" "_B" fuzz "")
5 C8 m/ T2 x* r g - )
, h: b6 w5 t$ ~4 x8 d - )9 T2 d3 U3 S/ [6 ?3 }( P( a. e( u
- ). u9 c0 J8 f0 m* E V; P
- (setvar "cmdecho" oldcmdecho)0 T' \6 |4 _$ r9 c9 a
- (if A2k4 (setvar "PEDITACCEPT" oldpeditaccept))/ z* e1 b" L0 [3 c( q
- (princ)
# D% V* l4 `$ j. H/ C% s - )4 ^0 ?; j8 a( ]% t! h
: F( L; F% m' R* Y' _- ;===========================VE CAO TRINH===========================9 x6 X) W% E8 ^3 R2 l( h1 k, W* x1 ]
- + R, F4 K/ O' O% m% k/ ]- d
- (DEFUN C:Cotcao (/ CMD PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 NPI TX DX DY TL OSM OLL3 y. D% E: X' ]% t( E0 E7 c0 F
- CRST RSIZE TSIZE STR PRMT FCH NBC OLDERR)
1 K# p% t; W. `' r3 }8 b& O5 W - (SETQ OLDERR *error*
1 y7 @# n( g! _" Y* C) a' ` - *error* loisb)
, Z, H; e% d3 j F: k2 R: L - (command "layer" "m" "dim" "c" "" """")
$ V r0 Q9 k- r7 k - (SETQ CMD (GETVAR "CMDECHO"))
- i& U3 v$ o* i3 l0 X - (SETQ NBC (GETVAR "CLAYER"))
* `0 a! {" @6 D5 D) e* k - (SETQ OSM (GETVAR "OSMODE"))1 o& C1 |/ u- b
- (SETVAR "CMDECHO" 0)9 v- `# f3 ?' K. _/ {/ B& q! U/ e% F; X
- (SETQ PT1 (GETPOINT "\nDiem cao trinh:"))5 Z6 s! A: X e6 I& ^
- (SETQ TX (GETSTRING "\nCao trinh:"))
/ K# a9 ~! b3 U; y/ d - (SETQ FCH (SUBSTR TX 1 1))
% d+ M4 U7 q/ ?( n8 K ~( L - (IF (= FCH "@") (SETQ TX (STRCAT "%%P" (SUBSTR TX 2 (- (STRLEN TX) 1)))))
& J2 m& v# n* @9 u; q' \# T - (SETQ CRST (GETVAR "TEXTSTYLE"))
* e; f; ]' G- P: B m7 z - (SETQ RSIZE (CDR (ASSOC 40 (TBLSEARCH "STYLE" CRST))))7 v0 S) g. v- }3 k) f: y# C! \
- (SETQ TSIZE (GETVAR "TEXTSIZE")); D- M4 @# A" |1 l) V# ]
- (SETQ STR (RTOS TSIZE 2))
0 Z, `" m* W; j/ s8 A& k* [, q - (SETQ PRMT (STRCAT "\nText height <" STR ">:"))" b, W$ `5 ~/ q3 W
- (IF (= RSIZE 0)
% U( ^! {" l4 e0 L# b - (PROGN
5 l1 n+ g% q' r) ]) h - (INITGET 4)4 E7 z0 v+ y: O" A" S- w
- (SETQ TSIZE (GETREAL PRMT))+ l. }- u4 l' p" F% L$ }& O
- (IF (= TSIZE NIL) (SETQ TSIZE (GETVAR "TEXTSIZE"))
9 B; K( v- A) D# R: A% F - (SETVAR "TEXTSIZE" TSIZE))$ U- I0 ^, S! P; O
- )
/ U b' T ]7 I! s5 p' B j& C - )- _; ?3 P: j1 ^9 X
- (PRINC)0 ?1 q0 f+ @9 u& Z
- (SETQ TL (/ (GETVAR "TEXTSIZE") 2))# j- Q: n W( N# S1 X. e
- (SETVAR "OSMODE" 0)
z1 C7 p9 x; ?1 }0 ~, j9 ~- x - (SETQ DX (CAAR (CDR (TEXTBOX (LIST (CONS 1 TX))))))6 n, P! V1 n( x( S9 H
- (SETQ NPI (/ PI 2))" {* {4 f) H- r0 T1 {0 C1 C
- (SETQ PT4 (POLAR PT1 NPI (* 1 TL)))/ F( B2 |; B1 K$ t
- (SETQ PT2 (POLAR PT4 PI (* 2 TL)))
: O" _- w- f3 u - (SETQ PT3 (POLAR PT4 0 (* 2 TL)))5 P, B _3 F, n& X5 k
- (SETQ PT5 (POLAR PT4 NPI (* 5 TL))); x7 P9 P5 d. T& f( p
- (SETQ PT6 (POLAR PT2 NPI TL))* ^( z- s* z! T/ f( V( G& A& S4 c
- (SETQ PT7 (POLAR PT6 0 (+ (* 3.7 TL) DX)))
+ x, z4 W. l* Y7 o$ y9 i - (SETQ PT8 (POLAR PT6 NPI (* 1 TL)))
4 _+ C) _; O/ a7 f" p! y7 j - (SETQ PT8 (POLAR PT8 0 (* 2.5 TL)))! S y% p4 m! j7 w1 s1 n* a
- (SETQ PT9 (POLAR PT1 pi (* 2 TL)))( K# [: }# G. _4 H
- (SETQ PT10 (POLAR PT1 0 (* 2 TL)))
' }( l* _+ \7 l) a0 U, N g - (COMMAND "COLOR" "7" "")! [( Y: p+ g% o% B! z' f
- (COMMAND "STYLE" "COTES" "Verdana" "" "" "" "" "")- X' b7 S) `; f( p% e1 X( K2 M( j
- (IF (= RSIZE 0)(COMMAND "TEXT" PT8 TSIZE 0 tX) (COMMAND "TEXT" PT8 0 TX))9 P+ h" k, _; r" H/ [& T
- (COMMAND "COLOR" "BYLAYER" "")
% ^/ @0 c7 S3 r - (COMMAND "SOLID" PT1 PT2 PT4 "" "" "pLINE" PT1 pt3 pt2 "")
4 W$ L9 m% c6 ]5 u& d; v0 i - (COMMAND "COLOR" "BYLAYER" "")/ h# S g. i0 i, d4 G
- (COMMAND "pLINE" PT1 PT5 "" "pLINE" PT6 PT7 "" "pLINE" pt9 pt10"")
@3 v; ~6 y4 T - (SETVAR "CLAYER" "0")
+ W- U: {$ k/ u8 w# S' ~ - (command "ddedit" pause)
' q Z9 K/ x0 t2 C% K - (COMMAND "COLOR" "BYLAYER" "")4 B8 \* M2 w2 n9 J: o x2 @) H& {
- (SETVAR "CMDECHO" CMD)
; X" e& n$ w, c - (SETVAR "CLAYER" NBC)
: M9 ^( i2 W- G+ { - (SETVAR "OSMODE" OSM)
: F& n8 s0 J+ y - (PRINC)
3 o: T# d( V4 {5 K. e# O - ) {, [7 Z& E6 N
3 X; _- q! l- d- ;;; =========================== VE NET CAT CHEO (GC) =============================
; P) ^7 X! o) U/ ~9 n" r -
9 l4 e1 ^: U& u0 X1 ? G - (Defun c:G1(/ p1 p2 p3 p4 p5 p6 p11 p12 l ang)7 ?' C- M9 U2 W/ |. A" |
- (setq x (getvar "osmode"))' \9 ]0 [8 B1 O, j9 D
- (setq p1 (getpoint "First point : ")
# M# \2 G3 F( Z+ L" ?9 i @/ s - p2 (getpoint p1 "Second point : "))
' n) h) \- b) I5 Z5 | - (setq l (distance p1 p2))8 Q4 R7 N1 x" A4 }3 k
- (setq p11 (polar p1 (angle p2 p1) (/ l 5))
# a7 A& J/ p. I8 e c8 X" H - p12 (polar p2 (angle p1 p2) (/ l 5)))
: a' X1 M* T$ M+ O! P# J - (setq ang (angle p1 p2))$ l/ ?+ R: h- v: [
- (setq p3 (polar p1 ang (/ l 2.5))2 h' h7 I. G3 C* `
- p4 (polar p3 (+ (/ pi 2) ang) (/ l 5))
3 _ v: B* x3 Q - p5 (polar p3 ang (/ l 5))
* v) p8 |8 u: i W - p6 (polar p5 (- ang (/ pi 2)) (/ l 5)))
% Q9 [& s: W2 { - (setvar "osmode" 0)& p" l: X. Q* {
- (command "pline" p11 p3 p4 p6 p5 p12 "")
) P9 R+ I' P# j - (setvar "osmode" x)
8 Q. B7 s( q* ^6 h2 q3 t. j, g - )& W% q& t7 |5 X% \' I6 Y4 e
- ;----------------------------------------------------------------------------------
2 H5 \0 i5 U% \7 W" J# x - (Defun C:G2 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6' s. n3 T2 w/ I' n
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
* O' }# O! K5 v/ @0 H - (setq ps1 (getpoint "\Chon diem thu nhat: "))
) F* x( j4 d9 i! I9 | - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))7 l, X3 Q" l, K. U) ~! ]6 v
- (setq sb 50.0 sh 200.0 se 20.0)
- o: |! P. c( r0 k# N - (setq ang (angle ps1 ps2))
+ @: Y: A+ l* I/ }+ K1 u* @ - (setq pf1 (polar ps1 ang (- 0.0 se)))
9 T; x2 n- A" K% k - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
, A" t% ]) @6 Z) D/ l2 [0 } - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
8 V7 c+ c9 [7 p - (setq pf5 (polar pf2 ang sb))( t! ]8 ^ V3 x9 i$ B# D L
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
" q. R2 C1 G4 p, [ - (setq pf6 (polar ps2 ang se))7 B# x. l" V* V2 s
- (setvar "OSMODE" 0)
9 [4 M& n! }9 ]. w% o9 K - (setvar "BLIPMODE" 0)1 M- p, j8 C; t. g, _
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
# ^! ^, m8 u3 F, O5 ~ - (setvar "OSMODE" 703)
" B7 D; R% g7 q - (princ) )
: T& S4 b9 h e! }1 y - ;----------------------------------------------------------------------------------) ]) |+ V9 ^ t
- (Defun C:G3 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
. B5 T: r+ {! [" B$ O - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))2 Y/ z/ E& L( u
- (setq ps1 (getpoint "\Chon diem thu nhat: "))
- G3 w# a0 Q. X - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
9 N& N( M( i# c9 {: s' O% j - (setq sb 100.0 sh 150.0 se 20.0)4 @; T# e' @9 g+ k
- (setq ang (angle ps1 ps2))
7 w. o [3 P9 I7 C - (setq pf1 (polar ps1 ang (- 0.0 se)))
0 s! F- G% \3 n- p. _6 | - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) )). O8 D& Q5 e( B+ u' E/ K c
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
F; S; c$ h2 E- ]( c - (setq pf5 (polar pf2 ang sb))
# t" S% D! y l- J5 x8 U8 o% D7 D - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
5 q: x/ Q$ ?2 X$ C% U/ Z - (setq pf6 (polar ps2 ang se))7 F4 n+ y$ ? Y* h9 j. f* j0 R* _
- (setvar "OSMODE" 0)( Y" R+ D% O8 n: g
- (setvar "BLIPMODE" 0)5 M: I+ e5 h: {8 F, h+ c' L
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")5 s- m X; l, |/ e* |) X
- (setvar "OSMODE" 703)4 K! i0 i$ W Q0 \! e2 U; _$ _
- (princ) )( ?$ ^0 P( _1 W3 d d6 t
- ;----------------------------------------------------------------------------------
( K2 a' h! t) v6 A4 J - (Defun C:G4 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6$ ^. T% Q$ H& h+ b+ Q9 l
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))+ h* `( y$ ~* T! O" ~# }9 R5 r' ?
- (setq ps1 (getpoint "\Chon diem thu nhat: "))
$ p' u# U8 b: N) V2 @+ j6 g - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))2 M8 \- f) ]) W: z8 G
- (setq sb 100.0 sh 250.0 se 20.0)
" ^7 z. j( P* u0 d/ { - (setq ang (angle ps1 ps2))
0 [' U* o# w* {2 w" K - (setq pf1 (polar ps1 ang (- 0.0 se)))4 f* A/ H( X4 C4 _( x
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
\0 i9 d9 K3 g. g U- u - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
9 G/ J9 P1 U$ c$ U6 w; x - (setq pf5 (polar pf2 ang sb))
( u! t# A1 o) c; J( C) R+ _! D - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))0 I7 b7 d' s i0 `
- (setq pf6 (polar ps2 ang se))8 f! }2 A- Q5 P! X' P( F8 e
- (setvar "OSMODE" 0)
, q/ R( @0 @, _+ g! c( Q - (setvar "BLIPMODE" 0)
4 s A3 X+ d8 d. w7 P - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")' w9 _! k( T) ?7 r5 S; b- F W
- (setvar "OSMODE" 703)
! b- e4 z( a8 i/ R, Y* }- v. n - (princ) )
3 T- C- J1 C5 O$ k2 m - / W$ p* [* g: ?& p7 Q
- ;==================================================================================8 V5 i. d) }4 B5 ~ f- R4 O
- (defun c:ang (/ ent pt1 pt2 ang)
, R- ` m6 z4 w( i - (setq cmd (getvar "cmdecho"))9 M; C; t$ m" X5 x. u4 K/ n/ z
- (setvar "cmdecho" 1)
# Y6 `. V! k2 O. o9 G- z' Q% V - (prompt (strcat"\nThay doi truc toa do theo duong thang chon truoc"))
) j g7 C. ^. M V* \2 R4 O - (setq ent (entsel "\nChon duong thang:")); z6 ?3 g2 [) R2 W
- (if ent
2 X9 Q' R, M* G& V7 \ b - (progn
$ }9 x% a5 L, d! z% i: O - (setq ent (entget (car ent)))% ~5 Y+ x2 l+ m5 m* G; U
- (setq pt1 (cdr (assoc 10 ent)))
) p V" p% e, e - (setq pt2 (cdr (assoc 11 ent)))( X+ ~ K9 _. K+ E5 A* q
- (setq ang (angle pt1 pt2))
# T1 Q7 z' d- H: I - (setq ang (/ (* ang 180.0) pi))
$ ~3 N5 j. z* n0 b7 G, Q3 F" B" ]. v - (setvar "cmdecho" 0)
* X' ~0 K0 Q3 k# \, j8 b - (command "setvar" "snapang" ang)
. y% u! r* g8 ]3 F4 C$ z+ _ - (princ "\nGoc cua truc toa do moi : ")- C _* P6 }. t0 t: w
- (princ ang)
; f) L0 O4 ]6 n- A7 `" T: e6 ^ - )
) t: h7 E6 M0 i( i m - )
' n5 |8 a/ ]5 x - (setvar "cmdecho" cmd)
( y$ j3 |, x, v - (princ)# R, Y/ v0 i6 f0 w! F
- )
: ]3 [" Q5 v8 C6 p0 x; U+ h i; R - ;==================================================================================
# y) A5 t6 \0 m! m# A - ;============================== KY HIEU DOI XUNG ==============================1 Q. t4 _* C/ `2 X; g4 }. s
- ;==================================================================================
* I7 h4 B% H6 `% G. B$ Z - ; u; C( v- O9 R4 |# V0 c6 h
- (DEFUN C:DX (/ CMD OSM OLDERR PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 PT9/ H% A# L) E/ g0 h9 Q
- SZ G45 G135 G90 G180 SS loi)
F* A4 O' p: {$ r: R7 B, P# y- N - (defun loi (s)$ O2 n f9 V2 D4 X- Y
- (if (= s "Function cancelled")
! W5 P6 D8 l3 j5 E. s% m - (princ)
: l% W, I! G" s4 H. x! I' r - (princ (strcat "Error:" s))
6 U: l8 }; _1 m4 M: e - ); u* P: ]1 N! y7 p0 ^
- (SETVAR "CMDECHO" CMD)3 h1 V2 \& V4 M) j F" f" T
- (SETVAR "OSMODE" OSM)# I% _9 I( ]' n7 \$ U3 M! j
- (SETQ *error* OLDERR)% h7 N, n( D$ o) s
- (PRINC): S, s$ }6 e1 Q0 N
- )
, S: y4 v; A1 O! e - (SETQ CMD (GETVAR "CMDECHO"))$ g# K% i% f( B% K
- (SETQ OSM (GETVAR "OSMODE"))
% F/ V. ^& |9 W - (SETVAR "CMDECHO" 0)
$ e% U9 }1 q8 Z' e2 ]9 r - (SETQ OLDERR *error** [( ^9 e+ j5 _7 T& u
- *error* loi)+ x4 v- }" r3 |$ z8 h
- (SETQ SZ (GETREAL "Size <1>:"))
6 O. [+ F- S% ]2 w* w+ L# G& H8 f - (IF (= SZ nil) (SETQ SZ 100))
' r9 E4 [6 O1 C7 c( b - (SETQ G45 (/ PI 4))
2 }+ {1 P% L, Q* A( E" k - (SETQ G135 (* 3 (/ PI 4)))
9 d# b! g- f& B N- M. k9 l) a# [/ j - (SETQ G90 (- G45 (/ PI 2)))0 ?( _% C$ L, k9 b" i
- (SETQ G180 (+ G135 (/ PI 2)))4 `" B6 F# z7 \
- (SETQ PT1 (GETPOINT "\nDiem doi xung:"))
1 Y; e( J5 b. d+ y' F - (SETVAR "OSMODE" 0)7 D( Z: @6 d5 Y0 D
- (SETQ PT2 (POLAR PT1 G45 (* 2 SZ)))
`; K |# n+ ?: a+ t. H! `* T - (SETQ PT3 (POLAR PT2 G90 (* 2 SZ)))+ g( m1 U, g( e* j/ Z* c
- (SETQ PT4 (POLAR PT1 G45 (* 1 SZ)))+ [+ A4 C5 e! R* t; k- N
- (SETQ PT5 (POLAR PT1 G135 (* 2 SZ)))
( y# @& x! B1 g2 q6 T - (SETQ PT6 (POLAR PT5 G180 (* 2 SZ)))
( h k a K p9 }; `/ I, Q - (SETQ PT7 (POLAR PT1 G135 (* 1 SZ)))0 R+ y/ J5 _9 n1 B
- (SETQ PT8 (POLAR PT1 G45 (* -0.7 SZ)))
1 `5 @& f/ f5 m - (SETQ PT9 (POLAR PT1 G135 (* -0.7 SZ)))2 d: Z r! j6 m5 v% f& Z
- (PRINC "\nGoc quay:")- o0 e. N% j3 H) |# [! N; K5 c: k: F
- (SETQ SS (SSADD))
( u' E* x b1 i* P - (command "layer" "m" "Dim" "c" "" """")
0 u6 M% v C' ]. i0 e9 ? - (COMMAND "COLOR" "1" "")' @8 m/ @+ i& J
- (COMMAND "LINE" PT8 PT2 "")
. I/ e) b, a+ D0 W0 P - (SETQ SS (SSADD (ENTLAST) SS))+ p% p% |' q$ r+ f7 T$ c- d5 O
- (COMMAND "LINE" PT9 PT5 "")' V, c p. D$ K8 T
- (SETQ SS (SSADD (ENTLAST) SS))
) t Z$ N/ F8 V% b- ]4 F+ W - (COMMAND "COLOR" "1" "")
1 W' H: X! J2 q U: d& z4 d - (COMMAND "SOLID" PT2 PT3 PT4 "" "")5 `# ]9 } }$ W7 h2 @9 g! Z
- (SETQ SS (SSADD (ENTLAST) SS))" q! Q& [( \( I: k Q0 C
- (COMMAND "SOLID" PT5 PT6 PT7 "" ""); ~! N- Q! ^' l: Z) x
- (SETQ SS (SSADD (ENTLAST) SS))1 @: b- r! E' E3 Q
- (COMMAND "ROTATE" SS "" PT1 PAUSE)5 n: r, s6 _7 R' o# F
- (COMMAND "COLOR" "BYLAYER" "")0 G6 W. _' }% u% v2 v
- (SETVAR "CMDECHO" CMD)
6 P: S; X4 K0 t4 I* a' w - (SETVAR "OSMODE" OSM)
/ ?" o1 o& w; K1 }. L+ J( C6 c - (SETQ *error* OLDERR)
' ^+ I1 i7 L0 a* D1 p3 M- k* S - (PRINC)
& x c% z8 R; { - )
. Y7 b& g* E7 Y0 b$ y2 Y! X8 T" | - - T. }9 ~. V7 r) S
- ;==================================================================================
6 ^6 i& E: o: N% O- R7 v) k - ;================================= KY HIEU TRUC ===============================
. y& y, j) [2 I# D2 I2 k - ;==================================================================================# D, w+ _3 a; {" N b2 x
- 8 C$ o; l) w) n/ U
- (defun C:vetruc ()
! S" t5 ?2 ]6 J! k2 ]: o - (setq bk (getvar "USERR3"))
; e7 D- @3 D" Q5 F1 m+ f/ L, i7 ]# W - (if (= bk 0)
0 G8 q" C6 _7 @' q9 e - (progn3 l- g5 V" i! i4 ?$ Y
- (setq cont "1")) u6 ?0 J' P' w' |
- (setvar "USERR3" 1)) C9 S0 o; P8 p) o1 j( R: |
- ). ~, H' Q. q6 f
- (setq cont (rtos bk))" _* X2 q7 c3 ]
- )- j: @" I) i/ e7 ?4 m8 O. t
- (setq pt1 (getpoint "\n Nhap diem dat:")); |7 |0 o" X" F
- (command "layer" "m" "Dim" "c" "" """")
( K2 ]. P. r4 o1 |4 B9 ]( M7 y5 ` - (command "osnap" "")% Z# s! g* u! L \, j: m6 B
- (COMMAND "COLOR" "7" "")
# b4 @0 Q* Z9 _/ I: p \& e - (command "circle" pt1 150 "")
1 s9 b$ q# c6 i# `) Q - (setq pt2 (polar pt1 0 150))
# @( f+ d# Q& a1 {( i - (setq pt3 (polar pt1 (/ pi 1) 150))
- E5 o* S3 m% Y! v - (setq pt4 (polar pt1 0 300))& y+ U; R& ?1 y
- (setq pt5 (polar pt1 (/ pi 1) 300))6 e# o0 q. A) S% z' m
- (setq pt6 (polar pt1 (- 0 (/ pi 2)) 150))
+ }! y0 c" a2 a" P8 Q9 [, V - (setq pt7 (polar pt1 (- 0 (/ pi 2)) 300))
3 K. J: i% l. @1 H9 N3 S - (setq pt8 (polar pt1 (/ pi 2) 150))& T4 z9 H5 ^+ u: {
- (setq pt9 (polar pt1 (/ pi 2) 300))7 c- u7 C. D, j/ J* H$ L
- (setq pt10 (polar pt1 0 150))
$ i! L- _0 t! v, R# { E9 T4 v1 g3 z6 {- n - (setq pt11 (polar pt1 (/ pi 4) 150))2 m) b' U# A/ G9 s. y2 N: g: [- P: E
- (COMMAND "COLOR" "BYLAYER" "")& k5 b6 ~3 C0 @& P5 t( b+ S
- (command "line" pt2 pt4 "")
. r8 `- I+ O s8 m7 @! Y) I - (command "line" pt6 pt7 "")
+ o. d9 K& U' ~8 W: ~3 b5 x1 S3 V) E - (command "line" pt3 pt5 "")
, B- `1 C+ Z$ w3 u7 v3 a - (command "line" pt8 pt9 "")
9 M+ o# y- X( D- [# _ - (setq dk (strcat "\n Size:<"cont">"))
; p2 d$ y! n3 { - (setq bk (getreal dk))* K' x( u# Y& N6 y5 L; K; V# I
- (if (= bk nil)
+ l& s; x, [: i5 V; r - (progn" M2 }, r) X& r/ Y, _2 u
- (setq bk (getvar "USERR3"))4 `: g, E( z. Y( H4 i' E
- )# T! s; j7 d& \% k6 d
- (setvar "USERR3" bk)
- g% {& v" n4 ]0 W' V: ?9 |, L) _, m - )
& _1 L) T& q! \' H9 D0 [% a% M, `7 b - (command "scale" pt4 pt5 pt7 pt9 pt11"" pt1 bk"")
& Q3 ~5 T# _9 b) c, m7 M - (COMMAND "COLOR" "7" "")$ Y. b4 ^, v6 {( K2 m4 F
- (COMMAND "STYLE" "Truc" "impact" "" "" "" "" ""): t& ]& X/ ?, E7 n! |
- (command "text" "j" "mc" pt1 (* 150 bk) pt10 "A" "")
! s" Y' \6 A* T2 ] - (COMMAND "COLOR" "BYLAYER" ""). f3 {7 E1 s. B+ b2 L5 u7 S
- ) W% D6 ]; r& M+ f& C6 n: q
- W h: R: s) M& t/ g
- ;=====================================================================* g. Y/ ]7 c9 s: a6 ^8 P
- ;CA - Reverses the case of text. (Upper to Lower and Lower to Upper.)
5 I# L" s9 `8 i, g - ;- L, s8 P* n5 K# o4 ?: \( C' R
- ;Jeffery P Sanders
, @7 u0 J& s4 p; S2 S - ;
?: |* o: I6 S0 T6 M: I - (defun C:CA(/ en enlist tx newtx cnt tp asc note)
+ p; x+ `- m' a: ^, y2 y5 V - (setvar "cmdecho" 0)+ W' e; r) @: E
- (if(setq en(entsel))
$ F' `7 b( [ s0 d9 U - (progn+ a1 k- i6 w% ]& h5 I; | z- n
- (setq enlist(entget(car en)))+ Z9 I$ z6 ?2 }! |* z5 `
- (if(= "TEXT"(cdr(assoc 0 enlist)))+ |4 e' J- }" R+ h( Y- s# }
- (progn; u: j( i Y) Y, ?/ M, G* E$ ~- n
- (setq tx(cdr(assoc 1 enlist))
4 @, T& O2 L8 r - newtx "" cnt(strlen tx)8 `8 Y% Y) V; d
- note "\n...CASE Reversed. \n "
0 H6 P& J3 \7 G; a' X! |/ `" Y+ N* d - )0 Q: x, w( j" R. t9 @* I7 f. J
- (while (> cnt 0)
5 l3 k& Q/ \% V+ x - (setq tp(substr tx cnt 1))
7 Q# E' }: b9 W1 E# U. y6 l - (setq asc(ascii tp))) B0 r9 T( I5 r9 T, m! Y8 V
- (if (> asc 96)
! Q: t4 Q( Z9 i6 H - (setq tp(strcase tp))
% t, o3 ^4 }9 {; Y7 A - (setq tp(strcase tp T))2 ~7 \! w/ a. b- ~5 V8 z {" @7 m, T: K# V
- )2 W5 B9 z! y4 M3 c9 o* c6 s
- (setq newtx(strcat tp newtx)): E _) m0 H2 q, m8 p# \- e
- (setq cnt(- cnt 1))1 D* D! e" V$ g: I, B
- )
* O: ^- f; F6 E+ N+ P- M7 E - (setq enlist(subst(cons 1 newtx)(assoc 1 enlist)enlist))* [# g5 ~- _7 K$ v5 Q; f7 q b* i
- (entmod enlist)0 b) f" |% ~$ S. U) I; o0 b
- )
8 w) i$ _; A3 r7 D$ J - (setq note "\n....Text Only Please. \n ")
* B1 d; C! E$ Y+ ? - )
( u( c- B: P, s/ x1 v/ U* u- G3 I( _ - ) B, t* d& C! p* d
- (setq note "\n....Nothing Selected. \n ")1 Z' Q+ j' `9 h/ N+ A; M( {
- )
$ f% v u; ` c - (setvar "cmdecho" 1)7 s/ ^2 }- @. [
- (princ note)5 x2 g- Z6 j B$ F+ ~# i P1 S
- (princ)! }" T6 e1 j* o4 X w! N
- )" R" O9 U: Y& e9 q
- + E2 W3 ^- s U* f. J- z( u
- ;=====================================================================: |( V6 F1 d4 S: N8 m+ r2 U
- ;==================== NEW TEXT STYLE UPDATE ==========================; g t& i% P1 `# O5 ^% C' r) E- @
- ;=====================================================================
9 y/ H& D* @8 `6 E# q. A" h+ e! I
5 l" ~" g: i, M8 [- (defun c:nS (/ tdt ssdt sodt index)
1 i0 V% b7 L$ u5 [& w( X- a - (defun ObjName (ssdt /)8 B4 Q' ]1 ?4 }, ^% _5 @1 X
- (cdr (assoc '0 (entget ssdt)))1 J: q, T& F/ I# u @9 ?
- )" A4 L# y4 ~6 G- P: k6 k
- (defun MoPL (ssdt /)/ H+ n$ {3 k* z1 o
- (= (cdr (assoc '70 (entget ssdt))) 0)+ q' g* p2 d# {% G. h
- ); \8 v% t) r9 I3 N6 R
- (defun NoiPL (ssdt /)
! G) B( f+ c% N! y4 n - (if (MoPL ssdt)8 `6 T$ G$ @/ \) h% t) L
- (command ".PEDIT" ssdt "J" "All" "" "X")4 m2 v9 y( d: S( L6 Y5 |
- ). s: M. B# H- Q3 w8 v
- )* w/ N$ f$ D1 }2 A3 {; t1 x0 s
- (defun NoiLC (ssdt /)
. U' |0 R* m; Z5 s! W# U; X- P - (command ".PEDIT" ssdt "Y" "J" "All" "" "X")1 H! R$ Q D9 k1 X, ]+ D$ l+ \
- )$ X$ Y# [) h, l
- (setq
$ R* K& \' i& B) A1 T! l - tdt (ssget)
% o& ]3 A0 z0 | - sodt (sslength tdt), h- [7 w0 N& {3 r
- index 0
O9 X6 I4 Q2 m# i6 w - )
3 h% N6 H. n. v& c& s - (repeat sodt
. |: D) }- @5 M/ \# X* V4 K- ? - (setq
$ z3 F4 K4 Z$ t3 Q - ssdt (ssname tdt index)
1 c: r) g, z2 b6 R8 Z2 R - index (1+ index)
/ i4 _2 N5 N; `2 G$ _ - )4 W. g3 P) ]2 @1 o
- (if (or (= (Objname ssdt) "LWPOLYLINE")
5 f% c; T6 V. x4 x - (= (Objname ssdt) "POLYLINE")
/ |" M/ L' u3 \: ?- P( L# A8 q - )
6 @+ }8 F" {! j, P9 V4 @# m - (NoiPL ssdt)9 t! g; y7 ]% x; J, A/ }
- )
9 a. C' _7 G7 @; G6 U; t& s) W - (if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC")); ]0 }* I1 b# r! X2 Q" t3 ]
- (NoiLC ssdt) T7 R! Q% \% _$ g% }# b/ j
- )3 c7 f2 t$ J8 Y! f- {6 S* V
- )
! w' r+ I' O* s0 |8 l - (princ); e9 |# [/ m/ k: T
- )
/ S3 F7 t+ i; }0 F- \; z+ P - . a( ^- u, \# z
- ;=====================================================================& _/ P, |) B* |. f2 O: O4 l% B
- ;;; AREAM.LSP/ [& I: } g- e3 I9 i: i; P
- ;;; Function: Calculates the total area of selected objects
" g+ C9 B. k# ]7 P2 o2 t5 e- Y - ;;; By Jimmy Bergmark
; ]! L& R. ~6 T+ y - ;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved
' G$ u2 o5 B" `% D5 e - ;;; Tested on AutoCAD 2000
- m, w6 T! z0 v4 {
1 W- c) |9 @1 N- (defun c:ea (/ olderr oldcmdecho errexit undox restore ss1 nr en tot_area) N+ l: F+ ]8 a" R
- (defun errexit (s)
/ g& b$ O- g) a$ ^' L - (restore)
% O+ X4 Y6 O m% { - )
# _) W* j1 a; n. |* ^% p
$ [" I: d9 s% ]* ~0 o9 M* j5 V- (defun undox ()
* A: p! Z" ?$ F# J1 X - (command "._undo" "_E")
0 J3 t4 l. p% g3 W8 U - (setvar "cmdecho" oldcmdecho); ^& j9 n3 m5 d N: C( }9 T
- (setq *error* olderr)
$ w7 J4 C' ^7 r) F/ r8 w& k - (princ)+ f9 V8 W2 p) `: h
- )
6 ]+ i5 Y4 l- o4 |; N - . t' t( d m: w m
- (setq olderr *error*
5 B, o6 v$ s% w - restore undox
' S7 }$ Y/ `7 S; a/ u& x: o - *error* errexit! }$ T$ J" u: T2 I3 m
- )
6 c0 z3 r2 z# S5 d8 H3 r - (setq oldcmdecho (getvar "cmdecho"))
" B; `) E+ H. {- X* H: W; F - (setvar "cmdecho" 0)
0 p' }8 h. r$ ` - (command "._UNDO" "_BE")
* _4 j) g) _% [& H/ y - (if (setq ss1 (ssget '((-4 . "<OR")8 L$ C* _: e+ |3 `
- (0 . "POLYLINE")9 E' [. e# R& t( }" y- D% M2 E& v" {
- (0 . "LWPOLYLINE")) q: e9 n, E6 x( j4 k3 O
- (0 . "CIRCLE")1 U1 r$ i; S* w. i; P- ?: e6 {
- (0 . "ELLIPSE")
* W& |* w n: p$ x - (0 . "SPLINE")2 a& I- V9 k2 F. j/ }, y* W$ l. h
- (0 . "REGION"); }! k7 k: [% O' j1 q5 Q7 l
- (-4 . "OR>")0 X( U0 M: p9 Q+ c v
- )
* R$ R E. k. R6 P6 I - )% I. G6 E. L, l8 t1 d! u; o; A
- )
! L8 `- u1 k3 T8 P- K - (progn
* q( \# x; C% W0 \0 ~( W/ ^* b3 \+ j: }4 r - (setq nr 0)
5 m( q3 ^/ Y6 W2 J& r6 ^6 C3 ` - (setq tot_area 0.0)$ ^) e) S8 l5 S1 ^% Z9 X
- (setq en (ssname ss1 nr))
2 p5 `9 d8 T' U- _+ U( ^3 o. \& e$ j - (while en! F$ [% t L& L7 ~0 y1 n
- (command "._area" "_O" en)
1 J% _; m' Y9 {. Q9 l1 k; T - (setq tot_area (+ tot_area (getvar "area")))8 z6 u8 m T4 M4 l
- (setq nr (1+ nr))
6 e1 M. w2 @9 [* n# |6 W - (setq en (ssname ss1 nr))
$ ?/ n7 G& v6 K - )- l& B6 G+ f5 ]9 M: z
- (princ "\nTotal Area = ")
5 b7 v( t( u) k' @ - (princ tot_area)8 X O5 w, S0 I' j7 [
- )
Y# f& [; U/ @# n$ C6 L0 a - )% h' |1 B$ Y) s" W+ E% z) ?# _) t
- (restore)
5 v9 `+ Y$ [# N) f - )) C* E- k$ @' u1 e+ f& A" @ j/ z
0 O1 s& r7 X7 f' k6 `, o- ;=====================================================================
a3 b& r$ I- Z& y4 J$ H! V - ;;; By Jimmy Bergmark) p9 h7 r: U/ l1 N( _2 X3 y4 s
- ;;; Copyright (C) 2008 JTB World, All Rights Reserved( y# g4 a9 Z) _& ~4 B- e0 G
- ;;;
; O5 x8 y" e) @8 }! [ - ;;; Created: 2008-03-314 d; a) o+ ~9 E9 ~9 q
- ;;;" H$ |& l; q. M0 O- [0 R
- ;;; Convert Attribute definitions to mtext `7 t, V% ~3 b: k8 o6 S3 X9 B3 J
- ;;;
( @5 l5 v! M$ T) @3 f
* Z. ]2 j1 v% t- (defun c:ATB (/ eset1 blkcnt en enlist tag1 ht pnt vl space)
- a8 A: J/ L3 w% E9 m; G4 b - (setq eset1 (ssget (list (cons 0 "ATTDEF")))
) b1 L3 x( w; x - blkcnt 07 C9 G7 s& }/ \4 P* ^
- )
- I2 z1 E; ]0 [0 z x1 _/ [ - * J; @3 C( i+ e. E! w/ O0 t
- (if eset1$ f) i: w2 l! U1 N% u
- (while (<= blkcnt (- (sslength eset1) 1))! P* `- H* `7 b
- (setq en (ssname eset1 blkcnt)9 A2 L. r$ {5 w# i& P
- enlist (entget en)
+ l3 [& P3 ]5 r - ht (cdr (assoc 40 enlist))" J% w1 s. K' G& y8 F1 h
- pnt (assoc 10 enlist)
. z; J6 _( i4 G. q+ T0 e/ K - pnt (subst (+ ht (caddr pnt)) (caddr pnt) pnt)4 d1 Q# r2 E% r2 M5 f
- space (cdr (assoc 67 enlist))
% O8 D/ E9 d6 r- [( X" O - )
8 [4 k+ Z* D5 m) _ - (setq vl (list; [. `9 E6 p, D1 ?7 G
- (cons 0 "MTEXT")! E8 \ A3 _ K5 H& Y5 a
- (cons 100 "AcDbEntity"). ^: T# i0 J* o* S6 U5 G, S3 `* x
- (cons 100 "AcDbMText")) W: s) T' z& c9 W/ ?
- (assoc 7 enlist)% y( d5 u- J: G7 h" _ `( v' c2 N
- (assoc 8 enlist)
; C' _4 N+ ~9 Q/ L3 u - pnt
. u( R. p( [' k* ]! f5 M2 _ - (assoc 40 enlist)
$ [4 q o3 V1 @/ r; y7 r( W - (cond ((assoc 62 enlist))
. N) S' p! }' M) d0 C8 I$ E5 w. K - ((cons 62 256))
) `; O; T! n! a Q, b - )
8 g1 r% h! Z( Y, M5 @ - (cons 1 (cdr (assoc 2 enlist)))
8 |9 Z5 }: l' K% h - (if (= space nil)
& V: X* W/ G1 H [$ o* N( i( K - (cons 67 0)
9 z$ x: S- I% L8 j7 W - (cons 67 space) }/ T* L# a7 O9 b$ {, H. i) E
- )
+ ~; h& g4 U) @6 r5 Z - )
: D8 L: x5 H" V X5 `% j2 q' | - ). M. F5 T+ Z& k5 u# }
- (entdel en)5 H& H( v* y! O! H& V7 e. o9 W
- (entmake vl)
1 M1 a& a2 d( Y - (setq blkcnt (1+ blkcnt))
/ s' u1 O' R4 F, ] - ); [1 L* n+ y8 _! ^3 i$ T
- )# h$ p4 \8 Y! S- Z4 T
- )
/ m& E8 o" p/ z6 }6 T
S% A0 c6 m* q* p& ^, j- ;=====================================================================
- d2 Z0 |4 p/ [) A5 R - L2 \* }# c, u( p0 o3 L5 o4 B
- (defun c:xxx ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)# e- f( X Q d! q( C$ G
- ; Khoi dau cua chuong trinh2 L8 ^. f0 p v7 B! J% o
- (princ "\nCopy Inteligent...\n")
. g0 H1 J9 I) H0 \3 s, g - (setq luuecho (getvar "cmdecho")
& I; b( v& U# E+ L - luu *error*
0 q- Z$ M h$ w: ]$ I - *error* ketthuc
2 P1 g0 S! G2 K9 m - cumdt (ssget)+ l4 G6 V( ]& Q! E. q0 L- s( J, G
- dodai (sslength cumdt)8 V0 `* @4 o' V/ ~0 y
- goc (getpoint "\nSelect base point:")
" {' u. @7 V; G- a - thoat nil( P1 ]" d2 X+ q8 \6 Y
- dem 0
3 J q" [9 S$ E# r4 {- P- A - textxl nil
1 S) G: P$ D# M- q - );$ Z7 G( s2 P, Y4 b
- (setvar "cmdecho" 0), U; s1 Y8 v1 c) L, c
- ; Loc ra duoc ong text de xu ly
! s/ v+ c9 _8 H - (while (and (= thoat nil)4 G E- r- [% C& E( ~
- (< dem dodai)/ t" v, d1 _+ b8 Q4 A. L
- )
+ L. ~2 N$ c M/ j - (setq ten (ssname cumdt dem)
& w# K: ]2 N4 A; M - dem (1+ dem)8 o O& S( O; n# _ ?- C
- doituong (entget ten)
+ f i' j) p+ E* a, @) N4 a7 s! L - kieu (cdr (assoc 0 doituong)) 6 d1 p9 R0 w6 }+ k9 e1 L E8 z
- )+ {2 A( f: r* N5 U- o
- 4 E" l2 U1 |; O/ v% A$ d
- (if (or (= kieu "TEXT")/ Q' E5 z) s, U7 l4 ?7 `/ q2 |4 h6 S
- (= kieu "MTEXT")
U/ C$ I ^) F+ W - )# C/ W; o* q; U0 s! h
- (setq thoat T0 [; q' u" s0 [; v
- textxl (cdr (assoc 1 doituong))
5 D9 [$ G; ~0 c/ l, w, n - )
: ]5 G5 _/ N& V* q/ Y) T% t - ): I$ N" s! R7 U* y o
- );( l3 k2 ~2 f# |+ t6 C, c2 P8 G
- (while T
4 }/ s" O- t& V4 d - (setq toi (getpoint "\nSelect next point: " goc) [; h" C) J! E' x! {
- vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))5 T& Z! z! m z$ @4 Q
- dem 0
& G+ b$ K1 u" V& L - )7 P1 l' a' S3 \' U% `1 q- k
- (while (< dem dodai)
3 ?& R6 z, V, y: o! R- [ - (setq ten (ssname cumdt dem)/ _5 u7 i2 v. m. m# T' M
- dem (1+ dem)
R' }) h: ?$ p - doituong (entget ten)
, @- p/ B, m& t+ @% L - kieu (cdr (assoc 0 doituong)) 8 P0 | k7 V2 a. {
- )
( R/ g$ K* {8 |
, a, N/ _9 W* i- (if (or (= kieu "TEXT")
7 p9 L, `8 e1 ^# l - (= kieu "MTEXT")
: e5 j& g u* ]4 K2 M - )' H' [4 w, y" [+ k4 m* `9 p
- (doitext ten)
- w4 y! f& l/ Y( U! I - (copy_dt ten)
0 V" i4 f. d$ o+ G/ j+ |+ Z
" o- o0 e! @, h5 }& h- );if: Z2 n1 N/ }, r2 g
- )
( b$ X% n! P9 g6 b5 v8 N4 _4 r+ [ - );while
5 y% E. d( B- y2 o# t - (ketthuc)
4 l7 Q# G4 a3 @/ u: G - );defun# d/ l E+ c0 m5 ]7 c5 z' ?
- (princ)
" I; e8 m1 l! [ - ( n. y9 G% M T4 c% J4 g
- ;=====================================================================
$ b0 T" n" K! z1 I; t, _$ g - ;;; By Jimmy Bergmark
5 T- Y0 m6 R0 W T9 L2 L" _ - ;;; Copyright (C) 2008 JTB World, All Rights Reserved! O& ^3 j. d& S$ u
- ;;;
. o4 N+ t# |4 b8 w: } - ;;; Created: 2008-03-31
2 {, h6 B6 p ?" o3 @# R+ t. A - ;;;
& [1 x+ `8 E5 e* ?$ h - ;;; Convert Attribute definitions to text' Z( K7 y6 D4 T+ z
- ;;;
* k6 K6 s7 p5 L, W3 f* x - 8 Z, H5 a, L' p _" R
- (defun c:ATT (/ eset1 blkcnt en enlist vl space)9 s) t( E, p' D$ L- z
- (setq eset1 (ssget (list (cons 0 "ATTDEF")))& W% ~9 K% T7 l
- blkcnt 01 i1 y8 U- F8 x, Q! h8 K6 R# c7 f9 A
- )
8 _0 {0 ^( }- d+ } - / H* V" Q4 S H2 v
- (if eset1( Z; y( V& v; @. K5 _* Y9 g
- (while (<= blkcnt (- (sslength eset1) 1))
6 Q# v8 y' y. P/ j7 R( Q8 c) @ - (setq en (ssname eset1 blkcnt)% J. [' u3 |1 V6 ?# Y% }' ]# c/ X
- enlist (entget en)' C. p% P, s0 K2 g+ D; V1 W
- space (cdr (assoc 67 enlist))6 W8 Z) u8 I) `2 O- H
- )
8 B3 V+ r- G/ C - (setq vl (list
" J9 O; o3 i% F+ J - (cons 0 "TEXT")
0 j3 A E7 w0 |- Y - (cons 100 "AcDbEntity")9 Q, r- O9 |& e
- (cons 100 "AcDbText")/ G) @1 P8 M/ o, V) d
- (assoc 7 enlist)# E: v% [6 W; |3 i* o6 X3 h' _8 w
- (assoc 8 enlist)
9 F$ f- O7 y3 W* P7 B | - (assoc 10 enlist)
4 ]1 R3 c3 n3 d+ m9 e8 A6 f - (assoc 40 enlist)7 R& W4 s: P1 `' E4 D1 {
- (cond ((assoc 62 enlist))/ I+ A6 P: k; A' o% ^ T0 A% o& m
- ((cons 62 256))! d0 Q' g% Q- W3 h# n1 x% Z! O
- )2 D" i7 b9 C) q7 A5 y4 M
- (cons 1 (cdr (assoc 2 enlist)))
, B% v# x* x9 q7 l y# b: i( M - (if (= space nil)+ ?; S* l& J7 }8 j3 r
- (cons 67 0)5 g! T# C6 w6 Q& {. E
- (cons 67 space)# Q+ ^+ z% m3 C8 A, d
- )
4 A6 \+ k& j6 `: _0 u - )4 v* V0 k1 h+ }6 y
- )8 R* f J# n4 `( t- z2 M
- (entdel en)
3 B/ R G! a( S% `3 a) m - (entmake vl)
, M, a4 b; O4 z - (setq blkcnt (1+ blkcnt))
4 G$ h# s. x" B1 N. i2 w - )
/ m5 X7 V! {5 `; } - )9 c0 j5 H4 w F' p
- )
5 L- ^" q& y4 P+ j. ? - ;=====================================================================" B1 q0 t" W3 _1 @7 T# Q
- ;============================ Doi Truc ===============================
4 m' l5 r+ [5 }" ?2 L$ t/ K W - ;=====================================================================2 @+ `% r" o4 s4 i- _0 G- y* t
- 3 N2 Y' f- T! J( Q) i) [) ^
- ;=====================================================================
: Y5 m, Q6 {3 U. X' a+ }: |1 { - ;=============== FUNCTIONS GA 1+3+5+7+9+11+13+15+17+19 ===============
! _4 W8 a* K3 q- V# o - ;=====================================================================
) x2 V# |1 S9 m( `/ o4 [ - (defun c:ga1 ()) i* v \) `- r+ U" a- }9 l
- (setq a (getpoint "\nChon diem: "))! E1 e& m! T- J% H/ v( d
- (setq b (getpoint a"\nChon diem: "))0 H" I4 i) Y5 }5 M1 f* f: y
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
5 c: r# V/ n* |! h$ v4 X- Q) k& z - (command ".circle" c a)
/ K1 B. e \$ `) J* o8 i3 {; U - (command ".line" a c "")
9 d/ H8 s3 w/ v* _# K - (command ".array" "last" "" "p" c "1" "" "")0 m/ `; Y1 q& H$ r; ]. I; u
- (princ)); y9 R6 K2 u l0 P& Z& C
- # y4 Y, [ }0 H3 N! z
- (defun c:ga3 ()
. H& s* ^6 m/ y8 ]& L; s - (setq a (getpoint "\nChon diem: "))
0 h& j. k- K: q4 b3 d% d - (setq b (getpoint a"\nChon diem: ")). g7 w# P- |! }) u% W( |6 q/ U
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
. ]" {2 b; o! m* Y( O* M* |: y' c - (command ".circle" c a)# E, S+ n1 P/ ?
- (command ".line" a c "")
E) ]* T3 J( Q5 ?# j7 b* B- n" x - (command ".array" "last" "" "p" c "3" "" "")
" T$ U# g6 t$ A' @, [3 u - (princ))
9 G j; K% D( o7 E" O R) z* q/ i v - 0 D% M* y9 H5 F, p B* U
- (defun c:ga5 (); |. H* u2 y1 a+ d7 W$ ]+ E
- (setq a (getpoint "\nChon diem: "))
8 ~% i) y& W% S/ @5 s5 M8 b - (setq b (getpoint a"\nChon diem: "))
: n6 S5 z% S" |: M, L8 T - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
0 {! b/ b. J' l Q - (command ".circle" c a)- t9 p7 r( q3 n1 C! k7 l
- (command ".line" a c "")4 O& [8 t B& ]7 ?0 E4 u N
- (command ".array" "last" "" "p" c "5" "" "")
5 r4 n& ^: G7 v5 l" ? - (princ))
6 D- Z4 B( E; W; ~+ { - 1 ~8 S7 ~7 g. P' D& w5 l/ i/ B7 H
- (defun c:ga7 ()4 j# V- E" d5 u
- (setq a (getpoint "\nChon diem: "))/ B/ }+ ~' o9 N `& L0 Q Q! g
- (setq b (getpoint a"\nChon diem: "))
* V- y3 p" t. g' J8 s$ A - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))- w+ m8 b1 C& G x5 ^
- (command ".circle" c a)
, X! l, C" f- C+ w, l, { - (command ".line" a c "")
% \+ a4 t! d9 k) z' f' i9 H# d - (command ".array" "last" "" "p" c "7" "" "")
) m( B- s4 }1 y4 m - (princ))9 M. x* D( I* J& u$ `
- \' ?. J. o6 Y8 [6 q- U' @! M- (defun c:ga9 ()
; F2 J( f* s2 w$ g" z Q) S4 y - (setq a (getpoint "\nChon diem: "))4 e& t# ]* j4 ~9 k
- (setq b (getpoint a"\nChon diem: "))
: J: x* S& S9 w N - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
+ @, [5 A) P2 F% B$ C - (command ".circle" c a)' r( q) `0 [- {! T! \0 G8 [/ C
- (command ".line" a c "")% t9 F$ K' Q" e4 s1 |/ \) X& @! B. t q
- (command ".array" "last" "" "p" c "9" "" "")
- o. A. @' ~. c+ x& \% S- H - (princ))
# e$ R: G* ?1 |! L - : y7 D& _+ b c$ a6 j
- (defun c:ga11 ()
& _/ n* y6 O, p, R f6 F e$ S" `) W( _ - (setq a (getpoint "\nChon diem: ")). f; f& @( Z5 M$ w3 |5 y
- (setq b (getpoint a"\nChon diem: "))
4 Z- G O: `, q - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
. E/ U* Y! Y8 x( P - (command ".circle" c a)
; L: ~. |8 B- P8 R - (command ".line" a c "")
6 v, N' D$ v, N/ D: K: U - (command ".array" "last" "" "p" c "11" "" ""), T' B/ T. u) K: ?8 R5 e4 u
- (princ))
2 K% b, j9 ]3 g; @0 r6 x# x! K - % F, S9 t' Y6 F8 d# E; }
- (defun c:ga13 ()3 [) V" y @% [# H
- (setq a (getpoint "\nChon diem: "))
$ O" a4 Y" O8 l# C) V - (setq b (getpoint a"\nChon diem: "))
4 y# G# T: y: ^! U+ J - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))2 L- d/ t8 r4 I
- (command ".circle" c a), p- d: M6 D, Y- Y
- (command ".line" a c "")0 h7 c# D) x% e8 C8 |
- (command ".array" "last" "" "p" c "13" "" "")
' ~) ~6 q$ F9 \0 ^" i8 t - (princ))/ [- P3 Z8 V; G) `& _& j- b
; n; C" G+ e# F- (defun c:ga15 ()
" p5 v, ~+ X8 X. Y0 f9 [+ C - (setq a (getpoint "\nChon diem: "))
4 q+ q* G) @% _2 n; ]1 i+ b4 _ - (setq b (getpoint a"\nChon diem: "))
2 J' `5 j! p+ M - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
6 |, E: C# L: D0 Q* Q* r9 V @ - (command ".circle" c a)4 n/ ]6 E0 M& t! G/ Z. k0 \
- (command ".line" a c "")3 r* I6 n0 ] W" j- l$ G: N
- (command ".array" "last" "" "p" c "15" "" "")' N! ~3 d2 O) T! H4 \
- (princ))4 z& e+ O3 b6 K: u
5 A0 O; n4 f2 D% H3 U: {- (defun c:ga17 ()
( K- i3 }- j+ R+ W - (setq a (getpoint "\nChon diem: "))
) | M9 B+ u9 i8 S" _ - (setq b (getpoint a"\nChon diem: "))
( l' G/ E. b% R( ]1 _, Y( e - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))); J" h* `0 Z, V. M% z9 r; c
- (command ".circle" c a)* g( G4 `( g5 [7 z
- (command ".line" a c "")
/ i( \3 U6 {6 h {5 E - (command ".array" "last" "" "p" c "17" "" "")% [) a& L0 x G! ^
- (princ))
5 e; V* J! M2 Q! J ]- D
) B) k% _3 l8 r8 q0 d- (defun c:ga19 ()
9 Y& e( m# E. [% A1 b) S t - (setq a (getpoint "\nChon diem: "))4 x* _! K7 j9 n. e* O& Q
- (setq b (getpoint a"\nChon diem: ")): {) M2 n+ D8 F2 y" L( {4 C, N& V. _
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
: \% G* w+ a, l0 W7 M - (command ".circle" c a)
+ I* P( @7 c {/ `( H& Z" Y- L5 g - (command ".line" a c "")
8 t o( P* |: O/ } B4 ? B' a - (command ".array" "last" "" "p" c "19" "" "")
/ i+ \ k2 H0 i% S - (princ))
2 h1 _; I9 a8 W7 M U" G8 g3 f - ' i: B# i5 G; B2 n
- ;=====================================================================
# V- Y9 f" K& @ - ;============== FUNCTIONS GA 2+4+6+8+10+12+14+16+18+20 ===============1 u* n1 b# _# q4 s
- ;=====================================================================
, \7 p: s. U+ o4 ~ - (defun c:ga2 ()
/ B. R1 o6 M" N! e& ~ - (setq a (getpoint "\nChon diem: "))1 R( Q1 S1 K/ Q# E2 b
- (setq b (getpoint a"\nChon diem: "))
" q: I9 c' T2 | - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))! S) F( b; b- `3 j) i/ s
- (command ".line" a c "")0 `4 P& I' a- g/ a
- (command ".array" "last" "" "p" c "2" "" "")* M9 K6 S+ Z" S0 @+ }% N# Y8 X
- (command ".circle" c a)5 _+ W4 e7 `6 X: M2 x/ e
- (princ))
$ M* ]& f. G2 M" B2 A" r% t/ y - 3 C( K: I+ F o7 Z! f
- (defun c:ga4 () {+ Z. _5 g' I W7 \% t0 O
- (setq a (getpoint "\nChon diem: "))% W2 G$ }( u2 G0 c/ W
- (setq b (getpoint a"\nChon diem: "))
9 `1 Q8 Y8 p L6 m1 P. `: H - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))0 Z2 h# |; ^* k* {+ B6 x1 ] ?4 {
- (command ".line" a c "")% k8 V9 Q) u9 n6 D" R; r9 }- d
- (command ".array" "last" "" "p" c "4" "" "")% L: x8 b) P' F& p1 S5 M
- (command ".circle" c a)& J9 v' r w& Y5 Z
- (princ)), z6 s# @9 X1 W8 o
' N# P' C. [" u/ T$ c- (defun c:ga6 ()
; x$ b$ m7 v) V r% D7 R - (setq a (getpoint "\nChon diem: ")). m3 V9 q# x3 u5 ^
- (setq b (getpoint a"\nChon diem: "))
% V7 Z& G& u& T" g6 n0 `* d - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))& N$ t' Q) I6 i$ f0 R$ R
- (command ".line" a c "")
' g* A, A" v2 w" Q - (command ".array" "last" "" "p" c "6" "" ""): K6 \4 F: d, n: b! g) v- a$ b/ F
- (command ".circle" c a)" P" _' B3 ^' E& Z/ W9 X; F3 _
- (princ))8 V$ a; U6 @0 N- d
; f0 k# N0 t! j( F3 M6 q' e- (defun c:ga8 ()& \3 n% Q/ O. G! R6 z# y8 n
- (setq a (getpoint "\nChon diem: "))' ^. _4 H0 T6 [
- (setq b (getpoint a"\nChon diem: "))
) M; s4 E2 s0 T3 r! g - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
7 O8 ~- D3 S* K( o - (command ".line" a c "")
2 D- l D$ s, [' t - (command ".array" "last" "" "p" c "8" "" "")
4 g. e& F& c8 L' b7 o" k- b3 F - (command ".circle" c a)) ^7 t# ^/ \$ S' J, j' o
- (princ))
- l1 M$ ]* O z
0 D: i& l! R6 h0 o- (defun c:ga10 ()
# i: {" \* o* d7 C' j% ] - (setq a (getpoint "\nChon diem: "))
) S( @, x, D+ A1 j N- z6 B - (setq b (getpoint a"\nChon diem: "))% O9 ^1 S, A# K1 j* Z
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
# N. O+ D0 p1 R, V: G+ }/ S - (command ".line" a c ""); d, F9 F8 E4 Z6 F" m1 m2 ^
- (command ".array" "last" "" "p" c "10" "" "")
* P( r9 X( x( U5 c5 |0 A2 q9 g# l! l - (command ".circle" c a)
: ]2 ^/ T1 T6 J K0 Q* l - (princ))
: O' `& U) t) V2 f- a
) s n9 M& x, q8 m: k1 O! N/ N- (defun c:ga12 ()
0 I7 [2 b! }/ Z - (setq a (getpoint "\nChon diem: "))
' v4 K$ R" I- j$ c* V; q- w1 G - (setq b (getpoint a"\nChon diem: "))) ?$ k( E9 X% Y2 _0 |/ f: L
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
' e+ R8 Z# `) n/ K5 }( ^ - (command ".line" a c "")
. O9 a' l( t+ p- d( q: f8 M - (command ".array" "last" "" "p" c "12" "" "")6 w& ] B7 w* C9 b& B
- (command ".circle" c a)3 j- ^4 ~$ V5 u' M( }
- (princ))
( v2 Z! l0 w6 q5 X3 O; Y. W7 C - 5 K, O. h% ^4 T; s8 X( M2 Z# V* X
- (defun c:ga14 ()
( n S" |1 I- |& P3 x1 k; l - (setq a (getpoint "\nChon diem: "))
! k4 w% ~2 j8 F- s }: d - (setq b (getpoint a"\nChon diem: "))" h' h" Z9 C9 n8 J
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))9 F( _9 v, [) V4 X t% U; v) U
- (command ".line" a c "")
2 T5 F" @4 V' X e1 @% E - (command ".array" "last" "" "p" c "14" "" "")
1 U; e) I7 W& z" |2 r5 a- w: x4 z" h - (command ".circle" c a)/ d; w6 i0 a! k. \# u( q7 C( p& _
- (princ))" T0 Z6 x ?$ L* j! q; ]
- 4 R) C% g" G% i1 ~9 K
- (defun c:ga16 ()
( Y6 _6 Y4 ~2 @; Q: J - (setq a (getpoint "\nChon diem: "))! O! f) x* Z) Z& Y% j( i
- (setq b (getpoint a"\nChon diem: ")) |$ J. @. N/ G- p4 @; f
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))8 f) s2 \: k2 u5 @4 M
- (command ".line" a c "")
8 a2 h/ N& R% N, W h - (command ".array" "last" "" "p" c "16" "" "")
. \4 M7 L$ b0 S$ F. S2 j - (command ".circle" c a)! F3 n# O( ?( I* Z1 r
- (princ))
7 B/ f( p- {( l& u8 p u8 t u/ M
. S' K! {/ r( ?+ E$ l- (defun c:ga18 ()' r* p# Z4 z% r; j" @# V k
- (setq a (getpoint "\nChon diem: "))
8 C! Y8 ^: c0 t2 O" ], ?# D7 n4 w - (setq b (getpoint a"\nChon diem: "))& Q U3 A5 Z" g6 R2 P; F
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))), K. R% v6 \* k3 j5 @/ E
- (command ".line" a c "")
. W4 B3 ?+ L q4 o, ?; Z% Q' n - (command ".array" "last" "" "p" c "18" "" "")
! {9 c% l: E O# P7 ]1 v m$ w - (command ".circle" c a)3 [+ W8 O9 I, W" k% R
- (princ))$ U7 A/ P6 e" J% J8 r( d! i# K
; _; c c' y! D2 u! P- (defun c:ga20 ()" m+ P, @0 f5 w) {
- (setq a (getpoint "\nChon diem: "))
% x f4 Y* t' ` - (setq b (getpoint a"\nChon diem: "))/ K7 \; { G4 t, H* R
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))6 c$ ~8 d0 g' T. P8 B2 q
- (command ".line" a c "")
, x; r3 L3 }0 a4 E3 ]& ~ - (command ".array" "last" "" "p" c "20" "" "")
9 Z6 m' _* S4 o5 g& w - (command ".circle" c a)) _' Z7 @6 D$ r7 e. \/ r" P4 z8 A
- (princ))/ y6 W4 \; _6 _
5 V$ _) a7 J/ ^1 p* W. ] w& k6 d- ;=====================================================================
, M2 Q8 @" V- y$ a+ _* v1 R7 p - ;============== FUNCTIONS GA TUY THICH : EVERYTHING IF ===============, l6 |3 s7 Y- P: U4 X; C
- ;========================== 06-11-2016 ~ 18h00 =======================
/ R9 w0 j3 n7 x: G& S. {6 A - ;=====================================================================: E& y: |$ r' L. b
- (defun c:ga ()
/ ~7 o7 Q E" d' t( K - (setq a (getpoint "\nChon diem: ")) J3 Z. @: ]9 ~7 B4 k
- (setq b (getpoint a"\nChon diem: "))5 ?+ g! Y) d% I- D+ o- x
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))5 s) x) K# }- @! X3 w
- (command ".circle" c a)5 F W6 H. r2 A
- (command ".line" a c "")0 j% W7 M3 y0 c' ]
- (command ".array" "last" "" "p" c "NUM" "" "")
; A, m, a# x- A& ^+ T' G - (princ))
% v* e" O9 U g8 D6 ?6 q% P - # S' k5 P+ A% d2 o+ Y
- ;=====================================================================) q% {- g" X6 ^" ^& @1 E% |# ^2 R. ^
- ;=========== FUNCTIONS HOA THI TUY THICH : EVERYTHING IF =============& a' d/ t: W1 I3 W* o$ y! a [
- ;========================== 06-11-2016 ~ 18h40 =======================
6 r) K& Q1 w: P7 g - ;=====================================================================
6 U9 x9 r0 e, x' n0 |- k2 V+ J
& w! s. G* \; m& G- (defun c:hoathi ()
9 f5 I$ W& g# A - (setq a (getpoint "\nChon diem: "))
+ y: V1 A5 G5 Y! l. Y - (setq b (getpoint a"\nChon diem: "))
* ^ v- x8 a3 N/ p/ n - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))% b5 ~) T z. @# ^7 q+ D& D
- (command ".line" a c "")& k. T# H0 ~: t3 m& ~& x1 b+ u4 i
- (command ".array" "last" "" "p" c "NUM" "" "")
R. z* u0 ^# P0 T - (princ))5 b5 M1 M. s6 O/ k9 `! W; U2 x
% l' R) A& U3 k- ;=====================================================================% ?+ N8 p6 B+ c( ?: u, S, ?
- ;============= FUNCTIONS CUNG TUY THICH : EVERYTHING IF ==============* R9 ^' ]! x3 M2 o+ v+ r
- ;========================== 03-11-2024 ~ 19h33 =======================
, _* B3 u# ? I, S8 k* q - ;=====================================================================/ w; z( ^( o& z+ h/ w$ p9 ^
7 s3 j9 _8 ~8 r' o$ j- (defun c:cung ()
+ `. \# a+ O* _ k6 _ - (setq a (getpoint "\nChon diem: "))
8 s$ V2 D. Z0 U) Z* z2 D" L - (setq b (getpoint a"\nChon diem: "))
5 t$ Y0 j2 m _2 g- O1 c - (setq c (getpoint a"\nChon diem: "))8 Y6 c: U6 \. J7 b) ~$ K. d
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))5 X. X+ G% j$ t8 W
- (command ".arc" a b c ""); D4 v6 _) v7 q+ g0 W/ W' x4 A
- (command ".array" "last" "" "p" c "NUM" "" "")$ s/ W2 [9 w( r' ^4 Q S% q8 F+ z
- (princ))
8 y- Z0 e% H8 J2 k$ `% a+ P. v
' _/ m- f3 c- v4 h- m- ;=====================================================================9 }# i2 J% u' X) c
- ;============ FUNCTIONS HECLOIC TUY THICH : EVERYTHING IF ============( P: q# ]8 Q3 g# ^9 v
- ;========================== 03-11-2024 ~ 20h02 =======================7 P7 `& I2 n( \" q/ r1 [$ i
- ;=====================================================================! w/ H, a6 ~$ }0 h5 x3 P! x4 l+ E
) M; E" b- ^5 x8 A, S- (defun c:hecloic ()6 k" @2 a6 g' O
- (setq a (getpoint "\nChon diem: "))
+ J, J$ K% k# W% { - (setq b (getpoint a"\nChon diem: multi "))
+ P E0 C8 G+ `8 T# ` - (setq c (getpoint a"\nChon diem: "))(princ)
7 @ U& H. J8 m' b( M! q - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))& w3 u* _4 a* A `3 L9 ~- r( l4 g, Y; l3 ]( P
- (command ".arc" a b c "")* h F% k- _ H$ V
- (command ".array" "last" "" "p" c "NUM" "" "")/ G. q8 o2 \% f
- (princ))6 v: h7 m |5 Z6 q
- r1 k, [2 `) ?- ;=====================================================================
( }( |% G, y4 f* D - ;============== FUNCTIONS GAY TUY THICH : EVERYTHING IF ==============
/ f+ T/ w( U1 [# q/ G! s - ;========================== 03-11-2024 ~ 19h38 =======================1 E1 Q0 d. W% j9 U" w/ S% y1 x
- ;=====================================================================
7 {( f' E" y" q& ?4 I1 V6 u' E - " I+ H2 F0 @( Y# q" O
- (defun c:gay ()
9 k+ s6 C% E' ]* A5 r! F! ]# h - (setq a (getpoint "\nChon diem: "))
: x0 `; ]/ k/ z3 [7 S, L/ L9 p8 U2 \) | - (setq b (getpoint a"\nChon diem: "))7 O; z |9 g& t! K; m- c @$ X
- (setq c (getpoint a"\nChon diem: "))(princ)
0 { ~0 H& t/ w; m) A; | - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))5 z, [8 H) }9 V
- (command ".pline" a b c "")
2 o& z, F5 P; r. j4 s) z - (command ".array" "last" "" "p" c "NUM" "" "")
& ?- | N. L. q# }* B8 s, S8 } - (princ))1 h; K+ q+ y7 x
- 5 \7 `$ z6 R6 K! d9 @4 w( u
- ;=====================================================================* D5 S9 S/ u- j7 H$ b% L( r+ b) h
- ;============ FUNCTIONS HECLOIT TUY THICH : EVERYTHING IF ============1 M0 `) k" D. K
- ;========================== 03-11-2024 ~ 20h02 ======================= h( D9 u" Y, v u+ M: s( v' I
- ;=====================================================================
. R: R) H# ~4 S: y - n! ]2 d- j. [
- (defun c:hecloit () k% E6 ^% |/ t5 \$ t
- (setq a (getpoint "\nChon diem: "))( g8 l# \2 I' g( o, h+ e' ~
- (setq b (getpoint a"\nChon diem: multi "))4 b) i3 o! l& i9 K/ [ ^6 l# l/ F/ {
- (setq c (getpoint a"\nChon diem: "))(princ)
3 d- i* q d& X# J - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
) a4 k8 N7 D' D; b - (command ".pline" a b c "")
. z( u% w/ M& f4 c q( O& X - (command ".array" "last" "" "p" c "NUM" "" "")7 d' s/ a$ K8 o# X% z
- (princ))7 Y. m+ S" E4 Q2 r! l+ B
" U2 F" s& }8 r
/ X( S3 G7 \! a9 v! u- ;;; ============================ Merge Hatch =============================' f1 H" D0 }6 m( { K. J
- 8 d. E# a8 K( m' a4 H: @5 p$ _( U+ P
- (defun c:mh (/ ss entht sl i dt dtht)
% v1 b/ Z+ J% V" K - % o% K2 q5 r. f/ ~ s+ v3 d4 d3 r
- (princ "\nMerge Hatch - free lisp from CADViet.com")
9 B3 h0 _3 s8 Y6 I; c
( A' r( ]+ O y! [7 x4 q- (setq
8 c( m5 u: W( Z8 x. B9 P% A1 E- x - ss (ssget '((0 . "HATCH")))+ Y) C. K) v. k
- sl (if ss
$ X# u* ?& e( q. k$ R - (sslength ss)" s! e/ r0 f. n& o4 W" c
- 0
( J& ]8 O2 H) x( F) _9 d - )6 B3 e! C v6 T0 {0 P% U5 v
- i 0
- S$ F4 T5 j2 x' N) ` - l 0
8 ~% ]& B% d& U5 ^0 \: p - )
" t9 v2 U* Y9 b2 }7 v ^& M - ; d% t S j$ u0 d, Z+ t' I9 {- c
- (repeat sl
# h1 c: s+ R- l& S# ]) @. g - (setq
1 z; J5 E& R! T6 C. @5 K - entht (ssname ss i)8 Y# o! j& r; t
- dtht (getbdata entht)0 e/ s- d) d8 \1 G. o
- dt (append dt dtht); B0 k' {! Y" C# N1 b
- l (+ l (cdr (assoc 91 (entget entht))))
) f* I* K4 K6 N& ]% v2 n - i (1+ i)
6 \- P0 n0 Q8 }( Q6 E! a+ [ - )- C9 b) e+ R0 ~$ g8 b
- )9 Z0 S9 W1 q; d( }$ ~3 x
- # P& e8 g1 g7 ^, E3 S3 y
- (setq ent (ssname ss 0)7 g3 g9 e% g# A$ h
- ss (ssdel ent ss)) C* Y, f1 R$ s( }. n3 l7 g
- tt (entget ent) v+ {+ o* m: K ]) s% S
- duoi (member (assoc 75 tt) tt)
4 ]4 x- d! [3 @" K8 ` - dau (reverse (member (assoc 91 tt) (reverse tt)))' [0 n: E. E/ V; {
- tt (append dau dt duoi)+ f0 b! b; y$ Q
- tt (subst (cons 91 l) (assoc 91 tt) tt)
# G4 E) @0 Y9 G; @( i- c - )
( D- N' H6 j' X, ? - (entmod tt)3 V+ u4 B8 j" b6 y' U% R
' I# n+ p% k: b& T9 ^- (command ".erase" ss ""): {- z6 k# `: G0 R/ ?
- (princ)
4 T2 [9 B4 m# Z6 s - )
; p+ ]% E0 I$ g: x6 o9 y" T1 s
* }7 w9 B ^4 j! m. I, c- (defun getbdata (ent)
! e {5 S# i7 O" C1 `6 P - (setq tt (entget ent) \8 _1 V/ j/ { Y
- tt (cdr (member (assoc 75 tt) (reverse tt)))
' H0 i6 t4 [0 j9 @, }+ ] - tt (cdr (member (assoc 91 tt) (reverse tt)))
" n9 A5 ]- _# n0 r - )9 V& ^# C5 n0 ^ b' f* R
- )
6 e( S# e- R" v! ` i G+ F - # C. h$ p l! a- U( s
- 1 R7 c2 s9 ] S% j& M1 d; Z
- (princ)
1 S. [$ B2 W: ]# ^9 o' L7 w: H* u
8 p: S2 F* r- a6 T( ?7 c# {- ;;; =========================== CAC LENH LAYER ==============================* |2 t" A* w) Y: H/ h; k: K4 s! g
- ;;; =========================== Layer hien hanh =============================
/ }: c% w& q: {2 t4 \4 ?. \3 V* A7 Z' c( `
6 W7 K) {+ r- \' V; A) l) N- S- (defun layset (/ LAY) (setvar "cmdecho" 0)
; i/ W# Y7 Y& T9 n) k - (setq LAY (entsel "\nPick vao doi tuong muon Layer hien hanh la Layer cua doi tuong do : "))8 u, ^1 r1 v+ ?0 g2 ^ J# H
- (if LAY (progn
( |- F/ t+ L3 H6 E2 | - (setq LAY (cdr (assoc 8 (entget (car LAY)))))! w4 K5 r0 @% g0 R
- (command "_.layer" "set" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) )
* I) S+ _- a; r8 y/ p - (progn
6 G8 J& g* h( \! P5 r/ V4 C - (if (not ddlop) (load "ddlop")) (if (setq LAY (ddlop))
/ d A6 n9 }5 ~; s9 }% b' P' k - (progn, f! s" P- P* G5 S9 |, V
- (command "_.LAYER" "ON" LAY "THAW" LAY "SET" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ) ) ) )(princ) )
* H7 U7 ^3 Q* p' i0 x' {0 N( r, G0 j - (defun c:LLL () (layset))(defun c:LAYSET () (layset))( D7 W; M- p1 k b4 o4 |* d
$ Z2 o b# e% B- ;;; ================== Cap nhat doi tuong vao layer hien hanh ==================
2 U# e4 X9 c! X; L" v - 5 Q% Z9 h& a6 c H5 I0 m) E& e' ?+ J
- (Defun LAYCUR (/ SS CNT LAY) (setvar "cmdecho" 0)
4 Z0 e! Y2 }! y& G7 j/ M - (if (not (setq SS (ssget "i")))7 a7 M0 A& G( o% ^
- (progn (prompt "\nChon doi tuong cap nhat vao layer hien hanh: ")2 u; x$ k, c* P
- (setq SS (ssget)) ) )
8 v5 n1 c5 V# t0 r D2 ` - (if SS (progn
. R0 s8 S5 \8 |& O8 G0 w2 x - (setq CNT (sslength SS)) (princ (strcat "\n" (itoa CNT) " doi tuong tim thay.")) (command "_.move" SS "") 3 ^. a& k+ t( }7 i; ^
- (if (> (getvar "cmdactive") 0)
: r( y8 L& ]( m. W( @; y/ d - (progn$ N# m0 I6 q: r" q5 x% p" y' g
- (command "0,0" "0,0") (setq SS (ssget "p") CNT (- CNT (sslength SS)) ) )
' ?' B, D2 i$ {( j, O8 m; a* W - (setq SS nil) ) (if (> CNT 0)
# n2 Y# _$ L# }. r( `- M, g6 W# p - (princ (strcat "\n" (itoa CNT) " doi tuong tren layer LOCK.")) ) ) )+ ?% T; u9 S: {" i# n9 Y/ [
- (if SS (progn
( e' l* n2 ]0 C# ` - (setq LAY (getvar "CLAYER")) (command "_.chprop" SS "" "_la" LAY "")% @& s8 I8 V: |8 w+ u# y. ?5 S
- (if (= (sslength SS) 1)' ~/ n: z7 Z, W( o& o5 V/ O
- (prompt (strcat "\n1 doi tuong da cap nhat vao layer : " LAY " (layer hien hanh)."))
; q3 \6 U& b# I) o& [ - (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")) ) )) (princ) );end
" k$ Y( S7 O6 I0 S) R& X/ [ - (defun c:LAYCUR () (laycur)) (defun c:LHH () (laycur))
- T; W- A. s0 O7 S5 r3 u) O. R" @ - 0 b3 s; G9 s7 `1 ]
- ;;; =========================== Layer Iso ===================================$ I) ]( h/ }7 ]& H: X
6 e. v: Z6 }. @- (Defun LAYISO (/ SS CNT LAY LAYLST VAL) (setvar "cmdecho" 0)
0 H! S7 ~' q0 O* n* k; P5 z3 p T6 S - (if (not (setq SS (ssget "i"))) (progn
5 r. a* R$ U4 [, v1 M$ \6 \ - (prompt "\nChon doi tuong tren layer(s) muon lam viec doc lap: ")
: F1 N( r0 F% K8 y( Z _" G" q - (setq SS (ssget)) ) )2 p4 C- K2 i8 B1 q
- (if SS (progn (setq CNT 0)
4 i) z; {. A3 Z - (while (setq LAY (ssname SS CNT))
5 `/ a0 @) w$ H9 H - (setq LAY (cdr (assoc 8 (entget LAY))))
; B2 m! o, T3 m |# i$ s H8 {( B - (if (not (member LAY LAYLST))& E- F! J& [! g$ d/ E+ w0 H
- (setq LAYLST (cons LAY LAYLST)) )
8 p% Y, W6 r u6 l7 Z - (setq CNT (1+ CNT)) )1 r" x- U% i% @. d/ b
- (if (member (getvar "CLAYER") LAYLST)
g* Z+ v( b! b; [3 S1 q - (setq LAY (getvar "CLAYER"))
. @ L8 b# f, u* d& b - (setvar "CLAYER" (setq LAY (last LAYLST))) )$ ^: e& }3 B7 O- \/ |) F- @$ O4 Y5 ?
- (command "_.LAYER" "_OFF" "*" "_Y")# C1 y& I5 T& h* A q" X T
- (foreach VAL LAYLST (command "_ON" VAL))% `# J2 V3 g& J- g2 j) R, l
- (command "") (if (= (length LAYLST) 1)
0 u- a) b9 D: ^8 F - (prompt (strcat "\nLayer " (car LAYLST) " da tach ra."))3 M/ k* ^& Q' r' E
- (prompt (strcat "\n" (itoa (length LAYLST)) " layers da tach ra. "
7 a" i# e+ c1 i9 s) z0 K5 a - "Layer " LAY " la hien hanh." ) ) ) ) ) (princ) ): _% o" _% C# G9 L7 M) B
- (defun c:LAYISO () (layiso)) (defun c:LI () (layiso))' _+ s7 K# b& { V
- " N, o9 e$ A, u' ]* K
- ;;; ========================= Layer Match ==================================5 Q5 n( W: E7 B1 E, c; {
5 U# s- ]$ m8 P1 g( v- (Defun LAYMCH (/ SS CNT LOOP LAY ANS)5 ]% H/ V& ^# h/ J- Q) G
- (setvar "cmdecho" 0)
3 O" Z) m8 [; O1 A4 k J- ? - (if (not (setq SS (ssget "i"))) (progn
( W- h1 ]6 V2 V B$ D5 | - (prompt "\nChon doi tuong muon thay doi Layer : ")
. w1 L4 ]/ p; [2 x$ |( L - (setq SS (ssget)) ) )- r& R, |; O) e4 K+ y
- (if SS (progn
& ~3 i( d3 b, I; N2 t& m- A7 r: F - (setq CNT (sslength SS))/ |) @- l" s! R- [' E: ~, Z+ z
- (princ (strcat "\n" (itoa CNT) " found.")) (command "_.move" SS "")
& s& K* `+ n" X( L - (if (> (getvar "cmdactive") 0) (progn
4 x1 ^- y0 a" C0 z$ x% u3 h - (command "0,0" "0,0") (setq SS (ssget "p")
) }& W7 w0 Z4 N" ^* i+ q# j - CNT (- CNT (sslength SS)) ) )9 S) e$ ]' g3 N7 `, |
- (setq SS nil) ) (if (> CNT 0) 4 t) r8 l/ a( @3 L; @2 H7 G/ K$ S1 E
- (princ (strcat "\n" (itoa CNT) " tren layer LOCK.")) ) ) )
' C/ m& x2 B8 E+ f+ \ - (if SS (progn
+ y" |0 U* N8 n! c" o9 l - (initget "Ten") (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ") LOOP T )
/ e9 l8 `" ]& F( k/ X - (while LOOP (cond
$ f' C1 v9 O, s: F - ((not LAY)
5 X% o3 A3 S# ]0 w0 _9 x - (prompt "\nKhong chon doi tuong.")" l, o- y. j- }3 q9 B* S
- (prompt "\nSu dung layer hien hanh? <Y> "); g6 l) F5 n* t
- (setq ANS (strcase (getstring)))
! z7 _# r/ W. g8 C) n$ a - (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
' [3 |' Z6 F0 ?- i* Q - (setq LAY (getvar "clayer") LOOP nil ) ) ), ~8 f0 d' t/ q% C# `- ~) K: D
- ((listp LAY) (setq LOOP nil) )6 u7 I& u- w) _# R
- ((= LAY "Ten"), s/ ~0 X+ W. ~2 c% B7 X
- (setq LAY (getstring "\n>Nhap ten layer: "))( @0 w" t R% Q
- (cond
6 i4 p/ |7 S) H) ]2 [; l/ X - ((tblsearch "LAYER" LAY) (setq LOOP nil) )
' N' r) X7 m7 T# e - ((/= LAY "")
/ Z5 w1 h0 H$ z% v3 f( p S - (prompt "\nLayer chua co trong ban ve. Tao layer moi? <Y>: ")
0 p$ F' ^# K8 R0 P1 W! D( k - (setq ANS (strcase (getstring)))7 S, [; ~5 i2 y: P9 v6 B
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
8 J4 M$ _& ?; W! |& ]4 O; ~ - (progn! h* m( U6 F1 B1 w' B
- (command "_.LAYER" "NEW" LAY "")
# |$ C9 P7 ^8 Y0 ?' j4 v$ h% t6 C4 a7 X - (setq LOOP nil) )
. h- I! s% A) z5 W1 R" O# i; I0 b - (prompt "\nLoi ten layer.") ) ) ) ) )" A: F' x* G0 {/ K& Q+ n! l
- (if LOOP (progn (initget "Ten")- }1 ?, B9 E2 t3 W# I! C5 O$ W
- (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ")) ) ) ); while LOOP+ O7 p6 z4 S' _% F" c& h
- (if (listp LAY)1 ?& n" d/ x, H% S- C9 o, u* y
- (setq LAY (cdr (assoc 8 (entget (car LAY))))) )
+ @6 e: x: c: v! \ - (command "_.chprop" SS "" "_la" LAY "")
" A/ k. j# y4 A' f+ I& x - (if SS (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong thay doi toi layer " LAY )) )7 A( v& F' d4 Y, f
- (if (= LAY (getvar "clayer"))
' h; y' g; ~! q6 T - (prompt " (layer hien hanh).") (prompt ".") ) ) ) (princ) )
! O3 j! o/ E& l+ h, H: G6 y - (defun c:LAYMCH () (laymch)) (defun c:CLL () (laymch))
* i+ Y1 _5 B% R9 u3 Z4 x
+ A# H9 o- b0 {* m! g9 J* P# m- ;;; ============================ Layer OFF =================================
( Q1 B7 U% d2 f3 q& m4 ?, \
1 b2 W( R/ y0 l2 {1 O% n- (DEFUN C:LJ (/ SSET SSL ENT LAY I MODE)
: c5 @1 g! U( J0 u v( K7 G" J9 R - (SETQ SSET (SSGET))" r0 T; g' t$ F5 |* v1 K
- (IF (/= NIL SSET) : M6 B+ P e; L/ m: [4 e( [
- (PROGN* c# Y. s1 @% {) \" X$ }
- (SETQ SSL (SSLENGTH SSET))7 s- J3 w& T& G
- (SETQ LAY "")
( x) O3 B' t/ V& \9 U - (SETQ I 0), }; ~, d9 ?0 ?, H' r
- (SETQ MODE 0) / n( c$ R% M: Y" \% S% f
- (WHILE (< I SSL)
, t3 p" Z, R* x& W$ q - (SETQ ENT (ENTGET (SSNAME SSET I)))/ P z C' a5 z% c; X: h- p
- (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )4 i6 V" [* i, z' n9 ^0 |
- (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) ))+ j- {/ a+ s, V2 g( L+ H
- (SETQ I (+ I 1))
" x) e( `/ v, Z3 T$ T" r - )
) e9 e- j& [5 g' ]+ t - (COMMAND "LAYER" "OFF" LAY "")
7 F5 Z9 k2 j% e- Q3 _ - (IF (= MODE 1) (COMMAND "") )
7 k! h' y- r) \: h4 G - )
3 n) |( V6 o1 u" q+ R5 r - )1 s* m7 U0 t8 R: C( ]* j+ t
- (PRINC)) Q" Z* x) @! f; |. ] }( o
- ); L4 L4 ]' v/ E6 {5 q+ A& S
- 2 |- W2 z' f) ]0 }/ q2 v
- ;;; ================================ Layer ON ==============================
6 L/ d/ T1 \( F P0 R8 x+ K
' z) i: [, l) g; H6 [- (Defun LAYON () (setvar "cmdecho" 0)
1 P' ?+ {: J; u$ [% x - (setq Lay loff1) (setq Loff1 Loff2) (setq Loff2 Loff3) (setq Loff3 Loff4) (setq Loff4 Loff5) (setq Loff5 Loff6) (setq Loff6 "0")% p- g0 D4 c7 c
- (Command "LAYER" "ON" Lay "") (princ (strcat "\n Layer : " LAY " da ON.")) (princ)): D# \2 y' a1 I$ P
- (defun c:LAYON () (layon)) (defun c:LOO () (layon)); s$ m* A2 J' E" u. w& @2 g
- (Defun C:LO () (setvar "cmdecho" 0) (Command "_.LAYER" "_ON" "*" "") (princ "\nDa ON toan bo cac Layer !") (princ))# s: X: F& f4 g9 e. D
$ @+ Z5 D9 L \, H4 L) L# w g" `- ;;; ============================== Layer Freeze ===========================
3 B4 M7 S2 B! E. [$ P7 n( M - ; g/ \1 s; ^& L7 y4 x# R5 D
- (Defun LAYFRZ (/ LAY TEMP)(setvar "cmdecho" 0)
# p6 w; I7 L* v - (prompt "\nChon doi tuong tren layer(s) muon FREEZE: ") (SETQ SSET (SSGET))
; J% }/ h w9 e" p - (IF (/= NIL SSET) (PROGN; p( ~' S2 Z. r `; P/ r" U
- (SETQ SSL (SSLENGTH SSET)) (SETQ LAY "") (SETQ I 0) (SETQ MODE 0)
( w7 b: p/ W0 t6 z0 o. M# m - (WHILE (< I SSL)
7 a( k: F0 A2 a: C% T - (SETQ ENT (ENTGET (SSNAME SSET I)))0 \6 ~8 b" `9 S4 u1 @
- (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )/ b# Q- v+ N: X8 n4 d% z2 V. q
- (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )) (SETQ I (+ I 1)))
1 T" m( X) A: j - (COMMAND "LAYER" "FREEZE" LAY "")
4 v% {& Q+ B! X! q7 c* p - (IF (= MODE 1) (COMMAND ""))))4 o: m( x+ u2 Q* K8 r
- (setq Lff6 Lff5) (setq Lff5 Lff4) (setq Lff4 Lff3) (setq Lff3 Lff2) (setq Lff2 Lff1) (setq Lff1 LAY)0 r( m8 j# n! }, f
- (princ (strcat "\n Layer " LAY " da FREEZE."))(setvar "cmdecho" 1) (princ) )
* g- x% Q+ D8 }. D9 ]* M - (defun c:LAYFRZ () (layfrz)) (defun c:LF () (layfrz))9 |1 J( m, s2 b1 g1 U M. k: z
+ U, L! w6 o0 p# u I- ;;; ============================== Layer Thaw ===============================
4 G& ]+ e& A9 A( y0 U: A/ x- v( ^ - 0 W8 d# R% \" a: ?; b8 |
- (Defun LAYTHW ()5 K9 w! b6 V, x# x; }' [4 M2 q
- (setvar "cmdecho" 0)- @- |" l+ p/ ~8 x
- (setq Lay lff1) (setq Lff1 Lff2) (setq Lff2 Lff3) (setq Lff3 Lff4) (setq Lff4 Lff5) (setq Lff5 Lff6) (setq Lff6 "0")$ }3 C' Y7 U' Z% m, ~3 z* g4 ?
- (Command "_.LAYER" "_THAW" LAY "")
1 N" Q: w$ f8 z0 R% `0 t; [8 e - (princ (strcat "\n Layer : " LAY " da THAW."))( z8 Q6 [6 w% Z; X2 k
- (princ) )0 L& G3 x7 P/ h7 }- k8 |* T
- (defun c:LAYTHW () (laythw)) (defun c:LW () (laythw))
7 d) N8 A5 y( W% n' Z1 k' X5 j+ y# B - 2 ~# l! ? ^2 N# A& m
- ;;; ============================== Layer Lock ==============================
4 X2 S+ P, j7 G! t$ e& X - . O* u' q( E# R
- (Defun LAYLCK (/ LAY)
; N% `% q0 B( ~; c% t3 }7 P - (setvar "cmdecho" 0)
5 O& g3 C' e" ^, n/ q. L( Q3 G* U - (setq LAY (entsel "\n>Pick doi tuong tren layer muon LOCK: "))5 J- S g+ i9 ?" L6 N
- (if LAY
$ Y1 y6 X$ |" M' E5 |& { - (progn) I7 L k6 M" M1 D4 O# }# G1 G3 k3 h
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))) I4 w$ ^4 W$ o* x: n* K9 B3 f2 r' g
- (Command "_.LAYER" "_LOCK" LAY "")/ K; S$ ~7 R* d' \
- (princ (strcat "\nLayer " LAY " da LOCK.")) ) ) (princ) )
+ |5 J+ t! }8 f- T$ N) D; h* P& P7 B - (defun c:LAYLCK () (laylck)) (defun c:LK () (laylck))
% v' M5 z, d& i: f; c8 \ - : s4 {% Q1 J! X3 b
- ;;; ============================== Layer UnLock ==============================. g. g! }7 |% a' ]. S0 }: k) L( Q
) r! f+ D! F: d% _8 o- (Defun LAYULK (/ LAY)6 C3 v' X3 W5 e+ T5 x
- (setvar "cmdecho" 0) i: y2 v# V1 }3 j. y( F
- (setq LAY (entsel "\n>Pick doi tuong tren layer muon UNLOCK: "))9 k* q& s# N- _5 q" l, X. d
- (if LAY
$ s+ Z; e1 }9 j' X - (progn' c% v' z3 _9 a! y6 R$ b
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))1 w. |/ ^* g/ j7 A; ~# Z5 @; O
- (Command "_.LAYER" "_UNLOCK" LAY "")
, N# A9 ?; Q% v! C. L - (princ (strcat "\nLayer " LAY " da UNLOCK.")) ) ) (princ) )6 D* v& @* Y# q
- (defun c:LAYULK () (layulk)) (defun c:LU () (layulk))% X% g! w" M7 O2 B
3 h: H0 A4 l% U* c. g6 [0 J' e- ;;;===================== Delete all objects of Layer ========================
/ g3 D: P8 t2 G& T8 J2 V - - Y8 f7 U+ C/ |( S K. Y9 E: X
- (defun DELAYER (/ ocmd L S) ' j, c2 s0 q" P5 t/ p; A+ V
- (setq ocmd (getvar "CMDECHO"))
9 u& w3 [5 |2 l/ g5 s2 o" u3 S/ x/ W - (setvar "CMDECHO" 0)
% N4 y8 X. O0 \4 E. ~$ G" |# x - (setq L (strcase (getstring "\nLayer(s) to delete: ")))
* {+ w9 P+ Y! B8 T+ _ W, k# n - (setq S (ssget "X" (list (cons 8 L)))) . X; a0 c+ \8 }$ I5 {: O; L; E
- (if S
' T" F0 w1 B4 Y - (command "ERASE" S "") 5 K5 V# o' T* S: |9 ^7 L. k
- (princ "Layer empty or not a valid layer name.") )
$ F* F) H4 M) H5 ^& {+ J: p - (setq S nil) * J$ v4 \$ b( y w9 m3 p& A' e% s! d
- (setvar "CMDECHO" ocmd)
- K, ]: S9 R& A ?. r - (princ) ) 1 m* R- B0 v- a% k
- (defun c:DELAYER () (delayer)) (defun c:DELLAYER () (delayer)) (defun c:DEL () (delayer)). t8 |: N7 ?1 B' ^( U- u. B
- 6 }+ f1 N" W$ M- u
- ;;; ========================= HET CAC LENH LAYER ===========================
8 b! q0 W$ }( |2 E0 U$ p
! _3 E( q+ e4 o/ v! p; O1 N- ;;;====================== EXTEND NHIEU DOI TUONG ===========================
- I) H/ l1 W0 w" V: B3 h
5 ]' }. i/ f. c3 T* L) ~# Y" u- (Defun C:EET ()
$ T# f7 Z$ O$ v - (Setq CVAR (Getvar "CMDECHO")) (Setvar "CMDECHO" 0)
. k: B( Q- r V6 s% K. o9 w( ^ - (Prompt "Chon doi tuong dich cua EXTEND :") (Setq CUTEDG (Ssget))
6 r6 L, \9 D8 ^" [- v - (Prompt "Chon doi tuong de Extend :") (Setq SS (SSget)) (Setq LEN (SSlength SS))
) u) k9 g& f" T0 v1 @' Q! X - (Setq I -1); g1 k' ~; Z. i
- (Setq SIDE (getpoint"Chon phia de EXTEND")) (Command "EXTEND" CUTEDG ""). [5 e* |* l6 S$ W; L
- (Repeat LEN3 s1 W! ]" Y; p0 E2 o8 o
- (Setq I (1+ I))) p T2 C, n; B4 h) v
- (Command (List(SSname SS I) SIDE)) ) (Command ""): M$ T) E/ m' z6 }! o- h
- (Setvar "CMDECHO" CVAR) (Princ "Da Extend xong moi ban lam tiep") (Princ) )
3 `% `7 i1 a9 {: w - - T W6 X$ ^; n) W& _
- ;;; =============== EXTEND 1 DOI TUONG THEO KHOANG CACH ===============
4 u. S! {( z/ l4 _* ] - % ]% X8 G" D2 b. R
- (defun c:ETT () (setq os (getvar "osmode")) (setvar "osmode" 512)
$ @& e" |; q: \4 [) L" Z `- v - (setq pt1 (getpoint "\nKich vao 1 dau doan thang can EXTEND "))# [, ~6 i. U2 I* Y8 O5 U% t. @
- (setvar "osmode" os)
, f6 y. B$ G; F5 P! l - (setq dis (getdist pt1 "\nKhoang cach can EXTEND :"))! a7 I" Y* q+ v7 D) [% O
- (command "circle" "endpoint" pt1 dis) (command "extend" "last" "" pt1 "") (command "erase" "last" "") (princ))
2 i& P# ?, i# R G9 c
5 V9 m9 S7 \) x" `6 m- ;; ================ Change width of polylines =========================! C0 |- |4 N/ ?4 N" t: {/ Q( f0 m
/ v! u' p4 x/ J7 H h, A0 g: Y' @- (DEFUN wp (/ a b sophantu sodem list1 ha:wid)- |1 B2 z- Z s3 r
- (PRINC "\n Chon doi tuong can thay doi do day (Width) !") , `8 N R: b9 u8 d+ I$ A3 B
- (setq b (ssget))
o4 E& l( x: b - (setq sophantu (sslength b))
. w' e0 a& T( A) K* U M+ G, ~ - (if (null ha:wid) (setq ha:wid (getvar "tracewid")))# @' Y) H5 i* a# d: n% J: @4 B" X
- (princ "\nDo rong polyline <")
t( [- [' U: N8 h' B% K& r4 e$ F - (princ ha:wid)
! P; A% Y. h' j" ]# {' k/ D& g4 k - (princ ">: ")
( t7 w% y4 F$ B( u5 z/ ^ - (initget 4)
G% ^; f& Y7 W1 f$ |1 [& a - (setq ha:wid (getdist))3 W5 }' E. S5 }: t- g
- (if (null ha:wid) (setq ha:wid (getvar "tracewid")))
! K% T1 S7 x8 Y% J3 A9 e% k: o - (setvar "tracewid" ha:wid)1 E) X a( [$ h
- (setvar "cmdecho" 0)
2 h& d C K7 ` - (setq sodem 0)
# G) K8 M* i. K$ v" t# n. J* F - (repeat sophantu
( [( I) ]4 U6 C9 r( K& L - (setq a (ssname b sodem))
5 o* _* T. c$ z0 x5 _ - (setq list1 (assoc 0 (entget a)))3 Y8 c2 Z E5 o# i
- (cond# C0 U' B* X ~6 Z( G3 E$ j
- ((= (cdr list1) "POLYLINE") (command "_Pedit" a "w" ha:wid ""))
$ X- @$ }! }; W4 v - (PROGN (command "_Pedit" a "" "w" ha:wid "")) )
: J! ~1 i2 _7 Q0 b$ n - (setq sodem (1+ sodem)) )(SETVAR "cmdecho" 1)(princ))
# d5 K6 Z3 K$ {4 y5 p% [ - (defun c:wp () (wp)) (defun c:pw () (wp))
- {# _$ G+ m7 M0 ` - 4 {2 @& [! A9 A, W
- ;; ================ Change radius of circles ==========================$ A+ X2 X' E7 ^2 x% h# s! I
0 U/ X; H: I3 R4 M2 H3 {2 u- (DEFUN C:CHR (/ SSET SSL M RD I) (PRINC "\nSelect Circles :") (SETQ SSET (SSGET))
: E; B# N I9 s4 M: n& p9 Z - (IF (/= NIL SSET) (PROGN (SETQ SSL (SSLENGTH SSET)) (INITGET 4 "") (SETQ RD (GETDIST "\nNew radius : "))3 v3 ~! V6 ]: k" \3 N
- (IF (/= RD NIL) (PROGN (SETQ I 0)
6 D8 O$ O9 j. L% z - (WHILE (< I SSL) (SETQ M (ENTGET (SSNAME SSET I) ) ); |) w, m- g- V! |9 d$ u
- (IF (= (CDR (ASSOC '0 M)) "CIRCLE") (PROGN
( `" {% ~9 h- A* j/ m5 X6 b3 Y. t: M - (SETQ M (SUBST (CONS 40 RD) (ASSOC 40 M) M)) (ENTMOD M) ) ) (SETQ I (+ I 1)) ) ) ))) (PRINC) )
9 T9 ?/ e6 ?: m1 A$ U! r+ _8 @
6 t( m. T3 z9 F B8 k2 g- ;;; ============================== TEXT Hight ===============================
; z- Q/ Q/ }/ z8 g q w4 Y - X! K7 @1 l, N: v$ Y. ^: l
- (defun texthght (/ ent hght)
0 F: h. N( n( X6 h - (setvar "cmdecho" 1)# f! l. ^5 I' w
- (prompt (strcat"\nSelect text entity with required text height"))
! g" [% f+ c; @3 K; B6 S - (prompt (strcat"\n."))
, R& c/ L9 N* t$ L+ C" f - (setq ent (entget (car (entsel)))) a- F3 l" Q7 h
- (setq hght (cdr (assoc 40 ent)))* D9 p6 u$ P/ m
- (prompt (strcat"\nText height now set at "))(prin1 hght)3 |! V2 U" \7 ?! ?
- (prompt (strcat"\n.")) 2 @1 M' e _7 u o7 U/ u: d
- (setvar "cmdecho" 1)
0 n$ G) d/ M; k( W( J - (command "DTEXT" PAUSE hght "") )/ ^" e* A: b1 O$ F% S
- (defun c:teh () (texthght)) (defun c:texthght () (texthght))) N" ?+ o' B. a7 P W6 { v
, D" {3 x1 N, r' a4 z" p; w- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================* c1 q: X2 E9 p j& O
g4 X5 L+ I; |- ~1 |9 t- (defun c:tuu () (setvar "cmdecho" 0), j+ E& \; D" h5 ~, H ?" N
- (prompt "\nHay chon dong TEXT can gach chan ")5 M2 M6 Z% @- F+ Z( W, d
- (prompt "\nSelect objects: "): ~' g. C4 U) m3 P% f5 G1 i ?6 |
- (command "select" "au" pause)
7 p8 o( m7 r/ Y: g - (setq sstxt (ssget "p")
* e/ R! @, v0 X) R - sslen (sslength sstxt)
: e% L* m, l5 Y u4 k. l8 w% u - ctr 0 )
' Y" C0 M6 N" j8 z2 | k. ?7 P - (command ".undo" "mark")$ D! Q8 u/ Z/ x x0 g1 D
- (while (< ctr sslen)
/ V" C4 l% V a. E* h" [1 y l: |; U - (setq listxt (entget (ssname sstxt ctr))+ q3 J) e; A$ ?* P( K7 O6 O8 w
- txttxt (cdr (assoc 1 listxt))9 z9 x- @+ m" y. ~- q3 G* p
- enttxt (cdr (assoc 0 listxt)) )
% z3 j1 m5 N7 w8 k, R u; m - (if (= enttxt "TEXT")
# Y' b) i: W& Y0 i - (progn7 v# L) Z5 d: _- |" x
- (setq testxt (substr txttxt 1 3))
' l* I. H$ w" m - (if (or (= testxt "%%u") (= testxt "%%U"))
/ `5 D/ z% b% d0 g - (setq newtxt (substr txttxt 4)); X0 k# w: N G" n
- (setq newtxt (strcat "%%u" txttxt)) )0 p/ }4 |% ~# |/ O7 O! ~ A5 K( z/ w
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))/ |0 e f' A K% q% ^- X
- (entmod listxt) ) )
: E+ ^4 J, W1 j% L6 l4 V5 C6 g8 b - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
4 ^2 `. j4 H4 B# W6 g - 1 _8 X e; r0 x7 E
- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================
6 U: `2 |5 t1 V3 d) J! _
6 M ~% C$ `' r5 |1 \- (defun c:tob () (setvar "cmdecho" 0)
) @' j$ l8 H& f6 o - (prompt "\nHay chon dong TEXT can gach tren dau ")
0 i8 a; Y6 h9 D: N& \( n3 P: N - (prompt "\nSelect objects: ")
. b% o; _% n6 j( X2 O$ q. h1 } - (command "select" "au" pause)
" D; ~9 \- q6 }8 i8 F+ m - (setq sstxt (ssget "p")1 u* M/ D# @6 ^/ S
- sslen (sslength sstxt)
! @0 r1 j0 K3 c - ctr 0 )
2 v# g: {$ @( @3 l( Z& L* e z7 @ - (command ".undo" "mark")0 }6 D, p6 x7 w- H* G
- (while (< ctr sslen)5 t) X( T, _" A/ F
- (setq listxt (entget (ssname sstxt ctr))
3 y: J0 Z# S% c- ]1 l5 k - txttxt (cdr (assoc 1 listxt)), N: z8 m4 S* `4 c. o* N
- enttxt (cdr (assoc 0 listxt)) )
+ h. Q0 O( }; d8 |) s - (if (= enttxt "TEXT")
' f" k' c. n! O! P/ F% T - (progn
2 w+ |) T9 j$ L* r) C# P - (setq testxt (substr txttxt 1 3))
& Z7 h) S: O/ P: o - (if (or (= testxt "%%o") (= testxt "%%o"))
4 h @: W) \1 E4 D - (setq newtxt (substr txttxt 4))
, r1 m6 U- b! e3 V - (setq newtxt (strcat "%%o" txttxt)) )
: S2 K( r' Q; k9 y" _ - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))9 O4 \) d9 N+ a& C4 H1 b* S
- (entmod listxt) ) )) o# l! x3 C* O' \# J& H
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
9 p1 k/ m: K2 D4 d! d - 0 Z1 T0 ^7 x. u! u: P2 L' `
- ;;; ========================== Tim & thay the TEXT ==========================
' d+ s, H+ Q# H7 S' \5 { - * r) f/ e. z* C& g3 X+ S j6 |/ e0 ?& _
- (defun frstring (str search replace / str1 str2 index find). [- m+ u& N# a' [- L5 Q& l- i
- (setq index 0) (while (<= index (- (strlen str) (strlen search))) (setq index (1+ index))
+ z" ]3 l" {4 _9 Y5 e% j6 y" r2 r' c - (setq find (substr str index (strlen search))) (if (= find search) (progn (setq str1 (substr str 1 (1- index)))! ^& y9 x; X) s% j
- (setq str2 (substr str (+ index (strlen search)))) (setq str (strcat str1 replace str2)) ) ) ) (setq str str))
* J) b5 R$ n6 E. N& h! _! n& {3 w - (defun hai (/ dial)
7 ^! N8 m3 y) T# \! ^1 t6 e. j4 x0 y - (setq dial (load_dialog "hai.dcl")) ;;goi dialog9 R4 |: `' b D. W( j' v% B
- (if (not (new_dialog "find" Dial)) (exit)) ;;
; k& ?5 G8 B3 x5 } `/ U+ u - (mode_tile "find" 2); Tao dau nhac tai hop thoai" T0 w5 Q0 P, V' o: ^
- (action_tile "find" "(hai1)")6 j6 H {* \% S# V a
- (action_tile "replace" "(hai2)"): y, C: U, g0 v( ?! V
- (action_tile "cancel" "(done_dialog) (exit)")/ [+ o8 w3 z8 m$ A) `) z Z* h7 o
- (start_dialog)
Q3 E0 K" B) l- a, s) H; L - (unload_dialog dial)), J* S2 p/ C! b6 O9 P& [) c
- (defun hai1 () (SETQ str1 (get_tile "find")))6 ]; w$ {! ?% r* t" w7 {
- (defun hai2 () (SETQ str2 (get_tile "replace")))8 W6 K3 Y6 O9 v
- $ U2 e# e: z3 o" Z7 L
- (defun c:TTT (/ a str str1 str2 newstr taphop sodem)2 h2 M* G2 ^5 h, e! z$ Q
- (hai)
7 c" b! u5 w$ Z* v; R; K - (if (or (null str1) (null str2)) (princ "\nDu lieu khong hop le")
1 n$ F2 ], N0 F8 R" r: o - (progn
7 C: ], R9 A7 r - (setq taphop (ssget '((0 . "TEXT")))) O; Y5 E6 z9 e+ d& l" G: F3 W) B% P
- (setq sodem 0)7 D9 G4 M1 ^$ v/ C( }. C
- (if taphop
; ?$ n, K, }- s" T5 K C2 H - (progn$ c# D2 _) s1 o$ R4 d
- (Repeat (sslength taphop)
9 D a9 t/ D6 j2 M) x - (setq a (entget (ssname taphop sodem))): Q) _1 L: R( a. L9 z( \
- (setq str (cdr (assoc 1 a)))
/ i: y/ Z2 l! f# ?: m" M - (setq newstr (frstring str str1 str2))# m' P1 P3 D x3 B! a7 i
- (setq a (subst (cons 1 newstr) (assoc 1 a) a))9 b, ]) v- m, V" |/ \( e7 a6 p
- (entmod a)
" q1 s: @" x& S1 u* k9 j8 r - (setq sodem (1+ sodem)) ) )% B: E9 U; z( w0 \7 O
- (princ "\nNone "TEXT" selected") ) ) ) (setq *error* olderr) (princ))
9 @/ w: _8 [" }% @8 S1 ?# f - 2 \8 O H$ S# \- C
- ;;;============================= CHTEXSTY.LSP =============================
( R" `9 r' \" V9 a( L
0 X$ c3 L9 F: w3 W: T: G- (Defun C:TXS () (Setvar "Cmdecho" 0) (Initget 1 "SE ST ")% i/ ?3 q9 h1 f
- (Setq G (Strcase (Substr (Getkword "STyle/<SElection>:")1 2)))$ x$ h+ _- H* c+ L1 i! w) C
- (Cond ((= G "SE") (Setq A (Ssget)) (Setq B (Sslength A))3 r8 [+ z' w9 Z5 Z/ f
- (Initget 1) (Setq C (Getstring "\nEnter new text style: "))1 {# f& V) x8 u/ i7 `( c
- (Extang C) (While (> B 0) (Setq B (1- B)) (Setq D (Ssname A B))) i1 X2 G& J! m' \8 f- M7 f5 w
- (Setq D (Entget D)) (Setq E (Assoc 7 D)) (Setq F (Cons 7 C))) R( H" {% a W5 Y% n5 Y0 d- o
- (Setq D (Subst F E D)) (Setq H (Assoc 51 D)) (Setq I (Cons 51 J)), g1 T- D, C; A+ ^# B: y
- (Entmod (Subst I H D))) (Setq A nil)) ((Or (= G "ST") (= G ""))3 [9 G3 f, Y4 R- G
- (Initget 1) (Setq A (Strcase (Getstring
! N' r; p$ R( m( \; S6 Z/ O, v7 T: Z - "\nEnter text style to change: "))) (Initget 1)
/ Y) b: B, r9 C; @: H0 A" } - (Setq C (Getstring "\nEnter new text style: "))(Setq D (Entnext)) m1 Y, b. U- J# a- Q
- (Extang C) (While D (Princ ".") (Setq E (Entget D)) (If3 |3 Q! V& r( Q3 `
- (And (= "TEXT" (Cdr (Assoc 0 E))) (= A (Cdr (Assoc 7 E))))% B+ J- V, e6 O) l. y$ j8 w7 O
- (Progn (Setq F (Assoc 7 E)) (Setq G (Cons 7 C))
% ^# m2 ]. d1 p6 s0 Q8 b+ v - (Setq E (Subst G F E)) (Setq H (Assoc 51 E)) (Setq I (Cons 51 J))$ ~: r! {% q) I6 Q$ k
- (Entmod (Subst I H E)))) (Setq D (Entnext D))))) (Princ))
, h, g0 {# F2 g3 z3 l( ^ - # A: v# M4 v# O/ Z+ p
- (Defun Extang (A) (Setq A (Tblsearch "STYLE" A))
/ l2 |* K1 }/ I& r+ G+ P0 P - (Setq J (Cdr (Assoc 50 A))))
( ^; h, T4 y) [
, f: f- G2 G+ c9 r& @- ;;; ============================ DRAW CLOUD =============================1 n1 y3 M0 x+ d5 I& x! @. z
) y3 ]' M2 S% o- (defun CLOUD (/ pt1 pt2 arc1 cnt ss la) (setvar "cmdecho" 0)( V( }8 H9 t3 ]8 i
- (prompt "\nVe cloud (may) khong khep kin - Tu khep kin ve diem dau!")* f N- k6 c( F5 [) p5 e0 z
- (setq la (getvar "clayer")) R0 e& J8 O4 J0 x' g0 N7 Q
- (command "layer" "m" "cloud" "c" "5" "" "")
+ i; K1 v4 Y# w3 a* w* Z - (setq pt1 (getpoint "\nEnter first point of Cloud: "))/ F- }# m O" v' N
- (if pt1 (prompt "\nProceed in a COUNTER-CLOCKWISE direction..."))
8 \1 P* h8 C+ Y - (setq cnt 1 ss (ssadd))
8 h8 E( U5 X1 l2 D; \6 a" g - (while pt1 (setq pt2 (getpoint "\nEnter next point - and close: "))$ r6 ], n/ q. O$ c3 p3 o
- (if pt2 (progn (command "arc" pt1 "e" pt2 "r" (/ (distance pt1 pt2) 1.75))
+ x0 [: A3 E) k% ^ - (if (= cnt 1) (setq arc1 (entlast) cnt 2) (ssadd (entlast) ss)) ))6 R. k1 W8 d" P
- (setq pt1 pt2) ) (setvar "highlight" 0) (if (> (sslength ss) 0)
3 J) L: Y2 ]( B - (command "pedit" arc1 "y" "j" ss "" "x")
- v# q: s# E3 e( d# Y - (if arc1 (command "pedit" arc1 "y" "x")) ) (setvar "highlight" 1)% C( y7 Q ]+ E2 Z" u, L8 w U
- (command "layer" "s" la "") (setvar "cmdecho" 1) (princ))
/ o+ S$ t0 C% |! ]+ C0 j6 B1 `2 y - (DEFUN C:CLOUD () (CLOUD)) (DEFUN C:CLO () (CLOUD))
8 a" \& K Y4 N: ~7 D4 \/ E8 S j - & L2 p7 p5 N( e; H; b1 ^
- ;;; ================================ Funtion-Dulieu ========================+ |/ T# y9 ~& y5 |8 K3 P2 ~8 R1 X$ @
- ;;; ================================ Funtion-Dulieu ========================
; a$ H/ G, a8 z# r2 x - ;;; ================================ Funtion-Dulieu ========================
4 j7 E& |* l [" l
; A: t( r* b/ J% H7 L0 b- (defun ha:nhap (kytu thamso) (princ kytu) (princ thamso) (princ ">: ") (setq key (getint)) (if key (setq thamso key)) (princ thamso) )! `7 v4 H I5 \; |
- (defun ha:thoat () (reinit) (setq Temp "Da thoat khoi chuong trinh"))$ J8 H1 s; o9 O! g; }, }
- (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))5 K9 ~1 Z; A4 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) )+ Q9 P s' H2 @/ J; V4 _" G. D+ }
- (defun hauon (hauon1 hauon2) (command "fillet" hauon1 hauon2))8 m4 q' c7 A8 {* h! l0 j3 Z' J
- (defun init () (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "angbase" 0))" G) c3 _' R! I- {" u3 I; {
- (defun reinit () (setvar "cmdecho" 1) (setvar "osmode" 0))' K( k8 w5 ^) W1 X; ~0 i0 I" w
- (defun tichvecto (vecto1 vecto2) (apply '+ (mapcar '* vecto1 vecto2)))4 {; s8 r$ T( c7 w' ~' U! l2 I
- (defun vectophap (v01 v02 / vectochiphuong) (setq vectochiphuong (mapcar '- v01 v02)) (list (cadr vectochiphuong) (* -1 (car vectochiphuong))))
5 r! T+ b( v2 d3 m e Q - (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)))/ P9 c; g5 H- P: K# S! G& D
- (defun dtr (dtr) (* pi (/ dtr 180.0)))2 k1 J0 ~+ J( p! S+ L: Z! @
- (defun rtd (rtd) (* 180.0 (/ rtd pi)))
( K6 H( k# x v$ W* Q$ ?. s" ~: z, Y; }! v - 7 M8 }0 y5 m3 O# q) W+ r
- ;;;==============================PROGRAME===============================# d9 _: C5 c: T- @! d& Q! ^+ j
- ;;;=====================EditDiM Hien Hop Thoai Dep======================
9 v' |3 d$ Q8 E: S$ T" Q3 c - ;;;==============================PROGRAME===============================& h$ O$ d! i/ U
1 b" h* V( e$ a0 w% ?- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)( J" c) ~; ]8 n! r
- ;;Chay Cung Du Lieu.Lsp & Hai.Dcl, {# D; E+ U5 |9 T2 h- a8 k# T
- (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)
0 c& Z0 l& @9 n9 Q2 e2 B - (Setq Oldlis (Entget (Car Chon))* b' a( j6 F8 T0 R/ J
- Pt10 (Cdr (Assoc 10 Oldlis))
5 p6 b' l- o: M - Pt13 (Cdr (Assoc 13 Oldlis))( y4 Q% `; Y: x9 P: L
- Pt14 (Cdr (Assoc 14 Oldlis))
3 m( I% B! j+ m+ U8 R - St (Cdr (Assoc 70 Oldlis))9 m' W$ m' {! B b" a7 L5 `" q
- Dimdefault (Cdr (Assoc 1 Oldlis))4 m3 q- X$ U! z& c8 m: j& X8 ~
- )" v$ W3 _ i, ~( q* U# b( j
- (Cond
2 x! U$ R# F" X# ~- F - ((Or (= 32 St)(= 0 St)(= 160 St))6 G3 ~) q \' ~% G( K/ Y. e: f
- (Progn
* k$ ]# t8 O3 d- Z! W# m - (Setq Ang (Cdr (Assoc 50 Oldlis))
( E/ h% z- E6 v( P6 F* ~ - Pt (Polar Pt13 Ang 500)
( G4 Q8 c7 n! }' s& l - Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)
J$ t; W9 u7 i2 M E - Dis (Rtos (Distance Pt13 Hc))/ N9 `- M0 s/ Y4 E3 c T% A8 a
- )3 S2 i$ l$ X; j, U5 R
- )6 ?$ T. _$ x$ E2 ^# W
- )0 |( R5 m* v) c6 S4 c( q4 W* c
- ((Or (= 33 St)(= 1 St))( z( L- ]5 i1 G+ a0 n) I0 |
- (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
2 Z# x9 g X( b& w/ @0 }8 o - );;End Cond
6 @0 N6 O D6 `" Q) ~: W. B - (If (= Dimdefault "") (Setq Dimdefault "<>"))4 r, _3 z: k6 \, |6 E
- (Setq Dial (Load_Dialog "Hai.Dcl"))' ]0 k/ @) n- k$ `+ {' c, w
- (If (Not (New_Dialog "eddim" Dial)) (Exit))+ U8 N% e/ o. i! {' w
- (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))
D7 Y2 N1 u- u; q7 ] - (Set_Tile "text" Dis))
3 C1 f1 o# W9 M1 E$ I - (Set_Tile "ha:edim" Dimdefault)
9 @& |/ M) [' P5 F9 a1 p7 O, n, _ - (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai
% X; b# k& T+ b - (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")
9 S( E9 E! X9 _& t, g - (Setq State (Start_Dialog))(Unload_Dialog Dial)
/ _, C. H. R) V* o% f - (If (And Str (= 3 State))- {7 b% E& Y& w4 Y# [
- (Progn
- K) y& Q _2 X" D6 m - (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))
# J4 Q/ }4 a" f( h' m - )
7 P# b6 l' L+ e - (Defun C:EH (/ Chon Name )
{! r! C, g. ^$ ^2 l r" i p5 H! p - (Defun *Error* (Msg)+ q& B* j5 v; M- Y6 P" C5 Z+ e& B! v
- (Princ "\nerror: ")(Princ Msg)(Princ " ")
e+ N! y6 u$ g7 E0 M2 @ - (Start_Dialog)(Unload_Dialog Dial)
# G+ F% G2 W5 K3 _( L3 A" t - (Setq *Error* Olderr)(Princ)
% j8 G2 u" p/ c/ l: q( n - )# V/ g& t/ x+ X3 n4 Z8 j8 D B# \
- (Setq Olderr *Error*)
' s' C% L8 X6 d0 C; A& G - (Setq Chon T); P' [5 u4 ~0 @3 s" B( W
- (While Chon
6 u! o, O2 \9 n: E' [. {! } - (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))% K/ N- R: L0 F; r. M. [8 j6 D
- (If Chon3 l$ n I. Y; ~: E- T
- (Progn7 s3 u$ }( f- }# _5 s* _+ ^
- (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))/ w. P$ ^; X3 q1 D# K+ ~
- (Cond, C; U9 V B7 J7 W( r2 N
- ((= Name "INSERT")(Command "Ddatte" Chon))( p2 b2 R% Y2 r) p, ` m$ S* U6 B
- ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))
% o1 C1 L2 O! U- J - ((= Name "DIMENSION") (Hai_Edim Chon))
1 P2 \ G. Y1 ^% z5 R$ [ - )' m* h1 A; G0 w) q7 v/ I1 k/ X. e' d
- );End Cond9 ~# s7 J2 h. X6 r( E4 J
- );End Progn
& ^# \5 V& G4 u% P( j y9 s- B - );End While
# V T& }% J5 `) y& v - (Setq Olderr *Error*)(Princ)/ V0 a: {% k2 z3 q' ]
- );End Program. R1 a. ~% g/ k4 l4 v. U
% ?2 R* Z, b7 m+ N, b" Q6 E9 s- ;;;====================DDeditDim=====================1 M7 \3 E0 w. A: t$ a. `
- ;;;=====================Hai.DCL======================9 w/ z+ @* G- c. l( S, a
- ;;;====================DDeditDim=====================1 e! Q6 K& x) |/ B/ A
. D5 S6 J+ G: E D- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)/ z# ^+ ^4 z; R: Q; @9 K
- ;;Chay Cung Du Lieu.Lsp & Hai.Dcl, _/ l9 Y/ v5 W% Q
- (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)' `6 Y2 D% T! \) d& U
- (Setq Oldlis (Entget (Car Chon))
+ T \; t2 n B6 J4 q) D9 F - Pt10 (Cdr (Assoc 10 Oldlis))
1 r) o$ x( j3 ?5 Y* L - Pt13 (Cdr (Assoc 13 Oldlis))5 H" h! }* X7 X
- Pt14 (Cdr (Assoc 14 Oldlis))
: ? o! p/ t* ?$ s9 H5 _ - St (Cdr (Assoc 70 Oldlis))
( q( D2 ?; W4 y9 e' ] - Dimdefault (Cdr (Assoc 1 Oldlis))
; |8 U: V" p. p+ j3 p; @* { - )
2 @6 ^4 K, w. z, u8 C. A - (Cond& L8 V5 N. M2 I- f/ `5 B- N6 p
- ((Or (= 32 St)(= 0 St)(= 160 St))
$ G, ]6 N0 \0 b1 E2 E2 { - (Progn2 L. E- y8 K' Q& O. G0 `
- (Setq Ang (Cdr (Assoc 50 Oldlis)). Y! D, }) s3 s; y9 |5 Q. U3 I
- Pt (Polar Pt13 Ang 500)3 I0 U- j+ Z' Z; v0 \" c
- Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)
% L( J1 t# y: o! C1 `8 P( m% q) Q7 J - Dis (Rtos (Distance Pt13 Hc))1 ?8 [8 T4 `! D
- )& \: I& ~3 _$ ~) e
- )
0 b5 U/ \- ~, A& `0 Y* o$ f" E' J - )' W0 \+ E' K3 \, P0 s1 N# ?
- ((Or (= 33 St)(= 1 St))& c7 [ q. `# b/ v1 k- c
- (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))8 s0 A' m7 u- q8 v+ \2 ~. J) S
- );;End Cond' z, j( L6 M: o# l/ Q M; w
- (If (= Dimdefault "") (Setq Dimdefault "<>")); ? p# [, P% j- Z
- (Setq Dial (Load_Dialog "Hai.Dcl"))
5 B1 ~! t1 ]3 U - (If (Not (New_Dialog "eddim" Dial)) (Exit))3 z/ _) B7 ?) H( b7 t; w) w
- (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))
* @' q5 d, O& n; ^- a - (Set_Tile "text" Dis))
5 A7 `* G$ R+ H- r0 [+ w) B' x) `& S$ { - (Set_Tile "ha:edim" Dimdefault)9 B% t. Q1 w6 i% c3 L5 d
- (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai
Y- O4 u2 I9 [- r" o9 B - (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")0 o, x4 j; ~0 e9 z3 x% h" h
- (Setq State (Start_Dialog))(Unload_Dialog Dial)
4 L& G9 \! }8 u - (If (And Str (= 3 State))
* c7 o( h( t+ R0 r# M7 u - (Progn6 D! H4 {$ \7 {% e0 C: ^1 ?
- (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis))). j% |$ M1 n& L' X! u
- )) J) E# s( n* C% M
- (Defun C:EH (/ Chon Name )
/ \+ n) M. r0 M2 {8 G, A
7 s. e% w- y- Y- ;;;********************Du Lieu********************
( l0 h% J! a. B# s/ i - 5 t {; V" y7 j) v9 E
- (Defun Ha:Thoat () (Reinit) (Setq Temp "Da Thoat Khoi Chuong Trinh"))# M9 E3 g0 }. Y0 G! y" d0 n, {4 t# X
- (Defun Hacat (Hacat1 Hacat2 / Hacat3 Chon)& K. l4 u* H3 w1 @
- (If (And (/= Hacat1 Nil) (/= Hacat2 Nil))( j9 v' U" `& K4 C, ]% w1 k% J
- (Progn
& ?8 j9 `1 }5 F: d. [ - (Setq Hacat3 (Polar Hacat1 (Angle Hacat1 Hacat2) (/ (Distance Hacat1 Hacat2) 2)))- L4 L& S: X3 P& u# ~8 g6 J
- (Setq Chon (Ssget Hacat3))
- Y9 L6 d/ W1 ?; v6 }, k0 Q- |5 [ - (Command "Break" Chon Hacat1 Hacat2)+ E6 ~' n7 R8 n* C' J+ V* `
- )
& A8 \' }( U/ t3 w L" c - )0 Y$ }) Z4 Y9 { Q. v& R' @
- (Princ)+ Y$ ]) H2 Q6 ]9 G% |; y
- )) b4 i/ X; U: H) A
- ;;
. _5 O3 i9 V. c' V( U2 L0 ?- T3 n - (Defun Hauon (Hauon1 Hauon2)(Command "Fillet" Hauon1 Hauon2))
7 r& b! C& ?& D6 N- O - ;;
! F2 u( B$ v$ G0 A0 k5 @% L0 }8 B - (Defun Taolop (Mau Lop / A)(Setq A(Tblsearch "Layer" Lop))(If (Null A)(Command "Layer" "_N" Lop "_C" Mau Lop "")) (Setvar "Clayer" Lop))
' ?4 Y, e* g! Z# \ - ;;
% y5 X9 V, w( ? - (Defun Init ()(Setvar "Blipmode" 0)(Setvar "Cmdecho" 0)(Setvar "Angbase" 0))
9 \; t9 N: Q' w! c - ;;
2 t# Y6 r u" K# R6 d. S6 W( v - (Defun Reinit ()(Setvar "Cmdecho" 1))5 M [0 ~3 e) ^8 K1 W
- ;;# l+ U0 C. t. |# x, d0 D+ b8 G9 D
- (Defun Tichvecto (Vecto1 Vecto2)(Apply '+ (Mapcar '* Vecto1 Vecto2)))* V0 X3 n$ X! f9 e W) p" a
- ;;
; U1 a2 F. d: ^/ ]/ K0 v - ;;Cho 2 Diem Tinh Ra Vec To Phap6 Q) e& b" u7 w- I2 Q
- (Defun Vectophap (V01 V02 / Vectochiphuong)(Setq Vectochiphuong(Mapcar '- V01 V02)) (List (Cadr Vectochiphuong) (* -1 (Car Vectochiphuong))))
' c$ ^- z! ?+ q4 x; R3 R - ;;Xac Dinh Vi Tri Hinh Chieu 1 Diem Len 1 Duong Thang8 T/ U0 P! U8 B( Q5 |) b, ]
- ;;Da Biet 2 Diem Thuoc Duong Thang
" g- \( r# ^: {- T6 F - (Defun Lay_Hinh_Chieu (Dc1 P1 P2 / Hc Dc2)
7 l1 c8 O) M* z5 }0 v d+ j - (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)1 u6 Z$ W$ y4 z3 Q
- Hc (Inters P1 P2 Dc1 Dc2 Nil)))& I7 P% j1 x, Q+ P. Y' N
- ;;Xac Dinh Khoang Cach Tu 1 Diem Len 1 Duong Thang4 h! u# `, n) s1 T2 a0 \. z
- ;;Da Biet 2 Diem Thuoc Duong Thang
3 d% c$ V9 z5 O! @ - (Defun Khoangcach (Dc1 P1 P2 / Dc2 Hc)3 Z& y& }0 f/ n* H( ^& [
- (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)# k7 {9 J! f/ H0 Q$ v2 z
- Hc (Inters P1 P2 Dc1 Dc2 Nil))+ e) y7 F7 u( g7 T
- (Distance Dc1 Hc)
* o W. U6 E0 O8 i5 B - )7 T# C4 I0 {/ }" {$ m" u0 r
- (load "nhapcua.lsp")/ o4 L+ c( d; k( V
- (Defun *Error* (Msg)( f. n" k9 h; C
- (Princ "\nerror: ")(Princ Msg)(Princ " ")
5 a( S4 N' P1 e' s: t& Q5 q - (Start_Dialog)(Unload_Dialog Dial) o" n4 d& r# Q) _" O4 D
- (Setq *Error* Olderr)(Princ) J, `5 O5 g5 l) N% a# j
- )
" {- o! Y, n4 D7 _: y - (Setq Olderr *Error*)2 r7 `, ^% z) c# R* z: r( g
- (Setq Chon T)
( F$ b6 R" ]( h5 b - (While Chon0 L8 z" U; t* r4 @7 L
- (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))# F5 `' e: C% ~6 Y2 ], _
- (If Chon
5 O4 p, D# e7 @0 e, t. P& P$ `/ S - (Progn
. \, Z2 v( S& m: a- C) d) ?$ x' C - (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))
" i* _) e, \" ]: D- ^2 D - (Cond
8 s- g& ^# v5 y& a9 C - ((= Name "INSERT")(Command "Ddatte" Chon))% J+ Q% _6 z! s8 X; m2 @
- ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))
) u+ ~, X2 {+ U8 ` - ((= Name "DIMENSION") (Hai_Edim Chon))$ r' {" _% U5 u: m' i1 S
- )
; n- Y3 B" e0 \) ~ - );End Cond
* }7 _( |/ O3 o1 K - );End Progn
6 I: P, R$ [# Q& C - );End While
% X% M) M6 X) L8 D: a _! D& K& | - (Setq Olderr *Error*)(Princ)
0 Z. T7 O p& o9 @+ d. ?* Q: L - );End Program
; v+ ^! m% H1 H' p K7 }
# m) u! Z; M+ `; p4 _- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================
* m' d! D: Y% c3 }# u t - ;====================================Nhapcua.LSP====================================
) K5 ?9 z8 K1 R! e1 t" g. D S - ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================# c" K9 g# ~* {1 e! C' `
- ; l" U) X% W0 r7 t7 t! h
6 V! `2 L0 @% o
9 c3 o9 r" X+ C) G. r. r0 l- ;*******************;*******************;*******************;*******************
# H' J' K& Y: P% S/ q: D - ;****K E T C A U****;****K E T C A U****;****K E T C A U****;****K E T C A U****
" w0 B, L- B* C, J* O7 @ - ;*******************;*******************;*******************;*******************; \' L% P$ B( y. A& c/ F) b; E! D/ w
( U8 {/ f4 r9 \- ;VE HINH BINH HANH
3 N$ b' I# i7 U, k8 O0 }( n - * _8 f7 B2 Y, n; a
- (defun c:binhhanh (/ p1 p2 p3)
# j: k* J5 u; O, Q5 a5 y, x$ A( u - (setq p1 (getpoint "\n Nhap diem thu nhat:"))$ E5 W7 ?" t# Z' ], V( _
- (setq p2 (getpoint p1 "\n Nhap diem thu hai:"))
% Z$ d7 U$ o/ o1 @ - (setq om (getvar "osmode")), z2 T; d7 ~* _" L
- (setvar "osmode" 0)
+ t/ }0 m7 g" w& x/ e% a( Y4 ~ - (command "line" p1 p2 "")" y1 a5 h$ E# }4 p/ a
- (setvar "osmode" om)+ X1 N4 H3 c( @" q0 y
- (setq p3 (getpoint p2 "\n Nhap diem thu ba:"))
0 W7 s% H" a7 r5 _ b - (setq a (angle p2 p1)); d- }! C* B( s% k
- (setq d (distance p1 p2))' i9 O; Y2 x- w4 w3 R6 ]
- (setq p4 (polar p3 a d))$ t' D+ V1 v* s# x4 i5 X
- (command "OSNAP" "none"): S, O n! E- G% a2 v' E; p
- (command "erase" "l" "")
& `3 T7 I! d' `5 _: q - (command "pline" p1 p2 p3 p4 p1 "")9 P+ @3 {. x/ |4 n5 R
- (setvar "osmode" om)
) j* g& O4 t& f1 r7 v - )2 Z3 F p1 G. D; I7 u" T2 z6 }
- : K- g8 U$ m) o$ O& a0 p
- ;VE LUOI COT
8 b( v: {$ ?4 ]; k) \4 B' w7 W - 9 C( v' C2 E5 b% Q( h1 [
- (defun c:LuoiCot (). V( W2 P; R1 T
- (setq om (getvar "osmode"))
; v# Q) q0 A( n+ X! s - (setvar "osmode" 0)
) j$ j( F3 N+ r5 b - (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
q* N& U/ D4 x9 a! T - (setq p0 (getpoint "\n Chon Basic Point:"))
, f- |+ R2 C: X2 I S k. q3 w - (setq nc (getreal "\n Nhap chieu ngang cua cot : ")), q" o$ F& _6 L# X* }" E2 @
- (setq dc (getreal "\n Nhap chieu doc cua cot : "))
. T O) a. P- Q$ x; D - (setq p1 (polar (polar p0 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )' N$ T$ }0 X8 l7 l
- (setq p2 (polar (polar p0 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )" G, M9 [, ~: L8 G" {
- (command "rectang" p1 p2)
: v: u s `+ i0 P' E - (command "hatch" "solid" "l" "")
: ^( z0 D7 n( W0 A1 w8 P' y- q - (setq bcn (getreal "\n Buoc cot theo phuong ngang : "))0 \. `6 V9 b. L* g. [9 V
- (setq nn (getint "\n So buoc cot phuong ngang : "))# L9 S+ w5 _! V( F' [
- (setq w1 (polar (polar p1 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )
/ U% d5 ?# z6 r1 }7 | ^. {: W; J - (setq w2 (polar (polar p2 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) ) w- y& ?5 @; D0 n* M
- (command "select" "w" w1 w2 "")
& O; ]; G( W1 H) u - (command "array" "p" "" "r" "1" (+ nn 1) (/ (* bcn hstl) tile) )# {( O M# I; Z H6 `
- (command "line" (polar p0 pi (/ (* 1000 hstl) tile)) (polar p0 0 (/ (* (+ (* bcn nn) 1000) hstl) tile) ) "")
* t8 ~' `( _( b% [ - (setq w1 (polar (polar p0 pi (/ (* hstl 2000) tile)) (* pi 1.5) (/ (* hstl 2000) tile) ))4 m0 i1 x5 i% L# `4 a" b$ A
- (setq w2 (polar (polar p0 0 (/ (* (+ (* bcn nn) 2000) hstl) tile) ) (* pi 0.5) (/ (* hstl 2000) tile) ))
0 W# s. `/ o1 l% B* J - (command "zoom" "w" w1 w2)# s- M. j) C7 j% q6 b
- (command "select" "w" w1 w2 "")
( D" w' y# B6 c8 i! M0 D1 x4 H - (setq bcd (getreal "\n Buoc cot theo phuong doc : ")): I& g. B; D5 d/ |8 r) P
- (setq nd (getint "\n So buoc cot phuong doc : "))
% g0 ]/ H' z2 {& C1 x - (command "array" "p" "" "r" (+ nd 1) "1" (/ (* hstl bcd) tile) )
J+ r _# R3 I: L3 I - (command "line" (polar p0 (* pi 1.5) (/ (* hstl 1000) tile)) (polar p0 (* pi 0.5) (/ (* (+ (* bcd nd) 1000) hstl) tile)) "")
7 T7 F0 w( s7 U6 n5 d3 b - (command "array" "l" "" "r" "1" (+ nn 1) (/ (* hstl bcn) tile) )
! m) ^8 [; U; f5 D2 h$ q - (setq w2 (polar w2 (* pi 0.5) (/ (* (+ (* bcd nd) 2000) hstl) tile)) ) 9 c1 i) k% F7 F3 R# o. ^
- (command "zoom" "w" w1 w2)* | v" Z) b( i/ w7 j
- (setvar "osmode" om): o. j0 Z1 T$ g$ g1 P0 m5 W B4 s
- )# a+ w2 N4 ~ C9 ^8 h5 M |) C2 E, a9 z
- % ]3 f, |1 ?4 r
- ;VE CUA DI6 ^" U" M: g1 |4 I0 s7 g) W
- + e, l4 g$ K2 h2 x
- (defun c:cuadi ()& T; ]7 I# ?+ X7 J3 |/ @! k
- (setq om (getvar "osmode"))/ T' J# Q, h" b) b9 i9 b+ T& p
- (setvar "osmode" 0)
5 P! l! J8 M% B" e% B7 a" U - & O# O e M! y9 o0 D4 J7 n9 _
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
# D3 N9 o, r+ G/ h8 t - (setq b (getreal "\n Nhap be rong cua : "))
8 ~, W9 v" U+ J3 @# j B$ N - (setvar "osmode" om)
) ?+ v% V$ e+ ^' L" w4 X - (while (< 0 1)5 H5 Q8 q" O8 m
- (progn
/ I! P; q- @) B - (setq p0 (getpoint "\n Chon Basic Point:"))( x j' L) c* ? R) L* u
- (setq p1 (getpoint p0 "\n Chon diem de xac dinh huong cua cua:"))1 Y. S, K8 F0 l
- (command "osnap" "none"): V( r+ y: [* Q
- (setq p2 (getpoint p0 "\n Chon diem de xac dinh huong mo cua:"))6 r0 w) ]: W( |) q% E
- (setq a1 (angle p0 p1))
[0 I8 Q2 r8 f5 b - (setq p1 (polar p0 a1 (/ (* hstl b) tile)))
7 p) t) D( w/ Q2 D - (setq a2 (angle p0 p2))# e! Q, J4 D9 v" M- m/ |
- (if (< (- a2 a1) pi) (setq a3 (+ (/ pi 2) a1)) (setq a3 (- a1 (/ pi 2))) )0 u+ e& C2 X# x) x- `4 h( P, A
- (command "pline" p0 "w" "0" "0" p1 (polar p1 a3 (/ (* hstl 40) tile)) (polar p0 a3 (/ (* hstl 40) tile)) p0 "")
" l( a5 Q6 L' v, f3 A4 { - (command "rotate" "l" "" p0 (/ (* (- a3 a1) 180) pi))2 X. A8 {0 i+ u$ S6 V1 l4 S9 L9 I
- (command "arc" "ce" p0 p1 "a" (/ (* (- a3 a1) 180) pi)) $ S2 i6 v5 m( i) q& x
- (setvar "osmode" om)
/ E2 ~% d- B _" F0 t - )): X: Y# b! ]/ c% e
- )
0 ?; F) {( E8 _) g9 n - # k/ b [5 C: N) o
- ;VE CUA SO8 M; {* [% Z2 I5 a. C
. f& b1 n; }( x9 A* e. k; }- (defun c:cuaso ()
) ~" u. ?$ U" ~; r - (setq om (getvar "osmode")). Z: F; p5 Z& {* U; x
- (setvar "osmode" 0)
8 E1 g9 {! T F* b
/ K- T! a; L2 r- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
7 Z4 I' z& ^" E6 q8 h- a3 }' D$ C: w - (setvar "osmode" om)
1 u2 p& Q, x; |( k) _) u - (while (< 0 1). `, r6 S$ x" F: k7 q. Y9 l2 {* s
- (progn
; N; \& T' a1 d) F/ t: b$ @ - (setq p0 (getpoint "\n Chon Basic Point:"))- W, X6 x0 C$ @4 r
- (setq p1 (getpoint p0 "\n Chon diem de xac dinh be rong cua:")) G; `4 ~( \3 j# R R* a
- (command "osnap" "none")
* w5 ^' c! d- ]( Z# K - (setq p2 (getpoint p1 "\n Chon 1 diem o trong nha de xac dinh huong cua so:"))% d$ O3 P1 X# T0 G+ b
- (setq b (distance p0 p1))
5 F3 @. U4 O+ B& z. m - (if (< b (/ (* hstl 600) tile)) (setq du 50))# K: e7 _4 D' z" g7 }
- (if (> b (/ (* hstl 600) tile)) (setq du 150))
7 N* X$ f5 S3 \, I3 | - (if (> b (/ (* hstl 1800) tile)) (setq du 200))- L- y* k* N% ~" m/ ~
- (setq a1 (angle p0 p1))7 u u: m7 s2 I0 J8 e- c) @
- (setq a2 (angle p0 p2))
, W& \* ~, s7 s, K - (if (> a2 pi) (setq a2 (- a2 (* pi 2)) ) )* }* ~& M7 Y$ b" V$ V( q. W' j
- (if (> (- a2 a1) 0) (setq a3 (+ (/ pi 2) a1)) )
/ z5 A ^9 ? @. M0 o) p - (if (> (- a1 a2) 0) (setq a3 (- a1 (/ pi 2))) )
* r8 Q# ~- X6 Q) Y7 L5 `$ j, a3 k7 j - (command "pline" p0 "w" "0" "0" p1 "")' R5 f( h; ^) `/ ^. u1 f1 G7 t h
- (command "pline" (polar p0 a3 (/ (* hstl 50) tile)) (polar p1 a3 (/ (* hstl 50) tile)) "")
+ u6 Z5 Q: h6 i- R8 z3 W - (command "pline" (polar p0 a3 (/ (* hstl 100) tile)) (polar p1 a3 (/ (* hstl 100) tile)) "")& I8 b; E8 j) l1 }, f1 H
- (command "pline" (polar p0 a1 (* (- du) (/ hstl tile))) (polar (polar p0 a1 (* (- du) (/ hstl tile))) a3 (* -100 (/ hstl tile)))
* m( k, Q! m0 R" V# f2 j - (polar (polar p1 a1 (* du (/ hstl tile))) a3 (* -100 (/ hstl tile))) (polar p1 a1 (* du (/ hstl tile))) "")
$ q4 S% F; Q e& T6 T - (setvar "osmode" om)
8 z I! Y# q u6 { - ))
5 p3 C2 S( ~) Y, G3 n - )
5 A$ F. e" E& l0 f
7 @% K& W! v- k- j& e" z# H9 C- ;;;=== General Utility Functions ===* F1 u$ C# n* u; m- N
- / D! a4 V4 y+ X% g; c6 Y) n" r
- ; R12 compatibility - In R12 (acad_helpdlg) was an externally-defined ; v* x' c/ H2 z1 {
- ; ADS function. Now it's a simple AutoLISP function that calls the
$ o# W) R7 {2 Y' S. V - ; built-in function (help). It's only purpose is R12 compatibility.
" ?( e! r. ~6 B1 ^' H* N- | - ; If you are calling it for anything else, you should almost certainly
% X7 j. O( a% r6 o3 d - ; be calling (help) instead. 6 h. c! t; I% S8 f+ _ g
-
- E+ U$ ?! U, Y6 @# Z - (defun acad_helpdlg (helpfile topic). `; o7 @) p1 g$ H
- (help helpfile topic)
% n+ S# `4 I6 _' U0 a8 M2 z - )9 @3 m7 S% _, i
- 1 C& F2 }# @2 Z# T) l
5 \; \5 |1 K. w' x# ]; M- (defun *merr* (msg) F* D* u4 n1 H+ J! D1 g+ W
- (setq *error* m:err m:err nil)
3 e0 C+ ]/ k; K% ?2 M - (princ)9 r0 Y Y/ U( h- S# f
- )
3 T; [; q! O8 t( s
+ u# D2 Q2 ]. u& L9 q$ k& H4 I- (defun *merrmsg* (msg) K" F+ P, U' g9 f5 d
- (princ msg); R& g0 }( N8 ~" d4 `$ T% M1 x" Y
- (setq *error* m:err m:err nil)
7 U! A! Y [- x' W5 U - (princ)
% K, r0 L+ S1 m5 C) Y% }/ F - )
W6 R! ]5 _8 j. Z$ V7 [
: ^/ s# k( g) M' h( b- ;; Loads the indicated ARX app if it isn't already loaded# B4 e0 J' Y% `5 ~7 c% k
- ;; returns nil if no load was necessary, else returns the1 Y8 D$ a/ @: `) F
- ;; app name if a load occurred.
9 k9 v' y+ U% w9 e9 Z7 m - (defun verify_arxapp_loaded (app) 8 B6 U3 a4 J- o. D- J$ G
- (if (not (loadedp app (arx)))
" m) x6 s4 }& j$ E - (arxload app f)
; h9 P T. e B( j3 x' T - )4 k) J5 `) E& O4 s4 J, D
- )5 ?9 n7 ~0 p7 u* b" Q/ I7 S) I
+ L7 ?/ u E) c# o- ;; determines if a given application is loaded...8 I" T- R+ b! l- [7 ]4 g6 Y: v" h
- ;; general purpose: can ostensibly be used for appsets (arx) or (ads) or....1 Z3 S {& z( Z% q
- ;;# [2 k! u' ^( m& w
- ;; app is the filename of the application to check (extension is required)
' ^! z, C- B# ^& z# Y. g - ;; appset is a list of applications, (such as (arx) or (ads)
* i* [" v; `! ` - ;; ' E! b2 y2 C- N: N K; p( l
- ;; returns T or nil, depending on whether app is present in the appset
% x! D5 L; n, ~: y3 {" N - ;; indicated. Case is ignored in comparison, so "foo.arx" matches "FOO.ARX"
% @2 m" E+ L4 ]7 m* B$ N9 t - ;; Also, if appset contains members that contain paths, app will right-match
* d1 n4 t" q" L - ;; against these members, so "bar.arx" matches "c:\\path\\bar.arx"; note that) R; p! ]. O4 k$ v x: S
- ;; "bar.arx" will *not* match "c:\\path\\foobar.arx.". x! K3 u! k6 b5 m; V
- (defun loadedp (app appset)
/ B$ n2 ~3 T, y6 {7 S& D2 J5 y6 ] - (cond (appset (or
4 f- }1 m! a ^) U! L - ;; exactly equal? (ignoring case)
, t9 E" J7 \$ d* B2 ~ - (= (strcase (car appset))/ H% L$ g# B0 S# T: R
- (strcase app))
' i/ F5 z. b8 g3 ?, \ - ;; right-matching? (ignoring case, but assuming that
+ L5 @8 J; N# w2 c) H' I8 d8 { - ;; it's a complete filename (with a backslash before it)- N5 @% N9 R4 g/ f1 Y7 @! Z, a
- (and
& F4 I) [: n# Y$ I1 u- W+ A - (> (strlen (car appset)) (strlen app))
" w' \1 C! _6 F! l - (= (strcase (substr (car appset)
; n V* b( j1 F; x1 |- B - (- (strlen (car appset))
1 R3 @7 i! Z/ J2 I - (strlen app) / p! |7 e; s5 S, Y
- ) 6 s# r9 W; @% @- l# u
- )6 [! ^- y: L- s9 q# ]
- ) ) Y0 }5 @% `, m. M5 D$ \% V: t" i
- (strcase (strcat "\\" app))
$ _4 S! T* `+ u& q - )3 q' V( ^% ~' c
- )& W( n- q( y+ a
- ;; no match for this entry in appset, try next one....# `$ B* l$ J. A* s. k
- (loadedp app (cdr appset)) )))
" a1 {& C1 L. t9 p Z) E# W7 r+ y; A - )
+ Q9 W R! l$ y6 l) B! ^
5 m4 K9 ~8 g9 s7 J3 S/ a, l- 5 {. [* S/ m1 F$ v
- ;;; ===== Single-line MText editor =====
4 g- F! n9 S% o$ t - (defun LispEd (contents / fname dcl state)
; r: P7 Q( t9 d5 b$ ~ - (if (not (setq fname (getvar "program")))
% s$ Y9 o+ ~3 {& l# C - (setq fname "acad")
N$ s5 ?; n7 E% Q$ d6 U4 ^6 k - )
* ^. R- v$ c" P9 m. q2 ?5 U - (strcat fname ".dcl")
0 G% A* _% Q" a- ^. Z - (setq dcl (load_dialog fname))
6 X0 U8 d( [; y" @# p8 C# v - (if (not (new_dialog "LispEd" dcl)) (exit))
* W" g' e0 T0 \' M - (set_tile "contents" contents)
; Y" @* s. h0 n8 h- q3 P" i$ q - (mode_tile "contents" 2)* ~2 l; a1 n* O& }4 u. Q3 a
- (action_tile "contents" "(setq contents $value)")
7 Y- ~ J2 U3 x) L0 k2 E7 v - (action_tile "accept" "(done_dialog 1)")
3 S# B* L0 G1 B2 X; a8 p& @! k. ?1 X9 b - (action_tile "mtexted" "(done_dialog 2)" )
; N( C5 C* @- P' c/ Z5 r1 r - (setq state (start_dialog)): z; e" I: r$ ?. @' [( r' O
- (unload_dialog dcl): G9 J7 z/ a% W0 X5 V+ z7 `7 m
- (cond$ i0 r d8 y, r
- ((= state 1) contents)) A, }* X5 V: [ V
- ((= state 2) -1)
, b6 J1 |& M2 p( j" n# t' d2 | - (t 0)& g9 n4 `1 g( M9 m9 T: V
- )0 B" d8 k+ B) P- s2 X
- )$ w* }( }+ D$ n+ a7 z9 p i
- & \ V! T+ K* C3 D
- ;;; ===== Discontinued commands =====
/ t3 P0 Y5 ~; r" | - (defun c:ddselect(/ cmdecho-save)$ a9 j1 Z, Q( {- x8 ~9 N
- (setq cmdecho-save (getvar "CMDECHO"))' o, {2 l7 u3 R- i
- (setvar "CMDECHO" 0)0 P( B3 T- z& m1 b6 B% ^+ Z, Q/ q
- (command "._+options" 7)9 m4 \3 \4 a& [- T; D
- (setvar "CMDECHO" cmdecho-save)
0 r$ }4 U# @0 Y& [/ t3 p0 W$ N - (princ)" p1 P$ b; y3 \# c
- )3 N. J' |$ W( m! ?
- ; f0 y5 |6 I! Y* H$ s
- (defun c:ddgrips(/ cmdecho-save)
5 o7 K8 T. h, w" \ - (setq cmdecho-save (getvar "CMDECHO"))" q+ k @3 f! Q% M: o9 L8 k; o
- (setvar "CMDECHO" 0)" K$ v; V+ U4 d5 c% H5 k1 K
- (command "._+options" 7)( X0 }: J6 e4 l+ v2 ^5 u
- (setvar "CMDECHO" cmdecho-save)
$ l3 R) p4 h& S0 d6 k( K0 y - (princ)5 T( t& C0 h) G/ X+ ~5 }
- )
+ a# v7 @ c4 {: j) @$ R$ J
3 t' x+ ]" B$ ` E1 J T- (defun c:gifin ()
8 p6 {7 j ~5 a6 Z6 H* G: {# w - (alert "\nThe GIFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
! v1 c- k- U8 v - (princ)! U2 S, h0 _- ]6 N
- ). X# A. f0 P/ c3 T
- # ^. {5 j" F, g, }. O% w1 s4 H4 x
- (defun c:pcxin ()
1 [4 }7 n0 p7 m# V4 P - (alert "\nThe PCXIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n") P- ?# D! \$ c V3 f' C
- (princ)
/ `; w6 q, E+ O `' G! @$ ` - ): z' @5 x0 S! f2 ~
- 6 m; o$ ^1 D) \$ w7 C7 |
- (defun c:tiffin ()
4 @* Q7 J8 J" W% F; t - (alert "\nThe TIFFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")9 a9 @. h% f; a9 v
- (princ)
9 p! a" n" }; f2 @/ B - )
D, q b, b$ {4 _( P/ o! m - + Q4 [4 S5 y9 m: l+ q/ K& v
- (defun c:ddemodes()
f5 `" p% I6 h( c - (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.")
8 W5 Q% q: _4 U5 f- k - (princ)
; `' u; l6 }. I6 f* ~/ ] - )
0 ^/ c" p3 b9 B$ t6 H. L
: a) k" o5 Q# `* T- (defun c:ddrmodes(/ cmdecho-save)8 G( ]$ G& _5 H& j* p
- (setq cmdecho-save (getvar "CMDECHO"))! f3 u# ]' L) G2 A; a3 m
- (setvar "CMDECHO" 0)0 [7 O" p. a; O) }7 G: O! q6 l( K
- (command "._+dsettings" 0)7 X- Q7 C. @$ b% K$ j& V* e7 E" X
- (setvar "CMDECHO" cmdecho-save)
8 b% A0 C9 r3 M9 R6 I1 U: u8 o - (princ)9 G3 ^/ P9 I1 c( _4 S9 g
- )
9 Z) W5 ~4 }3 ?- ] - % G. G! V# R4 E# O' z. O
- ;; HPCONFIG
. e: a0 T8 e6 t: d: M5 k4 u1 D - (defun c:hpconfig (/ hlppath)
$ [1 `6 x8 z% H+ d- n( o5 o# z6 C1 e - (if (not (setq hlppath (findfile "acad.hlp")))# E/ ]' N8 ?0 S( z6 v0 K# r' z
- (setq hlppath ""))
! s4 R+ p7 x6 L" D0 K6 G8 V* W - (help hlppath "hpconfig")0 G2 i# d" _- A y# O8 j. q; _- `7 N
- (princ)
" A1 ]* s" F" f6 i2 \ - )) Y/ D. g4 p" b% ~+ j Y: ^
8 Z! r$ p, m$ b. t; B& P- ;; OCECONFIG
7 K9 ^; {3 h5 e' E* h5 m - (defun c:oceconfig (/ hlppath)- [# \% I+ C" l$ e* L" E1 c
- (if (not (setq hlppath (findfile "acad.hlp")))
' k a: I0 Y' q8 M( a b2 I - (setq hlppath ""))
6 A* t! G) G8 R! d/ m- }8 I - (help hlppath "oceconfig")
; f' D R: v& R. K, M - (princ)1 t2 M3 @8 W/ l' a# D- X1 P
- )0 @+ B/ I* c2 h5 E
- 4 K* N$ }- G. e v/ Z! @
- ;; CCONFIG
1 o8 u! w- `" g* ? - (defun c:cconfig (/ hlppath). v+ O; I0 {" I* d o
- (if (not (setq hlppath (findfile "acad.hlp")))+ ~6 [8 Q* u% I/ P4 B: U
- (setq hlppath ""))$ j0 G% E% f% Y I) h% }
- (help hlppath "cconfig")
" z! D2 E g0 ]" ? - (princ)7 B; \9 Y+ s6 d% _
- )8 D$ B# c2 ?: |
- 8 n0 L4 j% B9 r) Y# T5 Q$ J* q
- ;;; ===== AutoLoad =====
( @0 L( f& ?* h2 A1 [# S - }+ N/ J$ O- r$ _1 l4 ^& b. r
- ;;; Check list of loaded <apptype> applications ("ads" or "arx"); w H- F" \+ g6 m+ `, |
- ;;; for the name of a certain appplication <appname>.- I) D8 m3 R& q& I
- ;;; Returns T if <appname> is loaded.4 u+ y/ V8 s+ w' b' b1 ^& y5 ?
9 h1 l: t5 d1 b% J$ Z1 W6 _! [- (defun ai_AppLoaded (appname apptype)
) E. `$ c( d/ f% V% k i - (apply 'or, T8 N, v8 c' v" b
- (mapcar
& O6 A B+ @3 z- V+ N- C& b" R - '(lambda (j)
+ _0 i% w* h. v6 {6 Z1 c - (wcmatch6 [7 L2 d3 O; Q/ X# P
- (strcase j T)3 s1 o! A$ Q! o$ c9 N
- (strcase (strcat "*" appname "*") T)
( ?6 s& U' ^' k N% v - )
8 b. L" i% a! p% a, q0 d4 G - )+ h4 M- n( j9 S! m. {; |' [
- (eval (list (read apptype)))
3 x- M6 S1 |2 `2 |% {, z - )
* |/ ~$ H; N2 t. v; d - )* v* R/ n! ~' U% y' V" E. S, U
- )
# W4 ?6 l- F/ n- B( x: W1 }* p( d - + a' U+ a! }) n7 X; _
- ;;
" g. K b) q9 ] - ;; Native Rx commands cannot be called with the "C:" syntax. They must
0 m8 }+ f# q9 g- _- _ - ;; be called via (command). Therefore they require their own autoload
% e* ?: Z: R: E% O+ p& a% F - ;; command.
0 J8 d9 f+ b! W. Z
. ?- P( C3 N8 e$ S' P1 {2 L- (defun autonativeload (app cmdliste / qapp)3 ?2 i, M! y9 m1 H) M7 s' ^
- (setq qapp (strcat "\"" app "\""))
+ K4 B- I$ r& G2 l! W/ ~ - (setq initstring "\nInitializing...")( Z8 u* ^! l3 z2 Y$ u
- (mapcar
9 \+ a5 S1 t2 `; [ - '(lambda (cmd / nom_cmd native_cmd)
- ~ _( O" a* [# w( \ - (progn
! ?, I4 j! p! `) X( i1 q" k1 i - (setq nom_cmd (strcat "C:" cmd))
9 X6 z; U* L! b1 z, `1 V/ Z6 ~ - (setq native_cmd (strcat "\"_" cmd "\""))5 Y- |) i2 S; n/ ^# _
- (if (not (eval (read nom_cmd)))
( i/ I; k5 z2 O: ] - (eval) [9 {+ t& `3 r7 E
- (read (strcat
; f/ h' F/ B8 ~! \& e- u9 k5 B - "(defun " nom_cmd "()": a, Q5 F: H. E, {$ M1 t i
- "(setq m:err *error* *error* *merrmsg*)"
* v8 D5 L( Z0 K# u- [7 f0 R - "(if (ai_ffile " qapp ")"
# a4 M3 m+ _$ _3 e. e! \+ F - "(progn (princ initstring)"
" ]( m) d3 @. f0 A) E- L - "(_autoarxload " qapp ") (command " native_cmd "))"
3 [$ N8 D) l$ N, T - "(ai_nofile " qapp "))"; W r& @ ^# {- w
- "(setq *error* m:err m:err nil))"
) a' g) @1 n l8 I - ))))))
* w1 L/ V7 q: p9 b- `1 c4 | - cmdliste)
! Y, a; V+ U/ v% H- l - nil, d3 }' S% s/ l
- )/ u0 V! f& L7 z+ ?& z7 l' g
8 I3 ~. U& {, ?% g( C4 O4 Q% P( ^- (defun _autoqload (quoi app cmdliste / qapp symnam)3 T' ?" F z9 U: _
- (setq qapp (strcat "\"" app "\""))
* |% n; o# x7 A& x O: C - (setq initstring "\nInitializing...")
& ~9 \6 J+ k% N - (mapcar
1 G: U) a0 E3 r* E, z! m3 Q - '(lambda (cmd / nom_cmd)/ B1 ` e# {! C! j" d
- (progn) U: r1 @* l) r+ j
- (setq nom_cmd (strcat "C:" cmd))
! H5 `! M. i9 x; ^( [ - (if (not (eval (read nom_cmd)))6 H9 [& {+ X8 d+ u) J
- (eval
5 b8 u/ @7 e* | - (read (strcat b* _5 \* Q: C& F
- "(defun " nom_cmd "( / rtn)"
0 N6 {% d9 V* J! b/ k& g. K" u% n - "(setq m:err *error* *error* *merrmsg*)"* o' @& O9 N% H1 n% G A
- "(if (ai_ffile " qapp ")"
2 ^0 t& M" o! n6 H - "(progn (princ initstring)"
# \5 T5 g, R: K$ [: ] - "(_auto" quoi "load " qapp ") (setq rtn (" nom_cmd ")))", M$ _5 V- {0 {4 n @1 D: f }
- "(ai_nofile " qapp "))"
: b5 t5 C# S7 r! i0 D$ v& M9 N - "(setq *error* m:err m:err nil)"! k2 h* A" E- g( h1 X+ d
- "rtn)"
7 [5 i7 v# c% }$ t - ))))))1 \6 }. \; Y; n2 W6 u) F- O
- cmdliste)
$ j( R9 ^% ~- v. { G; z1 } - nil
6 }2 [5 `% I/ c# i, e6 n* B - )7 X' `, m" ?& n5 u* ]0 ?! F
) _! d8 e" U$ f) I4 @2 b v- (defun autoload (app cmdliste)
$ S4 O' I+ E- i; A# P4 v! K - (_autoqload "" app cmdliste)
( \9 Q& y1 x2 Z. |% Z - )- D: P9 I1 L, q( D6 b9 D
- . F/ k) l9 C6 H) Z5 ^) `9 K
- (defun autoarxload (app cmdliste)
+ A( a: ] K% Y. u* F - (_autoqload "arx" app cmdliste)
4 ~; d+ e" g7 r8 r+ H! j - )
0 o1 P: g" v9 ~& p5 N
# f; D6 E ]* m5 `- (defun autoarxacedload (app cmdliste / qapp symnam)
" H; ]7 j9 z: f! G - (setq qapp (strcat "\"" app "\""))
' @/ E0 X; }1 ]- o2 U" h+ f - (setq initstring "\nInitializing...")
" L. V: t% `0 U! q+ N D7 n# | - (mapcar
( d9 j/ p) e8 O; i; P2 t7 y: | - '(lambda (cmd / nom_cmd)$ k7 ]& h+ ?" U" x# [* R; W
- (progn
' @/ C' y4 q/ E; e7 Y - (setq nom_cmd (strcat "C:" cmd))
. ]! V2 ~7 Q) t' u% X - (if (not (eval (read nom_cmd))) W4 ~# y$ y; x e4 X% R q" d
- (eval
$ r" A% Y4 H- U - (read (strcat
- A% o# G5 j6 ~( Y: d% V - "(defun " nom_cmd "( / oldcmdecho)". U0 l5 G. U b& `" O& Z
- "(setq m:err *error* *error* *merrmsg*)"; e8 t8 x, Z2 ~4 S: g
- "(if (ai_ffile " qapp ")"6 a4 Q- b# n8 i. Q, f
- "(progn (princ initstring)"' D7 M5 _, f! J* j# o, Q
- "(_autoarxload " qapp ")"; l( w% ]3 \/ ~+ j' v5 }' L; E
- "(setq oldcmdecho (getvar \"CMDECHO\"))"
6 x% ]3 P) o5 s j, d - "(setvar \"CMDECHO\" 0)": w" C! D/ x* j; }- I
- "(command " "\"_" cmd "\"" ")"
8 k4 `" k l1 D# ~: p$ t) x - "(setvar \"CMDECHO\" oldcmdecho))"
0 z. c4 A! G, `. {& z/ U: w% n - "(ai_nofile " qapp "))"; a. u( @4 k: g9 j, Q. y4 Z( G
- "(setq *error* m:err m:err nil)"# m) O4 O& ^1 V9 _, Z
- "(princ))"
8 P. v8 v% E# z' Q - ))))))* T0 @/ o7 g; p( z' u4 o9 u$ }6 y
- cmdliste)
9 }1 Y" t J; k1 ` - nil6 I: [( }9 e, ]2 M8 K* J6 E. B$ A
- )" V7 s* y6 m. a5 G% o5 M: b
- Y9 c$ d C. `3 \; x/ U( N3 F" D+ `
- (defun _autoload (app)
: f9 v' \& u- O' `7 F - ; (princ "Auto:(load ") (princ app) (princ ")") (terpri)4 m3 ^6 U" S! g- f7 ?9 b: K- Z
- (load app)
% x# h6 x0 R/ o( p. K3 Y! M, B - )
/ B5 k% @# k2 C3 x' \: S4 o7 h4 v d- \- m - 6 ^( K. Q! {( V8 j
- (defun _autoarxload (app)
' s( [, a+ e6 Y, T& u5 J- O - ; (princ "Auto:(arxload ") (princ app) (princ ")") (terpri)
' H: j; f" ~: ?- t4 { - (arxload app)
+ g( a: h& j6 i3 y! }, s5 G" i1 z - )+ o9 R1 J# M( T# V, u
# R. d/ s( ^1 h. d- (defun ai_ffile (app)3 u9 k7 n5 O( H# S% `! ?0 x
- (or (findfile (strcat app ".lsp"))9 O9 `" m$ k; Q4 q# n6 s! I
- (findfile (strcat app ".exp"))
h& k. h$ N% U! z( j - (findfile (strcat app ".exe"))
1 F/ K) l8 e% | e+ k. C9 r# S' u- { - (findfile (strcat app ".arx"))/ W5 U6 ~/ X6 w
- (findfile app); ~/ J8 z( G* y) U* K
- )* ], R0 ~) u3 S, D
- )
* n. m3 e6 G; u' W% X3 E- }2 u/ s - " a: k8 v) \0 y0 w
- (defun ai_nofile (filename)1 p! W3 Q3 a& W) d& J: \# @. K
- (princ: v7 `! g6 g5 W% F8 R
- (strcat "\nThe file "
, L4 Z) y5 q% t4 m - filename
9 A, O3 L# N2 \" Q1 R - "(.lsp/.exe/.arx) was not found in your search path folders."6 J1 [3 Q/ e! m
- )
$ ~6 f7 h# y8 X7 U. r - )
9 H. P4 _0 T h - (princ "\nCheck the installation of the support files and try again.")3 ~0 k# i" P4 K, E
- (princ)
! w$ N0 Q6 d- [6 E6 [2 K* ~ - )
* v$ J2 k6 [, J& h" b - 6 l5 }2 u/ B( C! G% j) R8 Y
7 l: M1 g- h" w/ T0 p1 P: k( @- ;;;===== AutoLoad LISP Applications =====
; j$ @6 P, f& o! d' P6 U - ; Set help for those apps with a command line interface
; u& a" C' g' w) S7 X
: ]) J% l6 H5 e6 r7 U7 \8 @- (autoload "edge" '("edge"))( |! M k: ]. }9 q: A( G* X" c. \" v
- (setfunhelp "C:edge" "" "edge")
+ ^ s( N* f) w P
' D, S, p5 `8 K R" ?8 r- (autoload "filter" '("filter " "filter"))
9 T& y" D3 N7 K$ G# A: t N - 3 c h) F: E6 i- q. P! A. [$ P) o0 {
- (autoload "3d" '("3d" "3d" "ai_box" "ai_pyramid" "ai_wedge" "ai_dome"7 J) o+ S# j7 b8 V
- "ai_mesh" "ai_sphere" "ai_cone" "ai_torus" "ai_dish")
3 q$ D& P4 L9 V! I - )
" r" u# y6 D: G7 d - (setfunhelp "C:3d" "" "3d")
3 K5 @* l5 M! q# q, T- N, ~, C1 | - (setfunhelp "C:ai_box" "" "3d_box")0 K: n& m9 g& p `
- (setfunhelp "C:ai_pyramid" "" "3d_pyramid")
! J# T F. J6 e' X - (setfunhelp "C:ai__wedge" "" "3d_wedge")
& ?# K( T) ^" P, O; X' B( j - (setfunhelp "C:ai_dome" "" "3d_dome")
# |* C1 M g/ K& H: B - (setfunhelp "C:ai_mesh" "" "3d_mesh")
$ u( i2 z c' f2 k - (setfunhelp "C:ai_sphere" "" "3d_sphere")
. j5 f7 G! U& r+ s - (setfunhelp "C:ai_cone" "" "3d_cone")
+ H* D; N! \! ~6 R: h( k - (setfunhelp "C:ai_torus" "" "3d_torus")
3 ~" X8 z- l% x# n Z& R - (setfunhelp "C:ai_dish" "" "3d_dish")
+ w3 u5 u: y5 V- I) z5 f. o
# Q& V4 Y2 N0 t H. a6 W( H- (autoload "3darray" '("3darray"))( m+ R4 a% E% K1 Y
- (setfunhelp "C:3darray" "" "3darray")( f! n1 E6 n8 K0 d2 p+ b' z, E
- ) ]2 A6 N% m6 ?! q* s! n5 t L( R
- (autoload "ddvpoint" '("ddvpoint"))
- d% k8 `( x, i! {4 [ - 1 J$ k( C3 Y, D! C8 f
- (autoload "mvsetup" '("mvsetup"))
6 [. C; y" j" y( t9 G$ _, z - (setfunhelp "C:mvsetup" "" "mvsetup")6 D) y* p; \. \
- 2 u6 _( p& l$ L g, ^
- (autoload "ddptype" '("ddptype"))
^( X0 H4 `/ x5 V# l7 n0 r
; ~1 R1 S4 F/ y e6 D) ^- (autoload "attredef" '("attredef"))
9 Q! Y, b% r5 k/ j( l: @. A3 ? - (setfunhelp "C:attredef" "" "attredef")
" S5 N! ]1 T- ^& t5 R - 3 a/ [$ [0 W5 _0 _" j3 d
- (autoload "xplode" '("xp" "xplode"))7 Q) c D; I$ b
- (setfunhelp "C:xplode" "" "xplode")* m* X. B' N6 g. m/ I; I$ J- S6 E. ]$ r
- ; k' q& H8 i2 {" D2 J r. s
- (autoload "tutorial" '("tutdemo" "tutclear"9 E8 ]5 F1 q: M0 `. _
- "tutdemo" ! x; C3 A% Q4 S7 v5 h
- "tutclear"))9 R+ v' w: k- h
- ' B+ a: {1 ?& x
- ;;;===== AutoArxLoad Arx Applications =====
0 V- [+ v$ _, W8 _* |& J, _. L- k - 9 p" ` ~4 G9 u$ w! w* D! H
- (autoarxload "geomcal" '("cal" "cal"))
( `5 K# Z6 u% i
% F- W, N6 n! ?9 o" t- Q/ D- (autoarxload "geom3d" '("mirror3d" "rotate3d" "align"; a; r! ?5 Q# x& p6 K
- "mirror3d" "rotate3d" ) R! k; M4 C8 g6 Q2 M
- "align"))% [. U1 d5 R I+ ?2 x
9 C m: A8 V" |! P2 D3 W
& h9 [3 B+ g6 u- ;;; ===== Double byte character handling functions =====2 j3 p2 @3 B" a" J6 ] b" z
8 x# O: r" G8 n1 L$ @- s3 x4 X- (defun is_lead_byte(code)6 {& r6 m# ^+ k1 s" Y( Y
- (setq asia_cd (getvar "dwgcodepage"))
# Y1 j }" v | - (cond P3 F: N7 u. c- ^$ Y. b1 f
- ( (or (= asia_cd "dos932")9 ?6 c$ d E9 `! k
- (= asia_cd "ANSI_932")
- V# ~2 w5 x1 j9 D - )
. e2 J) t# v, M3 `5 n - (or (and (<= 129 code) (<= code 159))! a; n' t$ A; ?" A/ E
- (and (<= 224 code) (<= code 252))5 p+ w. R2 E7 h0 G8 s# q3 {) E+ ~6 A
- )
7 V5 c8 N& Y& \5 t9 R: o1 F5 [ - )/ B/ P; g/ t K
- ( (or (= asia_cd "big5")0 \/ U- |- ^; O- i% e6 M* {; {; M
- (= asia_cd "ANSI_950")4 }( b" M0 x1 A+ A4 n P
- ) K2 ]' Z; H0 o" A
- (and (<= 129 code) (<= code 254))" y( a* p7 [1 W5 X+ q
- )
. w/ j% n+ C. @ - ( (or (= asia_cd "gb2312")" P: C. ^8 ]0 e$ K
- (= asia_cd "ANSI_936")
7 N4 O! I; a# P8 E) _ - )
4 w0 @* ` a8 a5 L- e" s- F+ Q - (and (<= 161 code) (<= code 254))
7 {3 B# ]5 \( T - )
+ e3 h& L5 [' k" o8 W3 L% g - ( (or (= asia_cd "johab")% b1 e3 h3 C& Q1 z
- (= asia_cd "ANSI_1361")7 O+ b# @+ l7 H, o; e. ?
- )
! W8 L( K) N+ O/ e' B# H; J! O - (and (<= 132 code) (<= code 211))
- k$ u: a# Q$ Y- W5 d/ w4 s - )
4 l' u/ k. f! ~- w3 C2 i3 `' h! V - ( (or (= asia_cd "ksc5601")
7 s) ] ?4 ~) z, d l5 B2 h9 G - (= asia_cd "ANSI_949")
7 D1 W. u4 o/ [2 I - )% d( R9 N( a) W0 A* ^* N0 t
- (and (<= 129 code) (<= code 254))
( d+ G9 p H/ o - )+ V8 _ `) h/ ]! M
- )
6 x: n4 [. W* }. O. ~3 W: Q. l3 C2 ^; j - )9 e3 v. t; ]1 b* ]
- 9 J2 E; \3 z9 H n$ y* O: R- n8 n
- ;;; ====================================================7 y$ T; T- ]: `# K( D8 W$ S
- & h+ d, l& a: ?3 G
- 5 Q8 e/ ]& E+ h8 x
- ;;;
9 [6 X1 L+ `2 ~- S ?3 Q$ L - ;;; FITSTR2LEN
/ L* m$ q/ S1 _3 N& r8 I* K - ;;;
1 q5 G$ ]$ w$ d2 }( z+ J - ;;; Truncates the given string to the given length. & M8 F: i% ~' |8 ^
- ;;; This function should be used to fit symbol table names, that6 F' }% M/ g# E i" z1 k
- ;;; may turn into \U+ sequences into a given size to be displayed- b9 c: R2 {( j O
- ;;; inside a dialog box.3 l: z0 g) G: M+ o- n, {, B* {) p
- ;;;
& \: H: @5 |: y1 T, p - ;;; Ex: the following string:
3 W3 T+ c' ~6 \: D# Y7 r - ;;;
& j% Q3 N# i) F - ;;; "This is a long string that will not fit into a 32 character static text box.") H) u- j. c$ I5 t0 m/ U' u
- ;;;
. _8 C/ A) M* j' N - ;;; would display as a 32 character long string as follows:" \. g! d+ e# E: m
- ;;;
) x( E7 K& l. Q$ L - ;;; "This is a long...tatic text box.": T d: Z& e J' q/ U4 D, q5 J
- ;;;" m/ E* Y5 s s9 j5 T
- ( h$ S4 Z) t% g |$ m2 [( c" S
- (defun fitstr2len (str1 maxlen)
) z$ _% F0 J( ]6 C3 S% _
! Y r: c& Y, a y- ;;; initialize internals) @0 S. C7 ^2 j4 F+ N0 G
- (setq tmpstr str1)' T, p4 B! ~ I
- (setq len (strlen tmpstr))
" ?0 f' P4 B1 Y9 z$ e" ? v8 O, \
5 ~3 x6 j$ F2 t( F5 U6 g4 F" |5 w1 }" m- (if (> len maxlen) $ d2 d; V- @6 x* J# a3 F4 P
- (progn6 t1 K- _2 P; w; q8 @
- (setq maxlen2 (/ maxlen 2)) N/ u7 e9 _3 s" i
- (if (> maxlen (* maxlen2 2))" q( ?6 q5 h0 b. W0 k
- (setq maxlen2 (- maxlen2 1))
, H6 F# N3 Q/ @$ d' }7 ~ L - )
2 L7 }( Z; _ u d0 m. F - (if (is_lead_byte (substr tmpstr (- maxlen2 2) 1)), N- k; w6 r, H+ k
- (setq tmpstr1 (substr tmpstr 1 (- maxlen2 3)))
/ J3 A( |8 N# t7 _" P - (setq tmpstr1 (substr tmpstr 1 (- maxlen2 2)))- I$ ~5 X% \2 c* k
- )6 k6 @& P: K( `, }+ U2 S
- (if (is_lead_byte (substr tmpstr (- len (- maxlen2 1)) 1))& y: x8 _7 X+ v) ^/ r2 ~0 x
- (setq tmpstr2 (substr tmpstr (- len (- maxlen2 3))))
7 _* H8 I. Q' @: j0 o0 b) x - (setq tmpstr2 (substr tmpstr (- len (- maxlen2 2))))
6 z* ?9 o9 u0 U- S$ a- n - )5 J5 n4 s9 H, I6 C C
- (setq str2 (strcat tmpstr1 "..." tmpstr2))
7 H6 T3 l y/ F, ? - ) ;;; progn
* I* z( a$ \9 S4 n2 S% Z* b8 a - (setq str2 (strcat tmpstr))
" ^6 y$ i0 e9 W- A# S - ) ;;; if
6 h/ Z/ X* n$ _1 z6 }* P) `! u - ) ;;; defun9 U$ m- N5 c6 v) u1 K" {& ]6 d
- {; h X8 b# O6 s( c
- 1 s. a) _" z! R
- ;;;1 s" P& O8 f' Y, I
- ;;; If the first object in a selection set has an attached URL
+ W' G: e% w8 f( M6 l - ;;; Then launch browser and point to the URL.
3 i, J5 N f( h: [8 g5 o - ;;; Called by the Grips Cursor Menu# W1 J/ s! ^; r& L" }3 O2 f$ q+ t2 |
- ;;;' ~0 N$ i6 F6 Y5 |2 \ f/ N
- . x$ s5 m: Q4 E" Y( h
- (defun C:gotourl ( / ssurl url i)6 {3 S1 F: {0 y# G+ P. C
- (setq m:err *error* *error* *merrmsg* i 0)3 |; i. F: _+ }# i6 W8 ^! Z
: q* T8 ^# t8 p. X9 e0 ] q- ; if some objects are not already pickfirst selected,
4 M2 t" i. E4 T4 W - ; then allow objects to be selected
5 Q A! P; g# [( l1 N7 ^ - 2 k5 d* r6 A* Y9 F1 t$ I
- (if (not (setq ssurl (ssget "_I")))) y4 v& a4 {- |( x% K
- (setq ssurl (ssget))
" b8 F7 t- y8 y5 X6 k - )
9 D5 {* y8 ]" D' q& J1 D; N
. u$ b2 P9 c, M3 }- ; if geturl LISP command not found then load arx application
9 C! X3 ?" _! ^
. D5 Y% S x9 d3 g: q- (if (/= (type geturl) 'EXRXSUBR)0 C( l0 ~6 x- b4 [7 V) U; f* R
- (arxload "dwfout")
9 ~' q6 O" c6 ~' \/ G; Y) o - )
' i, P1 P" w5 H! y -
3 p) J5 u; n# [! z/ v - ; Search list for first object with an URL
* T" H( w+ \1 `+ z d! W - (while (and (= url nil) (< i (sslength ssurl)))
' z* p( r7 b! m% U) h! _ - (setq url (geturl (ssname ssurl i))1 B; F8 ~8 ?# p2 z
- i (1+ i))
- ?7 `5 B) t3 w* n- c - )
/ x( _! |) r+ G: N6 B
9 U0 g* |$ J7 z2 S- ; If an URL has be found, open browser and point to URL. K- e- W) q, p& Q8 |' ?
- (if (= url nil)
/ W: S2 h) k R( h9 q" B8 X - (alert "No Universal Resource Locator associated with the object.")
& e& j8 H) N5 }+ s4 q, F' `$ Y1 e8 G - (command "_.browser" url)& M# T( y! |7 D5 s1 o- _9 D
- )
7 M/ [6 R! }2 ~* D! g - " B! }$ r8 h E9 L" h2 ~3 t7 H
- (setq *error* m:err m:err nil)
( l% h' z. c( @2 ]% w1 _( Y - (princ)
9 y; @+ s# m8 H* r3 x$ P6 u
M. W: ]7 g2 ^5 S. b- )
4 O. b/ X/ x7 Q' a. p. W" X - + n7 s4 i# s! @
- ;; Used by the import dialog to silently load a 3ds file0 n, h) H2 Q$ F; Z3 H" C- r1 V
- (defun import3ds (filename / filedia_old render)
% Q3 [7 H% h) F2 F c - ;; Load Render if not loaded1 Z; j! Q" u5 n5 w1 [
- (setq render (findfile "acRender.arx"))
$ s1 H: N5 ?8 q9 f. ~ - (if render/ x- s% H/ ?$ a9 b! ~4 K; w
- (verify_arxapp_loaded render) ! y! m$ K$ K) R+ {2 c V9 g( X5 d. e2 ^
- (quit)
$ ~. N2 }+ _8 m$ v; L - )
, m6 V/ A6 \+ A1 q H: l - 0 |* ]7 [8 N" W' r
- ;; Save current filedia & cmdecho setting., \+ h: m6 Y2 b; S1 H5 H5 y5 V
- (setq filedia-save (getvar "FILEDIA"))9 k$ D( q: o3 H4 [# u
- (setq cmdecho-save (getvar "CMDECHO"))
{7 ?* m8 {0 M: F - (setvar "FILEDIA" 0)
9 `- q8 r: [9 E! c - (setvar "CMDECHO" 0)
( u# K" @$ B" A' i- F7 e$ _ - 1 F( q1 {( R: D' @" ?
- ;; Call 3DSIN and pass in filename.
: g- W. q" y3 S; F/ u" c - (c:3dsin 1 filename)
4 z4 X, M* G- n9 r7 x& K' V9 F - 9 c( y. ]* z# r% s% C! I4 \: ~. o
- ;; Reset filedia & cmdecho: r' t( [ X- d& ~- e
- (setvar "FILEDIA" filedia-save)
( e& o V+ n+ m& ~6 i8 q# z+ a4 ~ - (setvar "CMDECHO" cmdecho-save)
9 d" d( _6 e: a O2 ]- h/ u - (princ)& L5 j: w! m% ?7 ^3 O, q
- )
1 }# R5 I8 \ U& y, X1 c - + d- U5 M0 |) P; d
- 2 H9 c& x5 F4 |, ~/ F' B# I
- ;;;=== Menu Functions ======================================- b$ _+ ^# ^# M7 b9 n( P: W
& f: D% F$ ~9 i7 K- (defun ai_rootmenus ()& n$ ~/ P0 a5 m3 `% f* U
- (setq T_MENU 0)
+ C2 \1 w& j p - (menucmd "S=S"): y8 u( E s; D; Q1 J
- (menucmd "S=ACAD.S")
+ k2 `/ N; a5 f9 } - (princ)/ r x) H3 S% G9 H
- )& G7 l3 ?: U, w1 i
- + S* T# y2 Z/ N
- (defun c:ai_fms ( / fmsa fmsb)
# {( d8 ^7 |0 v- T - (setq m:err *error* *error* *merr*)
4 ]0 F. W4 g5 O1 ?% x - (ai_undo_push)3 Z/ l0 h& V* n
- (if (getvar "TILEMODE") (setvar "TILEMODE" 0))
7 }& G' Q0 _+ p- l& Z! ^ - (setq fmsa (vports) fmsb (nth 0 fmsa))% c3 o, n/ W* K' S
- (if (member 1 fmsb)% K) K; }/ r5 q, q. Q
- (if (> (length fmsa) 1). D' m+ d& C) t/ B
- (command "_.mspace")5 v t! Y9 f' X. G) @/ W
- (progn5 _- r- Q# c9 J
- (ai_sysvar '("cmdecho" . 1))
* F8 z+ j, u, l - (command "_.mview")$ y: B; G6 M x# U, i: Z
- (while (eq 1 (logand 1 (getvar "CMDACTIVE")))6 ~( v4 a7 t: C+ c" y2 M* {
- (command pause)
) D+ R8 U9 H% G' b - )
. F: q" I" g w2 ~# J0 _2 j# C - (ai_sysvar NIL)# W; y+ q, V; x8 t. ?* {
- (command "_.mspace")4 C3 J( D3 o" }5 k
- )( @# u; b8 ]3 e9 H* x
- )/ n; z# R K6 k# H/ L9 s* T
- )* o& _4 k6 R, L% }* _2 Y5 F. q# h
- (ai_undo_pop)! u1 y9 D8 ^/ f% f
- (setq *error* m:err m:err nil)( Q9 n# K. b% X9 s
- (princ)
) Q. X) I' i s3 Y8 X: r4 O3 z - )) W) }4 i% }8 l/ [# M3 l
& Q3 R% M: P+ Z" R* _- (defun ai_onoff (var)
! y5 T! i9 @! t# }4 K& I - (setvar var (abs (1- (getvar var))))
/ C2 J, p+ [" m4 V - (princ)" I- W4 ?& e) M; o3 _& m
- )7 o6 k( l* b4 \9 `2 U- q
- 0 H" E# g% y) [' L3 a C+ G& [, \
- ;;; go to paper space0 H- Y7 j9 Z I7 q, v5 o/ ?7 c4 b) x
- (defun c:ai_pspace ()
5 S& j5 F: b$ d; W4 x- x9 | - (ai_undo_push)
. @+ R- [0 A" M, b2 x+ v - (if (/= 0 (getvar "tilemode"))
* y# l* w3 o& h: J `+ Z9 E - (command "_.tilemode" 0)
" ]% |' i4 B$ G1 M4 X' e9 f a2 ^ - )
$ Z0 K0 b# g: l Z) D" r5 J - (if (/= 1 (getvar "cvport"))
6 f5 x4 |% l* C) s$ |' K - (command "_.pspace")
- P! o( m$ h, W/ H - )
+ P2 T; S1 V G! Z6 S+ f, t - (ai_undo_pop)
6 y; ~$ ?0 L6 Q( ] - (princ)2 _" p2 |; B" [6 {# ?, c) H: B5 ^
- )9 w; Q8 |& o3 Z; R
- " c3 k5 e7 g. k9 F4 t5 \
- ;;; go to tilemode 1
5 x3 d# t( c5 _. o - (defun c:ai_tilemode1 ()& s$ g2 W3 e# q# Z( b1 d$ ?1 r0 W( s
- (ai_undo_push)7 {7 x+ [1 u4 q
- (if (/= 1 (getvar "tilemode"))0 U3 u8 O0 l/ s! Y7 ^, k
- (command "_.tilemode" 1)
: j. i1 f8 m9 q/ O2 d H0 S' B2 } - ): b: Y2 a. z& e
- (ai_undo_pop)
2 l* x0 p4 g- d! x7 n - (princ)& Q2 L) b: ` ^: g6 [7 K6 h7 c9 e
- )
) a' R8 j! K( L% X+ m8 L" c+ D - 4 o" m, O! O8 `& Q6 r* c
- ;;; Pop menu Draw/ Dim/ Align Text/ Centered
1 w; s( S6 o; I/ ~7 P - ;;; Toolbar Dimensions/ Align Text/ Centered
9 C, M3 p2 p$ m1 {( `( r - / v6 x; N1 | U
- (defun ai_dim_cen (/ ai_sysvar ai_dim_ss)! [* o) F T! v+ _
- (setq ai_sysvar (getvar "cmdecho"))8 |6 p4 d1 g; _; a& F& X7 i
- (setvar "cmdecho" 0)6 G6 v7 _3 X: @2 H2 Q
- (cond& p& o) S+ i( M' h7 ]6 A
- ((setq ai_dim_ss (ssget "_P" '((0 . "DIMENSION"))))
4 i. `/ H3 P2 p3 D1 X - (command "_.dimoverride" "_dimjust" 0 "" ai_dim_ss ""
! r; }" P8 ]# s3 Z: r) _ - "_.dimtedit" ai_dim_ss "_h")
7 [1 l1 K' N; U3 t& m7 t! p; _ - ): Y3 F7 Q. n5 z* S
- (T nil). X" p" R3 t! Q6 t% j6 z3 M; }
- )5 {5 |2 W; I9 h- r ]1 q
- (setvar "cmdecho" ai_sysvar)
' d M% S* I6 G- C& W; z - (princ)5 H( o6 P7 }0 G; k9 e' O( C* |
- )6 k3 H2 t6 K* O( [+ E( z$ V
- $ D1 H1 @) [5 g. y/ G9 h
- ;;; Shortcut menu for Dimension Text Above 9 V+ q/ r: ], w1 q7 m& q9 M
- ) z: o7 \3 z o- u
- (defun c:ai_dim_textabove (/ ss)" B$ o! k/ C( r# v: e' }+ N
- (ai_sysvar '("cmdecho" . 0))
5 Y5 a1 k2 v& ~; b - (if (setq ss (ssget "_I"))
# y5 O, i. g% H - (command "_.dimoverride" "_dimtad" 3 "" ss "")6 O7 K: u1 u/ h0 s+ b0 T
- (if (setq ss (ssget))1 J7 A; p) S! A; V
- (command "_.dimoverride" "_dimtad" 3 "" ss "") 9 h- [' C; r& _0 E; Q3 z& N; v
- )8 g% Q1 o [2 X. K6 @( b' N- @
- )& b* m7 P& |/ n. G! F
- (ai_sysvar NIL)% i0 @ _" A+ c( m& b& {
- (princ)
3 {! \! W& S% S2 ~ - )
, p4 F) y* J# E) b" M
. ?1 j( Z6 q; o9 o0 I# s) r& l- ;;; Shortcut menu for Dimension Text Center
' r/ f: M) F9 b8 a) ~& o - # M2 w, y% Z0 B' Q) m0 w9 y
- (defun c:ai_dim_textcenter (/ ss)
5 i: s- l* ?, k8 m, S* I - (ai_sysvar '("cmdecho" . 0))3 _5 J. S1 A1 c! O1 T) z
- (if (setq ss (ssget "_I"))3 X7 X _3 i+ a9 u4 X1 H& }3 {. L
- (command "_.dimoverride" "_dimtad" 0 "" ss "")
/ q) m0 {) ~7 Y7 [8 u - (if (setq ss (ssget))
# o7 l. M' n1 k0 O3 c - (command "_.dimoverride" "_dimtad" 0 "" ss "") 3 z7 Z- Q1 j+ {9 E
- )8 Z$ D. e4 u1 A( `. g8 ] J
- )
* d9 `8 H o7 B! f! ^* U2 j - (ai_sysvar NIL)
( O: H8 H$ f2 S. W; _+ o) K! v& E+ \' d - (princ)- S; y, A: l, [
- )' S7 j7 [) |/ q/ ]3 V E4 s8 ]
# ~6 z1 K' k9 v# Y- ;;; Shortcut menu for Dimension Text Home 5 g3 i* v: c. B1 X' J& t* V
- / `1 j9 ^$ O5 c+ N
- (defun c:ai_dim_texthome (/ ss)
, l6 ?5 R4 Q# H; n1 [( Q& ] - (ai_sysvar '("cmdecho" . 0))
1 n C8 Q: s* E, b - (if (setq ss (ssget "_I")). j6 ]; p0 b" h# s
- (command "_.dimedit" "_h")) M5 P: [3 l/ H9 B) T1 \8 b" S( e
- (if (setq ss (ssget))
7 t9 [! T! g7 q3 z" [ - (command "_.dimedit" "_h" ss)
; g5 [: q+ P7 Q: K' o - )
' W) I2 A$ _% C* y% G - )
. o. T. Z* _$ Z( E% i - (ai_sysvar NIL)- T0 e- M8 U/ @# O+ Q& q
- (princ), {! X9 q, J' ]/ y' s! n% I- C, D
- )
% R4 V K* Z: l' z* \2 L2 _
( \& Z* d* f, C' q2 X: `
' O9 y; i4 O6 M& Y$ e0 E- ;;; Screen menu item for CIRCLE TaTaTan option.
" W3 N$ O, [; W, Q5 U# B0 a - ;;; first, get points on entities/ l7 M4 G$ z/ Q4 S/ L | B6 F2 B
- (defun ai_circtanstart()
# ~" |( T$ t0 n6 ] - (setq m:err *error* *error* *merr*)
% Y6 w; U5 E+ ~8 X - (ai_sysvar 0 z5 B" Y- c/ f7 N& w5 h
- (list '("cmdecho" . 0); N- k5 ^5 l4 k# Z7 L; O1 r, e( h
- ;; make sure _tan pick for CIRCLE gets same entity
! N$ f7 o7 u# k( V - (cons "aperture" (getvar "pickbox"))9 L9 n. L& \1 s) C9 [. J
- )
" |8 w' n- \# B9 A% V: K! v. D - ) j+ H. J# l* o+ M% r
- ;; prompts are the same as CIRCLE/TTR command option/ Z/ U7 Y' W0 V% N7 u
- (setq pt1 (ai_entsnap "\nEnter Tangent spec: " nil))
; [& G9 f2 e3 a1 X - (setq pt2 (ai_entsnap "\nEnter second Tangent spec: " nil))
4 \! \4 L1 f/ L1 T% ]9 M - (setq pt3 (ai_entsnap "\nEnter third Tangent spec: " nil))
1 k. d+ [, I: v6 z - )* b: ]* }/ u% j5 u$ C: a+ s
- ;;; Command-line version: @2 Z# n2 _7 X* u/ d9 d4 U
- (defun c:ai_circtan (/ pt1 pt2 pt3): N3 b* T0 H0 H. B. Y! y) @
- (ai_circtanstart)
- W. A- S$ }- ]( @0 t - ' o# P) r, t3 I" S4 t# a
- (ai_sysvar '("osmode" . 256))
' a" o- U- T! n$ [ - (command "_.circle" "_3p" "_tan" pt1 "_tan" pt2 "_tan" pt3)
/ m5 f3 T1 e& ^( X9 I% O6 ?& v4 y - 6 Q, s! C0 r* k" v, Q2 \# L& H+ E
- (ai_sysvar nil)5 d( [. W+ q8 O/ u- m) Y4 a
- (setq *error* m:err m:err nil)
1 C" P# w6 y! k) G* U$ I - (princ)
6 n% A& C7 U9 K - )
, W# [# y$ s( U- e - ;;; Use this if CMDNAMES == CIRCLE
" m- t4 g) n1 r& K! t - (defun ai_circtan (/ pt1 pt2 pt3)$ f( d2 B* Z! t( ^ t) d8 G
- (ai_circtanstart)( s; }+ Z4 M5 } x
1 x: W* k; Z! `5 ]& B. F( }- (ai_sysvar '("osmode" . 256))
/ W' d, D; T4 S; K& \ - (command "_3p" pt1 pt2 pt3)
# h6 n5 @+ t- J - & ~4 F) _3 p' c4 k
- (ai_sysvar nil)
+ {' s; H# f# Y4 t' x& R' l - (setq *error* m:err m:err nil)
1 _' @* E6 u+ B. \% [* a - (princ)+ f' X8 F; V, f4 P
- ). u" w- J$ b8 \5 L& j! p
- R7 F; d0 r! o. e( s% {; {; x
# A+ x* \. W/ W4 e8 j- 5 H" z0 P* h" z5 _
- ;;; Shortcut menu Deselect All item.9 U: `7 W# G# j! Y
- $ Y+ @) A, ]# A, Y' b- {
- (defun ai_deselect ()
# }" z& n# S6 _7 |/ w4 X - (if (= (getvar "cmdecho") 0) ;start if: Y; ]6 J( G4 P' C
- (command "_.select" "_r" "_all" "")$ e {* h7 p6 e, ~* b
- (progn ;start progn for cmdecho 16 D: ~4 k+ I) S, k4 ?+ Z
- (setvar "cmdecho" 0)3 N' _' A" R% z: s5 D
- (command "_.select" "_r" "_all" "")! j! y2 _) A4 |
- (setvar "cmdecho" 1)0 U# V4 }+ ]: z
- ) ;end progn for cmdecho 17 B7 v, z: y8 u; x
- ) ;end if
5 |6 p1 D: D( a* T5 I- v - (terpri)
$ d- o) _0 ]; l" J - (prompt "Everything has been deselected")7 n+ w1 b. b8 Z, i* j! q' q
- (princ)
9 ~2 H& x' |4 v# a+ p& s2 ~6 s4 } - )8 f9 t* Z3 v2 W) ~
- + m0 T+ w: i5 d# u
- ;;; Command version of ai_deselect to be called from the CUI
+ A C% |5 _7 E) u' r+ O) F( g+ t7 H - ;;; so it gets properly recorded by the Action Recorder
- i& w) U' d) t! B - ;;;5 [; N+ w+ K# r+ s
- (defun c:ai_deselect ()8 b- ~& r, B' Y; O
- (ai_deselect)- E$ H2 H9 e; \' U; P7 n" O
- (princ)
) l5 i/ K* {0 a' a5 h - )' L$ r& s2 A9 C! K& |" g; N
- . }. [% v2 K% t; ^
- ;;;; O0 G, @( ]: K1 q9 a5 n
- ;;; Enable Draworder to be called from a menu
( y) ~& D2 y' y* }! O t - ;;; Checks for Pickfirst selected objects% g9 s/ ^3 W5 R- a) }- V
- ;;;
. ]7 `1 C8 q( G* v( i
9 a; v# V( x$ B- (defun ai_draworder (option / ss )
" B2 \7 ^* c" j$ V- V
3 Z) a Y& S( E- (setq m:err *error* *error* *merr*) A; `- ~- Q5 I
- (ai_sysvar '("cmdecho" . 0))
. x: U4 f1 z: r2 E. I) T - 3 `: H6 z2 @& F1 }4 F; r( a
- (if (setq ss (ssget "_I"))
7 k7 x( K* E4 n5 \- J% A4 {6 u - (command "_.draworder" option)4 o3 F J/ Q5 Z, c7 L" X6 Y0 g7 w9 z: |
- (if (setq ss (ssget))5 p6 p: S$ T6 r v
- (command "_.draworder" ss "" option)" O Y" d9 I2 h# i, k
- )
4 l1 U3 f! i" s) N. g, q! G - )+ t, [6 P' r9 C+ ^/ F% l- @1 A4 E% e5 A
- (ai_sysvar NIL)# t. x& k( M3 \4 ]
- (setq *error* m:err m:err nil)
7 C5 V8 ]8 ?0 Y9 Y" d
1 W5 f1 u1 M2 `5 E, j% g! [% `' g- (princ)7 ?$ ?9 \0 Y A+ q. e* |
- )
- T3 b# w/ v- U) W - & d' ^- o( t5 \6 G- t; k9 g
- ;;; Command version of ai_draworder to be called from the CUI# w2 x+ b/ b& P( h6 G( Q/ \9 Z
- ;;; so it gets properly recorded by the Action Recorder& A6 a: \: d) E/ R0 ^( A, G1 C* ~
- ;;;& x. {' P8 D; b$ x! t4 ?0 f4 \! V
- (defun c:ai_draworder ()
7 b2 ~) I4 r9 m - (initget "Above Under Front Back")$ f/ y& e6 G7 N/ U3 V
- (ai_draworder (strcat "_" (getkword)))( V6 W& Q, G3 {; _# }" Y) z
- (princ)- J2 ]6 _5 d" S. u0 \2 q' q" H
- )
7 c6 W x3 Q+ Y/ P4 j - / |- r0 a* ~5 c( H. s
- (defun c:vlisp ()# B: r& x: b$ Z/ u: C
- (if (/= nil c:vlide) (c:vlide))( x: s# X. X* W% f' Y! d
- )
" ]$ m1 J' @8 d+ r5 m9 i - & B% e, E4 T+ |8 u" t7 E
- (princ "loaded.")
8 c/ `( V- h; J; d - 1 _# _$ g2 a' y0 e2 l
- ;; Silent load.' r. T3 n+ k4 {6 e3 F
- (princ)
( B# x; E6 X8 i( l7 r; x) q" J8 W
! Y8 S, R$ D; V' m- ;;;----------------------------------------------------------------------------
. ~! I2 A% x! \/ J. a3 } - ;;;
8 d" S' z. P8 n2 J - ;;; DDCHPROP.LSP Version 0.57 D) g3 M S6 a# r/ V
- ;;;
1 s' x+ C, d2 {) L - ;;; Copyright (C) 1991-1993 by Autodesk, Inc.. `3 P F/ {: N% X3 {4 y
- ;;;$ H' }4 y; O7 z: h6 ~& Q% u# @3 I* C
- ;;; Permission to use, copy, modify, and distribute this software
) u2 {: ^' I' s x- R( J - ;;; for any purpose and without fee is hereby granted, provided
2 k! d' s1 `- e& g" D: v+ `/ @ - ;;; that the above copyright notice appears in all copies and that/ X& j, C; z) d, v7 V/ G/ `! B' Z
- ;;; both that copyright notice and this permission notice appear in
6 u4 e( T6 B" l' U - ;;; all supporting documentation.4 Q- R" I4 _7 w* Q. e
- ;;;9 L/ M/ ?+ A* ]3 [0 H, }2 O
- ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED8 T* l' A# c1 M$ R6 U/ @
- ;;; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR" M& S+ {9 B2 d6 t' W( z& U
- ;;; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.
2 p& Q h& V/ h& |* C - ;;;
6 x' i8 J( h5 r) u" _; ~# k - ;;; 2 February 19924 x; ^- j8 V' N2 k! b7 R: z3 _- `+ N1 S
- ;;; 7 N4 S ~6 e; W: N0 y. E
- ;;;----------------------------------------------------------------------------6 t' N/ P) T4 k+ A. i
- ;;; DESCRIPTION) B- r& \3 N9 [9 Q
- ;;;----------------------------------------------------------------------------' \; E. s* U. U8 H2 I4 I$ J, L
- ;;; C:DDCHPROP is a dialogue interface for the CHPROP command.
& | H2 x) x% q j- l) g% z - ;;;3 K" [' r9 R% r) S
- ;;; The command looks similar to DDEMODES. The main dialogue has an image
$ `7 w/ Y/ B% [- Z& i - ;;; tile, 3 buttons (layer, color, linetype), and an editbox (thickness).
- c8 j! g1 B! H, X3 B5 T- G% d' O - ;;; The 3 buttons each launch a sub-dialogue containing a list and edit box.
7 z( ]/ _% [; D - ;;; The dialogues are all defined in the DDCHPROP.DCL file.
2 u) e7 Z7 g& \% @ - ;;;3 N- r) m# j+ h) i
- ;;;8 b& n/ Q" J% L$ Z
- ;;;----------------------------------------------------------------------------
! N6 H/ E/ o1 N# f/ R, r2 F5 o - ;;;----------------------------------------------------------------------------& w: v4 y$ F! l5 Q+ ?5 i4 }
- ;;; Prefixes in command and keyword strings: 6 {$ [5 B! A3 A j( z
- ;;; "." specifies the built-in AutoCAD command in case it has been & P$ N) u; ~& k; I
- ;;; redefined.
4 @! i3 D1 {/ k( L - ;;; "_" denotes an AutoCAD command or keyword in the native language
( } r# _6 A ?8 l+ y - ;;; version, English." \, [2 h; N6 {; C. O$ i( }3 k
- ;;;----------------------------------------------------------------------------
; q! _' {; D& {) r/ [& o1 N - ;;;
. B2 g9 g: P4 t! f3 d - ;;;
X4 B8 R3 ^! ^* A/ c - ;;; ===========================================================================4 d3 @+ W* v, V3 b
- ;;; ===================== load-time error checking ============================9 u: T% N- j! Z7 T4 w% i- J
- ;;;
7 l! V/ o9 P9 E - 9 ~: ^8 u: d7 |9 b7 R7 M9 F7 w
- (defun ai_abort (app msg)- p2 G+ g6 ^& W
- (defun *error* (s)
) p2 ~+ k1 \9 L1 k - (if old_error (setq *error* old_error))
: ]% b/ r# F7 C8 j, L8 L8 z - (princ)
9 A+ T+ }3 N/ M - )
- S# K5 a1 e# ] N; W - (if msg
* X: B9 F# J: ^9 I& H - (alert (strcat " Application error: "
! D. j) l+ F7 S4 R - app( X9 f5 R( j8 E3 A9 ?0 O
- " \n\n "
/ Z; Z- x# c) y+ j# N( z$ ^ - msg
/ }6 y4 g; [% l/ O: Z, i' I - " \n"
% Z& @5 A2 z' ?- G% L) P1 E( J - ), g+ Q; w: e. r& d# a& h. h! u* P
- )& X6 }3 L5 L# ~, |
- )
: b) A f& g4 B - (exit); s* d" f1 o. z/ ~
- )% X7 _7 W# ]4 C- T7 R8 J# U1 @3 M$ s
# g7 r q( _4 b5 ^# |- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,6 K3 Q: {9 O ~9 y$ I+ X2 K$ x; C
- ;;; and then try to load it.
5 |9 _! n& v% `) `6 e7 S) W1 w/ M - ;;;9 n S: {3 t6 o' I( I
- ;;; If it can't be found or it can't be loaded, then abort the
: W# F# f2 G) K; t - ;;; loading of this file immediately, preserving the (autoload)% |, J" F0 p) g: S
- ;;; stub function.
+ @( q7 z6 a+ |
0 w' Y, w- O, e5 k a- (cond
2 y$ A) \& N5 ^) a( C - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.0 j: n6 D' Y* k" q1 E
- $ x8 o+ u' T8 k1 v2 O) V
- ( (not (findfile "ai_utils.lsp")) ; find it* L& H5 `( x* @8 l8 f& l: C0 U) R( d
- (ai_abort "DDCHPROP", o) p2 a9 @- D
- (strcat "Can't locate file AI_UTILS.LSP."
( P1 g8 m! o) Q8 j' j# a, o. I - "\n Check support directory.")))
; E( _/ K4 {* d0 f8 D" D
; Y# `+ I/ ?- O0 m2 }2 v F4 I- ( (eq "failed" (load "ai_utils" "failed")) ; load it+ A5 O9 Y3 b* i' }7 ^2 g( Q$ u
- (ai_abort "DDCHPROP" "Can't load file AI_UTILS.LSP"))+ b; b% \1 c7 g/ W
- )" Z' q6 G8 q9 S) N/ s5 C2 ?* |
- : f2 b/ x: K& S4 a) _
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
# F7 W* t5 ?, L, S% d! p - (ai_abort "DDCHPROP" nil) ; a Nil <msg> supresses* |8 X' p0 ^5 v2 u0 J- q9 L8 H
- ) ; ai_abort's alert box dialog.
; Z( g; ]4 g7 b; ~' @6 Q
& @+ v/ c4 D7 |/ X4 |7 A, z- ;;; ==================== end load-time operations ===========================
4 F: y, P5 i- G6 r- ^4 N/ m - ! |! w0 p! W) k
- ;;; Initialize program subroutines and variables.
* O* x& f7 b# M; L/ }% j - % O; E7 ^, ^0 K; H+ |# w V
- (defun ddchprop_init ()
3 S% p8 w6 `0 x' H+ k. Z
9 j) r" M" Q# O/ [- ;;' b! E7 |5 b3 r
- ;; Define buttons and set values in CHPROP dialogue box
+ Y7 o( g1 ?/ t/ U8 @ - ;;
* ^, t2 C7 L. C" p1 W( N6 | - (defun call_chp ()0 h- ]; X' Y# P# U) Q, U! F6 s' Z
- (if (not (new_dialog "ch_prop" dcl_id)) (exit))* F3 f) B5 L' z9 \, B" z1 B6 Z$ b1 j$ E
- (set_tile "error" "")
$ Y) u! k3 r% G+ W; Z - ;; Set initial dialogue tile values
4 |* z! s* k9 S9 h. }4 ]: G - (set_col_tile)3 a" l6 @1 T: @
- (if (= lay-idx nil)
1 h6 S- d8 @8 b* s W0 f+ ] - (set_tile "t_layer" "Varies")
& n0 c# z' r {2 e0 _' y0 T - (set_tile "t_layer" (nth lay-idx laynmlst))
3 G) J u1 K8 t' Q - )! {% G7 n6 ~4 [; v# {% c
- (cond ! S: h8 r0 U+ t( q( M% d
- ((= lt-idx nil)" p2 a) S, y% E! Z
- (set_tile "t_ltype" "Varies"). A( N, U$ ^5 g( |
- )5 r+ k V3 W- r
- ((= lt-idx 0) ; set tile "By layer & layer linetype". b; E- B8 p+ g7 j
- (set_tile "t_ltype" (bylayer_lt))
5 s6 c; {: R& W) v$ S' c% D - )
/ K1 Z: ~) W% _, W. X - (T 4 P$ b2 W) w+ ]( Z! {7 X( S
- (set_tile "t_ltype" (nth lt-idx ltnmlst))
' d8 K- }; i: i/ `2 \ - )$ x) |* z% _$ \4 j) Y
- )
, O- f h8 o: c - (if (or (= ethickness nil) (= ethickness "Varies"))$ x& u+ L; `6 Z$ D- n2 Q! c) d
- (set_tile "eb_thickness" "Varies")7 ]: B5 a- X/ f. d& \8 a7 T! S0 Q7 D
- (set_tile "eb_thickness" (rtos ethickness))
( ]+ L0 R/ i6 w' t, Y$ v - )
) s% E7 K0 s' h0 _& P* N - ;; Define action for tiles
; {* K' A0 h& b4 a5 [ G" b - (action_tile "b_color" "(setq ecolor (getcolor))")9 y. i1 l: B9 A& e
- (action_tile "show_image" "(setq ecolor (getcolor))")2 l. ^$ z, {8 J2 |& N0 o5 w' Q
- (action_tile "b_name" "(setq elayer (getlayer))")
6 z$ e5 n+ E% [5 D* p+ N - (action_tile "b_line" "(setq eltype (getltype))")
, g5 r# x! f7 S - (action_tile "eb_thickness" "(getthickness $value)")
7 c. q2 X& ]( I9 ~4 n) h$ h - (action_tile "help" "(acad_helpdlg \"acad.hlp\" \"ddchprop\")")5 b$ |5 G. U" J' [, w! @
- (action_tile "accept" "(test-ok)")9 Q3 ]( f6 m8 e7 U8 I7 }
- (if (= (start_dialog) 1)/ O2 y- u) N4 W1 S$ t2 I: [
- (progn% u- i* z; s W9 {" d3 @
- (command "_.chprop" ss "")
4 B: Q' k- o1 I$ x5 A - (if ecolor# d: Z' B: h' v, n! I7 I
- (progn7 [9 H( x, F/ R2 K
- (if (= 0 ecolor ) (setq ecolor "BYBLOCK"))
8 p& T6 @& s- g: J' T) A - (if (= 256 ecolor ) (setq ecolor "BYLAYER"))
& I$ ], t. L$ S! {+ x2 n I - (command "_c" ecolor)* F) F* ~/ Y! X+ P
- )
3 D) _4 ^9 y7 P1 K* a9 B - )
, J _2 P" F o- ]/ X - (if (and (/= eltype "Varies") lt-idx)
' C7 |. q2 Y/ B3 p+ H* L - (command "_lt" eltype)6 g/ k' G6 p$ n3 t
- )+ e6 n7 \+ q$ T/ b0 p! G* N! c0 f
- (if (and (/= elayer "Varies") lay-idx)
' ^- H0 G1 _' n, a2 V - (command "_la" elayer). K( d+ k: O$ x0 O0 Y4 s
- )
5 R4 f2 w1 R& h - (if (and (/= ethickness "Varies") ethickness)1 y& K, \: |* g' X
- (command "_t" ethickness)( b; l7 s: r' _, T9 `- _
- ), y$ |, x+ C7 O+ s
- (command "")7 b) a5 _2 f; D0 H" H1 a, E
- )
9 G7 |# {" d7 Z2 ] - (princ "\nProperties unchanged")
' f3 g* m% W2 ^5 Z - )
6 Z* E7 Z1 @0 r, H; a - (princ)
' w, p {( L7 Z8 S - )
: a6 G1 m9 t6 i6 W - ;;
1 a& D& `+ x2 s0 f9 L - ;; Function to set the Color text tile and swab to the current color value.
2 Z* @$ {$ e3 n- C - ;;
' h0 `% r* S; N, u1 s - (defun set_col_tile()
# B' c7 G5 e7 J$ [- F2 c9 u2 ` - (cond
- A% n: Z4 P9 A0 @( t) Y - ((= ecolor nil); R* Z; D+ D. L- p
- (set_tile "t_color" "Varies")
4 j5 u+ _: W% w; Z# R - (col_tile "show_image" 0 nil)
" s: U9 N2 i9 j5 ^' _ - )
2 U6 ^8 ?+ {+ h" v; t, p - ((= ecolor 0); {: ], G/ x& O4 x
- (set_tile "t_color" "BYBLOCK")2 P0 C, S/ I) }8 F4 R4 ]9 [
- (col_tile "show_image" 0 nil)
: B# Y9 |; G9 P* m - )
' W" m1 i8 }- F- \4 w - ((= ecolor 1)$ A" \7 y- V4 j0 z d
- (set_tile "t_color" "1 red")' l! | E! @) Y8 ~
- (col_tile "show_image" 1 nil)$ n+ S3 O: X4 z2 X: s: Z
- )
4 w( y6 x! p* C s2 `+ J - ((= ecolor 2)
; L' A; X9 W( J& t5 z% f- L - (set_tile "t_color" "2 yellow")
) R7 q) ~1 g+ n W) V8 L - (col_tile "show_image" 2 nil): k- H/ F/ R' y c
- )$ K7 u& k# |, n$ ]5 P D% Y& b4 V
- ((= ecolor 3)1 b- w- _4 F& t1 {- m
- (set_tile "t_color" "3 green")
: O6 d P; i8 f7 Q# T - (col_tile "show_image" 3 nil); |8 T G9 _9 U" g; e2 o
- )
6 e9 J3 G0 i. j1 |: E4 a - ((= ecolor 4)' E/ s, i- b' H2 g! v3 Z
- (set_tile "t_color" "4 cyan"): r# z& {+ M9 O! W" O9 K
- (col_tile "show_image" 4 nil)
4 U) `" p* l b+ b: R* f1 V% ?$ k# ^5 i - )5 w' K, L7 O. f! Q9 X7 E5 p& J
- ((= ecolor 5)
U# p0 y8 y. T$ X - (set_tile "t_color" "5 blue")
0 h! O+ D) v; W0 X - (col_tile "show_image" 5 nil)
4 Z' i4 N: A0 v, g; T4 B - )& O6 y. f" F- l8 ^' q/ H" ~0 @
- ((= ecolor 6)% W9 r8 Z: ]6 @+ ]4 C0 l8 ^7 }
- (set_tile "t_color" "6 magenta")
( H- h1 V% n4 m: x - (col_tile "show_image" 6 nil)
% s" Q! Z1 V2 F. M9 e - )$ I% M9 o3 E7 |5 w
- ((= ecolor 7)7 J# t3 H {9 G+ B2 V
- (set_tile "t_color" "7 white")
4 G0 Z7 K% J5 T - (col_tile "show_image" 7 nil)
. `6 v0 g, I4 e! W7 \& f9 Y0 I# r1 a - )8 w6 J( c3 @& p
- ;; If the color is "BYLAYER", then set the tile to- @$ N& E$ `% C' q8 r! P3 @$ a* W; K
- ;; show it's set By layer, but also indicate the4 R! p: f. n2 D1 l/ p# j
- ;; color of the layer - i.e. By layer (red)
8 K# r) X ~6 R8 Y) V1 G; U - ((= ecolor 256)" j0 ^# q0 I( M% X g9 l6 i7 l
- (set_tile "t_color" (bylayer_col))( ?: r; A+ p$ M! x- l4 c. f; R
- (col_tile "show_image" cn nil)% V k7 E/ L# Z; Q
- )3 o; g# Z9 f* ?! j7 q& G
- (T
: o! |# v5 f" c3 @ - (set_tile "t_color" (itoa ecolor))% Y( N6 y9 ~2 K( Q( t; I
- (col_tile "show_image" ecolor nil)0 b @( z/ `; o/ `/ @# n2 M
- )
+ c0 e1 i: N4 { - )$ ?" n7 R8 Z% y& o
- )6 D' h8 M+ X B" ~1 N, m2 b" O4 L
- ;;
* H: O; M( X1 g - ;; Function to put up the standard color dialogue.9 l8 t8 f( i2 F
- ;;9 k4 u; W8 ?2 ]7 B9 h S/ x o6 H
- (defun getcolor(/ col_def lay_clr temp_color)
& i5 T8 W6 r" s6 k' G - ;; col_def is the default color used when rq_color is called. If ecolor
0 _3 H5 F! R# d* O0 C8 `& E - ;; is nil (varies) then set it to 1, else use the value of ecolor.5 c( t; r2 `( m. U& T" ]4 Y! o- F% O. I. O
- (if ecolor
& T6 m- ?/ \7 U; X6 k9 \% Z - (setq col_def ecolor)
" Y; }! y5 J5 Z1 U9 ?2 g' T - (setq col_def 1)$ v: f" O# v# y! ^: A8 ?
- )( T* q3 k8 _ e8 E
-
3 M- F: s+ f F" \7 a+ { - ;; If we're working with a single layer, get its color; w7 T7 w: g0 M. {0 ?, T0 [
- ;; for use in the color swatch if the user selects color BYLAYER.
' z) L7 W1 h8 z9 ~# ]7 C* V - (if (/= elayer "Varies")
6 m7 p3 b, n j4 [9 X7 S - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
9 b% k% O' w& V- v$ ?! H - (setq lay_clr 0)
0 @* U W/ t+ t8 ?" `/ s% K0 \7 ` - )8 m9 j! N- L* s+ c; e
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))) N6 L" R- h. P7 G: N" h( c+ a
- (progn
+ n1 C B1 K2 m2 T) A& r/ u - (setq ecolor temp_color)
& O3 W0 N m ~& z - (set_col_tile)+ b; E: |! j) z/ e3 O" j
- ecolor
' D6 S8 B- L5 U- {& [; X - )% {% c4 q) j( {& S; X! J2 v
- ecolor
9 i6 `1 Z( d7 T: p3 Z% T - ) 2 c4 \1 K) ` T9 ~6 g* E6 J4 z% j
- )! F- I4 j6 a# n) Z
- ;;: v; F m* A2 [* W8 w) G+ o! X
- ;; This function pops a dialogue box consisting of a list box, image tile, # t9 R1 m2 e; }; w5 e
- ;; and edit box to allow the user to select or type a linetype. It returns 2 }; D/ c0 [, x+ g3 Q" N
- ;; the linetype selected.
- k4 C a, D! j( l8 _ - ;;( M: R1 F' x. j+ y' v% d# s, P
- (defun getltype (/ old-idx ltname)! z0 ?5 p5 J& ~, J" _0 M
- ;; Initialize a dialogue from dialogue file
+ q; J. C+ r3 ~6 ~1 H6 W8 \; t - (if (not (new_dialog "setltype" dcl_id)) (exit))
5 M9 h3 Y" v0 g - (start_list "list_lt")$ `6 [' H3 y8 p! u* |9 M) H
- (mapcar 'add_list ltnmlst) ; initialize list box r; T* h8 i |) a" ^
- (end_list)% s* w2 G) g' h" d5 {9 V7 I
- (setq old-idx lt-idx)* r5 a, c1 F- m) D. i+ }
- ;; Show initial ltype in image tile, list box, and edit box1 Q) x* D, s5 a7 \# a
- (if (/= lt-idx nil)
2 A3 ]9 n b1 l# ]* [ - (ltlist_act (itoa lt-idx))( I" H4 ~( }5 E8 [
- (progn4 D& L" t9 H N
- (set_tile "edit_lt" "Varies")
7 |: }" }2 `; A* y5 T) p - (col_tile "show_image" 0 nil)
! H% m1 a% ]4 M% }/ g - ): c. B6 t. W( P% v9 y
- )5 |; M3 G% v1 F2 R1 `2 }
- (action_tile "list_lt" "(ltlist_act $value)")6 S' Q `$ k' n. ~* V; o
- (action_tile "edit_lt" "(ltedit_act $value)")4 z( ~5 E, i. }, n( M* \3 F/ Q5 ~
- (action_tile "accept" "(test-ok)")
6 h6 J5 Q$ ]( R5 U - (action_tile "cancel" "(reset-lt)")
5 h: X' m* Z' V H5 S - (if (= (start_dialog) 1) ; User pressed OK+ M: t5 c! o- P& u( F1 U* O& ^
- (cond
5 M7 m. j0 I2 |/ H7 y5 ] - ((= lt-idx nil)
: k) U9 @" T' b7 s W$ ]3 \8 p - (set_tile "t_ltype" "Varies")# A( @! e5 Z. I5 H- {
- "Varies"
: [/ Q$ l( F6 A2 t, N1 b - )
7 f; L5 @6 K; o+ F6 ? - ((= lt-idx 0)
4 [ s. y: Z6 t% k1 ^3 j( v - (set_tile "t_ltype" (bylayer_lt))
* C4 _& a! L9 j3 o/ Z) H - "BYLAYER") V' J6 Y# R# A- V% W8 a: L$ q7 E! w
- )" L+ q+ G' j. [# q0 @3 N
- ((= lt-idx 1)/ c* O* C4 A; \; A. D- K
- (set_tile "t_ltype" "BYBLOCK")3 C8 i3 `' |0 ?4 K+ M/ F
- "BYBLOCK"
' g( O8 K" q6 p' k - )
) b# D8 ]# F. @- E9 c# N: z8 u/ Z - (T
# k% |9 ?" `; O5 b) h; H - (set_tile "t_ltype" ltname)
8 A/ ?: Q7 u8 x9 m4 ^5 @2 o, v - ltname
* R! J0 S5 W8 Z0 b - )7 U5 O1 b9 E0 U; q' Q
- )
, p( ]7 t% J1 F0 V( N' d( f1 E- i - eltype K, i1 k- O7 }
- )# x! n: B8 a; R2 y- m8 c) @
- )
4 p& K6 d- _ z/ ~/ | - ;;9 n2 {8 D* ]* s0 |2 T. _: ]4 ]5 y5 u
- ;; Edit box entries end up here! U0 [4 d# Q, L2 R
- ;;
; Q. a. a$ E3 I8 v! [+ ^4 b( K - (defun ltedit_act (ltvalue)! K; \4 T6 [; A3 c
- ;; If linetype name,is valid, then clear error string,
* q, v9 J8 D" X' Q' a - ;; call ltlist_act function, and change focus to list box.
0 F" U1 S8 v9 d6 ^) J - ;; Else print error message.
( \' j9 B) s4 z; K/ ?/ F' f - (setq ltvalue (strcase ltvalue))
; [+ c9 b2 M6 e9 k3 b - (if (or (= ltvalue "BYLAYER") (= ltvalue "BY LAYER")); r1 M; A2 O' [8 T
- (setq ltvalue "BYLAYER")
8 [" k0 F# p& j - )
. E6 P! b% G9 P& a1 X. v - (if (or (= ltvalue "BYBLOCK") (= ltvalue "BY BLOCK"))
5 g& l) C9 T$ Q; ?# _ - (setq ltvalue "BYBLOCK")
A% f5 ?. N; G6 e" x - )
& Q6 X0 e: P4 X5 M7 K7 {- B - (if (setq lt-idx (getindex ltvalue ltnmlst))
( g% [! Q/ s/ F0 i8 H - (progn; @9 @) s& p) ^# y7 }
- (set_tile "error" ""). l5 S m7 w2 f- E7 O; s# O! P5 {% y
- (ltlist_act (itoa lt-idx))( M x" a- V0 [
- (mode_tile "list_lt" 2) O% R" ]% a0 v( u! x. O0 z
- )
( v: H9 O B1 u# I, q - (progn q7 D% O+ N* t2 ?
- (if (/= ltvalue "VARIES")7 p9 J# g3 S' w
- (set_tile "error" "Invalid linetype.")
# q- M4 r: j+ }( S, o* O - )
( d* v. v; W" }' B" Z - (setq lt-idx old-idx)) F1 ?0 s$ C9 L; X
- )
& C! K" ~3 w9 B; F7 c* E - )
, x; Z2 |' w! v - )
- ?0 x. }6 ?% x$ G$ H# O5 _; x - ;;2 x+ N& w6 q) y( x3 F- p- |
- ;; List selections end up here+ J' ]& p0 h3 p
- ;;
* d6 s, d( @4 f ^ - (defun ltlist_act (index / dashdata)& e* D# _0 E- x) W
- ;; Update the list box, edit box, and color tile. K3 ~5 E H$ O4 |3 Y# Y4 _
- (set_tile "error" "")
7 s& f1 m/ L- A8 J( n, j/ @1 j v - (setq lt-idx (atoi index))
. g; g% v: c8 M, w - (setq ltname (nth lt-idx ltnmlst))
. R, X3 Y! O/ K$ _) t' G$ d; \ - (setq dashdata (nth lt-idx mdashlist)), m7 U9 H8 Y( V4 s. z2 q, a4 ^
- (col_tile "show_image" 0 dashdata)
5 |" d% b/ k' [2 {' |5 T2 J$ x - (set_tile "list_lt" (itoa lt-idx))
6 B0 A$ K1 E1 L - (set_tile "edit_lt" ltname)) y& B" T; f2 l/ M: g; ], C
- )) S+ y/ k. J& S# t+ u1 _ t
- ;;
% h2 Q* @ H w& e6 p6 K - ;; Reset to original linetype when cancel it selected" C7 u. v" G( `1 s! O8 y
- ;;
; Y9 _5 t, V* N' A0 j2 A8 o - (defun reset-lt ()9 s: x5 R4 r& h; g( H1 F/ W9 t4 Y
- (setq lt-idx old-idx)) X3 F1 a& |$ U4 t1 L
- (done_dialog 0)* O# }+ I% E/ Q* x& L: p
- )7 D5 I4 ~6 W ?2 F* m3 d, ^9 k
- ;;; @, i- ]# B% ~( R% b# @( x k" v
- ;; This function pops a dialogue box consisting of a list box and edit box to
' Y9 ^& R6 t" @# ?2 i$ E( b - ;; allow the user to select or type a layer name. It returns the layer name
3 {7 _/ _( v5 Y" m) w' h3 d - ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the . M& }/ ?7 H1 \9 n9 o
- ;; drawing.
. I; s+ k: N9 }+ d, n - ;;
/ w, i( h' W6 r; ? - (defun getlayer (/ old-idx layname on off frozth linetype colname)
6 ^' q5 c& U+ Y( {, W- v1 v- Z - ;; Load a dialogue from dialogue file
& A) a8 S2 t2 h1 W - (if (not (new_dialog "setlayer" dcl_id)) (exit))
0 @6 ^4 U3 E9 @ - (start_list "list_lay") ?7 F+ X0 I+ b9 l: Y
- (mapcar 'add_list longlist) ; initialize list box: w9 i, x/ J0 @$ ~' ]' _6 @/ p
- (end_list)
& n- J2 G; [8 ]8 s - ;; Display current layer, show initial layer name in edit + |9 x" ?: G0 F2 t! i( x0 a# ~0 F
- ;; box, and highlight list box.- k* C2 I; \" |7 y/ W5 P3 R7 C2 {
- (setq old-idx lay-idx)# m3 K* j* _& y4 x9 h, ~& G
- (if (/= lay-idx nil) (laylist_act (itoa lay-idx))). N+ n" m( M/ F, h w7 L
- (set_tile "cur_layer" (getvar "clayer"))
0 V: g m2 n9 [/ h7 ~ - (action_tile "list_lay" "(laylist_act $value)")/ X5 o. S5 y5 o2 Y
- (action_tile "edit_lay" "(layedit_act $value)")9 `0 F) k0 s3 |7 c
- (action_tile "accept" "(test-ok)")7 R" i8 p1 l5 {
- (action_tile "cancel" "(reset-lay)")
3 V: x3 ~- U, Y( Z" I: d! { - (if (= (start_dialog) 1) ; User pressed OK. J* u2 \& x0 Y% s' N6 z& X( w9 d4 q
- (progn
( p$ d8 Y+ ~: B5 m - (if (= lay-idx nil) (setq layname "Varies")) R! F0 q2 t# g9 V9 A
- (set_tile "t_layer" layname)
7 h9 b$ ^8 ^# o# O' V5 v2 L, g1 z - ; If layer or ltype equals bylayer reset their tiles% G" T; r# @# u1 b' h# N0 n9 {
- (if (= lt-idx 0)
7 |2 e7 c7 D& Q7 U! } - (set_tile "t_ltype" (bylayer_lt)); d n' F- U! `0 B, q( N
- )! D% Q/ A, n$ x! z- W, j$ ~5 [
- (if (= ecolor 256)
+ E, b1 I2 W/ b4 U5 l9 k$ ?1 D - (progn
/ ~" N6 i' z5 B9 \0 b - (set_tile "t_color" (bylayer_col)) r, R* C5 p+ T0 [+ m
- (col_tile "show_image" cn nil)
# G# l: F7 I6 Z* P; L- `- I - )
T5 T5 k- o: X - )
/ j, y3 s4 B- o# ?8 p" x* Y - layname
# S# q& x& g/ Y$ {7 B! D3 v/ E - )
. t( w1 w4 E* d7 ? - elayer
- \5 |, E9 P7 b( h- Y6 O& P3 u - )
* l$ p! e9 I% C% v$ |# w: P' e% z+ ~ - )
6 w; [& O; @5 c) j - ;;
5 Y+ u8 z9 q3 x2 {8 | - ;; Edit box selections end up here
2 v" M* K+ t, V$ ^ - ;;. e/ B9 G8 a9 V: q
- (defun layedit_act (layvalue)! N7 A# {+ y% W" Z; }9 h: }
- ;; Convert layer entry to upper case. If layer name is- Z. ?2 f* X/ m- ]( m! @4 s/ V
- ;; valid, clear error string, call (laylist_act) function,* E& }; ?9 |/ B1 _7 z
- ;; and change focus to list box. Else print error message.
, n) R. L; C9 z: d! k& V9 Q0 j4 h7 S9 @ - (setq layvalue (strcase layvalue))$ P0 S5 X) R+ z. {
- (if (setq lay-idx (getindex layvalue laynmlst))
8 X# o8 F; z1 T7 Q z; l - (progn& e" ?4 V+ T9 y$ m. @. E5 d
- (set_tile "error" "")
6 R+ l5 w. k7 X$ Y3 D/ B& C3 x - (laylist_act (itoa lay-idx))
4 m* O: L) a4 X! z+ ]5 \ - )
" X' y1 N+ ]' J. x, R) U - (progn6 A1 V7 Q7 c1 K: x8 }/ F2 _
- (set_tile "error" "Invalid layer name.")
+ I: ~5 V9 K) p- X% n: J: y! J - (setq lay-idx old-idx); y, G" a" D5 Y7 t* N
- )# Z$ V) n; J3 Y' p8 C2 b P' U5 \
- )
8 R8 f" |$ _# U# s4 s - )
8 u7 X6 J T8 \; H! |+ ] - ;;' X* @. R" Z/ u6 d5 X" L6 G
- ;; List entry selections end up here
0 b) ?+ L- d- @ - ;;0 D1 G/ X. @+ R
- (defun laylist_act (index / layinfo color dashdata)' K9 o+ J! J) z8 [% ~
- ;; Update the list box, edit box, and color tile
( j; y' w) D4 T; O7 G - (set_tile "error" "")
* O3 W+ N( ~6 n5 X3 o! N& k - (setq lay-idx (atoi index))
5 e2 ]" V8 b' F9 c - (setq layname (nth lay-idx laynmlst))2 h3 U5 D5 c s! a
- (setq layinfo (tblsearch "layer" layname))
: x0 T: g1 _( i- ^8 K9 d* i) t - (if (= (logand (cdr (assoc 70 layinfo)) 4) 4)
7 b& x' z/ r' E1 ~' e - (set_tile "error" "Cannot change entity to locked layer.")5 Z7 m$ @0 C' h* i+ {: R4 E5 e5 W
- (progn
% {- R$ q' u# u2 \, A+ t) e& X - (setq color (cdr (assoc 62 layinfo)))1 f! R; l/ F. L
- (setq color (abs color))
1 I( M* U, p( k! D5 q9 X - (setq colname (colorname color))9 S* x& \& I& G5 u$ n
- (set_tile "list_lay" (itoa lay-idx))
) q6 D. g$ D- J$ k4 ~ - (set_tile "edit_lay" layname)
/ T' D2 R0 }0 [: g/ B% D3 o - (mode_tile "list_lay" 2)! j. I% U: r3 k! P' B
- )
- h5 M* Q; q. P8 W) b& w- U# d/ s1 y: I - )
! z% W! j8 y; ~ _. Q - ), m: S) ?% S# E! _/ g: P
- ;;
+ U6 q5 O( p7 E& g - ;; Reset to original layer when cancel is selected) v0 p( p# m" ^) ~8 K
- ;;* |5 I8 [& [! m3 [8 D/ w3 ]
- (defun reset-lay ()
0 I. D& ~9 ~5 C3 {0 j: l - (setq lay-idx old-idx)
( Z6 {& W% B) z2 A4 F- F - (done_dialog 0)
5 }, N) F/ f6 _# I5 B0 E- t - )5 ` k. n: ]9 {4 B6 `
- ;;
& z9 t0 D5 V* v T' l3 { - ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a
- J8 f7 H7 Q5 P/ v- u8 e n, o - ;; string can't be converted to a real, this routine checks if the first
6 Q+ W9 E4 z4 p. ^& C$ `/ P o - ;; character is "0". It also checks to see if the value equals "Varies".
( D& u; t. |: y o4 p q - ;;1 `. {& L( Q- Q0 `$ f; W
- (defun getthickness (value). `5 K% z$ z% Y( H+ G5 q
- (setq value (strcase value))
5 e- K( m, L5 Q% w3 S" T - (if (or (= value "VARIES")5 b5 g6 t3 s0 C, `6 @
- (distof value)8 \- ^3 z6 M$ R* C; ] @3 i8 I
- )
: V p3 e* [ l1 h$ g( ~ - (progn& u: }3 u* i" I" L, C
- (set_tile "error" "")& ~/ c' t( Y. }% _
- (if (= value "VARIES"), O, U% S* n0 o5 ~ S% e4 h+ R
- (progn8 Z9 |, U9 b9 y. ~1 x
- (set_tile "eb_thickness" "Varies")* H5 P; t8 I3 W$ W
- (setq ethickness nil)0 P" T" n6 J# i* \2 H4 ]
- )
5 u& _# n T. b+ A2 E - (progn8 y- g: l) p) a. P. p0 _% m$ r
- (setq ethickness (distof value))) C$ G5 ^9 L- S \& _2 Q
- (set_tile "eb_thickness" (rtos ethickness))' e' K% _! d5 d/ B6 f* \( G: A
- ethickness
1 o: p7 K/ R+ P" E3 J( x - )/ }# ~# X- L+ @) D2 A$ `
- )
|% K- e0 Z$ K8 @' Z5 r' j - )
2 ]+ B1 x3 i8 Z4 K2 } - (progn. z! Q+ S1 @9 U* ]# O- U5 I1 M
- (set_tile "error" "Invalid thickness.")& D: h; Z5 f6 }2 H6 ?
- nil1 H. i6 G2 ^2 b7 `+ ^
- )) F3 m- Y# t/ b+ u$ l# D8 E
- )& o M% E9 |6 E: T& E# {1 y
- )" O6 w, V7 ^4 \5 ^- n
- ;;% O1 z8 |1 \! I m7 z( R. R- x: `
- ;; This function make a list called laynmlst which consists of all the layer
+ |1 s; B% o3 R! T - ;; names in the drawing. It also creates a list called longlist which & y/ s' Q7 z0 ~9 @$ D* n3 P4 t& \; ?
- ;; consists of strings which contain the layer name, color, linetype, etc.
& w8 }2 j0 |' R* z' W - ;; Longlist is later mapped into the layer listbox. Both are ordered the
: Q( K4 ?( U, T' V" N - ;; same.
! B0 I$ T/ g. o2 k - ;;
# A' f/ j5 e* m+ W3 o - (defun makelaylists (/ layname onoff frozth color linetype vpf vpn ss cvpname
. a2 B( w: m3 L1 J2 N' y1 X - xdlist vpldata sortlist name templist bit-70
" r ~7 t# _" H+ C( L" S) _ - )' f5 z0 l; }3 M: m* U& N% r
- (if (= (setq tilemode (getvar "tilemode")) 0)1 E# p d# ] p) F/ _
- (progn- W. n. C2 o) R) V; g9 X& n- h
- (setq ss (ssget "x" (list (cons 0 "VIEWPORT")
, w0 e' t$ I2 b2 q8 _% L2 Z" L - (cons 69 (getvar "CVPORT"))
# u. L* _) K t/ ]3 G# }$ o) z0 H; d$ l - ) q+ f) e" u. Z' f) E# G- R
- )
. T& ]% j a( E: l( m3 C - ) 4 C4 B, ^" n+ _, n- c5 A
- (setq cvpname (ssname ss 0))% \' }8 N9 m/ T! v
- (setq xdlist (assoc -3 (entget cvpname '("acad"))))
# h5 v. h" ^9 N: c2 b- o/ ^ - (setq vpldata (cdadr xdlist))* p. a/ q: y/ @8 y1 s- d
- )
3 B- i+ U9 s5 s+ D' R - )# x. B' ?0 H$ i1 t
- (setq sortlist nil)
- u: n. J5 v: Z$ k4 }% {( j - (setq templist (tblnext "LAYER" T))2 V, ^' D& |0 h5 a; h# i# X
- (while templist
9 K- |2 g7 U0 N! b- E/ ] - (setq name (cdr (assoc 2 templist)))$ a/ r9 a6 T7 h+ c3 W" Q" G
- (setq sortlist (cons name sortlist))
8 a S9 X3 D4 b - (setq templist (tblnext "LAYER"))
6 r4 J0 A/ H+ I$ ` - ) 6 }5 O% Y# J8 j) A
- (if (>= (getvar "maxsort") (length sortlist))
& Q- a9 F5 c7 H# M8 i3 m6 s) b2 {6 F - (setq sortlist (acad_strlsort sortlist))! O8 h# |+ d- o3 B
- (setq sortlist (reverse sortlist))
6 j- K. ~* M& g/ g# V - )
9 U$ x% `0 q. t- Y4 `3 B6 u1 { - (setq laynmlst sortlist)
r2 t" n P/ @3 }! ?) {1 A9 D - (setq longlist nil)
# }8 v* e3 R1 j8 ^( T0 G- P5 B - (setq layname (car sortlist))
1 _7 Q- K2 w9 s9 |4 s7 ` - (while layname! R" d3 N4 y7 E( A( ~) [
- (setq laylist (tblsearch "LAYER" layname))3 `* O1 d6 e# _" m e& t1 m
- (setq color (cdr (assoc 62 laylist)))
- T3 f. a; E7 V( F) _ - (if (minusp color)2 D' _3 e9 R9 E4 C
- (setq onoff ".")1 _& O7 o; R. q) r& ]% u( I5 h
- (setq onoff "On")* D4 F% ]4 S* H/ s2 B) S. e
- )+ Z! V/ w7 d+ I
- (setq color (abs color))! D8 r2 c1 S2 H+ a) ^" s
- (setq colname (colorname color))
; Q5 [- Z; O$ |# d2 C3 f$ E. V - (setq bit-70 (cdr (assoc 70 laylist)))
$ m$ L' q8 w% m; d - (if (= (logand bit-70 1) 1)
- X9 V4 a3 H5 L- j# ?: m - (setq frozth "F" fchk laylist)9 T4 m; Y' x( ^8 g3 m
- (setq frozth "."). S2 m2 ]3 G. v( s0 P
- )
8 A8 A+ C& i8 \+ z2 a) x$ i* k - (if (= (logand bit-70 2) 2)4 c- g$ y2 @- a0 h
- (setq vpn "N")& w9 ?9 F+ D' o
- (setq vpn ".")
+ m4 ]( n$ s- E" p5 X$ B# e: _2 G' R6 n3 f - )* V+ F6 P' I3 x4 a8 I
- (if (= (logand bit-70 4) 4): _+ D% P5 |( W2 J6 M; ^) [; B
- (setq lock "L")5 J; ?4 w( k t# X* p2 h0 t
- (setq lock ".")1 ^) j5 `; b8 E1 ]$ j' j) P# U
- )" \7 n# A; V# p( d# ^9 ^# F
- (setq linetype (cdr (assoc 6 laylist)))
/ k4 d2 j" D3 E B - (setq layname (substr layname 1 31))* f* \: u. h4 r4 k! I F& F
- (if (= tilemode 0)
4 A# L: W( |4 x2 c6 @) i - (progn# S0 [3 e( v& U& X/ P( r
- (if (member (cons 1003 layname) vpldata)
; A5 V' m2 a2 N! |) d N - (setq vpf "C"). D1 Q$ w9 ]& \
- (setq vpf "."); p3 t9 y- J$ Z; a( @6 ^# U
- )
! W9 q# G* W0 `- V. _ - )6 o. s3 L5 }: V" X! f; ^/ K
- (setq vpf ".")6 f' X# \# Q4 h
- )
) j" @& v5 K/ ~4 p/ |( \ - (setq ltabstr (strcat layname "\t"
) p2 W4 w# ^* ^$ u; T: I- j' F - onoff "\t"! e" N5 B) M0 f R9 q& C5 l" |! @
- frozth "\t"7 {4 S: l$ t5 B8 J
- lock "\t"6 c/ ]! l/ @# a1 Y! z
- vpf "\t"
! z2 N$ l1 n$ f F3 | - vpn "\t"
& M4 F; k+ @/ O3 q8 e - colname "\t", l1 H a4 f/ t# P2 t
- linetype
$ b0 U, ?" Z# p- ^; O) k1 o a# u - )- {5 o( \# ]0 W! \2 ^! ?
- )
, [- `, y# j' i3 t9 ]& R1 _ - (setq longlist (append longlist (list ltabstr)))
" V- D: [( A8 R/ S' L- B: b' [ - (setq sortlist (cdr sortlist))
9 W5 y' @' |- H7 v$ L3 s) g; e - (setq layname (car sortlist))4 Y+ Z9 t* ^: Z6 {6 A
- )
X1 J' B$ a6 O- f: U9 U; i - )) n0 Y, }) U2 U$ h
- ;;
: j9 N. N$ }# D+ V. P( ` - ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of : `+ V7 k9 t" I0 d- t: h
- ;; linetype names read from the symbol table. Mdashlist is list consisting 0 ]( L5 ^3 Y0 M I& G; U( q% I, M
- ;; of lists which define the linetype pattern - numbers that indicate dots, $ @6 C: W% u. T/ S5 y$ s
- ;; dashes, and spaces taken from group code 49. The list corresponds to the
+ n" z( X" I/ d - ;; order of names in ltnmlst." X! ~: j. N3 T4 z% Y" p
- ;;: u* m9 s% @' ], d
- (defun makeltlists (/ ltlist ltname)
2 X, ^# V+ i) o5 c" Y! C" s - (setq mdashlist nil)* q1 @! S" E2 _1 G- S
- (setq ltlist (tblnext "LTYPE" T)) g& x2 ?4 a7 p- P3 l9 {' ~2 s
- (setq ltname (cdr (assoc 2 ltlist)))% s, u2 }$ t$ L1 l) x9 t
- (setq ltnmlst (list ltname))
- M1 o( w# _! {8 H) j
$ I3 a- s6 \( O3 [3 g# X- (if (= ltname "CONTINUOUS")
N1 ~( \4 a& d8 R' Y - (setq mdashlist (list "CONT"))1 d' n( |8 M/ W1 X+ y# F
- (setq mdashlist $ [8 [( e. i, ]- P! t7 o# P& v: s6 f- W
- (append mdashlist (list (add-mdash ltlist)))
( Z9 e* N5 T- i2 m2 x% W- h - )% ?: F; C4 k5 ~' v! D
- )+ j1 O5 b' Y+ i% [8 o0 W
- (while (setq ltlist (tblnext "LTYPE"))( b, o; p1 E/ P; D0 E# H
- (setq ltname (cdr (assoc 2 ltlist)))
& \) Y8 i6 Q$ j% | - (setq ltnmlst (append ltnmlst (list ltname)))
" C/ c! Y. v3 @) j - (setq mdashlist , ^4 {$ K4 e8 u% P8 F
- (append mdashlist (list (add-mdash ltlist)))
" ]! g& ~ C* w3 A& P - )
, ? V3 `0 ]5 i' Z9 o8 D - )
1 O2 Q4 {! c& L) P& J - (setq ltnmlst (cons "BYBLOCK" ltnmlst))2 J- \3 t( {4 w4 X- z) p$ r& M: Z8 X
- (setq mdashlist (cons nil mdashlist))
5 s* D) X p6 \$ I - (setq ltnmlst (cons "BYLAYER" ltnmlst)); x' i5 V. Q0 k: f3 k7 h
- (setq mdashlist (cons nil mdashlist))
2 F9 x; |9 @" k9 L, ]* a - )1 Q; e; M' B" ?$ S* L7 i3 H, I
- ;;
6 g" t3 f* v( p5 w, o9 t6 M) q+ B - ;; Get all the group code 49 values for a linetype and put them in a list
( j) b; g9 Y& @ - ;; (pen-up, pen-down info)
- w% ?, T; z3 u2 I& C& B - ;;! G& T1 Q! v1 a/ l
- (defun add-mdash (ltlist1 / dashlist assoclist dashsize)
4 t3 m/ Q- v) Q7 Y - (setq dashlist nil); U8 a8 ^: U: O' z% }% _
- (while (setq assoclist (car ltlist1)), v% |6 }3 F* R. @$ B9 l, q( V
- (if (= (car assoclist) 49)
# t4 H. k, P$ z, w, t, E Q3 c - (progn- s: r% c" c4 ^" F3 A; W0 N1 e
- (setq dashsize (cdr assoclist))$ c4 R% b/ G1 K1 L+ C
- (setq dashlist (cons dashsize dashlist))
0 \2 P$ b- o' S. d# J0 l - )
" ]- {5 |" z3 }7 T; z - )
\! t: ~0 K9 m - (setq ltlist1 (cdr ltlist1))
; r7 H: [5 Q0 |. ^9 z - )& {! B0 l" }3 G, t
- (setq dashlist (reverse dashlist))9 `, B: A6 Y, d7 @( g; ~
- )
$ P% ~2 c! G3 w- G' _ - ;;; r1 V9 W. }: G- D6 h
- ;; Color a tile, draw linetype, and draw a border around it+ C' G, r3 e( p6 I
- ;;8 Z6 x$ a/ R! L+ B1 Z w4 ~
- (defun col_tile (tile color patlist / x y)' T1 I9 L% I8 f) J9 J
- (setq x (dimx_tile tile)): \ ]) Q0 t6 w9 |2 H& j; l- _8 B
- (setq y (dimy_tile tile))
- M5 S- E b, X& J( b - (start_image tile)
4 X; k7 B, O! I, I- q7 k- l - (fill_image 0 0 x y color)
" V4 p* V9 q6 _& I3 v - (if (= color 7)
7 U& X. }( G" g) u2 `' e# Y - (progn
; t1 B) q/ y4 H* j K - (if patlist (drawpattern x (/ y 2) patlist 0)). d7 |) I! u, Y0 b8 k7 c& d
- (tile_rect 0 0 x y 0)/ M A9 I3 Y* l1 R4 j! C
- )
# C" w4 i" `4 K8 p# V - (progn6 @1 p$ g( n) `% s7 i' t& r
- (if patlist (drawpattern x (/ y 2) patlist 7))
7 H: F; K ^3 {5 u8 F+ J - (tile_rect 0 0 x y 7)6 n5 L/ {! U- c& |2 f, ~
- )
?% z: a) L' D- Y% m+ M A' N - )+ X1 D Y/ m- u. \( H5 L% n
- (end_image)$ J! l0 C: U# C/ l
- )4 J4 V3 T8 o' r" p" p
- ;;% d! H# o7 w- H
- ;; Draw a border around a tile
% E$ k5 z$ b- I; r# A8 Y - ;;
$ L9 c! U. m. t+ v - (defun tile_rect (x1 y1 x2 y2 color)
% e2 d* K C/ f) n( l: W8 }; T5 v - (setq x2 (- x2 1))$ _7 m; ~9 r! ?/ r* B0 X, q
- (setq y2 (- y2 1))
: v) M+ j( Q2 z' w) D - (vector_image x1 y1 x2 y1 color)2 z% h" O5 _0 {: I# e
- (vector_image x2 y1 x2 y2 color)
- k2 ]' V+ g0 I9 u - (vector_image x2 y2 x1 y2 color)
% V) C! Z6 A, V - (vector_image x1 y2 x1 y1 color)2 P* g: L$ i$ T O+ v1 n$ n# \
- )+ T+ c0 V* t" r i& D7 Q; C! ?
- ;;
! m9 a7 q1 I# [2 Q - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image ; U$ w7 G1 X2 [* R
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a ! a$ U3 U3 [2 ^& Q2 P! s2 }
- ;; list of numbers that define the linetype, and color is the color of the
. i4 R6 W8 e2 q9 G - ;; tile.
' P* ^* a) P2 ` - ;;
0 P0 n' j" \& [# b: g7 [/ T - (defun drawpattern (boxlength y2 pattern color / x1 x2. s8 k4 p) a d1 n6 S- ^5 _
- patlist dash)
* U6 A4 i% i3 v. G9 C - (setq x1 0 x2 0), r# }/ y5 U; \" V* j0 Y7 j4 L
- (setq patlist pattern)+ L, y7 l* _# C
- (if (= patlist "CONT")
/ r* {! R5 Z- o8 ?5 H$ g o8 R( q6 s - (progn 9 y- e% a8 L/ i- C/ U: v
- (setq dash boxlength)& [6 b1 m6 q9 k7 |1 k) Z3 x
- (vi)
- G2 a u1 _! C' u - (setq x1 boxlength): a- y# Q4 a* T' C3 Y1 L
- )- z; B \! A$ p a
- )
7 e( t+ u. r: q- V" [2 ?: }" | - (while (< x1 boxlength)! {7 C# e& y2 w7 W) ~. [) u
- (if (setq dash (car patlist))
0 _6 l1 E) O0 y& o% p - (progn
/ r6 T& _2 Q/ g N7 ^4 @8 p5 X' @ - (setq dash (fix (* 30 dash)))( t! l1 L" I5 t/ \3 w6 \
- (cond
# D+ g) Y+ B1 l! m- I- x0 M - ((= dash 0) ; Z$ y2 \ J/ L' N1 J! ?
- (setq dash 1) " N; V% E0 ]% U5 m: k$ r3 V
- (vi), J7 |( L; r6 G+ F- v1 a$ `9 Y' h5 B
- )
7 \; ?. s! N9 D, t% ]# r - ((> dash 0) 3 Y$ G: U7 {( b: i) I$ T7 n% U
- (vi)
" g* J0 b9 O; ~7 s) I - )
- W% C% z5 B2 J8 i3 Y( f2 v- } - (T # a) p4 i/ I$ F! \) I3 g+ L5 N
- (if (< (abs dash) 2) (setq dash 2))7 I& S8 E1 G+ Y$ ?% Z Y' N/ m; A
- (setq x2 (+ x2 (abs dash)))
# D( i! x6 X, t3 @ - )
+ J2 v6 h2 R8 p1 Y& W4 A% P/ F6 y - )
0 D1 Y# ]0 R' ~7 X* @9 f - (setq patlist (cdr patlist))
x) N( W4 W4 v: x3 S$ Z: E m5 k - (setq x1 x2)3 C; U# a5 K7 _: l4 v0 f) p0 Z
- )$ m/ Z! s% Y5 ~6 M( G' l
- (setq patlist pattern)4 [4 D9 }" v6 B l9 r5 C/ d- t
- )9 J7 i% f$ |* S K
- )( j3 h C$ x. ?' \
- )
) r# I7 o- F3 y0 f9 i2 g - ;;
7 K4 m2 ~! w0 V' D# L7 b8 [! b% z - ;; Draw a dash or dot in image tile
" f! c, n) m7 S' y3 ^' B - ;;
3 o: n a( k. k# H V& y H& }7 @ - (defun vi () ~* w8 X7 Q( s( Q+ P
- (setq x2 (+ x2 dash))+ f) W9 X; a2 T6 a) Y# b" D
- (vector_image x1 y2 x2 y2 color)! y& ` }2 u& }3 u9 Q
- )
5 D) U C" U' B! R - ;;9 M* A% x/ s+ R+ x4 `0 ?
- ;; This function takes a selection and returns a list of the color, linetype, 9 m- z+ z( m5 e. o- ]; z
- ;; layer, and thickness properties that are common to every entities in the3 q% u# b w7 \8 o
- ;; selection set - (color linetype layer thickness). If all entities do not
6 b+ ]" D/ l, Z3 W - ;; share the same property value it returns "Varies" in place of the
0 c& f3 Z$ q' z3 \. K F9 d - ;; property value. i.e. ("BYLAYER" "DASHED" "Varies" 0)
( J) h1 g8 x7 S' |! s1 N: _ - ;;
" f4 ]" j6 H# Y) q$ o- l - (defun getprops (selset / sslen elist color ltype layer
2 D1 d: Y% x) X# f0 V - thickness go chk-col chk-lt chk-lay chk-th ctr)# n! {5 a% s+ t: E. @
- (setq sslen (sslength selset))
/ x$ Q9 O8 X+ k: N% z - (setq elist (entget (ssname selset 0)))
* o3 f- T- c. v0 r( U& c9 X - (setq color (cdr (assoc 62 elist)))* @# O0 L% s V# q3 n0 K$ {
- (if (not color) (setq color 256))
$ l5 h- l% \7 |+ E7 R - (setq ltype (cdr (assoc 6 elist)))+ O1 w/ ]0 `" E: N8 v) I! z: o
- (if (not ltype) (setq ltype "BYLAYER"))" {3 h+ C* l4 d& E
- (setq layer (cdr (assoc 8 elist)))
/ c) X2 O+ `4 ^; L& L' [9 z - (setq thickness (cdr (assoc 39 elist)))
" E; J4 n3 {2 x( R - (if (not thickness) (setq thickness 0))
4 N! v. w& V2 ^8 o3 S( ^. R - (setq go T chk-col T chk-lt T chk-lay T chk-th T ctr 1)4 s, J# X( R/ f( o1 x
7 S" _& Q1 J& E' u4 |/ F9 Z- ;; Page through the selection set. When a property
& ~$ J) v+ K$ t4 a" R4 K9 h3 g - ;; does not match, stop checking for that property.
$ S2 ^- N8 h5 ?) \/ e) n3 t - ;; If all properties vary, stop paging.4 P5 {1 {- I2 l# A8 B2 c5 b( a5 P$ g9 Y
* T4 p; Y8 N/ L0 n5 a7 ?- (while (and (> sslen ctr) go)1 ~ j+ z' k3 o$ S2 H+ c
- (setq elist (entget (setq en (ssname selset ctr))))
$ i4 T K# y( A* X' ?% @ - (if chk-col (match-col))
1 T0 J# X/ z/ c+ ~ - (if chk-lt (match-lt))
5 B: w4 i, K, N - (if chk-lay (match-lay))8 x$ n4 P8 C1 s- B
- (if chk-th (match-th))& t' B5 o5 ~- Z- V0 |
- (setq ctr (1+ ctr))
# |& y. x$ d9 z E - (if (and (not chk-col) (not chk-lt) (not chk-lay) (not chk-th))
9 |8 t, J \! f1 j4 z2 O - (setq go nil)- @% e4 N7 Q. @" Y
- )/ e3 H4 f, m | u) E9 _
- )
5 j/ C" V- i w - (list color ltype layer thickness)6 r4 j5 z( f8 I; {! s
- ); Z f4 ~! n: E
; C# b7 q4 M) i- (defun match-col (/ ncolor)! A, A( ^+ L, C& A/ [8 `2 q
- (setq ncolor (cdr (assoc 62 elist)))0 B+ X) X* \: |
- (if (not ncolor) (setq ncolor 256))
$ d" c8 B. b! h5 P" r6 l! I5 t - (if (/= color ncolor)
! ]6 c. l' d% N5 T9 e- ^ - (progn) ]1 o4 R5 o [, c- ?( d" R
- (setq chk-col nil)
& S, ]# _" g/ {) M! H" T/ B u - (setq color nil)+ \& W3 q( z. n$ M9 A
- )( y8 D- @5 y, `: K* ]5 E, T
- )1 J7 D/ I( E7 D0 L: \3 h3 e
- )
/ Q( O6 m5 N2 \' M
/ ?7 t x, {8 `! L0 G- (defun match-lt (/ nltype)
# ~5 b" F# T1 @8 ` - (setq nltype (cdr (assoc 6 elist)))
2 j1 w9 w% ^3 ? - (if (not nltype) (setq nltype "BYLAYER"))
( p1 p" e. f! o T+ E - (if (/= ltype nltype)2 r; c) Q, I( ~5 J3 d
- (progn) D$ S* w& _& X& u
- (setq chk-lt nil)
! J% w/ |0 {% Y - (setq ltype "Varies")
H3 L( S, |4 O% n - )( J1 ~' P4 x1 f1 I% Z
- )1 g3 Z+ i0 O; ~' G ?6 T! R) v
- )
5 T N8 w0 \! \' y- }+ p& f
F# A, \4 { m- (defun match-lay (/ nlayer)
* Q" a; V& _9 R- N6 U - (setq nlayer (cdr (assoc 8 elist)))
+ `0 \, `$ W# k; {1 T4 a - (if (/= layer nlayer): I- M# o0 y. e: o; {* z& I- E7 S
- (progn3 \* o5 X( {9 |6 T
- (setq chk-lay nil)
8 h4 A! Q$ [# _, } - (setq layer "Varies")# C5 V+ b, }% K9 q, Z U
- )
) H# P g! A% k - )
: M/ I5 x* O# @+ R - )1 x7 z! R0 U+ w( M# W2 U& z
& g- E2 z, J. k0 a1 T7 J) j+ h4 w0 y- (defun match-th (/ nthickness)
. A9 Q3 `% a) i" k- G - (setq nthickness (cdr (assoc 39 elist)))- S* Q! \5 a* q+ n9 a; z0 T
- (if (not nthickness) (setq nthickness 0))0 [; `& }! E% P% n9 }
- (if (/= thickness nthickness)
0 c! x2 s+ I9 d' v3 D - (progn, {* J8 ` _. \5 N
- (setq chk-th nil)) X+ a2 z- @/ z" F! \
- (setq thickness "Varies")
& c; K! N7 o- b( m - )
7 g3 _' o3 T7 z+ r$ a. e - )& ^$ b6 `: X( h4 t, Y$ D5 q
- ). r: _- b0 c6 ?7 J
- * U+ w3 j* J+ J% G
- ;;
1 K* ^% j$ _8 I - ;; If an item is a member of the list, then return its index number, else
0 h7 |" j7 W5 `' B - ;; return nil.
9 }! t3 v* z( D - ;; n0 H; D, c7 L$ F9 {& g) Q
- (defun getindex (item itemlist / m n) z& `# `3 P' b* l* L, c( F i
- (setq n (length itemlist))
3 Y c! e3 b8 N @; S& Y3 A* x, k; T - (if (> (setq m (length (member item itemlist))) 0)+ u3 D* U3 ^. F( P4 A5 Y
- (- n m)
8 C1 X/ q- H% M1 \. I* j - nil
3 T) A8 ?+ y: T$ Y+ k - )! l* n" n% |8 w
- )7 W7 i$ O& g. z+ a2 ]3 U
- ;;
4 N( s$ y5 n! ~) \" L) j0 k - ;; This function is called if the linetype is set "BYLAYER". It finds the & Q6 @4 K [6 f" D
- ;; ltype of the layer so it can be displayed beside the linetype button.
3 I+ n% E- ?, x4 X, A$ b - ;;3 z& m. q# q6 D2 m2 S8 I& Z5 A& E9 S$ B
- (defun bylayer_lt (/ layname layinfo ltype)
7 \# r" z$ Y$ t - (if lay-idx2 B0 K7 X ~- ^5 y
- (progn
; V. U' b, Y' g - (setq layname (nth lay-idx laynmlst))
O q( F3 I V# J$ R9 I, r - (setq layinfo (tblsearch "layer" layname))( r1 R1 h; M" c. w* ?/ F3 I5 H
- (setq ltype (cdr (assoc 6 layinfo)))/ o I- s* x; A$ D0 q7 g+ F5 x( D! N
- (strcat "BYLAYER (" ltype ")")
' h3 n- C, M3 Q9 X# O" | - )' f9 g9 h$ O4 j4 q0 S: H2 N Z
- "BYLAYER"
, H4 f z( @6 f" O" X8 ? - ): f2 z, o7 u$ k
- )
) U& }3 B8 E6 b - ;;. Q5 f) g: T0 J+ \+ x
- ;; This function is called if the color is set "BYLAYER". It finds the
- R6 p% k" C8 v h8 R* l6 n8 p9 k% } - ;; color of the layer so it can be displayed beside the color button.) M, d$ M8 o1 k( J! N+ q
- ;;
. [$ _: F1 I+ }* ?6 V - (defun bylayer_col (/ layname layinfo color)) f+ o; z/ k* _" i/ |% G- l% N( Q d
- (if lay-idx/ l" B1 d9 Z, \* O, M+ Z ^7 p
- (progn
~7 |+ Y* Y8 [; ^8 ]6 T0 a& @3 `' w - (setq layname (nth lay-idx laynmlst))7 z) @) m8 [1 d/ @
- (setq layinfo (tblsearch "layer" layname))5 J/ ?# ?8 ?6 _+ k7 J& ?
- (setq color (abs (cdr (assoc 62 layinfo))))
+ _; y! V: @9 c7 a8 K6 j - (setq cn color)
& h2 C, [4 D, ^0 m- C& E5 O - (strcat "BYLAYER (" (colorname color) ")")
* k, e2 r9 ?+ r' |) T; J7 h8 ]9 v - )+ l' Y, Z! U8 x3 a( y+ u8 U
- (progn) D; C8 V& O! m6 w6 y6 q; i1 O
- (setq cn 0)
1 l4 X( K0 H; d - "BYLAYER"
* e# O& Y/ \% t6 M+ I( ? - )
, D. _. y- M, y( ^. y - )5 \3 W( ^5 \9 r8 [* o
- )+ I5 ]+ e% c3 K0 c0 D
- ;;
/ z4 D: x; |- s) T+ z- r) _ - ;; If there is no error message, then close the dialogue
0 u: U( X7 T* W% I+ A3 O - ;;* O( a7 f I8 o) ^) Z4 x
- ;; If there is an error message, then set focus to the tile: @' H' N" o6 r) y
- ;; that's associated with the error message.
$ I8 e( i. f& K3 Z - ;;
' q: a7 h/ n* ]9 v9 a - (defun test-ok ( / errtile)
/ v7 W9 S: u( {+ @ e& e - (setq errtile (get_tile "error"))
5 U+ e( @6 U, u( @: b2 S1 ? - (cond
( s$ t9 X% v% R* e8 L( o; t# [$ r - ( (= errtile "")4 Z, P8 N* Y( |6 j! }
- (done_dialog 1))' X! D$ D0 V; W- u! O% t
- ( (= errtile "Invalid thickness.")* H$ f( v6 ~* f4 n: V
- (mode_tile "eb_thickness" 2))
, l8 ]2 i2 e6 \( ? X1 |- @. H - )
K- A% C7 M( \6 N# w; w; K. ? - )% ^( _9 ]* T# ?. A: L; k# A3 E
- ;;
! p& T% J& E$ i) y- r8 C5 P) ] - ;; A color function used by getlayer.
3 L% R* Y( S" L9 u! ? - ;;
1 k( ~! l: c% W' ~/ H o* M" S. L - (defun colorname (colnum)1 q0 c8 }; f J3 K) R% g. w% x5 S
- (setq cn (abs colnum))* f9 y- V2 {. @ K5 y
- (cond ((= cn 1) "red")
1 q" t3 B# v$ `9 {3 ~8 g! @ - ((= cn 2) "yellow")
9 Q3 k: G+ y4 X9 N# H - ((= cn 3) "green")+ A: v& N$ @# L$ a; P3 \
- ((= cn 4) "cyan")& w+ N6 c5 W; f( ]$ p1 p$ @9 E
- ((= cn 5) "blue")
* p" s' q+ t' @7 R, S - ((= cn 6) "magenta")
, Z+ F1 a# D& j - ((= cn 7) "white")+ v4 j) v0 j3 t4 X
- (T (itoa cn))
$ p4 B/ _5 w: T) |' `& P: c) A - )& i/ u! \" v2 G* D0 @
- )# ^+ n- e2 R# D' ~/ ~- D T0 H5 b
& n7 Y4 n/ r) g0 v- ;;; Construct layer and ltype lists and initialize all) u: S: G( b0 c3 l: R+ ?5 D
- ;;; program variables:) \" q7 N) {2 ]5 e# N( H' _
/ {5 I7 x' U! R8 F. l- (makelaylists) ; layer list - laynmlst$ E# n7 Y8 y& ~5 j/ e, A" d
- (makeltlists) ; linetype lists - ltnmlst, mdashlist
) T2 h; P h- Y! D& T - ;; Find the property values of the selection set.
9 {( b- ~ V5 q; L0 y$ u - ;; (getprops ss) returns a list of properties from
8 T/ L! D0 S& e. F& K - ;; a selection set - (color ltype layer thickness).# K; p/ \% G* X* E; P; u% K/ `5 E6 b
- (setq proplist (getprops ss))& c U+ S, W/ F/ i) h
- (setq ecolor (car proplist)): p0 `3 o9 l$ `
- (setq eltype (cadr proplist))
' `9 \9 O5 @* L - (setq elayer (caddr proplist))
2 a, O- x& B, I* [" S - (setq ethickness (cadddr proplist))
' e) ?. U/ a, @0 U - ;; Find index of linetype, and layer lists, G; O. l, d# G) ~
- (cond
9 M' b3 K" n6 m: |5 ? - ((= eltype "Varies") (setq lt-idx nil))
1 y% ^ ?& L, B7 J" I2 K5 G" W3 V6 s - ; ((= eltype "BYLAYER") (setq lt-idx (getindex "BYLAYER" ltnmlst)))
# m9 `: c$ u) a* J& m: b5 `3 v - ; ((= eltype "BYBLOCK") (setq lt-idx (getindex "BYBLOCK" ltnmlst))). R9 T6 E/ j) _& v% g
- (T (setq lt-idx (getindex eltype ltnmlst))): P3 S; H+ I$ F' b! B8 E
- )
+ {& Q# l! ] { - (if (= elayer "Varies")" L. ^+ p8 C6 z3 K; B- u* @
- (setq lay-idx nil)
7 e! c) q# Y1 f3 @; u1 g9 s - (setq lay-idx (getindex elayer laynmlst)); s3 T( u, e6 X3 g9 S
- )
4 f% ~) s1 A2 v5 D& A - (if (= ethickness "Varies")
/ E2 I* t9 R4 h - (setq ethickness nil)6 c# T/ E! \3 z% Z( i0 s
- )4 P/ V+ C& l5 m+ U7 n7 h
3 a3 p' f r5 E5 Z- ) ; end (ddchprop_init)) W) }; |2 {; L6 z- [& u, i, A h
2 p' J8 m# q( e, [! `3 [- ;;; (ddchprop_select)$ K3 l" O. ~/ S; J# ]! G
- ;;;
* x J# E% [0 Q( M% _7 | - ;;; Aquires selection set for DDCHPROP, in one of three ways:( }) j- {" g$ s+ h
- ;;;
7 K, j- ]% T- [9 G9 O" R - ;;; 1 - Autoselected.3 e* s# Z [$ D) Q. `" _
- ;;; 2 - Prompted for.
5 ~5 H( {8 |* w" B7 V - ;;; 3 - Passed as an argument in a call to (ddchprop <ss> )7 j/ ?2 ?$ i; H$ k' n; j
- ;;;2 u* \, R# O0 |$ T, Y( {- j& _$ c) j
- ;;; The (ddchprop_select) function also sets the value of the+ N6 V; Q$ q L9 R [9 _, O
- ;;; global symbol AI_SELTYPE to one of the above three values to( }% k/ j1 ^/ R! v7 [" v
- ;;; indicate the method thru which the entity was aquired.
8 ]. B6 P2 L0 m$ {3 v8 E; c
_- m/ F: x' i/ Z7 Z- 7 r* s; d- B+ B; o1 v9 t+ M
- (defun ddchprop_select ()
! K. b3 s6 I2 s - (cond
' H3 G$ {6 l1 i8 o1 ^1 e' _ J. k - ( (and ss (eq (type ss) 'pickset)) ; selection set passed to" b0 s( {% Y1 l4 ~
- (cond ; (ddchprop) as argument
! ]2 }: K% }$ I+ T2 f# c - ( (not (zerop (sslength ss))) ; If not empty, then3 _( }" P7 o' |
- (setq ai_seltype 3) ; then return pickset.) E7 u) T' z/ ]' L3 d9 D" u
- (ai_return ss))))4 ~6 e( {5 c0 T" s9 _" F% |
- 2 p1 [5 i8 y5 g7 U [/ v- m
- ( (ai_aselect)) ; Use current selection2 i$ _2 {6 f7 F6 D
- ; set or prompt for objects( V4 q0 K3 O) R
- 0 U1 t u6 F+ d) E' k
- (t (princ "\nNothing selected.") k& o6 `2 k. Z: d
- (ai_return nil))( [% k: T0 S( H' t: @
- )
`( q2 r* Z9 E* n } w - )
; y) E! Q$ w; Z: s! t0 T
" g# r! f! U! D. a- ;;; Define command function.8 I" v/ F$ d1 {) K. J& U0 E8 q
. d% D4 X& l" E/ F" q: c9 t+ P7 Y2 N- (defun C:CH ()
' w+ e1 f Q- j$ R6 z - (ddchprop nil)
# _1 S$ A8 W9 ?. _& g3 Q1 m - (princ)& e2 C1 G; q `! R3 i- n
- )5 U1 N& X, x7 {) \7 n3 M, A
- 3 M3 r4 n V8 \: w' I, q" U
- 6 ~4 H" [9 l( A W
- ;;; Main program function - callable as a subroutine.
9 X. H' r% M2 G - ;;;; c' z8 s; o$ H% H- |
- ;;; (ddchprop <pickset> )" ?6 m+ c W% p/ Y% j
- ;;;& m3 {6 G4 e1 d7 W# c7 W8 h4 X$ o3 w
- ;;; <pickset> is the selection set of objects to be changed./ Y" s* m( o/ @* F6 w. m2 |. T7 y. m
- ;;;
! o. p! J9 m! X3 @) V- b) D n* n S - ;;; If <pickset> is nil, then the current selection set is. y- ?5 v, X6 q1 c, j
- ;;; aquired, if one exists. Otherwise, the user is prompted8 m: E" j( k& N! Q, O# j( N
- ;;; to select the objects to be changed.
5 @2 N, y5 _4 Q3 @( A - ;;; ]' L: H0 d7 z/ w6 U
- ;;; Before (ddchprop) can be called as a subroutine, it must* { i& v+ P% @3 v( P" x
- ;;; be loaded first. It is up to the calling application to
% x" E k. _7 i) x' J- w9 j - ;;; first determine this, and load it if necessary.4 @3 `/ S: m, u/ _2 H7 K) L5 [* Z
, \$ W o1 P4 H) M7 J7 t$ P! K- (defun ddchprop (ss /% ]4 B& [8 @2 F+ y5 A
5 x' f# f# Q6 f% C# C5 S0 J, ~- add-mdash ecolor ltedit_act s& N8 U1 M. ^% t: _! s {, @4 c
- assoclist elayer ltidx selset
# e |) B$ ~$ W2 ?- G% W - bit-70 elist ltlist set_col_tile) Z& A! c: h' X& }% b2 T; M
- boxlength eltype ltlist1
! c( c$ x& b* ^7 Q5 U, O# S# o$ \ - bylayer-lt en ltlist_act sortlist, a8 B+ A. r/ h3 N7 R( Z
- bylayer_col ethickness ltname
2 c: |# s; b+ W- g1 a& X - bylayer_lt fchk ltnmlst sslen
5 t4 [, [5 B: K5 H' w( s - call_chp frozth ltvalue templist
0 H2 S @: p6 V& H - chk-col getcolor ltype temp_color& V( p5 _0 {3 M) x$ g! V: B& ^
- chk-lay getindex m test-ok2 t! H: R( x6 {% a- \; E
- chk-lt getlayer makelaylists testidx
4 L' w7 o7 {9 z/ x! A& w* z* G - chk-th getltype makeltlists testlay
& |. k' d$ \, W- E - cmd getprops match-col th-value
2 A, O0 {% \/ G - cmdecho getthickness match-in thickness
% m3 D/ H: k1 P5 ? - cn globals match-lay tile
* p* x1 _5 E3 z - cnum go match-lt tilemode
1 n7 }0 k. n+ d% y - col-idx index match-th tile_rect' c# ? V" T2 s
- colname item match_col vi
/ {5 k8 O( g$ D5 ?1 f: A3 V - colnum item1 mdashlist vpf
$ m+ f1 W6 C. R7 ]: l - color item2 n vpldata% s% _& R% e% Y, k; _ I7 U; L# [4 E
- colorname itemlist name vpn8 Q* g8 H/ H- k
- col_def lay-idx ncolor x
2 w! r \7 ?5 b& \3 A. v3 n: o, w - col_tile layedit_act nlayer x1
/ [( g4 a+ ~, g - ctr layer nltype x25 ?7 E' H, M& k% ~" @5 @) h" I' F
- cvpname layinfo nthickness xdlist6 z; y& y5 ?1 B
- dash laylist off y
. g7 [$ g m0 s6 }% y - dashdata laylist_act old-idx y1
5 f+ [% }" A! e' K8 |2 g( f) {" L - dashlist layname olderr y2
. [% |7 i& |+ S$ T - dashsize laynmlst on undo_init+ u* K% u, C; O* H2 y6 X, j" F
- dcl_id layvalue onoff/ x% ]/ E$ O; i
- linetype patlist8 \8 X$ J2 Y; [5 Z
- ddchprop-err list1 pattern% C9 _! g3 v) z- C b
- longlist proplist' {. v( q4 B7 j* i4 q3 n! U
- lt-idx reset-lay- V6 A8 {( K( [6 Q9 l
- drawpattern ltabstr reset-lt9 {5 j+ F8 [+ o# q
- )
7 z X- X M- Y$ h! I! `2 X5 \
4 R! l4 ?$ J" q( M1 t- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
, t. u) L o! \( Y0 m9 f - old_error *error* ; save current error function8 J1 m3 u6 Z- p; Y+ O4 w
- *error* ai_error ; new error function
% L) ~# J3 F; `- @/ H/ H) n - )+ e) X0 @( X- ]
( G Y- H6 k3 g/ f, |: `* }- (setvar "cmdecho" 0)
9 \- @- A( M, j" r+ Z, @
2 @ {- C' ~1 b# \7 U2 ?$ p/ D- (cond
2 w ^1 q( P9 D& c& ~8 Q - ( (not (ai_notrans))) ; Not transparent?
# B0 }# f1 n, B% P7 ^" x - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
1 ~1 g0 P, z( Q7 @ - ( (not (setq dcl_id (ai_dcl "ddchprop")))) ; is .DCL file loaded?. a) }$ B$ C' j- Z- b
- ( (not (setq ss (ddchprop_select)))) ; objects to modify?
+ T( k1 H! S0 o5 ?9 }, k - , S6 W3 Z3 ]1 o
- (t (ai_undo_push)
( D$ d. ^8 L6 R: s( f2 x6 }) _1 |; R - (ddchprop_init) ; Everything's cool,; o# e! Y) s( m( C
- (call_chp) ; so proceed!5 K" F" P8 L. F4 D& R4 q
- (ai_undo_pop)9 C2 Z+ V4 U9 k% f( C; ]. v
- )
9 c, b1 F( C2 X) D - )
# k2 Z# R- w2 _) Y8 `" U2 w# f - 3 x# h0 C: e" R, ~$ W1 O
- (setq *error* old_error) / o; ~8 v" @" S* Z* r
- (setvar "cmdecho" old_cmd)
: q$ @1 Y {0 p- M2 }7 _" m - (princ)- ^: J7 T+ G& E5 e+ Y$ ]
- )
* s4 N$ r) r; P$ }- w' |2 I5 W - $ C, s. v+ y: F
- ;;;----------------------------------------------------------------------------
1 |; b! {. Z1 z - - n( A8 z2 b+ w- M' @0 B
- (princ " DDCHPROP loaded.") V* b% n: n! v4 Q
- (princ)3 ~9 g& D( T) J
) u) N0 l% B5 m; w- ;;;----------------------------------------------------------------------------
$ [4 c* p+ ]( G* X5 N - - Z% \- Y) {4 \5 B* ~8 q6 J
- ;--------------------------------ddmodify.lsp----------------------------------
1 V; }- F4 Q% d) a5 U2 u' u - ; Next available MSG number is 111 z. l) @7 ^9 ~
- ; MODULE_ID DDMODIFY_LSP_
3 h2 v8 [* o; t# Z, A - ;;;----------------------------------------------------------------------------
' S+ ^% J1 m. t. \9 } - ;;; DDMODIFY.LSP @' O2 r% u7 h, o% ~ `( _5 ~3 g% a
- ;;;
/ u& t2 o1 _! r/ d$ M - ;;; Copyright 1997 by Autodesk, Inc.: {) P9 `( Y8 |$ O9 \; v1 X- u# `
- ;;;2 j8 h+ F# e) w( `2 B7 Y% _
- ;;; Permission to use, copy, modify, and distribute this software: s$ o* z% N2 u
- ;;; for any purpose and without fee is hereby granted, provided
0 h2 H: _. m3 R% ` D, r" _ - ;;; that the above copyright notice appears in all copies and6 a( ~1 q& o+ H. f; n$ J+ m
- ;;; that both that copyright notice and the limited warranty and' j6 u k) f- Y& I3 n3 Z! E- U
- ;;; restricted rights notice below appear in all supporting
1 H6 d; s* A! ~! B6 z - ;;; documentation.
2 L# D6 G+ Z" |+ ~ - ;;;% e+ {4 l4 M7 x
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.8 T- f0 Y' M2 W
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF# t9 k- P( [! q$ V7 S! C. d: }
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
7 s7 X( \0 @' W9 V" @, ~, }' l - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE7 W' I* c+ A: l, x7 c3 N3 s7 y3 {
- ;;; UNINTERRUPTED OR ERROR FREE.
* a( A! z' T1 t. N+ \1 | - ;;;
7 R& \6 @* W7 e2 h; ^, H - ;;; Use, duplication, or disclosure by the U.S. Government is subject to
/ D- t$ C6 N' u' n - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
; e! u/ g1 m% C0 {0 [8 t. i) i- ~ - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
$ |& l- t# Y+ |& j, y) l) N - ;;; (Rights in Technical Data and Computer Software), as applicable.
: C, y+ x% u8 @5 b' Q' I: V+ M - ;;;
, i1 w; v4 A5 B - ;;;.0 t$ |" V. w _# z! X7 U' {
- ;;;; f# ?6 N6 N; I& L
- ;;;----------------------------------------------------------------------------! ~& A" c0 _/ M& P; E
- ;;; DESCRIPTION
3 W# M/ d i1 b - ;;;: H9 A* [( w+ K( n7 X
- ;;; This function allows the user to get a listing comparable to the LIST
$ J: R+ v6 Y; c3 n - ;;; command for most objects. In addition, most object fields in the
7 \; A% A; x" _' q, C8 ~ - ;;; dialogue box are editable. Points can be specified dynamically by% X9 {# h C$ Z2 U; c
- ;;; temporarily dismissing the dialogue box. Each object has a unique/ D5 G, K# T; R6 h r0 _# E
- ;;; dialogue.
, ?( Q' A' B2 y: l' i! p - ;;;
+ r6 k5 f- I5 a; h$ C - ;;; Naming conventions
; n# O/ W1 Q7 W - ;;; Long function and widget names may use an underscore "_"; l( d H6 N) _$ k/ T* p$ o- u
- ;;; in their names to make them easier to read, long variable8 _7 [# ~) O0 p7 f
- ;;; names use a dash "-".+ V. ?' W8 H& b. R
- ;;;----------------------------------------------------------------------------
: u2 ~! T9 @$ i5 l8 I - ;;;----------------------------------------------------------------------------$ C$ Z6 a# r/ D1 Z& o
- ;;; Prefixes in command and keyword strings:
: E( z8 t' }! v& S0 d; `4 n - ;;; "." specifies the built-in AutoCAD command in case it has been
! H! w5 G2 }0 {) m7 ~ v6 r. @ - ;;; redefined.: K( [% p f }* s
- ;;; "_" denotes an AutoCAD command or keyword in the native language/ H& D, z. C3 {) B6 d4 [
- ;;; version, English.
/ r' v6 e! T9 }4 G - ;;;----------------------------------------------------------------------------
7 a8 [( {( E# _) V. U( v% Y/ f" z - ;;;
7 @9 i5 t) q9 @1 |! J - ;;; Avoid (gc)s on load to improve load time.
- }+ y+ N% e$ }' H0 T( a& g. V+ {; Q - ;;;
2 L2 T2 G$ P# g - (defun do_alloc (/ old_allod new_alloc)" X$ C5 s% E1 c$ O, B6 R4 K+ D' G
- (setq old_alloc (alloc 2000) new_alloc (alloc 2000)); v# y; \: R$ K/ K# z" S, D
- (expand (1+ (/ 17000 new_alloc)))
1 Z, s- u: p! S- }$ B - (alloc old_alloc)
; _- K7 m6 g# u" j' ` - )
. @' ]0 V- D [/ J( C - (do_alloc)* U7 p: r: |8 T) z
- (setq do_alloc nil)
3 {( }' F5 G# H6 z# ], \
- S$ ~" }/ D5 h# R3 y- ;;;
5 X! r1 Y1 j4 Z* z/ O - ;;;5 x# C: ]& @# w+ @, K: l
- ;;; ===========================================================================+ Q } q. V+ [' a8 L: p+ x
- ;;; ===================== load-time error checking ============================
R* V& w2 T+ A& O7 G% y7 U
! A' G6 x" I9 \. s' u( U- (defun ai_abort (app msg)! U# P/ Q( T G
- (defun *error* (s): J, k+ a" f$ y1 W" t( G$ ?* w2 l
- (if old_error (setq *error* old_error))
7 R0 }4 P6 o3 |* i$ ` - (princ) w+ C' H3 m# M; k5 y
- )
`% U" K# G3 L4 J3 m. t2 U8 ~ - (if msg
. p; B+ V. n$ s- V3 F% H - (alert (strcat " Application error: "
! D8 R( _8 i! r$ \( a& g- Q* V - app* a! Y x2 }0 I9 |
- " \n\n "1 {5 ~8 L& ]( ?5 G4 ~
- msg$ S G* m7 n9 V' l% {% O
- " \n"
) N2 j% A( t7 y - ) p* A# v) @9 J9 O+ g; b
- )7 ~1 W' k' p. n* b# c1 w* `6 O4 B
- )& f( n- W. N6 P
- (exit)6 ?; w3 _" ]1 x, B+ H. h
- )- R" x' S# s Y! @
- ) v, n! Y8 h5 v2 G2 h$ a
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,& B5 t3 U+ m7 u9 \3 V+ i0 [
- ;;; and then try to load it. If it can't be found or can't be
' q' X3 O+ L/ A - ;;; loaded, then abort the loading of this file immediately. m1 o- l& l% O: c1 ~
, _6 X7 |7 h- A. J- (cond- x+ m9 t& b: D4 Z2 {- X
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.: J& ~" ^) i. Z# F( ~/ }6 D
* W" X+ d5 l/ |- j* M `" n& q8 L- ( (not (findfile "ai_utils.lsp")) ; find it" }/ a5 G" _, W2 w" H8 K5 X# |' Z
- (ai_abort "DDMODIFY"& c2 Q; }' o. f* ?; j* h0 A. Z8 d
- (strcat "Can't locate file AI_UTILS.LSP."
, _7 h8 d5 J5 B# I3 J; L1 U - "\n Check support directory.")))
7 v! _' ]+ @8 u% ~& i6 B, u
; P- x. g4 z1 Y: F0 q8 Z- ( (eq "failed" (load "ai_utils" "failed")) ; load it
' }' |. c+ u7 F3 @ - (ai_abort "DDMODIFY" "Can't load file AI_UTILS.LSP"))
) E6 B8 [6 g7 r8 G - ) U' d6 a0 o6 a
( q+ N4 u) w, n4 @9 d. P- ;;; If we get this far, then AI_UTILS.LSP is loaded and it can
$ t5 Y4 g# Q$ J/ H - ;;; be assumed that all functions defined therein are available.
; d9 X- b1 U! y8 q( Y! m
$ B0 L7 U) d, R2 i* a- ;;; Next, check to see if ACADAPP.EXP has been xloaded, and abort
' |: E( P+ w' P$ X- C - ;;; if the file can't be found or xloaded. Note that AI_ACADAPP
, C- H: @ p6 r9 y! Z% n' ^1 n0 v - ;;; does not abort the running application itself (so that it can
- G! q. p# K4 k1 w, X - ;;; also be called from within the command without also stopping
. f9 K1 o& E+ K! v$ Y - ;;; an AutoCAD command currently in progress).# n; W, D7 l e3 U
/ Q6 a7 Q, A U3 D0 y0 ^. P+ D- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
% T, H( i' y; M, d' P# U - (ai_abort "DDMODIFY" nil) ; a Nil <msg> supresses7 | ^ S# @, h4 \ I
- ) ; ai_abort's alert box dialog.
4 i2 I3 d2 z1 l2 Y* T3 e
$ K5 f7 G! K# h- s2 r- ;;; ==================== end load-time operations ===========================
% r F6 ~8 E1 b+ F. U8 N/ s - M4 ^+ I8 j, v, e" t
- ;;; global variables
. ?. D- @2 j; D* x5 [
! M0 f* h5 Y( |8 P5 m5 H- (setq hatch-elist nil)
) w9 V, g [( ~
# ?+ r2 }6 M* |' f$ a0 J1 l# U- ;;; If we get this far, both ai_utils.lsp and acadapp.exp are% W" C" G+ y6 W+ i
- ;;; assumed to be available.
: v/ C. q' f+ j/ E9 T5 _) [ - 3 ^- W- `% ^' I* k$ G8 a' l% \* T
- ;;; Define and encapsulate all subroutines that are declared2 u$ B! y* p) I
- ;;; locals of the (ddmodify) function.$ u5 Q3 i% z# p/ A& z/ |4 h5 A
J/ P) K2 S7 Y5 O$ M- (defun ddmodify_init ()* |& ~ I# h- S7 h$ D3 i3 [: y8 f' C
- ;;
/ C" k9 D) ^. O& E0 B$ g* }8 W - ;; These three functions modify the enitity list for common properties. Since& v2 I, E3 u. | u' r8 T/ q, M7 ]
- ;; color, ltype, and thickness are absent from the object list when they are# B3 V0 z/ Y2 @* d7 x+ z
- ;; set to their defaults (i.e. color = bylayer), a simple substitution using* N8 I5 O3 M3 Y2 u9 Y% z
- ;; SUBST is not possible.) u2 v+ s3 C" j% f
- ;;! t( v- d# X* Q3 G
- (defun modify_properties ()8 m0 ]# ]1 p6 A6 p, N, Z8 M
- (emod ecolor 62)
E9 E$ \* G2 c& d - (emod eltype 6)
6 M0 \5 X- Z v7 l% Z0 U - (emod ethickness 39)
4 T/ ~- z9 z+ A' } - (emod eltscale 48)0 L: c% l% b1 A2 n
- (tempmod elayer 8 nil)* \* g% ~$ M m- b, ~
- )
3 u& F: D8 V3 ?! v4 O6 B7 x - ;;0 m) s+ h, v) Y9 ^6 f
- ;; This function is used for modifying common properties of the ACIS% i% W9 f1 P [, v! `5 }! j
- ;; based geometry objects. Thickness is not valid for these objects
5 ?$ J: s3 t' Y - ;; so it is left out.% L! _+ q6 N" ^! i4 M1 d' A" I
- ;;
2 A$ N. I8 y, v! Q2 g) x. o - (defun modify_prop_geom ()$ J! X/ b7 }; K( A- _' v) J
- (emod ecolor 62)4 l: ]! F* y$ f( E
- (emod eltype 6)1 A0 `* M+ H8 Z! c* v, a: @& _
- (emod eltscale 48)) h- k' ` t% u% V" g) a6 m. Z# B
- (tempmod elayer 8 nil)( i8 J/ |1 l p" Z7 S% O
- )8 \/ P5 A/ b7 @7 z3 }8 `# n
- 3 h: P: F& v0 K8 S3 |# K! T
- (defun emod (value bit)
+ N1 ^ d* r# W+ n; q. k( O; M - (if (= bit 62)
' p3 }( H s" l. }) n) _2 P" ~7 v - (progn# k. s; }) T: V. H: _# T: [$ z# U
- (if (or (= value "BYLAYER")/ [$ z6 d5 _- w- b7 f; ~7 b
- (= value "BYLAYER")) (setq value 256))9 G8 [$ X) u, s7 B5 i; ?
- (if (or (= value "BYBLOCK")
4 m: G) ^" ^& j' }7 ?' s - (= value "BYBLOCK")) (setq value 0))9 _' O! z+ m3 ^ ?2 ?
- )* w3 b4 X: W; y* n* f+ }9 I' l
- )$ V7 M2 S: B$ T. e1 S' N) H
- (if (setq oldlist (cdr (assoc bit elist)))
; S8 }/ r* W* Z2 ~) [' N& s - (tempmod value bit nil)
" I& j, J% t! v$ [& ]$ z4 A - (setq elist (append elist (list (cons bit value))))
% ?& S2 [! m" q: I0 L, O, d4 K - )5 }0 E% v. t( `/ K: }4 A
- )
. d1 p) o% ] k5 }: b5 D2 g/ | - ;;8 C( }" S, s) H
- ;; Resets object list to original values. Called when the dialogue or
" o% I3 P* p7 _( p1 E: n3 q. i - ;; function is cancelled.
( k) y7 Y: }' h. b: Y- I - ;;$ ~- ~- A: O/ Q+ i& k3 p1 n% f
- (defun reset ()
1 k0 _" j& d9 U( L, l' g% m - (setq elist old-elist1 d6 S5 N. f7 T/ W# ^4 @* j
- ecolor (cdr (assoc 62 old-elist))! H: ?; t; C: A/ V6 ?8 M3 j
- ethickness (cdr (assoc 39 old-elist))
2 Z" P: s' f( W' }3 e - eltype (cdr (assoc 6 old-elist))
3 \1 y/ }' R( ^ - elayer (cdr (assoc 8 old-elist))
- A2 Z, |8 \0 m! U. d# u7 Z8 v j - eltscale (cdr (assoc 48 old-elist))
1 F N( T4 Q; ^1 B5 S - )4 H, T! \+ f! o/ j
- (if (not ecolor) (setq ecolor "BYLAYER"))7 ?1 o: v5 w A4 @, I( {8 A$ @" _
- (if (not eltype) (setq eltype "BYLAYER"))
( d/ m( b- C0 d7 o( m* n - (if (not ethickness) (setq ethickness 0))$ L! K" f, f- y L) f! G
- (if (not eltscale) (setq eltscale 1))
. T7 i/ O2 w: m# ]& C - (modify_properties)/ V7 V& [2 R& F6 Q3 k7 R2 M0 P
- (setq reset_flag t)
0 C! G( J- r9 Y! i# V3 ^ - (entmod elist)
7 [. M5 \ o" E/ v - )
, }' ?3 [. C. O - ;;9 _) m3 h# U8 m# E2 v- a/ \7 ^! Q9 M
- ;; Modify object when dialogue is temporarily dismissed to reflect latest
" r* @8 ~+ y0 ?3 h, r7 J* k - ;; settings of dialogue. It converts the point from current UCS coordinates to
$ e, K* f" b- y3 p- A3 f# Q( \ - ;; the proper object coordinates (world or object).& n) i: M1 o) v& m# ^! _6 C" v
- ;; @' s+ I" x) C
- ;; Arguments: value - in current UCS coordinates8 o' ^+ M, \) S+ U# A: e5 n# Z
- ;; bit - object code (i.e. 10 for start point)7 [) C/ h' M' u, t
- ;; ptype - point type 0=world 1=planar
" y4 D3 W- [ K$ V. u - ;;
4 Q8 o; Y8 D* d - (defun tempmod (value bit ptype / newpoint)
+ v/ \- t5 U. B* j - (cond
0 s7 H; w- q; ~& D& E. \, ^ - ((= ptype 1) (setq value (trans value 1 ename)))# |5 e* x p4 g* O% [
- ((= ptype 0) (setq value (trans value 1 0)))$ _7 ]* G7 \" l( c2 \) I
- ), ^9 z. S3 T- k: f& Y
- (setq elist (subst (cons bit value)6 Q* C8 h% D7 H l q, e
- (assoc bit elist)/ y/ D1 o M8 z) k' t a
- elist
6 H: \2 M/ Y) K" X - )+ j' o" K, I' f D
- )3 K0 c: Y" D' K0 V5 [6 Q
- )
; c! A! \0 u5 D1 r - ;;! E7 z+ x$ K. R
- ;; The following functions are called after a dialogue has been temporarily9 ]$ J# T: d. ?$ \" y! ?9 N
- ;; dismissed and the user is selecting a point. If a point is selected the: W* }/ }7 H$ }( j* g# s `
- ;; object list is modified and new X,Y,Z values set. If no point is selected9 f* G0 C9 A8 t5 ^: z! y8 u. H4 h, x
- ;; (null response), then the point is reset back to its previous values.
3 M p. K4 F, A0 |+ K2 f8 y - ;;
7 `# \: h8 X0 T. ?5 V$ {/ L - (defun ver_pt1 (ptype)! d/ P; o( J0 W9 Q3 D- x2 ~9 l
- (if pt11 W3 j2 y# T5 {, |% g( x
- (progn+ v: b* `: t3 M; q7 |
- (tempmod pt1 10 ptype)
8 i! Q4 C( G' r0 a; S5 L$ i - (entmod elist)- N- L4 D: _# h: [! U7 w {2 W2 B
- )
6 ?& Z- L- W% _0 U5 I7 G/ ^. U - (setq pt1 (list x1 y1 z1)), T" H1 l. v/ C ^" ^& @
- )" L0 @ k8 ~: C3 o1 W' R
- )
: A( M3 [* O. n, [0 }3 u+ d4 R6 `
' b# a9 w$ z) |/ ~, `9 s8 g3 y- ; (move_pt1 <ptype> )) c% X3 k" u8 S7 Y( \4 U
- ;
* h; g; p: ~, J2 G% k - ; Called in liew of (ver_pt1) to translate block insertions which
* w; w! C( w* R - ; might have variable attributes attached to them. If the distance: W/ p Q! o/ S0 [3 C9 x" A3 y Q0 ?
- ; the block is to be moved is < 1e-6, the move is deferred., t C1 E2 j5 g: [: |0 F
- - g: k Q7 e* h0 ^
- (defun move_pt1 (ptype / basept hi)
( j8 P. E" J' T$ @ - (setq basept (trans (cdr (assoc 10 (entget ename))) ename 1))
! `3 w& q3 A/ T% P - (cond+ U1 [2 f) ]$ m" S. K3 F, D
- ( (not pt1)! @( `2 t( t+ s: d2 m, O3 R: B
- (setq pt1 (list x1 y1 z1)))
5 A8 Z4 \2 D* c4 I - 6 x" h$ [( e8 C V
- ( (> 1e-6 (distance pt1 basept))); T% A. f) ^! u( {: \
- $ _3 S# I* C* u1 r
- (t (tempmod pt1 10 ptype)
5 `8 w# ?3 j0 E5 Z8 o' s - (setq hi (getvar "highlight")) H9 ]4 d5 R7 c9 J9 E& x! n4 x
- (setvar "highlight" 0)
4 D) x5 g0 Y6 B% a - (command "._move" ename "" basept pt1)& b. D$ e8 K' b5 T4 r# l, K
- (setvar "highlight" hi))$ P5 D* H/ @2 z0 ~; F2 g) d
- )8 L. Z% W4 B/ f* }6 [- A
- )
1 z* p; \# r3 o# u$ ` - " V) B( k7 x" ^* q4 ?
- (defun ver_pt2 (ptype)
& t* Q: H; o* c5 v - (if pt22 Q1 a! {* d. B
- (progn5 Y2 F8 i% n/ q8 t
- (tempmod pt2 11 ptype)2 }$ d" M: @. t( X
- (entmod elist)
% s- z% r8 C( N7 J) I4 x - )
# c l3 H0 q X G) l: n3 ^+ @ - (setq pt2 (list x2 y2 z2))
5 I1 p9 \0 g- U, A# d3 p* D - )# l# c! M4 w. q" Q0 e
- )+ z0 {- _" ^% t* J" t) p$ A
- 7 O9 g7 v2 V( [" R* Y. s x* B
- (defun ver_pt3 (ptype)
6 E6 {- G3 u3 _( ? - (if pt3
% j7 V" K, ~( q - (progn$ V- I* ^. f9 h3 U* {0 F& k
- (tempmod pt3 12 ptype)
( |( C& Z' y- @! B3 | - (entmod elist)
+ N" L/ t, V3 K. @ - )
/ b2 V% M' x) t8 U - (setq pt3 (list x3 y3 z3))+ U) `; K5 l$ \8 u& Q
- )) n8 Y: V' `0 |2 Z
- ) s/ E! l) Y) g, G I
6 ] N3 K4 G/ W a- (defun ver_pt4 (ptype)
4 ~ t% M0 a) \* `! ] - (if pt4
1 |" s4 Q9 d1 w) M% a7 E - (progn" k9 K3 R% |3 V' }3 x6 p; U
- (tempmod pt4 13 ptype)
]" d& F8 _, t+ e3 ] - (entmod elist)) d3 V; @! T2 Q8 D% D
- )* n2 M& R3 L A. J3 Y/ `
- (setq pt4 (list x4 y4 z4))) B' A% c" i# @& D+ B6 q9 ^
- )
o5 @6 l& @3 h" D - )
], S2 p$ m1 c, ^ - ;; Xline/Ray
) @. n* x$ M+ [5 h2 {2 H - (defun ver_xline_pt1(). n9 |" c- `! H, k
- (if xline_pt1( b! T6 n* J1 C; ]: d2 `
- (progn' R3 {3 C: Y; [* _
- ;; convert to WCS.
|/ q2 ~+ F7 R0 d- b. {5 ]9 A - (setq value (trans xline_pt1 1 0))
4 S% X0 F) D0 n, V& T$ L$ f0 D - (setq elist (subst (cons 10 value) W6 q: w# {* b
- (assoc 10 elist)
# e6 ]$ p5 X, L* _+ H0 T5 d - elist1 M" Z2 J o) e, x& b. [
- )
+ G. ]. m3 g' ^$ D - )
% f$ \0 j, ]! C2 }+ }0 ^" e" X - )' E+ b5 @- x. i
- (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))3 Z/ o- ^3 F) b4 c3 R7 {& V# o, s/ A
- )
6 m9 |2 j+ F* F8 P$ |8 ~8 d p - )1 m2 y) g& _. }4 s% z' Z: z
- . k. J3 V) E; c
- (defun ver_xline_pt2(): s) }3 ^% S% {2 B& X7 S
- (if xline_pt25 _, D& m8 l% k
- (progn3 i; P$ m) s9 n) k
- ;;
3 u% z6 C* K l2 \9 [. F9 q! m - ;; Calculate new Direction Vector WCS, a3 a- v- v# z) L- P
- ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))
6 @; g+ E" L! r& r0 V4 N( B - (setq temp_dir (trans xline_pt2 1 0)) r0 I, x0 `6 ?, S# T0 n/ M
- (setq temp_dir_x (car temp_dir))
1 l3 @4 w n8 i' w7 z" t1 M - (setq temp_dir_y (cadr temp_dir))
& V! `6 P; i. h" _4 o B/ F - (setq temp_dir_z (caddr temp_dir))! q. }' B% F5 `& F' `
2 @( w* U( F" W0 N; A- (setq temp_xline_pt1 (trans xline_pt1 1 0))' D& Q! \( E2 J0 p0 P6 @
- (setq temp_xline_x1 (car temp_xline_pt1))( U7 P- A- [: P: k6 w
- (setq temp_xline_y1 (cadr temp_xline_pt1))2 I4 F! [3 l& {, ]; m- s) d
- (setq temp_xline_z1 (caddr temp_xline_pt1))# |# d `: q3 K) z) S
7 L$ s+ i( R* m8 q/ H" p: R- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2): t% P# g2 w! W! a! s& c2 m/ j
- (expt (- temp_dir_y temp_xline_y1) 2)
5 O8 F- }, k' S - (expt (- temp_dir_z temp_xline_z1) 2)! R% C( b2 _( \; s4 j% t* E+ [
- )))
^( Y! b) F$ m4 A - (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
& o+ `9 D. F# A( R5 b0 r: ] - (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
; B6 d+ V I! N$ J2 `8 ~ - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))
0 c( ^: @2 _ y# O3 @ - (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))
( s& n. d B: r) I# B5 k - (assoc 11 elist)* z. ?7 b, B% K4 w9 }
- elist
7 q8 {# v4 Z5 o: D" ^ J - )
3 l& N) H# i$ U( g( f v* ? - )
+ L; x, L% P' P% A* j5 c/ i& ^ - (entmod elist)) M0 Q- H, i- `# v: E" s
- (setq xline_x2 (car xline_pt2))
" L' B; Q4 j: i# |: q - (setq xline_y2 (cadr xline_pt2))
( _# d# t5 z, B' _! V( T - (setq xline_z2 (caddr xline_pt2))# ?* e1 i' A" z) ~
- . i# D/ L% |) l5 q& w
- ! p9 h6 p: U/ R
- )) l! j7 B7 I% d9 J
- (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))+ m8 l! o, e; h
- )
; K7 \$ p1 N# U( x1 L2 B- c - ); R( k4 q6 o; q% @: ]- p" x
, H U# K) |, y4 }- ;;9 f) U+ i% F* @: ~( [; d
- ;; Common properties for all objects- b9 t0 n7 |7 w) s! |3 q
- ;;1 `1 Q" O! y: T* _5 y/ I
- (defun set_tile_props ()7 f7 @ ?- Y8 ]; E9 h" n n
- (set_tile "error" "")
2 t4 u+ W2 @; }, H% m* N( g - (setcolor)# v: d% h6 S+ n4 G( A) k5 E9 X
- (cond! M7 T: E3 b5 V- O
- ((= eltype "BYLAYER")
! Z( @8 Q6 d* z& @. |6 N! d - (set_tile "t_ltype" (bylayer_lt)))
0 o, G! U- N' C7 H& p - ((= eltype "BYBLOCK")% c" B% E' C. m; P) z' Q
- (set_tile "t_ltype" "BYBLOCK"))# P! M6 ?. r4 M9 y# o* |
- (T (set_tile "t_ltype" eltype))
6 m& B8 Q& _9 o/ V V - )
5 c3 f& E, G6 ]" } - (set_tile "t_layer" elayer)% J5 H2 g g; i+ x Q; p% Q3 F( X+ d
- (set_tile "eb_thickness" (ai_rtos ethickness))6 E- |9 C. l1 p2 v* y& ^9 F
- (set_tile "eb_ltscale" (ai_rtos eltscale))
" B8 _" ~+ t7 k& j* j* p5 K g - (setq which_tiles (ai_common_state etype)); ~: P) J) O+ l) o7 f& x
- ;; Disable tiles if need be...' @" h/ p' M, |/ H3 D
; S% T4 I$ c1 s' u! E8 T0 b, }- ;; Layer Button and Text Field; N N- y! j$ n5 k4 J
- (if (/= 1 (logand 1 which_tiles))5 e. Z- g. U0 G; q/ v8 g: h3 P
- (progn7 w5 ^ V# T( ~! M
- (mode_tile "t_layer" 1)0 A, G% L$ T( N+ h1 G" ^- ~
- (mode_tile "b_name" 1)
& y( H3 }) m( C! _" O/ a# T' Y( P - )+ d8 T E& }- g; f5 e' ?
- )! m5 G, k7 w6 r! m
- ;; Color Button and Text Field
; f6 I6 D7 ]) _! A - (if (/= 2 (logand 2 which_tiles))6 q! I9 `3 L8 U4 O6 q$ E+ t
- (progn/ U8 q" P! c6 u1 f
- (mode_tile "t_color" 1)4 @) ~6 Z, c z# D
- (mode_tile "b_color" 1)$ U2 E8 D% }0 H# h
- (mode_tile "show_image" 1)
3 {+ A! [; }) [$ V - )
. y1 @5 ]- t) }/ O8 J3 Q. }8 ]" l - )
: J2 d m; k3 H' k2 E8 t$ ` - ;; Linetype Button and Text Field
3 }! s7 E* w' l" q- ^ - (if (/= 4 (logand 4 which_tiles))
. X$ D& D4 g4 e( K* v2 o* f- P. y# o - (progn, [8 |: _8 a/ @6 \$ `5 Q
- (mode_tile "t_ltype" 1)# q0 G% p5 R' {) h5 E
- (mode_tile "b_line" 1)
, H8 t' k# C' d( `8 m0 Z - )
9 T5 }* p8 k/ s) J3 t - )
* j$ Z* n4 s$ X: w$ ^* r - ;; Linetype Scale Edit Field- ~2 z$ r1 @! \- T
- (if (/= 8 (logand 8 which_tiles))& \4 ~) x, m, u( S$ G8 E
- (progn
5 w: l( g1 _# l* q+ Q - (mode_tile "eb_ltscale" 1)4 X( O4 s, @5 v/ ]
- )
3 r# A0 o9 y+ U$ `8 _ - )
$ k% \" _5 y! [1 }( t6 N! S7 R - ;; Thickness Edit Field.
: L s4 Y% ? O0 d F: {( d - (if (/= 16 (logand 16 which_tiles))
2 Y. N6 l9 H. n$ z - (progn
- b4 u0 [! e# _ - (mode_tile "eb_thickness" 1)
8 F" |+ K9 v8 n, q! _1 V0 {0 T - )0 U- V4 M3 y. i, } x
- )
3 m/ [7 H% c* r/ c1 G/ \: o; f) K - )
6 x. W& Z0 `- T' x% {6 ~ - ;;
# r, ?& u; R. `9 g. v9 p1 X1 s - ;; XYZ Point values for all enitites% `3 t/ Q E2 B; M. ]! H
- ;;) c. n- U3 W1 x8 a8 q7 P
- (defun set_tile_pt1 (ptype)
; p0 q) q5 E4 X2 H2 T& T - (if (= ptype 0)
; O& h: X2 u8 q- B) Q - (setq pt1 (trans (cdr (assoc 10 elist)) 0 1))( T$ ]/ t$ f! l3 Z" y I6 t" v8 `
- (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))* J' O5 z! `! u: N6 z
- )6 ]/ E: F# }% I4 s9 V& |
- (set_tile "x1_pt" (ai_rtos (setq x1 (car pt1))))% v+ h( A& d6 S; m6 A
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr pt1))))$ q3 @! n* \7 c- ~6 n' d0 {5 S/ ?
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr pt1))))
9 q& c8 i7 Z+ y0 Y - )
; d0 P- G: x, v - (defun set_tile_pt2 (ptype), b$ a0 O" ^. Z
- (if (= ptype 0)! O! T; N. i( \1 J w d* N$ C8 j" r
- (setq pt2 (trans (cdr (assoc 11 elist)) 0 1))
' l1 E- g6 b9 ?3 E) m! v( G; [, d& t - (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))& ]( N6 P% L$ e$ v! i2 p
- )' z3 u- x0 ~+ Y
- (set_tile "x2_pt" (ai_rtos (setq x2 (car pt2))))
" r8 T6 q# X! G2 } e: ^ - (set_tile "y2_pt" (ai_rtos (setq y2 (cadr pt2))))
3 m3 t+ B" g( `1 C/ n, o4 r - (set_tile "z2_pt" (ai_rtos (setq z2 (caddr pt2))))
5 e6 V) \" D c! j* t& U - ): y0 c* t' [4 r. C5 l6 O& ^4 f
- (defun set_tile_pt3 (ptype)! }3 U6 g5 X: D" n
- (if (= ptype 0)0 @5 v' n# O! K3 H" `/ w8 E4 M
- (setq pt3 (trans (cdr (assoc 12 elist)) 0 1))
- o* l% Q& ^# Z/ R6 D K - (setq pt3 (trans (cdr (assoc 12 elist)) ename 1))8 l5 k! d. w6 g5 J: v
- )" o4 Q$ |) D) w$ s- I8 r# _& X
- (set_tile "x3_pt" (ai_rtos (setq x3 (car pt3))))
( |/ P8 Z3 M- i2 @( O' w: W2 @% h - (set_tile "y3_pt" (ai_rtos (setq y3 (cadr pt3))))
! p) q1 U+ N8 [5 G0 z - (set_tile "z3_pt" (ai_rtos (setq z3 (caddr pt3))))9 q' K+ n* y" K; T5 {6 k
- )
% b; u: U5 W% q0 H3 F - (defun set_tile_pt4 (ptype)
* ]3 [; i4 U- S( ?6 e - (if (= ptype 0)0 b) X& B S4 T6 v ]* m+ {- d @9 r
- (setq pt4 (trans (cdr (assoc 13 elist)) 0 1))! C% p4 ~2 `! N- j& h, W
- (setq pt4 (trans (cdr (assoc 13 elist)) ename 1))5 u1 {) \9 R- i# b1 d( h1 Z
- )* V" e7 f6 F6 t f3 O+ L2 K* g
- (set_tile "x4_pt" (ai_rtos (setq x4 (car pt4))))* S- z2 C8 e# F! O0 [7 V8 O, h3 j
- (set_tile "y4_pt" (ai_rtos (setq y4 (cadr pt4))))" p" r) C/ A' H/ a- O
- (set_tile "z4_pt" (ai_rtos (setq z4 (caddr pt4))))3 L8 k" Z/ Q/ m# o
- )
; J6 C$ k% ~; B. M: u - ;;
9 Z" D% T' l5 G, U - ;; Xline/Ray% f/ n8 p6 V* |; f v6 ]" b
- ;;
) b" p9 m' X2 b0 s% [( ]- D% S - (defun set_tile_xline_pt1 ()* @+ \# A, x9 C6 ^/ p# O; l
, V$ t* [4 M# w5 }1 G( b- (setq xline_pt1 (trans (cdr (assoc 10 elist)) 0 1)); l' l/ ^% g& j
- * l" ~; M E0 B/ P# p; ]$ I
- (set_tile "xline_x1" (ai_rtos (setq xline_x1 (car xline_pt1))))$ z* j5 y: H) B
- (set_tile "xline_y1" (ai_rtos (setq xline_y1 (cadr xline_pt1))))1 W1 P0 p6 ^) k: g) S& Q
- (set_tile "xline_z1" (ai_rtos (setq xline_z1 (caddr xline_pt1))))& M7 F( Q \ F/ V! r7 i
- )
! w' w3 _0 H' f - (defun set_tile_dirv ()! o: r; N& H& T7 n. N
- ;; Convert 11 group to local UCS (displacement)$ m4 e& ], u( P" f5 O0 O% R* @2 m
- (setq dir_pt (trans (cdr (assoc 11 elist)) 0 1 1))
9 @7 M5 ?: _ T2 v5 S+ Z% [! Y
$ { F& t5 R2 U/ N$ _* B$ h- (set_tile "dir_x" (rtos (setq dir_ptx (car dir_pt))))
$ S. }8 F- Q- Q0 D# U1 y - (set_tile "dir_y" (rtos (setq dir_pty (cadr dir_pt))))1 s% k- U4 D3 Y; v% S8 ?
- (set_tile "dir_z" (rtos (setq dir_ptz (caddr dir_pt))))* v/ r: G# j, i7 {; `% e1 C( {8 T
- )! c* T* T" r. @6 Z; S/ D
- (defun set_tile_xline_pt2 (), s2 q* H* v, R/ Y
- (if (not xline_pt2). R" m! l* H: o) {) b1 e+ |+ c! o
- ;; Initial second point is Root Point + Direction Vector
3 G. |7 c3 C4 h% @ - (setq xline_pt2 (mapcar '+ xline_pt1 dir_pt))
! \$ M+ ?# n' C/ {* `7 X - )
1 O) W1 j8 @7 U+ ]2 _: Y - (set_tile "xline_x2" (ai_rtos (setq xline_x2 (car xline_pt2))))
* t' g) R# w$ L" x3 c) t - (set_tile "xline_y2" (ai_rtos (setq xline_y2 (cadr xline_pt2))))
2 {; b. Y. N/ R2 j) k+ P8 r% _ - (set_tile "xline_z2" (ai_rtos (setq xline_z2 (caddr xline_pt2))))' `4 g, S: ^# y: V: ~
- )
2 H' k" c4 c9 B8 i' N - 7 x# B n+ u9 w& d- H
- ;;/ [, c# a5 \$ N! [& t" |
- ;; Handle for all objects
7 m/ n( w7 [/ p, F+ t" m$ ^: T - ;;# B, I8 w( u2 Y9 \" G% d3 }
- (defun set_tile_handle ()
" v- u9 H. W) ] B% p( f4 _; ?* J - (if (setq hand (cdr (assoc 5 elist)))
2 s6 _4 r. G6 n% k - (set_tile "Handle" hand)0 i% x7 O& e y$ Y9 ~8 l
- (set_tile "Handle" "None")
- d3 l2 G' Z" M( b! I5 }% }" ?) ` - )! x5 {4 M0 ~) D+ z% _9 C: G8 p- `
- )" j6 W, d2 W/ z& i4 }1 e
- ;;& n2 y, R5 h2 A3 a8 t
- ;; Radius for ARC and CIRCLE
7 L- v! r) x/ n& A5 t. Y0 f - ;;
: E4 k8 X: ^) e x. J/ o( W - (defun set_tile_rad ()2 j$ d. i5 |- W
- (setq radius (cdr (assoc 40 elist)))
! I1 i) R2 M: [0 P; u+ A0 o - (set_tile "radius" (ai_rtos radius))
! N) ~; y8 M8 ?6 g, n% M( O - )5 |6 t1 b4 Q# D
- ;;1 p) e9 w6 n1 F$ P7 t$ X8 o8 }. d
- ;; Start angle for ARC
5 P a- Z5 s+ v1 ] - ;;
; E! e7 q' W7 ?8 g - (defun set_tile_stang ()
* |( [$ n3 }! e" b$ E* v$ c - (setq st_ang (cdr (assoc 50 elist)))
% \% I- ~( S. H+ [+ m+ Y# y - (set_tile "st_ang" (ai_angtos st_ang))
9 P- Z2 L! h: x. e - )8 Y" y- z/ Y& L) P4 I) J* I( j
- ;;
0 q/ X3 f6 W I* N! j2 Q: K) D - ;; End angle for ARC
5 N- w5 U5 k$ c2 q0 l2 d3 n - ;;
% n* o6 y& j- W! S - (defun set_tile_endang ()
5 x( g3 k- X/ x. B2 | z - (setq end_ang (cdr (assoc 51 elist)))! K$ ?' x5 O& }+ i! x: n1 X
- (set_tile "end_ang" (ai_angtos end_ang))2 R: C3 w4 k( ?: u
- )5 s; M0 ~3 t7 ]* n0 w. H9 F: |
- ;;* s9 E) V7 b- Y1 U6 R! c
- ;; Rotation Angle - Text, Attributes, Block insertions and Shapes
* ^' g! I4 {3 } - ;;3 x% ?* Y/ h7 X, b- ?2 R6 @% @. V
- (defun set_tile_rot ()
' U7 E' ^% @' f/ E; f5 u5 T - (setq rot (cdr (assoc 50 elist)))
. Q3 ~0 q. ]+ @" M$ v w) B - (set_tile "rot" (ai_angtos rot))
, [7 G7 f7 ~' t7 {' q; x# S - )
; J( X. }) p! T( O - ;;( S4 a3 w9 G) u2 e$ l
- ;; Height - Text, Attributes and Shapes% M+ W+ V. m% ]3 s; E
- ;;) l" R3 e! O# c/ y5 M' M2 ]
- (defun set_tile_hght ()0 c6 X% g' v. h: P4 \" N5 ~2 Z
- (setq hght (cdr (assoc 40 elist)))
# B5 T- o9 Z1 d. B2 S* e* D5 D& n - (set_tile "hght" (ai_rtos hght))! Z+ ~7 ~; I3 P( J% `
- )9 i, R+ B) v- e) q
- ;;% |& Z( k" D+ N! [
- ;; Width Factor - Text, Attributes and Shapes1 w' g9 @$ V( x$ g- ?
- ;;
! C4 w- \6 E' i c5 c1 o - (defun set_tile_wid ()6 F0 `3 T9 o9 H' n; e9 M
- (setq wid (cdr (assoc 41 elist)))2 D" A2 D* n. q
- (set_tile "wid" (ai_rtos wid))& u y4 E" ]( o; l
- )- o3 x6 U4 `4 y7 m$ F
- ;;( f( e# @4 J/ W" J% ]
- ;; Obliquing Angle - Text, Attributes and Shapes
* O# j5 e' }5 {! d: R - ;;& U/ c) t* {; P7 f) @2 n( N1 Q
- (defun set_tile_obl ()$ J; a$ r- f/ N# e% U% U" e
- (setq obl (cdr (assoc 51 elist))): i3 c, t" ^$ M
- (set_tile "obl" (ai_angtos obl)), \2 h: Q2 K! ]7 e" q
- )" j' k l9 {/ l% A; `5 i
- ;;
$ l* \9 T! P! ] Y) u1 w7 r' v2 J - ;; Text string
# z8 M& B' @ v - ;;
: D7 `/ i" d" N) p - (defun set_tile_text ()) W, K! q0 r% G' u# l- o) K* C
- (setq text (cdr (assoc 1 elist)))
% y) ], f2 y5 l$ |( H7 Z$ C - (set_tile "t_string" text)
/ U3 M3 A, {- n8 b3 p; W - )9 E. ]' w+ I& g
- ;;( A0 o( N! W' l! L
- ;; Attribute Tag
7 y8 r$ Q5 U" _ - ;;
+ {# p. f T0 C" l. H" ` - (defun set_tile_tag ()- u& F; N9 n4 y5 R
- (if (= etype "ATTDEF")
# @) o; r1 ~+ p& C- K - (progn
3 Q+ y W9 F, W% V6 j - (setq attag (cdr (assoc 2 elist)))
. k$ [. k1 T9 O, F* j" W7 z% U - (set_tile "tag" attag)
1 J' d; c2 R) @8 Q4 h7 |/ { - ). x# q; w" d4 @( z
- )
: T, K! G- {8 ~' H( w! k7 {. O' _* Z - )
( `6 _1 [ K+ U b0 s' B0 X - ;;
, t7 n3 `& g; G) |- B0 ` - ;; Attribute Definition
& U7 q0 O# y2 K) K# v- E - ;;
1 K2 M% M( `7 h4 Y& B; Q - (defun set_tile_prompt ()& M* E# r/ X' O# h5 t( i( a! {& D, r
- (if (= etype "ATTDEF")
/ i! g( p/ }7 E: p) P; v6 K - (progn& }8 t4 y3 D+ N3 V
- (setq atprompt (cdr (assoc 3 elist)))9 q4 L$ l) x; U' k! P* _
- (set_tile "prompt" atprompt)
/ @( D; d- S- q/ N0 {, a - )
$ k9 X$ q, ?! D - )# u6 k: M, ?. X8 ?
- ): |2 o1 \$ E O) r) \
- ;;# O2 u' ?9 ^) T* o! u
- ;; Justification setting for Attributes and Text. Initializes5 p+ N' i( x" e K: H
- ;; popup list box
% i, n- N [7 B; E8 w& ]/ _! v - ;;
# P/ ~& h$ x$ y& O6 b- T) I0 s - (defun set_tile_just ()
7 W5 t$ w5 @- r9 i - (setq ha (cdr (assoc 72 elist))) ; horizontal alignment
* C# ?3 y7 _ S# w0 T9 m* d - (setq va (cdr (assoc 73 elist))) ; vertical alignment
K. R/ f% n; q3 ]2 d5 q' { - (setq ha-prev ha), w* `0 x$ f% j) ~$ M
- (if (= etype "ATTDEF")5 H$ i0 I! ^" c. s. F0 M2 r" m
- (setq va (cdr (assoc 74 elist))) ; vertical alignment
" i( b* N. C1 g( M& Z% S0 f - )
8 W$ q/ A2 A1 b0 I - (setq jlist
% M: m2 p6 p! _( r" C# f, j& g - (list "Left" "Center" "Right"
3 F, z8 ?2 i7 Z1 w3 a - "Aligned" "Middle" "Fit"2 u r2 s6 l# J& Y; u. F
- "Top left" "Top center" "Top right"
& W! i: j( X/ F: i9 ~ N - "Middle left" "Middle center" "Middle right"8 {1 l) ~9 b: i% \# T! y" a4 C
- "Bottom left" "Bottom center" "Bottom right"
/ U% d- Z1 M% y/ z3 f: Q1 H6 i - )/ ^! C8 z- [4 j) J
- )3 H1 H) `, P4 Z9 O
- (start_list "popup_just")" \. q& G: Q5 }7 A
- (mapcar 'add_list jlist)+ F* [: u7 x; V- x
- (end_list)% [! I4 f3 r! T2 F4 o
- (set_just_idx)
: R8 W4 ?' [0 e - (set_tile "popup_just" (jlist_act just-idx))
; {2 c) U9 ]+ v - )& G6 ]8 r9 i% _5 _* b% ^8 h6 N$ k! H
- ;;9 ~$ M( |9 ]2 @) X' e
- ;; Style setting for Attributes and Text. Reads symbol table for popup list( H. ]# h4 G' S
- ;; box.4 e" U+ g! Y7 z! }, Y
- ;;
6 Y* s' l+ J1 y3 v: A, A0 V - (defun set_tile_style (/ sname style-idx tlist)
! [/ O% m! ^7 ^8 e/ e% ~ - (setq tlist (tblnext "STYLE" T) Y8 w) A2 E2 ~8 \; W
- slist nil)1 n, J5 e! A. q! |5 Z- _ ~
- (while tlist$ F( s4 J0 b( }' p- y- l4 p
- (setq sname (cdr (assoc 2 tlist))). A8 Z, q9 m1 T0 ?# ^" b
- (if (and (/= sname "")
$ D7 R; j! C! p' T/ h - (/= (logand 16 (cdr (assoc 70 tlist))) 16))4 L2 P+ R; G/ Y: a6 C7 k
- (setq slist (cons sname slist)))
9 G) ~9 `8 w2 W' t4 Y. z* W - (setq tlist (tblnext "STYLE")))+ K+ B6 J+ d3 W: B/ V, H2 _
- (if (>= (getvar "maxsort") (length slist))
* |( m0 X; B2 g - (setq slist (acad_strlsort slist)) ; alphabetize style list
0 G- f; {+ e# c+ H; R5 M/ }: D - (setq slist (reverse slist))) ; or reverse it to put it in DB order
1 X/ G6 J) m" {
3 h# i/ p+ v: x9 i- (start_list "style")
3 y% z/ w* m, x; ^0 F - (mapcar 'add_list slist)
1 H* E0 M# t7 `# \( V - (end_list); V4 [, _5 c3 U8 b+ o& k
- (setq tstyle (cdr (assoc 7 elist)))
# p0 i/ ?6 |) Q5 k: u5 K2 I* ] - (setq style-idx (getindex tstyle slist)). R' |/ X- ~; `- l! \
- (set_tile "style" (itoa style-idx))
$ c" ~+ @9 P1 x5 A% | {5 { - )& a. o% }5 C% A4 e' q
- ;;
; M/ X# B' E$ D' Y- P9 \8 }5 r7 W0 x( @ - ;; Text and Attribute setting - upside-down, backwards
* ]: H. E3 o$ D( d) d! z8 m - ;;
2 t% c% L" F) `( l - (defun set_tile_bk-up ()
% A- ?# x; `. [" [' Z - (setq bk-up (cdr (assoc 71 elist)))
! ^; ]" [4 Z; D# } - (if (= (logand bk-up 2) 2)
3 q) K2 u/ l }: ~+ w - (set_tile "bkwd" (itoa (setq bkwd 1)))0 P" Z* G( `9 j) K+ o9 }) @4 |
- (set_tile "bkwd" (itoa (setq bkwd 0)))
% V" `( W& U4 M1 s4 q - )
5 O0 X9 `' T N+ V { - (if (= (logand bk-up 4) 4) a& Y& y7 b$ B; E4 M3 s% w
- (set_tile "upsd" (itoa (setq upsd 1)))/ J1 j8 i6 N5 }( ~) `
- (set_tile "upsd" (itoa (setq upsd 0)))
3 Q# A9 J. r9 ]3 w: s; E8 w - )
, R* X- Y" r3 L - )6 j; f" O8 g4 W) ^0 y$ i; x
- ;;
! c0 @" ]8 Q# I$ A' d" O1 ~# n, H - ;; Attribute setting - invisible, constant, verify, preset8 B' K0 T& S9 H' [1 n
- ;;" P( z- G. X% B" b* w6 E/ Q: L
- (defun set_tile_icvp ()- |+ R: m9 u+ g; x
- (if (not (setq icvp (cdr (assoc 70 elist))))5 l6 g& j/ i8 Z) N, q9 K
- (setq icvp 0)
+ Y3 o4 e/ g: x+ w" w! q - )
0 W& M) W, m* b* Z1 ~7 n' c2 t - (if (= (logand icvp 1) 1)
8 F, q2 C5 {0 M; x8 |4 h& t- n - (set_tile "inv" (itoa (setq inv 1)))
1 o. W/ R- \- r, k% [ - (set_tile "inv" (itoa (setq inv 0)))
8 f, k+ W4 T5 D) K - )
; l; Z+ Q5 @+ p. t' n+ X% ^; t2 |' P5 O0 p - (if (= (logand icvp 2) 2)
4 q+ x/ [- d0 U - (set_tile "con" (itoa (setq con 1)))8 S. ]% D) @- K9 }2 r+ _
- (set_tile "con" (itoa (setq con 0))); ^. L' f2 z8 e g+ F) C/ B1 Q
- )4 [! v* D# R5 W% u) _& t# P
- (if (= (logand icvp 4) 4)
, V& `% S; l+ Q d% r, a - (set_tile "ver" (itoa (setq vfy 1)))+ f7 X4 ]& `9 M+ Z9 {
- (set_tile "ver" (itoa (setq vfy 0)))
5 {: \9 o$ T, B) _) v" L- q - )3 ^+ E/ y: ~+ Z5 ]. v1 s' R
- (if (= (logand icvp 8) 8)% B, s; c2 F' @6 n2 l/ Y
- (set_tile "pre" (itoa (setq pre 1)))
* \' M! M( c9 x& [- Z - (set_tile "pre" (itoa (setq pre 0)))7 B- Z K7 c3 i5 g# @' e
- )
. t5 E# W$ n0 \) N5 ?! j: @ - )
2 V6 a2 X, v/ c/ t% y$ N- O - ;;1 ]0 B' Q5 W& k' F
- ;; Scale factors for block insertions! U1 y- E4 x2 [% I
- ;; L! O, o7 X% B* h
- (defun set_tile_scale (/ temp)
6 v+ }- t1 e& K( h9 @; ] - (setq temp (getvar "LUNITS"))
6 }# ~( d) t: A7 s5 k f3 X - (setvar "LUNITS" 2)
2 S4 Y" i, b [2 p2 C7 c0 I - (setq xscale (cdr (assoc 41 elist)))
2 a4 C3 D) e. J u' I - (set_tile "xscale" (ai_rtos xscale)); _" j' G' W" ~+ V6 O0 H" W
- (setq yscale (cdr (assoc 42 elist)))
2 ~- @0 T8 ~, P- e7 i. C% G - (set_tile "yscale" (ai_rtos yscale))
& `& s9 {# n7 _9 d+ D, S! n: K - (setq zscale (cdr (assoc 43 elist)))0 {% p1 a: V( Z! d* @: Q
- (set_tile "zscale" (ai_rtos zscale)). B9 {+ M* b. A- r
- (setvar "LUNITS" temp)0 \2 Q5 p( `' v8 @5 j( w" |
- )- L( q. |" J* L
- ;;& C# V1 X/ m1 \) p8 ?; g2 A% E9 o
- ;; Rows and columns for block insertions7 a* f$ N+ Q% T' i9 \
- ;;$ s' w/ X# o- n
- (defun set_tile_rc ()" |% N% B) V' Z5 V9 J( g/ L5 \. P
- (setq columns (cdr (assoc 70 elist)))
% i6 d2 J6 J; k2 { - (set_tile "columns" (itoa columns ))
: t) _- t& Y9 F1 }8 ~ N - (setq rows (cdr (assoc 71 elist)))5 Y5 h, v, A4 V5 l7 O
- (set_tile "rows" (itoa rows))/ u- N# i! v% a- U
- (setq col-sp (cdr (assoc 44 elist)))1 S7 {1 m# Q1 c' S
- (set_tile "col_sp" (ai_rtos col-sp))$ G3 ?# }+ o( L* ~
- (setq row-sp (cdr (assoc 45 elist)))
9 e/ D' B, F; U! k7 E - (set_tile "row_sp" (ai_rtos row-sp))9 g8 o& ] i8 [8 J6 [) ?- G
- (if (/= hasclip T)/ W* @% W: t3 [/ }5 p9 z5 ]/ J! q
- (mode_tile "xcliponoff" 1)" r6 y. U* C0 g9 n& W( z' E/ O3 E
- (set_tile "xcliponoff" (itoa xcliponoff))5 p5 _# R3 O4 X* m+ Q
- )" Z% b' B0 |( w
- )! Z& w$ M3 Y; d7 b
- ;;
, I6 ^' A* ]2 z( {/ }8 v3 w - ;; Invisible edges for 3DFACE
( N7 W& M; Z% A: E) L: t - ;;! K- \9 F( B9 M, p
- (defun set_tile_edges ()" l' P7 k" ?9 C* o0 t
- (setq f-vis (cdr (assoc 70 elist))) R' h+ W; ^! v; \% e3 a/ }
- (if (= (logand f-vis 1) 1)+ S; t. ~9 H/ t/ e
- (set_tile "edge_1" (setq edge1 "0"))- ]5 _+ q) a' o, C1 w) E
- (set_tile "edge_1" (setq edge1 "1"))3 _- r0 U( J3 f( Q# a9 A* a
- )/ t1 M- S, [1 m, j
- (if (= (logand f-vis 2) 2)/ g& A7 u5 }1 ^- T
- (set_tile "edge_2" (setq edge2 "0"))! a2 o; Z: K$ o; v8 Y N* O4 m
- (set_tile "edge_2" (setq edge2 "1"))' X: `7 m/ Y( W0 M* b
- )9 f8 H& y5 k& Y/ y8 x
- (if (= (logand f-vis 4) 4)
+ w% P- l" B1 N7 Z9 u5 e - (set_tile "edge_3" (setq edge3 "0"))
9 D7 a: r+ j4 N6 \( s2 W. p - (set_tile "edge_3" (setq edge3 "1"))
3 j- S5 M8 B1 M, ?: L3 Y/ T9 S - )
, W0 z0 q! I1 ?9 z9 V. f! ?2 ^ - (if (= (logand f-vis 8) 8)1 y( w3 n& c) x4 c0 T, E3 u$ ^) W
- (set_tile "edge_4" (setq edge4 "0"))$ q( u' X" Z! x- H) p! _
- (set_tile "edge_4" (setq edge4 "1"))) P P' [& \+ ]7 S2 {2 W3 h [9 s
- )
. p! N1 l/ v6 `* [' [- E - )
: J4 ]0 L; X9 [: Q+ a% q9 I - ;;
! ]: D3 r& G; r0 B+ k8 X - ;; XYZ Point values for polyline vertex
# O1 h/ l& A5 y' v b8 z9 l# Q8 j - ;;! m- k% ]- i/ ]. t
- (defun set_tile_vpt (ptype)
1 v; B& S3 h: L. n3 O, W - (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")
# O3 c( G4 |" t0 J - (progn
9 L" _" A& q: e+ _$ t, r1 g - ;; ctr is 1 based, vertices are zero based.1 w' J( Z1 X% Q5 j
- (setq vpt (cdr (getLwVert (- ctr 1))))
- D" B' c( G6 C7 W$ [- i4 L/ J - (set_tile "xtext" (rtos (setq x1 (car vpt))))
- P$ t9 C0 o4 D& Z$ f4 z8 e - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
/ h+ [8 X9 A' @9 M; O1 g Z7 l - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
+ k3 W. {5 x4 z( ^ - )
# s$ c! j# G' |4 c& p - (progn" E3 q9 U( p8 c7 P4 x4 {( F0 v* }
- (if (= ptype 0)
0 o$ _1 i1 Z' Z. e- ^- {& ?2 C - (setq vpt (trans (cdr (assoc 10 vlist)) 0 1))
# a! i3 ]# T9 e8 w - (setq vpt (trans (cdr (assoc 10 vlist)) ename 1))
# ^1 U! T$ l" m, n- l) d3 I- t - )
2 _) {# h! V) E
8 T- ~( v2 Z6 M2 k- (set_tile "xtext" (rtos (setq x1 (car vpt))))
8 x7 ^; o: l, D- Q - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))7 ^! N2 m3 K1 p2 i; C/ k, m
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))' N& V' A/ q- p5 Q- Q/ \2 S( o w
- )
; P% R; m; M0 S" C$ Y' K3 B, ` - )1 }% h& g& Q0 X! C$ Z& l; @! J
- " g7 X! V: N5 l. x2 {
- )
. i0 t- \8 g1 J9 T% D( i! T& m/ P - ;; This is the equivalent to doing an entnext on the heavy weight
! {: x6 `3 ^- G, _( L/ N2 R# |8 A: [ - ;; polylines. The hard coded '4' below allow stepping over the Q/ J" B; ~. X% e# I
- ;; 40 41 and 42 group code information. The while loop finds the
+ @0 v) D6 U# R+ i) f' U* |& b7 I - ;; first vertex which will be used as the starting assoc in the
9 a" t2 s; t q/ h% h5 j! ~ - ;; call to nth.
# x; L' x( z1 ^ - ;;% \1 r( |: D7 D. C: H
- (defun getLwVert (tmpctr / count tmp). M3 ?- V/ A0 l& s* L
- (setq count 0)2 J7 U) n+ M& j: g
- (while (/= (car (nth count vlist)) 10)
+ |: |7 [7 J4 K0 ] - (setq count (+ count 1))
8 i2 i; Q# l- K" F% R* Q! E( |8 E& Q - )/ O; D1 e' W( a# r' X
- ;; If the counter reaches the number of vertices,
7 I( d& u1 ~; V' G- a8 R# Z5 R - ;; reset ctr and tmpctr to zero again.
9 K' j3 }! z' ?5 B8 |" E6 j - (if (= tmpctr (cdr (assoc 90 vlist)))
7 q: X. A& x+ s6 J3 L- ] - (progn
- y1 _0 X) W+ i - (setq ctr 0)
, n+ N8 X7 `4 a - (setq tmpctr 0)
8 ]. T- \1 ~( y$ J - )3 Z1 b, m8 i5 C+ S9 t2 |3 ]
- )
. u! t( O0 ^2 A5 G# W; Y% e6 ^ - (setq tmp (nth (+ count (* tmpctr 4)) vlist))( [8 s' r0 F. Q6 V
- (setq tmp (append tmp (list(cdr (assoc 38 vlist)))))
& H `$ s) ^$ u; ]9 p - (setq pt1 (trans (cdr tmp) (cdr (assoc -1 vlist)) 1))
% C) f2 X$ I; `2 I+ W$ w! ~ - (setq tmp (cons 10 pt1)). f4 I2 w; Z# Y' x
- (setq tmp tmp). Q# M+ t3 _0 F: t6 |' k4 W0 ~
- )
& Q% W* ^3 }4 W - ;;2 }9 F( k2 x( n9 g" ?" l" u+ Y
- ;; Set tiles for Spline properties. If the spline is rational then we
& Y+ R+ ^/ a" ^ G+ D - ;; need to display the weight values of the control points, so set! Q9 ?! S. b4 d8 i* a9 @; F* ^* h
- ;; flag to 1.
- s8 i" E' p$ W: {5 } - ;; 1 = rational spline
/ ^! f$ z' n/ ?& s3 x1 E- ] - ;; 0 = non-rational spline, s# Z; b; e2 p8 e) {! L
- ;;
* ~8 X2 I% h! Y" H2 H0 p - (defun set_tile_spline_props (), m/ b E6 C) q# C* A8 o) X
- (setq rational_spl_flag 0) ;; initialize rational spline flag
* ^# Z! N3 H5 E q - (set_tile "Degree" (itoa (cdr (assoc 71 elist))))3 i Y2 p) S/ m* h7 p1 P
- (setq bit70 (cdr (assoc 70 elist)))% f; R$ `+ R4 ~- L! k0 ? j
- (if (= (logand bit70 1) 1)2 l. ?+ t9 v+ y, `
- (set_tile "SpProp4" "Closed")
1 g9 G; Z; g) a" i/ w - (set_tile "SpProp4" " ")
6 f2 s, O) j9 m4 r4 t - )
) E, G8 N1 _5 z+ S! `3 X) D# V- v3 W - (if (= (logand bit70 2) 2)
* Y8 R4 m% F0 r) L0 J! o - (set_tile "SpProp3" "Periodic")
0 M0 J. v& Z* B+ g" ]9 H7 I - (set_tile "SpProp3" "Non-Periodic")
7 h0 k; I1 ~, m* ]' x - )
/ d+ a% G- D/ b, ^) F' h7 O - (if (= (logand bit70 4) 4)- z+ i6 ]4 B$ h1 V) x
- (progn
: Y% Q& _' D; K! M( R# P' g - (set_tile "SpProp2" "Rational")
1 k, o' D7 h; l1 r4 w - (setq rational_spl_flag 1) ;; this is a rational spline
i; g) H, T. A$ P4 K0 K- L- u - )
3 k7 F! ]! k; ^1 n( f - (set_tile "SpProp2" "Non-Rational")3 z* f F6 T4 V1 O' }+ {( X
- )
. |% \; T$ f# A" d* L" U/ @) P - (if (= (logand bit70 8) 8)
6 S4 u. }% c5 G! b+ T - (set_tile "SpProp1" "Planar")% o' j2 L1 L$ L/ ^
- (set_tile "SpProp1" "Non-Planar")" ^! R: _4 [1 D) C; B5 ~3 g
- )
( ^: }" k4 d7 X- q/ [: f - (if (= (logand bit70 16) 16)/ [ K L7 B+ w/ F. f5 v9 d
- (set_tile "SpProp5" "Linear")% K. D/ _4 A; h- t* a d: ^
- (set_tile "SpProp5" " ") n8 V, R% M e0 n7 l4 ], P: ]
- )$ _5 E! F& T& n# A6 c! H( C; \$ G
- )
( K6 C: h* j2 |, z4 J - ;;
# G6 M8 e- n2 o+ g6 f) `- o7 p - ;; XYZ Point values for spline points! c1 ]4 D. Y$ N/ p' i, b1 u
- ;; Need to account for WCS/UCS- b# E: i: e% D( I m
- ;;
/ c$ q( q& Y2 |. t }" O - (defun set_tile_cntl_pt () B/ |7 ]/ M7 \4 n1 o
- (setq cntl-pt (cdr (assoc 10 elist)))( a/ f$ l# ^6 k
- (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))
$ |% y6 ]5 T/ H0 \: \& V' w0 V - (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))
; \# {7 @" V/ |+ s - (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))4 i/ |3 `4 y1 j+ g9 Q* b( f
- (if (= rational_spl_flag 1) ;; if rational spline
- y5 @* ?3 U, R - (progn ;; show weight6 { E( b6 b0 a
- (setq weight (cdr (assoc 41 elist))) g+ p' n; N2 G0 ?- f
- (set_tile "weight" (rtos weight))+ @& M" j7 M& @% f' o+ L8 e- m
- ) ;; else6 R/ N8 r5 F% f1 h) J& S/ e9 Z
- (mode_tile "weight_text" 1) ;; disable weight field* @4 I2 Z, l% K, x
- )! d0 V/ N# w+ l+ q4 q0 K; s
- )9 J- C: l V1 q; k: C% w
- ;;
& T. Y9 V$ e% ?! f% P+ y( f: I' M' G - ;; XYZ Point values for spline points
7 J$ G0 Q# W. ~# x H - ;; Need to account for WCS/UCS
, N" C7 |: k4 P8 W a) z - ;;6 s, U U! M: Y4 H
- (defun set_tile_data_pt ()+ S v+ o, `/ P' Z- }( s2 ]
- (if (not (assoc 11 elist))
0 h! J9 Q: f6 p5 _ - (mode_tile "data_pts" 1)
' p! Q7 s! ~! n' Y! |: N - (progn \9 n3 K% h8 d: [% I
- (setq data-pt (cdr (assoc 11 elist)))
( g' @# i2 d0 a6 @ - ;; display points with current precision.7 e7 j) L& P8 K
- (set_tile "dxtext" (rtos (setq x1 (car data-pt))))
9 x) w& Y9 _9 y% ~2 `* G - (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
& E! \4 S! J) L1 x+ o) I - (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))) H% O- W' |- X" z' q& j6 A
- )
k" A" A5 ~+ E: W7 S* r5 h - )
`% I$ o( t; m c, o1 d8 h - )2 T. J( d7 B* w1 A# m
- ;;" w3 w @4 }3 O- y- ]
- ;; Fit curve, fit spline, or smooth spline surface setting
" D# l4 G/ I# S9 H, u: I" R0 P - ;;4 ~! E7 S7 e! v. L( M8 J/ n; y
- (defun set_tile_fitsmooth ()
: g7 J* U8 [; V- o4 g+ P1 S3 a - (cond
. p0 m1 t3 C: r* C4 w3 e; H - ((= (cdr (assoc 0 elist)) "LWPOLYLINE")
' j4 @. P! Z9 x f3 v( W W - (set_tile "none" "1")
0 F1 H% ?5 n2 S! m7 l% H - )
# c0 P7 R3 t. z - ((= (logand bit70 4) 4)
3 Q+ `4 U" a" i; H3 e. | - (cond
( f( `$ p4 @( [" x7 k7 V - ((= bit75 0): J0 _- [8 l" g k- Z; O
- (set_tile "none" "1")- d7 U! O$ V e& e' J
- (setq spltype 0)
# ~, A# o; t; t: T( ] - )
6 Z0 r5 O8 u3 x. ]* p5 d+ z- C. a, r - ((= bit75 5)1 M, N8 w) u3 d; L# ]3 a' K: T
- (set_tile "quad" "1"): L) g) V* [6 I
- (setq spltype 5), h2 K6 ^ {- d9 g9 R
- )! P; y& I5 [! _
- ((= bit75 6)
B7 `: r! B3 Q- W - (set_tile "cubic" "1")) L# F9 m% f- m
- (setq spltype 6)
, @8 Q2 B- t' r0 ~ n5 y+ ? - )6 f$ }2 T1 T* a( T9 o
- ((= bit75 8)# G% i# A: X/ F5 L" J0 f2 t
- (set_tile "bezier" "1")
# ^, q5 P! g9 a' z& l - (setq spltype 8)9 f8 P0 w$ v! |: g
- )( M' j, [1 n4 a1 y
- )
) ^0 [/ i; V8 R: |' E" C - )
. i+ H- u- g- M - ((= (logand bit70 2) 2)
3 Q3 |8 |9 b( T+ U9 S; a/ O( [ - (set_tile "fit" "1")- c6 i0 S9 _6 g4 \! I, S
- (setq spltype 1)
1 i% ^1 ]% M7 y( @7 j# E2 ] - ). Z% `* L; u! s, p8 j: R; m
- (T (set_tile "none" "1"))
$ S. k8 x5 s% T9 ?( u+ Y' f - )1 s& J% _9 d8 F) u
- )* i: A3 O: B9 U- N) y
- ;;
+ h' O( x+ K2 ?' ^& f - ;; Closed or Open mesh and polyline setting* n" \ a! u7 N/ D' [# v
- ;;
4 Y3 z; w& x: H0 {' F8 I* q9 {% m/ I; n - (defun set_tile_closed ()
* g5 q1 x8 U$ J6 o - (if (= pltype "3D mesh")( J, @' Y' n( n9 W8 N( S& N& R) k
- (progn5 \# v. q& p. z- s
- (if (= (logand bit70 32) 32). N C. C% h+ x. h( n
- (set_tile "closedn" (setq closedn "1"))
* c+ T- V$ E# q/ [ - (set_tile "closedn" (setq closedn "0"))0 p6 x+ h2 J9 e: A% k+ D
- )( E" ?) w# a* o! ]. F7 c
- (if (= (logand bit70 1) 1)" K2 L2 I( W, H o6 l$ s
- (set_tile "closedm" (setq closed "1"))
( d# W6 x, F( i1 ~8 y A - (set_tile "closedm" (setq closed "0")) \+ n6 `! c1 W0 s( V/ U% B3 p
- )5 u) a/ i L) k+ z* P, }$ b
- (setq old-closedm closedm old-closedn closedn)
& m& \! Q( ~; g( u- I0 i3 B - ), b4 ^+ m! ~+ t- x q
- )
( Q/ k X2 ?0 F/ {) ~ - (if (or (= pltype "2D polyline")) ]: W, y& I9 r* t
- (= pltype "3D polyline")
R; K+ X6 W" ^& b - )
& s1 a; e- O9 ^6 \0 c - (progn1 q- I& p5 L5 {7 H
- (if (= (logand bit70 1) 1)
# s& F& N4 S D1 u5 \2 |( g - (set_tile "closed" (setq closed "1"))- _& ?* T% A" m: o4 \8 q$ r
- (set_tile "closed" (setq closed "0"))" D6 S% H( F" c1 P2 b
- )
9 F o" b% P( J - (setq old-closed closed)8 _6 f; f! [% _. l Y
- )
# o8 w2 X. A2 G3 a) l* l - ). k$ L G% q8 m! F, W% \0 t" O
- )
2 J: y9 }4 k) \8 Y - ;; Set common action tiles. r5 k P! J b: q, c
- ;;
) i5 M- @1 W9 y! q3 M. i' | - ;; Defines action to be taken when pressing various widgets. It is called
+ v3 G( C9 _& J) T - ;; for every object dialogue. Not all widgets exist for each object dialogue,3 l; T( B" ~( e" Q4 a
- ;; but defining an action for a non-existent widget does no harm.
" ~2 r' V% _ Y; M. J - (defun set_action_tiles ()
# h2 O9 }. m8 e - (action_tile "cancel" "(dismiss_dialog 0)")
& o/ e9 K, v. o9 U' j6 h# L3 D$ b - (action_tile "accept" "(dismiss_dialog 1)")
" V1 Z) J6 ^* T6 R8 i3 J8 N - (action_tile "help" "(help \"\" help_entry)")- I2 I; u" q& W, ^, N' g1 Q
- (action_tile "b_color" "(getcolor)"). K8 ~4 P2 Z: w- V1 N
- (action_tile "show_image" "(getcolor)")( t& n+ g+ u0 V. z# s
- (action_tile "b_name" "(setq elayer (getlayer))")
9 u( y J( V3 K3 j; n1 I$ v - (action_tile "b_line" "(setq eltype (getltype))")
0 Z4 K/ a1 m4 U5 X* R2 `/ D- F - (action_tile "eb_thickness" "(getthickness $value)")
& t' e* V0 H, h% E* Z' a - (action_tile "eb_ltscale" "(getltscale $value)")
- t2 t/ R( f, S1 }/ ~5 x; F - 5 l3 h0 u* K7 `" J2 I. _" V
- (action_tile "pick_1" "(dismiss_dialog 3)")8 r/ W: j' t8 W9 M: |4 m& v
- (action_tile "pick_2" "(dismiss_dialog 4)")! y7 T1 J5 m. M H0 G
- (action_tile "pick_3" "(dismiss_dialog 5)")( i5 E7 y( d' F
- (action_tile "pick_4" "(dismiss_dialog 6)")
* G* t- x; [' R7 x/ E - (action_tile "x1_pt" "(ver_x1 $value)")3 P" Q- n- j! U( H% I/ ^7 b
- (action_tile "y1_pt" "(ver_y1 $value)")+ U" R/ I# H; G' K+ S( C- e2 ] K3 M
- (action_tile "z1_pt" "(ver_z1 $value)")
- s% M/ c9 y% W! R3 l$ T( Y - (action_tile "x2_pt" "(ver_x2 $value)")2 D$ Q9 P0 F7 m" o% Z+ H
- (action_tile "y2_pt" "(ver_y2 $value)")
' D4 p2 J7 q1 g- F - (action_tile "z2_pt" "(ver_z2 $value)")+ n a3 I. d7 A* ]; s5 D7 D
- (action_tile "x3_pt" "(ver_x3 $value)")1 k; l8 u, x& b5 \
- (action_tile "y3_pt" "(ver_y3 $value)")
5 c5 e1 ]* z4 z - (action_tile "z3_pt" "(ver_z3 $value)")
. g2 y" E" B" l9 D9 c% q - (action_tile "x4_pt" "(ver_x4 $value)")
6 M% ~/ Y% g5 n( E - (action_tile "y4_pt" "(ver_y4 $value)")
& }8 F/ d- P. U4 r. f+ N3 m d, _ - (action_tile "z4_pt" "(ver_4 $value)")7 n z) i) d @0 Y$ ^
- . Q7 \8 P- a4 S1 K$ c
- ;; Action tiles for Xline & Ray! g4 H4 H# ~, u
- (action_tile "xline_x1" "(ver_xline_x1 $value)"); H8 r: M# s7 \
- (action_tile "xline_y1" "(ver_xline_y1 $value)")
$ \, N* H9 \- `' a4 M, J ` - (action_tile "xline_z1" "(ver_xline_z1 $value)")
6 H! ?; U4 T* M- M( X, @# J: Q$ g - (action_tile "xline_x2" "(ver_xline_x2 $value)")
9 m+ }, R! B2 s' x+ T1 Z4 J7 t - (action_tile "xline_y2" "(ver_xline_y2 $value)")( @. ` h+ ?2 }. `
- (action_tile "xline_z2" "(ver_xline_z2 $value)")5 ?: T# e t# S( }$ [
- , I, f: o% o9 a! i0 i
- (action_tile "edge_1" "(setq edge1 $value)")
( p4 d/ z9 c, e: M3 M. G - (action_tile "edge_2" "(setq edge2 $value)")
2 ~+ D& V0 e y) L5 U - (action_tile "edge_3" "(setq edge3 $value)")# c' C- S% u5 j1 B
- (action_tile "edge_4" "(setq edge4 $value)")
# f# T& E( k8 i6 ^! E6 ]+ E8 t0 J/ Y$ i
* W6 C$ F6 y3 j- a0 _: ~7 E- (action_tile "radius" "(ver_rad $value)")
r( c+ v0 P% B! I - (action_tile "st_ang" "(ver_ang1 $value)")% V- C8 O+ _8 ~* h7 a
- (action_tile "end_ang" "(ver_ang2 $value)")# m- I: [& @# L+ ]/ O7 X$ o) X1 @
- (action_tile "end_eang" "(ver_eang $value)")( M. D' X% Z. C5 J0 U8 e5 V5 w
- (action_tile "minrad" "(ver_minrad $value)")
4 f: @( B. f& j" Q: l0 ? - (action_tile "majrad" "(ver_majrad $value)")
$ t" L5 ?5 a+ \( q& J" | - 5 M1 @* Q4 B# Y! t$ x3 w' ^8 ^
- (action_tile "xscale" "(ver_xscl $value)")0 W" }6 L/ c% w7 h3 l7 ]6 F
- (action_tile "yscale" "(ver_yscl $value)")$ R& Y* c5 _2 X
- (action_tile "zscale" "(ver_zscl $value)")7 r# T9 k4 B2 Z: D* J m
- (action_tile "rot" "(ver_rot $value)")2 L' G i, r1 W, `3 v
- (action_tile "columns" "(ver_col $value)")
) u0 V. I9 X, X& t( m8 @ - (action_tile "rows" "(ver_row $value)")
) y# x: b7 Q. H( G3 ]4 _5 t - (action_tile "col_sp" "(ver_colsp $value)")& p2 R& n# R8 M; E1 d
- (action_tile "row_sp" "(ver_rowsp $value)")
" N2 H( V, `7 X6 C$ | - 6 ?& s$ r7 }/ \# k8 x2 I, a
- (action_tile "hght" "(ver_hght $value)")1 \ `5 ^: U. Y0 b: A+ u
- (action_tile "wid" "(ver_wid $value)")
4 T v' g9 V/ O# y; @ - (action_tile "obl" "(ver_obl $value)")% g9 a3 N j' F7 D/ ]' r! o
- (action_tile "style" "(style_act $value)")
' R) I& `2 `3 E3 l' m1 h% C0 }
' B8 r5 x/ B3 Z' k- (action_tile "t_string" "(ddgettext)")
/ a" o5 n; w6 {1 K" o& I - (action_tile "tag" "(ver_tag)"); f8 c9 N H/ ~. y
- (action_tile "prompt" "(ddgetprompt)")9 Z1 T5 F+ [6 }
- (action_tile "bkwd" "(setq bkwd (atoi $value))")) o6 X' @/ d2 ^* p
- (action_tile "upsd" "(setq upsd (atoi $value))")
. I2 b: |) a0 F% G A6 K1 } - (action_tile "inv" "(setq inv (atoi $value))")
& \6 }4 |1 |3 \5 f/ R; b B+ g+ K - (action_tile "con" "(setq con (atoi $value))")8 Q, p4 t. {% n2 _
- (action_tile "ver" "(setq vfy (atoi $value))")6 Y% g2 Z9 h# Y, d* Y3 C2 u
- (action_tile "pre" "(setq pre (atoi $value))")
7 D T. @5 f% g% i6 L3 J& G - (action_tile "popup_just" "(jlist_act $value)")
q( _$ U' R* W5 d; l3 Y! s - 7 ]- S! L; C$ S
- (action_tile "closed" "(setq closed $value)")
4 G$ B: S4 d# z( ?4 m s) S - (action_tile "ltgen" "(setq ltgen $value)")) n9 G9 C! h0 E' V" N& |
- (action_tile "closedm" "(setq closedm $value)")
i/ n8 i/ A, K* d - (action_tile "closedn" "(setq closedn $value)")" U4 F4 T+ R. ?" L. Q' y
- (action_tile "next_v" "(next_vertex)") l$ a# u6 b+ I# {8 r
- (action_tile "xcliponoff" "(setq xcliponoff $value)")1 f @" h& i; P- b! B
' z9 \5 x Q4 \- (action_tile "next_cntlpt" "(next_cntl_pt)")0 l- B9 Q4 Y% n
- (action_tile "next_datapt" "(next_data_pt)")
2 c' d: Q( w; A
4 A5 D3 y7 [7 n2 ~8 Q! y7 n. v- (action_tile "none" "(if (radio_gaga \"none\")(set_uv 0))")
6 Y: h) A5 ]" u* S& Q - (action_tile "fit" "(if (radio_gaga \"fit\")(set_uv 1))")
( s; I# f6 W: g* r, D9 N6 }( Y - (action_tile "quad" "(if (radio_gaga \"quad\")(set_uv 5))")
, c6 ^+ X, r) q9 h' a - (action_tile "cubic" "(if (radio_gaga \"cubic\")(set_uv 6))")6 \2 Y2 Z t8 k J3 V9 \7 b0 T' S# ^+ q# f
- (action_tile "bezier" "(if (radio_gaga \"bezier\")(set_uv 8))")
/ C6 U5 B2 w/ ?- H, s5 _
' Y8 g2 U1 G5 K }: {- (action_tile "u" "(ver_u $value)")
0 l! X* h W- Q! q4 G- | - (action_tile "v" "(ver_v $value)")
" V0 L7 H/ m$ U9 E& \( t# x; A - )/ J4 Y* A3 `9 l! }. F7 `
- ( y" M% B; v9 p) y( `: a1 C
- (defun ddgettext()3 v' L! A2 g) g& f- {6 ?$ S
- (setq text (get_tile "t_string"))5 Z( P0 p9 f; m6 X
- )% ]7 u7 w% d# k& _) s
- - p! F9 `* f& Q
- (defun ddgetprompt()6 h: {' q. S: q$ q: G& `
- (setq atprompt (get_tile "prompt"))
* k. O( P" `: w4 J - )7 {5 s6 o' m3 ]& ^: H, D
7 ?; Y C r2 O8 j6 N$ \- ;; As OW doesn't support disabling of individual radio buttons within/ }: y; E" E8 e2 C
- ;; clusters, a check must be performed as to the legitimacy of the; }1 e) c6 \# X$ _8 s1 }
- ;; button pushed and reset if necessary.
. n5 g# _; T" F" O - (defun radio_gaga (pushed)7 N9 A, g4 i. b
- (cond( v( Y' t3 | B+ ?4 [9 ?
- ((and (= pltype "3D polyline"); o8 ~4 w' L5 x0 F/ k
- (or (= pushed "fit")
$ {% }4 U! [6 a- E8 G& p% v - (= pushed "bezier")2 H' z5 e `7 ]0 D
- )* z* u4 B/ D) {* a7 @# Y2 z+ P7 T
- )
) ~2 ^; G) b3 Y - (set_tile "none" "1")
2 f; F: H! C' ~) n - nil
3 T* ~0 d; G# J4 k" W/ U - )% V0 p; Q' Q' l
- ((and (= pltype "3D mesh")3 b V7 ^2 C. A
- (= "fit" pushed)* \3 P6 k/ d' \& f& {
- )
+ x; w! q1 }, l3 z# I - (set_tile "none" "1")
X8 x: m7 x+ f) P9 j - nil2 I) Q" S2 K# G0 E- B
- ): W6 `: L3 {* n# `! a0 t
- ((= pltype "Polyface mesh")
1 ~. o7 K, V- m+ W - (set_tile "none" "1")% _, _5 ?7 d# o; y$ {
- nil
* w: g2 R1 x* s$ @ - )
. H' \ A2 u }& p/ T& e" _ - ((and (= pltype "2D polyline")
: a, P% C. G8 D% r3 S1 ~ - (= "bezier" pushed)
( w2 r8 y' w! y5 ~ - )) B0 g3 D1 ~) {% A+ g; z* R
- (set_tile "none" "1")3 Q" Y) I( i; f/ j
- nil' Z) `+ L( x. F m/ g* E% Z
- )
3 W/ |/ e$ O' E& g3 j: Q - (T), K7 ~1 n+ \- w4 k. |
- )( d0 e. v8 ]8 `3 ]
- )6 H1 o0 `8 `0 d6 r0 T1 F/ v, y
- ;;! ?# ? k( ^# N( P; q# c. z g
- (defun set_uv (type_n)7 a |7 }% D. O- K! Q
- (setq spltype type_n)
+ T- T, o1 }' L& E, Z - (if (= pltype "3D mesh")
. Z9 w- Q4 c9 s+ m4 e8 D& u: D - (if (= spltype 0)# e$ \# ]3 y$ ?) \ C* j
- (progn
! ]3 A% V- S( L - (set_tile "u" (itoa (setq u 0)))) M P6 G% f1 b7 q& v
- (set_tile "v" (itoa (setq v 0)))
, G/ u, x) ?0 n7 P3 L - )( }+ C% q/ o$ j
- (progn; c' O, v; ]6 h+ _
- (if (= u 0)
z# Z. c, H$ A3 I j: T - (set_tile "u" (itoa (setq u (getvar "surfu"))))
4 p1 l, P" c2 O# {9 } - )/ n. E( u& y) E
- (if (= v 0). {. a1 X# @7 c- g- Y% x
- (set_tile "v" (itoa (setq v (getvar "surfv"))))4 P C) \$ T* i Y
- )2 u. H( H; R, o" M4 R2 u
- )
% Q5 v7 ^8 H( c8 U$ m. x+ g - )9 c4 s" g; v6 \8 @% y# S
- ) f- e. Y. X4 B' M9 L0 _1 Q8 D6 r
- )' B9 W p. B) S2 j
* I# i: s. o/ J9 M$ A; I: z9 d, H- : i7 @3 R8 z" f$ O3 ]& K; o9 i
- ;;
! }+ _" v* a! d5 l0 W. R - ;; Verification functions! C& A; c4 V1 t- c% f9 _
- ;;* |0 c% \1 Z% O& m9 a6 d- z4 M+ R
- ;; Verify distance function. This takes a new X, Y, or Z coordinate or& [6 g2 C+ Z, f- j
- ;; distance value, the tile name, and the previous value as arguments./ U$ j' R2 a2 b5 K) ]+ |
- ;; If the distance is valid, it returns the distance and resets the tile.
; L- S# z" ~& W8 G: {* N9 k - ;; Otherwise, it returns the previous value, sets the error tile and keeps* k! ~2 z4 h1 `8 i6 } p$ m
- ;; focus on the tile. Shifting focus to the tile with invalid value can
0 C' H+ i2 ?+ I% H! |; F& \: W' D+ U - ;; trigger a callback from another tile whose value is valid. In order
% O* ?# K% b9 n% \ - ;; to keep the error message from being cleared by this secondary callback,
7 t3 G6 a) P; k& Z - ;; the variable errchk is set and checked. The last-tile variable is set
# P4 ~: O8 F1 K7 c - ;; and checked to ensure the error message is properly cleared when the& q; h g% C I2 @( ], T
- ;; user corrects the value and hits return.9 ?9 d$ w! i: {1 q D5 y9 ~
- ;;7 k4 |/ G8 X3 G3 q
- (defun verify_d (tile value old-value / coord valid errmsg)2 a! t5 O" s5 c" H: H
- (setq valid nil errmsg "Invalid input value.")
% u' }) k5 W+ o* j% \9 R, N! Y - (if (setq coord (distof value))2 N# _% N6 \ ~" t9 W1 a
- (progn
9 Z' c/ ]5 v8 a' t: }* R2 L - (cond9 q- C& }7 @5 N9 }
- ((or (= tile "radius")
- w! W0 `6 ?; | - (= tile "hght") f$ O7 Z) O7 H4 I0 X4 k
- (= tile "wid")4 k0 e' B% Z' W
- (= tile "majrad"), `& M% i7 I# T4 f' g. D
- (= tile "minrad")- y4 [1 E E% K% D! Z9 P2 V
- (= tile "eb_ltscale")
5 _$ ~' O: G6 z - )4 @9 y' C' N: `/ W
- (if (> coord 0)4 c* C$ h' _) ~ o4 C
- (setq valid T)8 e! {/ Z1 h/ S' o4 a1 e
- (setq errmsg "Value must be positive and nonzero.")& M( b& e( D4 W/ ^3 q$ C9 l$ _
- )
% a3 b. P. Y2 |5 K! W2 y - )
9 U) N3 V( R8 Y7 _% v2 C/ S - ((or (= tile "xscale")0 x- {: M6 b, s
- (= tile "yscale")8 e6 [6 n/ K5 |5 z: e% E
- (= tile "zscale")
, h; ?* J/ A+ C - ) m# z1 h, V5 }. K0 |1 g
- (if (/= coord 0)" i4 l/ e3 [, m) X, H
- (setq valid T)
" x. E5 T# g3 Y6 Y$ Z/ |* l - (setq errmsg "Value must be nonzero.")& H9 ]% S0 X) f0 [3 d
- )# ]0 m/ v& p9 Z) Y* g( ]7 _
- )8 |" i, y: u6 o- ~$ n! B+ o. G' m
- (T (setq valid T))
P* i. @$ c: c1 S - )4 }# r0 O; |9 @. k
- )
0 c9 e4 z: T: u: g - (setq valid nil)
0 k f% @" o" L+ a5 Q( d- @ - )+ Y1 h' n0 U2 l1 L& E: v$ ^0 c1 s
- (if valid
2 b; a8 D- o1 X0 g; |# R# z) } - (progn
/ L! x/ j& _% C! u3 L$ ` y* s' P - (if (or (= errchk 0) (= tile last-tile))
) y! M( S1 c3 x5 T; W% | - (set_tile "error" "")
! N2 k' g/ i1 x$ e4 C0 Y V2 t- I: c - )/ V: _. f" K" w, t" D: i
- (set_tile tile (ai_rtos coord))
, y/ ^2 M6 m3 C3 X4 `8 G) h# m - (setq errchk 0)
& l8 m) H N7 t1 B - (setq last-tile tile)3 R, r" K3 y$ v+ n, {! K& F8 X
- coord
- a5 y5 L& E# I3 {, M- t - )7 n) N3 y3 L+ q/ Y
- (progn: p* q" a' k: Y1 U
- (mode_tile tile 2) ; Move focus to offending field" c: V8 z& i2 E. Q# t7 v7 U* q
- (mode_tile tile 3) ; Select offending text) R* U, e' t/ Z- i8 R
- (set_tile "error" errmsg)- f% q( h9 ~: B; v2 H& W
- (setq errchk 1)
6 Z) G7 P3 _' K - (setq last-tile tile)& E2 m8 Q# U) L; M& u
- old-value0 r; R0 v1 `& b% F" j, x9 X, ~
- )
6 T. i3 S. o' z( s' f: ^ - )
0 y2 U5 z6 e" `! E4 E8 X/ L7 U - )5 ]8 j5 n* e* B1 r$ l
- ;; Function for Xline coord edit box checking.
% k6 A+ q5 J% A. e - (defun verify_xline (tile value old-value / coord valid errmsg)# A8 V3 `& U# Y# h
- (setq valid nil errmsg "Invalid input value.")
& C; E2 K$ {) c- k* ? - (if (setq coord (distof value))' F+ e; Y( {5 Y+ r
- (setq valid T)& v, i1 l, c6 _( q$ n
- (setq valid nil)& u* r/ m& f, ^2 y/ O* k" I3 ?
- ). J* H4 @" l6 D$ B
- (if (and coord, P( G& s1 Y$ C$ n; M* D9 D5 J
- (and (= (atof (get_tile "xline_x1")) (atof (get_tile "xline_x2")) )
" {: K* E* E, z0 j! ]9 f - (= (atof (get_tile "xline_y1")) (atof (get_tile "xline_y2")) )/ ?+ y5 N8 L# V# F
- (= (atof (get_tile "xline_z1")) (atof (get_tile "xline_z2")) )8 v% @+ l) {+ U2 ]
- )$ `- s! m! _; [9 a
- )
% A* k1 x' I) S: ]- b$ ^ - (progn
5 N; q3 @) V" D0 }+ w - (setq errmsg3 P& [. D6 I* ]7 P: l$ ?6 }
- "The Root point and the Second point cannot be equal.")3 H0 \/ S8 d0 m& p
- (setq valid nil)
3 N( V Q* j2 V4 m% d1 r9 I( M1 j - )
( N/ P# L0 V0 V, H3 l$ l& G! b - )
- Y! E) L, e0 L1 C - (if valid
' n7 m3 q' m5 |1 u: n - (progn: o2 g7 M1 V8 D% ~
- (if (or (= errchk 0) (= tile last-tile))
2 p! t0 F; a% u - (set_tile "error" "")
1 N# L8 B* j" f0 |6 B% O - )% h; A3 {& l3 N
- (set_tile tile (ai_rtos coord))6 X9 `( c+ S: L
- (setq errchk 0)1 m7 i4 r/ k7 t3 t" S1 {
- (setq last-tile tile)9 r0 c n, `- r: H6 ]+ ^; |, a
- coord
4 }/ C# c* q, W) j3 A - )
. C8 `" H% A6 Z - (progn! V) f; O8 R% X$ y' r. l# k
- (mode_tile tile 2) ; Move focus to offending field
& n8 T+ m4 c8 {5 C( } - (mode_tile tile 3) ; Select offending text* F$ |5 Z6 y: D/ {
- (set_tile "error" errmsg)
+ L; L% f1 F' Y5 F& e - (setq errchk 1)
$ T6 z" D& X) ?6 w8 m$ ~3 \ - (setq last-tile tile)0 G5 U! Z7 x# r5 }; x7 k0 f8 o
- old-value; u9 Z; B5 D- A: u, K
- )! _) W* }1 I8 b9 z
- )! D0 A+ N0 Z" E0 q" [
- ), R1 N9 n" k: w# C
- 1 I3 _2 Z5 e: C3 |( N
- ;;
! U+ e! E5 D/ t. {8 ~% c/ B6 z - ;; Verify angle function. This takes an angle and a tile name as arguments.1 n s/ d' R& |- l0 a2 }
- ;; If the angle is valid, it returns the angle and resets the tile.
: C! U% \: ~1 Y( [+ L8 j" w - ;; Otherwise, it sets the error tile and keeps focus on the tile./ l. P3 \ f% e& X+ r2 {) l% a8 ^
- ;;% K( C" @8 r6 M( B( L& E6 O
- (defun verify_a (tile value old-value / ang valid errmsg oblqmax). w: g4 b8 p/ ]& c
- (setq valid nil
- J6 c# N3 r0 h( P, P - errmsg "Illegal input value."5 i) q j& I; U
- )
$ e$ n: ^; c6 q% i7 [ - (if (setq ang (angtof value))( |( s/ y& ~2 l
- (cond5 p, O$ p7 T% u2 p( l9 ^
- ((= tile "obl") ; Restrict obliquing angle
& |+ k) K n0 f - (setq oblqmax (+ (* (/ PI 2.0) (/ 85.0 90.0)) 0.000001))
& b) @. r! R! @* K) [6 C: ~$ @ - (if (or (<= ang oblqmax)
" ~: |) y- L* Z6 e$ j- @ - (>= ang (- (* 2.0 PI) oblqmax))
7 b+ c% r$ n. w% ^ - )
" H( X1 y0 }6 [: Q - (setq valid T)# [9 `" I! d2 C6 C- b# h
- (setq errmsg& ?. i1 h. w& a
- "Value must be between -85 and +85 degrees.")
. V4 I2 T. c9 e. [0 f - )9 q8 G+ R2 a# ^7 K9 P( J! S
- )
+ V' }; K* B6 _$ { - (T (setq valid T)) ; Other angles not restricted/ [2 f3 H# T, D9 ?: ?2 v
- )( |" v* S8 J a- n6 M- Y* D) i
- (setq valid nil) ; Invalid angle input; O/ q+ B. A& G
- )
8 o0 a/ v# o! L% Q6 [' K! A! X - (if valid) _( T. n/ M; z% p8 }
- (progn
; c7 h: Q* L' F! L! q, X - (if (or (= errchk 0) (= tile last-tile))
' d3 w& B. f% e5 i+ m3 S- y - (set_tile "error" ""); U( z" l" s% v4 p
- )8 ^: v% L& Z9 R. d& c0 O$ U# Z
- (set_tile tile (ai_angtos ang)); Y! [6 e& \ O$ ~: Q/ E6 H1 a
- (setq errchk 0)! ] @- j; Z0 u. E: I0 ?
- (setq last-tile tile)5 t) u$ O- h8 n. b$ i1 m
- ang
. f, K" A; n$ L; \ - )
- @7 c. [1 w. q) f0 ~ - (progn
- |; T5 z: ^$ ^; v - (mode_tile tile 2) ; Move focus to offending field
% S3 {& t- x6 X+ M2 I - (mode_tile tile 3) ; Select offending text+ i5 Z- r6 q# t& r
- (setq last-tile tile)2 j5 g3 n3 @$ l. [. j$ M; c
- (setq errchk 1)
7 n; ~) |/ F1 l' s) k - (set_tile "error" errmsg)
: Q# {1 w; |; L9 b; l- k# H. u - old-value. H; X. }4 d6 C5 S2 I3 q. d
- )
( ?8 b: j8 i' R' {1 `8 g4 | - )" |1 s8 ]0 [$ C1 [
- )9 v$ m+ a! D; K1 o1 H
- ;;
, p7 `7 ? `/ n: G* A$ t. P( ] - ;; Verify angle function. This takes an angle and a tile name as arguments.
5 A8 ?0 x0 g& p4 x/ O - ;; If the angle is valid, it returns the angle and resets the tile.
5 V# I6 a7 o9 P9 r+ a* L' H - ;; Otherwise, it sets the error tile and keeps focus on the tile. s) j! ^% R) @! f- M; b; x
- ;; This function is specifically for the end angle of the ellipse object. If6 o* G6 _" Z8 ]: x0 [$ u- D
- ;; the end angle resolves to zero then we want to display it as 360.- ]% v. R) i, r5 t
- ;;" W1 ]* ^3 C5 ^! T! Q y
- (defun verify_ae (tile value old-value / ang tempend)- _" |# M8 v# a( s+ g
- (if (setq ang (angtof value)). |* \; Z1 I# k# z; M3 K3 _) u4 @/ `
- (progn, `6 y& m1 ]4 _" M( w
- (if (or (= errchk 0) (= tile last-tile))$ z: g8 i/ m& }- V4 q
- (set_tile "error" "")) M0 x6 ^2 o/ V9 I1 `. r
- )9 A7 s& |6 _( q; Z8 v6 F* _ o
- (setq tempend (ai_angtos ang)). i- s8 t6 x f
- (if (= tempend "0")! ]0 X9 n$ p& ^( S, G- {
- (set_tile tile "360")- P- ~; x1 {9 D3 T" F
- (set_tile tile tempend)
4 n6 d& F" d! c& k M1 ~( m - )
% B5 w4 T0 C; m0 F8 E$ f) P2 k - (setq errchk 0)
3 C1 W: Q) {& z1 y4 G - (setq last-tile tile)2 n- W& ?1 b8 t! X# e8 l
- ang: M8 H4 M+ n6 v$ x, h1 {( k* W
- )
; W& y- D: r) C - (progn+ D/ {0 i/ P$ j) F/ c! d1 N
- (mode_tile tile 2) ; Move focus to offending field
, Q: Z! {8 H8 X! S. t) X2 t - (mode_tile tile 3) ; Select offending text6 {5 q1 m# c: ]3 D
- (setq last-tile tile)& a% B. \9 `7 S1 K: Q8 f2 r
- (setq errchk 1)
, ]- g% H0 V: n4 k% z: u - (set_tile "error" "Illegal input value.")
! |0 M2 \( N0 S - old-value
1 q, F7 L7 C" f - )
" a# S( S. H* q* v4 B' | - )
$ k p, S! }: J J# f- Z - ). r9 w4 C$ f& q4 }4 R
- ;;. S* W+ R3 W" {2 a* z
- ;; Verify integer function. This takes an integer and a tile name as
G# K- L, d: I0 N$ }: f' d - ;; arguments. If the integer is valid, it returns the integer and resets the; e/ g3 {) _& {7 \0 A2 X3 ~" [
- ;; tile. Otherwise, it sets the error tile and keeps focus on the tile.5 B# b$ D6 v0 |7 C- W8 q5 W
- ;;# O/ q h8 r; p8 M& @
- (defun verify_i (tile value old-value / int valid errmsg)( I/ }* p$ c/ f3 w9 h1 A+ m: w7 K1 W
- (setq valid nil)) }. B1 ^1 s4 C7 X1 m1 c$ `
- (setq errmsg "Value must be an integer.")- V6 `5 v" }" {
- (setq int (atoi value))
( F, P( m; ^: A( v! v" L2 l - (if (setq intchk (distof value)). }& x5 J. K9 i! \
- (cond5 g( M' z% v! u
- ((or (= tile "columns") (= tile "rows"))
5 f( D. B5 C3 D8 ? h8 o c - (if (and (= int intchk)# j' Z a8 I7 ^& i. u o
- (>= int 0)
$ }8 m* v2 f6 p6 z, n - (<= int 32767)% J! H8 H% C. M; O' \
- )" |' B9 [- E, `% o* G; E
- (setq valid T)$ a: q2 |" _" a
- (setq errmsg "Value must be an integer between 0 and 32767.")9 b# ]2 b" Y% g: _3 I# e5 P8 S
- )
! H$ k% C+ l W3 N; V8 ^ - )
+ t7 Z8 s$ K3 Z4 `$ ^1 Y9 m - ((and (or (= tile "u") (= tile "v")))
. N- Y2 r% s2 S) D. F# ]( f2 s - (if (and (= int intchk)
" D/ c) o' }3 J/ { - (>= int 0)
. `. c' X5 W) f# z' \ - (< int 201) w' ?) U2 f8 S7 N2 d2 D
- )2 m/ | c+ I2 n1 S2 D: `! F
- (setq valid T)
6 j& i, d- n3 g2 A/ ^4 B - (setq errmsg "Value must be an integer between 0 and 200.")
7 g8 j2 b) v( F- X" G' F k - )
. Y, X- f) G8 U: t$ E# B1 X8 K9 y - )
; q: C3 f U' R+ G - )
! g8 a( m _5 p5 R" R+ Q* n; E - )7 n: ] j- P( y7 A
- (if valid! ]2 c ~* T* T: h6 d
- (progn z" I% G( Q* H; G5 g
- (if (or (= errchk 0) (= tile last-tile))/ N/ J5 d+ R B1 e4 z. M9 Q
- (set_tile "error" "") ]/ L2 h Q9 R& \9 R7 w
- )5 ]# s% Y/ d- D6 x: F& ?& P+ E3 N- J
- (set_tile tile (itoa int))
/ ?( q. i# W c - (setq errchk 0)
, Q% |4 A }' s3 ~$ s - (setq last-tile tile) b, k: J7 R1 j
- int
3 ^" Z9 T& l( V8 E' w - )
+ H2 o5 Z# @3 p; |. F# d7 I" {) |" k - (progn
: u0 m# ^+ t5 \3 N - (mode_tile tile 2) ; Move focus to offending field
& U; m9 C7 S, M! J - (mode_tile tile 3) ; Select offending text
% ]6 z0 J V. O6 n- Z - (set_tile "error" errmsg)
3 Q4 a$ k$ S* I8 ~! s4 o - (setq errchk 1)
! C: @/ w. {( O7 f1 U7 i9 `! K8 ? - (setq last-tile tile)$ S7 `3 i. B7 ^0 `6 q" Z( S# M
- old-value
, c1 R0 }8 d* p& S8 p( q9 O5 H0 u - )9 r3 A/ R0 E" f
- )7 V/ Q) d4 A" z
- )+ w# t! z$ r+ N" A$ s7 E7 H
- ;;' n( |$ Y9 p. L+ o+ q( n
- ;; Functions that verify tile values for integers
b$ s8 N* y# n" Y6 a' B3 U - ;;/ E2 A4 ~* N# q/ p" _' U2 N0 c
- (defun ver_col (value)
g0 `$ b) N$ ^! E/ f) f- L - (setq columns (verify_i "columns" value columns))
; Z5 Z$ t$ d) j/ d. F1 h, _ - )
) ]- l" w6 h3 |8 \, u. ~ - (defun ver_row (value)' {5 p* @ {7 c) _: {2 t; h7 U$ ?
- (setq rows (verify_i "rows" value rows))
' g( f4 i$ {& d5 }' [! e3 z8 `- n% C - )
2 l' R' q/ P0 a% s - (defun ver_u (value)$ h) U: Z# a$ V0 q$ i
- (setq u (verify_i "u" value u))
# l: [* B+ ?! u! s4 _7 Z; } - )5 w( A/ l( ~2 [" {$ A" N
- (defun ver_v (value)5 I! L+ t% A( R4 Z3 C
- (setq v (verify_i "v" value v))4 g0 ~) d; s z4 ~
- )6 }' n+ m, f& W* k# X3 o1 w( j' \* @
- ;;
! c# L* f4 {7 z2 x' x1 Z2 u, V4 u - ;; Functions that verify tile values for reals6 W, `9 M) G# A+ q8 `
- ;;7 Y7 w: V0 H$ d2 ]) X
- (defun ver_x1 (value)& j# F1 i8 ~, }) g- R; S f7 ^
- (if (setq x1 (verify_d "x1_pt" value x1)) (calc))4 P4 T% `) J* [3 |; j
- )
1 P p% E# ^4 D3 v - (defun ver_y1 (value)
) P+ |8 l0 u% @. A0 Y! d - (if (setq y1 (verify_d "y1_pt" value y1)) (calc))- T0 c1 w" t6 i6 O
- )( N. G5 E6 B) R7 A. n0 j
- (defun ver_z1 (value)! V W$ z' f9 G2 ^, \
- (if (setq z1 (verify_d "z1_pt" value z1)) (calc))( t( s" ` s1 [: Z
- )8 Y( z7 _- k# j1 r' L) K4 l
- (defun ver_x2 (value)5 L% k9 K, {% E0 R& [
- (if (setq x2 (verify_d "x2_pt" value x2)) (calc))- P: J. X8 v1 n: h1 Y* |
- )8 j& P2 V: a$ d9 Z
- (defun ver_y2 (value)4 ^+ K6 t; g8 A
- (if (setq y2 (verify_d "y2_pt" value y2)) (calc))
6 F, g/ v3 x7 l) {* Y$ e1 B - )
6 ]2 Y1 L( |7 g. m8 e - (defun ver_z2 (value)$ f# a2 _ R! z. |# A
- (if (setq z2 (verify_d "z2_pt" value z2)) (calc)); {) S$ V7 r7 E9 l) ]3 ?
- ) i# `8 y6 j: y. J
- (defun ver_x3 (value)( X, f+ S* B( h, M
- (setq x3 (verify_d "x3_pt" value x3))$ a: e4 {; t% h
- )
4 T' R6 C* @1 }8 [ - (defun ver_y3 (value)
8 b* b# } E( W2 e/ G2 P) D a - (setq y3 (verify_d "y3_pt" value y3))
. h& e1 S) i* z - )* Y# u) H8 I2 g& S; @, r# I
- (defun ver_z3 (value) a, F5 t3 R7 S' B1 I3 l) i( \( d
- (setq z3 (verify_d "z3_pt" value z3))4 _% P2 ]% t0 Y! p
- ): M1 P8 u5 f0 f0 h# p$ j; C) {1 w
- (defun ver_x4 (value)) J& J- f$ R3 t$ J$ N
- (setq x4 (verify_d "x4_pt" value x4))
% T2 a! C, n G% S% V2 s - )
9 J$ \+ h: H* v - (defun ver_y4 (value)
% f3 O. `5 k8 u t Y - (setq y4 (verify_d "y4_pt" value y4))
% ^4 h0 o9 E& j& x' M3 X* ~7 A - )
& {2 r. T l3 ? - (defun ver_4 (value)
, u/ C) x3 H L7 ^ - (setq z4 (verify_d "z4_pt" value z4)); j* N+ }; B8 }& b4 _! f/ u
- )/ p+ m/ G \9 }- a6 z q
- (defun ver_xscl (value)
; u, b V: F0 A- ~ - (setq xscale (verify_d "xscale" value xscale))
1 i! T: B+ U& {+ x- S - ) m+ h @* {+ L3 U( t ^3 A
- (defun ver_yscl (value)
0 T6 J9 M$ {% x7 M - (setq yscale (verify_d "yscale" value yscale))
9 z- q0 F- A$ C c& w% i& u - ), J( A2 g+ F0 |6 b
- (defun ver_zscl (value)0 W7 m* ?# j* l) s
- (setq zscale (verify_d "zscale" value zscale))0 C4 {4 Y4 m, V+ w% C
- )% y( d6 L3 n# U' A+ F$ w, ?
- (defun ver_colsp (value)
2 \( ^) b* v2 b - (setq col-sp (verify_d "col_sp" value col-sp))
; M) F' U# f3 G3 |. S" x9 u5 t" U - ). t- T' T W9 ?9 f! a$ k
- (defun ver_rowsp (value)
5 m5 e9 o6 d* y% o/ E0 x1 T* l - (setq row-sp (verify_d "row_sp" value row-sp))+ Y3 |; V. w% c+ Z+ D
- )
, B# N/ t) t T( g- E- \* f - (defun xclip ()% J. v! i. i" @
- (setq xclipmode t)1 m2 Y, U4 w: Z+ Y! s
- (if (= xcliponoff "1")7 a" h* r4 J1 w
- (command "_.xclip" (cdr(assoc -1 elist)) "" "_on")
5 H+ R$ r7 `/ w" ~ - (command "_.xclip" (cdr(assoc -1 elist)) "" "_off")
! U8 ^$ A. ^2 s% q - )& s; K( N! ~- n
- )
: z) h3 G6 R- j - (defun ver_rad (value)5 A) D6 d3 l4 M) m6 {
- (if (setq radius (verify_d "radius" value radius))
7 A1 x' H# j. n) ^6 l3 W7 K# }9 ` - (calc)) }9 b% b& ^9 n1 V# t) s
- )$ J0 |0 W% Q( `8 e
- )( q$ \/ h0 L. R4 w
- (defun ver_majrad (value)" ], |2 }- {9 v. O
- (if (setq majrad (verify_d "majrad" value majrad))
$ l/ p) U# X6 H3 I! a - (ell_calc_newval "majrad")
7 K2 H) {' H2 P" g# ? - )
2 A+ Q( \+ b' X3 g - )# c. y Y* M" Q9 J2 i O6 m
- (defun ver_minrad (value); D- a% ]) y& ?9 U2 O# D D
- (if (setq minrad (verify_d "minrad" value minrad))3 t1 \' G' s' e' C& T* T7 J+ Z
- (ell_calc_newval "minrad")% z( d( y0 n" o+ P- k5 v
- )8 p3 v6 R x; Q
- )2 B- ~) f. D% _' B# k' n" O, e
- (defun ver_hght (value)- Y6 L! ?0 C/ a1 |
- (setq hght (verify_d "hght" value hght))
% T! ~- |) A2 _5 } - )9 f. c2 r7 \- n3 N
- (defun ver_wid (value)) E. y, l; N' j9 V# y
- (setq wid (verify_d "wid" value wid))# _' O" |1 I* \* r7 _# X
- )
$ R ?& ^" {2 M8 f- K0 c) \ - (defun ver_xline_x1 (value / temp)
}: C# x$ q. x' P x4 ~8 B: T - (setq temp xline_x1)
( d: n1 M( l* B& x - (setq xline_x1 (verify_xline "xline_x1" value xline_x1))
% E. J& v0 B# D7 e& z/ { - (if (/= temp xline_x1)
) M' u4 s- ~! n% C - (progn (modify_xline 0) (set_tile_dirv) )$ G& g' b4 L9 X8 v: D5 Q" _
- )
Y9 l3 K2 w5 a+ J - )- I5 x" }1 X6 Z! E7 C) l% y2 u
- (defun ver_xline_y1 (value / temp)
' l& U- {' o) V' h Q- g - (setq temp xline_y1)0 p. C# ~+ l! Y* T$ S: @
- (setq xline_y1 (verify_xline "xline_y1" value xline_y1))( w b2 s; ?$ C0 Z: X4 v
- (if (/= temp xline_y1)
. a; r# g, t& T. x - (progn (modify_xline 0) (set_tile_dirv) )
3 J& Q, i3 _& o, y1 r - )& B4 O, |, U3 S- _9 R
- )! b5 y! h: x( w: w9 d: v6 i9 |" l
- (defun ver_xline_z1 (value / temp)
$ E$ Y1 c: {# E$ S2 Z2 T - (setq temp xline_z1)* p; p6 M6 p5 c! w9 m$ ?# k, r0 B
- (setq xline_z1 (verify_xline "xline_z1" value xline_z1)), c) X% c7 K7 X; [
- (if (/= temp xline_z1), k+ i& G2 _9 L" [' }) ~
- (progn (modify_xline 0) (set_tile_dirv) )5 K4 g" l9 o, N- I5 q' |( m
- )
9 ]% M& C. U0 o+ k - ): S7 W m" Z: \; d1 v# S) @
- (defun ver_xline_x2 (value / temp)
! f9 [! x9 f4 c) ^% V( G - (setq temp xline_x2)
& Y5 R' `# A3 c - (setq xline_x2 (verify_xline "xline_x2" value xline_x2))
3 v7 f, d" @. V. [9 l$ D* @/ N - (if (/= temp xline_x2)
* Z v% |; L! g. ~2 Z% `) f - (progn (modify_xline 0) (set_tile_dirv))
1 g2 L ?% b0 y - )% J7 O8 t. i9 K! q/ h( L; F6 z
- )+ N" |' x8 t! X, Z5 a1 I* p3 y+ H4 B. Y
- (defun ver_xline_y2 (value / temp)5 B0 L8 y; \1 k
- (setq temp xline_y2)3 |: i% p1 p( s. g
- (setq xline_y2 (verify_xline "xline_y2" value xline_y2))4 C2 f6 w8 g3 y% x
- (if (/= temp xline_y2), {, d3 ?7 c2 d* g
- (progn (modify_xline 0) (set_tile_dirv) )1 g! y K, u+ s. g1 O
- )& Y) k$ K& D) w7 d7 Z% Q8 I$ R
- )5 b7 [$ R+ v& N8 A# f1 ^5 N* J
- (defun ver_xline_z2 (value / temp)
/ K8 J4 g( l" e+ E! A5 s( Q! a2 s0 b - (setq temp xline_z2)) D( O0 j( z0 B" i8 Y
- (setq xline_z2 (verify_xline "xline_z2" value xline_z2))
) o2 S1 d) O, J4 \8 n - (if (/= temp xline_z2)
3 o, K, }4 q' l - (progn (modify_xline 0) (set_tile_dirv) )% q' B F8 |% P4 ?+ h! K( k
- )
' p, ^. r" M+ V) z - )
* N9 z- \- H/ A* ?' z - ;;
: ^1 U6 H# s% V+ G$ }* f% Z - ;; Functions that verify tile values for angles9 Y( ^' b+ k. D. A- W+ K
- ;;
! h5 y+ g$ S. }: s! w - (defun ver_ang1 (value)
6 @# S4 m. T# G - (if (setq st_ang (verify_a "st_ang" value st_ang))
1 ]( R% U* |$ g/ H8 s6 n - (calc)2 S* ?' U, b/ L: \4 I* |
- )3 B& v/ ?8 Y% Y) ^; \
- )4 q" M6 M0 _6 [1 r8 X- E% @5 {3 ]
- (defun ver_ang2 (value)
: Q: g0 c! B3 y9 A6 w( ` - (if (setq end_ang (verify_a "end_ang" value end_ang)) F% z/ K3 E4 G9 r2 r
- (calc)/ z' b8 R5 D) G. K. R# `: } u" w a
- )) c! U! C* R* _! g! \ U
- )! y3 M; i# s0 U6 h. q ~2 R- B2 z$ ?
- ;;5 k9 ~* s; H) |) X3 f U
- ;; Verify tile value for ellipse end angle. Handled slightly
) M t x$ V% E$ d# V - ;; differently than the other angles.
. ^* l0 I, h9 F, ] - ;;
% r2 @3 D5 Y3 { - (defun ver_eang (value); f4 u5 r# b% A$ x/ Q
- (setq end_eang (verify_ae "end_eang" value end_eang))
# T9 `4 h' Y7 w' \) l - ), ? F+ h( _- _" x! l
- (defun ver_rot (value)4 t& G" q [8 N$ S' r5 ~
- (setq rot (verify_a "rot" value rot))
2 V" e1 l1 g* m. |5 M, }' L - )
/ c0 o5 b+ J- k) k: j0 X4 Z - (defun ver_obl (value)
" U" D9 D' `; @ ~( Z, Z ` - (setq obl (verify_a "obl" value obl))4 G% v/ Y" \# n" E* q k; {) m/ W
- )+ `7 {, S* G ^1 R# p6 ?
- ;;' q7 s) G3 |6 p" }& x& T
- ;; Function that verifies attribute tag field for null string,
1 A8 c- }/ m/ A5 |3 ~, v. ]8 z4 v, r - ;; or a string that contains one or more spaces. Tile value
0 G6 s* f) p. E+ s! P( R Z - ;; is also converted to upper-case as well.$ F2 o: r" `$ ^( s1 ?) k7 c
- ;;
. @7 m" ?0 s+ A/ @0 p - ;;, ]" t9 f+ n/ b
- (defun ver_tag ( / tval)* u, n# P5 n4 V4 W* ?3 Y6 T
- (setq tagval (get_tile "tag")), _) E) V; Y, J
- (set_tile "error" ""), G n/ ?; O+ R# B
- (cond
2 m" g1 c+ N' R7 J. }+ S - ( (or (eq "" (setq tval (strcase (ai_strtrim tagval))))
$ T' u6 h7 `: h- ^1 G# Y& j - (wcmatch tval "* *"))" x0 k8 o4 b5 A$ U6 ?$ A4 H
- (set_tile "error" "Invalid attribute tag."). S8 |7 h: N/ c- x* ^4 V
- (mode_tile "tag" 2)
, T* n& {" i" z( X. L+ | - (mode_tile "tag" 3))
8 E; k8 G; O/ L - (t (set_tile "error" "")
& N* f. q& H2 d' W3 |* S- z - (set_tile "tag" tval)
" f3 i W& y5 H$ v7 } - (setq attag tval)))! J% b8 T4 E& h Z! |6 R
- )+ ~/ m- t3 ~( w& c; F2 x& e2 ]3 Y
- ;;
) ~( M/ [- V. |) ]/ D' h' j - ;; Calculation functions R( A* F9 F* X( G1 z B6 g
- ;;$ K: B+ f( x4 G+ u) {8 [
- (defun calc ()! y0 L7 E( `: j& o/ V: Z- x) c/ N. M! y3 f
- (if (= etype "LINE") (line_calc))' c4 x3 f, A8 k. D8 M5 x- f" b, L( W$ K
- (if (= etype "ARC") (arc_calc))1 k& }0 `- N6 h% H( C }) j" U, \
- (if (= etype "CIRCLE") (cir_calc))2 L: f* H3 R9 I1 Q1 I1 L* }
- )' G7 Z+ L" E; [) o. M
- ;;8 W& s# r; r0 `$ T, X2 b7 `
- ;; Calculation functions for lines, arcs, and circles+ L: K$ J& Q% [
- ;;" C, U% e& [% p0 m: v( ^
- (defun line_calc ()
0 v; z( ~2 X' t- \# c$ m3 T - (setq stpt (list x1 y1 z1))
( b9 p% d. k# [" U% s1 R7 o - (setq endpt (list x2 y2 z2)); h* U9 F: F5 K) _. g" J: q
- (set_tile "delta_x" (rtos (- x2 x1)))( C+ s, P$ {; r* m3 N
- (set_tile "delta_y" (rtos (- y2 y1)))# A, o4 p# u! g0 P
- (set_tile "delta_z" (rtos (- z2 z1)))6 ~2 m. Y4 ? e, i. i# A- p/ \
- (set_tile "l_length" (rtos (distance stpt endpt))). @' e2 U# N% C+ L5 @2 [2 y# P
- (set_tile "l_angle" (angtos (angle stpt endpt)))
* c1 c; F. F( x% m& h& U( h% T4 k - ): M, t1 d: x( B0 _) z- D4 G, z- R
! i, c( b1 y* a! A8 u; l. c$ M. [- (defun cir_calc ( / area units): o7 v8 m% H# h/ F& v
- (setq radtest radius)4 [; z- p/ r0 ~+ X+ D' K2 B
- (set_tile "Dia" (rtos (* 2 radius)))
! m$ A1 Z- X8 q4 k& Q; x - (set_tile "Circum" (rtos (* 2 pi radius)))1 D E( e; D* _9 I
- (setq area (* pi (* radius radius)))
# L2 o6 W" d# Q( k; M - (setq units (getvar "LUNITS"))2 D' b( [" r' {" Z p6 I1 g
- (if (or (= units 3) (= units 4))
$ D2 l; T; z0 C) } - (progn
" ~1 j9 W5 y( ~1 z6 H - (setq area (/ area 144.0))
) F& u% O% r' z2 z8 r% _4 g - (set_tile "Area" (strcat (rtos area 2) " square ft"))# X% A, Q! F8 t3 G8 C* j
- )
4 y6 V" v5 F' C& T: u G - (set_tile "Area" (rtos area))+ s+ M1 G! f3 J' K) T2 G
- ); Z: D/ P4 u/ W' p
- )
' ]( i# k( s) c: Z$ e - 3 I' E' o' y1 E0 ]3 ?2 o; O
- (defun arc_calc ()* c, h6 L0 R$ L7 W
- (setq totang (- end_ang st_ang))* @& Y3 r) t. R+ y" d+ h
- (while (< totang 0)
- n" L, b+ a1 @# m- n - (setq totang (+ totang (* 2 pi)))* J. B: m& {+ W2 d5 F% C; d6 p$ s% j6 a
- )
$ [/ U" l2 l$ h# v& N8 E& t- X - (while (> totang (* 2 pi))2 N3 Y2 p2 P9 R0 ^+ O) A0 v
- (setq totang (- totang (* 2 pi)))
- c/ u8 M* {# G" P6 V' } - )
" f1 c# O; P8 h* R/ [ - (set_tile "tot_angle" (angtos totang))/ B# I0 _+ Y! X" G5 l$ Y
- (setq arclen (* (* 2 pi radius) (/ totang (* 2 pi)))) Q9 r0 [) _( r9 `& Q- d) u
- (set_tile "arclen" (rtos arclen))
* U% u4 L' S4 l4 z - )0 R4 C" A2 N8 {7 c6 r
- ;;
# g0 |, `& k H" G - ;; Calculate the major radius, minor radius, major axis direction.' t4 E4 q) e( ~3 t/ j; y
- ;; Get radius ratio. Convert Start, end parameters to start and end
O% u" T1 F5 T - ;; angles. Save Major Radius value in "old_majrad" in case the user' v$ a) T2 q1 G9 R& a
- ;; chooses to input a new Major Radius value later. It's needed to
# i/ ?/ t9 n, r - ;; calculate a new Major Axis Vector value.2 l0 U: o8 H$ M3 v$ C
- ;;
$ o" m- ]2 l! S" Z! e0 x2 @' }- t - (defun ell_calc ()
/ J! d. P# i% }9 A5 X3 `) R2 R - ;; Get major radius from the major axis vector.
: B+ v4 w; A0 S# `1 l! } - (setq majaxis (cdr (assoc 11 elist))) Z1 ?4 ?5 d* X
- (setq xx (car majaxis)) i2 g) w* q1 U
- (setq yy (cadr majaxis)) g1 E! ~" Y1 k% B
- (setq zz (caddr majaxis))5 [9 s& X( h5 j& c3 V( A% c
- (setq majrad (sqrt (+ (* xx xx) (* yy yy) (* zz zz) ))); `3 [' G' \, }3 y
- (set_tile "majrad" (ai_rtos majrad))1 ?8 l3 S& F1 z( k5 x( G9 U; R
- (setq old_majrad majrad)
' i- N5 W1 e: O2 v Z& k3 R - ;; Get radius ratio' N9 \+ Y( X7 c. D5 u( Y
- (setq rrat (cdr (assoc 40 elist)))& h. F2 x" ^6 m
- (set_tile "rratio" (rtos rrat))
; j, p( v2 d# b2 H6 f - ;; Calculate minor radius/ x: C5 t6 C' C6 ]1 G- ^
- (setq minrad (* majrad rrat))
5 I9 t" X. J5 {- m2 F - (set_tile "minrad" (ai_rtos minrad))2 k5 C% X2 {8 V8 J0 @3 y( _
- ;; display major axis vector
' M1 g7 a) m" j! [' U0 [ - (set_tile "Majraddirx" (rtos xx))% Z: U# P: J8 ~) q
- (set_tile "Majraddiry" (rtos yy))
$ v+ X$ A5 `2 u. x - (set_tile "Majraddirz" (rtos zz))
7 ]. D: |4 l8 k5 k
: T2 @# ~) `% j( }5 _$ X- ;; Convert start parm to start angle4 ?2 T, o) _( _
- (setq stparm (cdr (assoc 41 elist)))
% I% Y0 M* D% e5 s' n) x: }% N - (setq vecx (cos stparm))
5 h& Y; w+ F: N, D! O1 \( u0 Z - (setq vecy (sin stparm))
- w v- e( C' k6 a( o' \ - (setq st_ang (atan (* rrat vecy) vecx))
: i F1 q+ I6 j2 V/ Y& W g% \. j - (setq tempst_ang (ai_angtos st_ang))
5 z0 \2 G; ]/ m6 u; o$ U4 Q - (set_tile "st_ang" tempst_ang)
/ W. @# B3 g& s1 H0 @ - ;; Convert end parm to end angle. If end angle evaluates to 07 j+ G; s j. t
- ;; degrees then display it as 360 degrees.
' h0 d2 c4 F' z$ l% e# ~ - (setq endparm (cdr (assoc 42 elist)))& k4 X/ d, D' _; F; T) Z6 M, B
- (setq evecx (cos endparm))
4 ~3 F3 E" I# t5 x4 Y2 I$ T8 V( E2 E - (setq evecy (sin endparm))
& K' L @* M5 a( L2 j- r# c) Z - (setq end_eang (atan (* rrat evecy) evecx)). Y3 n" `" U/ O- Y
- (setq tempend_eang (ai_angtos end_eang))
* O+ n- p/ N0 w# W: k9 a& w3 m - (if (= tempend_eang "0")7 \+ w2 O x3 g+ K8 o
- (set_tile "end_eang" "360")
. \: Y M7 V4 y$ P c) d- u$ Y - (set_tile "end_eang" tempend_eang)
* d$ v% y2 S4 j3 D+ i3 I - )( f9 {: s- g0 R' A
- ;; Get area of the ellipse.
" w; {% e; s6 Q - (ell_calc_area)/ t" }8 d, a8 _: \
- )+ q( r. B3 m; W" r3 d+ c" q
- ;; Calculate area of ellipse. If it is an arc then- [5 i6 i" k" W
- ;; grey out area display.
8 F, g B- v' D - ;;
5 o1 P5 ?4 W. y - (defun ell_calc_area ( / area units)
. ?" N" u5 Z( O- W - (if (and (= tempst_ang "0") (= tempend_eang "0"))$ X; O, e! U4 d
- (progn* ? U9 |& X3 y( B# D9 D
- (setq area (* pi majrad minrad))
; A( C$ t0 E$ B: P - (setq units (getvar "LUNITS"))# N1 R2 F! p5 |# r
- (if (or (= units 3) (= units 4))
0 p ^+ V7 A3 M - (progn
8 ?) N1 l; w' u' Q& B# S) V2 | - (setq area (/ area 144.0)) N% I. r: q3 z$ g) \
- (set_tile "Area" (strcat (rtos area 2)" square ft"))
& `7 L; I9 _$ d( e - )) a' P' Z. D: m6 N: v( g1 W0 |
- (set_tile "Area" (rtos area))3 D8 \' [( m9 y
- )
; r# d( F7 ^: ]- ?, ]" Y0 d - )6 u( G/ n* V/ l8 N9 l6 E4 \7 o4 M' P) l
- (mode_tile "Area_text" 1)
. ?7 B. ?: n6 W; C0 @ - )4 ~: r) k' {3 B0 ^5 t: l& b
- )/ F4 i9 S- A. k" C/ y
- ;;
0 b5 m a# m+ s3 _: {0 b1 M0 s - ;; Calculate new values for ELLIPSE
) ?( s, @2 a Z& J - ;; Minor Radius, Area2 Q4 H3 x! I8 e# H ] \8 g
- ;;8 I& I0 z7 e4 _$ D; F. g
- (defun ell_calc_newval (ell_tile)
" o! m8 \6 u/ C. y, b" r - (if (= ell_tile "majrad")
& t5 G5 T6 n, ~9 `9 L" P - (progn
# u7 ~2 s# ]! L% n7 U! C - (setq rrat (/ minrad majrad))0 S5 x$ O( P5 z+ `( b# V1 e
- (set_tile "rratio" (rtos rrat))2 u) E3 q7 e: j+ r2 M) I2 j$ C
- (ell_calc_area)
: r4 @+ E9 C- U, x1 T; O - )
: C* i/ h. M% D4 f5 E$ M - )
! a& ?2 Y3 ?* t% r - (if (= ell_tile "minrad")
5 b L; j$ ]1 _ - (progn: c$ U0 n4 p8 @0 h0 G, W
- (setq rrat (/ minrad majrad))# ^- ?7 h# d, `" U/ P2 a: [
- (set_tile "rratio" (rtos rrat))7 v$ K3 N7 Q5 E( s
- (ell_calc_area)
. ~% D( ]7 U; g6 E3 e5 h - )# Y# c3 u4 f5 W+ t5 e) |5 F" D& ~
- )
2 i* P, P: ~( e U - )# H( J' R/ O- t/ `: U8 C
8 d. @% k! v+ ~/ n! t, L1 k- (defun set_dimen_props (/ loop a stl txstyname)8 G: k' j! W, Z3 V, q" A$ w* p
2 a) ~ ?. W+ S8 l+ ?# y3 j r6 z- (setq stname (cdr (assoc 3 elist)) ; get style name; u) K( n2 o# F& |
- stl (tblnext "DIMSTYLE" T) Z. o4 ^8 _9 S1 H
- stlist nil)
0 s0 C$ |$ F( D3 T9 f6 s9 O - ;; Get all style names and list them in alphabetical order
7 Z; s8 j- ?' r% x" z3 H - (while stl
! D/ b# D6 c6 h% Q - (setq sname (cdr (assoc 2 stl)))* n# @) Y7 T0 W$ p& O- c
- (if (/= (logand 16 (cdr (assoc 70 stl))) 16)* S+ O2 O$ I( o9 u! E( w! }
- (setq stlist (cons sname stlist)))
2 M6 R* r0 k& Q. S, m - (setq stl (tblnext "DIMSTYLE")))
6 U% t; Q9 j1 S+ U: [* n. ` - 0 w, v* O9 _* j- s, E1 j
- (setq len (length stlist)
# _ V {/ Z2 G( C( v/ ]* N - loop 0- p4 m' ~* f0 [4 @8 }8 X: C& `
- dimsty stname
! Z6 U7 N& {! N9 f6 |' t9 f4 h - )
2 q" _/ j# ] }% L6 k( F3 n* j/ M& `) T
5 b7 F3 B% X8 j6 V8 r- ;; alphabetize style list, depending on maxsort0 F6 ]3 R" u0 _' Y
- (if (>= (getvar "maxsort") len)
. J* j# W$ C, O1 A - (setq stlist (acad_strlsort stlist))% j+ W5 B' C% o0 I
- (setq stlist (reverse stlist)))) r* D( \; H6 J4 g7 i( g, D
# y. x0 H8 o/ ]: P J: I: E& l5 {- ; *UNNAMED style (dimsty = nil at this point) is replaced with
, T+ b5 ~6 `. l - ; the current style. After R13, we require dimensiosn to have a
: b' E! ~8 Y) \ - ; dimstyle, so we plug any holes where we find them.
' u2 y2 O' o, a9 i- O' v% d - (if (null dimsty)! [$ u3 b! L8 S8 j8 [# z7 v
- (setq dimsty (getvar "dimstyle"))# G0 d, ~! Y. Z1 D( A0 m
- )6 W z. e4 ^) _" b( H. E. o4 L3 V
- ; Show the styles in combo box
5 e9 s7 `% a7 X - (start_list "mod_style" 2)1 c& a% n$ v; A$ ^: M5 z
- (while (< loop len)
/ u. ~$ `" P1 y" @, T4 x0 Y - (add_list (nth loop stlist)); T& Y" g V! M2 I
- (setq loop (1+ loop))7 i5 {$ x' W1 f1 f- X
- )9 t/ N/ C8 @. h; D/ ~* v* u9 i
' J( b$ }) b: o% |/ x" Y- (end_list)0 v M$ M* K5 @% X# D& v- Q0 O
- ! m) h3 i5 T4 g5 D
- ; Hilight the style name of the selected entity
8 o0 t' ^2 g. q3 y* q) k - (while (and (< 0 loop) (/= dimsty (nth loop stlist)))
2 j2 l: t8 a2 @3 s" _8 X! { - (setq loop (1- loop))6 O$ h: m! Y1 L) _- Y) H# D3 k w
- )
4 H& [) ^! r8 U* w - (set_tile "mod_style" (itoa loop)) ?1 k8 d$ }) L
- ) O& Y4 k! V5 l3 t% W
- ; The following is the list dimvars. It must be sorted in the same) x- A( A; L+ E: G, G
- ; order as the resfub returned from DDIM (ADS module). E( G( }. q0 p+ q6 P9 N' [
- 8 a. l W- x+ e. |! k
- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"
4 d3 m8 I% U/ u; v' m - "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"
5 T' v" O! p" B, o3 s4 q - "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"
2 j7 t: V, j; N- {* ]7 [" \: ` - "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
# ?1 q x. z6 F: D3 B - "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"
6 u, l% x6 g) _# Q( S4 j1 { - "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"8 b6 ]8 X) P3 M/ R4 C
- "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
$ w7 O- @' g- k/ q - "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"& \! k+ V1 H( b0 U: K9 S5 _ ^
- "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"; g3 Y( F5 |. U6 r
- "dimdec" "dimtdec" "dimaltu" "dimalttd") d" ]1 a$ D! E3 w
- "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"3 [- l! I) q7 k5 W
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"
, [$ Y: {$ u# F" M2 i5 B7 n# N# v+ p - "dimtxsty"0 f9 I+ \7 t% T" h' ?9 I% Q$ W
- ))2 f1 o0 Y; N% T; u! [) t' U1 ?
- (progn
% L: E# m) f/ C, Y0 X3 I3 A - (setq sv_dvlist (ddimen_getostate dimsty)
6 Y3 E' q' O( m5 x! K& Z5 A - txstyname (assoc 340 sv_dvlist)
1 m2 D6 I A5 V# f8 r - sv_dvlist (subst (cons 340 (tblobjname "STYLE" (cdr txstyname)))
3 i. [4 ]# S$ W7 _' L; v - txstyname sv_dvlist)0 ~ {& Y b: n6 b% ^
- dimlist sv_dvlist5 f- p7 j7 e$ E5 G
- )
! n1 e# }0 l: M, w! W - )
; d# }& H0 D# X B/ f - (if (= dimtype "DDLEADER")# E; A6 y5 \. V( p
- (mode_tile "mod_format" 1)
6 A; z# K! P) i6 P( ^ - )
5 C8 k0 e& j3 J1 `- w$ P' G - (action_tile "mod_style" "(setq dimsty (ddimen_style))")
$ c) [. ]0 g6 ^: F$ K- s" o- Q - (action_tile "mod_text" "(done_dialog 4)")8 }, l$ _& P% c: m7 V$ z+ Z
- (action_tile "mod_geom" "(setq dimlist (ddimen_dlg dimtype 11 dimsty dimlist))")* u* t9 Z( [3 h, Y9 k% D+ n5 L
- (action_tile "mod_format" "(setq dimlist (ddimen_dlg dimtype 12 dimsty dimlist))")
}' a; g2 I* e- C/ z* V( p4 V - (action_tile "mod_annot" "(setq dimlist (ddimen_dlg dimtype 13 dimsty dimlist))")6 |; y$ [5 _; ?2 v! T* H& B$ j
- (action_tile "accept" "(done_dialog 1)")0 j/ r- b/ L! s
- )
, |( @3 b' y) W% D! O - ;;
9 k; a. b; a& v+ Q0 N - ;; Get dimvars that have been restored.. e2 d7 j% w; i+ j. A: f' c
- ;;
5 w9 q* W) G/ z# ? - (defun ddimen_getvars (/ elm dvlist dv i)
3 ]6 L6 I- d4 T; G# A1 z - (setq i 34 @' U& l+ z; a0 H9 @
- dvlist (list (cons 0 "DIMSTYLE")1 U: {$ i# U. v: x
- (cons 2 (getvar "dimstyle")) (cons 70 0))- N, X( {; Q0 N% c/ f& ~6 N$ e! ^$ _9 Y
- )0 P7 m, \$ b- l% e$ R
- (while (setq dv (nth i dimtbl))
) w9 r C2 M( G% T/ g! m - (setq elm (getvar dv)2 [$ {% j1 n; t6 Q0 z
- dvlist (append dvlist (list (cons dv elm)))
$ W8 W& n6 h, q+ G- w. L, z1 G - i (1+ i)1 P# K$ m' f8 ~' M1 I
- )
$ v- F) U( \6 Q" ]! I$ ] - ). p3 h: E8 E m5 T5 P# x" \
- dvlist
- V, W5 z/ G# P7 d, X5 F - )
7 Y+ k- l7 ]% V% g! r - - x7 v* @/ S+ R5 t" j! u
- ;;
8 g5 B" [; \3 B; y( h1 \ - ;; Get the original states of dimvars. This is for DIMENSION entities.
; \6 A: [3 y! m2 W/ b" V' C - ;;
' q1 U0 c, A; m+ j. y! t - (defun ddimen_getostate (dimsty / dvlist elm i dvvars)* J* U8 ~9 b" N# K7 V1 D7 `
- (setq dvlist (tblnext "dimstyle" T) ; Get a skelton list8 X& c# W) T4 U2 m$ P: e2 v
- dvvars (ddimen_getvars) ; Get dimvars for that entity5 Q5 t/ V" j+ C
- i 1
2 M; B! j, u$ T5 R9 M# B7 l - )9 P* _/ c8 Q! W, f) @; D1 ^, P
- 2 `# P/ R1 f" d# ? G1 R
- ; Create a list that contains values of the selected entity.
- n8 ~& J% d) G5 D8 I L* O+ ^3 X - ! R+ ]# l/ x. U8 |, ^% |
- (while (setq elm (nth i dvlist))
# F1 h# F. h: F - (setq dvlist (subst (cons (car elm) (cdr (nth i dvvars))) elm dvlist)# B8 N1 @, t: n2 X( m4 I7 ]
- i (1+ i)
' ]6 M1 ?& C) W0 b: O' h: g - )$ C9 M* N" a8 Z! {
- )# T7 A- ?5 m3 B
- dvlist
5 j7 c; r9 F6 f" c - )
& @. W Q5 Z2 e+ E
- P: [* }" ?6 i1 X- ;;
( V8 E6 C/ ~! K+ a( I/ B0 W - ;; Restores dimvars of the selected enity.
) O( r6 Z. d1 Z6 B - ;;
J7 O- i8 ]) M( ]& `7 t - (defun ddimen_dimsty_restore(/ dimtbl dimsvcurset en)7 g( S! y# M8 O# @
- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"/ B& A4 `+ y/ @" X9 g. n
- "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"
7 s. c* a1 \( q( } @/ T0 C - "dimscale" "dimasz" "dimexo" "dimdli" "dimexe": Z' @) j3 _; p, m+ ]0 I5 r# A5 S
- "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
& o* p! i- M- E; ]4 g& c) B+ a7 f - "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"
3 ?* o7 P8 w% t u* {' I - "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih", n' Z# \" `3 q$ ^. O1 _
- "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
* `6 I" T1 F- T# x+ W' e! {5 y - "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"( [: R+ j9 H% `( U- n
- "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"
2 g* p5 o8 z/ f# u/ O" { - "dimdec" "dimtdec" "dimaltu" "dimalttd"
# O) k M! ^8 C( Z9 C, w8 J( Y/ [; k - "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"% I8 y; P) |+ e! n$ N1 i* k
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"1 B8 @$ S8 f1 P# m9 v
- "dimtxsty"" }- I5 r8 r4 h/ {# S
- )). m/ p# c! |$ L p6 p9 H$ }, @
- (setq dimsvcurset (ddimen_getvars)) ; Save current variable settings
% N' J9 n$ F5 F - (progn, Q/ I4 \3 D. s3 ]
- (setq en (cdr (assoc -1 elist)))
$ m" v8 F" o$ [3 j( l" A - (command "_.dimstyle" "" "" en)
) [& L0 u L8 \: A0 H - )" i/ O3 W: I8 y1 c
- dimsvcurset; c/ ]7 ]4 G3 C. O2 ]7 \, P
- )# p( ?+ O2 Z) }
- ;;% u5 n! v q. m2 S
- ;; Modify Leader
8 _- C; f+ W8 w# W6 X, d8 [9 G - ;;
9 K3 D' x$ k7 u" r' r - (defun ddleader (/ dtypebit blkname bename sublist a stname n dimtbl
3 O2 s1 f) Q1 a - dimsty dimlist dimtext svtext dimovr sv_dvlist stlist6 p" X8 x( V( }$ j
- dimtype dimsvcurset)# M9 |% K' @! z! t9 T* x
- (setq dimtype "DDLEADER"
' W5 W6 ?% _) t# w C$ N! p. |+ J - dimsvcurset (ddimen_dimsty_restore)/ S& B7 U7 A6 Y) b# W
- )9 U' Y0 F+ L( P2 l* }6 e
- (if (not (new_dialog "ddleader" dcl_id)) (exit))2 T9 w3 v4 l% I7 S5 M; p
- ;; Set initial tile values
+ T7 b; j! |+ J* L1 o( k4 X - (set_tile_props)
- f1 O1 g9 g4 Z" z - (set_dimen_props)
6 d4 }8 [1 t8 ]9 t+ \# q/ R2 Z" V - (set_tile_handle)
[- T3 y, \; _ - ;; Define action for tiles7 e, G! H3 L- I8 e b* A
- (set_action_tiles)+ r& d- l6 Z: H6 f' D+ `3 U
- (mode_tile "mod_text" 1)
7 @1 V- q$ r5 S9 `
1 D [7 @' a" z+ m; d- (action_tile "mod_style" "(setq dimsty (ddimen_style))")5 m6 p7 x% m; w7 c: y5 P
- (action_tile "accept" "(setq leadtype (get_tile \"s-s\"))(setq arrow (get_tile \"arrow\"))(done_dialog 1)")) x, p2 ~* ^2 g. }! d
- ;; Get ARROW and TYPE.0 ~8 {2 Y) k2 N. g
- (if (= 1 (logand (cdr (assoc '71 elist)))) (set_tile "arrow" "1"))) v2 N" ~1 B% k- c$ [. ?
- (if (= 1 (logand (cdr (assoc '72 elist))))7 P. r. P0 ~/ }
- (set_tile "s-s" "spline")& Q3 |! y$ u6 d9 e: e9 L
- (set_tile "s-s" "straight")
/ M, S2 b* y+ P$ |; k4 Q& V - )
; E; W/ {5 R9 H) _ - ;; Start the dialogue.
4 C; a- u- J5 T" g* R' g5 e - (setq dialog-state (start_dialog))
( K- ~0 `1 W, f! [ - (if (= dialog-state 1)% f+ L3 I4 h7 F
- (progn
# W$ F7 |' `: g4 n8 d3 U - ;; update the style
d- U! L# R* l! [6 n" V9 _5 E( [ Y% l+ u - (if (/= dimsty stname)0 i6 t# ~- J* y, s: Z( ^
- (progn) j* }# K) h7 a. O& w a( ~
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
1 W4 j& z! ]7 H7 ~ X, ` - ; doesn't have it.
; q, o: g" K3 }4 [7 |. U( Y! \- D' y - (if (null (assoc 3 elist))8 H3 k: j; K: [/ C
- (setq elist (append elist (list (cons 3 dimsty))))8 J D" X4 u4 M& K
- ; else just replace it.
. m* H& Y& n) H! j; Z9 h - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
5 g5 x/ S- l; P s - )
$ {( Y f0 s: e) U - ; refresh sv_dvlist with new dimstyle.
* A* G! A; x6 b) Y2 w0 T( R% Q - (setq sv_dvlist (tblsearch "dimstyle" dimsty))" T/ Y7 p, n1 D
- )
k4 S7 }# A) m1 k% R1 N - )7 B( [2 p# S5 F7 d
- (if (not (null dimlist)) ; attempted to change dimvars
. A8 }' A# b- Q$ S+ u - (ddimen_complist sv_dvlist dimlist dimtbl)
% Q6 q: ]' o) d5 r, h% K - )8 P2 H @3 {& o# A3 F9 S) t' z W/ K
- ;; update for ARROW.
" k/ ?8 M9 [. @) W: p9 D* R - (if (= "1" arrow)
5 t1 a: G4 {$ _7 Y$ l - (setq elist (subst (cons 71 (logior 1 (cdr (assoc 71 elist)))) (assoc 71 elist) elist))4 i5 S/ S, _2 q3 n1 |3 e
- (setq elist (subst (cons 71 (logand (~ 1) (cdr (assoc 71 elist)))) (assoc 71 elist) elist))
0 U0 v6 z4 y$ M. F# n - )
0 q5 x# p3 ]/ Q& V& G* Q - ;; update the TYPE.1 t! Q7 _$ |1 V+ Z/ R9 A
- (if (= "spline" leadtype)
7 k$ D2 @# d1 _ - (setq elist (subst (cons 72 (logior 1 (cdr (assoc 72 elist)))) (assoc 72 elist) elist))# j3 o3 N8 t6 ~1 ]% U9 r$ z$ x
- (setq elist (subst (cons 72 (logand (~ 1) (cdr (assoc 72 elist)))) (assoc 72 elist) elist))
4 }2 a ^* Z. f, q2 @& } - ); r' U2 |7 R, \ m6 W$ ]
- (modify_prop_geom): v9 p" i4 v7 N3 y# U% q# q% u
- ;; update the Color
% A8 E% W/ V/ d$ H9 V - (setq elist (subst (cons 77 ecolor) (assoc 77 elist) elist))5 I% \) Z, W0 b! d( v- J
- (entmod elist)
& [% [2 [' _& E/ S0 n4 L8 f* l* a - )
4 M* b. T6 R- J. j$ U0 U- G- q; D - )5 Y' {' g+ r; @# Z! ~4 L; B
- (ddimen_setvars dimsvcurset) ; Prepare to exit- B, r5 ~8 B o$ Q- {
- )
# i: F9 y, G% I* a# `
& P2 P1 z$ ]. O4 h1 M- ;;
& T7 F- W1 m7 J# d- M1 H7 j, R - ;; Get dimvars of a dimstyle with overrides.
3 Q+ s: T! g0 C) y - ;;" z7 N: x( W/ \/ L% b# [, ~
$ H; ]2 ^6 u' [$ J- (defun ddimen_getdimvars (dimsty / dimovr dvlist elm i)2 I8 M+ _- A3 e: `" B8 V
- 4 Z9 e( ~5 N. F0 t9 A
- ;; Get override information for the specified entity.
W: l0 |0 R4 T- |9 k+ [1 u - ;; Leader/Tolerance cannot be restored by DIMSTYLE command, so we/ x" O5 Y( k0 c; G
- ;; must obtain override information through this tedious operation.
/ W" u7 C- H! M5 v+ }+ A - (setq dimovr (car (cdr (assoc -3 (entget (cdr (assoc -1 elist)) (list "*")))))/ Z1 [5 v8 z! W \8 Y+ A: I
- dvlist (tblsearch "dimstyle" dimsty)
6 [ _* m4 i/ K3 j - i 2
4 i+ i9 A( C) d - )
8 f; p+ B* @. I9 E$ q
. z* I% _! n9 a* X- ; Update the list with overrides if overrides exist.
3 W& [7 m+ u. O }
- J( P: p1 h- g+ S3 o( `- I- (if (and dimovr (= "DSTYLE" (cdr (nth 1 dimovr))))! {- } E( G: g- n7 ^4 @7 y
- (progn
2 l& d% _* U+ l$ R - (while (setq elm (cdr (nth i dimovr))) C0 P! \5 f) Q: l, a" s% Q
- (progn& X* X4 e% U3 A( i" z8 t/ T& r
- (if (or (= elm "{") (= elm "}"))! R1 ]: X8 @$ l* f4 Z8 Y
- (setq i (1+ i))
4 F8 S3 r0 g) [/ h0 D% o - (progn
3 `& `/ T8 h6 l a5 O - (if (or (and (< 180 elm)
* H/ n& P& Y4 l5 b) t' {- ~& W2 ^; E - (< elm 190)
1 [ q. I( ` y - )
! j, S9 h. C6 D5 e, ~0 B - (and (< 80 elm)
% l. e7 \1 N- I" J - (< elm 90)
2 z. n6 Q8 y1 y4 ]: g - )& u0 Y. G( y. q1 V
- )
0 `- J% t. C& a - (setq elm (- elm 10))
/ f# h: S- D+ i: b$ N7 g - )* U2 O; ^1 H; W- r" G5 A
- (setq i (1+ i)
# G' y" D# _9 G' z" k! J - elm (cons elm (cdr (nth i dimovr)))
7 ?: x- H; }: B7 K: m0 k, W - dvlist (subst elm (assoc (car elm) dvlist) dvlist)
4 W- S+ m7 |3 u9 D- o - i (1+ i)$ o) _% V, O. D" B. H
- )7 G2 Z/ H2 ?+ J% W2 {4 }
- )
, d0 k5 o9 u$ R - )
7 V* f/ z: s; U' T - )
u- J% t" h5 p( Q% L - )
5 r( i9 p4 u' y: N! x* o% O( }/ P - )
8 l+ i" l3 ~) l) o( c' d - )
( F" | T; ~" h" z - dvlist7 h2 x2 N$ B: J+ y6 J# D0 }
- ). j1 D3 ^1 v$ Z1 y
& m' w& }8 x) {9 C, g4 ~- ;;4 m. M. r; L9 u7 ^1 F9 d) i
- ;; Modify POINT
/ W" r0 f( e# k8 Q - ;;
3 J* C. [. P/ A; P0 d% Y7 v9 V - (defun modify_point ()
S$ J2 n( H% Q7 j! K' A - (modify_properties)1 L: S6 D5 E. G/ K5 w# K6 r0 N
- (setq pt1 (list x1 y1 z1)), t2 p$ C9 u0 |( w1 F
- (tempmod pt1 10 0)
8 B+ f9 W3 Q0 [' `( \ - (entmod elist)
* w3 d, _6 j% B; h- f# d/ V - )# ^: l* j7 S' a5 A- ~7 |+ b9 I
" _' P+ [* }( T7 I" o+ z- t- (defun ddpoint ()# G4 Z+ U9 ?$ x2 I! I+ ~% X* b8 r
- (if (not (new_dialog "ddpoint" dcl_id)) (exit))( V( o8 M9 m$ h
- ;; Set initial tile values
% p. j3 b2 E( b7 G; x - (set_tile_props): M, ~- [ N5 ^& C7 a
- (set_tile_handle)
* g4 o/ S5 U/ C. J9 K# ^ y, U - (set_tile_pt1 0)# D( b! {/ B' P( V4 Z& Z8 R6 V7 c4 i. E0 U
- ;; Define action for tiles! w: ]; U, b! U; ]( i
- (set_action_tiles)
+ R4 P# o2 R; r4 ? - (setq dialog-state (start_dialog))$ ~' ~. t& S' @% T/ F2 c v
- (if (= dialog-state 0)& O) m9 Z$ f3 [1 T2 u6 G3 i
- (reset)
( M! E% z8 ^; @; Y } - )
6 ~0 f# \5 W1 F1 v- [) _" \; e0 I. w - (if (= dialog-state 3)0 \" P* G) \9 D! ]1 S2 c0 f8 j
- (progn
[' |) d4 B1 X - (modify_point): X) w- C ?8 L; g( g' v9 J0 h) v
- (setq pt1 (getpoint (list x1 y1 z1) "\nPoint: "))) M, F+ x2 j, _. ] B$ l. j7 h
- (ver_pt1 0)
3 w; V6 Y) X% A) [1 o: k - (ddpoint)
' t+ d* J6 @: z( s( n+ R- s - )
+ |) n% H. D4 h! R, [2 h - )
! f% \ Z" r4 H% K$ u/ v) B0 | - (if (= dialog-state 1)& c9 `/ h, d$ |# p: J
- (modify_point)
6 M6 q% G$ }8 }- g d8 L - )
; X: ]8 K- R3 T G9 \! f - )
& s3 D+ J2 w: Y! K& I" y - ;;
& I i. [, y6 `; m - ;; Modify LINE4 d9 q+ h6 N, d
- ;;
, q9 g' X" L3 C$ C+ c I8 d - (defun modify_line ()
* t4 s& n3 W# ?. N2 n4 e2 E - (modify_properties)
r+ U8 Z7 p2 N! J7 I' J - (setq pt1 (list x1 y1 z1))
* }0 ~# {7 J. g5 f - (setq pt2 (list x2 y2 z2)) _# z, x' j* i" i
- (tempmod pt1 10 0)
7 y* l. W$ C( h& E2 c7 p e5 x+ a - (tempmod pt2 11 0)
/ O5 A, G k$ h - (entmod elist)2 L# x; f9 S6 X; ^; k6 v/ K+ H' F
- )
[4 f# U) G0 N4 d; g$ k3 h - (defun ddline ()
c2 m/ S: s0 E+ s; a - (if (not (new_dialog "ddline" dcl_id)) (exit)): G* ~5 m4 c4 J1 Z: ~
- ;; Set initial tile values& |- A4 X* F4 S4 j8 e
- (set_tile_props)
( @: S2 v6 g& Y( {! c: g: l5 n' O - (set_tile_handle) N# |$ K# \/ `
- (set_tile_pt1 0)3 F- W1 [8 X6 U6 l3 C/ X9 e
- (set_tile_pt2 0)
3 p; v9 y, j+ b. } - (line_calc)- z, K) v" y6 q
- ;; Define action for tiles f7 F1 {9 i0 r8 a1 d
- (set_action_tiles)9 s8 H& j+ H* b; b7 q9 Y5 ~
- (setq dialog-state (start_dialog))3 m- J' F# J% C) A+ [
- (if (= dialog-state 0)
$ {$ Q/ q! G& U# k' W' X, Z7 h - (reset)
; S7 J1 I1 Q6 U: ~) M4 F - )0 J6 ]1 n( q [* e, ~0 m, O5 y1 d) x
- (if (= dialog-state 3)
7 o) r* _9 Y0 f! Y - (progn
! a4 {7 ?" X4 R4 t' d1 D( C - (modify_line)3 S: K* X, d6 x3 F3 O' W2 `* S7 Q
- (setq pt1 (getpoint (list x2 y2 z2) "\nFrom point: "))/ i8 F; o+ F4 K* h" e
- (ver_pt1 0)
# O/ ]9 |5 B6 [5 u; S L! l - (ddline)4 e" p7 h9 T i8 F9 R
- )
# f) @# X# I& n. d+ ]; R& h7 F - )
8 | d5 J$ A( j5 M, M - (if (= dialog-state 4)5 k, I5 M, R: j2 v6 j3 T5 M
- (progn
: L) [2 b) M8 j. u! W - (modify_line)' I) a5 [$ X9 H' Z! _7 I$ f
- (setq pt2 (getpoint (list x1 y1 z1) "\nTo point: "))( G1 A# `" o' Y
- (ver_pt2 0)1 f. a8 s C, j: O* a; m
- (ddline); s" r+ C6 L7 S5 u
- )
3 ~# v3 W" a% m5 J2 J- e - ): h! U) i2 C* \# t- P
- (if (= dialog-state 1)( _$ z" f$ u4 S2 o+ f. L( I
- (modify_line)
: B! u V9 I7 g - )
/ B6 o, a* Q5 \6 a - )1 ]/ f; I4 a9 [/ Q$ K) L
- ;;
* r L% c- t$ j" i, R; `0 e" R - ;; Modify MLine
# d# O( Q, F/ q5 B5 A3 } - ;;
! V2 X$ s5 J1 N/ E6 J/ l9 R7 a - (defun modify_mline ()
* b2 z \& c3 A - (modify_properties)
! N: n2 F# r, ]5 P3 T - (entmod elist)
* I0 h9 n& l4 s t+ h3 A - )! w. K7 _' \" \2 h
- (defun ddmline (), g& v' C& I+ I' K+ o# c
- (if (not (new_dialog "ddmline" dcl_id)) (exit))
) ~8 O) Y& A+ z8 d - ;; Set initial tile values
. p( l8 q' i; e2 T0 v3 J0 ` - (set_tile_props), j2 j5 M! E8 J+ C2 {; I
- (set_tile_handle)/ G; Z) U: ?" I& H! }0 w8 B7 u
- ;; Set mline style text field.
1 |/ m6 N( Q1 d - (set_tile "ml_style" (cdr (assoc '2 elist)))
4 l6 e' H F# ?8 }: r% V5 _) u
+ n' X, W: O/ ~/ T! @- ;; Define action for tiles4 R/ _. g+ f3 p
- (set_action_tiles)$ ^+ t/ U8 V: w8 d. |- }1 i0 h! F
- (action_tile "ml_edit" "(done_dialog 3)")/ q' Y$ r5 o9 O, q+ ]. B
- (setq dialog-state (start_dialog))' A3 W+ o O, x
- ;; Dialog cancelled, reset to original values.8 f; k/ \3 j" C1 ^& j
- (if (= dialog-state 0)/ y- h- Q7 a" s$ M* Q4 D
- (reset)
) V9 Y b6 X5 y& h3 }7 g { - )
* T. Z f; e- z2 B - ;; Dialog OKed, update the mline.
; Z! U! g- z* d# p } - (if (= dialog-state 1)3 z% u' ]# l- L w; j2 m2 @
- (modify_mline)
+ C' f W$ e6 v* C9 f3 a8 G - )7 p& n3 M- }1 [1 |8 [2 h
- ;; Edit Mline, call MLEDIT.5 O% S& H9 L# W8 B
- (if (= dialog-state 3). g) @; I3 _3 @* r$ x
- (progn
, M2 f5 n5 h8 Z, S% k3 o - (modify_mline). j6 B; s" L* C; h3 R- ]1 D9 `
- (command "_mledit")
$ s: q) y- J- Y' r9 e - (ddmline)
' A$ K- ?0 F% w9 r - )6 J' @% W) |) r4 h! x" @- O! T; P7 Z( F
- )8 o2 [4 `6 D5 b2 p! R& ?
- )
% ?/ x% r1 [6 j# l. a. u4 D9 v - ;;5 ?, \$ W$ @7 W4 W2 N/ D) T3 F/ }
- ;; Modify Xline& o" P! K1 y) [( Y. v, J4 D
- ;;1 B8 B4 q h* a" ~. [, u
- (defun modify_xline (flag)2 Z) |/ }( i( d
- (modify_prop_geom)
. D* _& ]; U) Q$ M/ R( m: ], i - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))% [' Y' H0 F5 O9 ?/ f$ _
- (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))& q) E3 `* B1 ]% I) a8 j
- ;; Update the Root point.
0 Q1 p9 o( H$ o& B4 }+ c - (setq elist (subst (cons 10 (trans xline_pt1 1 0))$ f T7 I$ w8 L/ j; i
- (assoc 10 elist)7 k' B/ ]2 N' X ^
- elist5 [" l5 M% n) x- { I$ X
- ); _! k0 M4 n, u
- )
- T6 }% R) l; ^) T x+ L. _# c5 g - ;;9 Z2 j7 Z# r6 r
- ;; Calculate new Direction Vector WCS5 x# T) ?, A) l7 x; d
- ;; x / (sqrt ( (x**2) + (y**2) + (z**2) )), S/ b" t6 M8 A) V Y! I" k# y
- # M/ D5 }2 E% B
- (setq temp_dir (trans xline_pt2 1 0))3 `. Z! t+ g+ e+ V, Q: ?) N
- (setq temp_dir_x (car temp_dir))
m& q- N1 s& j7 c6 L5 ~. U) z - (setq temp_dir_y (cadr temp_dir))
: V' \7 u" Z$ x- Y0 S" w7 F - (setq temp_dir_z (caddr temp_dir))0 C% H3 O+ c% F: O/ G' V5 u
5 t8 A1 y2 o) G6 e8 A1 m- (setq temp_xline_pt1 (trans xline_pt1 1 0))+ J/ b& W, z( h- x
- (setq temp_xline_x1 (car temp_xline_pt1))
+ Y/ T# P( x8 S) g - (setq temp_xline_y1 (cadr temp_xline_pt1))% G" x- N9 j I7 d/ e8 U9 c
- (setq temp_xline_z1 (caddr temp_xline_pt1))
% b5 j! h& h/ Z5 T
% e0 i) d* t" I7 k2 B! a- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)" @5 I) b& \+ T
- (expt (- temp_dir_y temp_xline_y1) 2)
6 {" E8 Z/ ?& E: e( V - (expt (- temp_dir_z temp_xline_z1) 2)% T. @4 X+ u4 s
- )))! e9 x; E9 t( Y9 I) M q
- (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))& |6 L, E$ K8 w* T" ^' F
- (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
! d# i: A7 Q3 @" G8 |$ i - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))0 L# W" D, j# `3 U$ D; P! P
- (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))9 Y& `; ~" b3 g* X, ]4 H6 T
- (assoc 11 elist)! O; A8 A/ ^3 {" f( N, |
- elist
7 C4 v5 K* \9 O - ). n# ]- N! m- I" Y. J7 m( k [; T
- )
3 T, s! o9 v5 s* Q( R5 Y0 x2 ~ - (if (= 1 flag)
' z7 s8 n4 p7 O2 r/ l2 c/ \! q - (entmod elist)1 p# ^: ^7 f. X7 j1 Q
- )- @; G) y% H- j0 _& q6 v, J
- )/ K" N- n0 l. C
& S V. n" F) v0 t- (defun ddxline ()- w3 ]9 A- n b+ V& r, N
- (if (= etype "XLINE")
$ T* p: B+ m9 G( _& i, k5 r - (if (not (new_dialog "ddxline" dcl_id)) (exit))% A/ d. m4 H+ j% s
- (if (not (new_dialog "ddray" dcl_id)) (exit))
f' L* _3 a2 `$ s3 M - )
* ^$ {1 U3 s2 E# a1 Q - ;; Set initial tile values
0 a9 g' |6 [8 Y1 |* j' e - (set_tile_props)( H6 y9 w( ]7 u& v1 I* I
- (set_tile_handle)
$ p- ?, v% o: N& J5 H - (set_tile_xline_pt1)
$ n" f5 ?: o* b5 ^1 Z) [ - ;; Convert to UCS and post Direction vector.; h3 q1 _5 S9 n( H
- (set_tile_dirv)
% e" E6 F( l8 c( ~+ ]* M! }! t D8 a - ;; Calculate second point by adding Root Point + Direction Vector.
4 k: }, f X( I6 e$ s - (set_tile_xline_pt2)
4 ~# f' b1 S! t& [5 L. J - ;; Define action for tiles
' z' a* L3 _: L4 x7 c3 _ - (set_action_tiles)
( H4 [4 J- m# l# n7 U( z* r - (setq dialog-state (start_dialog))
( [" Q$ ]) E1 G- h - (if (= dialog-state 0)
: J* {0 ~5 |( Y+ E6 ~ - (reset)
0 o- Y/ r7 b1 d ~ - )' l# v, l( J$ t* S
- (if (= dialog-state 3)9 w, Z( Y8 f- w+ P6 \& I
- (progn
1 Y) S/ k9 Q9 `- O. ~) v$ _/ O g- Z - (modify_xline 1)
8 y- M. K8 S( O+ |4 f - (while (equal xline_pt2
6 f; _0 y% [/ I; q# U7 D" n - (setq xline_pt1 (getpoint xline_pt2 "\nRoot point: ")) 0.000001)6 ]2 |5 U- r% g
- (princ "The Root point cannot equal the Second point.")1 w3 b, @# P' |8 F0 e
- )
) O8 y# B) ~& d- a$ g8 M' o% z7 I - (ver_xline_pt1)4 _# L' K- A! k/ Y
- (ver_xline_pt2)& M1 P* m" Q& `7 Y4 a
- (princ)
5 u2 k/ R/ I0 o - (ddxline)
9 r/ M) z$ I" Y" _# X( f - )8 ]* n6 E+ g8 Q$ F+ ?$ R- k
- )
0 ^4 X5 J) n0 m# A - (if (= dialog-state 4)5 E. g j0 D) V6 ?
- (progn3 c" T# d: Y) W2 w+ x7 Q
- (modify_xline 1)
. J! c; ]$ D8 l4 d - (while (equal xline_pt1
+ N0 C# V$ u6 D6 l3 l) } - (setq xline_pt2 (getpoint xline_pt1 "\nSecond point: ")) 0.000001)
& R; D! [ f/ P H - (princ "The Second point cannot equal the Root point.")
7 P1 v6 {/ F, c - )3 F1 i, R4 o. g/ `% w. K
- (ver_xline_pt2)# d( d% G% x+ l) X1 b1 @8 a1 f9 E
- (princ)+ h6 X+ \! H3 \+ s
- (ddxline)
9 k- R2 f2 [1 S; h0 { P+ N; U - )5 g2 U! U% E6 u: e0 _' g
- )
. A, ~: o* K# L# p# |4 Y - (if (= dialog-state 1)3 ^4 G) F; X5 k0 x
- (modify_xline 1)' V1 t7 \. i, M7 P6 C+ M2 A
- ) ?0 A8 J% h/ j/ X( @8 i
- )' T) e; U" C- R$ g6 k
- ;;7 m3 Z& N9 W1 H( L* w; ^, a
- ;; Modify ELLIPSE
5 h9 n5 D2 M' h& N0 P0 K1 R5 Y$ M - ;;
( N2 |8 v7 z& l' B4 H o; Q - (defun modify_ellipse ()
1 ]( b y' d- v. y$ N$ k1 }8 R5 ^$ I& f - (modify_prop_geom)2 g8 a8 @9 y; n) Y& [+ a$ S1 d6 r
- ;; Update Ellipse Center Point value.
7 G) S2 L/ ]5 o* L2 Q, o" h3 Y" J% i - (setq pt1 (list x1 y1 z1))
( f) [ O7 J$ d; _ - (tempmod pt1 10 1)
+ O/ o3 N. e- i: V8 ` - ;; Update Start Parameter value., m$ O4 o" z5 {! j1 T
- (setq y_val (sin st_ang))
% @: s3 g5 [+ T! y - (setq x_val (* rrat (cos st_ang)))/ h- O( h" `5 Y' K/ {# A* ]/ T
- (setq stparm (atan y_val x_val))
0 o y. b7 Q* a/ A& J/ j - (setq elist (subst (cons 41 stparm) (assoc 41 elist) elist ))
& B/ J/ H! `; K, D; N( E' _2 a - ;; Update End Parameter value. Normalize it, if it's less than. [8 B1 u* |2 B% j- g: A
- ;; the start parameter.
2 d3 y0 E- }4 v3 u) e4 }+ r7 k - (setq y_eval (sin end_eang))8 u4 Y E+ m- W2 F
- (setq x_eval (* rrat (cos end_eang)))" s9 t; O- \; Y& q5 y% l7 Y
- (setq endparm (atan y_eval x_eval))
& x. L* h' _- M - (setq diffparm (- endparm stparm))
7 G2 m1 v6 w2 e& X( r" l - ;; Epsilon of 1.0e-6 radians for checking a zero length arc.% S# i9 V7 i/ N7 i& A
- ;; Since zero length arcs are not allowed - construct the full, K8 v ~: a$ V2 ], z: A/ x2 C
- ;; ellipse in this case.
`5 B1 [ `& L - (if (<= (* diffparm diffparm) 1.0e-12)
9 O9 G& V9 w' {! ]0 I6 ~* e) c! ] - (setq endparm (+ stparm (* 2 pi)))
2 _3 e' |% {: E; ~8 h6 s4 m, u - )9 {' K* D7 I$ I" N
- (if (<= endparm stparm)
" h7 g" A8 v3 m$ r) V - (setq endparm (+ endparm (* 2 pi)))
|" m$ {0 o; \4 p$ d3 o4 b; t1 |( s8 e- z - )4 n- A# w# g; M
- (setq elist (subst (cons 42 endparm) (assoc 42 elist) elist ))
B* r; A( @, } - ;; Calculate the Major Axis Vector by first calculating4 m+ X1 w! o" P* Q+ I
- ;; a unit vector using the old Major Radius value. Then( e2 f7 f$ P1 L9 o w
- ;; Multiplying that by the (possibly) new Major Radius1 F) f: ^$ ]& ^- i( r/ w/ w
- ;; value to get the new Major Axis Vector value.
! t# d+ U2 e9 I. n - (setq unitxx (/ xx old_majrad))5 c( H$ M9 t/ t3 Z9 o0 u+ i! X" w4 W
- (setq unityy (/ yy old_majrad))
6 C% _: o- z! W) V* c9 P - (setq unitzz (/ zz old_majrad))
% ~1 }3 \+ V8 Q. ~9 y) @7 g - (setq newvecxx (* unitxx majrad))
. e1 `) T; [( U9 ] - (setq newvecyy (* unityy majrad))
% h! a3 Q( O2 \( Z/ r; r - (setq newveczz (* unitzz majrad))
" U O6 k/ A5 r; B0 I% i - (setq newmajaxis (list newvecxx newvecyy newveczz))
/ H3 \& ]. z# g& E! W - ;; Update Major Axis Vector value' Q5 i4 B3 P9 N; I) b
- (setq elist (subst (cons 11 newmajaxis) (assoc 11 elist) elist ))
6 K; W* r2 [% r2 O - ;; Update Radius Ratio value
2 m2 C. j1 |- @ C/ y8 L( t) ?( o' w - (setq elist (subst (cons 40 rrat) (assoc 40 elist) elist )) |6 w: p4 e" D" ?
- (entmod elist), [- V" R7 v. h+ k# q8 U" N
- )
* I1 R7 U4 f T+ t) y: Y1 b# N - . ?; m5 B* v! }- p
- (defun ddellipse ()
5 g. e. q! U2 H+ B, h, g& `4 A - (if (not (new_dialog "ddellipse" dcl_id)) (exit))
7 w6 K0 _' a+ J - ;; Set initial tile values
+ I/ `4 G) c6 [3 q - (set_tile_props)
" M0 r7 ~( s5 i Y! y* R0 Y - (set_tile_handle)
, T3 i/ C" o% X2 T' V9 d H' l3 p - (set_tile_pt1 1)
9 q3 |$ m6 x, x0 s1 M/ w - (ell_calc)
4 G+ ~, L9 t/ z& G - ;; Define action for tiles
: L+ q2 _5 c1 G5 i. M) ]0 I - (set_action_tiles)7 X6 c @/ J* i6 y; P$ z
- (setq dialog-state (start_dialog))
4 Y( z- G' w! @ - (if (= dialog-state 0) {; E; _! a0 |! a/ T
- (reset); U" b! n% s5 H8 H2 h
- )/ D9 L7 q# B0 D9 f5 I' U
- (if (= dialog-state 1)# }5 I4 ]0 `% H" q& u# w9 P
- (modify_ellipse)
- ?2 t B* l2 l, O - )+ @8 a( D9 e8 r% u0 _( c" h
- (if (= dialog-state 3)' A! V, Y8 z+ F" ?
- (progn0 @" M6 @6 n4 B% k w7 p
- (modify_ellipse), G6 [% C o( j% V r) u# r0 l
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: ")), |8 l+ r! K2 ^6 v. R- P+ j, J5 M
- (ver_pt1 1)
" r8 |* U* {1 q Z! m - (ddellipse)
& Z7 n' O1 b, n% Q5 u# R* E2 a - )* O: T) P& I5 [ `
- )$ U+ l: \5 t: s# Q8 S
- )
' U! I9 C- ^: D5 J; b - ;;
& ?5 U$ p2 p& U6 [2 O" @ h - ;; Modify REGION
& K1 N H5 z5 M6 Q7 _# D( L7 K - ;;
, S# G1 Y' G$ t3 u - (defun modify_region ()
' H* q* e$ v1 P, [6 j( X' E - (modify_prop_geom)) L2 M) W, H t Y! @9 O
- (entmod elist)6 Z4 V0 |8 q1 C% Q
- )
$ X H8 s' i. M/ P
. l2 z9 u4 z6 P$ q0 v( K$ s+ r: Z- (defun ddregion ()
: A; l& H! U, X0 h0 @$ | - (if (not (new_dialog "ddregion" dcl_id)) (exit))9 t6 R8 r$ |7 s1 c% u3 d
- ;; Set initial tile values
& C( K& d1 \# r* g. e6 ?" a& D - (set_tile_props)2 T' Z" ?: G1 B1 p
- (set_tile_handle)( B2 |8 s' Q% C; a; {- \" }$ S$ p- s
- ;; Define action for tiles8 D; O6 j# ~6 a) K f. a% q y2 M
- (set_action_tiles)
6 i) f6 i4 k+ A! {: q- A - (setq dialog-state (start_dialog))
6 c/ ^/ G1 v$ m7 L- I: _ - (if (= dialog-state 0); }" S/ ?' A* h' F2 @4 V! M9 X8 G
- (reset)- f N: B9 D8 j7 _/ z1 v
- )
, Y T. F3 y8 Q, _ - (if (= dialog-state 1)
- _# r( G+ T4 }2 X8 M - (modify_region), r$ C S& z. C* {) i3 k' v% _
- )% `4 g5 `" q6 U5 B& h1 Q1 D, J
- )
) P5 a$ r2 `9 R0 @( y" T/ n$ I1 i - ;;! h4 |7 o1 a9 L/ `
- ;; Modify 3DSOLID( b6 X5 L' `0 b/ O5 I8 y# {- X7 n
- ;;3 y' u6 ?! N- h9 I
- (defun modify_3dsolid ()2 ~5 g% J5 H$ S0 x- P
- (modify_prop_geom)
; p8 a2 V/ Y# r) Q2 x - (entmod elist)- E* y2 E/ ? ~2 c
- )7 r9 M; g8 i7 E$ V) P9 X! G9 c+ f
- , n4 D3 F4 l- Q" }
- (defun dd3dsolid (). i# k) v4 e8 Y5 {" L* G4 r" T B
- (if (not (new_dialog "dd3dsolid" dcl_id)) (exit))3 G t! t5 R5 e! ~+ a& O# y
- ;; Set initial tile values9 m0 {; S8 ~/ h" g$ |2 J6 T
- (set_tile_props)! C& r, R! V8 { |. Y) d' W( l
- (set_tile_handle)+ ?9 \" S, O) [1 L* F
- ;; Define action for tiles
) B: K$ [9 t! Q7 |) N+ k - (set_action_tiles)
4 @- V, s- o. _7 f N$ V5 p - (setq dialog-state (start_dialog))
6 E* l& H1 s7 J6 B6 b2 n - (if (= dialog-state 0)
) O2 u6 [7 E, e8 s - (reset)" g7 | i; ]) D2 \, F/ S; Y1 W6 ~
- )
8 Q* t$ G1 [, I) l - (if (= dialog-state 1)
( R4 r# |' f, S' k - (modify_3dsolid)
9 |6 L9 c8 |' K: ?4 R8 A" L& B - )9 v U: H; r* u
- )
4 j- h: \' Y3 Z: k2 M2 f- } - ;;
- P$ {1 W2 @ o; u' O7 C - ;; Modify AcDbHatch
1 A. F# t' b- b |. C1 \ - ;;! o. d# ^* x0 p7 l! f
- (defun modify_hatch ()8 o( l& D( t p+ S( Z
- (modify_prop_geom)5 g, N) l7 ]2 H1 X# X9 ^6 C
- (entmod elist), b& Z* u6 z% N* }+ L; H7 V: ^$ F% A
- )" k/ ^ B5 T( V6 L8 p0 x" A
) v1 a( y& q1 l W6 W* |/ G- (defun ddnewhatch ()
% y, j4 v% O3 ]1 d. ~0 `0 c! O - (if (equal hatch-elist nil)
$ {2 w2 U3 \; w5 P' T1 N/ b8 N - (setq hatch-elist old-elist)8 Z1 r+ W/ m) f) v
- )
3 B0 e; l7 Q$ t. K* e6 j; M - - J' L( [# s' I8 g
- (if (not (new_dialog "ddnewhatch" dcl_id)) (exit))- O: L' D7 q: Z/ ?- f; ~
4 \1 N7 s9 V; S5 L8 N" r- ;; disable the thickness tile1 ^- \9 j! @" S; n
- (mode_tile "eb_thickness" 1)
8 `$ R$ Y( S' o4 o- V - (mode_tile "e_thickness" 1)
: v3 A3 m3 z" q - ' N; {- E5 Z) [9 ?4 }
- (setq help_entry "modify_associative_hatch_dialog")
3 t1 l1 _1 S( L - (set_tile_props)
% T% Y- i9 x p9 `0 U7 X - (set_tile_handle)1 p m! h3 \5 [9 P7 q2 p8 A: c% N
9 K3 N0 q5 z# B+ ^2 {- ;; Define action for tiles
( m$ c/ L/ L6 r$ H* t - (set_action_tiles) {: v3 ?" Q" o# ^# M& `
- (action_tile "b_hatch" "(done_dialog 2)")/ T" D. Y. D* H$ _- M) E# K1 v" n. |8 n
- (setq dialog-state (start_dialog))
# _7 ?& i0 s5 O% N. C- ` - (cond! }3 M8 N2 q: l3 Y2 S* v& p9 W8 T- C0 L
- ( (eq dialog-state 0); c: S7 e% l" p6 C4 d: k7 `# g& {
- (setq old-elist hatch-elist); t R- L( [9 j( X2 E
- (setq hatch-elist nil)
/ v; A5 \$ _8 l6 s L0 L6 g- j; z( F - (if (= (checkforlockedlayer ename) nil)7 t7 q# n+ K1 z" D6 p
- (reset)' v: T* S+ x- R u8 T# p# Q
- (progn ;;; special handling for locked layer reset9 U: ^" [$ X/ i! D6 d- ^. g
- ;; unlock the layer
3 L# V4 Z: Z' j4 o" S$ B - (setq layername (cdr (assoc 8 (cdr (entget ename)))))
5 H1 E# O0 g# }# @, q9 O5 h - (command "_.-LAYER" "_Unlock" layername "")6 i( B% D, @4 R3 x- F1 X7 X8 v
- ;; reset modifiction# z" Q! p$ R5 |6 ~- B2 P
- (reset), g4 x4 o- `1 l& C2 `4 ~* K
- ;; lock the layer again
% l$ }4 ]+ D7 E4 ^6 W& S8 k2 I - (command "_.-LAYER" "_Lock" layername "")
% S# l) f8 h" }5 Y* s, f - )/ u5 E% C! O$ V u
- )& m4 @$ L6 o) L% |- r! q6 G6 T3 q- j
- nil ;;; makes (ddnewhatch) return nil for Cancel; c# h6 G4 d; g1 w9 X; N/ C
- ), R9 V% z% v/ j( C5 c
- ( (eq dialog-state 1), R, h. _( j+ Z) Y) p0 e$ G
- (setq hatch-elist nil)
6 }) y2 H% P( ~3 Q+ G1 W$ K7 {3 K - (modify_hatch): h5 _9 j: D, Z% W) {% c* ^$ W2 d
- T ;;; makes (ddnewhatch) return T for Ok
% ~( i: i5 O) v5 P - )
3 F. x- Y1 J3 l9 [3 ? - ( (eq dialog-state 2), W, h* s$ C7 m9 Q8 L3 d: v' r
7 E7 V+ O1 ^7 i/ M- (if (= (cdr (assoc 70 (tblsearch "LAYER" elayer)))
7 v: b; b* B2 I1 Q0 Q - 47 V3 j. } O* e! o7 J+ x# Q2 f
- ) 5 h! U+ s! P& D" w' ^+ s' i
- ;;; new selected layer is on a locked layer
7 ? h9 S- s3 ]# J- E - ;;; we can simply modify the hatch properties d7 B+ L) I6 P4 e# c4 ~
- (modify_hatch)6 n9 d, |1 X8 d/ U( t
- (progn! k0 o, u6 }: O/ f) t$ _+ w
- (if (= (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 (cdr elist))))))
! n: s7 r x5 y% i8 ]! {. H& X - 43 h* b( |6 ~: \. z( f+ j9 l
- ) 9 V% b1 e1 Z# n T
- ;;; We changed the layer previously and now the hatch lies on a locked layer.' E( B' f6 I/ C- c7 a. S+ Y, s
- ;;; We have to unlock the layer forethat we can update the hatch properties.
# I S2 y$ c* P/ ?& ?4 @7 f4 T - ;;; If we don't do that (entmod) fails to update to the new layer.! w) R) j1 {" M* C4 }6 m
- (progn$ _. N7 j6 _8 s9 u
- (setq layername (cdr (assoc 8 (cdr elist))))2 u2 K9 ?( k6 @0 t9 y' B3 }- c
- (command "_.-LAYER" "_Unlock" layername "") ;;; unlock the layer5 K0 }! ^' O! c" N4 ?
- (modify_hatch) ;;; update the properties
, B8 C/ y w6 c, @; M - (command "_.-LAYER" "_Lock" layername "") ;;; lock the layer again/ q' u+ K' l$ ~6 O$ l" U
- )1 s% L0 _8 r% ]2 y2 Y w- {
- ;;; All other cases we simply update the properties7 G! S% V0 E3 W/ V4 ?* P9 Z3 E
- (modify_hatch)
$ R! F4 p( T5 S& s% R3 W - )' n2 o! ~( d, A9 h
- )
/ \; o2 h* Z& c2 i - )
; b9 y$ V# Z& m1 x R1 F' S - (if (= (checkforlockedlayer ename) nil)
- h. p5 q$ |6 L: O; r* j - (command "_hatchedit" ename)
k) @# Q9 S, L$ A5 ?% u y; P - (alert ;|MSG111|;"The hatch object is on a locked layer.")4 y' I( ?" J0 }& `1 U3 t
- )
0 o3 t1 R5 D1 z7 A$ @; @1 Q6 o - (ddmodify ename)8 l! {3 D" }+ O. P, c# `# z7 x
- )* z$ o6 a$ [2 V( d$ X4 {
- )2 f- Z* n9 l/ G+ e
- )
" Z6 x% e) G1 {) ]0 u3 O9 ~ - ;;
* M: O! U( Y" w4 V& ~9 U - ;; Modify BODY! H5 p) _0 d% l. n
- ;;& Z9 |& i1 s: e
- (defun modify_body ()
" H" z! h: I7 L# i - (modify_prop_geom)
- L+ [# K1 Y' L% M - (entmod elist)
: P0 B. a7 x3 T( ~, E$ o- f - )" X( W3 V( `( o( n9 g" y" r
- & U" }2 T4 ]' N( U
- (defun ddbody ()5 C! \2 r9 _' M7 t
- (if (not (new_dialog "ddbody" dcl_id)) (exit)); i/ Q5 M* [% O1 a
- ;; Set initial tile values
3 Y% s! u6 z1 }9 T - (set_tile_props)
+ f3 t' _! E$ A U - (set_tile_handle)
; j- z7 s- L2 v1 _7 d3 v9 E - ;; Define action for tiles
3 G8 o* g# d' W. D: ?* h$ I4 O - (set_action_tiles)
: r4 {( q* L, t2 v4 l1 Z - (setq dialog-state (start_dialog))
& }1 j% z4 O$ k - (if (= dialog-state 0)
4 T: g) e% U% M0 ] - (reset), S3 R6 C+ P3 W$ K5 H
- )
7 ~ Q, p9 s; u T+ P+ B- i$ b& | - (if (= dialog-state 1)3 e" S4 k# X. [0 ?) p' M. C
- (modify_body): h1 w" [8 b6 t5 }$ y
- )
0 ^* _$ g7 f4 `& E' r" T6 p1 ? - )
% D9 n1 B3 W" y$ ?1 h - ;;
- y7 o* s& X9 Y% q - ;; Modify CIRCLE& {+ O! v# Q8 u8 l+ |8 T3 x
- ;;/ T& I( m) v% t
- (defun modify_circle ()
2 I$ y& n& i+ x7 H( G - (modify_properties)
" i% y6 b c$ h" N1 i$ W5 p4 y( @4 i - (setq pt1 (list x1 y1 z1))6 ~1 N; Q& f% L8 A( [. a. X- P
- (tempmod pt1 10 1)& i, @- ?, \. X, ]8 c3 o- u
- (tempmod radius 40 nil)
! A9 w9 J$ a8 J7 E' L& u - (entmod elist)
6 @: }" S0 D7 L' I$ U3 L - )
6 ?: U. n' q6 n& i - / \. M/ N% s& i* X
- (defun ddcircle ()
0 Y6 J1 a5 A3 @/ `$ ^ - (if (not (new_dialog "ddcircle" dcl_id)) (exit))
% }6 V7 F3 i8 L5 v+ Y7 V, j - ;; Set initial tile values
# w6 z, v3 d0 h' c! B - (set_tile_props)2 y* ^+ X( B$ }: m, A: f, L
- (set_tile_handle)
: }* u2 b3 e) l; `* S! D - (set_tile_pt1 1)
9 d0 ?0 I0 G$ p( K" X2 ^9 ` - (set_tile_rad)
; r! `! D3 X6 r9 E* b - (cir_calc)1 V5 ]1 C# P% r. z- p+ R- @0 n
- ;; Define action for tiles
4 b i) A1 p' n8 q# ]* ^8 _ - (set_action_tiles)
3 ?& }& I1 i9 x& l3 l- ^ - (set_tile_pt1 1)* {. f6 d v5 B+ B
- (setq dialog-state (start_dialog))# \+ E3 ?+ @! Q7 o
- (if (= dialog-state 0); n" A4 i/ W* Q) D& ^4 L5 U
- (reset)$ \9 M* f7 l6 `6 B: c1 w" d; y V
- )0 J' w/ n" ? R3 y
- (if (= dialog-state 1)
" u) k) r" l# l$ S; c: P9 ]+ V8 S - (modify_circle). ^9 D" T! P$ L0 x
- )% |2 R: Z6 X$ p$ }6 {/ z2 o
- (if (= dialog-state 3)) d, Q( a' p! ]1 v4 Q0 U' R
- (progn3 M( ~+ q& r0 X& Q, X
- (modify_circle)
$ `* ?) x8 n7 r) W, u7 x: v - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))* S. k9 Q% |3 b+ A
- (ver_pt1 1); D5 j5 x4 [" V# t' E) b# P
- (ddcircle)
, n, W3 w& u6 `3 T; N - )& Y& c/ L2 g' q8 s; C
- )
* \; t" I, Q' |2 E$ H/ x - )9 m1 ^9 b8 X0 G$ `
- ;;
( M) C: O0 E$ i: y - ;; Modify ARC
$ t, d, Y% ^0 R* v6 ? - ;;
7 C4 l) S O" t8 {% ?! I - (defun modify_arc () ~. g) Z/ d: j6 ?4 w% p8 E
- (modify_properties)
% J* {' x/ a% @) C. Q - (setq pt1 (list x1 y1 z1))
, O) H+ {9 h0 g# |$ c - (tempmod pt1 10 1)% y$ ]# x, n- |7 C* v9 E% w
- (tempmod radius 40 nil)' b. ^( ~6 r8 s: g4 E2 e
- (tempmod st_ang 50 nil)+ z; T* n* A" k$ l; U
- (tempmod end_ang 51 nil)8 p9 y d: U: n9 W6 k
- (entmod elist)
3 W/ {/ U/ x7 F5 j1 V- C: @/ m( _) F7 P - )* m; E( b* k; N' I3 w% A
- (defun ddarc (), o- F: V3 |: b, E- c% A7 s+ f
- (if (not (new_dialog "ddarc" dcl_id)) (exit))
_ J5 @" u2 ?" n+ ^0 p+ t - ;; Set initial tile values
% n4 C, v) V2 X2 a$ I, m# Z - (set_tile_props)
8 f0 c4 O% ^+ ?: m9 ~0 }- y - (set_tile_handle)
+ w7 X" `0 J3 c. n1 G5 p - (set_tile_pt1 1)
6 O9 e0 |4 l/ b- g& s. N4 t9 a - (set_tile_rad)
% M4 F: ?# C% q - (set_tile_stang)8 `3 M3 N6 D% z/ J+ W% ?' H& n! Q, ^
- (set_tile_endang)9 ^) h: v+ \1 U; W1 A( h2 L1 _
- (arc_calc)8 G6 x- s* V/ C/ G# d( I
- ;; Define action for tiles
9 {9 w& Z, c7 C9 T k$ _, s - (set_action_tiles)# x, J3 A) N- i
- (setq dialog-state (start_dialog)); Q& [" P* E& [, r& u
- (if (= dialog-state 0)
5 r% K6 |3 c) q( m; s2 B5 w; j - (reset)
% E" P: v# B- v- W, s - ) L% r7 f+ R9 z" w1 v0 P
- (if (= dialog-state 1)
6 w/ g. [- Q' P, b4 _5 f m - (modify_arc)
4 }& A' H7 ?* j; H0 n8 L+ @ - )$ d( G8 c2 Z/ i" `/ z) s2 P. V
- (if (= dialog-state 3) F9 Z2 T) K r9 O
- (progn0 _5 K* b8 Q6 `& e0 j7 ?; R: I: t
- (modify_arc), ^. Q$ p" z" v1 R
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
, n9 e$ S: T' | z3 Z& g; O2 [ - (ver_pt1 1)
% V% j6 q7 T. X+ M, a" \' b - (ddarc)
+ h; V1 {3 b; i - )$ y/ Y/ d/ i6 `0 w2 {1 q
- )$ G% \1 b1 i/ }+ l9 k" F
- )6 x) t) S* h7 M6 T
- ;;
. W0 P3 a% U" ^+ U - ;; Modify SOLID or TRACE* k9 k" F: i9 c4 e [9 j r `
- ;; Note the Z value of the object is determined by the Z value of the fourth
0 M7 F8 }8 m5 v$ Y5 @ - ;; point - code 13. Changing the point values of a solid or trace from a UCS2 B* s) j, Q* `6 F) g% ]. N+ C
- ;; that is nonplanar to the UCS the object was created may confuse the user.% N9 K, m6 |) b! S6 C' ~
- (defun modify_solid ()& M5 ?( U4 l0 v
- (modify_properties)3 z$ n1 y, @, ^2 X' V( v
- (setq pt1 (list x1 y1 z4))
# O) U' X# n+ g: y6 d+ D! N - (setq pt2 (list x2 y2 z4))
8 b' Z4 H. f7 G1 j - (setq pt3 (list x3 y3 z4))# v L O: Q1 t
- (setq pt4 (list x4 y4 z4))7 _3 x7 ]' m- f2 e
- (tempmod pt1 10 1)
7 ^% R; X+ \. z0 \6 N - (tempmod pt2 11 1)" _8 \. {8 O5 I: k% b
- (tempmod pt3 12 1)
, R# _( A& a+ |, F/ L! L - (tempmod pt4 13 1)( j1 }% {9 ^7 ^! J( e- X0 W
- (entmod elist)
2 Q: N( h0 `( [7 Q( P - )
' B/ f& i8 j( B! W! h& M# | - * F1 Y' w6 L0 J, [
- (defun ddsolid () I# A: P, }/ M( }0 @/ |! \
- (if (= etype "SOLID")0 M( P# u+ |, e
- (if (not (new_dialog "ddsolid" dcl_id)) (exit))! p# R6 Q5 j; a$ K3 D
- (if (not (new_dialog "ddtrace" dcl_id)) (exit)), z: b x0 l2 ]7 F1 H
- ): q$ ^ h! h1 W- v" Y
- ;; Set initial tile values
0 `( U. @4 W) T; E - (set_tile_props)
1 P, d+ R1 O c G. Y6 N$ y - (set_tile_handle)6 E7 m+ k0 Q- I1 B% N1 Q: s$ S% ~
- (set_tile_pt1 1)
7 b! z6 B- D) n2 @6 ~. R* e4 S - (set_tile_pt2 1)
j2 i: h8 ^9 I6 }" [7 U) P - (set_tile_pt3 1)
0 p% D, j3 |2 Z4 [7 S3 b2 d2 X - (set_tile_pt4 1)
* ^4 q1 P% [9 M& R - ;; Define action for tiles
# \2 \ | \# N' e+ n - (set_action_tiles)
& S" I% d+ {$ w - (setq dialog-state (start_dialog)); b1 G! B; }: h9 ]/ N; L% `4 F& }
- (if (= dialog-state 0)
1 x; C# V* Z% l C9 \/ S - (reset)+ ]6 n5 }( X7 e; w! R0 c7 n. y
- ): i" y1 E! \* I' _! z7 k
- (if (= dialog-state 1)" a% S6 Z! \! d2 }4 ?
- (modify_solid)
" g( p% X0 T. a, E1 [# h5 T# b1 `7 _& N - )9 r }6 v- U# V$ S: ?* _
- (if (= dialog-state 3) a( F! n. {0 E, f; t. A
- (progn
9 h1 Z1 u; O) ?* l) q( a - (modify_solid)
/ r! E1 M }, b4 o! Z( S9 b - (setq pt1 (getpoint (list x1 y1 z1) "\nFirst point: "))
# k. a$ v' C! ^5 g1 R( Q- g - (ver_pt1 1)
6 P6 v; S3 _: E1 T! r - (ddsolid)" Y5 U$ j) H2 z! S1 U! @' h( s6 ]
- )9 e3 {" ~# g, K C: @. l
- )& q0 o, g n% t& c' A
- (if (= dialog-state 4)
& c6 W0 c) o0 X! e - (progn W- K' F0 q7 P! U( ^$ O
- (modify_solid)- N4 z6 a, Y, \
- (entmod elist)" t0 o3 O5 R3 D0 a4 e% ~( ~- v
- (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))6 g9 Q0 `- e6 p+ a& m( `4 M
- (ver_pt2 1)1 ^$ H" }) J( e5 S e
- (ddsolid)
/ ^: t( J" U: n1 {' a - )
, d0 X1 `% G# Z) w0 l - )
3 y4 d5 H$ {; D% h8 [8 r3 c5 N - (if (= dialog-state 5)
7 L% U5 F1 F" |7 ^ - (progn, B0 U: d! b7 x( j
- (modify_solid)
8 i! I2 u; M( V4 o0 ~3 _9 F7 l - (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))( K1 T% y* h1 F3 k; n8 D4 J/ P' O4 c
- (ver_pt3 1), ^4 V/ O1 A/ R8 I4 Q3 v
- (ddsolid)
; A9 |! R* f% E - )
0 k) V; g# N2 ]$ n. s0 d- d, _/ m - )
; |. M+ Z b7 Z& h+ z - (if (= dialog-state 6)+ z( r& b8 Y2 ?8 \: n! H
- (progn; R6 D4 z0 I8 h, v m: t
- (modify_solid)
+ x7 r$ ]2 R2 m! F6 m* g6 G; ~ - (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))
7 N _" H7 G1 r4 h0 j* s N - (ver_pt4 1)" g3 x- L; y% K8 J3 ^0 `! M) X, ?
- (ddsolid)4 Y4 @$ W5 a) q0 M& Y
- )
/ M' r+ N; d, M2 Z7 }2 V - )3 S* v$ W' N4 ~/ k9 H
- )
4 s0 d d6 ?% u' N3 q# ?, }" [2 d - ;;, T( \5 u) w) C' I. w
- ;; Modify 3DFACE0 W3 |1 N$ l. G& |/ ]
- ;;
5 U% {; Y% q" b - ;; Check visibility of edges, r7 k8 @: {" L+ V
- ;;. ~$ S x- ^% \: {2 |
- (defun edgetest (/ bit1 bit2 bit3 bit4)& ~% e' t- u: W/ f, o
- (if (= edge1 "1") (setq bit1 0) (setq bit1 1))) }& y n& M Y% J4 r
- (if (= edge2 "1") (setq bit2 0) (setq bit2 2))
; H! e& H _4 A m8 {& V# X - (if (= edge3 "1") (setq bit3 0) (setq bit3 4))$ h8 v/ n3 }: v I2 A$ `1 Y5 t% X
- (if (= edge4 "1") (setq bit4 0) (setq bit4 8))3 \! m# C6 h: I+ T: V, V4 [
- (+ bit1 bit2 bit3 bit4)8 V5 e4 N) B- C2 D& d5 }
- )0 H# F1 ^4 [; O2 h5 O( b
1 j* _$ p4 q- P4 k! N: z- (defun modify_3dface (), |- v1 `, p9 {$ P
- (modify_properties)
* r- T! ` N0 f3 r; u- |; S: t; C - (setq pt1 (list x1 y1 z1)). Q, C! _" F/ N: q, [" d( k& W
- (setq pt2 (list x2 y2 z2))
' x9 k( N/ l! r - (setq pt3 (list x3 y3 z3))7 ~( \1 T, W" c
- (setq pt4 (list x4 y4 z4))( K7 Z" r# J, s# ` j( \
- (tempmod pt1 10 0)- }# {$ _# L; O1 E
- (tempmod pt2 11 0)3 T( S& z6 Y; w, ?! B" m" ~ ^$ X
- (tempmod pt3 12 0)8 i1 z5 i; c6 [2 G# ~
- (tempmod pt4 13 0)/ m9 S, w% K' T! m
- (tempmod (edgetest) 70 nil)- U6 X0 b: T* @/ F j& H
- (entmod elist)5 K% y) j1 r# Y5 g' e
- )
, F( C; e$ a+ U# G: R# z- w1 o
1 ?: Q5 t5 Q/ x8 E- s& [4 @- (defun dd3dface ()7 l' g" r U& F# W7 |9 l
- (if (not (new_dialog "dd3dface" dcl_id)) (exit))
- [0 W* P' T+ H( o2 p3 q - (set_tile_props)
. B6 H- b# z% {# `: d- g6 w+ f - (set_tile_handle)
, E- X: s* }' ]/ j! c* P - (set_tile_pt1 0)
$ K5 l9 s7 Q T: {2 P9 z - (set_tile_pt2 0)
/ j. {( {' I( a* L% r; _ - (set_tile_pt3 0)
^1 |5 ]7 L& T; T9 m9 {/ f - (set_tile_pt4 0), y7 {* e. e- j8 x/ k
- (set_tile_edges)
& a5 C) u0 o1 V1 w9 M2 N - ;; Define action for tiles
7 b* ` p3 S! o% f - (set_action_tiles)
5 U" l6 F7 i- r# `6 N - (setq dialog-state (start_dialog))
- N% Z' t, S) M9 K2 n- j: ~ - (if (= dialog-state 0)( A1 J0 f6 [( E/ p
- (reset)
1 ? p0 N( b1 `1 U: W - )
# L1 V4 r$ f+ X8 K3 C - (if (= dialog-state 1)
9 {! ~. `& h( ?# V. k7 E8 a - (modify_3dface)6 w8 Q6 X; v/ I! h; F
- ) Q: z6 r) J2 D) ?
- (if (= dialog-state 3)8 s1 |1 [( H& H6 u5 H' C/ ]
- (progn3 k' {3 X" }$ P1 ]# N2 R1 T
- (modify_3dface)3 Z4 V/ u2 s6 H- f- _' F
- (setq pt1 (getpoint (list x1 y1 z1) "\nFirst pt: "))
1 @5 a" h/ d. s: ]+ ?0 |3 A - (ver_pt1 0) e: O1 p+ M$ G+ f/ ]/ B6 n; J
- (dd3dface)
. `9 N& D9 W0 e. v3 u0 x0 C8 a - )
7 b* p# Q/ o) g+ j3 j1 u - )
7 H' s! u3 n/ A! \) a - (if (= dialog-state 4)
+ q5 l' B2 W3 f - (progn
0 }5 c. ?/ q0 U2 f/ s% G - (modify_3dface)- d8 W. O8 c% B% f& o& }
- (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
2 v8 l6 C( w8 t$ S - (ver_pt2 0): \; B/ U& [ j
- (dd3dface)
6 D7 F) z9 ^% [: }! h - )
Y7 O& |) Q' y3 H' L. [5 w1 v/ w - )7 x1 N" x$ b; L; m0 Q1 g1 R
- (if (= dialog-state 5)8 K" O1 _* {9 [9 c- L; r. ? i- O6 a
- (progn0 B w, q9 t! {) a/ |, @9 ]
- (modify_3dface)
$ V6 L7 l# W F* w8 X3 Z - (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))4 q% {% _ i4 I6 C' {8 H7 m) ]& e
- (ver_pt3 0)& T; s" `; J6 p% L5 w# j+ |
- (dd3dface)
6 G4 Q- E2 F# C4 z. D$ {+ j - )
! A/ Y5 P2 f$ r/ V( @ - )0 N+ D/ ^# c2 G; t) ^
- (if (= dialog-state 6)
7 e2 P9 R+ g8 a5 Q' A6 g" L - (progn
) ~1 R: k3 J3 { - (modify_3dface): K* k$ z n/ U- b0 P3 [3 ]
- (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))
" d$ V4 Z A' c8 T8 D9 E" m - (ver_pt4 0)
/ F0 }% t1 W' v( {3 F - (dd3dface)
0 Q0 [! D7 W( h5 z4 w - )4 c* w! h1 k! W3 ]& W6 a& l) W6 c
- )
# k# y) T/ x" \( M2 w( { - )3 h* J) K. B* D) a0 E
- n! l9 C7 x3 i! ~- ;;( s" F! I5 p3 V2 U7 f$ Q# F/ T) z5 C: x
- ;; Image functions
' M- l3 v% \; [. y# r$ R - ;;- H U/ ?- J6 ^
- (defun image_scale (/ upixel en n userscale temp)- n2 i9 p; A/ n+ [
- ;; Calculate the size of an image pixel in AutoCAD units3 j7 M8 l6 b5 E4 H) Q
- (setq upixel (distance '(0 0 0) (cdr (assoc 11 elist))))
+ p! ?) M' |" h3 d) \ - 4 ?( i7 a6 Q: T
- ;; Retrieve the user scale
! F2 w" S4 u4 m3 d" B% r - (setq en (dictsearch (namedobjdict) "ACAD_IMAGE_VARS"))
) e6 _8 }5 I% O1 ~: t- i6 N! Q8 m
' k+ \6 T8 m$ K7 ]; P: D/ r& D- ;; Next, extract the image units and pixel resolution1 Q% ?4 y- M% a" U2 N- o- i2 w
- (if (or (= 0 (cdr (assoc 281 image:olist))) (= 0 (cdr (assoc 72 en))))% S, D5 L" u- A) s% E3 b
- (setq image:scale (* (cadr (assoc 13 elist)) upixel))
) X7 t$ `+ f/ w/ [4 d& r - (progn
. J" T0 y: l# C( N# B - ;; Convert the user scale to the proper word
1 f9 x0 O! U, b3 Z, l9 T) b0 D - (setq n (cdr (assoc 72 en)))5 R; I) D. z- f' s
- (setq temp (getvar "LUNITS"))
. i; n+ p- c8 f; I - (if (and (/= n 0) (or (= temp 3) (= temp 4))) (setq n 5))
. u% V4 O& Y9 B" W H# \ - (if (= n 1) (setq userscale "Millimeter")): V# p5 Q- X( |7 O0 [
- (if (= n 2) (setq userscale "Centimeter"))
8 Z. w4 g+ m; ~& ]& h0 T' t - (if (= n 3) (setq userscale "Meter"))6 r! W0 t" [. Y" C# E. C! F# n2 B$ E
- (if (= n 4) (setq userscale "Kilometer"))3 D& \' w% Y6 ?% b* r
- (if (= n 5) (setq userscale "Inch"))
4 Z3 {* ?. U4 M* |: E: q - (if (= n 6) (setq userscale "Foot"))
$ g! D- I. o0 C6 r+ t$ g - (if (= n 7) (setq userscale "Yard"))
' a' U* D* f7 ^& N4 X - (if (= n 8) (setq userscale "Mile"))1 U% |( a5 [- I [
- (setq image:scale (/ upixel (cvunit 1 "Millimeter" userscale) (cadr (assoc 11 image:olist))))
7 r% E# ]- c5 ~$ C E+ q& \; o5 Y - )
f L0 g1 h g3 v# O - )
( f0 V) J3 H t$ w/ H$ n - )
6 b1 {- t4 A) N& h5 G$ M - + b* t; K1 c0 ^9 I
- ;;* r- Y' y4 K* e8 Z
- ;; Scale factors for block insertions1 \( ~+ J) J+ F9 z* A
- ;;
% V$ L9 y6 F! G. f6 H- R$ J - (defun image_set_tile_scale (/ temp)* n) d& o r4 ?$ d2 b
- (setq temp (getvar "LUNITS"))
H# F! U- i/ k2 a. ] - (setvar "LUNITS" 2)
/ n2 b! Y/ }& X& {& A' c - (set_tile "xscale" (ai_rtos (* image:scale image:mult)))! S- y0 N0 g$ q5 P
- (set_tile "wid" (ai_rtos (* image:width image:mult))) Y" k Z' |0 B# P
- (set_tile "hght" (ai_rtos (* image:height image:mult)))
4 ]5 h! d) g: o' ~ j( x - (setvar "LUNITS" temp)* W8 ?* c* J' L* o# b! T
- )7 S! X" L9 i* g0 u
# c; V; u, ] @" h" Y- A: a d- ;;
8 S& J. s: D, k - ;; Set the scale, width and height values appropriately.1 @! S) a p, J" s
- ;;5 t. }3 |3 c/ ]& r! }- g/ P
- (defun image_update (field value / orig_value new_value mult)
3 K( Y- A1 X( {* P: r7 e } - (if (= field "xscale")+ V5 q* Z Y/ n$ U3 D" o' C
- (setq orig_value image:scale)* K1 T S& y( W t
- )
6 v$ J& ~4 y( l2 ^: F - (if (= field "wid"). B/ i8 s+ x2 d! A7 |! y& b
- (setq orig_value image:width)
- _$ H1 t5 R* ?6 P - )
0 Z% V5 M; u) ^* f# H0 O* q2 T - (if (= field "hght")+ c( W% y3 \/ c* d
- (setq orig_value image:height)
w# h& R: [* G$ p2 `9 Z, r# T - ) N) g9 ^' h1 a3 o
- (setq new_value (verify_d field value (* image:mult orig_value)))! ]. n. K- c6 g& L
- (if (/= new_value old_value)7 w* s" v2 L. e
- ;; Make sure the user has entered a sufficiently large value% J) [# W j% y! m2 R5 y( v
- (if new_value9 r0 K9 q$ h+ ~& ^9 ~
- (progn! s# o2 S4 ?9 z* I0 B: Y* p; l
- (if (< new_value 1e-8)
1 K* n( w- w- W) k* Q - (setq mult image:mult)
# c0 W, l: f+ t! }) A$ G - (setq mult (/ new_value orig_value))( \. \2 m, L. |! ~- J1 l- Y- E
- )
- ^* b( [0 k, Z$ j - (setq image:mult mult). K5 U1 O- u4 q
- (image_set_tile_scale)
1 I9 s, [0 k% N: n: C - )4 D0 W* J+ G& ^4 p" k6 w6 C
- ): i! j3 s1 Z z/ Y0 `5 Y( l
- )
$ N9 v k* C, I* [$ n- l - )
% Q1 D$ e+ w2 g6 R
0 a" C7 X2 R1 I3 n- (defun image_disp_opt (bit)6 G7 l, @) e0 ]7 X( Y; {8 Z" S
- (setq image:options (Boole 6 image:options bit))5 F/ K) x' a% L; C1 Q& h1 o
- )) z7 Q5 | G/ \7 P1 l1 d# b
- 9 }! V" O* p; x- y* b. f7 r
- (defun image_modify ()
! n4 G+ J/ ]; d) p' o; e - (modify_properties)
/ |2 p: y/ ]) T# n* f _9 q3 G; @# x - (setq pt1 (list x1 y1 z1))3 j2 T4 I$ t7 i8 M
- (tempmod pt1 10 0)" g5 k" ~4 e2 Y
- (entmod elist) n. B0 n" c8 t
- )
) U: r2 r6 s; R# N& @" h% v/ ^0 U
: s4 S* ?) ~% w! a+ w- (defun image_clean_variables ()
. f4 C% p, A$ L+ c - ;; Clean up global variables used here7 g; C* H2 r! H$ H
- (setq image:scale nil)
3 m, p# q& Q9 N6 j A1 \; i - (setq image:angle nil)
0 f# f# h" U' O; ]) t9 Y% [ - (setq image:width nil) `, N& E* c, |, y9 Q
- (setq image:height nil)
1 y* H) W5 B( p# A; Y0 u& w - (setq image:options nil)
7 g$ w/ F- \ v+ | - (setq image:oname nil)' Y$ a. m5 c% D0 N
- (setq image:olist nil)+ s+ C: C% P8 j2 Z) s9 {4 f% f! `
- (setq image:mult nil)
' [8 V" k$ c) ]' k$ ? - (setq st_ang nil)" T6 Y( w2 w% u- M M
- )
+ s+ @" b% u9 o- f9 X ]6 R - ( ?0 t" x U6 b. \ y
- (defun image_scale_vector (v1 value)0 T* D1 _, G, ]6 Z) }2 m1 P
- (list (* (car v1) value) (* (cadr v1) value) (* (last v1) value))7 Q$ T0 q+ P* Q
- )! n" U$ G/ {7 ?
4 y0 g w4 |4 R/ O- (defun image_cross_product (v1 v2 / vx vy vz)% ]+ w, H- r' [! K
- (setq vx (- (* (cadr v1) (last v2)) (* (cadr v2) (last v1))))7 v) m" D \: W x: G3 ]* s
- (setq vy (- (* (car v2) (last v1)) (* (car v1) (last v2))))+ R3 @) T4 e0 v: Y7 h7 C/ ?7 Y
- (setq vz (- (* (car v1) (cadr v2)) (* (car v2) (cadr v1))))% T6 x- d# d0 ?. H3 a) ]' y
- (list vx vy vz)- M8 H8 ^) _! w* d: ?+ X
- )3 y4 O' c2 J6 h1 `9 a/ K
- ! m2 H. O6 y8 \& g" S
- (defun image_dot_product (v1 v2)
/ \/ _- a# x8 G; e - (+ (* (car v1) (car v2)) (* (cadr v1) (cadr v2)) (* (last v1) (last v2)))
/ k4 {( M% v3 G - )
4 o7 W6 _% \8 ]2 V - ( P; B3 S/ ?, [0 Z4 L6 X+ P
- (defun image_add_vector (v1 v2)% U' j% v/ ]5 V* _. X
- (list (+ (car v1) (car v2)) (+ (cadr v1) (cadr v2)) (+ (last v1) (last v2)))
- F d( m7 \' c" ~3 } - )
+ V1 i1 u/ r) {, I8 A ^! I( B/ v - 7 R2 x, o S7 w* H: \- Y' u" x
- (defun image_subtract_vector (v1 v2)% ^/ m2 a/ W- ?' t" Q+ ]
- (list (- (car v1) (car v2)) (- (cadr v1) (cadr v2)) (- (last v1) (last v2)))$ k9 |' u. _( T$ |
- )9 B4 ~) N% A; p, A' Y
- 5 e1 @' M3 l+ W- v3 ~. l! R" g) y
- (defun image_normalize_vector (v1)
# q4 S8 }6 I/ D3 J# m3 L& \ C - (image_scale_vector v1 (/ 1. (sqrt (image_dot_product v1 v1))))1 B7 h& ]* ~# e2 O- X6 {+ w+ i
- ), q1 B) r S2 M* N N
+ I/ G( O, ~$ Z5 h- t+ n% H- (defun image_rotate_vector (vector angle axis / along_axis axis_x_in_rot_plane axis_y_in_rot_plane in_rot_plane)) m% z3 F1 b: k% P: w
- ;; Normalize the axis
3 T" ~! ]' v X* A/ Y - (setq axis (image_normalize_vector axis))3 D( c( k9 k+ w3 V
- (setq along_axis (image_scale_vector axis (image_dot_product vector axis)))
) U4 q6 i* _: v+ Z+ m - (setq axis_x_in_rot_plane (image_subtract_vector vector along_axis))6 G$ O" P+ o7 S4 w
- (setq axis_y_in_rot_plane (image_cross_product axis axis_x_in_rot_plane))
3 o% |0 Z$ Q- U# s# B& u: j1 z - (setq in_rot_plane
4 B( \. b/ D' U. A/ S- { - (image_add_vector
# D6 r% l; i) \& B& f# | - (image_scale_vector axis_x_in_rot_plane (cos angle))9 F* F5 F2 D7 ~# f0 K/ Z
- (image_scale_vector axis_y_in_rot_plane (sin angle))
/ C: k4 @ x& F* w# f5 t2 E - )1 f$ Z3 N! w8 o3 Q! }% N
- )* b' I3 N4 u4 S# `
- (image_add_vector along_axis in_rot_plane); b- X; V# O) B( i7 o) Y/ I
- )
% @7 k5 D! C- A8 T - ! c- F0 ?7 h3 z/ ]" Q
- ;;6 ^* H- U- [1 u: \& ^
- ;; Calculate current rotation angle if appropriate.
* y6 v- g+ {8 n s$ \: G - ;; If not, grey out the rotation field.
7 l+ ?6 T* C, c; B: ` - ;;1 F, L+ D( ?7 }$ s1 k/ l. v
- (defun image_rotation (/ normal rlength zlength sqrt_tolerance)
! i+ N" r% A( {: q) T - ;; Determine if image normal is codirectional with
- s) W: c' D; A0 w$ N5 l! H8 I. C - ;; the current UCS Z-vector.
" U9 a4 v( {' S5 Y; G - ;;
! a2 Q9 F" ^. K, |7 u" @: [ - (setq normal (trans (image_normalize_vector (image_cross_product (cdr (assoc 11 elist)) (cdr (assoc 12 elist)))) 0 1 1))
+ v; M1 |, J1 |: _" I0 ] - (setq rlength (+ (* (car normal) (car normal)) (* (cadr normal) (cadr normal))))$ R' D# [/ I5 o2 T5 q/ A" Y7 \, F
- (setq zlength (* (last normal) (last normal))). q% `' w) X3 G& f. S. q* W
- ;; Note that the value .0001 in the radians is approximately 0.0057 degrees.
/ Z! V0 z+ }! w - ;;
' X2 F- O* U8 e7 y - ;; cos(.0001)^2
/ S: f# l, u. s4 x( R- N - ;; Tolerance = --------------
3 J/ J& ~5 n+ f - ;; sin(.0001)^2 {! e& m% ^4 a5 {5 F
- ;;4 {$ p% t4 ], G- g6 x6 i) O" ?9 \
- (setq sqrt_tolerance (/ (cos 0.0001) (sin 0.0001))) n/ f% L& q0 A
- (if (and (< (* rlength sqrt_tolerance sqrt_tolerance) zlength) (> (last normal) 0))" Z! M# p p/ L
- (setq image:angle (angle '(0 0 0) (trans (cdr (assoc 11 elist)) 0 1 1)))
# M1 f$ m' Y7 {4 [9 R- ? - (progn3 V% v! Y) F' S2 n
- (mode_tile "st_ang" 1)
( b! W3 {$ [+ c( z - (setq image:angle 0)
7 p5 L; R* ?" G' O. ` l- r& i' l - )
- G& j& n4 q' P: h' P8 K - )
* m. _: Z: f( P7 r+ p. L% ^ - )
7 D/ j# a! o( V. C8 C% L E - 1 U1 U8 C& L9 v" h) @2 z$ p
- ;;% d/ h: D% T- q
- ;; Modify Image
* G5 K$ f5 z3 h8 Y2 s - ;;
; D$ C ?$ L/ k3 \ - (defun modify_image (/ u_vector v_vector z_vector)
0 D- m1 Y$ T4 S! [. X - (modify_properties)- i/ Z4 {0 S9 S l5 H' E
- (setq pt1 (list x1 y1 z1)): d; ?' K* N" d$ h
- (tempmod pt1 10 0)
# a1 ?/ p5 K2 ^- b& q- E8 d - ;; Make display option changes to image. z6 S8 g/ o+ h
- (emod image:options 70)
( e7 ^1 X( g1 ^1 w - ;; Get the u and v vectors' K; c- P* E, N E4 b- s
- (setq u_vector (cdr (assoc 11 elist)))" K7 @; I/ C2 M5 j& ~
- (setq v_vector (cdr (assoc 12 elist)))
# i8 Z {- ]. I3 m - 2 m3 B) P p2 T E% P4 G8 @3 v
- ;; Make scale changes to the vectors) ?: z$ H2 @( B% I9 ?3 M" A4 x
- (if (/= image:mult 1)
/ p* y4 D) @" T# m0 X. Q5 g - (progn+ h) B/ p% t1 Q, W1 X
- (setq u_vector (image_scale_vector u_vector image:mult))& t% j: W; B1 y( E7 g5 f( j
- (setq v_vector (image_scale_vector v_vector image:mult))
, | u; D) p2 C, ^ - )# }7 C5 E0 s- }2 z6 v
- )( S& B# J# c4 s( r3 z
- ;; Rotate the vectors
0 _3 `1 Y9 h4 g! q& C - (setq st_ang (- st_ang image:angle))
; P+ Q+ M7 K& k) |+ x - (if (/= st_ang 0)! V1 j! F* I1 q! b w
- (progn
9 S6 T' _* w. r4 s6 T% n! @/ O - (setq z_vector8 C) l/ _# O3 ^
- (image_cross_product
( M% L8 @5 g# a - (image_normalize_vector u_vector)
) d2 u1 n1 a4 l: h* U - (image_normalize_vector v_vector)
2 \+ [) `, H0 }) j* l: Y& G3 ^ - )
5 e I% M% I" V9 t! }! _ - )
3 w+ W6 J, ]% s# B' m - (setq u_vector (image_rotate_vector u_vector st_ang z_vector))- K8 l n! E0 X4 [
- (setq v_vector (image_rotate_vector v_vector st_ang z_vector))
6 R9 C) W7 ? Z' O: M - )! e V4 z+ V& p/ Z$ C& q
- )6 K' r6 B+ G$ ?; E
- (emod u_vector 11)
& S& g+ y( l, z- ^ - (emod v_vector 12)) v2 }$ l* a+ x) h- Z5 t* G" ~
- (entmod elist)3 j4 T9 |& |1 f
- )
7 U, `- }0 J# S z% U/ a - , ]% Z! x: Q: s" @: w7 M7 Q0 G
- ;;; }, v2 o3 c, N2 x- u* J# P0 E
- ;; Run imageadjust on given entity, working around possible3 d# n5 M0 A: L; I, s
- ;; re-entrancy problems+ ~ r7 F5 t1 A$ R" f
- ;;8 _, X2 K3 }* A" ~2 S1 o
- (defun image_adjust (ename): Z1 J9 f. Y/ J6 P: Y! m
- (verify_arxapp_loaded "ism.arx") ;; make sure it's loaded...$ a7 r* R- K" x8 q) [
- (imageadjust ename)6 J% D) r3 E4 s& g, ~& ~: r3 y
- )
! G, o' o% }0 j
0 ?+ S3 A F4 H* N4 C, p( J- (defun ddimage ()
2 r$ I! t; `3 l* D - (if (not (new_dialog "ddimage" dcl_id)) (exit))
; j% W4 H2 W# `2 E# Q
, D9 R3 I3 |" F) A7 }! r; p8 B- ;; Grey out the thickness field.
0 r% D: x, G# |( i - (mode_tile "b_thickness" 1)
- M% u+ d2 z5 k" z4 Z6 e1 P [" y - (mode_tile "eb_thickness" 1)
4 d9 x. p# v( M7 h+ V
E& V) _. [1 ^5 [# }! E2 |$ c- ;; Get the associated def object.$ C/ S8 m. `" @
- (setq image:oname (cdr (assoc 340 elist)))
8 n2 d) i$ D" r, ? - (setq image:olist (entget image:oname))- _) U7 A1 Y. ~' P* t$ ^% H9 ]
! W. Z0 w5 P) M( t5 ^- ;; Set initial tile values
! t& e) p0 }) Q9 q- D - (set_tile_props)
! I o& t' T7 `; g0 E - (set_tile_handle)4 l8 j" F$ W( `2 f8 b0 s
- (set_tile_pt1 0)
# w! b1 E0 o! C, [+ P5 g - (setq image:scale (image_scale))
; G2 F2 a; N1 Z2 V - (setq st_ang (image_rotation))
# o, T% F. {1 t. d7 V - (setq image:width (* (distance '(0 0 0) (cdr (assoc 11 elist))) (cadr (assoc 13 elist))))
3 s2 x" @7 r& p X$ z2 o0 V - (setq image:height (* (distance '(0 0 0) (cdr (assoc 12 elist))) (caddr (assoc 13 elist))))6 y0 `" d0 ]+ K% S
- (setq image:options (cdr (assoc 70 elist))); f* R& d+ c/ K3 [: _: j# J, l
* k5 u* k2 G6 _* b) [- ;; Record the last multiplier for use in image_update function
8 z9 m+ c+ b9 a - (setq image:mult 1)
" H7 y# n% L# }$ B# Z
" h. |0 N q6 @ S O, g4 ~- ;; Retrieve the image name6 h1 `- J3 n! e7 K* I+ @
- (setq fn (reverse (dictsearch (namedobjdict) "ACAD_IMAGE_DICT")))# n0 d M- ?2 u2 Z$ D
- (setq flag 0)
9 z$ }* l) r9 V - (foreach n fn) i1 B, i( M9 ]8 L0 T" [
- (if (= flag 1): |" C& k6 ^4 e9 G" T5 `
- (progn
" z4 b7 k0 L/ m4 \% n, {- s( V" b - ;; Display the image name a/ R! O3 G }$ x! I& z
- (set_tile "image_name" (cdr n)). j% P9 f! S' `3 V. E: Q6 g
- (setq flag 2)% ` Y( e& P% a! H2 `! {; b
- )! g1 Q& e# {! E% |! W! r% e4 e$ O
- )
- `1 A! V% e" R4 Q8 ? v- ~ - (if (= flag 0)
* u. m: `% h+ C' p - (if (equal (cdr n) image:oname) (setq flag 1))
}; Z' p& S' Y1 v% P" C8 T8 g - )' _9 \, h l0 Y( P4 [
- )3 x! Y, p) r: s8 X. \4 N
- ) J5 Z& f% s- s) Z6 v+ m
- (set_tile "image_path" (cdr (assoc 1 image:olist)))( S7 k) [+ T) p
- (set_tile "st_ang" (ai_angtos image:angle))" a, ^ U4 I' [( Y, k
- (image_set_tile_scale)+ O( v! ?7 X0 K7 a& i" y
3 S0 O+ C3 \' n! w2 U( y" r0 y- ;; Check the appropriate boxes q# N6 N! q1 j8 a. \
- (if (/= (Boole 1 image:options 1) 0) (set_tile "image_show" "1"))
) I' A3 q$ L0 {. L - (if (/= (Boole 1 image:options 2) 0) (set_tile "image_non_ortho" "1"))9 H! i6 C0 E: F# Y
- (if (/= (Boole 1 image:options 4) 0) (set_tile "image_clipped" "1"))
6 G( |/ |, D( k+ j" _ - (if (/= (Boole 1 image:options 8) 0) (set_tile "image_transparency" "1"))
- R1 N7 l f) {2 C7 x3 Q9 e
* D" b8 o/ N4 ]+ q% V- ;; Define action for tiles% r! A- q8 v j% P ^% r5 n5 }2 F
- (set_action_tiles)
7 x/ V9 G* L+ p |3 T0 C0 V - (action_tile "xscale" "(image_update \"xscale\" $value)"). l9 s4 N# o( B) d
- (action_tile "st_ang" "(ver_ang1 $value)")
l2 E l# _+ a/ k; c% ?6 A4 h. T - (action_tile "wid" "(image_update \"wid\" $value)"), z& R8 H! X. R% x( y3 g g6 t
- (action_tile "hght" "(image_update \"hght\" $value)")
/ _: j1 o" ]; {- C - (action_tile "image_show" "(image_disp_opt 1)")* _" D3 G+ q9 S
- (action_tile "image_non_ortho" "(image_disp_opt 2)")
# l5 X2 ~6 H/ {6 o. A8 T" G - (action_tile "image_clipped" "(image_disp_opt 4)")% O6 `6 ^# s; L, d5 |5 R4 E* ]
- (action_tile "image_transparency" "(image_disp_opt 8)")
1 _; U5 a5 A% B) P+ e/ H8 }& a1 _, e3 r - (action_tile "image_adjust" "(done_dialog 4)")
7 \5 f& a# p. P
" m; M0 V2 t% I. I+ n0 ^- (setq dialog-state (start_dialog))
2 S* p$ x5 y7 d, l) t, ^& ^ - (if (= dialog-state 0)
( @" E+ `3 R( }- @ - (progn, |; F$ @# v$ |, O+ W2 a8 D) Y
- (reset)! r* H- c* X- c) e
- (image_clean_variables)3 H7 U% m" k' j
- )
- F! p. M& g3 u# n - )3 }1 G5 _! q1 g* x
- (if (= dialog-state 1)" O" a; g8 t9 ?, @7 ]
- (progn
/ i. L0 Z, o: N9 Z; Q# z - (modify_image)
- [. L9 h' u/ ]( y6 _) G+ q - (image_clean_variables)
8 Y6 U& Z6 T- q- V) |( | - )
0 }" G7 j O5 N - )
* S, J- U, g. T% Y - (if (= dialog-state 3)) _7 \: R4 `) U8 U: q7 n* x6 e+ v' }
- (progn% i W$ w2 n+ J! X# Y, Q# s7 }1 ]
- (modify_image) @ P; T7 G; v2 z
- (image_clean_variables)
8 m+ Y& h# T, W - (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
) Y+ ]6 Q# L* y" H: k - (ver_pt1 0)
5 v' `: d( [5 N1 q - (ddimage)
$ d4 \9 i; d3 E6 T: o4 I - ). q7 R, o3 U# ]' a' C8 x4 |( t
- )0 q0 C$ l. {- W% h$ _5 p3 t3 A
- (if (= dialog-state 4)
1 d- M8 Z$ \/ U) `) D - (progn7 D' E3 D, O; R2 D, V# v
- (modify_image)
8 N2 K3 G& F- x9 N - (image_adjust ename)
6 U1 V$ o* {5 i' r. D( | - (setq elist (entget ename))
: C1 J$ H' r0 N1 F - (ddimage), U4 X- o/ d' T& Z
- )
2 y1 w6 b; b I6 F' l( K0 r# z - )5 T& R, a0 \$ p4 ?- d
- )8 }9 @) x! E9 @" n( C1 s( a" i8 F s
9 i. f5 j3 H( |; s2 Z$ Y" F- ;;
5 {' ?! C2 ]6 P" [) b - ;; Modify BLOCK (and its Attributes, if any)
* k& m( x. U0 k- U - ;;# u: |6 c& J4 E2 A4 F4 v! _/ }
- (defun modify_block ( / el en2 p1 p2 oldp1 oldp2 new_hgt old_hgt attr7 R9 Y# j1 G1 C1 y2 D6 b
- new_wid old_wid old_rot scaling old_scale
4 P4 A% t% J- ^4 F# S - xdelta ydelta zdelta xbase ybase zbase ipos)( v/ e3 ]; a) x/ A/ u; M
- (modify_properties)) S- J7 Z( r6 x* A
- ' E; j, v- J. h% A* T
- ;; First, translate and scale the Attributes, if there are any.
: {, w, ]: V- L6 h2 Q9 {" R - (setq old_rot (cdr (assoc 50 elist))
+ x7 x: [* w: c. v8 r" o - old_scale (list (cdr (assoc 41 elist)); n0 L2 N# I; \9 u% M( o4 N
- (cdr (assoc 42 elist))
& A" _% a4 _* C; z" ]# Y - (cdr (assoc 43 elist))
6 \& @ j9 p& P h, ]8 x# d - )
/ a- }7 y3 \, x3 X6 C8 ^$ F - scaling (or (/= xscale (car old_scale))
( r$ \5 Q) J7 H) U) u - (/= yscale (cadr old_scale))
0 X; [7 H7 c# _; f- b& \ - (/= zscale (caddr old_scale))
5 G( z5 | [8 j6 ^ - ); U: ]/ `! ?0 \! z- i. H+ N3 q& N
- attr nil ; No Attributes modified yet
2 W e6 K; c; C6 G0 V4 j - )( I$ d5 ~$ ^: L% S! D- X' ^% F, c
- (if scaling" `8 w4 p0 F1 {1 j
- (progn
1 C- Y$ H; J( ?$ c$ N$ O0 y - (setq xdelta (/ xscale (car old_scale))1 T: x, U2 S4 O+ G h' C
- ydelta (/ yscale (cadr old_scale))
; P4 q6 s& U$ \7 x6 ?( x" | - zdelta (/ zscale (caddr old_scale))
( r$ e" I- [3 |1 r. t& L - ipos (cdr (assoc 10 elist))
3 \$ v% P" g2 W; \! p - xbase (car ipos)
2 O8 v) q' U; v9 W* A. c% v& p6 v( U - ybase (cadr ipos)& X7 ]2 l* A8 ~0 M" I, l0 x$ D* D
- zbase (caddr ipos)
) G. [% M7 L6 r0 r - en2 (entnext ename) ; First Attribute0 M! _6 M- q7 j& V0 {; N( n. Q: G+ L
- )
8 ~- _8 q' O4 { - . r' m+ S t; z* r9 d2 J
- ; If the Block is rotated, temporarily un-rotate it, along' V/ N" C& e; E5 f/ R+ j7 T9 |
- ; with all its Attributes, so the scaling/translation of the& g) h8 r; C$ Y
- ; Attributes won't have to take the Block rotation into account.3 q7 d5 s( e, L. B; M# Z
- (if (/= old_rot 0.0)+ A" y7 `: E. A9 ~: ~0 n
- (progn) ?* D2 c# k8 b8 C" A0 P9 B
- (command "_rotate" ename "" pt1 (ai_angtos (- old_rot)))1 Z" A. j& e2 h9 _ K
- (setq old_rot 0.07 n0 _' S6 \: A8 O3 Z3 r; i- S/ V
- elist (subst (cons 50 0.0) (assoc 50 elist) elist)
6 X. |' c0 W+ s# E - )% L) b: G; i. G
- )
3 e( l7 h8 U( B8 d! e. s6 j - ): c' [; o. |1 {" o3 V e& N4 ?
8 Z4 L/ X1 e `; `/ }+ x$ q- (while en24 }1 m7 K& |, j8 E, ^
- (setq el (entget en2))
9 f, A) G7 k1 G - (if (= (cdr (assoc 0 el)) "ATTRIB")
) {. R0 P V# \0 p" [, U& ]$ [ - (progn' A7 X8 Q; B# p4 e; T+ V
- (setq old_hgt (cdr (assoc 40 el)) ; Height
5 q5 J$ [5 J. _5 g - old_wid (cdr (assoc 41 el)) ; Width-factor
, {4 i, f, }( v! s# ]+ X( r# ?- Y - oldp1 (cdr (assoc 10 el)) ; Generation start point: ]( X% T3 v9 L
- oldp2 (cdr (assoc 11 el)) ; Optional alignment pt
1 f4 x: J8 H2 X" f4 Q, P - ha (cdr (assoc 72 el)) ; Horizontal alignment
0 G4 o6 N ~% I% q% j - va (cdr (assoc 74 el)) ; Vertical alignment1 T# d: y7 j+ y* v& { m
. J0 V7 ]. T! u# P$ }; c3 O8 Z- ; Translate gen. start point8 }: J7 j! z8 _1 u& ^
- p1 (list (+ xbase (* xdelta (- (car oldp1) xbase)))
# g+ C! k9 d) |8 m: R% C3 n - (+ ybase (* ydelta (- (cadr oldp1) ybase)))
* b6 R$ B0 r7 @7 b) k$ H8 i% W% d2 y' f- l - (+ zbase (* zdelta (- (caddr oldp1) zbase)))
5 ~; P- K* R; n* e8 @9 w/ K' c - )
$ a ^0 l: R. B- p4 t - el (subst (cons 10 p1) (assoc 10 el) el)
9 N# f9 t9 ?( T' ^ - ). @9 _5 b8 [# Q8 O4 ~
3 }* V) V4 P2 k0 j& K9 J& W% B- ; Translate alignment pt similarly, if present and applicable
: X8 k0 d# a1 }" N/ H7 Q6 w - (if (and oldp2 (or (/= ha 0)) E+ a4 V* U, h3 b) L
- (/= va 0)
- X: U6 Y' T9 G& Y3 I5 j g; I0 K - )
' X! N4 c4 e$ `+ L, W+ { - )
+ d1 J/ S/ z* _. |/ w9 b2 O - (setq p2 (list (+ xbase (* xdelta (- (car oldp2) xbase)))8 W3 k" R' z% \8 Y5 a' t9 S
- (+ ybase (* ydelta (- (cadr oldp2) ybase)))
, }0 S' s' ?: {2 t% j - (+ zbase (* zdelta (- (caddr oldp2) zbase)))
8 O# m+ [" e* Z2 K9 @: ]1 g - )
" f- U1 E+ T* k) @7 c5 L( Z - el (subst (cons 11 p2) (assoc 11 el) el)# G# P& u: S: A ~$ q
- )* I7 f; R# K% e
- )5 l) f; q6 V3 [$ k3 O! ]0 r
, i+ O, f* [( S* D; `; e8 X: Y( T- ; Each Attribute's height and width-factor were computed
9 a1 y i) t- ^6 S/ Q% | - ; based on the Block's scale factors. Adjust them now,
$ \' m- N1 P8 m7 q- ~( \ - ; by first reducing to values for 1x1 scale...# x+ Z; L# k6 H+ T4 _
- (setq new_hgt (/ old_hgt (cadr old_scale)), q2 H5 W* `# @: s
- new_wid (/ old_wid (/ (car old_scale) (cadr old_scale)))
V/ H/ O$ K9 v - )' L& h5 B# m& g7 Q, W
- ; ...and then rescaling.
* F& M5 \2 f1 k$ P' r# @) G - (setq new_hgt (* new_hgt yscale)% |: A- M. X I' J; `
- new_wid (* new_wid (/ xscale yscale))5 i1 O8 F1 `% o" b+ f+ e
- )
' u4 A% s6 t( l) h0 x - (if (/= new_hgt old_hgt)9 C7 K% q3 y* ` e( g$ N
- (setq el (subst (cons 40 new_hgt) (assoc 40 el) el))
: D1 `3 x5 {3 i: e - )
3 u! S6 Y, p* z' G2 Q - (if (/= new_wid old_wid)2 q' r( {4 w+ C' P! |+ u
- (setq el (subst (cons 41 new_wid) (assoc 41 el) el))& P, } l* k" L; V0 j
- ), P1 a- I! N( ~. _) ]
- (entmod el)
$ m: v$ u4 Z6 ^; }) ^6 d8 f - (setq attr T ; At least one Attribute modified5 j: S* y1 `- z& x: i
- en2 (entnext en2) ; Next Attribute
7 D( w+ j4 d) M9 S' p - )' j: n# G% U/ _: j
- ): d6 f# l7 }! y( _7 t
- (setq en2 nil) ; No more attributes
7 ]$ U, w4 Z/ p7 F" q - )7 ]+ x: r D( P
- )" Y: ^+ _1 N; o/ |
- )+ ]' N! e. P3 |$ }9 O' w
- )3 Y& P3 ?% c2 [
- $ q- Q( u6 D7 U Y3 n# D6 ]
- (setq pt1 (list x1 y1 z1))
8 p$ ~+ {7 A( N9 }; W0 y3 ?% M - (tempmod xscale 41 nil)
* i% J! w( A, o8 S - (tempmod yscale 42 nil)
8 B% D: J( ~! }$ f/ g( x - (tempmod zscale 43 nil)/ p3 L+ N9 C3 Y6 U; I
- (tempmod col-sp 44 nil)
( P( l( U( a! O% x) M/ K7 W) l - (tempmod row-sp 45 nil)) l' Q% ?8 n4 {( [* z6 T
- (tempmod columns 70 nil)
7 _* @9 Q* {: w. I" L* o - (tempmod rows 71 nil)+ u. I" _$ I' Y
- (if (= xclipmode nil)
: z7 H8 ?# \1 D8 W5 K - (entmod elist)
0 p8 M4 j1 K# l. x5 Y/ q/ Q - (setq xclipmode nil)2 x. C2 X* L; P+ U$ r& u
- )
( y& R9 D: k; `4 N# }; C - (move_pt1 1)- d/ } {* ?& v6 t- q
4 P, g7 d6 s8 G* p: o- ;; Now do the rotation with the ROTATE command.0 v. b8 Q6 {- R
- (if (/= old_rot rot)
$ J- d: v: ^0 O# U* u" {, j - (command "_rotate" ename "" pt1 (ai_angtos (- rot old_rot)))
3 {3 b' B% e/ ~1 ~6 z* r; x - (if attr ; Else, if attributes were modified,% W! E2 S2 A2 A4 R# Z, W6 }0 M
- (entupd ename) ; just regen to force attrib display. z7 u1 Z0 M& s; F5 n1 p5 t
- ), b& p1 V& e: H/ k
- )
. z9 \* D( ?1 k+ @2 q - (setq elist (entget ename))
- r% J9 e. J/ E0 s' {$ b: G - ) I1 S" \# w; U( ~
- (defun ddblock (/ temp temp_xclip newhatch blkname blklist blktype program xrefpath)
' O+ [4 N) S) y - (setq newhatch 0)% g ^4 I% K! `) j7 C( s$ T. I( V6 |
- (setq blkname (cdr (assoc 2 elist)))
1 z% j5 k. B! W8 Z9 c: } - (setq blklist (tblsearch "block" blkname))
3 r$ _' A1 K1 ^8 k/ N - (setq blktype (cdr (assoc 70 blklist)))
' X! L. ^2 A/ T; U" y - (setq xcliponoff 0)
[( n$ g; H D# \/ r( I8 J - (if (or (= blktype 0)(= blktype 36))- Q% o. G: N; K
- (progn+ e. Z, A, ~% L. m3 C8 B% O
- (setq xcliponoff (xclipon elist))
1 j, |/ a; i7 M, `' ? - (setq temp_xclip xcliponoff)( M$ E* Z( A& Z) i. l, s
- )4 [( y: z* Y3 `3 X, x) d
- )
7 \$ C4 Z( a) f - (if (= (logand blktype 4) 4)- [0 s* C. Z W
- (progn h8 [% C f2 w& s1 h. _% B0 ~; I
- (setq xrefpath (cdr (assoc 1 blklist)))
4 z g4 t! M7 e" c: {' f - (setq help_entry "modify_External_Reference_dialog"). I& P0 `% K; u: C3 ^& V
- (if (not (new_dialog "ddxref" dcl_id)) (exit)); `. g1 y% Y. ?# j
- (set_tile "Bl_name" blkname)
. s+ ~% C* s8 ?2 i" s0 \5 {% p1 b - (set_tile "path" xrefpath)
- i! y5 e) a* C - )
, A+ k7 s9 V8 V; Y - (progn1 i1 c) g& O: \2 w- B/ _4 S
- ;; Get program name for use as Xdata app name4 @: _& |8 }& l2 r% t: ^# ~0 h
- (if (not (setq program (getvar "program")))6 J+ g, `8 _( k2 f
- (setq program "acad")$ A( J( ^# P# W+ a
- )
8 q' l# c( w C - (if (and (setq temp (assoc -3 (entget ename (list program))))6 N' e, f! l* v. P) A J* h
- (= (cdr (assoc 1000 (cdadr temp))) "HATCH")
* m9 R/ h$ T3 C: S& n - (assoc 1005 (cdadr temp))+ ]( ^3 r3 e7 w- d3 x* F
- )
% V+ {6 A; G# c# W3 j# p4 V - (progn
/ l" h* G" u) J8 h) c - (setq newhatch 1)* d* F. F0 N+ {, N
- (setq help_entry "modify_Hatch_dialog")
7 D" ~, Q, O9 X8 x4 h - ;;; convert the object into a new hatch! |4 t0 W( S+ Z; V4 P8 [2 @
- (ai_undo_on) ;; enable undo* S* G. e* n% u: K6 `8 C1 N0 k
- (COMMAND "_.UNDO" "_Mark")
2 c! w( F2 l7 C5 U - (COMMAND "_.CONVERT" "_Hatch" "_Select" (cdr (assoc -1 elist)) "")
# S9 ]; T' p b, {) n9 v5 g - ;;; suppress nasty message from convert command
Z, b; H+ ]0 }+ f - (princ "\r \r")8 {* [# A4 |$ a) S' B2 d2 ~7 h
- (setq elist (entget (setq ename (cdr (assoc -1 elist)))))0 a9 ^) z# l' {$ s8 L% P4 Z( J/ U
- (setq old-elist elist)
: N! _9 w8 B u! S& y - ;;; If we have cancelled ddmodify$ {4 n3 S+ F' [1 X+ \
- (if (not (ddnewhatch)) ;;; (ddnewhatch) returns nil for Cancel or T for Ok5 L3 r# z2 v$ s/ Q9 n) U0 d
- (command "_.UNDO" "_Back")
1 \! |8 T! {( j - )+ t9 V; [# Y8 n
- (ai_undo_off) ;; restore undo state
) {$ e! S6 z: U/ d1 |* H M - )
2 _6 `* A' V1 X3 G. K& f! j" L - (progn
+ B/ L4 E6 N6 |2 ~( q; \, V) @5 y - (if (not (new_dialog "ddblock" dcl_id)) (exit))
( m# F& |9 c8 _' V; t# q _ k - (if ( = "*" (substr blkname 1 1))
3 S' h3 y) \8 R! f! z) `1 ] - (set_tile "Bl_name" (strcat blkname " - Anonymous block"))' X% D, g/ O6 u) T5 t
- (set_tile "Bl_name" blkname)$ T) l2 z; |7 \: g
- )
2 a" G0 ^. m+ a/ S. v$ }* Y - (setq help_entry "modify_Block_Insertion_dialog")+ E- m/ r& {3 l% S0 ^
- ). i( K# B( r* x8 n; k
- )1 l. |8 x! _5 o
- ). g4 h; L( T- J t% J
- )
& T6 K2 G& | `" G: g6 o- z1 T - (if (= newhatch 0)
( t1 X- M. b' B* I2 w2 A# n4 `' j - (progn ~, ?* o+ }+ G: p0 w+ ]
- (set_tile_props)2 K0 c# r6 S6 X
- (set_tile_handle)
5 B& l0 X9 F1 k* H - (set_tile_pt1 1) v" m' C2 G* |1 A
- (set_tile_rot)
4 B+ E! F; ]3 ~ s8 V - (set_tile_scale)+ E" J- @% b; ^1 `7 J( K
- (set_tile_rc)
- @& }+ D; i+ {; ~% ` - (if (= (logand blktype 1) 1)
7 U& z" b) n/ d& u - (progn* j1 M9 u4 [" L" r ~, m
- (mode_tile "xscale" 1)
# w0 a$ D5 a* n E - (mode_tile "yscale" 1)
% X* I( o+ r0 `8 l: q; I - (mode_tile "zscale" 1)5 Q$ c6 J. ], ?4 [
- (mode_tile "rot" 1)
) g+ m& j1 k) q - (mode_tile "columns" 1)
# Y ?0 Z. u2 M" F. d( r - (mode_tile "rows" 1)3 U6 a8 a4 e+ d8 c
- (mode_tile "col_sp" 1)! b [8 @( `" ~0 F0 M. i1 x& d
- (mode_tile "row_sp" 1)
0 [2 H# M0 z$ U* R+ t; b8 d - )
; \0 E' b8 A$ W, t" h; O8 ^+ P2 J7 j - )6 v& o+ o, p. R( z
- ;; Define action for tiles! {2 \0 q+ E% J P- ?4 U
- (set_action_tiles)
( x) n+ U4 k+ p6 _$ S - (setq dialog-state (start_dialog)); C, C3 J" }( U8 T) Y6 J
- (cond# X% ?- w: `( k, N9 m. P8 @
- ( (eq dialog-state 0)) F" l2 E& ]: s! D; {9 }. W+ K
- (setq pt1 (trans (cdr (assoc 10 old-elist)) ename 1))
9 ~$ h# l1 i+ W% F1 v% E0 j - (move_pt1 1)
& T5 k5 v$ ?& E/ Z5 q - (reset))3 x# M) B; Q6 {( r9 o
- ( (eq dialog-state 1)+ `5 |- ?9 r% h" a8 H
- (if (and (/= temp_xclip xcliponoff) (or (= blktype 0)(= blktype 36)))
& v( w1 U% t) J - (xclip) @1 T* a1 L: u: ?- W$ p) q4 s
- )
1 `1 T1 C: B' p - (modify_block))( x. g9 D0 T: T. o4 O
- ( (eq dialog-state 3)( s& x" I9 h) K1 U# v. m$ l g3 p
- (modify_block)- D/ P$ P) Z' f8 X
- (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))5 R+ g! ]3 L0 \1 \ @
- (move_pt1 1)
- k" d1 J4 @/ [! \7 A2 \. l9 f: Q# N - (ddblock)); ^5 k0 G# _2 _
- ( (eq dialog-state 4)
& W* ]8 m% E7 }! T) c { - (modify_block)- \$ g# X6 f7 v( X$ }2 n
- ;; Get current handle.2 H# |( C/ e" J
- (setq hand (cdr (assoc 5 elist)))( r2 S: U# u1 E1 B9 r" h
- (command "_hatchedit" ename)% T/ N( Z! d; q/ } `" t5 E
- ;; If OK in hatchedit, a *new* entity is created and the old one
* B( i2 y; A: }9 b7 T - ;; is deleted. So if the old one exists, it must have been a
7 h! R ?. p/ x! J4 n# x2 ^* [1 { - ;; so rest the entity.3 C0 [( [( j/ X; ]. }# K
- (if (entget (handent hand)) (reset))* ~3 ]7 ?7 O( |8 c+ S T; l
- )" m1 Y( j' g, D# D7 x4 A
- )- e6 Q7 ~/ _; q; b3 r
- )
* G) u* {+ y. u! z1 `5 a, b - )
4 i; b; m4 {' r$ k - )+ ~7 T( P5 |' w( }" Z @
- ;;3 h5 n) z- n, M* _- w
- ;; Modify SHAPE
' R2 x5 {; K' w& F% _0 o8 Q - ;;- Y |; |3 b7 K! w" Z6 G. Q
- (defun modify_shape ()
7 t8 f, e0 E5 W1 G, v- {& Q - (modify_properties)
1 j/ i& X9 K5 \" b v8 A2 D - (setq pt1 (list x1 y1 z1))% q: ^2 c6 H! H: b: C$ l' [
- (tempmod pt1 10 1)
' `- {. A% R1 U* U% I6 V) P - (tempmod hght 40 nil)9 Y4 Y7 Y1 p: x: m+ I. X( A
- (tempmod wid 41 nil)* _: z, ^- y8 p0 _/ {1 B" `0 s1 p
- (tempmod rot 50 nil)
% d0 l8 Y8 k2 d; a4 Z - (tempmod obl 51 nil), a, M& C, L# t9 E' H- d
- (entmod elist)
$ r, ^# P6 t1 `" i. L* C1 p0 n - ): I9 ?" j5 X# g8 @ v7 I
- 8 G- @! o _$ Y' B$ [) ]) O- n
- (defun ddshape ()
' S0 }. f8 @: K# |: @0 ~4 g - (if (not (new_dialog "ddshape" dcl_id)) (exit))3 f" O: T5 j3 ~. S9 N( f; F
- (set_tile_props)
( R6 L8 x; s% C9 l* {6 Z5 o# s% d/ C: x - (set_tile_handle)2 K; a4 p6 l( Y$ }$ {
- (set_tile_pt1 1)0 J4 D6 }* {4 P; M. r
- (set_tile_rot)& a/ A9 X+ A7 u9 P' G2 Y- l" R- S4 z
- (set_tile_hght)5 d5 G, j* W6 t/ A2 Q j, D
- (set_tile_wid)
* v% X, `) j9 N8 |9 S. Z - (set_tile_obl)
) J4 P8 ~1 l5 X; s* h* w6 T - (set_tile "sh_name" (cdr (assoc 2 elist)))
7 q6 S+ r% U' D# F* I& \- j - ;; Define action for tiles0 Z9 ~; o, h* U' j1 ?
- (set_action_tiles)6 O% I+ i; J' R, C! l- i2 U+ v* {
- (setq dialog-state (start_dialog))
) N1 U9 q6 {* M5 G f2 ^8 c - (if (= dialog-state 0)8 G5 m* F* b3 B4 R
- (reset)
( P Y3 i6 ]; _! t8 V1 Z1 l4 v+ B - )
5 ?. c( @) G, b: E+ e - (if (= dialog-state 1)! a! T! d8 i: C4 U2 l
- (modify_shape)
: E/ c, {2 {/ I. \$ K8 ^% C - )
% s) x2 Z* c" G& G - (if (= dialog-state 3)
1 A2 y' c1 }5 }' @ - (progn& ~+ K' _" z" _+ U6 x1 s
- (modify_shape)
8 F& c# V" z: z/ } - (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))
+ z+ a; v4 f2 [# P2 t - (ver_pt1 1)
6 L" |; k% E2 t; d - (ddshape)2 A- x! i B7 G+ y1 f
- )7 _6 Y4 X. s9 X0 m4 e, ^
- )5 c7 q2 i2 R$ \# Y
- )! e" t6 T: A! z8 r
- ;;
4 J6 y0 R: N+ J9 E% E }- [ - ;; Modify TEXT or ATTDEF) L* A4 C! M3 Q6 f1 M7 s. h0 @
- ;;& j+ ?% B- p3 t! a
- ;; Set bit code for upside-down and backwards setting+ r7 I2 u2 C3 @3 e. r0 z
- ;;
7 t# M5 X. w3 C- q4 a - (defun code_71 ()
1 [. {$ | ]: v8 X. l4 F9 T* p - (cond ((and (= bkwd "0") (= upsd "0")) 0)) S: P$ b. Y J, C/ T' I6 k9 g
- ((and (= bkwd "1") (= upsd "0")) 2), C5 j8 p [2 V
- ((and (= bkwd "0") (= upsd "1")) 4)
3 X6 O/ V! P" i6 H) f8 g4 q - ((and (= bkwd "1") (= upsd "1")) 6) D/ d8 E% a/ q! a5 ? w; q9 ]
- ), {+ d0 H7 b) f% D. Y
- )
* \* e* ~8 ]0 s5 w U! Y - ;;0 p) r+ ]+ A; ]! B
- ;; Style action. Reset widget values to style defaults3 z" b7 W" n" q
- ;;8 W% V: I. b5 ]# Z& I9 K! c, R3 p0 N' v
- (defun style_act (index / style-list)
7 A# |5 ?0 i! ]3 T - (setq style-idx (atoi index))* ?- ~, W) j: W% A( z9 q) N2 a
- (setq tstyle (nth style-idx slist))
2 `3 k" l. O% z% U" {) j6 Z" o - (setq style-idx (itoa style-idx))5 ?+ p. Q1 Y s' O" n
- (set_tile "style" style-idx)( ?3 Z, `0 e$ r7 `/ d' b* z# H
- (setq style-list (tblsearch "style" tstyle))
! M6 M9 ]! v0 n0 f f# d - (setq shght (cdr (assoc 40 style-list))), v, m1 [4 G& v1 O8 h! C
- (if (/= shght 0)
2 q4 r6 @+ a6 W$ ~, o - (progn6 X7 M% b# ?6 J% r; D6 j
- (setq hght shght)
z$ M! t: l2 n2 E7 k( W6 S - (set_tile "hght" (ai_rtos hght))
4 I) `/ ]0 [6 J - )
3 E6 n" J- k" w4 @7 q* [; z1 { - )2 W" g( w6 e" ?: o3 R
- (setq wid (cdr (assoc 41 style-list)))
N1 z* E/ k* a, _! W& M - (set_tile "wid" (ai_rtos wid))- o! I0 a5 w4 Z+ L# W' z2 V
- (setq obl (cdr (assoc 50 style-list)))
p' V" u% |1 z8 I! r+ T - (set_tile "obl" (ai_angtos obl))
* @/ Y) u: u4 B& n6 [1 D- k' U0 t - (setq bk-up (cdr (assoc 71 style-list)))# k2 r, o0 I# T, \+ s# j3 A
- (if (= (logand bk-up 2) 2)" C% s& J* L/ h, E( {8 d( I c
- (set_tile "bkwd" (itoa (setq bkwd 1)))
$ o' G" |3 H- r4 P: v9 {* V - (set_tile "bkwd" (itoa (setq bkwd 0)))
8 M0 N. x' B5 q4 c o - )
$ X% P1 a E! H1 e0 B - (if (= (logand bk-up 4) 4)
& U3 Y3 B3 u0 D$ _; J1 y - (set_tile "upsd" (itoa (setq upsd 1))): ~+ e) e/ V. Y* n: w: i8 q
- (set_tile "upsd" (itoa (setq upsd 0)))0 i4 Q: ]. P7 p4 T, m# m
- )9 K1 I8 M( e( b% @* D ]) L
- )- `+ `- x5 A' U9 `4 y c+ a+ O/ Y
- ;;( x4 J% i& V! F' p
- ;; Justification action. Set vertical and horizontal alignment variables,
$ |# P# Z( K1 o- Z+ y4 o5 G - ;; grey out rotation and height if alignment = "aligned", grey out rotation
" T- w: b9 U! Q9 s) B - ;; if alignment = "fit".$ p* {; O3 q& o* c% B
- ;;
- a! B5 [% h; j& F- m% q5 C. | - (defun jlist_act (index / templist)5 Y! D+ W# S7 ~6 x: @
- (setq just-idx (atoi index))* E) v! \8 m$ v" [. ]) \, |
- (cond
, Z/ G, G7 t5 o& h9 l - ((= just-idx 0) (setq va 0 ha 0))
' c2 o! i; i( B3 l - ((= just-idx 1) (setq va 0 ha 1))
0 A' R$ k/ F8 f% Y" h5 Q - ((= just-idx 2) (setq va 0 ha 2))2 n( \. `9 ]" M( c" A
- ((= just-idx 3) (setq va 0 ha 3))/ @. A: n& ]) p, J0 J
- ((= just-idx 4) (setq va 0 ha 4))
; \$ f# @: K+ C2 Q2 i+ O) W- a. W" r - ((= just-idx 5) (setq va 0 ha 5))- ]- z! F5 W7 T6 k! [( O
- ((= just-idx 6) (setq va 3 ha 0))
+ Q7 n* G! t+ f& ^5 p* Y - ((= just-idx 7) (setq va 3 ha 1)) C% i* y1 e+ M9 i0 u; u
- ((= just-idx 8) (setq va 3 ha 2))
' c$ v+ x) ~' x* S, F - ((= just-idx 9) (setq va 2 ha 0))
: K. {9 {! D+ r* _9 T; F( P - ((= just-idx 10) (setq va 2 ha 1))
3 g& e9 y; Z( X- _+ A4 L - ((= just-idx 11) (setq va 2 ha 2)); W4 z; b) |1 c6 m4 q
- ((= just-idx 12) (setq va 1 ha 0))1 b+ X/ x6 N( `' k8 H4 v& t
- ((= just-idx 13) (setq va 1 ha 1))
" O, f2 ~4 o! o7 v# q - ((= just-idx 14) (setq va 1 ha 2))+ X* o) l y( S6 _! g
- )2 O8 j+ {4 a* L/ J$ h$ z/ D8 K4 [7 B( y! c
- (if (or (= ha 3) (= ha 5)) ; If Aligned or Fit text
( z: Y. O2 a0 q1 x% j - (mode_tile "rot" 1)$ o# _$ s/ L; m Y: _/ o& l
- (mode_tile "rot" 0)& e) j/ B! G) S- H+ u
- )! V' a: B6 J; {3 O% w
- (if (= ha 3) ; If Aligned text' `4 F, C0 m) }3 n: D& s- B
- (mode_tile "hght" 1)
- F5 d9 R3 A7 L; d' V5 T! [7 H) f - (mode_tile "hght" 0)) L5 j# C% ~/ C
- )
. P* T1 N+ J# G$ u5 R/ y A - (if (= ha 5) ; If Fit text
4 h8 a+ Z% p+ z( c, Z - (mode_tile "wid" 1)" S2 s& y3 H7 w) Q0 I6 b
- (mode_tile "wid" 0)
$ _4 M& T$ T- ^0 B - )! |! ?- b3 g* G# O
- ;; Reset rotation and height if changing from aligned.
5 K E3 d7 W6 B( C. m9 E - (if (and (= ha-prev 3) (/= ha 3))! ?9 Y; U! s" T) X
- (progn
0 G$ s- b) J/ ^ d* K( @ - (set_tile "rot" (ai_angtos (setq rot 0.0))): a. J6 w# u( h+ a
- (set_tile "hght" (ai_rtos (setq hght 1.0)))
. U9 W- S2 b* K+ N/ e" P) Z - )
( A; A, A, b, L }. g, B - )5 J0 @, t- S( O; F. Y1 \. |9 S& _
/ l& Q5 D h. d+ e4 e' B% l3 i- ;; Reset rotation and width if changing from fit.
% ^' U, j# M, j$ B - (if (and (= ha-prev 5) (/= ha 5))
9 O3 q% l$ R, Q! l - (progn
, q+ O: E# P# R7 h$ J3 M1 r - (set_tile "rot" (ai_angtos (setq rot 0.0)))2 G. x+ j- @1 q& K2 n) r0 e0 z
- (set_tile "wid" (ai_rtos (setq wid 1.0)))1 C. X! U+ B; m' \
- )2 O0 d1 G: ]1 E7 L3 G: p
- )
- l/ d- T R* {" r0 D
* f7 U8 _/ \. n2 A8 _- (setq ha-prev ha) ; update ha-prev for next time
2 @: J; @! Z+ }" h3 ~! E - (setq just-idx (itoa just-idx))9 x `: L W1 _4 ~% i
- )$ j5 |7 F; C3 R, e) p% `
- ;;
0 {+ o$ C9 [ }# }; I/ G: ]" O9 { - ;; Set intitial alignment setting based on vertical and horizontal alignment! B. ^# a7 K2 F" K5 U2 {. A
- ;; bit codes.
$ h' A4 v% _& v/ s. R8 v d - ;;$ k* B8 N2 h; `- P4 v. C6 e
- (defun set_just_idx ()
" p V0 h! @' a, t& S) m - (cond
) ^% h0 M0 ^" F6 M3 t# q5 Q4 B - ((= ha 0) ; Horiz alignment = Left
# D* o2 g* a5 w$ e5 E - (cond' Y0 w/ U+ }2 D7 J W3 Z: z0 M- f
- ((= va 0) (setq just-idx "0"))
3 H) S& g* ? [! @/ Z9 u) R/ P/ Q - ((= va 1) (setq just-idx "12"))
# D4 z: g1 A- ]( a6 s/ | - ((= va 2) (setq just-idx "9"))
; C/ C2 ?% i: K# j" Q9 A3 \ - ((= va 3) (setq just-idx "6"))+ q5 u/ A. P) j3 M( k4 i
- )
. H* O. E, J8 K% J: N - )
0 U3 b$ o0 t5 R% f% T, h2 @ - ((= ha 1) ; Horiz alignment = Center
2 S5 e. [8 o, ?4 x' ~ - (cond2 z0 M# G* g7 n/ E$ i' C! P% F1 g
- ((= va 0) (setq just-idx "1"))& F7 s' o3 g3 y* v- u
- ((= va 1) (setq just-idx "13"))# y4 d$ j$ h* ` a4 e$ K7 I
- ((= va 2) (setq just-idx "10"))
6 w* z& i% [. j: D1 d c5 l - ((= va 3) (setq just-idx "7")); c8 n5 j# @) u: i# k5 S
- )
! H9 u8 O$ @) v) l ` - )
- p) g4 f8 Y% t2 }: a - ((= ha 2) ; Horiz alignment = Right2 q7 M7 Y W+ p+ b
- (cond4 }- F; G) B/ B3 v5 ?1 m
- ((= va 0) (setq just-idx "2"))( J3 l* Z$ {0 W2 ?# r
- ((= va 1) (setq just-idx "14"))
" q$ B+ A4 x# {) A Z7 a. }9 f - ((= va 2) (setq just-idx "11"))5 Y9 Z3 c0 z* V
- ((= va 3) (setq just-idx "8"))0 d( A1 \0 r4 N- s( Z
- )
S$ h0 G1 P) b% j1 j7 ^1 ^6 ] - )0 }" {5 n: t* |$ I( L
- ((= ha 3) (setq just-idx "3")) ; Aligned- [* V) h3 T7 z+ G! p) z
- ((= ha 4) (setq just-idx "4")) ; Middle
9 I$ N# w: X4 k8 [1 J# C - ((= ha 5) (setq just-idx "5")) ; Fit
% P: u$ i7 @ [* o# g - (T (setq just-idx "0"))8 |& l: F. }1 J" {8 |/ s$ {
- )
) _+ x+ d5 ?7 V! H9 x$ a1 q% Y - just-idx* _& [$ D+ n8 z% x) F4 l
- )
& m/ m9 ?5 k; T0 C9 R* l1 E: s1 I& K1 C
5 o; X5 ?) p0 U/ z A% D5 h6 e ]- (defun modify_text ()2 P a5 [7 o! O% @# t
- ;; insertion point; Z% { o$ g- T$ P' J; v
- (setq showpt (list x1 y1 z1))
. |9 s) N4 e* E& E% ` - (setq bit-10 (trans showpt 1 ename))( G' j1 M6 V: P: R
- ;; alignment point
4 c- R( U+ f* `) {( A4 i, S+ i - ;; for 'Aligned' or 'Fit', alignment point must be different
# V% c- E; E6 `3 c0 \ - ;; for all others, use insertion point& @2 J0 \, h& @" L
- ;; (ACAD will recompute insertion point)
" b' j& H( {! c% p - (if (or (= ha 3) (= ha 5))) a8 R# T9 R# H& Y
- (progn
# |( o0 o, J* r - ;; if no alignment point, fabricate one* L& d9 s8 ?0 @
- (if (not alipt)
3 S& ~) @5 Q. `" z5 D8 x' ^* L, j - ;; add text width to insertion point
0 O4 _$ A! E; z. H7 z - (setq alipt2 ~8 s7 j) I7 _
- (list (+ (car showpt) (car (cadr (textbox elist))))
# n" _& v4 `2 X - (cadr showpt)
: a& }5 [3 }$ v8 R - (caddr showpt)2 }2 `) k* R5 l) L! P# b: h3 N& m
- ): E6 L; \1 {* x* b2 l7 T* ^& t3 O
- )3 ?' n! `# k7 H( R5 C0 i
- )& s' r, d9 |5 a/ }- f9 s
- (setq bit-11 (trans alipt 1 ename))( U; Q( ]2 w" K
- ): D3 O$ K0 N9 f/ [2 z6 Q$ J6 v7 F
- (setq bit-11 bit-10)
" q! @7 Y) r& d2 Z& X s/ Y' b3 L' [ - ); z; I% U5 i" u" {/ y: ]
- (modify_properties)$ `" J0 s/ y: ~) v1 K
- (tempmod tstyle 7 nil)
; [$ Y- n3 c/ T( I6 n - (tempmod bit-10 10 nil)4 Y7 e7 [9 ~! W) Y, U) n; O
- (tempmod bit-11 11 nil)% i# ]& g" \9 O: ?3 k
- (tempmod text 1 nil)
, k3 W8 o6 H& a0 S* D - (tempmod hght 40 nil)* l; N/ u7 B/ [. ?4 u6 m$ h# Q# q5 \
- (tempmod wid 41 nil)
' l/ L4 `3 `( m I/ H+ f( t - (tempmod rot 50 nil): t" B# U7 x9 N! @; c& {; M
- (tempmod obl 51 nil)5 l/ H7 ^% }) e/ j1 L
- (setq bk-up (+ (* bkwd 2) (* upsd 4)))
% J: f. b' V+ r - (tempmod bk-up 71 nil)9 Y. _& x1 d# r" P# x
- (tempmod ha 72 nil)
" I# c! g4 w7 e' i - ;; Attdefs use 74, text 733 ~9 A4 ?, z/ c. c5 Q. e. v
- (if (= etype "ATTDEF")
: c$ y4 v$ ~! S - (progn
, D4 o" ]% ^. L1 | - (tempmod attag 2 nil)
- V q* a0 H7 ^5 g - (tempmod atprompt 3 nil)
! r; u5 s1 e- q" t+ G - (setq icvp (+ inv (* 2 con) (* 4 vfy) (* 8 pre)))
0 {2 L7 L+ @4 Y/ z( P# U0 q$ X1 V - (tempmod icvp 70 nil)
4 S' | N+ C8 q" {0 x8 g. ?( V4 v - (tempmod va 74 nil)3 k1 g# T; s3 F. v
- )+ H. _$ _4 f* A1 C% {3 K8 e1 U' k
- (tempmod va 73 nil)
: O3 O6 z1 r# V2 q3 N7 m7 z- Q0 D - )
) l# {+ Y* ?) `; R0 E4 l - (entmod elist)! J3 F1 D/ j, M% F: t7 {0 Y U: H
- )0 d/ r4 b( Q" N" |' Q' j
- ( E J. L2 @4 q1 j& e
- (defun ddtext (/ 2ndpt slist i)
) |3 U& ~$ P; F# Q' q3 T g2 ^: W - (if (= etype "TEXT")
- B% c i5 S8 @) t; C4 r7 g% L7 _ - (if (not (new_dialog "ddtext" dcl_id)) (exit))
" m7 x( t7 T, C" ? - (if (not (new_dialog "ddattdef" dcl_id)) (exit))
; n2 G* _6 I- l3 w6 _+ U1 R - )
}; ]2 W( ]+ Z4 \6 k3 ` j - (set_tile_props)1 w7 _: q% f( m) D+ j) A
- (set_tile_handle)& m3 }$ b" y1 _. R. E
- (set_tile_text)
& v" s3 ]: o ] - (set_tile_tag)
$ c4 F# K' {9 k, V5 N% [ - (set_tile_prompt)
1 x& e# K( [$ ^2 k) b. m7 ], s - (set_tile_hght)
/ R1 l( v6 \/ u# h - (set_tile_wid)
& K( V4 o% i( x9 {/ ] - (set_tile_rot)
) T K2 p3 D; }' G! ^ - (set_tile_obl)' Z& \. J- W1 g
- (set_tile_bk-up)3 {& u. p5 z6 S0 M: k+ Z8 t$ [& [- |
- (set_tile_icvp)$ t, o) Z5 b7 I, n; v
- (set_tile_style)
4 K3 w' l3 J8 d* X4 P! F. n - (set_tile_just)
8 O2 e5 j$ ^, H' w# I - (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))
! @- v& P3 `# k" Q) R% ^2 o o - (if (not (assoc 11 elist))/ U9 G5 o6 S$ [1 k# h2 \) B4 X
- (progn (setq pt2 pt1)
6 C; P4 k# ]' A9 J7 {" x8 ^/ N - (setq elist (cons (cons '11 (cdr (assoc 10 elist))) elist ))
$ t* q7 {* G5 s3 B" l - ) H; G" F. a% C& v2 o& ~, C) P" t
- ;;(trans '(0.0 0.0 0.0) ename 1))" o# I Z& ]( [
- (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))0 G( X% T2 k9 F3 X
- )
, _0 X0 p5 Z: ~. I - (if (or (and (= ha 0) (= va 0))! T, I* b4 K2 n- z9 e0 L2 u- n
- (= ha 3)
4 x2 E# [: |9 d+ ? - (= ha 5)" K6 I+ D) y, B" y7 ~- a, P
- )
2 J0 r$ c3 L2 \ - (setq showpt pt1)
% C l* q5 Y1 R9 J# e0 C - (setq showpt pt2)+ n: D0 J' ]+ a
- )* t# q# w) i8 H" K# ^" [
- (if (or (= ha 3) (= ha 5))0 B0 S& n0 }3 J4 `7 _3 o' X+ x
- (setq alipt pt2)# c u1 C3 C8 C& o) W: K
- (setq alipt nil)* z! V% ~, O' V% a* K8 s
- )
- b+ T: m* U) K5 [
9 I9 P7 y/ ~0 k3 I2 i8 j- (set_tile "x1_pt" (ai_rtos (setq x1 (car showpt))))
: G5 k: Z' A1 B - (set_tile "y1_pt" (ai_rtos (setq y1 (cadr showpt))))1 S' R1 N. x# k" y2 J4 r, Z
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr showpt))))
& Y4 M. |5 U# {; S1 ^
9 Z" c2 V e b* Y e, o T3 l- ;; Define action for tiles
6 J2 v( t4 B" W$ ` - (set_action_tiles)0 o& Y8 V8 S+ E
- ;; Set focus initially to the text edit box.
% `! l# |' U' G+ f# _- J - (if (not i) (progn (mode_tile "t_string" 2)(setq i 1)))
% {% A8 G# s8 l8 { - (setq dialog-state (start_dialog))
* I4 G8 {8 f9 w7 z - (if (= dialog-state 0)
' S. ?* @7 t' s" O3 k+ r8 z - (reset)
) T' A+ P9 y* x - )- v. }* z/ h6 C: ^4 u0 t
- (if (= dialog-state 1)+ Q% ^0 a% v. P% ^# N- A4 ^
- (modify_text)
4 ]1 v' W3 ~# y8 A - )
1 j+ `' v5 f4 l2 ] w: v# X8 y; D - (if (= dialog-state 3)
/ G& z' q" D- W8 T - (progn
; y4 Y* u+ A1 E6 k8 s& x - (modify_text)+ ?# u" q% w: x- I
- (if (or (= ha 3) (= ha 5))
/ F$ f4 M. j, \+ p7 t - (progn
# K: ?# C( ?5 M4 A2 m( l - (setq showpt (getpoint (list x1 y1 z1) "\nFirst point: "))9 a3 O) e4 X# O2 [
- (if (not showpt)" U8 x# j3 D- h: R* f
- (setq showpt (list x1 y1 z1))
: G5 R" G7 U. [& ] - )+ @8 L2 X, Q i
- (setq 2ndpt (getpoint showpt "\nSecond point: "))9 H4 e8 K: r. S0 T; {3 q8 c5 p
- (if 2ndpt& [# _. w' l `) o& M, V6 t# }! ^
- (progn5 p* f/ h, Q: c8 n8 o! d9 K
- (setq alipt 2ndpt)
- v0 N* w: {/ A2 n; P5 X - (tempmod showpt 10 1)
5 c2 s. q' d' h y; {. u: | - (tempmod alipt 11 1)
; Z! I4 k) D9 c% a% A* I( N$ T - (entmod elist)3 ~+ k0 f/ O, n1 b! U% E7 m; P
- ), ^( j, E- C0 e- B$ K9 l
- )# u) v) I* E' |
- (setq elist (entget ename))
( @3 A$ o, Z+ H* U- f7 a8 S+ W - )! }5 C& ~) ]( q F: O" q9 L" h
- (progn6 S8 K, k& E# I+ p1 }, \& a8 ]
- (setq showpt (getpoint (list x1 y1 z1) "\nInsertion point: "))2 x0 U {8 ?7 h
- (if showpt
: N9 p) o* q; Z1 L - (progn7 i1 ` ~0 S c$ l* Z
- (if (and (= ha 0) (= va 0))
( Z s! E. ~3 E$ I( q/ M: \ - (tempmod showpt 10 1)
9 U2 E# Z( K, a; h, V6 Z7 t - (tempmod showpt 11 1)& k. S$ N- N$ P$ x- g X
- )* e1 P! W" ~. k6 _7 c3 M
- (entmod elist)7 H- V1 v" m2 F# W1 H9 u# z
- )
( d9 r7 C9 s+ _$ [% f( U9 H - (setq showpt (list x1 y1 z1))) r" i4 |1 I" j& O; F. x; H0 K4 a
- )
. t" U4 O: K/ I) u9 { - )
# }) | j& X9 u) P- y' ^- e - )
! c# b8 Z, h5 H% W6 x5 }4 D - (ddtext)
7 C* h% ~& H: g3 g0 b! h# H - )
- Q; b0 n4 r( y( C7 y( J - )( y6 O( Q7 g) ]" g; \7 ]3 E, q3 L
- )
2 R+ h4 U2 z b- w7 ~" Z
" l1 f) B8 v- ~5 \5 O! i' C- \- ;;
* D' ~0 l* E7 E6 C! Y - ;; Modify MTEXT: Q& F4 q4 \9 Z3 M* W( E
- ;;6 S& A$ r# W3 p4 R5 E- ]
- (defun modify_mtext ()/ G/ s0 F, b; n! l8 l. P1 O
- (modify_properties)0 |0 W* C! w0 O. o# x4 ]% f5 p
- (setq pt1 (list x1 y1 z1))# q+ x8 _: C, c j7 {+ v: }) c; }
- (tempmod pt1 10 0)& g8 p1 ^- [ t% l- r
- (tempmod text 1 nil)
9 Y$ w1 Y h( X; _* B1 [( {. R - (tempmod tstyle 7 nil)0 h' [- a% ]8 `3 ~! H2 z, N% g( Q
- (tempmod just-idx 71 nil)' m, Y6 t0 Q% d4 P0 u: A4 J$ p
- (cond
8 X# g. }' }6 O1 z5 N9 h+ e - ((= dir-idx 0) (setq dir-idx 1))
. X' p/ y3 ?" A - ((= dir-idx 1) (setq dir-idx 3))
0 X0 w% u8 L4 ~* ?" [ - ((= dir-idx 2) (setq dir-idx 5))5 n& ^* f; h' y# o0 p) Y
- (T (setq dir-idx 1))
: r: b G! j" I1 x, s c - )
+ L2 Q6 M0 A0 C0 x" T - (tempmod dir-idx 72 nil). b5 U8 c! D7 ?8 C- J# a
- (tempmod hght 40 nil)# s- N4 s0 K) j: ^
- (tempmod wid 41 nil)' X8 Z: n- j. V1 l: m: l% ?( H, L
- (tempmod rot 50 nil)
: v$ z2 i% ]: i - (entmod elist)
9 Q+ J. P) m: y' u - )
4 p7 U3 n# x9 u5 P6 V9 F5 T: Y7 ~ - , y- _; `# f+ J6 ?( Q$ N
- ;; Set MText text style
0 \8 |- h7 R3 f6 @2 J1 o D4 F) p - (defun MText_style (index / style-list)* {" B% F" T7 w6 J
- (setq style-idx (atoi index))5 `, y( i: D. t5 @7 D+ P/ X
- (setq tstyle (nth style-idx slist))
% ^' T! B9 y# | - (setq style-idx (itoa style-idx))- j4 } ]) ?0 E- O: S
- (set_tile "style" style-idx)2 R5 [% L. f' r5 q
- (setq style-list (tblsearch "style" tstyle))
% d0 @! a7 p; O2 o2 s- p6 }/ V& z - (setq shght (cdr (assoc 40 style-list)))
3 s. w9 }6 I5 r- r0 j6 m! ~ - (if (/= shght 0)5 F2 Y1 k; ]5 K2 K* K
- (progn
! X+ y, ~; j }5 t+ l8 I5 ~ - (setq hght shght)
9 _2 o6 |) R' ` - (set_tile "hght" (ai_rtos hght))
+ X& q2 l2 E6 C; L8 O- b5 s6 F o# Z - )
# ~. {5 f6 I; f - )
3 h& E4 D* l, B( u/ V+ d, s - ). D4 i' m. i" X. m; G% P
- ) @( x& k, I- J" r; r9 s- i/ E
- ;; Run DDEDIT on given entity, working around possible re-entrancy1 H3 j M- \9 \8 h- u# o
- ;; problems with MTEXTED
0 [& x# F& Z- g! k% h) h2 M$ U - (defun safe_ddedit (ename / orgMTextEd work)* p* P: ^& O6 j- Y
- (setq orgMTextEd (getvar "MTEXTED"))
+ {3 F. \3 f6 i4 W* u - (setq work orgMTextEd)( r' N! O# g1 v1 m: ^
- (if (= ":" (substr work 1 1))5 K+ M# k1 O/ R$ h
- (progn
6 d3 C9 u8 |# L5 Q1 a! n" L - (while (and (< 0 (strlen work)) (/= "#" (substr work 1 1)))
4 [7 o& G( `* c- s( M' k2 X, ] - (setq work (substr work 2))$ ^0 ? W) U- w+ b* m- U
- )# R& h% \# r- h
- (if (= "#" (substr work 1 1))4 B* ]+ s9 g: u4 m
- (setq work (substr work 2))4 M n) g3 Z6 C
- )) y, l) O: j+ }3 O: J7 x! _7 Z& ?! k
- (setvar "MTEXTED" work)
" |9 w, J7 r0 z, d4 z - )
% C/ Q- ~2 d, `" B1 q& k - )$ f& e) I/ j8 B) G: c7 S
- (verify_arxapp_loaded "acmted.arx") ;; make sure it's loaded...
$ V: ?& f g$ F0 M0 Q# Y1 z+ C4 I - (command "_DDEDIT" ename "")
) V1 O' m6 g3 @! P& M# J6 \ - (setvar "MTEXTED" orgMTextEd)4 V: y. f8 M) ?% E" m7 T; h
- )
& x2 P7 P! U* q m$ B4 t J
; h4 H- y# ~: o% ^8 l- ;; Verify MText object width$ o) ^: }9 m; C' K
- (defun ver_MtextWidth (value)6 ^$ O' ? P4 K) }+ G8 O
- (setq value (distof value))$ C, z* e/ Z0 z, b" K! V `/ c- G
- (set_tile "MTextWidth" (ai_rtos value))) ^' I( ?" i. i9 S
- (set_tile "error" "")6 ]2 A6 f$ X+ L6 B/ L9 n9 \: k
- (if (< value 0.0): a4 e9 M N# z0 B" A7 ~
- (set_tile "error" "Value must be zero or positive.")+ u- z; s7 h* o6 }. Z- @
- (setq wid value)) i# o) h) h" N$ f
- )
5 i6 d* s0 C+ A/ h$ ? - )) W& M$ Z/ r0 k
+ K4 l; H3 y( y/ y' y" g: g, i- (defun ddmtext ( / gc3)
( X/ Y% `1 w( Q) \" z- ^ - ;; Get dialog
% g* u8 s3 A$ J O( q - (if (not (new_dialog "ddmtext" dcl_id)) (exit))7 X5 l, a: j6 M) w; H
8 N& f. i* R( e9 z$ [% N- ;; Load list boxes
- E0 u$ x0 @! { - (start_list "MTextJustify"). q3 k9 e1 N5 ~0 B7 r. o: J
- (mapcar 'add_list '(
# a* W! |5 Z" n - "Top Left"
9 J- u0 O- O" u( O! Z( f3 B9 ] - "Top Center"" i% w0 X4 E0 v
- "Top Right"
+ {" j, @8 x( l6 @( a: V, O% |+ n - "Middle Left" A6 Y/ S& }% P* ~% [( d
- "Middle Center"
$ k8 z( v2 [. h7 v% J4 L - "Middle Right"
! q( K" `& p3 F {8 r, |" N - "Bottom Left"
) J3 Q6 R( t$ K/ L1 t3 ? - "Bottom Center"% _" X4 h7 {3 V% w" E
- "Bottom Right". o1 i+ D' `4 q
- )9 n2 ]- C3 v- ]! ^* N0 i1 V
- ). c/ z. g7 z) r- w* S
- (end_list)+ T; H% Y9 c' C7 ?
) k; K* m# a1 @% Y+ _- (start_list "MTextDirection")
& r. M% b4 [& u* a( O# ` - (mapcar 'add_list '(; l4 r2 n- N9 j2 Q* m; ] f5 D
- "Horizontal"/ ]& Y y/ v) c0 e) U+ Z$ N$ y) r
- "Vertical"7 }) m! X/ y/ e4 w
- "By Style"
. A# c$ p1 j+ O* J- m - )
* g9 T# a: ^" u+ [: V' T0 D* O - )
7 L- [: J9 d m; y: M+ |4 N - (end_list)) l# L, d9 A6 _1 E( b1 B, ?% l& f! W
- 6 O5 V8 W7 D0 N4 Y7 b) W% x& N( s
- ;; Set initial tile values. I) M& r, Z" j7 _3 U2 R- j
- (set_tile_props)# K6 R: y6 V) o& i- M
- (set_tile_handle)
: `2 b' E C9 r6 o; M" G6 E6 E - (set_tile_pt1 0)+ A2 e, P5 y$ I3 u- U w# k# l- U" b
- (set_tile_style)/ c2 \8 Y3 u, O" Y( s3 U% d
- (setq just-idx (cdr (assoc 71 elist)))
9 K7 w- ~6 d1 ` - (set_tile "MTextJustify" (itoa (1- just-idx)))
- }& G) b1 D2 p7 g0 \6 s - (setq dir-idx (cdr (assoc 72 elist)))( {6 k e3 p9 a6 u# d
- (cond
# w" a# o y: J; {( t6 x - ((= dir-idx 1) (setq dir-idx 0))6 Z8 ?5 P& |/ v* r: W
- ((= dir-idx 2) (setq dir-idx 0))" T. p! K, Q' H3 u! }8 Z
- ((= dir-idx 3) (setq dir-idx 1))
9 n; o9 n9 U" j - ((= dir-idx 4) (setq dir-idx 1))8 I) d0 q- e. ^% t8 E. C; y
- ((= dir-idx 5) (setq dir-idx 2))+ V% D' S2 K K* U
- (T (setq dir-idx 0))
- t4 G, x9 p5 R) Z- v2 ?1 H, L - )1 A1 U" P4 T2 V8 e4 X# J j1 A
- (set_tile "MTextDirection" (itoa dir-idx))
6 h6 R' ?# G9 z- ]% W - (set_tile "MTextWidth" (ai_rtos (setq wid (cdr (assoc 41 elist))))). P6 z" @( y) l, \# {# w# Q
- (set_tile_hght)1 C& O+ D, q, W9 t/ [8 z2 C
- (set_tile_rot)
5 O7 f, J4 f" Q A% E+ ^' _7 K/ d$ s- X - , S+ k- n% o7 ?( Q) ^: U6 O9 t
- ;; Set edit box, disable if too long9 c. u+ O a* Q6 k( h7 s' d9 P
- (setq gc3 (cdr (assoc 3 elist))
/ W w) {4 k* }" H8 a1 u: l - text (cdr (assoc 1 elist)))+ ^2 m; `, k; h/ H; r0 P8 `; z7 S! u
- (if gc3. E# C1 P9 Q k3 e) |# N' A# M
- (progn ;; Text is over 250 chars, disable edit tile
6 y r) D2 F7 K - (set_tile "t_string" (strcat (substr gc3 1 25) " ...")); ~, a! C% s; E" v) d
- (mode_tile "t_string" 1)4 g& V. `* Y9 o% I) N: R( s# F' E
- )
: B; L8 D% T n8 f7 {! p, M - (if (> (strlen text) 80)
0 G% [8 V( |: D - (progn ;; Still too big
$ `9 b b1 m& g/ s' J! G8 k' f; m* D - (set_tile "t_string" (strcat (substr text 1 25) " ..."))
5 i3 F) {: u% S. A$ J7 \7 h - (mode_tile "t_string" 1)) {* L- J. I/ H
- ) G5 ~0 z8 A4 ?2 K5 q
- (set_tile "t_string" text) V- j& X* y3 G$ F1 h5 C' U
- )! `) e: ]7 g. c& z
- )
) X1 I. M! |9 f/ n' ? F9 U
8 w1 e( w; Q0 W, @" l- ;; Define action for tiles
2 n B. U$ P5 r* }2 G - (set_action_tiles)/ T1 V+ l& o! g) R! T; U2 Y
- (action_tile "style" "(MText_style $value)"). |1 c) v5 G& J" B* }# b" v. _: Q1 M7 [4 [
- (action_tile "MTextWidth" "(ver_MtextWidth $value)")5 R, t" X, z9 @6 C7 W
- (action_tile "MTextEdit" "(done_dialog 4)")/ h/ |& s, d5 B! {7 t0 L
- (action_tile "MTextJustify" "(setq just-idx (1+ (atoi $value)))")2 |9 \% y% l6 [, k( F W
- (action_tile "MTextDirection" "(setq dir-idx (atoi $value))")
! \3 q" k# v1 n/ m" d T - 5 a5 c9 \. ]3 q
- ;; Set initial focus to text edit box.
. _+ u* z8 n# p y' Q - (mode_tile "t_string" 2)
, u9 q2 O3 O4 `' Z; B
. ]5 N' l! c" V/ g- ;; Run the dialog6 c/ x1 l4 w$ E: W, M0 G9 R
- (setq dialog-state (start_dialog))+ a" _$ N0 q6 K1 b. C+ ]
- (cond
: [3 s5 m6 x ~" [! `! B - ;; Cancelled - restore saved data
- d/ A' g4 o3 J& x! i" k - ((= dialog-state 0) (reset))
# H% d8 S7 [8 c9 E5 a( d0 h - ;; OK - save new data
5 Y* M# \8 ]8 i s - ((= dialog-state 1) (modify_mtext)). E- @) Z& X5 I: E
- ;; Pick new insertion point
/ P* s8 ~0 G7 y! o0 w - ((= dialog-state 3)( [& a, V5 v. H
- (modify_mtext)) @& j# g( D. \5 e. Q
- (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))# Y0 A, K( i! g1 N6 U
- (ver_pt1 0)
) ?9 ~* t( h. S r X - (ddmtext)
; ]3 J3 F2 b/ A* O4 V( o, a" b - )
; c! D. P9 l+ E+ @, W; w - ;; Run full editor
7 o' I1 d: E3 ^8 }" D! X - ((= dialog-state 4)
1 d- l/ {% Q8 m5 O0 E - (modify_mtext)7 k4 n- M5 o2 ]4 C# ?5 ~
- (safe_ddedit ename)& a' `' a4 m# ^! ?: Y. v
- (setq elist (entget ename))
& a9 e' ?7 G. t: A+ [3 Q - (ddmtext)- K+ q3 ~* }0 x* e6 ^( i
- )
* y) v& D: K7 X" C9 Q - (T nil)
6 h# O, O- H! {/ f* c: v: I - )
6 ~6 S6 d# i! g6 `: g2 S4 N- Y7 H - )' Q$ g- ?! y! j0 D0 d
- / |, g& d6 [0 r8 N6 E' d/ ?
- ;;* C; T' c1 R: M# C6 }! I9 |
- ;; Modify VIEWPORT
( D+ c) |- U9 Z. q0 n# s - ;;
3 ]& p# T; W5 B4 j. U4 h9 [ - ! o0 @/ y! w4 h$ V) D; \" {/ J+ \
- (defun ddvport ()+ p' r, y, \/ ^) l) |& H9 A! L
- (if (not (new_dialog "ddvport" dcl_id)) (exit))
5 A9 R/ |" y7 t) i - (set_tile_props)* R' I- e" ~: e. p3 n& c; H6 @
- (set_tile_handle)! g/ H1 @' _- ^3 c, |" M
- (setq vpt (cdr (assoc 10 elist)))& L( V7 K$ X9 r: H1 ]5 H3 L9 q9 y
- (set_tile "xtext" (rtos (setq x1 (car vpt))))9 {0 [4 q; {/ R' X
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
: @+ H# O7 Y+ e% l- p/ @ - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
$ r+ s) D5 h* t/ e4 J: c' o - (setq wid (cdr (assoc 40 elist)))
1 p: E! K; n4 }, z - (set_tile "wid" (rtos wid))2 X1 ]8 e6 \- p/ ^/ Y% F
- (setq hght (cdr (assoc 41 elist)))
5 Y$ J6 j* S/ i# g F& I - (set_tile "hght" (rtos hght)); \& j2 H, X, z9 ^# e
- (setq vpid (cdr (assoc 69 elist))); n$ v1 h: D; [
- (set_tile "vpid" (itoa vpid))1 O& U, y# y0 N8 n3 U3 [$ Z
- (setq on-off (cdr (assoc 68 elist)))
3 y' x& m& Y$ Q - (cond9 N& h6 ^0 d1 t
- ((= on-off 0) (set_tile "on-off" "OFF"))1 ]( S1 G3 ~( f9 F9 V! t" D
- ((> on-off 0) (set_tile "on-off" "ON and Active"))
_9 ?4 m9 \2 A - (T (set_tile "on-off" "ON and Inactive"))
, M% L. h7 w/ z - )
8 }+ S7 J- y/ C4 ~
" {% D' A2 U, \- l e0 F+ o- ;; Define action for tiles: Y' n1 D3 e- W
- (set_action_tiles)) w; a6 s6 y# n& i+ w
; J/ j& \' g# C( W4 |- (setq dialog-state (start_dialog))
% ^. H |8 t( Z+ F) M* @( B - (if (= dialog-state 0) h( U; S8 t6 O. ` K3 ]( I- M
- (reset)
! F ?4 `/ E. N7 ]& g9 K- @ - )
% B9 \* N- w# h& p+ W1 n8 J' H3 G - (if (= dialog-state 1)
7 @. g3 g$ [+ t& _$ k6 q I - (progn. I2 M* B J2 E3 q
- (if (= ecolor 0) (setq ecolor "BYBLOCK"))' a+ U3 d1 `' \0 j) X; n! l
- (if (= ecolor 256) (setq ecolor "BYLAYER"))" {8 m" p% d* ^0 I Z
- (command "_.chprop" ename ""( e( E9 {1 x3 A n. v) K- Y
- "_la" elayer8 b" p4 `. S0 C* {' N
- "_c" ecolor ""
1 F2 |+ ]7 J8 l6 ^ q- B+ x - )( Z& l% _! y) M9 j
- )
6 ~9 X5 j$ z9 s - )
4 u9 n" s3 u3 ^ - )0 V3 Z$ ?7 m5 m
- ;;
7 l0 B) X4 Y5 Q - ;; Modify POLYLINE o8 u% G% |' G' G# Y& ^
- ;;( e) [' O% \, z) E/ j( J/ J) P
- (defun modify_polyline ()
- t2 [) d( J8 G - (modify_properties)+ x' u# e: C( V/ |( H
- (if (= ltgen "1")
. x. ?, I6 N- e7 v+ w" X - (if (/= (logand bit70 128) 128)
4 w2 Q! H7 ]0 r* y - (setq bit70 (+ bit70 128))
4 J3 E( z! ?) i7 x; |5 Y - )2 f0 J% B+ g3 a- {+ f$ q, X% X
- )8 f/ K$ u T, i+ J! X
- (if (= ltgen "0")4 S! ]8 u7 }! r v9 m& J
- (if (= (logand bit70 128) 128)
+ n8 n ?8 r0 |1 ]$ u - (setq bit70 (- bit70 128))5 {3 h: o1 \( V3 _- w; H# h
- )' l G& x) m/ a$ s! E; o8 W
- )
4 C4 u( f' s6 ]3 \# o, V - (setq elist (subst (cons 70 bit70) (assoc 70 elist) elist))
1 Q5 s6 K. N2 R8 d- p, T/ P; P - (entmod elist)! y" W) |3 N" X, [# y3 P& w
- ;; Added to take care of updating Vertex information for color9 F, _6 h: Q# k; J+ ?# |5 Z
- ;; and linetype.
# {8 {+ ^& @% a: O$ e3 p- k - (setq save-ename ename save-elist elist): r4 [$ z* w5 x5 @4 b0 W
- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
2 r- F! Y$ H; M - (progn( V! d1 ^; ` l% Y% z' k
- (emod ecolor 62)
: Y: [* A O% G# {7 g4 |* ? - (emod eltype 6) [5 k: W2 q: j8 R
- (emod eltscale 48) [* u; j9 `9 [3 Q# ~, B! P# j
- (entmod elist)/ p. o* V2 p) V" G0 p1 s! J3 D
- )+ N, @- S# P( ^$ Y: k$ `. i% w/ m2 ~
- (progn
0 v9 O5 b% G1 F: G - (setq ename (entnext save-ename))
& d. C1 z0 L0 v! w. } - (setq elist (entget ename))
y' Y0 |" ]) r9 ?1 t1 j5 o
: i, m* v# a/ i: N2 }/ f0 l- (while (not (= (cdr (assoc 0 elist)) "SEQEND"))
4 E1 @" n1 N9 c/ i8 x1 O- c - (emod ecolor 62)
\$ W& A4 E m5 m - (emod eltype 6)
6 W* p5 z% {3 k1 N7 Y# R4 q$ b2 T7 F - (emod eltscale 48). a: z' G) P- W
- (entmod elist)
R1 T) g' Q1 n4 w. o - (setq ename (entnext ename))" P% {% R& m8 G) h
- (setq elist (entget ename))
$ y* P, s. \6 h( u: H - )
' ?) u, N# O0 a& t1 L @+ Q - )# \# v3 x- ], [9 f) D6 A
- )
! ^) O& _: y, Z6 i" A1 r - ;; Update the SEQEND" |; {! Q. k+ M/ y( y
- (if (= (cdr (assoc 0 elist)) "SEQEND")
$ d# E. h' q; U; H4 @1 f6 X% i% M - (progn* U: w2 L) ^; j* k
- (emod ecolor 62)2 |" ]* ]& T+ R4 c' y3 c5 S7 _) H
- (emod eltype 6): u$ U" e. t6 L9 E- a8 `, X
- (emod eltscale 48)
: c# v9 c$ }) G8 K v0 } - (entmod elist)
) W8 `1 V( h, v" u/ s& L - )
/ W' O* x! S2 W3 z0 t- A - )
4 K, a2 B6 c0 g/ W: i4 W2 j% k - ;; Go back to header.
! g9 q( W X$ U$ y$ Y' j" E; p - (setq ename save-ename elist save-elist), l8 q( n9 F& L
# J, |- K% z( T% ~4 i+ J( u- (entupd ename)
! L" K' ]" L% y, J7 Q+ ^ - )
" \. z$ q1 ]+ c$ l) P" A& G
0 f* X! C4 T$ h2 u- ;; Increment vertex. Set tile values to next vertex" \! R& i7 P% ^7 U4 k
- ;;1 S7 \2 D# o# N: [& y
- (defun next_vertex ()4 c. j5 D4 V3 y5 I8 G
- (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")/ t* D0 |, {7 O+ q
- (progn
0 L: D% ^8 c* k( e* n! E - ;; If the counter reaches the number of vertices,5 i% Z R2 G4 _! M) k
- ;; roll it over to zero again.
) R* K1 i1 l& O5 u$ i/ x. t3 `. k" [ - (if (= ctr (cdr (assoc 90 vlist)))
C7 ?# s/ p! {2 o6 N/ o3 H# Q - (setq ctr 0)
5 y" b) E/ L- X0 }3 f - )
% e1 H' S* i \# {) p - (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))0 c* u! F: E" P6 @# v: `* `
- (set_tile_vpt pointype): X! w, V, {. E" _& K
- )
1 S) y5 ~8 f3 F; e3 S - (progn- H \ U: S7 p- X+ i O4 L& b
- (setq vname (entnext vname))
1 l) Y( R6 F7 ?" D- d2 K( y - (setq vlist (entget vname))1 v9 X, s$ _5 y- I: C% N
- (if (= (cdr (assoc 0 vlist)) "VERTEX")
/ P- `2 d p3 R - (progn! y2 M7 u( I3 p( R6 }* }9 W! x7 C
- (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))
# H9 I! B" s6 h0 d6 [2 h; g% N - (set_tile_vpt pointype)
# I4 m T" D# r! U7 x2 N - )5 o0 U4 s9 M q
- (progn5 a" }9 ?, g2 z8 X% Q
- (setq vname (entnext ename))
) \& v9 b. l/ x' U - (setq vlist (entget vname))
$ Y/ ^- k: f( n) v' {( w - (set_tile_vpt pointype)7 U- o, ^( r; B6 O" z4 x" U
- (set_tile "ctr" (itoa (setq ctr 1)))
( ` J7 u4 w9 A1 }6 ` - )# S7 N3 Y& X; K! B9 b
- )' S! [0 W2 g5 R) t6 }7 m
- )
) R- i+ e5 X% C3 X ~ - )
3 R ?, [& \+ h2 k- q. ? - )
+ Z3 b4 l" q f" X+ H G( @+ u/ y - 3 ], C3 f2 e+ \) T
- (defun ddpline (/ oldecho)& @+ F( w( f" P
- (if (not (new_dialog "ddpline" dcl_id)) (exit))
" ^2 _% C' ]% B. e( ]1 v3 X - (set_tile_props)
4 }1 T8 j* c5 L - (set_tile_handle)3 x/ c+ M4 e9 |6 u3 C3 f$ z1 X
- (setq bit70 (cdr (assoc 70 elist)))
0 \: v# q; U1 V$ q - (setq bit75 (cdr (assoc 75 elist)))# V) N( D5 O% t" q& Z# @
- (cond% M3 Z$ x# V3 q2 f9 r6 r" I3 z" C
- ((= (logand bit70 8) 8) ; 3DPOLY( b& E i; b% [. X ?4 Q. h
- (set_tile "ptype" (setq pltype "3D polyline"))
% C' H% z: E& `6 C* ]- \8 M! T - (setq pointype 0) ; WCS or ECS point values5 Y2 z: Y- e- u& X# C' ]9 X' U
- (mode_tile "fit" 1)2 S0 \ F2 Y" L6 R! t3 Y1 N
- (mode_tile "mesh" 1)
: [( e! i/ p8 B+ Z g# G: E - (mode_tile "bezier" 1)+ \+ @2 @7 g3 Q$ F: E1 ]
- (mode_tile "ltgen" 1)
- |& T: v9 f0 F% w3 s* g - (set_tile "none" "1")' x' K( `: E6 ?1 O9 o; F
- (set_tile_closed)
4 ~( U+ _0 P0 E% `3 ? - (set_tile_fitsmooth)
/ z4 b. E" E6 ]; s+ O: \ - )& `' b! X5 y" U/ r1 u' m4 C
- ((= (logand bit70 16) 16) ; 3DMESH3 }" G7 B! c) W. A: W
- (set_tile "ptype" (setq pltype "3D mesh"))/ R) h( o0 N e" z3 M
- (setq pointype 0)
& c' J0 F' g; L9 K S& i - (mode_tile "pline" 1)
+ m0 K' C; }* Z$ }: ^/ v" h1 a- r - (mode_tile "fit" 1)
9 _- t- f h* m0 S$ D( t; q - (mode_tile "ltgen" 1)
/ l1 z, W( |1 W5 }! Q# W - (setq m (1- (cdr (assoc 71 elist))))
o+ r- R. ~# {+ N7 X: i( S( Z) k7 v7 M( X - (setq n (1-(cdr (assoc 72 elist))))% |% a" F/ z1 P' E* E# K4 C
- (setq u (1- (cdr (assoc 73 elist))))) K2 c+ E- G; w4 [/ `
- (if (< u 0) (setq u 0))
! b( L; H+ \; i& {$ [8 Q2 m. c - (setq v (1- (cdr (assoc 74 elist))))# @/ F, C& x5 B- ^
- (if (< v 0) (setq v 0))
6 s) q4 X9 G% W6 l - (set_tile "m" (itoa m))9 z5 W5 \3 C/ x1 B
- (set_tile "n" (itoa n))
( L' H: i. O5 `, x6 m: H - (set_tile "u" (itoa u)), i* h* m6 Z% i9 r. v; t6 ~: h. M
- (set_tile "v" (itoa v))6 B% ^% Z! v7 |2 I" }4 C$ c G- q+ u
- (set_tile_closed); b( Q. ^4 n3 n3 y, \& o( F/ W
- (set_tile_fitsmooth)
- S0 ~3 }% ^2 b$ Y- Z+ F5 { - )* w M3 z8 d, F$ i h( h, c3 w7 e( G$ _! K
- ((= (logand bit70 64) 64) ; POLYFACE MESH J. S9 i6 y* e! @4 {) b6 W
- (set_tile "ptype" (setq pltype "Polyface mesh"))- u0 A/ Q0 r: n M& X
- (setq pointype 0), {" m0 {' t& {: d; @
- (mode_tile "f-s" 1)" A* C0 R0 l) P, ]4 g' E4 K
- (mode_tile "mesh" 1)
' f- u- s* @5 d8 O: [ - (mode_tile "pline" 1)
0 w3 S5 @, f9 L9 A8 ^3 C5 a - )
- ?! ]) g7 a9 s) a7 G - (T ; 2D POLYLINE
# v; @2 M' i. U2 Z8 q- T - (set_tile "ptype" (setq pltype "2D polyline"))7 }; A- ]' a+ T2 f& Z# J; ]
- (setq pointype 1)
5 H: ^+ |' u/ b& U8 T* @9 y - (mode_tile "bezier" 1)3 o2 t1 v* v( l M) J' N9 q
- (mode_tile "mesh" 1)+ w: W( Y4 I' |7 A
- (if (= (logand bit70 128) 128)
% y9 B3 I6 z9 f8 [" s- P6 A# ^ - (set_tile "ltgen" (setq ltgen "1"))
# p3 P* _- O5 a5 x - )2 g( [5 a5 {; u' i, I$ u* |
- (set_tile_closed)* ^+ g( x: P |# r; p
- (set_tile_fitsmooth) L+ q4 C9 }3 m5 e. n# l3 `) _! M
- )
2 V0 N( {5 s, n$ F3 G- I# T! d6 ` - )
3 R. E5 C7 e6 m! q" X
4 b L# @* K7 C, V9 R- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
2 h1 R, W% E6 m( A3 r - (progn* R5 G* F8 Z0 x5 Z. F
- (if (not next) (setq vname ename))
1 B# ^# @% p9 U- y) G - (setq next T)
- B3 M/ N- |. M0 R* A - (set_tile "ctr" (itoa (setq ctr 1)))
! f) _$ q' n& E# v; K6 _ - (setq vlist (entget ename))
) x! a0 e0 m! M* C: o' c$ @ - )" ~2 U" A* i( s/ v
- (progn
4 H" P/ ^' p5 w8 g* S# c8 l/ [ - (if (not next) (setq vname (entnext ename)))6 x& W3 b+ Y, y6 K5 u
- (setq next T)
3 t Z+ Y% n+ c1 V- b7 p1 V - (set_tile "ctr" (itoa (setq ctr 1)))& a4 U* v+ ^) {4 m% N* p. K
- (setq vlist (entget vname))
# A% [! Q4 g( _( f* W - )
0 x1 g9 e/ |2 ^; S. f% J, f8 s - ): |" o( e* y7 c0 Y
- (set_tile_vpt pointype)% M; f' F) T) H4 i( u+ W
- ;; Define action for tiles P8 W2 w! I: ^: ^: a
- (set_action_tiles)
) d. |, W; d5 [5 S; B' d( b - (setq dialog-state (start_dialog))
1 m$ k5 J5 |& g: M7 @ - * {$ V# X" l* y1 O6 o; N' B' U
- (if (= dialog-state 0)1 T% I# B, S3 R" G0 `; h0 j
- (reset)
+ H; Y4 G" z/ v3 J9 r8 |/ l; J - )
' B( _$ b3 _* l4 r9 H5 V9 N( g: k% U7 u - (if (= dialog-state 1)
" ?- r" @+ g7 [! U* H - (progn0 w3 ~- s# C" V4 j1 W/ l
- (modify_polyline)
+ O- ~9 ]* U* L! `) G - (if (or (= pltype "2D polyline")
, A1 x, L7 k& a$ Z! c2 I t2 } f - (= pltype "3D polyline")4 t6 l- m. l; y( o' ~( M
- )
* Z- J* M$ s9 F) ~/ I+ g# ^ - (progn8 D$ x4 G2 @/ ]2 u, {
- (command "_.pedit" ename)2 b: X9 i6 L T! D: X6 [" o
- (if (= spltype 0) (command "_d"))' u/ V/ J& ^5 U! s
- (if (= spltype 1) (command "_f"))
# w9 f |7 H7 G: z; z) V- v, z7 ?" o& c - (if (or (= spltype 5)
$ ^7 R: U" _# D - (= spltype 6)
7 ]) \1 r) d/ @) P' x2 X - )6 e: `& T# H+ k% w B
- (progn, g) {" E; H; w8 ^( Q* f
- (setvar "splinetype" spltype)
. [( K) E1 \) a% F9 m- O - (command "_s") O/ ^+ B, c" }5 X. @3 _
- )
6 f7 O4 [% p% g - )
9 j2 v5 c; \- \. S2 ]5 X - (if (= closed "0")! m. Y/ D8 Z' u) k* |9 `
- (command "_o")( q6 p: t# T' y/ F$ T, Y* J2 p7 E
- (command "_c")
; g/ m0 j) L8 T - )
3 B$ y% M: J6 G( b - (command "")
& h+ Q+ q8 a; c; L* Q% {% E% j
2 `6 ~; Z& R: k8 J- (if (= spltype 0)2 c: Y# J$ D" K- f! Y! y' ^1 \
- (progn
: g$ w z& u4 u9 V" Z. N - (setq oldecho (getvar "cmdecho"))+ g$ m7 a3 O( d2 Z
- (command "_cmdecho" 0)+ u, ?7 J1 R4 M; {
- (command "_convertpoly" "_light" ename "")/ s- }# o$ J9 h( f( q: ?/ g
- (command "_cmdecho" oldecho)- @% O4 I+ i! R9 l) r% W
- )
' C& d- \3 z2 P) h2 x" H ~ - )" n) B* H$ B0 I5 j
- )9 w2 g: i$ v V' w7 h" w, k& w) H- G
- )- w/ Z6 ?( j5 e6 d. L3 H/ g
- (if (= pltype "3D mesh")
' S* o$ S1 F0 j- F4 D - (progn4 l1 [4 V$ n8 r1 ~+ w3 Y! Y
- (command "_.pedit" ename)6 v2 u8 j& {+ q; g, q; i
- (if (= spltype 0) (command "_d"))0 {' T7 n3 |2 u m+ Y y
- (if (or (= spltype 5)0 m! Q/ G/ W# c5 Q7 s+ C) p1 F
- (= spltype 6); c) h3 |" ]/ l" J3 y" c# w, u
- (= spltype 8)
) q' C; }( ^. h1 N/ t( T0 s) b" d - )2 R$ j" J7 S% y! Z
- (progn
* W/ B' }& v- q: k7 }: H% x! t - (setvar "surftype" spltype)2 @: P9 d8 a4 @9 J9 S6 n
- (setvar "surfu" u)
' @+ B- a |6 c% @+ ~/ H - (setvar "surfv" v)6 q: [7 Y7 p" G: m7 e/ w5 i$ x
- (command "_s")1 Y8 L* J% E2 T
- )1 r1 k1 r7 O4 g. i
- )
9 Y5 j" \- T# I - (if (/= closedm old-closedm)8 a$ T! G+ u c% k5 {- o3 l# V2 F D0 `
- (command "_m")
1 A; ~$ D; ~3 A2 ?* ~/ j" f - )5 ]7 H7 ]) X4 D/ z
- (if (/= closedn old-closedn)9 o4 `* E. Y0 ^3 e, J* U1 b
- (command "_n")4 \# C- I( u: p0 Y
- )
- s2 y$ y. ~- i& h1 v: K - (command "") l0 ?0 @: |' @$ Q. q4 [! Q ^7 O
- )+ Y* ]# r% g$ H! q/ t& R5 g
- )
5 q- }8 ]( R1 _2 R, W- E - )
# m! z% _6 ^' Q% C% G* \ - )$ B* c' \) ~9 d; G; k9 S
- )+ q) ~3 f+ z5 B% Z
- ;;7 c3 x! F4 S9 a# U9 ^1 o2 D
- ;; All the spline data is contained in a single elist. We must do some
6 o$ p8 z' C* G% H - ;; tricky list processing to loop through the elist in order to display7 J3 L( Q; a( a! V4 \
- ;; all of the control points.
* V# d* l- j! |1 f; n; _9 X - ;;
+ n% _+ M3 c8 f! {* D& B3 p7 i - ;; The structure of the elist is different for rational and non-rational- e* T H5 ^5 f; ^& B! d
- ;; splines. Therefore, we check the rational spline flag.
9 y- I4 J' s, S& m: r - ;;1 [0 R1 C$ D( {6 @) [
- (defun next_cntl_pt ()
" J- f+ e2 j" R# \; p3 H3 e - (setq elem-no 0) ;; elem-no = element counter/ A9 H9 Z4 e4 L. v( ^. ?9 P
- (if (= first-10-time 1) ;; If first time, find location of first! N* d# h( a2 [' i: D$ h
- (foreach list_item elist ;; cntl point element in elist
; \8 P+ @2 w4 h5 { - (progn
% ?7 ~. F/ | C1 o: E - (setq elem-no (+ 1 elem-no))! b, V: Z" e$ x3 V" O U6 Y& }
- (if (= (car list_item) 10)1 ?5 I/ a- C6 f8 X6 O7 j
- (progn
1 e. r+ h4 ?1 ]9 } - (if (= first-10-time 1)
4 K/ h! }6 Z2 R6 S9 v - (progn
( }6 F6 C: k) y+ H6 |) A - (setq first-10-rec (- elem-no 1))( S2 Z8 [4 m3 I3 S+ i: \
- (setq first-10-time 0)+ [! ^% P# y1 ~
- (if (= rational_spl_flag 1) ;; if rational X9 i" {8 [8 a, s7 V9 u5 z
- (setq cur-10-rec (+ elem-no 1))
- H% v, f- Q2 i* w" u7 n - (setq cur-10-rec elem-no)
& J8 |8 A- [9 b3 h; z7 \4 w5 H - )
! X9 f: ~0 W4 q - )
! f( K, ]3 B5 q2 j W; w3 p - )2 O7 c& Q- g) W& |7 e, j
- )6 h3 Q# |6 a# {% Q p. X
- )
# e- H6 L0 ?2 V6 D - )3 ?9 [, H% C- w% \8 H
- )
7 i3 n* P( r( o - )3 b0 J5 V& |6 h4 b7 y
- ;; Now we know the location of the first "10" record; it's stored
# ^( v0 z4 }, _ - ;; in first-10-rec. The first 10 record was already displayed when
" Q) V4 ]7 h2 g - ;; the dialog first came up so let's display the second one when
7 S$ f$ G) e9 y3 e. i: a0 m2 } - ;; the user presses the "next" button (the first time through).+ W: N, B" { M
- ;;! S* K' |) C% @! k) ~" Y
- (setq temprec (nth cur-10-rec elist))
: ]5 d8 _6 a$ D( z5 Q0 s - ;;* C9 ~- y7 `: V, Z
- (if (= (car temprec) 10) ;; if 10 record
& d) e/ z$ E& p+ X: o - (progn/ j7 Z) O0 H7 m' P
- (if (= rational_spl_flag 1) ;; if rational spline1 g8 _6 L3 {3 j4 ?' ^
- (progn
+ |( r% F* L7 z5 c( G' k3 H - (setq tempweight (nth (+ cur-10-rec 1) elist))4 M6 k. s" i0 i0 J/ M- V
- (setq cur-10-rec (+ 2 cur-10-rec))( P0 M; q; Q+ B9 ?. \& D) _
- )4 e! w& T0 ]- I8 E6 O# ]7 h3 v
- (progn ;; else
. c: u5 n7 Z: D& B0 H' J/ A R - (setq cur-10-rec (+ 1 cur-10-rec))
7 N' _" _( V4 g - ); D$ _4 H( u8 ]6 E5 S8 |. E
- )
3 ~" t" u$ @8 g/ r3 d* g - ) ;; end if rational spline" d' j d1 @! j
- (progn ;; else reset counters4 B. _0 i; ? A8 T0 I; s! h
- (setq temprec (nth first-10-rec elist)) ;; get 1st 10 rec) I5 Q1 J( W" T% b2 R5 P
- (setq tempweight (nth (+ first-10-rec 1) elist))0 w; M" X" x$ H2 b8 C
- (setq cntl-pt-indicator 0)
7 |: S' U9 E& D+ u - (if (= rational_spl_flag 1) ;; if rational
1 E" S5 {' F1 r+ ^. F* L - (setq cur-10-rec (+ first-10-rec 2)) ;; point to 2nd 10 rec7 p- a& X4 T8 M. W9 I- z+ V5 e% F
- (setq cur-10-rec (+ first-10-rec 1)) ;; point to 2nd 10 rec
7 I1 G2 v. q& f' \9 q - )/ v$ {5 E- |% r
- )
3 ~2 _$ o. {$ V - ) ;; end if 10 record' O) v+ {6 g9 c1 C8 Z; ^8 f
- 4 [6 w. I6 p2 R1 p: l
- ;; Display cntl point, weight and ctr. Increment ctr.
$ H, F, ^9 P( i! g6 B5 j - (setq cntl-pt (cdr temprec))
0 I8 |2 C& x4 M, X - (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))
9 K" N! }7 W p3 y - (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))7 Y, B$ G6 D( v& V" M5 v1 Z
- (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))
1 n9 ]( `& z: b4 D' h. Z - (setq cntl-pt-indicator (+ 1 cntl-pt-indicator))8 g( h% z' H1 H4 a" N) G" F
- (set_tile "cntl_ctr" (itoa cntl-pt-indicator))
9 h' R8 i7 H& d9 ~- S - (if (= rational_spl_flag 1) ;; if rational
+ T6 p6 t/ B+ f/ c& H - (set_tile "weight" (rtos (cdr tempweight))) ;; disp wght
, t* b" g6 o: c' H, m - (mode_tile "weight_text" 1) ;; disable wght
& E0 M; q! N5 B - )) a- u' H4 P4 v$ H
- )# o+ `$ y# I5 }) p/ _1 f
- ;;9 I5 {6 ]4 F& J! a# @5 ]
- ;; All the spline info is contained in a single elist. We must do some
* Q6 D3 A9 p% {0 t6 s" v+ f4 Y - ;; tricky list processing to loop through the elist in order to display
/ q" \+ h( e$ v" u& {' d - ;; all of the user data points.
- O( n, u6 [' W - ;;0 }: e/ W4 Q: P1 G& `3 ?
- (defun next_data_pt ()
8 }9 q' ?7 m" C& [& G: U$ X" t - (setq elem-no 0) ;; elem-no = element counter
9 _" t" c4 L' S$ P' S& A; Q; H+ X - (if (= first-11-time 1) ;; If first time, find location of first. i; V; W2 r, _( j' R
- (foreach list_item elist ;; data point element in elist
% x6 t% b+ o! Z7 M& D - (progn7 ^; A2 ^1 p9 u' B, C Z
- (setq elem-no (+ 1 elem-no))
4 e$ g+ b l3 n+ {, i5 e; g }6 D. [ - (if (= (car list_item) 11); r3 x7 H8 W8 B# F
- (progn! H( P4 A8 P- n
- (if (= first-11-time 1)1 U; {! \- {& m- b+ r- h
- (progn* d% t- ~) y' { _# V1 @, W4 o
- (setq first-11-rec (- elem-no 1))
[3 ?' E2 E6 f - (setq cur-11-rec elem-no)
; T/ d5 i- q9 _6 q g - (setq first-11-time 0)( `3 f8 R' F9 V9 K4 v) s
- )
) @* j" a& @& b* i - )0 ^* P0 y5 L$ u' H
- )
' O% ~8 F5 p7 {) [: z0 x - )7 S1 [5 E: \/ t7 J4 ?6 U
- )2 R) S( G9 V/ |4 @/ X
- )
* v+ ]) @9 s# r! m7 D - )
# b5 e% N: a3 s, ?4 @ - (setq temprec (nth cur-11-rec elist))) R8 U- |1 L/ k# A G k1 J
- ;; If it's not a DXF "11" element then we've gone past the last. t/ p1 a. \. n4 X) V8 U
- ;; "11" element. Go back to first "11" element. Reset counters.
. t/ r1 X. C0 t; V9 E/ h6 F - (if (= (car temprec) 11), A7 M" Z7 G, E# l% i3 i$ `
- (setq data-pt (cdr temprec))
/ [& E" p. \& a9 ] - (progn ;; else
4 B* k7 U3 i+ R4 r: S& d6 `$ t; { - (setq data-pt (cdr (nth first-11-rec elist)))
" S4 C$ o f7 r - (setq cur-11-rec first-11-rec)9 i9 T) u; K; s" H; P6 s/ o: H
- (setq data-pt-indicator 0)
) k6 o! _5 o& U; D( M - )
2 e2 k5 n7 V' I0 s& ^ - )8 S# z) b" n$ x. o( I
- ;; Display data point and ctr. Increment counters.
h) y9 q* o( @ - (set_tile "dxtext" (rtos (setq x1 (car data-pt))))# H& U1 r5 V) y& s
- (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))4 V: _- Z k; P v, Q N) R* M6 z
- (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))
" k$ E- L% q5 O* E% V - (setq data-pt-indicator (+ 1 data-pt-indicator))5 K# J* s. l3 ^4 ?
- (set_tile "data_ctr" (itoa data-pt-indicator))- u& K: m2 u7 V
- (setq cur-11-rec (+ 1 cur-11-rec))4 _ g2 F: f* w @3 {
- )
$ x; H3 o0 W/ c0 q' H - ;;
6 q- W) p/ j! \" E4 Q0 A1 X% G - ;; Modify SPLINE
/ `+ u2 k- u6 }! ^" w - ;;, j* A6 T& F, {4 r
- (defun modify_spline ()" V' G4 m$ M' n J* x# Z) T( g5 S
- (modify_prop_geom)
: c- ?$ q0 |/ w7 F% T - (entmod elist)
; I1 f& @$ M$ Y+ ^. M( R/ y) z - )
: M* W- t: v0 l- O. C: l; r
+ K: e! y. h# m( f4 O- (defun ddspline ()
; U& j! N5 v/ e* e! |+ t5 z, f - (if (not (new_dialog "ddspline" dcl_id)) (exit))1 }1 Y" c, H& M5 b* G5 s
- (set_tile_props)
2 r' J8 |9 l+ Q& X- D/ G5 \' k - (set_tile_handle)3 O. ^+ e" x' A$ _! }* I* n8 d8 N
- (set_tile_spline_props)3 W6 e/ {8 G6 a0 e
- ;; Display first control point3 a* p8 v' o. D( [
- (set_tile_cntl_pt): {+ x& q, |" Z
- ;; Display first data point# h9 H6 n: `& M% `
- (set_tile_data_pt)% u. V$ T) S0 O, i e" m
- * b/ E7 G+ a4 U' M; y n& E
- ;; Initialize flags to indicate first time through the dialog.* Q+ A; u7 N; Y; I5 O, i8 | B
- ;; For control points and user data points the "next" buttons
% g- n5 P3 Y, x; L* K9 u8 G: t; _ - ;; in the dialog call the appropriate functions." E2 x! }0 [* ?9 ]
- (setq first-10-time 1)! {, w% l: s9 |
- (setq first-11-time 1)
1 l; A" V) D! `( e! u# E - ;; initialize control point number counter
$ N6 i2 t2 e- x: g* x+ F - (setq cntl-pt-indicator 1)1 X! V/ P9 q. F7 d6 F$ i4 D
- (setq data-pt-indicator 1)
8 F9 V9 |0 c* Y$ O - (set_tile "cntl_ctr" (itoa cntl-pt-indicator))! `; }; @! T& Z1 V# W
- (set_tile "data_ctr" (itoa data-pt-indicator))
/ Q" P( \, C6 L9 f, o0 C* n - (set_action_tiles)9 q- y, C/ l2 J$ l1 b
- (setq dialog-state (start_dialog))' P+ J7 H' b, o, n R# u0 k
! \/ Z7 h; O. F% V7 M6 a+ ?- (if (= dialog-state 0)
( }+ {! \ X h+ U. ]' Y - (reset)
& A( a0 k( X2 p8 ~, }, I5 g - )
( Q, G9 p$ v" c4 l - (if (= dialog-state 1)" L/ @# d# I% Q) B$ I
- (modify_spline)
6 Y6 T( e5 t. ~1 E' K% A& r5 _ - )
/ l* o, u, v/ v2 e% g A - )( z( Z$ S* y8 w- [7 [" X. {; h5 O
( j6 `2 X! s6 B% T4 K& ^- ;;- T0 A9 E+ W, H/ L/ P( r
- ;; Modify DIMENSION8 Q/ i2 \7 Y3 z9 B0 ~
- ;;, v& E3 B0 E7 A1 S
- (defun ddimen (/ dtypebit blkname bename sublist a stname n dimtbl
$ s" O4 i6 W- G9 m - dimsty dimlist dimtext svtext dimovr sv_dvlist stlist# `# _# o( @8 b* q. {
- dimtype dimsvcurset)3 h$ k0 M0 {2 |
- (setq dimtype "DDIMEN"
4 p. i1 M. u1 O7 o1 x - dimsvcurset (ddimen_dimsty_restore)
6 a- |1 k3 ~3 W - )
# Y, L+ Y( k U6 p. Q7 q - (if (not (new_dialog "ddimen" dcl_id)) (exit))
4 k, J/ A' P) M+ w1 v" R - (set_tile_props)
" g+ ?* ~ T+ j& s$ h+ X - (set_dimen_props)
* |7 r' X8 O" C+ ^% B4 E# B - (setq dimtext (cdr (assoc 1 elist)))/ ^8 l+ p/ `* O2 B2 I! Z$ e
- (set_tile "t_string" (if (= "" dimtext) "<>" dimtext))- w, P3 m: c; a& d! Y: K/ V
- (set_tile_handle)" }3 K! h- o {+ N
- ;; Define action for tiles! q! P2 i+ V0 D* ~6 X
- (set_action_tiles)7 y9 G4 h" {0 w0 I; q8 g% p) w0 i
- 1 `' s D5 W7 D [/ b- J
- ;; Set initial focus to text edit box./ r: b% U7 S) r9 l6 A9 M
- (mode_tile "t_string" 2)
; w& S& y6 w6 g- X
( p: G8 M6 b+ G/ N6 x& b W$ X# }- (setq dialog-state (start_dialog))
; g# K3 e/ T) O: N$ Q - (if (= dialog-state 0)
6 v" z' t. J* h3 g+ E0 e - (if (= ddimmt 1)
/ A4 I: M/ k" E6 @ - (reset)# ^! ~: E& {0 b. S' U3 p9 h5 f; h
- )& @! P+ j$ Q7 S3 D6 T
- )& M1 ]9 H+ G: b) H3 W( S# f' v ]
- (if (= dialog-state 1)* A" D7 Z- f) o) o. t& b; n
- (progn
, f/ z' a% D8 E% K$ x7 h5 D - (if (/= dimsty stname)9 ]. S/ p& L4 y* F& b6 Q$ Q
- (progn
7 E" f# S1 N; o) u9 l% H. @ - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case9 }1 }0 i$ V" L1 W
- ; doesn't have it.) E+ V, M/ U4 u% ^0 `) k. `! M
- (if (null (assoc 3 elist))
: x+ H/ v S' s! k% L s8 F - (setq elist (append elist (list (cons 3 dimsty))))5 C8 V9 `+ N1 ^* r! ]/ q$ p
- ; else just replace it.
" ^) j, ^& d0 `! E0 w' p( s! j& q - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))' u2 [* u1 H3 F- ~4 X; C
- )
- U. l+ Y W8 a - ; refresh sv_dvlist with new dimstyle.7 {( V1 |" ], M8 W8 b
- (setq sv_dvlist (tblsearch "dimstyle" dimsty)). X7 u6 U6 d" Z' I# Z
- )
* U8 e7 F$ @5 g* x6 v - )2 g* i* g4 l Z2 L# H
- (if (not (null dimlist)) ; attempted to change dimvars0 `+ {+ W5 m; j* S0 n
- (ddimen_complist sv_dvlist dimlist dimtbl)# f2 T7 q$ Z7 N' V/ x; A
- )
, `6 [/ l3 b2 ~) t9 s - ; Modify dimension text
" k* p' k% _- p: [ - (if (/= dimtext text)& [; s3 d4 H* E% h
- (progn: m. X. b7 z# n Y8 p* d2 D
- (setq dimtext (if (= text "<>") "" text))
) T2 ]' y: \0 Z. t: q$ I( I - (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
% M5 n+ D G! g6 c - )
+ F" G% E$ A# R6 I9 R' @: y - )
! j% |4 Z; l: c$ k: c0 t% G - (modify_properties): F1 c- ]* L. B" @+ v% b5 H8 c
- (entmod elist)& ]- w5 i/ {* F+ s3 N |
- )7 M7 ?( ~3 [+ p$ z5 c
- ) b, X; X. T1 m1 @
- (if (= dialog-state 4)9 u; P% g2 D2 n! r# {, P- F
- (progn# R6 Q( ^" z/ f" S- B
- (setq ddimmt 1)
+ x0 X* j, j+ O: j% L* ] - (if (/= dimsty stname)5 c5 M; j" k, h) X
- (progn1 E3 ]$ ]1 Q6 M1 B
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case; \; g! N% r9 R! y6 T
- ; doesn't have it.
- o$ z7 w. i; u& |! g+ w& i - (if (null (assoc 3 elist))
5 R. Q8 Z% M7 _2 r/ C - (setq elist (append elist (list (cons 3 dimsty))))* P9 e( L1 y8 X B- n9 {& V
- ; else just replace it.
; F: M0 g8 ~9 E0 p - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))( n" g' q* t* T5 ?& C
- )7 w2 b5 c0 d: O) |
- ; refresh sv_dvlist with new dimstyle.
% i* E- D8 ^0 q" H ` - (setq sv_dvlist (tblsearch "dimstyle" dimsty))0 n. m* r+ [8 m4 I2 C
- ): L+ t1 X* v3 t: I' V; S, Z
- )0 I& r7 y2 }/ F+ {' l5 d) T9 e
- (if (not (null dimlist)) ; attempted to change dimvars" ]$ ^$ k% l$ S/ J# X% o$ [
- (ddimen_complist sv_dvlist dimlist dimtbl)
$ b. T. G, w1 o; @4 p; l& J - )( Y/ c' r' V4 B1 I
- ; Modify dimension text# m; w [. G, b& [
- (if (/= dimtext text)+ }8 N! U% m6 k2 T3 \+ F' m, |
- (progn
7 L$ Y+ Z" o: p# ~ - (setq dimtext (if (= text "<>") "" text))- R. f; M3 @$ G9 f5 h- \ v. T
- (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
3 `' W# `) L: I - ): ]- u& [9 D5 U* m! }6 D
- )" Z( y$ B* }" D
- (modify_properties)% e6 k: K8 S- b! x# K, z0 d7 |3 W
- (entmod elist)7 K/ n! `, h) O6 r# `3 c
- (safe_ddedit ename)# A, ]8 R' {$ A: e
- (setq elist (entget ename)). u! r6 o: Q) `
- (ddimen)
r" r- W2 Z. G+ y - )8 @+ x: w; W! q) G, Q6 ?( h& T$ _
- )
9 q7 J) A/ T, X# R; }; D - (ddimen_setvars dimsvcurset) ; Prepare to exit
- S1 u1 E2 l5 y/ C; V - )
% a* F% l, [: O. k# i. o - g" C& E s; S: t
- ;;
6 J, T3 v' G$ m- ]2 H - ;; Modify TOLERANCE/ T3 G* v+ p f5 c& `5 g
- ;;
" R/ u8 f6 l. @ - (defun ddtolerance (/ a stname n dimtbl3 q% k# r6 h7 \; k% ?( h
- dimsty dimlist dimovr sv_dvlist stlist dimtype; Y, b3 i2 c& z4 [
- dimsvcurset) F8 g# t/ L! |7 e4 M# B
- (setq dimtype "DDTOLERANCE": b4 S& E4 y6 Y/ s# n( V
- dimsvcurset (ddimen_dimsty_restore); b; ? r1 F3 R, y$ k' X
- )9 U- Z0 H7 U. {; k+ v
- (if (not (new_dialog "ddtolerance" dcl_id)) (exit))
4 R0 v6 M0 n/ l# A) N - (set_tile_props)
, R/ C" V p( F0 {7 d - (set_dimen_props)
6 A+ G$ ]7 z2 M, E# {! r# s, l - (set_tile_handle)
$ P- h0 G8 N/ T - (set_action_tiles)
: K8 c) f0 ^) m9 I0 A7 i - (setq dialog-state (start_dialog))
5 u$ E/ Q% K$ k6 j! `$ Q- H$ d - (if (= dialog-state 0)
3 S4 t& |: p- Y p - (if (= ddimmt 1)2 f7 U2 C# }8 r% E
- (reset)
4 v+ B) H5 U+ L - )0 m! \( P$ z5 e: b' E4 P
- )& y ^% g# e: t* |
- (if (= dialog-state 1)
5 I/ f+ S! [' u) z - (progn- r" T8 ?4 `& h: K' X
- (if (/= dimsty stname)
2 Y% ^. Y/ \, x1 M2 `3 a* x - (progn
?1 ]4 ?% H0 H, v! d0 l8 t; R1 M - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
+ r; p6 m0 ]. Y" \% j - ; doesn't have it.9 N; ?( E/ A8 [. G7 H% g
- (if (null (assoc 3 elist))
. J0 {# {& B' O0 r) ~* ]# ] - (setq elist (append elist (list (cons 3 dimsty))))
+ v, g% D- T) ]: f) x9 v: d - ; else just replace it.
, j) F' n0 r! o# g' Y) u2 k7 J - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))# p) m1 X. v" N, {6 `2 \
- )
5 w W C6 C4 S" R - ; refresh sv_dvlist with new dimstyle.
* t9 C& F' Y1 z6 \+ p% e# H - (setq sv_dvlist (tblsearch "dimstyle" dimsty))6 Z0 c4 I8 T2 E6 @6 G" y
- )
: B' y( n2 r6 T; }& ?: j- a8 p - )
: ?; ~4 K8 ~$ G* r% J - (if (not (null dimlist)) ; attempted to change dimvars
9 L1 Z% T0 ^1 ]* } E - (ddimen_complist sv_dvlist dimlist dimtbl)+ m6 U( @# k! f8 |; F0 s
- )
: |5 E) Q0 n7 Q, @. z0 C' Q# W - (modify_prop_geom)9 l4 q8 a* V* j# C& O5 W1 d! I
- (entmod elist)
_# G7 \2 Y& `5 y3 q. [) V& z6 | - )
) r: A4 M1 X% ]1 T( S/ v - )
T$ n( P9 v% B: e - (if (= dialog-state 4)
8 I8 h. y2 D d$ V" ^ t5 U, m - (progn( x& Q3 K0 u% I
- (setq ddimmt 1). O- K! C; w: V+ _
- (if (/= dimsty stname)8 T1 H) Y" n" r! e+ g: _
- (progn
* S8 t; ^2 u$ d, L - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
. I c7 B) p& Q8 v - ; doesn't have it.3 {- o0 N7 U2 F8 ?% g e
- (if (null (assoc 3 elist))
% v- Z3 Z$ j* V - (setq elist (append elist (list (cons 3 dimsty))))
* w) c& N. H3 B, }1 @ ]+ o - ; else just replace it.
! e. x! R2 A+ h5 G6 ` - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
( }2 g7 R# C4 r5 X6 A0 ` - )
! B% a9 w+ T/ k) F( }# A - ; refresh sv_dvlist with new dimstyle.
: d7 J2 f; E' p) q! `" m9 C& Q - (setq sv_dvlist (tblsearch "dimstyle" dimsty)). `1 s# ?) L# V( L' V
- )
. f8 P* c3 |+ `' q - )
$ Y8 {, s8 i" u/ u+ o, V I - (if (not (null dimlist)) ; attempted to change dimvars
* x$ n9 Q8 F$ O+ b/ z - (ddimen_complist sv_dvlist dimlist dimtbl)
1 m" l0 h! |, n+ c/ `. y: Y - )
0 @4 `; c# a) l# e8 n7 R( { - (modify_properties)
" [( W5 ]; e% _2 }& [ - (entmod elist)
0 C" Q. P5 `2 F0 L* j9 g9 \ - (safe_ddedit ename)
6 w; ~' V7 n( o- w) d - (setq elist (entget ename))
4 k4 v1 R$ p; e# R; c9 M: J4 L - (ddtolerance)7 K" ]) z1 T9 y& ^
- )* H; O& X' N3 [# Y, X. I
- )/ m1 j4 H- p* t+ D& }+ w
- (ddimen_setvars dimsvcurset) ; Prepare to exit |2 P3 | K* M! J1 L+ e
- )
( Z+ A5 Y4 [: j8 Y
! z; C% q6 F' V2 G- ;;
0 `6 b8 R7 I1 s% e& m' Q - ;; ddimen_dlg - jump to ADS ddim module! [) {0 m5 ]* x, b \7 l" J5 p" i' q
- ;;' ^+ @9 L. O* E, H8 w5 A( ?, c
- 6 G8 Y/ t+ j5 ?$ I
- (defun ddimen_dlg (dimtype tile dimsty dvlist / dimlist)
0 }$ G/ N! d; K - % g* ^2 \$ O% D0 @
- ; Jump to DDIM with overrides if any. c7 U M2 K4 T: f, I, J
- (cond ((= tile 11) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Geometry/ @& K- o0 j+ [+ C! K6 J, ?- X; T
- ((= tile 12) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Format& [5 n( E. w$ p( w" N& V1 l3 K
- ((= tile 13) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Annotation+ F6 V7 H b1 U
- )8 R7 m* x" b- k4 I" |
- )
5 f% I4 |9 \/ `/ H8 l- `6 @- n3 h
6 w, J2 Y$ g) @! ?- ^6 k- ;;' b: X8 C* L# c, `
- ;; Dimension variables updated are stored as overrides.1 Z! }3 F( b m- ]
- ;;) C. L" ]9 T: l9 j5 ^6 w" _; P# {& {
& _, K. D8 J' x- (defun ddimen_complist (dimolist dimnlist dimtbl / i odvar ndvar
1 k" T* k4 E( W9 X/ ~, y( C. { - dv dime commandIssued)
1 q- x6 ~: Q" c( t0 x1 t: W1 }8 X) d. Q
) g4 H7 h6 Y+ n* H- ; Here we skip the following first three items:
1 A* b3 M+ z+ v8 Z' R2 a - ; (0 . "DIMSTYLE") (2 . sylename) (70 . 0)1 P2 S7 c* i/ r% v+ C
- ;
, ?5 F* P- W' |. \1 ]6 g( Z- l - ; The list comparison immediately begins with dimvar.: i, F5 Y1 k- V O9 @
- ;; ~0 H0 h" z" x/ Z8 }4 P
- ; dimolist - original states of dimvars+ m. A$ l% u" m3 ^
- ; dimnlist - new dimvar list which is of the resbuf's$ j7 D8 p& y; N' P3 M( } |
- ; dime - entity name for the dimension
4 T6 a6 g% l. e0 V& q+ N C8 _1 Q2 U2 e - ; odvar - value of dimvar for the dimolist8 G5 k( I h2 |
- ; ndvar - value of dimvar for the dimnlist
. ^# ^" [$ K8 g; U5 M - 2 h9 j3 d3 [& |) X( W$ [
- (setq i 3( O; Y8 A6 L7 i( [& _
- dime (cdr (assoc -1 elist))
! |7 k" Z6 z1 d1 `4 L9 S8 [5 B - )0 i0 s* M( w' r. o
- (while (setq odvar (cdr (nth i dimolist)))
* K! K+ P9 R( Z6 Z; r - (progn9 J( R/ y% k/ {4 W# ~1 ?
- (setq ndvar (cdr (nth i dimnlist)))9 M4 J5 T1 j2 ~- z* A" L" i
- (setq dv (nth i dimtbl))& t- C3 V) [( }) v
- (if (eq dv "dimtxsty")
9 n4 e' j5 ?* M H2 m - (setq odvar (cdr (assoc 2 (entget odvar)))
$ _( E3 O1 @6 u, { - ndvar (cdr (assoc 2 (entget ndvar)))
' @: h9 p8 M% |1 l9 H - )6 Q* J) j1 G: v5 g' C8 {4 V
- )
. P" I' F3 L) X' s - ! Q H3 p& I, _: ]; A( a# Y8 y: r3 f
- ;
( O. s9 o I; m: W- I0 [; L - ; In order for DIMOVERRRIDE to operate correctly with string
5 ` ?0 ^. f' t/ g' D a9 n - ; based dimvars, we must pass "." versus NULL strings.: ^. _1 ^2 D7 x/ W% b6 Q7 ^/ S3 E
- ; In this case ndvar is the new dimvar value the user wishes
; {( y; o$ H9 \ - ; to update on selected dimensions.
0 w7 x- B# P. H( n# J1 T - ;
4 w% w' H; k: S! O+ P - (if (/= ndvar odvar)
% h a+ b) S" M - (if (= 'STR (type ndvar)). g# {0 L" t% p" I5 P! d2 b' z
- (if (= ndvar "")3 j4 v, e e5 R+ j
- (setq ndvar "."))))2 z7 [, ]+ Z3 d f# x0 V
- 0 D! |" t& G |! ]/ G* F8 K! x
- (if (/= ndvar odvar); ]5 Z) [; ~; _6 H3 I
- (progn
3 V' @4 O' F1 T3 T+ g - (setq dv (strcat "_" dv))
& l2 [* \6 f, J) u" X+ i" k1 F1 P - ;
" K8 L1 H# o; @! r9 u2 Z2 m - ; Start the dimoverride command" Z/ |9 B, h; }. j
- ;
: J9 K4 Q1 _2 U4 r - (if (not commandIssued)/ Z; ^4 I; I6 |; @+ W, q( l
- (progn
7 s( F" j+ j& D: | - (command "_.dimoverride") m. s' T8 R. @6 V$ m) W4 i, I
- (setq commandIssued "T")
4 g3 M0 u# `' B- e9 }4 ^- w - )
" L6 Q% L4 u1 H5 l; ]4 D: n - )
* W1 p( F3 P$ e! S* b - ;
' G5 q3 {0 N: @9 v$ [. e - ; Issue dim overrides( z6 z% S, q* W9 l* l: j+ R
- ;8 S% V5 }8 G5 e+ ]- k
- (if (and (or (= dv "_dimclrd") (= dv "_dimclrt") (= dv "_dimclre"))
& D! i7 b; e" Q! S$ B* N8 [( ` - (or (= ndvar 0) (= ndvar 256)) i. e. S, V6 S) i8 c1 s
- )
( p/ A+ P0 w- d! {* n8 _ - (progn1 e1 _# s6 J1 v Z
- (if (= 0 ndvar) (command dv "BYBLOCK"))
7 h2 |$ @/ }9 O+ _. a2 b - (if (= 256 ndvar) (command dv "BYLAYER"))/ m( ^& q2 o6 h8 w6 k& t* c" B
- )
) z& Q. e4 g" |7 s - (command dv ndvar)
+ J( h% J7 N$ r8 W8 c8 ~ - )
3 W' K( g3 g' F0 T# ~9 G7 D/ _ - )2 W ]0 \9 r5 q" D9 W, k5 O
- )6 f2 x. O$ e! x0 W
- (setq i (1+ i))
9 G# @3 Z4 p5 [0 ~ - )
- B+ @' P q- M - )
: P1 G6 g# Y- u! Q3 q - ;
4 U# q: o. F5 P' E" n - ; Select Entity and terminate command m7 R2 ~5 f* r! b
- ;, a) {% r- U8 ?. O: g# |# c& R
- (if commandIssued( d- S- ^3 v' w' L. |2 K
- (command "" dime "")
9 Q4 u7 H. y) a; M - )
q+ m% }# _) i - )
2 l V% F- x* Z - . J$ g" g1 r. c; r
- ;;, i8 u+ o( ?; l: U
- ;; Get style name currently selected style name.4 L/ Y- W& g8 |7 x! I$ @7 R9 w* K
- ;;( \' Q8 Y* u1 C* y1 L0 F
) V+ s5 l2 J8 k+ y# u- (defun ddimen_style (/ dimsty)
) S2 U+ t# Q# ~- W% A - (setq dimsty (nth (atoi (get_tile "mod_style")) stlist)8 p) `& _, {; Z- ~) F6 P# K5 m
- dimlist (ddimen_getdimvars dimsty)
2 X& a( }" o- L/ b* X5 Q* ? - )
8 l @9 ~: I0 Y( @" W4 P V, z0 `$ ? - dimsty9 Y$ G$ x) F& j8 T% D0 y
- ). x- L& c' A; O. R4 Z
- . @; V6 K' G: L! L$ }: p4 r
- ;;' F& J& |, A% o7 L
- ;; Set dimvars
9 B' u: L/ a ~! y - ;;
) W' @" O. ]8 z5 J- ~6 g* b( ? - (defun ddimen_setvars (dimsvcurset / dv i)% C1 `+ @6 Y9 {) z
- (setq dv (cdr (nth 1 dimsvcurset)))6 E, i2 G9 C6 ^2 i ~9 M' |# N5 g& x
- (command "_.dimstyle" "" dv)
2 w! f( d# q: @6 [. W - (setq i 3); f. |( P3 x; b3 |$ F
- (while (setq dv (nth i dimsvcurset))
m7 P$ H9 m2 O5 X" Q; o" u - (progn3 B( ^ w/ ~% _4 m
- (setvar (car dv) (cdr dv))4 ~; s. n) c9 K6 }5 }
- (setq i (1+ i))
: @! m" m: s0 L) i+ b& G - )
/ }5 Y- l3 t* c3 t$ Z& p. E - )
# Y6 R. S0 Y+ y( H: n. F - )
! k$ W; E: r' [0 J: ?+ b8 q. L, L3 a - ;;
3 f1 r% K9 Q9 M; \) j* _" p' Y - ;; End-of-dimension N5 i4 b9 Z* Z1 t
- ;; ==================' @! P' v5 Y3 U/ _6 f# Z2 U
- - n, T& r0 E3 D0 X# F* Y9 ?6 H; v
- ;;2 g5 V( `; q# f; F& k3 Q
- ;; Sub-dialogues for properties. Common to all object dialogues. m) l5 {" H' i
- ;;
( d$ G* y; q0 q: q - ;; This function pops a dialogue box consisting of a list box,image tile, and
8 g. i) k) o, \6 @) \: b - ;; edit box to allow the user to select or type a color number. It returns
; a, V0 k5 _' B5 s2 u, q - ;; the color number selected.$ ^. @% b$ h2 J) p
- (defun getcolor (/ old-idx colorno cname lay_clr)* N u" d9 v" z: B& ^ C/ K- a7 I
- (if (= (get_tile "error") "")
. K: b5 g7 d/ T) ? - (progn
; }4 p: o7 ^, L! W ~1 l( |, z1 N - ;; Get the color associated with this object's layer, for use
% Q& J, h! U- A$ @# u5 ] - ;; in the color swatch if the user selects color BYLAYER.- W) @. I( I( a6 ^8 H
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))% M0 U8 {* `: d" S. t/ u
- (if (numberp (setq temp_color (acad_colordlg ecolor T lay_clr)))
4 w+ n* v7 \, z G; i, H, e - (progn
+ k6 Q3 J6 t/ n" A# \3 J' L - (setq ecolor temp_color)
9 e* f7 k. [; ^+ y - (setcolor)6 z, x* u* _: t& v8 j8 R
- )
$ f4 c9 z) @% ^' S# d - (setq testcolor temp_color)2 d3 R: ]# z4 ^: k' \$ C6 |! ]
- )
" M2 @" Q! j. c3 g0 r* D( E - )
: V! F9 I& A# `$ m5 w3 D - )$ ` _, d9 J- M* z y
- ecolor$ x( [) U" y7 l7 `- ]* \. F/ D
- )
. Z; [: O3 {5 P( Q- u. l4 ~ - ;;
9 U" [& W9 a+ u) b$ g6 [ - ;; Function to set the color tiles.
5 y5 |/ f4 S1 z" r; [ - (defun setcolor(). I3 T( d3 e/ p
- (cond
( M8 U7 s# k2 V6 g - ((= 0 ecolor)
: [0 {( Y a$ Y Y4 Y; D, O6 J - (set_tile "t_color" "BYBLOCK")& f0 V" P# H" n; N# a
- (col_tile "show_image" 7 nil) ; show BYBLOCK as white
/ {* i" _3 J( n: C) n) |+ r - )+ h. B# U3 C( `+ |- o/ H4 ^
- ((= 1 ecolor)6 S( z6 b0 N1 ^) v: `/ t1 k
- (set_tile "t_color" "1 red")
( l. ?, n! ~9 ~) \+ c0 U6 k! x s. |. w - (col_tile "show_image" 1 nil)
' ]% l! B4 K" U. Z; }) r - )
) e0 G" K: |, R9 ^6 ] - ((= 2 ecolor)9 u: t/ g4 E! `7 P2 i
- (set_tile "t_color" "2 yellow")
5 c1 C8 @& A( C2 _* W6 w' B; m - (col_tile "show_image" 2 nil)
% A3 R" I; ?$ f2 ]4 V( ~ - )* a4 U! ]- U4 k% l$ I* ~$ g% O
- ((= 3 ecolor)
3 @ f8 J D& a7 g* [ - (set_tile "t_color" "3 green") @8 K9 C" {! N6 f
- (col_tile "show_image" 3 nil)
+ U \5 G s* y - )
9 [. t& t' F3 y# L6 ? - ((= 4 ecolor)
* \8 T( E- P- n) J' S& h/ k - (set_tile "t_color" "4 cyan")3 l9 P g# B$ s: ~$ o4 B5 z
- (col_tile "show_image" 4 nil)
( H7 R6 A. o: [& \6 t$ r - )" \( j1 X' N2 Q
- ((= 5 ecolor)0 Z/ p8 l( [# f; ^
- (set_tile "t_color" "5 blue"); b! P2 |% r# B8 g6 u7 y
- (col_tile "show_image" 5 nil)
$ R5 J3 h) ]! E7 a3 C0 W; w - )% E3 ?4 P2 D, ^7 k- _$ n
- ((= 6 ecolor)
- e6 s8 f4 Y' @' w, p - (set_tile "t_color" "6 magenta")
' y& e/ y2 {$ X$ [3 T - (col_tile "show_image" 6 nil)
1 e& M0 j. x+ t - )1 u7 v" x: h9 H; b* w& Z1 W! @7 r
- ((= 7 ecolor)1 c% W: ~6 y1 F N6 [3 k1 D! x* ?; `
- (set_tile "t_color" "7 white")& q1 q5 \% \9 D. U
- (col_tile "show_image" 7 nil): d9 Z/ b7 X4 F: a+ H
- )6 D0 [" y3 m* G% M% n4 J* K7 @& h
- ((= 256 ecolor)
' @% q6 L/ x! p' j9 O - (set_tile "t_color" "BYLAYER")3 e3 ^5 Y6 ?' u7 M, `* \
- (col_tile "show_image" (bylayer_col) nil)
& v! g% f5 z& T+ z e, {) [% c& H - ); ^4 v4 h. i- h, ?
- (T
, q3 G1 I( j6 ^ N: [( [ - (set_tile "t_color" (itoa ecolor))
1 b9 X/ O- q! B$ f& I9 I# O - (col_tile "show_image" ecolor nil)
P! s; R4 Y# r - )
& @ |: x6 x' f' C1 H - )4 l) ~! ?8 }/ M' N$ Z
- )6 `% \+ G+ n3 W! I: q) I
- ;;4 h- {# M& F" Z, ~2 T0 _
- ;; This function pops a dialogue box consisting of a list box, image tile, and
" Y. t$ }+ i6 l+ G - ;; edit box to allow the user to select or type a linetype. It returns the) U0 e ~! U) U) u f/ E. q$ l
- ;; linetype selected.' {- n; F6 ]" U' Z" U, y
- ;;3 l: x. W" {8 b% O" {( k1 k
- (defun getltype (/ old-idx ltname)
/ y) m6 q8 e3 l: O# c - (if (not lt-idx)- @- [% W0 x) F& a' [* }+ c8 Q/ C
- (progn
9 f" B1 y$ a, ]' a% A/ R - (make_lt_lists) ; linetype lists - ltnmlst, mdashlist
6 _2 [6 ^7 z3 ]; Z7 Z5 i& t - (cond
0 N8 G7 ]. ^" R5 g- M2 _! ` - ((= eltype "BYLAYER")
4 M9 x! X; o! q( o4 g, j% Z' ]2 R! E6 v - (setq lt-idx (getindex "BYLAYER" ltnmlst))) E8 [8 a6 ^+ v3 C4 }$ q
- ((= eltype "BYBLOCK")$ g' F) L3 x5 C S) P
- (setq lt-idx (getindex "BYBLOCK" ltnmlst)))0 i; C$ a3 g$ v1 W
- (T (setq lt-idx (getindex eltype ltnmlst)))& `% Y% H( N5 C3 ]2 g" ^/ y
- ), g8 W1 S3 c1 I' Q* T
- )
$ g# J, ^' p( N( M% H& Y - )/ D+ Y" P5 O6 l; |- U2 N
0 A- Z) y% w" M% ]+ h- (if (= (get_tile "error") "")
& I H; T( T/ j9 r$ D# ] - (progn
% a$ J1 a/ q1 k. T) ]; V - (if (not (new_dialog "setltype" dcl_id)) (exit)). L) K. R# b+ |
- (start_list "list_lt")4 c9 O7 Q. K! c6 F: R
- (mapcar 'add_list ltnmlst) ; initialize list box, `" C. a0 b5 [1 ?* t- u
- (end_list)
3 }( V3 g/ e; ~- I1 U$ ~/ C1 l" y - (setq old-idx lt-idx)
o3 ^; k4 N9 g. ~3 s - (ltlist_act (itoa lt-idx))
; ~: G; J+ f; y! M5 t# ?7 [
+ h5 Q1 f- `8 _, p- {- (action_tile "list_lt" "(ltlist_act $value)"): p. J; o* G! i0 v% U/ U$ w
- (action_tile "edit_lt" "(ltedit_act $value)")3 b% U; e. x9 b) C) R
- (action_tile "accept" "(test_ok)")
$ N6 M+ j; Y5 y - (action_tile "cancel" "(reset_lt)")1 k/ X; h: T, s2 J# f5 p4 h% d+ F
& W7 `/ i' Y- p5 }' I6 k4 f8 w- (if (= (start_dialog) 1) ; User pressed OK3 N9 n+ n8 X# L) S6 j* g
- (cond$ q" K/ |7 B _' S
- ((= lt-idx 0)2 U* {* K& k9 j4 z( \
- (set_tile "t_ltype" (bylayer_lt))
. V$ A9 l# T1 \6 X% ?) K; l9 N - "BYLAYER"3 f6 ^, k1 \( @" N I4 Z" T$ a
- )) g$ v6 k9 x g d3 Y; F/ P. D6 M$ y
- ((= lt-idx 1), d$ n1 p6 t4 z& }
- (set_tile "t_ltype" "BYBLOCK")! K6 A) a4 ]2 `& r5 F
- "BYBLOCK"
; }6 o6 q- _+ t2 o - )2 Z1 S, {& T1 }# G( o; x2 a
- (T (set_tile "t_ltype" ltname) ltname)1 b* i0 u+ n- w( y( P' X7 d2 ]
- )
7 z$ E/ L# \# w! y - eltype5 c9 h: ^" j+ I, Z9 n U; x; B2 N4 l
- )
# {1 g; W2 C. E U) H4 P! y - )3 _+ e- R9 k9 D7 q. c
- eltype
! T5 l- W/ ?8 L. ]" c& W0 {+ A - )
8 ?5 ?5 K5 R' n; B5 _ - )
4 w- g$ @5 P) r9 l0 t - ;;' a7 o. |2 [& p6 ]
- ;; Edit box entries end up here
+ g: d( f! I8 e* U - (defun ltedit_act (ltvalue)) C" y( B( m- t5 e# \0 b
- (setq ltvalue (xstrcase ltvalue))
; W) S' `6 S4 r+ q - (if (or (= ltvalue "BYLAYER")
0 w- F* V& Z& |$ U- R& {- _5 _ - (= ltvalue "BY LAYER"))
3 k; J" c0 Z- `# T! U+ X" G& e - (setq ltvalue "BYLAYER")
3 _1 R9 [% }0 g+ y! {" l7 H# U - )
9 V0 L2 n/ h6 }* F; Z - (if (or (= ltvalue "BYBLOCK")
( j+ W9 U5 E/ k1 z - (= ltvalue "BY BLOCK"))) m0 X q5 D9 ]( t+ R
- (setq ltvalue "BYBLOCK")
8 S0 `; k3 p5 D" B - )6 b: f( Q, q; n( z! E/ u) [
- (if (setq lt-idx (getindex ltvalue ltnmlst))
0 V/ j; Y9 k0 S6 x7 P1 i* X - (progn
2 B5 N! J' d! ?( M1 J3 P - (set_tile "error" "")
, q. u; T* G* t+ p; U2 P( | - (ltlist_act (itoa lt-idx))
" d- r0 C6 ]5 K - )
, R* O2 v% Y6 G2 g5 ~5 ^/ x: P - (progn
0 d$ ]* C- H7 t - (set_tile "error" "Invalid linetype.")
5 ?' {+ s, l) h0 x) c7 ~ w6 }/ E - (setq lt-idx old-idx)! G" e* f& A1 z3 S" S5 v' p6 r
- ;; (mode_tile "edit_lt" 2)
4 X' U! u/ H; ` - ;; (mode_tile "edit_lt" 3)/ R+ c3 c# F6 `& Y. u
- )
: Y0 p3 G, h T2 b) H/ l4 u+ y - ). }- O# _8 \& ]. X# H9 t
- )9 Z6 Y7 N2 B$ U: @7 l% e
- ;;# Q7 d2 l) Y, l% p1 }$ u- D
- ;; List selections end up here. Update the list box, edit box, and color I7 T* L/ a1 P+ M
- ;; tile.0 P7 |( G6 {! o; p ]/ D" A
- ;;0 [& }5 R% n3 U r
- (defun ltlist_act (index / dashdata)' g e, _4 }; m# a/ B* N5 N
- (set_tile "error" "")
7 k( X: t0 {5 m, B0 s1 Z l - (setq lt-idx (atoi index))
7 x2 i3 E6 ?: p( v - (setq ltname (nth lt-idx ltnmlst))
0 n- z; {. W1 R0 c - (setq dashdata (nth lt-idx mdashlist))
4 | B; d4 k. e2 M) s - (col_tile "show_image" 0 dashdata)* r! N$ k: R! U B7 U
- (set_tile "list_lt" (itoa lt-idx))* l/ w- J1 w$ ]% G7 ~5 ], t# j* k: S9 s. k
- (set_tile "edit_lt" ltname)5 b( F: r1 v+ W k
- )
+ p' d& D% |( ?4 Q' p - ;;
; y. ]' B K8 c( M- M) ~4 D - ;; Reset to original linetype when cancel it selected
9 v0 r3 \. O, S8 S8 K: v% t - ;;9 ^2 Q/ e9 G9 W) K" k
- (defun reset_lt ()
" b) O& j0 B x' _* X - (setq lt-idx old-idx)/ x( L0 O3 X- D5 f- g
- (done_dialog 0)5 c7 K! J# T1 K7 ]4 e1 D' C
- )3 v7 u' Z6 ]+ y$ Z- Q1 F1 ^
- ;;, x+ i& m# [3 ?" `6 g/ v
- ;; This function pops a dialogue box consisting of a list box,image tile, and1 Q8 q4 a1 s# U4 E5 Z9 h5 f$ A
- ;; edit box to allow the user to select or type a layer name. It returns the
$ u5 F6 ^! X3 [( H( h4 [3 r - ;; layer name selected. It also has a button to find the status (On, Off,
4 F, ~- j) S/ p. `" Y - ;; Frozen, etc.) of any layer selected.& b0 L i9 ~* o
- ;;% M4 h3 B# v* M$ c+ N9 c
- (defun getlayer (/ old-idx layname on off frozth linetype)
; B( s1 o4 V, p9 j5 S - ;; Create layer list the first time the layer
/ V1 W$ F2 M4 k3 ^2 C: \ - ;; dialogue is called.3 S* p5 [1 H2 J" E: Q% v
- (if (not lay-idx)
3 K" k- z% S' d8 M6 A* o5 p7 W9 D - (progn6 n, m7 B& H8 W2 x) O& F
- (make_lay_lists)* Z- _: |0 T2 q: t5 G
- (setq lay-idx (getindex elayer laynmlst))' V+ T& O, `. Q, g
- )8 w) \9 o8 k# ~7 a2 ?
- )
* s+ m' n3 a z8 ] - 5 N& }" R w, v/ L' q) T0 S" K
- (if (= (get_tile "error") "")
2 r8 z# M. Y1 K, C& R, v - (progn
) `! d( z; Z* l; s6 T! k0 V2 u - (if (not (new_dialog "setlayer" dcl_id)) (exit))
4 X' R% R1 C0 I - (set_tile "cur_layer" (getvar "clayer"))5 V" a( S7 @% `$ ?& u1 Z8 \: W1 f
- (start_list "list_lay")
& v8 N. W' K# u - (mapcar 'add_list laynmlst) ; initialize list box
$ v5 i, [+ ~4 ]$ s, A - (end_list)5 y1 j* g) `% n$ `
- (setq old-idx lay-idx)
) F% g8 K% h. Y0 z3 N7 u+ u - (laylist_act (itoa lay-idx))* q$ e6 q* Q/ A5 r
- (action_tile "list_lay" "(laylist_act $value)")
% T0 U" s8 e9 B - (action_tile "edit_lay" "(layedit_act $value)"); o% ~5 G |$ k) ~. H( M
- (action_tile "accept" "(test_ok)")
' p4 z0 _, `. y ~' |/ }& D) Y - (action_tile "cancel" "(reset_lay)")' k; y) o" K7 ]: k: Y& N/ k0 A! d) e
- (if (= (start_dialog) 1) ; User pressed OK
+ G+ p7 _. d, t/ N8 V; |& l/ g - (progn$ |, C/ Q& e* H b
- (set_tile "t_layer" layname); ~/ f- o. R& S
- (setq elayer layname)- g/ z2 r/ }# C6 n
- ;; If layer equals bylayer reset color tile
1 x9 E0 ^8 }' Q - (if (= ecolor 256)5 _; l3 U5 W ~$ W! d- u8 w9 \
- (col_tile "show_image" (bylayer_col) nil)
7 }& Q" [# W- y$ L+ H0 m - )6 k- I' [6 j# r" a$ ^! a6 G
- layname
- J8 F8 ]- p# b& \ - )1 c B8 U) ?- l5 u4 x6 z8 P4 ]
- elayer
# D# u) f2 |' i: w$ X: I9 ?6 G - )' j* d$ ~) a) R$ `- E" y6 q# k
- )& P7 S+ J( U, Z7 L' C
- elayer
" H, R4 m. g$ [- K+ |* s; l$ H - )9 a2 S, g; u* a0 P# b
- )
0 |) y" W$ x' l - ;;
4 j1 \% S) q0 a - ;; Edit box selections end up here. Convert layer entry to upper case. If# o! y4 ~# a- d, k; f6 v0 ~; d# D
- ;; layer name is valid, clear error string, call (laylist_act) function.7 x2 }& e6 T. b
- ;; Else print error message.; K) F/ K; K; i9 w
- ;;1 G2 |: K# ?: A( K+ Q
- (defun layedit_act (layvalue)
6 E9 Z4 |: |+ ?# Y7 ?% ` w/ H - (setq layvalue (xstrcase layvalue)). l; h s. A+ T Z* Z# D
- (if (setq lay-idx (getindex layvalue laynmlst))9 f) } R7 q, b$ `8 s) X8 t7 M$ X( `/ g0 k
- (progn
7 w7 _0 O- b# | - (set_tile "error" "")
7 a& B1 |# |+ B* N( c - (laylist_act (itoa lay-idx))
$ C# O5 r- i8 Q# l' k* h- N1 b - )
4 B$ ?4 U3 e* n$ I - (progn' F. D' p4 \% y
- (set_tile "error" "Invalid layer name.")- [& {0 d7 y4 C4 j+ V
- ;; (mode_tile "edit_lay" 2)
+ m# c) |2 Q W' C+ k - ;; (mode_tile "edit_lay" 3)
9 j3 a8 F, @* e, H! F" Q! _ - (setq lay-idx old-idx)# L( o) f/ Y. S5 ?5 n* E& d, y
- )
7 N+ u% h; N3 E; X- z S' ? - )% W1 Z; |" |( A# | Y" _+ a
- )+ p' A1 {. V7 m, _ J' X% ]' ]
- ;;7 v$ [) K0 F# e1 W* J# V4 q6 i6 b
- ;; List entry selections end up here.
9 A. J# J: s8 v6 I7 n) n) @1 ^9 | - ;;7 n0 h! Z! |& k3 N% n. c
- (defun laylist_act (index / layinfo color dashdata)
4 }% u; c k. ^ - ;; Update the list box, edit box, and color tile.
: c5 s3 ]# J: H D; o6 W( f - (set_tile "error" "")
1 R: g2 J. N% P - (setq lay-idx (atoi index))1 g% x6 W% q0 d3 {, Q; R" W
- (setq layname (nth lay-idx laynmlst))1 B/ d$ F1 g* G! b N( @
- (setq layinfo (tblsearch "layer" layname))
, Z' J: B$ j+ A+ @% Q* M - (setq color (cdr (assoc 62 layinfo)))8 M2 p' s! f% v: R7 _
- (setq color (abs color))2 i8 L, d/ p7 l: c; d2 X9 e& N# ~( w
- (setq colname (colorname color))/ s; r& b) ?2 [$ k
- (set_tile "list_lay" (itoa lay-idx))
! e7 W! ?/ i" Y: I - (set_tile "edit_lay" layname)" A; C) I, a/ p0 C$ d
- )
2 `) E5 ]+ M9 J0 |& m- Z7 G - ;;) t# F4 _2 {8 U/ \% x
- ;; Reset to original layer when cancel is selected.
7 s" u! X1 S: ^8 p$ Z I - ;;
1 H, P1 T: M1 [* }4 D1 [ - (defun reset_lay ()% r; ~/ N+ {# T* J( G7 g) L
- (setq lay-idx old-idx)( I1 V0 C, W4 N8 \' s
- (done_dialog 0)
; U" N3 M c1 ^3 b - )! J3 R" V; u" j e4 y4 N( Y {+ m
- ;;
$ D+ z y- M+ ^" K5 X) }9 Z+ K - ;; Checks validity of thickness from edit box.
, l- m3 R3 v8 q# R& {+ i9 K3 f L$ L - (defun getthickness (value)& }' g! A" Y8 X$ s6 K& q% F; W/ @& Y6 j
- (setq ethickness (verify_d "eb_thickness" value ethickness))- _. `7 m/ _! z l" d" J
- )) V5 y3 h" j0 R& r5 c9 A+ `
- ;;
! j, u' T' ]+ Q: ]0 {+ V# i4 l, \ - ;; Copy of (getthickness) for ltscale. If more, make this function; X, \/ c1 I4 B) f
- ;; generic.+ w# _/ N( l; Q% t! y& u
- (defun getltscale (value)
( G% V' @! y, d, N - (setq eltscale (verify_d "eb_ltscale" value eltscale))& h' o p4 g6 x" q
- )" \7 S& t0 O% M" w _2 D& @
- ;;
; U- t9 U: G% T N, s$ y - ;; This function makes a list called laynmlst which consists of all the layer( q" K- _( u4 P) s* N
- ;; names in the drawing. It also creates a list called longlist which4 v o& I2 m/ d
- ;; consists of strings which contain the layer name, color, linetype, etc.
* i6 H- L, M$ q' q! I - ;; Longlist is later mapped into the layer listbox. Both are ordered the
% l! u& j, d( \$ N) V3 Y' _6 z. p - ;; same.& z: u( A* T! a! k3 k+ v
- ;;: H8 S$ c8 B' G# E, b! }
- (defun make_lay_lists (/ layname sortlist name templist layer_number)
; c" c' F! b. ? - (setq sortlist nil)* p5 ^' O2 o; ]1 a7 d
- (setq templist (tblnext "LAYER" T))
; D3 ~7 V6 d2 P& H - (setq layer_number 1)
0 F# ]4 w/ e/ R' x - (while templist
- c1 Y, J- Y0 W3 f9 W2 V6 q - ;; No xref dependent layers, please.
& C/ `: {1 R; i+ R7 { - (if (/= (logand 16 (cdr (assoc 70 templist))) 16)
2 i% k f# N2 g. u# h/ K) {9 _& C - (progn
" x4 e6 J+ Y/ ~5 R+ _+ ]; F7 \% D - (setq name (cdr (assoc 2 templist)))
+ ]9 Z; D. H. l# b - (setq sortlist (cons name sortlist))
8 W% I4 R: j* B8 m m- S# M - )
1 |& R3 w1 {+ X5 c# E7 I- Y - )) d3 F. E+ k9 g' ~
- ; Get the next layer.
+ ?* M% b3 \4 i$ s0 B3 y - (setq templist (tblnext "LAYER"))
. V0 ?7 m C5 Z; k9 v - ;; Not dead message...
" Y4 B/ v' I, V - (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))8 \/ ]8 s* U- I$ r8 O7 b$ j6 }
- (set_tile "error" (strcat "Collecting..." (itoa layer_number)))
9 U3 ^; R# o- P6 s0 c - )( ^6 y/ {0 ?, k9 g" i! h
- (setq layer_number (1+ layer_number))
1 F: P) c! m0 w0 ~3 a* b - )
( H3 T ~8 x9 u7 V - (set_tile "error" "") r% B+ {) R. b2 ^7 D
- (if (>= (getvar "maxsort") (length sortlist))
+ P& d4 |2 u* u; ]% y( K! b7 F - (progn! O. p! B' E5 |
- (if (> layer_number 50)9 ?0 Q: r/ r b) e0 O" l2 a7 O" V
- (set_tile "error" "Sorting...")
0 R4 n# D! S$ I5 _& Z% k- V - )6 l( K K# a ]* B% \8 U2 C
- (setq sortlist (acad_strlsort sortlist))( l0 i; y5 Y; e. h1 Z' ~ S+ d7 c
- )9 C; G# T7 g2 ]7 o' x8 |
- (setq sortlist (reverse sortlist))% \$ _# i3 s3 y* c4 w
- ): t, v2 z2 ]6 _2 y1 \
- (set_tile "error" "")
' _' b. G- H+ h9 m5 a1 L, h - (setq laynmlst sortlist)) R; r; X% f; T T
- )* J# N+ O7 V8 @$ V& L4 v
- ;;. v. q9 l( I) B- ~1 k1 s/ p* q, {
- ;; This function makes 2 list - ltnmlst & mdashlist.. E2 |/ ?3 i$ y/ f
- ;; Ltnmlst is a list of linetype names read from the symbol table. Mdashlist
i7 v# F1 n( p) d1 P4 F - ;; is list consisting of lists which define the linetype pattern - numbers# N' K1 X6 J/ ^, m
- ;; that indicate dots, dashes, and spaces taken from group code 49. The list7 Q' Z% B% T/ O* x
- ;; corresponds to the order of names in ltnmlst.
+ ^; `8 M+ V6 O+ }0 P- c - ;;
4 Q) v4 m1 Y( j5 }% q - (defun make_lt_lists (/ ltlist ltname)
5 `$ a- i+ g: l - (setq mdashlist nil)
. I4 z) c& B, j; T# h - (setq sortlist nil)9 b }- ~9 q; {* F5 P9 O4 _& j
- (setq ltype_number 1): S! Z7 |; s, @' _
- (setq ltlist (tblnext "LTYPE" T))/ O$ k; p, H% `) \6 @; I
- ;;(setq ltname (cdr (assoc 2 ltlist)))5 R& t% A& ~! f1 \! G
- ;;(setq ltnmlst (list ltname))
% ?! V' k4 \' L, P - (while ltlist' s5 V# ^8 B0 y8 R) P
- ;; No xref dependent linetypes, please.
* w/ l5 @8 ~- X$ I* Y V8 \( m - (if (/= (logand 16 (cdr (assoc 70 ltlist))) 16)/ {6 B+ O7 E: X4 B5 C/ K: g
- (progn) |. |3 |: m% z5 s2 u
- (setq ltname (cdr (assoc 2 ltlist)))+ X$ a( m! x) k6 e
- (setq sortlist (cons ltname sortlist))9 A5 ~- U; f: J; t1 f. ^/ F
- )
]/ u# i6 P9 {' D - )
$ C3 b0 `- [- p! Q6 [. y. M# Z) z - ;; Get the next linetype.
) l/ c5 ]' X* x4 o2 k8 Q" W - (setq ltlist (tblnext "LTYPE"))
9 s. y4 Z6 o( ?; e9 x
; d. B3 q- V m% f3 A( x) Q' Y- ;; Not dead message..." }* Z, \: E& ~
- (if (= (/ ltype_number 50.0) (fix (/ ltype_number 50.0)))
5 i6 N x9 s7 N9 d. u; z+ b - (set_tile "error" (strcat "Collecting..." (itoa ltype_number)))
# J+ R: g% c$ x2 F& K2 P7 w - )
- }# m; }5 j( \( B: R - (setq ltype_number (1+ ltype_number))
: T. B0 r/ z# c. t - - y3 P% b4 {8 ~# O3 |. c' g( H
- )9 U" b! z% }2 R2 ]3 L4 z+ ]
; _) {4 F5 Y* F- ;; Remove Collecting message." y. E6 M, w4 @" R
- (set_tile "error" "")
1 L/ P' A# J# g; w6 |. F - ; A$ c; y9 V+ H' t7 A
- ;; Sort based on maxsort.* d- K: X1 a: j5 w
- (if (>= (getvar "maxsort") (length sortlist))( w4 O5 K9 `* x% s1 z7 @& `
- (progn5 g+ U) W6 V# y/ t9 s: Q. Q
- (if (> ltype_number 50)- |& C- m& i; S r: I# r3 y) P
- (set_tile "error" "Sorting...")3 t: z; R( g p+ a, P( m' `
- ) z* M" t4 ~# p& h* p K0 V
- (setq sortlist (acad_strlsort sortlist)). N3 ~; _7 u, d% z5 y: e+ s
- )9 j! L, U: r6 y0 y
- (setq sortlist (reverse sortlist))+ |" w @. |" V j8 y
- ); G; D8 q7 G7 x2 h
- (set_tile "error" "")2 |+ _% K# @3 ]+ s; k# A
- (setq ltnmlst sortlist)
; n! v0 p6 v: C, A
+ e! S$ m, K7 H- (foreach ltname ltnmlst
, p+ T/ x, h" l. P& z, X - (setq ltlist (tblsearch "LTYPE" ltname))9 @6 q/ c. l9 }- l1 j3 {: v- N
- (if (= ltname "CONTINUOUS")
2 m7 Z1 |9 e: f/ V7 H2 g - (setq mdashlist (append mdashlist (list "CONT"))); f' e( o# A2 K) v3 ]5 j# w
- (setq mdashlist* y, L4 p2 K4 R2 _5 P
- (append mdashlist (list (add_mdash ltlist)))/ _: A9 O3 [% g" ]. D8 p. q
- )+ Z! z+ a5 o& [1 f! a! N
- )" b( @1 ~( t) ]5 g9 A* s" x& ?. r
- )
) u+ l1 v5 o$ x - (setq ltnmlst (cons "BYBLOCK" ltnmlst))
6 ~* u0 i& D: L; \: _0 q, h# r8 H - (setq mdashlist (cons nil mdashlist))
' q) M! ~3 v1 ]+ m - (setq ltnmlst (cons "BYLAYER" ltnmlst))
! X2 O& J4 E8 t$ y$ _8 { - (setq mdashlist (cons nil mdashlist))
% ^9 B, a. v3 k% C0 u, h - )
+ T1 G- E( v% ~( Z. | - ;;' M {2 I* Y- P: n
- ;; Get all the group code 49 values for a linetype and put them in a list1 c3 B+ c9 f! Z% Z
- ;; (pen-up, pen-down info).
7 U0 W8 J* }" w - ;;+ [/ d H' R. g5 k/ v" {4 W
- (defun add_mdash (ltlist1 / dashlist assoclist dashsize)
! W; a+ `- O w- I1 Z. W% { - (setq dashlist nil)- i i, E+ N/ x7 C. t |( ?5 A5 Q
- (while (setq assoclist (car ltlist1))
, k; T# m( m: _/ p% }* V3 h& E - (if (= (car assoclist) 49)$ i: m3 g' t6 d% c7 H0 ]/ _& y
- (progn! X# Y% E7 o. M s/ \
- (setq dashsize (cdr assoclist))
1 J% ?: [" c, r - (setq dashlist (cons dashsize dashlist))0 L9 a A% H0 }0 F; j8 t! B7 ?' h
- )) \1 D# O; P- ?8 O$ {6 R$ z. \4 C7 e
- )+ W& B5 A+ I. v: c
- (setq ltlist1 (cdr ltlist1))
% R5 ^) T1 h, s - )1 B( }, ]/ G$ w
- (setq dashlist (reverse dashlist))
" g- l* `5 ]+ q5 E' m% i( E9 P - )
4 e6 J* j- j w5 | - ;;
) ^( c O, C- H2 G0 Q6 @ - ;; Color a tile, draw linetype, and draw a border around it
7 `/ ?1 f- \' j% I! {* Y2 B% X - ;;
1 B+ ?: \; d E/ u8 E - (defun col_tile (tile color patlist / x y)
0 J1 v$ e" ~# v. s- `' Y: N: S- C - (setq x (dimx_tile tile))1 L+ z6 v( Z, {! s% `# ]
- (setq y (dimy_tile tile))
, K# D3 v8 J2 X7 @0 E8 V# P! |' f1 t - (start_image tile)
$ A: q* r% T, V9 m) p - (fill_image 0 0 x y color)3 z9 y& b0 F4 `& }! b$ j/ D
- (if (= color 7)/ p5 O4 J* D7 n4 @8 V' Z( H+ C5 }
- (progn3 r+ m v% y) J: \) T" C1 n
- (if patlist (drawpattern x (/ y 2) patlist 0))0 o- }8 x: v4 \4 C
- (tile_rect 0 0 x y 0)
- \' c8 y q7 x! w - )1 G* z" n2 y# k5 j7 ?6 T4 i
- (progn
, N. \, M2 `9 ?* a H q - (if patlist (drawpattern x (/ y 2) patlist 7))
9 K6 S1 I# M4 B+ K - (tile_rect 0 0 x y 7)0 h: x/ W/ @0 v/ x
- )5 S$ ^9 T. O, ?" C' ~* M
- )
7 i; M: C2 ?7 M; W2 V/ D) B, F - (end_image)
: {. J; N2 x' X# E0 R- K; V" h4 e - )
* o. K) T4 }9 B" \9 j - ;;
& l8 Q: ]' E% `5 L - ;; Draw a border around a tile
+ Q% Q6 _% A m6 `( P - ;;9 y' i( q0 o! J1 f* h3 j# R
- (defun tile_rect (x1 y1 x2 y2 color)
; N9 n: @ S2 ` - (setq x2 (- x2 1))
9 E5 f$ @' d2 i1 F, X9 {; T( ~ - (setq y2 (- y2 1))
: @( G) e, A0 Z- L/ I4 g& \4 D* i* ~ - (vector_image x1 y1 x2 y1 color)
- s, R5 p8 K: V9 j8 e& I/ q - (vector_image x2 y1 x2 y2 color)3 `& Y7 r' D; e: {8 y
- (vector_image x2 y2 x1 y2 color). ~9 t" ^* a1 p* E" M' v% Y
- (vector_image x1 y2 x1 y1 color)0 x+ y* c* z/ j( s2 c# W" }, G* L4 _
- )
% T \# |; x( e \' Q: w0 } - ;;, x# ]% l0 L* W" p* e* r) ]
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image v2 O9 x5 [, X: } F
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a0 N& _8 `8 j1 f
- ;; list of numbers that define the linetype, and color is the color of the
' ~1 O5 q& f$ y% U# F- q! i" g - ;; tile.
) o6 D; E7 `* @" K - ;;& Q, Q/ i6 ^5 p4 k7 l
- (defun drawpattern (boxlength y2 pattern color / x1 x2
' E& {1 D2 a7 T# z3 e - patlist dash)
; `$ O! F$ t3 ` N; e1 d" u" n - (setq x1 0 x2 0)7 z$ t2 |, Q( v$ m( Y, v$ M; G5 T# ]
- (setq patlist pattern)
4 u, `- x; w) P/ j - (setq fx 30)
n; m5 A! n1 h. M% f* j5 Z, a3 g - (if (= patlist "CONT")
- {! ] y$ q/ c6 D - (progn (setq dash boxlength)! \( e" [2 ^# W- W0 L
- (vi)& k4 E0 Q2 i6 r, Q
- (setq x1 boxlength)7 c" F6 A0 ?& X# [" r/ j8 z- ]
- )' k' }* }5 p- f. n
- (foreach dash patlist
( \6 C8 {6 S2 c! T" | - (if (> (abs dash) 2.5)- {: P/ s: b1 a
- (setq fx 2)/ O( ?' F" h; x1 Y3 A
- )6 T5 ?4 Z; A' d* n
- )
9 M* t: U! r* T$ } - )8 f6 F8 Z6 x. |
- (while (< x1 boxlength)+ u3 N6 s& T) H: p" o( G9 q9 v: S. C
- (if (setq dash (car patlist))
" u& R1 o0 z4 R2 [ - (progn; f( J% u! L! Z( @
- (setq dash (fix (* fx dash)))& D; J5 ?' |/ z$ C7 y! f
- (cond
, Q- [$ Y0 H7 i0 {% z) l - ((= dash 0) (setq dash 1) (vi))4 M$ _% ]# j6 g* b& I
- ((> dash 0) (vi))
9 j5 H+ R3 T4 Q - (T
, W+ J$ V$ z" x$ V$ G+ R - (if (< (abs dash) 2) ?$ b& x; l1 b3 p! y/ ^
- (setq dash 2)! D/ L' w6 X" I* E
- )5 s; u( Y1 H# J! N- s2 ]
- (setq x2 (+ x2 (abs dash)))
1 n6 h5 |% K v" ` N7 p- t; H3 h - ): Z! x# V' j5 y8 W8 f% Z
- )
3 B, l0 `4 ^0 j$ B- g& ^1 x6 w* L - (setq patlist (cdr patlist))
( R. s9 r1 X! ?# n4 j - (setq x1 x2)
: n+ N# \8 a# L( M/ w# R - )9 R& q% y0 D* y D, H6 L6 E
- (setq patlist pattern)
: Z7 M N L- p/ ~2 u4 N i - )4 d' f a, z9 \' d. |. `; o
- )
4 u& P( _4 r& \ - )
: p4 c5 j4 K. k+ C- f: }6 F# l - ;;! H' a, [* C" D* |
- ;; Determain state of xclip
4 s: {: M' Y' U$ r5 K - ;; Returns the group 71 value of the spacial filter dictionary.( }) t- a4 v, S+ o' u
- ;; If the entity doesn't have a spacial filter dictionary, this
( P) ?) Z) E& V - ;; returns 0. If it does it will return 0 or 1 depending on the
- i7 H7 r% Z( K% L - ;; current setting of the state of the clipping visibility.
. d, {* r2 m3 N1 Q - ;;
, z. K7 t# _! }! p0 M3 A6 k - (defun xclipon(elist)
, t8 F- D8 d& _% `! ^$ L - (setq hasclip T)
/ C. v. a0 E- m' _0 G - (if (/= (assoc 360 elist) nil)8 I% g9 n# M- U2 ~& |1 W5 `" b
- (progn
4 e C3 L+ }6 B7 ]' j1 q3 A - (setq tmp (entget(cdr(assoc 360 elist))))4 C7 S. Q/ J" i4 c' n
- (if (/= nil (assoc 360 tmp))
4 W. M$ n" X& \ - (progn
( I- N( q. ?6 h. [2 Z5 d4 {* ]! D$ |% ?& u - (setq tmp (entget(cdr(assoc 360 tmp))))4 P4 E/ m: q1 D% U% {
- (if (/= nil (assoc 360 tmp))
6 S, Y- _' ]& `8 w - (progn
" v- @6 @8 B/ o; c% a9 w; W - (setq tmp (entget(cdr(assoc 360 tmp))))
) C! ~! }4 b* V$ q - (if (/= nil (assoc 71 tmp)); }) b( ]: K0 E( E( |* o
- (cdr(assoc 71 tmp))
& i! b' w+ i5 S5 Y5 I4 {3 d - (progn ) @+ W# G3 ?; u# Q
- (setq hasclip nil)
4 s% T) H {3 z) ^& W! h D% n - (eval 0)0 A k0 K4 u) j \. x! c; ]
- )5 J1 e- ^7 B- T) G: x8 ]) `$ O
- )+ p: i% q8 \8 y9 E6 ^' G$ C
- )
# [: M- R$ P6 G. [ - (progn
6 J: W' T8 r4 Q. k. v5 h- q- r - (setq hasclip nil); F7 H0 `8 F1 v$ h# A' f
- (eval 0): }2 ?& u) J$ l2 o: Z8 b
- )
3 w" a1 k. H9 C/ b2 _ - )( ^4 N- m: N) U; D
- )5 O0 y7 p) n& h: d+ |0 i6 c: \; _
- (progn 3 v6 D$ B* B3 a/ {" z
- (setq hasclip nil)" P$ Q) t0 ?' L/ G
- (eval 0)4 Z+ h- z+ x% ^; K- I
- )
+ Q4 C7 |- O- |/ [$ W$ @3 }% L - )
0 }7 l0 O& x. V5 r0 Z - )- K) ?7 S" g' X: H
- (progn
/ }7 P- w/ R% N( z5 U - (setq hasclip nil)
- B" B. c3 d' Q3 o( ?& }4 z - (eval 0) ^# x' ]4 p: @3 ~/ Z* e( P
- )
- \: M& o, [: D - )& R6 w V2 \7 L6 s9 I/ I {6 F
- )6 ^) N' l, D) C! [ T% M
- ;;
# T( u l* G% ` - ;; Draw a dash or dot in image tile. C0 s3 C! k0 k4 A7 ^9 B- N5 y7 c# A
- ;;
, S" u2 r9 D/ x7 O0 ~( g! c) \ - (defun vi ()& S' I" T+ e3 N- b0 B/ F. q
- (setq x2 (+ x2 dash))+ C5 B* J$ j0 j6 X
- (vector_image x1 y2 x2 y2 color). \8 B% i( ~4 V% C9 ~# p
- )8 v# L3 q; _! U8 Q! W9 T/ v
- ;;
K! s* F# l# Q1 Z p - ;; If an item is a member of the list, then return its index number, else. D# s2 b) z& Y3 E2 T& `( w% v
- ;; return nil.. `0 a( y" B" y% h3 Q4 p) _
- ;;
( s% b4 T9 y; B3 i1 g+ D - (defun getindex (item itemlist / m n)7 }$ S+ R5 `( y& Z
- (setq n (length itemlist))' k/ p( J0 E' |+ K3 Q
- (if (> (setq m (length (member item itemlist))) 0)9 w$ Y9 V; i% d$ G y' {6 Z) j9 q, j+ i
- (- n m)& s: g9 b+ j2 A/ e) w/ ~' o
- nil$ L5 E; h/ V- z. }
- )
/ b, T( Q$ g4 s3 X+ F e' ~ - )" l, X9 |. O6 t% g. G4 ^
- ;;
' g6 x# N: c' x& W9 t' { - ;; This function is called if the linetype is set "BYLAYER". It finds the
k) D4 [, G, b* v! { - ;; ltype of the layer so it can be displayed beside the linetype button.( s9 v4 i7 f2 [
- ;;* v6 y* c6 j5 X6 _" U. Y
- (defun bylayer_lt (/ layname layinfo ltype)
8 A1 L% ^$ S7 \; o. U7 O9 Q5 L - (if lay-idx
' m9 \4 X! R7 T: L& \8 R- }9 N& f - (progn6 s0 I$ V' O: D$ q) k
- (setq layname (nth lay-idx laynmlst))( _0 c" n: n& p, ^% v# W- M
- (setq layinfo (tblsearch "layer" layname))7 a1 X, r* T% j8 {
- (setq ltype (cdr (assoc 6 layinfo)))- Z4 e" {6 [6 Z! `& }, I
- "BYLAYER"' Q" T' ]8 e1 h# I7 U2 z
- )
; x( D# [# M+ w; A' h - "BYLAYER"
) F- w2 K3 F, N x* I' l& O' m - ); W% ]6 y- I2 n' e. T
- )1 }$ j! }: g0 v' c& N4 b! ?; U* d
- ;;) m3 e7 [! H; P
- ;; This function is called if the color is set "BYLAYER". It finds the color& n" c2 K- K+ ?
- ;; of the layer so it can be displayed beside the color button.
- |# a4 M( D. }1 p3 W8 K5 D - ;;
" S4 Q4 M: l& h( v. c - (defun bylayer_col (/ layname layinfo color)
& F; c J6 r6 r) ]+ `6 _ - (setq layinfo (tblsearch "layer" elayer))- a# ~+ C+ G' F, N" A# n6 j, F2 l
- (setq color (abs (cdr (assoc 62 layinfo))))
8 |* V3 [# q; `3 u4 v; T - )6 O* {* b, R+ @) ?) B
- ;;: P" p, f6 K: Q3 ]) s
- ;; Used to set the color name in layer subdialogue.7 e) R# i i, i, i/ G( I O. H7 k9 `
- ;;* B2 P1 e, C. L
- (defun colorname (colnum / cn)4 ~6 H! R0 X' P$ D0 H5 f
- (setq cn (abs colnum))3 X/ X6 V" J8 {" v' S/ U
- (cond ((= cn 1) "red")5 } L' h# B, d' a3 H* w
- ((= cn 2) "yellow"). }$ v( @$ V- u# s0 v3 \. B
- ((= cn 3) "green")
6 _& ~4 e- J8 q7 w7 T( O$ u - ((= cn 4) "cyan")$ a8 _' Q) m! K$ S& j- F9 y# _
- ((= cn 5) "blue")$ ~% E( F" @: q9 H$ `3 a+ @
- ((= cn 6) "magenta")
( p# v% }( x+ p - ((= cn 7) "white")
# Y8 D+ |0 V: o) J6 u- } - (T (itoa cn))" N- l. T7 H7 v; n8 A$ ~
- )7 Q+ ]: u8 a" P5 z/ n
- )3 F2 i& O6 r% u& V# y
- ;;# S- C G8 a& I1 j
- ;; If their is no error message, then close the dialogue.
( {# R) g5 @: \ - ;;
! ]9 ]' U: [- _! H. k: L3 r - (defun dismiss_dialog (action)
6 J5 A; |! d! X1 n( U; T6 a% ^! V - (if (= action 0)
$ r2 N, Z/ F4 _ l$ c( ~ - (done_dialog 0)
L$ M/ W% z* k( o" ? - (if (= (get_tile "error") "")7 z" b' D2 }: k+ @
- (done_dialog action)
- m& \" _7 E; H) }2 c0 B - ) B( y X$ v' w
- )
) ? L* P3 T+ I0 M* t0 x - )) {* P$ h6 [7 {1 W3 D
- 6 p: k* @% Q& }" }" ]
- (defun test_ok ()
4 {+ u4 G/ V9 |1 K: i - (if (= (get_tile "error") "")
' y0 s; O: K- c, | - (done_dialog 1)
" ~- a! [, C' I( r2 t+ a - ); K' ]: _4 t4 a, y6 j- P3 l
- )
% f1 s% a' Z" n0 e. a" @. ?7 H
- h/ \# ~1 ]* L4 H- Z( [- (defun cancel ()
8 B- d. K3 b, y; }' H - (done_dialog 0)0 w' h4 W3 @8 d# O
- )1 I0 j2 r/ p- S& O& L+ ]
- ! S+ ]. P5 ?- u5 a& y/ M
- ;;; =======================================================================
' \% ], {, J/ ]. Q) }: _8 v - ;;; SETUP layer and linetype lists for application, and initialize all! Q- k5 y7 a' n5 J6 r& ]+ C% I
- ;;; program variables.) S# ?$ q- ?, h3 }
- 0 D( G, h. u$ d$ l
- (setq elist (entget ename), q/ q- z. c1 Y, F
- old-elist elist
$ z) E4 W2 x. A( M3 ? - modlist elist" z/ i2 h: c! R7 |, E
- etype (strcase (cdr (assoc 0 elist)))3 [5 C) h/ V% o$ D$ k: u5 y/ N* D
- ecolor (cdr (assoc 62 elist))
% d! |9 u6 w( c% o7 I: ~ - elayer (cdr (assoc 8 elist))
9 ?6 H$ k8 V1 o; D! ] - eltscale (cdr (assoc 48 elist))& U( A) E- c" z1 s: C
- ethickness (cdr (assoc 39 elist)) X% V- i( C* u5 ~" f/ n
- eltype (cdr (assoc 6 elist))' G: }! X8 o3 k$ K: r- }4 q
- )
+ |+ y. p! N; u5 X1 M& k( v2 H - (if (= (assoc 210 elist) nil)
5 u( r8 D5 L8 d' G - (setq extru (list 0.0 0.0 1.0))8 t% {3 y$ j( s( T, v: r, ~% {& I4 M
- (setq extru (cdr (assoc 210 elist)))
# ^. g) ^/ u- K - )
* [$ i% P! ]6 i+ [ - 4 w; c4 U0 _& O/ ^: v
- (if (not ecolor) (setq ecolor 256))
5 p% F9 a) `+ \ V, E" \8 B - (if (not eltype) (setq eltype "BYLAYER"))
# J2 L2 h$ O' U - (if (not ethickness) (setq ethickness 0))
2 w1 R$ W- i% \" K - (if (not eltscale) (setq eltscale 1))4 \0 T% y3 I* L6 D0 O- h
- ) ; end ddmodify_init
, Y; s+ U5 `6 J6 E - U) p1 g5 `$ ]5 e& n8 h& n. H2 E
- ;;; --------------------------------------------------------------------------' ]4 ^* [) b" O9 @* y) d
- ;;; Function: DDMODIFY_SELECT
5 W4 {; N J7 t( { - ;;;
5 k. \5 z. L7 h - ;;; Object aquisition function.% w/ d6 c5 ^/ L @+ p
- ;;;4 M: O/ { k4 u/ d9 K: n
- ;;; (ddmodify_select)
D3 c/ V6 ?$ { R - ;;;
/ T) D* v4 j: t Q - ;;; Obtains object to be modified, in one of three ways: ?7 J d7 ^. O# K( [& n' V( ~1 N
- ;;;1 J' b: R% u" X) b
- ;;; 1 - Autoselected.
+ e# S# k& j+ k- m$ A - ;;; 2 - Prompted for.) c- E3 G. A3 n- _; Y( M' }
- ;;; 3 - Passed as an argument in a call to (ddmodify <ename> )
* j6 k Z6 p6 p, I8 L - ;;;
& O3 b6 O0 A' S0 @( ] - ;;; The (ddmodify_select) function also sets the value of the3 T* b; @' e, d& K+ S
- ;;; global symbol AI_SELTYPE to one of the above three values to) m$ N8 L3 j* m' ?
- ;;; indicate the method thru which the object was aquired.
, O3 j, `3 V; I3 e0 c - ;;;
! w5 _! g9 r2 b/ b+ a0 X; V - ;;; This value can be useful to applications that want to RESTORE# v0 o' J- w2 T! P! S! t- W+ K J
- ;;; an object that was autoselected to its previous selected state/ Z- n) Z' |: V P0 K2 f8 n. ^" N6 j
- ;;; when they terminate, although there doesn't appear to be any
- p! c% L. {* Z* d( p# D1 o7 ?( v1 g9 z - ;;; way to do this right now.; {& S# }( a3 @8 S/ b v
- 3 n! _ Z5 K: K" u: e& {
- (defun ddmodify_select ()2 P! O4 \. v7 V% y- J
- (cond
$ v: n- E6 s1 N/ ~* d& Y - ( ename ; (ddmodify) was called6 k8 o+ a: O0 V M) K
- (cond ; with an <ename> argument1 p. k9 t( a3 K9 u' f) `" j) U, j
- ( (entget ename) ; If object is non-deleted
0 I* e; J/ Y1 Q - (setq ai_seltype 3) ; then return its ename.# N. J) E8 d& P% s
- (ai_return ename))))
6 H0 g/ Y2 |, v) K5 C" B% ?
- n: Z1 v) e, C% ]7 y- ;; return auto-selected , see ai_utils.lsp
& n0 H- z- W. v6 w" `8 ] - ( (ai_autossget1 "\nSelect one object to modify: "))
' P& ~4 c" X' B# t& c
4 f5 @& n' O2 ?# l9 ~2 n7 _- (t (princ "\nNothing selected.")
* [7 ^8 u8 `3 D - (ai_return nil))
1 ^# S7 c6 y' T: l) P9 G: u - )
" ~/ k4 m; H" a - )
( a- g9 _9 w( O$ A
5 S3 \9 Q) _# Y; Q# r. i- ;;; ============= Command line interface function =======================
7 k2 Q( {, P8 z0 x( a
0 n7 s* B' z& h4 p7 |- (defun C:MMO ()
$ }9 m, j+ ~. y - (ddmodify nil)# X$ E. Y9 R1 E; X6 }
- (princ)$ g% M4 C ^: V- ^# N
- )
* I0 r7 D& f7 P8 D+ T T) o" S
; ?, |$ U# u; w- ;;; ================== (ddmodify) - Main program ========================9 C C% a U/ C8 I& S) T2 H# i
- ;;;
) q9 @; |% L( [ - ;;; (ddmodify <ename> )2 N- r' f2 b4 ^9 ^
- ;;;
. u8 v4 f m+ z: e! j - ;;; Main program function, callable as a subroutine.1 S0 T7 }2 r; m5 l% ?9 T
- ;;;$ J" q2 z: ^! f
- ;;; <ename> = object name of the object to modify.) T9 g" N; [ D* z" ~
- ;;;2 d O* ~+ T4 t: `6 A+ `5 |* M
- ;;; If <ename> is nil, then user is prompted to select0 d) K G' U% E3 Z7 |
- ;;; the object interactively.( Q6 |+ Q. }1 _# v5 M" `4 g! z# |
- ;;;
6 @! h0 m; |( c- M - ;;; Before (ddmodify) can be called as a subroutine, it must) h" M- x) b3 l
- ;;; be loaded first. It is up to the calling application to t( j) U, _5 d* A4 d
- ;;; first determine this, and load it if necessary.0 H' q8 U1 g& G5 @0 m! Y
9 q; \5 }. B: L$ B- 8 F$ R5 }& h) F& t3 J9 v) w/ d
- (defun ddmodify (ename /) w0 }; e. ]. ^
- 2ndpt ell_calc_area move_pt1 templist+ K* K6 q3 [3 `
- add_mdash ell_tile n tempmod
/ u5 L3 Q8 Y+ N/ \7 Y3 t" H. D& u+ X. @ - alipt eltscale name tempst_ang
6 x' S) P8 R/ `; q( p - ang eltype newpoint test_ok
/ a- B7 F. } s% b# S - arc_calc emod next text, m7 C3 H) R4 I% I7 ?
- arclen end_ang next_vertex th-value
/ C# x W, [6 ? - assoclist endpt obl tile' c8 _4 k0 L9 Y" f8 u* A
- atprompt errchk off tile_rect. j; s& r1 x$ l& o0 [5 A) P( [
- attag ethickness old_majrad tilemode2 n" p% U) P* c% d/ J* ^
- attprompt etype old-closed totang
/ u: C; P. b4 d1 Q2 O - bit extru old-closedm tstyle
/ m$ }; J; z0 z: t - bit1 fchk old-closedn u b" `9 e" W1 u, O& }( q
- bit-10 first-10-rec old-elist undo_init
6 w4 X" s6 ?2 m; j6 [/ \ - bit-11 first-10-time olderr upsd5 `/ u1 a& K& [* A6 p/ d
- bit2 first-11-rec old-fit v
+ y1 n. F5 l0 L! r$ _ - bit3 first-11-time old-idx va# N( E1 [. Z4 R% |. S3 s* b
- bit4 fit oldlist value
' g5 b. Z" X+ q) H# ?2 Q }4 W: ~ - bit70 frozth old-spltype ver_4
- E7 Q% a* _0 a2 n1 K) }& v% ~ - bit-70 f-vis old-u ver_ang1
, K: i* q( ^# }8 z* L - bit75 fx old-v ver_ang2
. S, p+ I8 Z, Z% G3 t - bk-up get_color on ver_col
( h% s5 X: p. D9 }& h0 \7 j - bkwd getcolor onoff ver_colsp
5 }+ _6 g* W" t0 l; L - boxlength getindex on-off ver_eangle
6 l1 d5 X: k) B* J& [, j/ \# ? - bylayer_col getlayer patlist ver_hght5 J# C8 f0 W. l5 K
- bylayer_lt getltype pattern ver_majrad
* P" c( G% F! }! Z! T9 l4 r - calc getthickness pltype ver_obl5 L; r% U5 |, I, {# [/ k
- cancel globals polytype ver_pt1- q0 x) s2 T/ v- B
- cir_calc ha pre ver_pt2- T& ^" a! c+ c8 f% w
- closed ha-prev proplist ver_pt3' n" y. M/ N- G: a
- closedm help_entry pt ver_pt43 w& Y: D- c* T0 a7 e2 G& D/ Y
- closedn hght pt1 ver_rad, p% j3 ^6 C$ Q- u5 z; l
- cmd icvp pt1_eq_pt2 ver_rot. q$ t1 c3 R! f8 V' V+ k7 h
- cn image_add_vector pt2 ver_row( M7 D& B2 A. q
- cname image_clean_variables pt3 ver_rowsp
7 ]+ s; r( Q( f) p - cntl-pt-indicator image_cross_product pt4 ver_tag4 C# q6 `4 m8 Q0 X t% {2 A
- code_71 image_disp_opt ptype ver_u+ ?3 Q5 O* _' K
- col_tile image_dot_product radius ver_v+ a* ~+ w. `+ ^$ ^' [( p
- col-idx image_normalize_vector rational_spl_flag ver_wid. S& ^4 ]! ~/ c* E: o
- colname image_rotate_vector reset ver_x1# y0 S6 Y- G. L O
- colnmlst image_scale reset_flag ver_x21 p: M/ ]7 R4 f0 d3 {9 P
- colnolst image_scale_vector reset_lay ver_x3
$ U3 j$ ~: {$ o) }: Q# P3 w% v* S - colnum image_update reset_lt ver_x4+ G, i) J' h- \" g6 P& b! m7 J3 |) z
- color index reset_uv ver_xline_pt1) L7 L5 g ]! P k6 n" o8 L
- colorname inv rot ver_xline_pt23 t& ~* R7 E& Z V' n8 c
- colorno item rows ver_xline_x1' f" p+ [8 H4 I; Z6 Z* d
- col-sp item1 row-sp ver_xline_x2
! g4 e- u7 A6 Z" V! }9 A) }" B - columns item2 rrat ver_xline_y1
+ T! D9 F6 ^( K4 K' c! u - con itemlist s ver_xline_y2' v$ I; x: g( `% `% K
- coord jlist set_action_tiles ver_xline_z1) h! e* @, @* |+ E
- ctr jlist_act set_just_idx ver_xline_z2
# P; n5 u i* ?& C& {9 m: o# k - cur-10-rec just-idx set_tile_bk-up ver_xscl
# S7 a; G: U4 q8 P7 D - cur-11-rec layedit_act set_tile_cntl_pt ver_y1
5 @% q$ W; B) @4 A( M& O! q - cvpname lay-idx set_tile_data_pt ver_y2
9 J9 x4 R! U+ D& H. E; O - dash layinfo set_tile_dirv ver_y3
! E+ i# w! V( `, s3 F$ c8 ?2 U - dashdata laylist set_tile_edges ver_y4, }1 A8 y: z- N- o: l
- dashlist laylist_act set_tile_endang ver_yscl& k! V8 m% c. [5 N$ S/ ]
- dashsize layname set_tile_hght ver_z1+ i: |4 E! q9 X! g; N
- data-pt-indicator laynmlst set_tile_icvp ver_z2
: g: K+ t* w g& z0 ` - dcl_id layvalue set_tile_just ver_z3
; c) K/ h: T R - dd3dface line_calc set_tile_obl ver_zscl5 ~9 E9 @: T# k1 m& c% w% V
- dd3dsolid linetype set_tile_prompt verify_a) O2 U! @1 A# Z+ w* t
- ddarc list1 set_tile_props verify_d$ ~* W! `1 } I) H$ [4 i3 \
- ddblock longlist set_tile_pt1 verify_i$ _% f! G1 {) h8 K, e
- ddbody ltabstr set_tile_pt2 verify_xline
+ P. K! X$ E9 T8 }+ i - ddcircle ltedit_act set_tile_pt3 vfy4 U3 T" h+ K2 I4 b. |" b
- ddellipse ltidx set_tile_pt4 vi1 y/ ]. e4 ]4 v6 P+ T
- ddgetprompt lt-idx set_tile_rad vlist0 M- x. L+ Q5 y3 I0 v7 G2 ^4 e
- ddgettext ltlist set_tile_rc vname
+ B6 R8 o; e& t' T' D - ddimage ltlist_act set_tile_rot vpf
# ?7 \8 x; @ b) l- L* D! f" b - ddimen ltlist1 set_tile_scale vpid0 d" B7 X9 U* D# ~
- ddleader ltname set_tile_spline_props vpldata- `% [2 |; E7 c, }5 _
- ddline ltnmlst set_tile_stang vpn
# Y) M* V9 H& Z6 S* N9 m - ddlist ltvalue set_tile_style vpt' a9 K. o x/ X4 H7 l5 P: E
- ddmline ltype set_tile_tag which_tiles) k" N! d1 m8 x* k7 _6 B: K/ h% E
- ddmodify_err m set_tile_text wid
* j/ a+ f. N; {9 V( ]) S - ddmtext majrad set_tile_vpt x" m$ m$ z6 E- P
- ddpline make_lay_lists set_tile_wid x1
$ u7 S& I" o' B3 y$ d* k - ddpoint make_lt_lists set_tile_xline_pt1 x20 y% I' u3 H: l7 r
- ddray mdashlist set_tile_xline_pt2 x3
1 A" }3 Q2 ]. E1 f3 D - ddregion minrad setcolor x4
6 S/ Y7 }" |6 G% p9 j& i - ddshape modify_3dface shght xdlist
* f0 T" ]1 f! J) E4 | g - ddsolid modify_3dsolid showpt xline_pt1
: V! [) u0 ~& d ]1 R( i a6 T - ddspline modify_arc size xline_pt2
; j0 `- O# n1 a j+ q - ddtext modify_block slist xline_x1/ a: q" }! G H
- ddvport modify_body sname xline_x24 V! A( Y+ Q$ B. Z' r- v/ S7 o
- ddxline modify_circle sortlist xline_y1
1 X: q- J2 q; D; T - denom modify_ellipse spltype xline_y2
' U) z3 U- A! H8 n9 A' P - dialog-state modify_image ss xline_z1. {) N; e+ C/ \9 G0 Y% B
- dir_pt modify_line st_ang xline_z2
- s0 ? v* N7 O9 T2 Q - dir_ptx modify_mline stpt xscale
' C: |8 r/ n5 d) T% y) ~+ X& K' Y7 t - dir_pty modify_mtext style_act xx& p% x7 D4 A5 Q# e- C# T% _1 B
- dir_ptz modify_point style-idx y
8 l# W E, k1 |5 R( F2 g0 s - dismiss_dialog modify_polyline style-list y13 q: x8 V* M' a" {( e) x
- drawpattern modify_prop_geom tagval y2
6 T5 W5 D7 S7 z - echo modify_properties temp y3
1 ~- D1 ^, F6 c - ecolor modify_ray temp_color y4
; s0 h- ~# s4 @% z; @, U - edge1 modify_region temp_dir_x yscale
! |4 J& x2 }9 W/ {4 w! h L9 | - edge2 modify_shape temp_dir_y yy
0 M; {5 l( a/ b' C; p0 ^ - edge3 modify_solid temp_dir_z z1
4 o2 O# ~8 E1 P1 e. H6 f% Z - edge4 modify_spline temp_xline_pt1 z2) z6 X/ P* B2 q! u4 D
- edgetest modify_text temp_xline_x1 z30 w/ f2 t7 v" [* E E& B' w- {, R
- elayer modify_vport temp_xline_y1 z47 C+ `1 ?$ S9 e- P5 Y$ T! m9 C7 @* j
- elist modify_xline temp_xline_z1 zscale# d1 M8 b" g1 U
- ell_calc modlist tempend_eang zz
' S' s' I, d _' M - dir-idx safe_ddedit ver_MtextWidth xcliponoff- D- j# D' n5 |2 g
- MText_style- ?; K* }3 z, P0 \0 q
- )
4 r3 }' F9 j4 R. x" Y! O3 y, ~ - , _5 T4 T7 v, s+ H, L+ }
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho" j. @" t/ Y2 q+ u
- old_error *error* ; save current error function {' }- F1 z2 G6 d+ c
- *error* ai_error ; new error function. J! O% O1 v' R* ?0 ?! j$ t
- )
# [) E# G0 R4 z, c
0 ?9 h% x- D9 n( ~4 T- (setq old_pickstyle (getvar "PICKSTYLE")) ; save old pickstyle1 x) y2 e3 J7 Q. e
- (setq new_pickstyle (logand old_pickstyle (~ 1))) ; turn off group selection* v* X9 j& B r1 _) t/ x* v" o M
- (setvar "pickstyle" new_pickstyle) ; bit and set to new value
8 E7 c- X( e# n& J - 4 \1 ~& Z* C. R( _
- (setvar "cmdecho" (cond ( (or (not *debug*) (zerop *debug*)) 0)- p4 o4 N& K9 b: Q( A g' k7 [$ j* _
- (t 1)))
% b f+ P1 O2 O8 Q - (cond
+ ~% a9 Y U7 T1 Z8 s - ( (not (ai_notrans))) ; Not transparent?
- d) c8 K1 h+ w2 H0 _$ u8 {2 S/ y - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
: |$ p p* v+ G5 _! O" ] - ( (not (setq dcl_id (ai_dcl "ddmodify")))) ; is .DLG file loaded?
( I/ r e) x5 Z s$ S) ` - ( (not (setq ename (ddmodify_select)))) ; object to modify?
2 @, c" L8 ^! N+ ~1 n. {
6 f) s& S$ N3 P& G. j B+ L- (t (ai_undo_push)
+ K& R+ ^$ r4 v* q7 ^0 u - (ddmodify_init) ; everything okay, proceed.# h# X2 V) K- \$ |6 `
- (cond
8 ?2 N; T% W0 h) B+ m3 e# Q - ((= etype "LEADER")
- t; m( |& j8 _# s2 r - (setq help_entry "modify_Leader_dialog")! \ [ q" ~/ s" S( D% v ?
- (ddleader): [- i& V( H; R6 w4 [1 a
- )
$ `. O7 z! m/ W7 |/ N! E - ((= etype "ARC")
8 C4 Y2 U. c& R - (setq help_entry "modify_Arc_dialog")
- y2 K+ _$ m: I" f9 ^7 \ - (ddarc)$ K9 t$ C$ ? l) q9 Z# V
- )6 X! K% R+ b9 h- k* ?$ {5 t
- ((= etype "ATTDEF")$ C: E g5 Z' ^( r( W
- (setq help_entry "modify_Attribute_Definition_dialog")
) {# a! P4 i5 y, y% ^# j4 Y C - (ddtext)! k# M4 a% [% A( y2 E7 r/ H* f" C
- )
4 w9 m% n8 C% u+ B" @ - ((= etype "CIRCLE")
& q- X; h9 O9 J& G! \ - (setq help_entry "modify_Circle_dialog")
( v% ]/ E3 [6 m4 u6 U6 m - (ddcircle)/ X! U. l- r+ f" y Y
- )
4 z0 u$ f4 t. b% V - ((= etype "ELLIPSE")& m' T* E9 Q: \1 h' }
- (setq help_entry "modify_Ellipse_dialog")! [/ b' I6 s `0 b1 h. w( H
- (ddellipse)2 \' Q! S2 K5 Z; L
- )3 a) i, X4 R3 C+ e; ~6 d
- ((= etype "3DSOLID")' v, c5 J, o; L! N- V
- (setq help_entry "modify_3d_Solid_dialog")' L2 G _: f& A6 X5 A4 |; K7 f* V
- (dd3dsolid)
4 p4 Q9 c1 c3 V: L - )
0 K2 H0 }, p9 F% M+ g; T - ((= etype "BODY")
3 k6 c( V P2 q9 q5 i+ x6 @4 s - (setq help_entry "modify_Body_dialog")
" |% A- x- h% z2 S3 A& a+ I$ G - (ddbody)
$ ~/ z! ]. [- ~7 k - )
' \& B0 c' G% i$ V5 g* Y: A, } - ((= etype "REGION")4 e- P3 w4 s+ q6 R8 ~
- (setq help_entry "modify_Region_dialog")
: ^' u9 `# F" _2 \( M - (ddregion): G' d% u& |9 U6 [
- )8 q3 b- \& j" P! X6 s$ z( M- R
- ((= etype "HATCH")
' Y# t2 U4 |+ D8 E/ Q2 ]$ C - (setq help_entry "modify_Hatch_dialog")
3 B( L; _; {$ s. j0 w! d( v4 ] - (ddnewhatch)
7 z- q/ x3 D B* k/ }+ y - )6 P0 S, {( L3 M3 a& R# z) r
- ((= etype "SPLINE"). w$ V/ \2 v2 }
- (setq help_entry "modify_Spline_dialog")
8 F1 @! U) {6 V- a' }1 I# ~ - (ddspline)
4 I) m, I% R; _ - )$ f$ e( z% {* ?5 e3 [+ r; I
- ((= etype "INSERT") ; see ddblock for help_entry
: u* |. y; d4 U& j; S - (ddblock)
i2 P/ ?; _* e* f& }" T# P - )
( t" D# N! F- z - ((= etype "LINE")
1 {9 x ~8 @9 e( i) @( e4 n - (setq help_entry "modify_Line_dialog"): u, Z5 `" k' p' ?
- (ddline)9 f4 k! V" w4 u- _! H3 B1 p* p+ p
- )" S% j' {$ s& N2 t
- ((= etype "MLINE")2 ~" t9 `3 J9 I# _
- (setq help_entry "modify_multiLine_dialog"). b" U( u5 z y7 Z
- (ddmline)8 p7 x! O6 N b# H0 j; ?% T
- )
; t: h) ~4 _; q4 H b. S% H& j9 y* _ - ((= etype "RAY")
2 g' O$ V5 E" N/ w5 g& M# M - (setq help_entry "modify_Ray_dialog")4 H1 c. x/ w# X" d) r
- (ddxline)
$ ]8 R- u+ ]4 o5 C, T) o; { - )
0 L& h+ F; b$ Z( c; x6 Y% f9 v+ N1 h - ((= etype "XLINE")0 T( H* P; J7 _' _4 A' A
- (setq help_entry "modify_Xline_dialog")
) y1 a( k" o9 w( ~7 z - (ddxline)
7 w# U9 j1 k" G$ O% {" P4 ` - )
1 f. n3 U/ X; q: H: F - ((= etype "POINT")
8 @+ Q9 C. ]4 Z& H- p- b - (setq help_entry "modify_Point_dialog")) H+ V/ t7 S6 F+ a8 N! m# t
- (ddpoint)
* V" }6 ~7 O( \5 m, Z7 |: r6 Q' G' m - )" H5 k4 ~, u. }9 U( F/ y9 ~" Q$ N! j
- ((or (= etype "POLYLINE") (= etype "LWPOLYLINE"))/ L& j; C) ]0 y) T
- (setq help_entry "modify_Polyline_dialog")
, B+ L3 C, a" H - ;; If a 2D pline, check to see if it is planar to the current/ Q* F; T& r7 b1 u/ Y I* O0 }
- ;; UCS, reject if not. To see if the pline is parallel,
6 R- `. \, c( D6 y: ?/ i' E - ;; the 210 group (WCS) is added to the current UCS origin (WCS)7 U9 [. r* t" u6 v1 c
- ;; and then converted to the current UCS and checked to see if
6 R6 \( o$ n: t! h; X" G+ s# u - ;; it is equal to (0,0,1).' |6 n b" I0 U1 l2 [
) _) H- b2 N& j- ;; Incase the 210 is default and not in the dxf list.
5 z" H& P, L$ S( c& G5 m - (if (= (assoc 210 (entget ename)) nil)0 s! A/ U! F/ d% Y# i- c
- (ddpline)
: k, F1 n0 t( a5 p- |( o6 V - (progn
9 a% {8 z1 |! o5 l - (if (and (zerop (logand 120 (cdr (assoc 70 (entget ename)))))- z% {# e- ?5 C# l& K2 f
- (not (equal '(0.0 0.0 1.0) y U) b& X! |" H
- (trans (mapcar '+4 |! I9 g4 i9 E: V- K
- (cdr (assoc 210 (entget ename)))* f6 }; d4 [/ B% x0 r
- (trans '(0.0 0.0 0.0) 1 0)
" m# T- r; Z" Y& K - )
' u% J E6 p- T$ t( f - 0 1
9 ]4 g0 C9 [. d# e# N% v# n% U - )' u" e5 m8 U7 D t/ {+ K
- 0.0000000001 ; fuzz! U0 N& R2 B" V {
- ) M" }4 S4 [0 X3 f- V
- )
6 f" L- l; c3 H5 m% G, L' h# E - )
* Q h3 F" N1 b8 q - (princ "\nThe 2D Polyline is not parallel to the current UCS.")8 Y' }% v6 [. V! D* o8 z" i
- (ddpline)6 v. S3 d8 Z" p# |, R0 I9 q( L
- )
3 u/ {8 G* ]+ `# z7 T2 x - )! F5 \0 {8 \/ n8 H5 L" s
- )
# y6 z0 Y# `' {4 f- ?0 ]- G3 x - ) M2 J$ H. @9 E; @+ ^
- 3 l. z+ f! v/ k
- ((= etype "SHAPE")4 \, u r- x% \8 J& D" z
- (setq help_entry "modify_Shape_dialog")
M* k/ C5 e1 V: e - (ddshape)
" F0 |4 C$ F) f$ V5 e - ): R; p6 T: i# w" L6 C5 r/ O% v [
- ((= etype "SOLID")% ^) O1 I9 R- i% }
- (setq help_entry "modify_Solid_dialog")
9 {# n: |9 z5 F4 E7 @9 o6 L - (ddsolid)
+ M7 V( h6 y: S7 ^ - )
8 d2 R1 E( V5 z6 N1 {% @ - ((= etype "TEXT"); H; _% ^* t. P6 A1 J- l
- (setq help_entry "modify_Text_dialog")
. ~9 e* {' }: S! L# o0 A - (ddtext)! T. P1 u" @: A! z) y) a
- )+ q9 D4 b, N. ?3 x! f
- ((= etype "MTEXT"): N( P; s. y" h9 ?2 l2 k7 Q. ]
- (setq help_entry "modify_MText_dialog")) b$ H7 U s- g9 O
- (ddmtext), q w# L# z* a7 X* S- z, ^. f8 K) Y: @
- )
% p1 c+ B4 e' x6 J - ((= etype "TRACE")" ?: ?* A7 g8 m, Y5 X( c% T V8 E) ^
- (setq help_entry "modify_Trace_dialog")
) O" O9 w: h0 F$ U) U6 z* d - (ddsolid)" {9 w/ R2 G6 ?) Z5 v) l. Q
- )% R6 J: n, q9 b$ X
- ((= etype "VIEWPORT")
3 I* I6 F& s) V/ z. x - (setq help_entry "modify_Viewport_dialog")& j" `5 A) d: n q a
- (ddvport). j# l1 j2 N2 P$ @6 D5 d& M
- )! w1 ?( K9 t" z2 m7 F0 [. D
- ((= etype "IMAGE")
?. |% o- R# R# W8 U' Y) G - (setq help_entry "modify_Image_dialog")6 R$ O3 {, s% i* j
- (ddimage)( ?! C& I* c& s9 x8 K2 Y; ~# l
- )8 w, s% |& o$ F5 w) G6 I2 j! |
- ((= etype "3DFACE")
# W) A) x! B* Z! e - (setq help_entry "modify_3D_Face_dialog")6 t" e5 L) }) b
- (dd3dface)
. G0 f- ?5 u/ z- c, L% u - )
( a0 C' `7 C2 [ - ((= etype "DIMENSION"); B( ?( B9 g6 l% a
- (setq help_entry "modify_Dimension_dialog")
3 `# g0 q; N( ~+ ^ - (ddimen)
* I" Q1 P5 n0 T0 d# ?- t - )
' M. l. g4 ]5 u6 Z. ]; }8 u( t - ((= etype "TOLERANCE") U9 z- v8 y/ o. }+ ]! z& p3 S
- (setq help_entry "modify_Tolerance_dialog")
8 A/ r j8 [9 z3 m' k - (ddtolerance)- o* C' a2 { A
- )6 m) L- z! w4 n1 w
- ;; Fall-through condition changed by MCAD for MDT 1.1 release.' v4 \9 J2 I7 Y! c/ \3 R" R2 g
- ;; This allows DDMODIFY to work on any custom object or any new object type+ l' E4 I. C. q3 Q
- ;; that isn't specifically handled above by calling the more generic DDCHPROP.
6 H4 ]4 r( j/ n. ~1 t. k- g - (t# d' s5 R) |# ]! f9 X& Y8 i+ D( Y
- (if (and (not ddchprop) (not (load "ddchprop" nil)))" [5 M* Z1 D0 [1 z8 \; @* _. p1 s
- (princ (strcat "No dialog support for object type: " etype ".")))5 \( s( e X3 l
- (progn0 O/ u: B" s8 F& q, m$ q7 N5 |
- (setq tempss (ssadd ename))
/ h0 R, E4 h/ ~, C6 C! e - (ddchprop tempss)6 A( g1 i6 x3 D, D' q0 o' \$ X
- (setq tempss nil)" p0 K3 i1 v9 t
- )
+ U Z" x( p; X/ [3 j - ); r$ U L! H) G' J3 ]8 i; X
- )
& N9 O1 j' z& I8 @4 H+ b# Q+ p - ;; Previous fall-through condition.& r2 g0 B7 J8 t+ C- Z" @
- ;; (t (princ (strcat "No dialog support for object type: "2 [0 S; G- c# n* D
- ;; etype "."" m z6 U1 X( H7 E: r
- ;; )/ N* ~, K- F+ ]( X$ z; D
- ;; )- j2 q; |7 B" o* P
- ;; )( v/ n0 p4 f$ M! E# `% l# _
- ;; )9 J& I+ r% n& B- K( y2 \$ E
- (ai_undo_pop)4 q( Q: f5 O, C \+ @) ^+ v
- )
' [) w2 r7 W# C+ h* i0 _' z2 X - )0 T; m" x- @5 g+ g; {, k
5 O$ z7 a& p0 @0 I8 H- (if (eq new_pickstyle (getvar "PICKSTYLE")) ; if user didn't change pickstyle) Z$ e# Z, S1 L4 I" O7 N
- (setvar "PICKSTYLE" old_pickstyle) ; transparently then set it back" ^0 \! C7 H1 T; J. Q T( u
- ) ; to what we started with) b/ T& |! v' d$ Y
/ A; y, d) c! r& W- m- (setq *error* old_error)" u5 m( B3 X; J
- (setvar "cmdecho" old_cmd). k4 _( R% v- O6 b( S8 B- \" ~
- (if (not reset_flag) ; if object was modified, then
5 q, _0 F X& @/ z- O- P) S - (ai_return ename) ; return it's ename to caller
. x) ]1 c: Y4 \ B2 O - )9 S1 P; I- y8 C3 Q/ U8 L, |
- )
( P N. t. N8 @( f9 ` - 0 }) Y6 [3 e# q9 ]+ q
- (defun checkForLockedLayer (ename)
. x3 {- [1 J" v' k7 l - (setq layername (cdr (assoc 8 (cdr (entget ename)))))7 M4 [1 I6 C- N
- (setq layerflag (cdr (assoc 70 (tblsearch "LAYER" layername))))' o% s/ V% o# `) v! _3 P! V
- (if (= layerflag 4)
7 F3 |( K( T% u9 }' I& q1 | - T
9 J$ ]2 o! q+ i: d% N - nil `, _ m, M' {) Z, g/ ]
- )
5 L5 h8 H/ ?$ x0 t - )- h& n0 ^1 @# ^& p
- " @/ }. b3 z0 k1 |
- (princ " DDMODIFY loaded. ")
: [5 h# @/ |& c# B' a, ?9 Z5 L( N - (princ)! J( i# J5 I9 g) ?. ]
- ;;;???;;;---------------------------------------------------------------------------------------
9 M+ t8 B- }8 L1 W, g5 ]5 |! O - 8 c: }% c$ l( f3 r
- ; Next available MSG number is 8 7 {8 B5 q8 i, f# ~2 b" Q
- ; MODULE_ID DDUCSP_LSP_
( L8 z* R1 e3 d4 X- d - ;;;& x- E9 d w% j( s$ o5 L! c" x0 l
- ;;; dducsp.lsp* C# y0 Y o' s
- ;;;) V# v! `+ Q' I; G9 b" C
- ;;; Copyright 1992, 1994, 1996 by Autodesk, Inc.
% \( ^# f* e! X1 g - ;;;
" q2 {/ A7 y" e" x1 a4 m S - ;;; Permission to use, copy, modify, and distribute this software- V, {2 ^/ }1 Y r# e
- ;;; for any purpose and without fee is hereby granted, provided
9 V! `$ N9 U/ J; i, T8 V4 T - ;;; that the above copyright notice appears in all copies and
# a# \6 G r F. V9 A - ;;; that both that copyright notice and the limited warranty and
; D% o8 i$ M4 b6 ]8 R - ;;; restricted rights notice below appear in all supporting6 l3 ?6 n ]* u# z' P* L
- ;;; documentation.
3 w8 \, L8 k" i' r - ;;;
3 w( l, `& o2 r* P- Y - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.4 U+ b# |% Q4 Q
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF; t$ t6 z% q7 R( |: x, o
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
7 }0 [" ^& u P. } - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE9 |3 N1 W1 k* z4 ?# V
- ;;; UNINTERRUPTED OR ERROR FREE.4 R* e0 h: r+ X$ }& J
- ;;;
& @: ~* k; m+ g$ C6 J. } - ;;; Use, duplication, or disclosure by the U.S. Government is subject to. ]7 o* ~6 T- @6 z& t' }# r
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer: o0 C/ e/ X# z2 t, f3 O2 D: v0 q
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
. @1 q8 n6 r0 [$ a' z - ;;; (Rights in Technical Data and Computer Software), as applicable.2 g, L& T& k/ u" W# b _4 ^8 U W
- ;;;
" n- u6 C: y0 k - ;;;.
2 l; V/ c; n: f4 N; W& A - ;;; C:DDUCSP - User Coordinate System presets dialogue., A, u5 p8 w; ^1 t
- ;;;
/ Q) i# t2 H. w, j - ;;; Uses DDUCSP.DCL for the dialogue definition. The
, R, B1 G/ Y' v1 J - ;;; slide images are in ACAD.SLB.6 H8 r5 M$ O) z' {
- ;;;
" o0 K. ^, L3 H7 u3 m0 W% f - ;;; ===========================================================================% o# d# o: y2 E& \
- ;;; ===================== load-time error checking ============================
! T B% n$ q. j! p7 K ? - ;;;
% f7 p+ t- F( z o" {
9 t: x) W. Z% Z/ e& Q+ H+ \- (defun ai_abort (app msg)
) W5 I7 ^7 h* }4 M. i% L" Z0 @ - (defun *error* (s)
3 J% h2 }! j: x7 v1 Z6 H- f - (if old_error (setq *error* old_error))% x( q. d6 h# { Q7 |$ |5 D3 g# q. T+ d
- (princ)) c8 |9 u) z4 O1 i7 J* E- @, B
- )
% \0 w2 `0 c$ z9 p2 |# o - (if msg
+ h, I) t3 w7 y' I+ L - (alert (strcat " Application error: "
" J% G, l7 }8 w( c* d - app0 i9 H+ K* m A& V+ N
- " \n\n "2 z% C) ] F8 s4 y- a7 n
- msg- o. K; Y0 I# I, m; D Y$ f
- " \n"
2 {7 V# P& Q( O' D) J1 p. A5 Q - )
2 \6 N3 b* c; H1 G" j% } - ); r2 R; L! S; D) Q8 G- R2 l
- ): o, O& u- N. t: e& J
- (exit)
9 ?% z% F t. v5 v \# c" C - )' T+ r( h4 s M
6 Y+ o, X3 @9 J6 Y- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
/ {& f* e" V$ C; U - ;;; and then try to load it.: b; {; i( y6 h; V+ |
- ;;;
7 B. Q+ }: [$ [5 q( ^ - ;;; If it can't be found or it can't be loaded, then abort the
0 O* M7 m$ s+ O. u& X - ;;; loading of this file immediately, preserving the (autoload)
3 Z/ i9 L s" {, h( _7 E - ;;; stub function.
& Z, G* N" U1 e
2 Q( y1 f4 {, N- (cond
. g9 I e) z$ u - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.5 t) N( l% h8 Z+ h1 |
6 F- Y! t' V- m- t2 S, L, f3 c+ @% M4 }- ( (not (findfile "ai_utils.lsp")) ; find it; j7 z: A8 g& c) s" E9 b2 t' v6 G
- (ai_abort "DDUCSP"7 z9 w, u1 l2 g2 M% N
- (strcat "Can't locate file AI_UTILS.LSP."/ x; y p; J, r9 p
- "\n Check support directory.")))
% P2 I+ X! e5 O8 y$ M/ m! y. y$ X - $ j# V, t! [* m
- ( (eq "failed" (load "ai_utils" "failed")) ; load it
, n7 A" Q* j# J& |' h7 ] {3 e - (ai_abort "DDUCSP" "Can't load file AI_UTILS.LSP"))6 k9 I, ]" H, |1 x& k4 `0 r5 X
- ), {' x7 ?/ \. s6 l# t* L
- 8 j& M8 r6 y( v, u5 v& T* @3 a( q9 F: t
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
- s( m( i- k8 c+ t+ @3 |( `6 M5 B8 ^ - (ai_abort "DDUCSP" nil) ; a Nil <msg> supresses
1 _' X! L5 ^% Z7 f9 A4 p& |3 _ - ) ; ai_abort's alert box dialog.
+ ~" L9 { m- T( ]3 r
$ f5 u* \" J- i9 N9 I% Y! g- ;;; ==================== end load-time operations ===========================
! d+ T# e+ f4 \2 { - 7 b1 U: e* ?2 w1 I" c0 [& G
- (defun ai_ucsp_start ( / program)
2 A- o- @6 O, F - ;; Get program name
) f" U3 l- L* T - (if (not (setq program (getvar "program")))
% P2 [: u: Q* ^+ w# V - (setq program "acad")
1 b5 N+ T+ l* Y5 d - )" |4 n' P X. ~+ p8 `* e
- (foreach v0 '("world" "left" "cview" "top" "front"
# B2 [ F7 M+ K$ Q2 X - "bottom" "back" "right" "prev")
1 D' S8 A2 S; A/ t1 K+ u) |$ D - (start_image (strcat "ucsp_" v0))$ y V6 H- [( B, s0 m$ X/ Q
- (slide_image
6 i% p2 G$ q- @5 G - 0 0
$ b3 m% Q2 Q Z* l - (- (dimx_tile (strcat "ucsp_" v0)) 1) (- (dimy_tile (strcat "ucsp_" v0)) 1)6 d7 D7 F0 a7 A# @/ T8 l
- (strcat program "(u-" v0 ")")
4 H9 e, _- v9 v! B3 i6 s - )" T9 c, h+ r2 [& J( R0 |, ~2 M
- (end_image)/ j8 }" K5 w8 C3 l/ k; N, C/ }
- )2 N$ M0 k6 c, _: b/ \0 v
- )
5 n/ z, A: G y- D7 U. c: I7 q2 C! B - : Z1 }# u1 q% n( c
- (defun ai_ucsp_set ()+ h0 ]( P9 U# c+ H& t* |, U! Z
- (if ai_ucsp_sv1 w% G% ~0 K1 y% l% y% n# T* C6 L
- (command "_.UCS" "_V")" R7 @1 [2 j; Z+ X, p
- (if ai_ucsp_prevs
9 V Y- ]1 o9 [- Z6 V3 Z! K1 P4 Z* A: X - (command "_.UCS" "_P")6 m& z7 I( o/ |" D% @5 v
- (if ai_ucsp_chg
/ ?' M1 o/ G) z5 r: W8 i - (progn
- P7 v0 E4 p5 O2 m3 t/ y - (if (/= ai_ucsp_a "*")* A: v6 L# N. I1 K
- (setvar "LASTPOINT" (trans (getvar "UCSORG") 0 1))
+ G" b' G+ i, W) J - )5 K2 I% u5 h1 n# a2 T
- (if (< ai_ucsp_pick 6)8 F) _5 r6 t, X& f
- (setq ai_ucsp_set0 "@")
/ `. o/ a2 }/ ~9 J6 i' P: B - (setq ai_ucsp_set0 "*0,0,0" ai_ucsp_a "*")
6 I, S/ \% d+ v$ B8 H P1 B- w - )
8 i) x# G7 a7 |9 u - (cond ((= ai_ucsp_pick 0) V* ^! n W( i; T
- (setq ai_ucsp_set1 "0,-1,0"
. n% y' Z) F2 C5 f3 W8 {, D. L) } - ai_ucsp_set2 "0,0,1"/ L2 }# d6 ?; I
- )
1 _5 i3 }. b' f' {7 Y4 T( Q, H - )! e/ @- a% ~0 r) ^: A
- ((= ai_ucsp_pick 2)5 L2 W. [9 Z6 x+ x- i, r O6 |
- (setq ai_ucsp_set1 "1,0,0", F2 T6 }$ V$ A- u" |5 [
- ai_ucsp_set2 "0,0,1"
0 H/ Z( R. q% N) k. C - )
6 O. G6 M0 k2 L1 ^$ n) O - )
* e& R b6 K# V - ((= ai_ucsp_pick 3)3 N8 y7 |* Q6 a6 n8 s! f. m
- (setq ai_ucsp_set1 "1,0,0"
/ E4 T3 h; {. t9 o! J) A8 J7 Q - ai_ucsp_set2 "0,-1,0"
! c8 c2 m' `/ V5 \; e8 l - )! o2 u0 V/ L3 q( e' G( e i
- )% k; C+ m- i) v9 N/ F, @
- ((= ai_ucsp_pick 4)7 Q3 {/ D }8 f, z" N0 z
- (setq ai_ucsp_set1 "-1,0,0"5 c. |1 o2 Q7 C
- ai_ucsp_set2 "0,0,1", m. a% w8 o. s1 ?1 M5 N7 _! `
- )' c' u$ P( A R9 o- l7 _$ ?
- )' l* w9 E: }8 k9 o8 x$ o$ A1 v
- ((= ai_ucsp_pick 5)( Y3 m3 Z" I) D, z8 h/ _
- (setq ai_ucsp_set1 "0,1,0"; C. \3 Q4 P5 [/ i8 r1 L2 [* y4 x
- ai_ucsp_set2 "0,0,1"& D7 B) B2 G K
- )
/ G+ d A, a' H3 }: Q6 U2 V - )
1 S. R1 [" R1 c. W - (T" \9 y& d! @1 Y6 d$ D& E
- (setq ai_ucsp_set1 "1,0,0"
: ^8 `6 Q6 R* Q) e - ai_ucsp_set2 "0,1,0"6 q/ w* P9 v$ s$ Z
- )+ F! o( X$ W9 B- M
- ): N/ X( o) A$ z- f) l, F% x
- )) B$ V6 e8 m4 d- u
- (command "_.UCS" "_3P" ai_ucsp_set0 - i. Q0 O' R2 D4 ~
- (strcat ai_ucsp_a ai_ucsp_set1)
# d: S5 j0 S/ M% c: x1 z - (strcat ai_ucsp_a ai_ucsp_set2)
$ m6 C6 P* i6 d* c - ) ) {# Q; {% N+ p+ k
- )
+ @! ]4 n) ^: L% E9 J) m - )
/ E/ h0 Z) ?$ j: W - )! D ?' ?( L5 J6 A: e
- )& ~+ _0 d0 P& V/ C7 L6 U
- )
+ {* i0 Z, Q" A! x2 T( H
7 y8 f, J! n# N7 ?) K8 L& ]- (defun ai_ucsp_p (val currtile)
4 x" S, {/ H+ C6 `0 x6 O* x - (mode_tile ai_ucsp_currtile 4)4 ^7 C- A9 c3 y# W" R# R
- (setq ai_ucsp_pick val) r* E0 m- }+ L* W7 S+ C: `
- ai_ucsp_sv nil; U! n7 Z7 W1 ^+ q2 H. n: E
- ai_ucsp_currtile currtile3 d3 C$ d" W4 J$ K+ }. w
- )5 M4 x/ F1 k- v" c! a+ U4 H
- (if (/= val 1)
# B% b, M8 I3 L" U$ T - (setq ai_ucsp_chg T)
+ X+ e) J/ {+ v( h/ Z4 N& H, o - )
, N9 O; D7 Q; l/ F! z+ h - (mode_tile ai_ucsp_currtile 4)
: G. \6 T) \& L - )# K+ X' j0 F, I3 i
- , I; A6 q: n% @3 c/ ~# |
- (defun ai_ucsp_swcs ()
3 f2 `6 o' x& \9 d+ c8 o9 @' z - (mode_tile ai_ucsp_currtile 4)9 E- H% N/ G6 i
- (set_tile "ucsp_a_wcs" "1")
8 t- B+ a/ j' V - (setq ai_ucsp_pick 6
1 e' k+ \2 s) `9 h) F# | - ai_ucsp_sv nil# z5 W2 Y. M7 t- E% v
- ai_ucsp_currtile "ucsp_world"
2 D0 X( S$ p# T" K - )
+ R" y; V* I) D - (if (/= 1 (getvar "WORLDUCS"))
; j, H/ U% Q% I - (setq ai_ucsp_chg T). }& z+ b! x9 ?4 r
- (setq ai_ucsp_chg nil): D! @$ c/ b7 Z: v& Z$ h
- )+ A% l' O7 P/ m6 t' q
- (mode_tile ai_ucsp_currtile 4)
! {. e; g- _0 g% M* R8 K2 J - )' I/ D2 v# n ?7 D/ K
7 p' B1 i: a$ Z" u- |1 m- (defun ai_ucsp_cview ()% |6 b' @5 j$ e
- (mode_tile ai_ucsp_currtile 4)
+ [7 J& P& n/ q) C% A - (setq ai_ucsp_sv T . w! v- X5 u& s
- ai_ucsp_chg nil4 J' s8 q: ]2 O3 F2 @8 c3 z$ }
- ai_ucsp_currtile "ucsp_cview". J9 P* o) n' z8 V& g- D+ v6 z! E
- )
- l! x4 b3 V; a {, w P( b - (set_tile "ucsp_a_wcs" "1")2 K% e6 E; G" w) x6 H0 }" C
- (mode_tile ai_ucsp_currtile 4)
/ s% j& s, z9 V/ M - )( `% K$ ]5 B6 [( p% y
- - I! W0 K* Z( e5 ? ^$ F2 l
- (defun ai_ucsp_rucs (typ)
) w$ E4 Z" Y, [+ R! A3 ~ - (setq ai_ucsp_a typ)- o1 K S" n; ?; o
- (mode_tile ai_ucsp_currtile 2)
! e: b2 Z4 D9 _; k4 G+ n - )
H1 c7 {, Y3 g1 W) F4 P2 ` - ! B% Q2 T: d/ b: S$ g
- (defun ai_ucsp_prev () L$ X3 J, S! `! R, d4 [
- (mode_tile ai_ucsp_currtile 4)
1 O5 N! V6 e5 V/ T8 A+ q: e - (setq ai_ucsp_prevs T
+ ?8 C$ C# O% m% k; G - ai_ucsp_currtile "ucsp_prev"0 E5 T8 v+ b5 B3 `$ z, }
- )% S* M' u. _% @2 {# y( u5 }9 q
- (mode_tile ai_ucsp_currtile 4)
! C0 m8 j2 \* k; W - )6 Y) B$ N0 }$ M9 V
: x% @" u& Z- X s- (defun ai_ucsp_main ( / ai_ucsp_pick ai_ucsp_sv globals): I. {& j% }9 ?
- (if (not (new_dialog "dducsp" dcl_id))
+ p5 y! ` n/ y1 x6 J! } - (exit)
! u3 {3 M3 r/ x9 R% C% E/ y+ l& o: j; Y - )2 v- }1 ? @ Z* R: W% H4 C; O
* I0 \& s3 i2 e' e2 k; _- (ai_ucsp_start)
) T1 t; h9 B' G7 h5 ~0 b - (setq ai_ucsp_a "@" ) w6 S' {0 p/ n$ ~+ `
- ai_ucsp_pick 2/ ]# W: {0 ]; [/ s! x
- ai_ucsp_currtile "ucsp_top"
( `& H, V3 X1 S; Y! N - )- c* i; S ?# V' i: F+ o" H2 G9 G
- (if (= 1 (getvar "WORLDUCS"))0 f7 {. F3 B& Q( u* f3 x
- (progn
+ ]8 z3 l. ~! A8 S, U: y! N7 X - (set_tile "ucsp_a_wcs" "1")2 t7 N. H, K$ w- x1 _% a! n& o
- (setq ai_ucsp_currtile "ucsp_world")# A! d/ D2 j+ O
- )6 P) i0 }+ O4 u5 e
- (set_tile "ucsp_r_ucs" "1")# n, H; X, h2 O- r C1 i
- )
2 r1 S: b0 H5 Q* C% u( | - (mode_tile ai_ucsp_currtile 2)
8 J3 i! H4 J. S Z. \3 B+ b - (mode_tile ai_ucsp_currtile 4). w% B9 R6 t: D2 y9 `* T$ U
- (action_tile "ucsp_world" "(ai_ucsp_swcs)"), v& L! X3 D0 p! @5 V9 `
- (action_tile "ucsp_cview" "(ai_ucsp_cview)")" J7 I( Q0 ^* i$ u1 `# I
- (action_tile "ucsp_left" "(ai_ucsp_p 0 $key)"), |8 ?1 o7 J2 s
- (action_tile "ucsp_top" "(ai_ucsp_p 1 $key)")4 y7 h0 U" b9 o" k3 G
- (action_tile "ucsp_front" "(ai_ucsp_p 2 $key)"). q- F5 ]$ c) U% ^3 |1 b
- (action_tile "ucsp_bottom" "(ai_ucsp_p 3 $key)")7 F4 V& i* m8 s8 \2 q$ r
- (action_tile "ucsp_back" "(ai_ucsp_p 4 $key)")
, W% g' [- @2 Y - (action_tile "ucsp_right" "(ai_ucsp_p 5 $key)")
: ~/ A9 U, f8 a. _2 p5 \ - (action_tile "ucsp_prev" "(ai_ucsp_prev)")9 |5 p9 M$ v/ f: V
- (action_tile "ucsp_r_ucs" "(ai_ucsp_rucs \"@\")")5 d9 ?3 S) ~3 S9 d7 [
- (action_tile "ucsp_a_wcs" "(ai_ucsp_rucs \"*\")")
+ M5 h6 k( e6 B) T9 n# I4 j: F6 ~ - (action_tile "accept" "(done_dialog 1)")' w; R3 }* T1 j' c" |
- (action_tile "cancel" "(done_dialog 0)")
# R3 \0 p. k; a: f% Y M; U! e - (action_tile "help" "(help \"\" \"DDUCSP\")")
) Q- L% m5 k* d8 \: I4 A - (if (= (start_dialog) 1)) S; A8 y5 b6 j! C! V
- (ai_ucsp_set)2 [8 U( ?# _; N7 {6 a$ H n; I
- )! k Y8 j, U. Q# y+ U% r
- )9 D: S* ^) z5 m! H
) Y( ~* M$ B+ c* _" @) e8 H% O- (defun c:UUS ( / app dcl_id old_cmd old_osmode ai_ucsp_prevs / n$ ?/ o4 c J* O0 V# g$ g
- ai_ucsp_sw undo_init)
1 u- Q7 ~! m g: `# F. @
- L* ^5 h0 R, {7 b' n* ]- ;; Set up error function.
6 v( N9 C* H+ M+ l% M - (setq old_cmd (getvar "CMDECHO") ; save current setting of cmdecho e8 s+ \8 C$ z1 m2 v1 v6 x
- old_error *error* ; save current error function% `$ n5 n. b5 L2 E% }
- *error* ai_error ; new error function
, y! I- a9 w1 y& G - old_osmode (getvar "OSMODE") ; disable OSNAP for duration
0 z+ Z& ?( R4 \/ s- v - )4 t. ? L; P, w. U, f1 Y# k, P
' S1 f: C6 y( b! j* n9 b# B* W2 U- (setvar "CMDECHO" 0)
4 E" Y1 y O# w0 v - 1 A0 O1 C1 r" O+ W; A+ t* h
- (cond/ \7 P& G& d8 n0 x1 R5 A
- ( (not (ai_notrans))) ; transparent not OK
+ m6 E, x- [7 V9 E8 ?$ O0 z - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
% B- {& p# F4 L4 a1 g. ]* L - ( (not (setq dcl_id (ai_dcl "dducsp")))) ; is .DCL file loaded?% y2 H# Y7 f5 i. s/ Y' j* g/ E
- (T (ai_undo_push)' |$ n+ x+ O( m8 J% e# ~9 L
- (setvar "OSMODE" 0)
* U& m0 e( D- ?2 D3 ` - (ai_ucsp_main)+ G @7 [1 A7 L9 D
- (setvar "OSMODE" old_osmode) S- b% F+ z; {. e0 Y9 `
- (ai_undo_pop)
/ B7 s, [1 ^% ^ {7 H T/ B - )
7 I$ ?( O' u5 b, U, [# i2 P" m - )! m- @: T$ w# ]6 x- b9 D3 K8 p
- 6 ^2 ^5 p7 b/ e5 y* l+ u% h
- (setq *error* old_error) ( v2 u {' h/ ~
- (setvar "cmdecho" old_cmd); |/ }9 R: }9 q
8 T6 z% i+ D( z; k) `4 ^1 k5 E6 {- (princ)
* c& ]9 K+ ^) Z u6 \ - )
' B/ Z, R* C. t& J: ~* y! K - $ K9 U7 H& U4 y6 Z
- (princ " DDUCSP loaded. ")4 M: a( N# C, e- ?7 q- m& d+ u; k
- (princ)
$ ]8 {5 W& P0 B: @8 N$ ~% ^
4 P9 ` S$ _! f7 I- w7 D; D- ;;;???;;;---------------------------------------------------------------------------------------
+ U6 f% N1 H" U7 U2 C - & k) V" c9 d, J) Q2 J3 {
- ;;;----------------------------------------------------------------------------% }. M* R5 |: }2 B4 Q8 P$ K5 I1 q
- ;;;+ p7 F) _ O% q1 l
- ;;; EXCHPROP.LSP & `+ W; j6 V9 ?2 W& x9 l7 k
- ;;; Polyline and text modification capabilities added by
7 ?# t: ?2 u' Q. S1 R, z& X8 | - ;;; Randy Kintzley
% N( `3 a8 N( [9 R+ Q - ;;;
; k- E2 Y+ w1 G& l R# T4 O - ;;; Copyright (C) 1997 by Autodesk, Inc.
" n3 n) l$ H% L0 Z8 u/ n8 ?" i - ;;;
( h& ^& H# m4 }# B8 H - ;;; Permission to use, copy, modify, and distribute this software; c U/ G4 i$ Z7 M
- ;;; for any purpose and without fee is hereby granted, provided: e/ } X; N# |
- ;;; that the above copyright notice appears in all copies and
+ ?( b* k% V/ O2 j - ;;; that both that copyright notice and the limited warranty and
+ Y; t# G4 z' W$ V; D6 E - ;;; restricted rights notice below appear in all supporting
1 T' n' j; m9 @6 G - ;;; documentation.( A7 G' w- a1 p
- ;;;
) D: u- s. f/ t1 t& l! o - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
$ H$ I3 Y1 |% W0 C& v9 V - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF6 J( ]/ Z7 V% y8 I' ]* U( B
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
3 I, v" z' [4 z1 I - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
4 V, A$ D+ n" k) N* O" F- p" w7 ^ - ;;; UNINTERRUPTED OR ERROR FREE.# I) I6 ]7 [$ L0 Y: {/ y
- ;;;
" S7 X1 B4 y" F - ;;; Use, duplication, or disclosure by the U.S. Government is subject to/ C/ d+ O/ y y7 Y
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer; \9 Y" x& N, F& R# K
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
, r0 H* w! [5 T) M4 g/ Z - ;;; (Rights in Technical Data and Computer Software), as applicable.1 G: w, X: D0 S% Y0 |9 ~6 Y% {; b
- ;;;) s) _1 c; p( j5 m! d
- ;;;.
$ u/ \, b8 N) J/ [& P& I - ;;; 28 February 1997
' D) @- F2 Q$ }/ |' K! y- D- V - ;;;8 M& R" j! w0 Y+ q- o9 I' B5 u
- ;;;
r8 H3 L0 [0 z- q5 v/ w9 V - ;;;----------------------------------------------------------------------------
/ L( U0 k2 W" @/ ? - ;;; DESCRIPTION
# w3 s* Q( i! h. o- W$ N - ;;;----------------------------------------------------------------------------
+ n& Y8 w, y K/ U. Q - ;;; C:EXCHPROP is an extended or enhanced version of ddchprop. This
; [6 a& I' p* X" u. A - ;;; command gives the user the abilitie to change several characteristics
$ }$ Z& H) T! T! v2 m - ;;; of selected polyline and text objects.
' C' E3 N6 o, S5 r6 U* B% `- n - ;;; The style and height of selectected text objects can be modified
9 @. h! w# r0 A( B! n- z - ;;; (including text, mtext and attribute definitions) as well as, width and f. ]9 _ e, n4 E {2 D% G. s" ~* |
- ;;; elevation characteristics of selected polylines (includes lightweight and K9 L7 O# O9 Z4 k, J
- ;;; traditional polylines.)# I2 ]) |# x4 M) Y( ?
- ;;;----------------------------------------------------------------------------
2 V5 g9 g" Z) _9 D2 l" W6 r - ;;;----------------------------------------------------------------------------
7 T+ I2 q( v" m( j6 F. C& r - ;;; Prefixes in command and keyword strings:1 @' l7 S! `# L( {1 A, E
- ;;; "." specifies the built-in AutoCAD command in case it has been2 w4 c( w) b; e6 ]
- ;;; redefined.
) _0 E$ C$ d% P8 l/ k - ;;; "_" denotes an AutoCAD command or keyword in the native language
+ |9 A- T0 p1 f) F$ A9 c" `+ c M - ;;; version, English.! p* r" s% R6 m: q4 B! Y' ?% e
- ;;;----------------------------------------------------------------------------
/ K6 h( ?" g/ R% q& r [ - ;;;4 m, G, ~; }( P
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6 D i+ P, s3 ]4 v9 `) L
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; {+ F9 W( r, M F; `2 g% ]8 [4 g
- ;Functions created as result of loading file: exchprop.lsp
% ~. v% v+ ~4 q. z8 T0 d) L6 C6 L - ; DDCHPROP2 K) b3 z' n) P0 B! n4 m/ N
- ; DDCHPROP2_INIT6 h2 n3 d2 x' i B) l2 r' k
- ; DDCHPROP2_SELECT8 u/ D. b7 t" Z; ]2 X6 N: T
- ;
+ K0 [# g2 D7 z' r" N5 @2 X - ;Variables created as result of loading file: exchprop.lsp
( B3 R+ l3 p7 y& {3 P# K - ; OLD_ALLOC- h, d& C7 h% a3 i2 {- l" H1 O
- ;
5 a B# P" A/ R$ b, h3 u - ;Functions created as a result of executing the commands in: exchprop.lsp
0 u# c+ A M; d - ;
$ K1 {5 {" ?6 n9 ~* _ - ;Variables created as a result of executing the commands in: exchprop.lsp
0 V$ F3 s. E' _! U* w8 s - ; AI_SELTYPE6 {5 ^- I' m, t- A% q
- ; BONUS_ALIVE$ e7 Z# n; |8 l4 d; z
- ; BONUS_OLD_ERROR
) R7 J8 X2 [$ z" N - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;( F4 _3 |1 t# f/ m" f
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8 t, q: d2 B3 i6 a- T
; w( w- f" K n7 a+ h- ;;;) F ~4 o& @7 o7 W$ A' e% x. \2 s
- ;;; Avoid (gc)s on load to improve load time.
6 U7 s1 v; _) d - ;;;
& W& b, m S( n# s6 s! D - (defun do_alloc (/ old_allod new_alloc) Y/ H$ T# ?2 \0 Y1 J `8 b- _) K
- (setq old_alloc (alloc 2000) new_alloc (alloc 2000))- @% U' R6 J- y
- (expand (1+ (/ 4750 new_alloc)))
' f1 \# n( w" F$ E) n5 ] - (alloc old_alloc)
( O* v1 q' ]0 Y& l9 j - );defun2 [5 j5 p$ @$ G8 t7 c# Z, V
- * H, F: u$ K, R' [+ v8 P# l3 `
- ;runs at load time - rk/ L- J$ x8 E" q
- (do_alloc)3 x; E7 c& V8 ~4 g* F, P s4 l
- (setq do_alloc nil)& b3 }1 ~# M6 g3 P
- ;;;; ?, Q6 i1 I3 j( `& m# H9 `
- ;;; ===========================================================================7 a. H" a" _! e+ ^( N
- ;;; ===================== load-time error checking ============================) o7 u$ q6 L- |( O& H% \5 S
- ;;;
; S2 S& n& O/ j- L+ h M - ; m( {8 r( c) `0 ]" E
- (defun ai_abort (app msg)
( _" f. [* a$ K) M/ b - (defun *error* (s)5 p5 Y/ d+ r3 Y7 _ H) }( N
- (if old_error (setq *error* old_error))6 w- ~6 z u1 L
- (princ)
Z* ^7 \- t- y+ \& ]( ] - );defun
# I( Z7 S% } S }9 T1 h - (if msg
4 Y/ ?5 D% L9 m' L: Y( G - (alert (strcat " Application error: "
) p7 Q! h7 i* B5 s% X/ r) | - app4 e4 ]5 n2 o% i. f0 D
- " \n\n "7 A4 |& |. |6 e6 y; X
- msg
) F8 Q0 P/ C( O3 Y6 R - " \n"4 J& @1 ~! y# Y5 T, D
- )
! Z" K3 q3 s: s! A% M4 m - );alert2 R1 I% P" A, N' d/ I
- );if: @5 `" A- V* k. j/ i1 Y
- ;(*error* msg)" }6 j. ?. C u& i; G! E& ?
- (exit)
9 Z6 c4 g9 s$ K+ I% b - );defun ai_abort" R1 k. w) U1 w8 z7 V+ {
0 e Y4 T& k* D( u& c" ~) }4 t7 Q- ;runs at load time - rk% c& j+ K& X: t0 k( V/ h
- ;(if (and *error* ;added the if wrapper around this - rk.% y' s3 f0 P) Z$ F" [% N) u( }* g
- ; (not old_error) + W/ Y) J! P# t4 f* X3 F0 N
- ; );and
/ Y& o" }5 b) q - ; (setq old_error *error*);setq5 o1 r; \4 e, g1 b& `" K" N
- ;);if: d3 _9 g8 }+ ]0 F0 a8 m
3 ^8 v3 _5 U( a" E" V4 ~* W1 O
- t9 I8 g, ?# }9 r& O/ i3 m- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,& T0 F' h3 h, h8 }3 O8 H
- ;;; and then try to load it.& l. Y- [: t( {: j! Q* K+ m1 I
- ;;;9 _6 b+ e. V8 }7 Z2 |' Q
- ;;; If it can't be found or it can't be loaded, then abort the' h) G! z# E( U) N& {, m
- ;;; loading of this file immediately, preserving the (autoload)
/ I# j' \8 I3 B/ } Z, F - ;;; stub function.# g" w8 k: S. D0 H5 H' M
4 G9 u3 _$ N5 d6 L$ Q- ;runs at load time - rk.
7 T5 z. J( E: a" d" [ `6 }5 ? - (cond
/ s( P* j% g0 c - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded., l2 [) J3 N0 Z
- ( (not (findfile "ai_utils.lsp")) ; find it
! B4 y! {9 J4 ?/ _* y/ G. C1 R - (ai_abort "EXCHPROP"+ U' m8 ~, A$ B) i& R
- (strcat "Can't locate file AI_UTILS.LSP."7 Y- K( Q% @7 i
- "\n Check support directory."): k& J+ J+ q) b4 t# H
- );ai_abort
) E7 F, z" r3 Q$ _: \2 j - )
4 P {9 L2 a6 }% L; r" p8 W9 S! N+ q - ( (eq "failed" (load "ai_utils" "failed")) ; load it
0 ]* u% w, {# w5 e- ~ - (ai_abort "EXCHPROP" "Can't load file AI_UTILS.LSP")
9 k% G( a; U! ], o7 q - )% t3 n+ {) Y6 g
- );cond close5 d1 I9 ~- {- L7 k7 g2 t, A: w
8 y& k% P7 B+ E, a9 M/ f( A1 _- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
+ a$ ~9 B5 N9 R4 {$ [$ m% U* e - (ai_abort "EXCHPROP" nil) ; a Nil <msg> supresses
# `. s2 P* O& _/ l - );if ; ai_abort's alert box dialog.7 A" U& j# i- ~$ s
& q# O8 m V2 h$ p2 C- ;;; ==================== end load-time operations ===========================
6 W7 T, u$ z; c8 ~
' g- l; p# c4 a: a; k- U- H- ;;; Initialize program subroutines and variables.) e( ^- r7 g1 N8 q9 y! w
- & y# B7 E& U. W: W
- (defun ddchprop2_init(); f) r% ]5 K- I
7 e W+ c/ @! B1 U y- 7 {. g. H f) g; [; C- P$ C" c& _, l |
- % {" R, U: Q4 f! V6 q
- ;;5 s9 c" t& K, d; g- f
- ;; Define buttons and set values in CHPROP dialogue box4 t5 \$ s+ v1 ?+ \$ Z7 A
- ;;% a. ~8 v" Q# ~* P5 @
- (defun call_chp2 (/ cmdact p1 p2)
* y2 W. ?' V( `$ j+ J1 c
9 \! D! K3 l3 x1 l) u2 K e- (if (not (new_dialog "ch_prop" dcl_id))
, a( H3 K+ t6 a( I* h - (exit)
1 j! ~, |' [5 ^" `- X$ q. V4 t" g - )% p( N- y/ A9 b8 ?
- 2 c Z. S4 Z. w3 s: ~# N' y
- (set_tile "error" "")
$ \( B4 I" S/ s- [% h - ;; Set initial dialogue tile values
% }( P. S6 f4 T7 g3 T9 X: d" I - (set_col_tile)$ [% b0 D6 u) _0 z; ]7 D f
- (set_tile "t_layer" elayer)* D! W, r7 T7 h' t6 E# i# O3 \
- : S* A( h; g9 G) D* t3 y- j: T
- (cond
- a5 U, J; `0 K- N# O5 H) H - ((= lt-idx nil)
& z- s- @4 i2 p: u( G& W& q - (set_tile "t_ltype" "Varies")& ~ O$ C; X* X/ H+ z# f. n
- )3 v2 W" G7 R* @; \' s: c0 Z
- ((= lt-idx 0) ; set tile "By layer & layer linetype"% _( m+ f/ s4 ~! Q) D8 A; v! C
- (set_tile "t_ltype" (bylayer_lt))
9 O+ ~+ R* w+ Q( I - )
. v: T3 G5 @+ _' a, ~8 d$ N - (T, C" f; A# T9 A) C$ C
- (set_tile "t_ltype" (nth lt-idx ltnmlst))% n( f( A2 U) I8 q) }
- ); E( b" c3 K4 _, }2 A
- )
5 g. j' b L+ p: m1 X- c" X - + L& w' r7 @6 |' x
- (if (or (= ethickness nil)6 E r# X+ H: A4 P7 N, C
- (= ethickness "")" P3 `6 m; N9 l& P
- (= ethickness "Varies")
3 {' w! o) j7 s1 M, q- S, u) p5 |+ q - );or F4 r/ n1 n! ^4 _( p
- (set_tile "eb_thickness" "")4 Y3 x7 q7 u" r) x
- (set_tile "eb_thickness" (ai_rtos ethickness))
4 j# c* r% l. p, g" Y- G - );if
, C$ u) }1 k9 D/ T# U5 U - (if (or (= eltscale nil)
& P! z9 l% k/ p) G8 K) _' ^ - (= eltscale "")
( q: c" ^3 r. U% h$ l - (= eltscale "Varies")5 ~) A+ `0 T& i# b4 ^
-
. x3 }1 j8 `" O _& W* { i$ | - )
/ s6 @5 o0 O+ c! Y - (set_tile "eb_ltscale" "")
; K& c" G/ F0 d; E - (set_tile "eb_ltscale" (ai_rtos eltscale))6 v+ t9 _) P6 P7 \: P5 ?
- )
6 c1 ~% |4 Q; X0 ]" e - (if6 m4 I9 i/ W. B
- (numberp ewidth): H% `- L& b+ s5 U0 `
- (set_tile "poly_wid" (ai_rtos ewidth))* a" I) R$ j) z" @
- (set_tile "poly_wid" ewidth); z! B, o; {/ b1 A" ^# I% B
- )
/ m6 J$ o! h. \/ V6 d - (if
( i- q2 z# u4 H) x2 d5 D5 g - (numberp eelevation)
. c. x% L/ q5 N* i) o9 w' B) M - (set_tile "poly_elev" (ai_rtos eelevation))
( ^' R7 L; t. P$ d- x - (set_tile "poly_elev" eelevation)
5 E" d7 @: m4 s B+ s - )( K( c* I* I$ y/ h6 I0 I O
- (if
. X. m' u# V% x+ K - (numberp eheight)
! N5 n7 J& F* i6 E - (set_tile "text_hgt" (ai_rtos eheight))6 M' q! `( j$ f) x1 r
- (set_tile "text_hgt" eheight)/ q) O; U, U2 c, h- W( U
- ), {" `' R( v' o
- (if (not estyle); \* N, |9 ^2 w4 g/ i+ d5 q- @5 [
- (setq estyle "")
0 a7 u2 M( r; E - );if
( i/ \: V" P! E; m' @8 W - (setq hair_style_list (tnlist '("style" 16)));setq) K/ s$ O& z X9 r2 t) _6 w
- (if (not (member estyle hair_style_list))$ Y* n* Y8 c" _
- (setq hair_style_list (append hair_style_list (list estyle)));setq
# h2 t1 U; x: z6 B' k - );if
# x8 l% Q1 S; Z6 q8 P - 0 G) {' V9 [* |
- (setq hair_style_list (acad_strlsort hair_style_list));setq/ e2 L; ^+ l; S- \ y
- (mpoplst "text_style" hair_style_list); V, [6 A; w! {
- (set_tile "text_style" ; Y% I" |; T+ {9 v3 [7 M. ^% s
- (itoa (position estyle hair_style_list))
% z& u ?5 m4 N( n$ k+ R3 ^ - );set_tile
, s, [" U: D. A
- ?- e b# Y% e2 t- ;; Disable tiles if need be... ;@RK
( G* G) J) g3 x# \3 \1 n% { - (setq a 0)0 Y3 T) v& G. Z% s$ _
- (while ( < a (sslength ss))
s& I1 B; W( V! B$ m - (setq which_tiles8 j' i! t' k( i8 ?/ u' b) q% N
- (ai_common_state (cdr (assoc '0 (entget (ssname ss a))))))
2 t! z; f8 D# T4 s -
$ j2 \2 K' V2 |9 g# z) b7 G3 u: W - ;; If all fields are enabled, don't bother checking anymore.4 Z) l% |" H7 x1 M% {
- (if (/= which_tiles (logior 1 2 4 8 16))
) E& }: J2 z }) j$ N: B+ s - (setq a (1+ a))- K, `5 \; c, S N5 v$ v5 p
- (setq a (sslength ss))$ |/ I8 f' p# }% L4 z( a* k
- )
\! |+ V: _; C9 ]) L. m - ) c8 x* s" Z* n
- ;; Layer Button and Text Field. X: [ W4 D* f; a0 o6 z9 U
3 m6 ^( z6 {* m3 a+ r+ d; S: E- (if (/= 1 (logand 1 which_tiles))5 w, U4 u3 x) X( u" }2 P* y
- (progn
* _% E8 `, ~2 v4 A" c1 V - (mode_tile "t_layer" 1)( N% D, N, [' L- R8 ]3 [8 M s
- (mode_tile "b_name" 1)
. k! e( ], n3 i0 [; l( x! D5 u - )! P* z, J1 s. a) |" m+ W6 E: V" Q
- ). ?8 A& I3 T: [6 k3 H5 H
- + y' g( ^, a- f5 s1 ?8 G3 w' L
- ;; Color Button and Text Field
' \2 r/ F# t4 o3 j - (if (/= 2 (logand 2 which_tiles)), P: T; {* p; Z Z
- (progn
" Y% h( U3 j/ O4 w - (mode_tile "t_color" 1)5 u) H- T' |$ P
- (mode_tile "b_color" 1)8 B* V( x( H: n
- (mode_tile "show_image" 1). J7 x0 O" w: ^2 r& [% y
- )* v$ n* Z8 _5 v' L5 n9 b. V
- )/ x0 Z: _; R/ P% Q
- ;; Linetype Button and Text Field A* J# G+ }1 {3 V# ? W$ N
- (if (/= 4 (logand 4 which_tiles))
" B4 o+ p0 Q; r - (progn- z3 Q1 h+ ?/ C
- (mode_tile "t_ltype" 1)' { L5 R, M0 |, g
- (mode_tile "b_line" 1) b Y, a& B' p: v
- )
7 ^/ s4 z& ]" V$ t - )
m8 l$ v) L- d- ]( t - ;; Linetype Scale Edit Field1 g( e B* R2 E, l4 z/ d
- (if (/= 8 (logand 8 which_tiles))$ e% {; n( V% I! A: l3 M
- (progn1 o( F( y' O: h; O0 m; J: }. Z
- (mode_tile "eb_ltscale" 1)
( o: P+ R5 L, y - )* D6 Q! C- m+ P) z9 A2 {! r; g
- )
5 L/ G2 @# ?* d1 { - ;; Thickness Edit Field.; p, \, ?1 T3 C0 k
- (if (/= 16 (logand 16 which_tiles))$ u' ^% D% n! e* H6 J
- (progn
. U# m5 j$ x" N$ _$ c - (mode_tile "eb_thickness" 1)& g$ Y9 s% |( G4 `3 q4 D4 O2 S
- ); x' y! D+ _- w5 x- p% U
- )8 E! ~' L9 `* F0 F* N, k0 \
- ( I! ~2 p$ z8 g: f
- ;; Polyline box and tiles @rk 10:05 AM 1/30/97. c% b2 m3 R" f9 ?! m
- (if (not (= 2 (logand 2 eflag)))
! ~. N6 w' o I- X - (progn6 n) F# N6 _- V- N; G* ?
- (mode_tile "text_hgt" 1)
) A, w* R) @8 Z @ - (mode_tile "text_style" 1)
, X: A) a2 J+ [$ z% p - );progn; B, L+ b( }$ H5 O6 }( r3 x: P
- );if
) U; ` J1 X3 @/ N' ], H - (if (not (= 1 (logand 1 eflag)))8 h' F/ }/ M. Q" O: H6 `2 U+ x
- (progn 8 B4 q) B8 Z6 @( E6 N# l# U
- (mode_tile "poly_wid" 1)' K! J. f# x5 L0 ~( i3 _
- (mode_tile "poly_elev" 1)
( I* |; d9 B- V8 R3 G5 v - );progn then disable polyline fields! s* L9 C" r0 @9 F% @0 D* ~. b/ ~
- );if. C7 j+ B) q) p/ A
- ( t9 {* ?& ~* U! v0 P6 f9 T
- ;; Define action for tiles; P# A" t/ E! T- F- N
- (action_tile "b_color" "(setq ecolor (getcolor))")
; w; U9 y& k2 K7 g9 j/ b - (action_tile "show_image" "(setq ecolor (getcolor))")
( R3 j0 k5 H- X {& x! y8 Z& f - (action_tile "b_name" "(setq elayer (getlayer))")
- C0 w9 X1 g5 n9 f$ x9 T2 O - (action_tile "b_line" "(setq eltype (getltype))")- n: q; ]" l4 }5 d4 ?7 y! f
- (action_tile "eb_ltscale" "(getscale $value)")6 Q7 i7 l1 b& ?$ H: [& a4 t
- (action_tile "eb_thickness" "(getthickness $value)")1 M9 b2 u: [2 P# P- b K2 G
- (action_tile "poly_wid" "(getwidth $value)")1 `- G7 v6 R# J) }
- (action_tile "poly_elev" "(getelevation $value)")% g! r; X. ~8 M6 A
- (action_tile "text_hgt" "(getheight $value)")
- p* O9 E/ m; `0 z - (action_tile "text_style" "(getstyle $value hair_style_list)")
( G! [8 S4 ?* z1 ]' ~3 O - (action_tile "help" "(help \"AC_BONUS.HLP\" \"EXCHPROP\")")' m* ?. a2 D# L v4 ~2 O
- (action_tile "accept" "(test-main-ok)")8 k( D; m1 C0 E' S( q% C& J7 _
- 1 x4 Q7 [$ A) L, [* t2 R W
- (if (= (start_dialog) 1); X% Q' t; E0 m+ ]5 t- V, ]
- (progn
' p* B( S8 J, L+ s - ; Update special properties for polyline and text selection-sets.5 e1 ?9 d4 H5 W) u' a+ m. h; ^
- ) ?) D' b; a% u! @
- (if (and (= 1 (logand 1 eflag)) ; polylines rk chprop
' _4 B0 I4 x" ?$ Q0 D9 K% e) Y - (or ewidth
5 J' l9 c( |1 P0 ~3 o - eelevation
a9 B" U2 U+ J' ~- B - );or9 e& W! l( w8 b% C/ g
- );and- x/ I9 y5 P0 H; }( F3 j. `0 A
- (progn
; U5 a( O. M# Y& m3 C - (setq ss-index 0
3 z% ], t# [$ b2 v+ ~3 ]5 k" s0 R - ss-length (sslength poly_ss)
' I" d# `# m$ O - );setq' w$ x0 E6 Y/ c) r9 v9 y" U
- (while (< ss-index ss-length) k5 N" ^, [' R( g: S/ w$ L& n
- (setq ename (ssname poly_ss ss-index)
% a9 I8 l! O9 v8 T - elist (entget ename)
( s) |8 }/ B5 [3 _% I* m - );setq
/ v) G0 G- n7 _2 a; l; s - (ucs_2_ent (cdr (assoc 210 elist)));this function lives in ac_bonus.lsp
1 n$ S; H. v4 O n1 I: ^, [ - (if ewidth ' a! \4 s5 d4 X% R. O' I+ ~
- (command "_.pedit" ename "_W" ewidth "_x")
" N; B! [0 r, E' K2 [& l - );if
/ w7 |2 {" z9 v+ f) j( D9 w - (if eelevation 0 Q# q( a7 q; Y$ }: h6 U& G9 [
- (progn
. I. d, `+ q# |! B - (setq p2 (list 0.0 0.0 eelevation));setq- M0 e2 s! s& b; e& Q; R
- (if (equal (cdr (assoc 0 elist)) "POLYLINE")8 D Q: [8 a* q7 W7 u5 j
- (setq p1 (list 0.0 0.04 b! A: { `$ v9 e0 p0 X
- (caddr (cdr (assoc 10 elist)))
}2 Q+ S9 h# L7 t$ m - );list
. H [- f* \8 V3 o3 |. G, s4 W6 g - );setq
+ G3 W; Z- p- O( G8 g1 ~ - (progn) s R- [" Q0 F
- (if (assoc 38 elist)/ v. v; s, I! g u7 w; a+ c2 V, p
- (setq p1 (list 0.0 0.0" _" T1 j2 G( L6 r+ y0 e
- (cdr (assoc 38 elist))
R# W: i! K! n7 c+ r# i# Y - );list. c/ F/ w& v* ]5 g" c1 l4 f/ C6 M3 W
- );setq- G Y: H4 I' D3 o4 \3 }
- (setq p1 '(0.0 0.0 0.0))
r% O: T8 d1 M! b3 T4 L% b* h" ~ - );if
. d: E3 y1 f5 V4 | - );progn ; L+ ?4 K9 E7 s1 B7 ~
- );if9 b" S2 A0 b* K$ @
- (command "_.move" ename "" p1 p2)& a+ _" ]' f. {
- );progn then change the elevation of the polyline, H1 e; c( Y" y" g
- );if8 p2 u; G; |8 N; l0 L5 f8 P! }" |6 `
- (command "_.ucs" "_p")7 \2 f& e. Z: j5 M& A1 Z3 |' w# K
- (setq ss-index (1+ ss-index))
Z! H; u/ e! d: _ - );while0 q/ T( G, _" U7 a' K% J8 r
- );progn then polylines are in the selset
G2 @# k) w- s - );if z' I4 n0 D3 E, f" o# W9 W
- (if (and (= 2 (logand 2 eflag)) ; text
. d% O* @* W; `; s& O7 {: m% J - (or eheight
' \" a' {9 @, d% K+ @$ n - estyle
- e5 Y& d; E) W - );or
/ v4 b/ m8 m; R# Z0 V8 U; N( @ - );and
( f& y8 o: G3 W, b# }2 I& f1 ] - (progn I2 z6 J" g9 G3 \% ^7 l
- (setq ss-index 0 ss-length (sslength txt_ss))
' m. ?' L5 V# y9 C" P2 \5 h - (while7 |$ r; \) D2 _1 {1 R* H2 \# O
- (< ss-index ss-length)0 r; m6 b1 f# G, u, O
- (setq elist (entget (setq ename (ssname txt_ss ss-index))))
0 @: M7 D, r7 O/ s. J2 u1 e- ~ - (if (numberp eheight)
$ N! p/ f- W$ K" a0 M; Q, N" u2 p - (setq elist (subst (cons 40 eheight)6 p* T Z2 y% u/ W
- (assoc 40 elist)9 N& N: J; o& Z% A3 |( i6 H
- elist
5 Y0 T* W/ y5 @5 ~' |) j$ W - );subst4 l7 Z. w' w3 J2 T/ O
- );setq
9 s: }- t' V( q9 l. H4 Y' V9 w# r - );if
) A" {5 R; i( @' i% J) K# T - (if (and estyle ;(not (equal estyle ""))# R" X6 A. q4 g8 m9 @- o
- (not (equal estyle (cdr (assoc 7 elist))))1 P7 s9 g. j) R( X5 L
- );and0 S+ G2 n e% {- ?' T
- (progn 7 j" U: G6 d( }- d. r, W0 [5 a7 _2 N% b `
- ;rk. This needs to be implemented as per mtext font issue in ; ddchprop_notes.txt & W* R! q4 P- @9 }- S$ l$ {$ B
- ;(if (equal "MTEXT" (cdr (assoc 0 elist)))
. I- Z/ r( j. S! ^" E - ; (setq elist (fix_mtext_fonts estyle
) a: z" }( L+ e. V9 P/ n; ~ - ; elist3 R1 k( W$ w6 Z: S5 i9 b: L* X
- ; )9 G: Y/ A( \# E: i! K6 N
- ; );setq then( J# I% U* W3 v: [4 p4 R% v8 P! [
- (setq elist (subst (cons 7 estyle). m/ r3 S: d$ K$ r. u8 E& ]$ \
- (assoc 7 elist)+ f# E- z( y+ h2 n6 g) y" X( X
- elist
' p2 L% J8 o# T' x% Z y& U! F - );subst+ h, N$ T6 G3 N7 @- y5 Y1 _( ?
- );setq else
- g5 r2 y \% J' w. y - ;);if # z+ a& R& D0 i' P( l1 W1 _( [/ N' O
- );progn
' p1 i! U5 r, P% F6 R - );if5 i8 J2 r: k# ~2 R
- (entmod elist)' z; z+ ^; w/ j9 F+ x; r q
- (setq ss-index (1+ ss-index))+ k# Y, K$ h% Z6 }" @) k
- );while
/ S/ e9 B9 W4 q- v" f - );progn then% B; [" }+ v4 X2 s) A" j
- );if0 @5 H0 ?4 }! @- H
0 |' n4 N8 L9 o( v- (setq cmdact (getvar "cmdactive"))
1 T! h. n% z/ u- `0 F0 T3 V3 H: x. f& q - (command "_.chprop" ss "")
. P" A- s$ ^/ N" j$ L$ A, U( U4 ` - (if (/= cmdact (getvar "cmdactive")) ; Is CHPROP actually running?
8 H! A; }. }, y T. a" j - (progn
% K' Y1 y9 Q; G( G4 W - (if ecolor
7 i. r" _9 N8 }& P* b8 ` - (progn
9 N; n3 X7 t3 e - (if (= 0 ecolor) (setq ecolor ;|MSG0|;"BYBLOCK"))
; q5 a8 Q7 g" Y. U" z - (if (= 256 ecolor) (setq ecolor ;|MSG0|;"BYLAYER"))# u$ a. O+ y$ S2 ^
- (command "_c" ecolor)5 ?+ q& q5 l3 V- ^$ m
- );progn then
4 c1 j$ Y; h0 a1 i. e - )5 \) T/ t O0 L( {
- (if (and lt-idx
! q) ?; |0 N! }. ^0 R( I) D - (/= eltype ;|MSG0|;"Varies")
q+ r% U+ E b - )0 U! n# \& q" e3 M# ^* M; c
- (command "_lt" eltype)0 E7 k0 K$ l1 }7 s0 \8 q* f
- ); |5 {6 j8 u3 T7 P% L! F8 v l
- (if (and lay-idx
' ]9 O! Q2 }7 a H# j0 K( | - (/= elayer ;|MSG0|;"Varies")- G% p7 m; d5 P' S/ O( v
- )6 A7 G1 p1 y: D& n, R
- (command "_la" elayer)
2 X+ ?, \3 q! b. | w - ), d) H- m% u+ n o# L
- (if (and ethickness * M( v! R# Y7 d: V
- (/= ethickness "")
; x6 g1 t4 P( Z - (/= ethickness "Varies")
) S, t& ^, W3 ]. L - )) c0 s% r U' d
- (command "_t" ethickness)
3 O) L. l2 F& O1 F& b6 r - )
. d: u* l6 H$ ^ j/ B - (if (and eltscale (/= eltscale ""))+ K; U5 b" k9 n9 n, r" N; U
- (command "_lts" eltscale)* R$ u1 t% z! ^
- );if6 W5 d- Y. @$ o2 @3 W1 B" e ~; M: `
- (command "")( r) H( E0 ~% F$ H2 s$ g' j
- )# K: {: H9 M$ |0 d2 b* k3 A; L
- (princ "\nProperties unchanged") ; CHPROP didn't like our SS set# q, _0 M, }- c; e0 t; g3 ]& x
- )9 `! ^, N! }1 M h' L/ Y! x7 @
1 I4 B; ]+ G& z8 e- );progn then OK was picked in the dialog.
6 E8 h0 z; `2 p% g1 i* d -
6 |# \! U" P3 C! p - ;; Fred GERBER - 25-AUG-944 F8 P8 A# m c8 v8 O k) |
- ;; Don't print the "Properties unchanged" message when the user cancels5 c& V4 O5 E- f% k9 @1 |
- ;; the dialog because he knows that already (otherwise he would have1 G+ C( f" @- ~
- ;; hit the "OK" button). Display the message only if CHPROP fails for
2 A, a/ a. S3 n$ e - ;; some reason, because it is not the expected behavior of the command.6 F. z3 I% J$ r2 }/ v# ~7 C; k
- ;;( {& ?) w+ _. j) o0 M* T& M
- ;; (princ ;|DDCHPROP2_LSP_8|;"\nProperties unchanged")
% c( Q. G: R4 g. D( y - );if+ r2 Y% ^" A& m' x/ m+ X6 x
- (princ)+ D0 v' s2 R/ L3 _4 k2 [
- );defun call_chp2
% W& W0 _, m$ |* G - ;;
5 Q' ? Y' z8 k2 E) S - ;; Function to set the Color text tile and swab to the current color value.
, g+ i3 w- ]* n' g& o9 N9 s - ;;
, e K+ @/ b: O* c* P - (defun set_col_tile(). d) z; K; F2 p/ z4 S. L% g7 ?
- (cond" }. r3 Y- t8 b% O$ I$ M4 f) p2 h
- ((= ecolor nil): ?9 y1 L4 |$ p9 F
- (set_tile "t_color" "Varies")
* H! r/ G- S( C - (col_tile "show_image" 0 nil)9 v$ G( s& O" Q/ J# @0 s
- )- ?6 J4 N+ C0 H# U; H4 R; Q3 @+ `
- ((= ecolor 0)
* s' {+ }$ H8 w - (set_tile "t_color" "BYBLOCK")
3 U5 f' x; L. g" p - (col_tile "show_image" 7 nil) ; show BYBLOCK as white
( N7 P6 P0 O; X8 R0 x8 w5 O - )0 B- r) S, p% n( j; @
- ((= ecolor 1)5 Z l; r% d H5 w) B2 P
- (set_tile "t_color" "1 red")/ V4 ]0 }, k% W* U# t% H
- (col_tile "show_image" 1 nil)
5 k- N) P& Z# g9 p - )
9 _3 C3 l9 Y8 I" n8 A/ ~, u) \ - ((= ecolor 2)
3 v0 ?# [6 d, b) O2 _ - (set_tile "t_color" "2 yellow")' T0 M3 W. i' H9 Z: \
- (col_tile "show_image" 2 nil)+ w) `8 K. a W, V8 G
- )
7 P# l- [) S$ n' a$ F @* ` - ((= ecolor 3)
+ T) B/ {$ }" } - (set_tile "t_color" "3 green")1 |1 L5 O2 w; @& |- N7 J% t
- (col_tile "show_image" 3 nil)
1 f, E- E. x4 x* W( O; Z) Y - )
2 s1 w. \6 D, U2 ?' n, q - ((= ecolor 4)2 A7 b3 P. p0 K ^- e; n
- (set_tile "t_color" "4 cyan")! [( w3 j( R: u# h. i& t
- (col_tile "show_image" 4 nil)
2 {1 o) T) `. Y1 D9 e7 U - )+ {$ K" L/ j# C5 \1 E* N# J
- ((= ecolor 5)9 I l7 H8 s8 S$ t6 U9 {3 Z
- (set_tile "t_color" "5 blue")0 }% j4 m- F# a1 S
- (col_tile "show_image" 5 nil) ~& [' W+ r7 A! |7 m* O) ~
- )( Z) _( a, z; D# [) C
- ((= ecolor 6)
* K1 Q$ g6 t6 h0 q - (set_tile "t_color" "6 magenta")' y# [% K6 A. X3 L
- (col_tile "show_image" 6 nil)+ Y- K) b* ]9 y" d) F5 _3 {; D4 q
- )9 H! W- C0 G/ @! ^
- ((= ecolor 7)
( U; U$ h' c0 b" y) ` - (set_tile "t_color" "7 white")
0 Y" j! p! n6 i/ a - (col_tile "show_image" 7 nil)
* s" I" W5 \7 A; J! P# h - )! ]+ _, E* D- a. h
- ;; If the color is "BYLAYER", then set the tile to
$ h- J! O U. I$ _" P - ;; show it's set By layer, but also indicate the( N1 I; b1 d7 K) ?' O
- ;; color of the layer - i.e. By layer (red)
" @0 o# Z% `) N% O' }5 k - ((= ecolor 256)
5 L8 a) }1 E( y - (set_tile "t_color" (bylayer_col))
5 w2 \% |; L2 M+ Q& q" i) c' d - (col_tile "show_image" cn nil)
. L3 f6 L, @* z/ H* d/ O8 W, k - )7 q# ]! i' Z7 K1 F
- (T$ O3 x6 l& ]9 o
- (set_tile "t_color" (itoa ecolor))
0 C8 C' y$ N) ~7 C- a - (col_tile "show_image" ecolor nil)4 _/ I. j- p; I
- )
! v* `( x v3 E1 }+ B+ q* A7 X - )) s) s5 b& `+ t M. H4 W
- )8 s# ^% N1 }2 Y! B) o4 f
- ;;
7 a1 A8 [, q! W8 j) e% p - ;; Function to put up the standard color dialogue." k! i$ n" ?6 N' X _- v S+ s
- ;;
) B$ p! C/ W, X - (defun getcolor(/ col_def lay_clr temp_color)* y2 \3 _$ m) l( T9 f) L6 e9 {
- ;; col_def is the default color used when rq_color is called. If ecolor& j9 p1 B, c5 O1 u4 n) @
- ;; is nil (varies) then set it to 1, else use the value of ecolor.+ T+ d0 F7 Y, t
- (if ecolor
( @" ^ F+ q0 s+ z+ f4 K" t3 ~ - (setq col_def ecolor)
* ~4 i: q- Q% R& R3 W8 u - (setq col_def 1)
6 P) `4 w& j. \+ T - )
" r+ s% M# I- r) Q" W, E/ W# X
4 r3 |$ Z4 d5 [( @- ;; If we're working with a single layer, get its color
, F N. r# M, w3 z - ;; for use in the color swatch if the user selects color BYLAYER., b: U# [/ t) i# J7 H M0 X
- (if (/= elayer ;|MSG0|;"Varies")' ]! ~. k4 d! k, H$ `/ k
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
9 [" _9 b9 w3 V5 d - (setq lay_clr 0)
3 m" |% v0 u- c/ ~! h4 I1 K - )
+ d. h& v2 l$ |" Q3 { B: p - (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
2 ^! f3 s- Z' J7 J7 ]6 L - (progn
% w4 K3 P% } D2 J$ N x9 s; c - (setq ecolor temp_color)0 O& x& Q$ i# P0 a9 t- `! ?
- (set_col_tile); _! O" }( f! C" F
- ecolor" P2 h7 G9 k N' w! Z
- )
: w0 P- y+ o5 y4 @+ h" M - ecolor
4 q$ H- ]8 i f+ y! p# V5 l - )
! n9 O7 }" X. Q+ M% C. g4 {+ [ - )
E4 T2 i" |3 S. V6 u1 G7 H5 \ - ;;
* t3 ~( O$ r3 t - ;; This function pops a dialogue box consisting of a list box, image tile,
9 Y! o; [) M4 A- y7 b - ;; and edit box to allow the user to select or type a linetype. It returns
" L1 y7 y! h' b7 X& F% n- O - ;; the linetype selected.
b% c3 p' X' M* s' S" u( ] - ;;+ z. X6 B1 M7 C3 x; z; k8 {
- (defun getltype (/ old-idx ltname)
( U2 }7 Y+ Y& [% |2 s2 z - ;; Initialize a dialogue from dialogue file
" \3 h0 m7 |8 `6 b - (if (not (new_dialog "setltype" dcl_id)) (exit))- S0 J0 U: R3 f- L+ c0 J* P
- (start_list "list_lt")4 {; D% J& T. n3 v4 Z$ t
- (mapcar 'add_list ltnmlst) ; initialize list box
& i8 U+ a: a. Z7 k - (end_list)
% S, f- |2 R- i, g1 | - (setq old-idx lt-idx)
2 ^ l, [1 O* W9 V) B+ n0 k - ;; Show initial ltype in image tile, list box, and edit box, r: j u/ f8 {5 Q, C; ~" t
- (if (/= lt-idx nil)
6 E, U+ t2 c, h' n) H - (ltlist_act (itoa lt-idx))* z+ j) Y% X0 `9 L2 @ l6 Z
- (progn
' g2 K7 A0 D _( ` - (set_tile "edit_lt" "")- K7 [7 B7 L1 B, L1 f
- (col_tile "show_image" 0 nil)
% W v; m& I# E. v3 U! ^ - );progn else( \* B9 Q8 J0 `5 E0 H
- );if
9 ~9 I4 p/ E" Z" [- Y4 I( k: ? - (action_tile "list_lt" "(ltlist_act $value)")7 Z+ q& s( a9 |3 q) I9 z: v
- (action_tile "edit_lt" "(ltedit_act)")
3 j6 E4 Y9 z7 D( i' p4 L/ c3 o! f - (action_tile "accept" "(test-ok)")
2 u: V" y1 U7 M& H: w0 K( u& p - (action_tile "cancel" "(reset-lt)")
8 l r$ v' y3 \0 ? - (if (= (start_dialog) 1) ; User pressed OK
7 d( O: f# g" a - (cond
6 O% M9 c$ S* L0 O& M/ G/ e9 u - ((or (= lt-idx nil)2 M- Z$ \2 \, z1 N
- (= lt-idx (1- (length ltnmlst))). e/ o! D7 u3 o1 K2 s
- );or) R. |9 {3 O8 n& C& o
- (set_tile "t_ltype" "Varies")6 s( A7 D' x- ], y3 T
- ;|MSG0|;"Varies"
. f2 C. b, ~8 l; L+ o( n1 U - )" a* ~, q1 L0 x$ t; W: [& H
- ((= lt-idx 0)
; i, X7 ~7 ~. R: P Y - (set_tile "t_ltype" (bylayer_lt))
; p4 g( \' h* ?+ c0 X# _# f) G/ o - ;|MSG0|;"BYLAYER"* N( d8 W8 T8 O' ^9 Z( Q
- )
( y! D s* M% J5 M* M+ i - ((= lt-idx 1)
. ^- j* L( R3 t - (set_tile "t_ltype" "BYBLOCK")
* Z. Z, r* m z$ [4 g - ;|MSG0|;"BYBLOCK"
/ O+ p8 X* @9 X# J7 |4 l - )
9 \: q7 X' N' D+ N - (T
2 Z4 ?9 r2 z- w, ^- _3 L - (set_tile "t_ltype" ltname)' N! e& K; W7 f7 \8 g
- ltname
, ^; h" ^& G; [7 E - )
4 h+ P, j+ \, y - );cond then
# i. }! w+ \: O' b - eltype
7 \* k: f) y+ k: b0 O3 R - );if. |( ^# g) L# a2 n' }
- );defun& R6 B4 u/ O2 R5 R& @( h) M
- ;;% J P- ]8 U' O4 `7 J$ b
- ;; Edit box entries end up here+ s$ I3 ^( t7 B) ]
- ;;
6 r. Z {, W: Z; d" _& H - (defun ltedit_act ( / flag)4 |- `4 l+ C# \% W5 O
- ;; If linetype name,is valid, then clear error string,; W, H, a2 C. i: ~( a8 ]
- ;; call ltlist_act function, and change focus to list box.
. b+ A/ [& t: {2 l: J9 ~( ?/ Q+ Z - ;; Else print error message.9 k }$ w6 }0 N" l
- 4 m# e1 j6 J/ Q
- (setq ltvalue (xstrcase (get_tile "edit_lt")))
+ S8 D5 z" \' T - (if (or (= ltvalue ;|MSG0|;"BYLAYER")
3 ]/ m6 ^9 q- |0 T4 _8 K# i - (= ltvalue "BY LAYER")% k, Z0 r! x! I# v3 `0 }; p3 s- x
- )
$ V' J* @$ A# x+ a3 l4 N/ c: Y - (setq ltvalue "BYLAYER")
; Z: Y1 Z& A6 h" s - )
: @3 X3 l5 o0 H+ b, ?, m" { - (if (or (= ltvalue ;|MSG0|;"BYBLOCK")0 D1 i$ q$ m0 R' {# J4 p& O. k0 L
- (= ltvalue "BY BLOCK")
. A9 n: D4 a) c4 `' Y2 _ I& W8 A - )
" G/ x- L1 `+ a7 Q6 ~ - (setq ltvalue "BYBLOCK")4 B( A- j9 P4 E& Y3 s# g w! h: T
- )
; N) h7 B1 T6 y. m$ X% h5 s - (if (setq lt-idx (getindex ltvalue ltnmlst))+ e% C1 i+ r) i2 C
- (progn: I" j' i9 g% _7 q* Z( n4 C
- (set_tile "error" "")
& F+ R+ @/ A+ B+ s& g @/ [ - (ltlist_act (itoa lt-idx))
' k+ d$ k- s/ E$ x' A9 Y - ;(mode_tile "list_lt" 2)
~, d0 @# P$ d @: Q U. S7 @4 f - );progn then
' Q2 L8 u( S# {8 v - (progn5 e1 @8 Q2 ?; ?9 c- [
- (if (/= ltvalue "")
# s( ], F* P) d% R+ X% Q' ~ - (progn
/ a7 Y4 n: |4 G" [! q8 `' S- ^) j - (set_tile "error" "Invalid linetype.")1 u6 S+ k: t' }( l, ^9 x
- (setq flag T)
; k* V/ g; D; l0 p1 c( o1 u - );progn1 F8 l, A( `& k( l6 T$ _! n- a& T3 K; w
- )8 E* U; I0 W. p! K' k, O R; a
- (setq lt-idx old-idx)
$ m4 C& Z% d0 J: ]- y, c - );progn else
3 t' G* G" \# `3 P+ W - );if; ^4 m7 U3 v/ Q& x
- (if (and (not flag) ;added so a return will take you out of the dialog.
) N( y5 y+ i! i" j' o4 W1 x" L4 F% I - (= $reason 1)
2 E- O7 z1 L4 W/ _7 o. |& f - );and
3 O8 s+ g5 O @$ j/ Z - (done_dialog 1) 4 X: o0 `0 t5 k
- );if 3 I2 G8 c, }* B$ e+ g6 l) V
- );defun ltedit_act/ d# l! N9 t( b+ d/ w8 [
- ;;# O8 P$ k/ b* X/ o; b- E
- ;; List selections end up here% C6 P7 ~+ r/ B. F z
- ;;
! w$ B, {) K& g5 H' R - (defun ltlist_act (index / dashdata)) _, | A0 D2 q1 _& o) a
- ;; Update the list box, edit box, and color tile" M: m4 k) `. u3 N* w5 V
- (set_tile "error" "")
3 F' |& B" H0 V3 s, G - (setq lt-idx (atoi index))
7 R9 T9 t/ T! B: D2 b# H - (setq ltname (nth lt-idx ltnmlst))6 y( x- Y8 o% w6 w
- (setq dashdata (nth lt-idx mdashlist))7 w+ o- @8 A! S
- (col_tile "show_image" 0 dashdata)6 r4 y4 t- k. G2 Z, |
- (set_tile "list_lt" (itoa lt-idx)) k- l- @6 B B) j2 n; k
- (set_tile "edit_lt" ltname)
# Y0 J/ N" ~6 Y1 n7 V4 ^! } - )- E5 I) \$ N, Y! B
- ;;
' t7 r7 O5 r; ^+ \! B( f, o6 S - ;; Reset to original linetype when cancel it selected4 Z( ^- ]& j# E$ u: b, v
- ;;1 ]" v$ { i3 o/ c3 U* U. ]* f
- (defun reset-lt ()- a$ H, y7 l! G; c3 X d
- (setq lt-idx old-idx), r1 ~7 v+ l+ v# Y
- (done_dialog 0)
# }1 ^2 j, Q# b. k7 i6 X - )% ]6 ^ q2 x5 {6 ?
- ;;0 ?+ \! }0 q) T
- ;; This function pops a dialogue box consisting of a list box and edit box to
! x5 z: `9 f# T0 X* W- a. I' y - ;; allow the user to select or type a layer name. It returns the layer name
( j% g" C( `8 X, _3 ~ - ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the% V. S) B7 m/ d; v; s: G" P* |' J
- ;; drawing.7 G8 N- i* x6 r
- ;;* `3 b, v& D3 ~
- (defun getlayer (/ old-idx layname on off frozth linetype colname)( j# m5 T, b5 s( v6 \$ I& @3 Q
- ;; Create layer list the first time the layer1 D4 N1 P* C0 H; P) L
- ;; dialogue is called.5 T5 w. H- M$ i- P$ b2 x2 I! V
- (if (not lay-idx). i0 L" U; u" t( Q+ f# J
- (progn/ M0 X+ c2 u$ R" w
- (makelaylists) ; layer list - laynmlst
" q+ z4 a2 M7 _* i* N0 c; } - ;rk/ y/ D. L% r% y7 v" K4 a$ q, |
- (setq lay-idx (getindex elayer laynmlst))# s7 t" O! x& t' a8 B' x: K. O
- );progn
" `2 t; G+ m; Y; f6 K3 a5 O - );if
4 p/ {! k, l% l; O6 z" p
4 c4 T+ x1 q' T( Q8 s- n- ;; Load a dialogue from dialogue file0 H5 H0 ]! D) \, [4 M
- (if (not (new_dialog "setlayer" dcl_id)) (exit))# D* J% R$ w4 T# J9 R( Q' l
- (start_list "list_lay")% a7 u" }7 ]& W$ F {8 v
- (mapcar 'add_list longlist) ; initialize list box, A, p8 m+ x3 U) }
- (end_list)
1 }% O# o, I6 P! l4 q - ;; Display current layer, show initial layer name in edit
0 o2 s. z* s7 n: p - ;; box, and highlight list box.
. X& o. J9 S L0 |9 _+ j - (setq old-idx lay-idx)0 ~5 N8 b, p. z
- (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))
: ?5 [( Q, p) C - (set_tile "cur_layer" (getvar "clayer"))0 p$ t/ t# O* B: x4 A
- (action_tile "list_lay" "(laylist_act $value)")3 I; v6 ?5 n- a& p0 A0 a
- (action_tile "edit_lay" "(layedit_act)")8 {: T! l& R( j( R
- (action_tile "accept" "(test-ok)")
$ a p+ J2 p0 X - (action_tile "cancel" "(reset-lay)")6 _! m4 G* n3 z9 u/ }' j
- (if (= (start_dialog) 1) ; User pressed OK
1 b; _! v2 O8 b: U T - (progn0 F3 ~% }1 Z- A; b
- (if (or (= lay-idx nil)1 d6 B+ k& P( ]( L
- (= lay-idx (1- (length laynmlst)))# n! \$ d/ V8 d7 t: t$ Z) }8 r( _
- );or
7 U8 {& ]" ]+ d3 f3 b6 z - (progn5 o7 q! W6 R( O' ?
- (setq lay-idx nil) 5 i0 a. G" h. f
- (setq layname ;|MSG0|;"VARIES")0 p7 @8 Q$ Y7 G& p/ G9 S1 R
- (set_tile "t_layer" "Varies")
/ D I2 ]1 ]0 i" M; e( i - (setq layname "")7 r7 X8 ]# P4 n" ^
- );progn
0 v' b% A6 \" K0 D: ~4 m+ H - (set_tile "t_layer" layname)2 z" z' N, ~0 V" U" Z+ V; b. u# ^! P
- );if
+ H* C% \$ n$ ?/ I# Z5 F) d - ; If layer or ltype equals bylayer reset their tiles9 \# _' \4 x' ?4 r" z
- (if (= lt-idx 0)% e$ m" a7 Z9 o; o/ I# H. c, p8 {
- (set_tile "t_ltype" (bylayer_lt))
. y6 i8 ` R8 ~5 W - );if
3 P# l3 x. F' M - (if (= ecolor 256). K8 g# y9 ]! B. p& H: m6 g/ k8 r, w2 `
- (progn
, C8 R5 r: m1 x! ] - (set_tile "t_color" (bylayer_col))
+ X( u) a- c z, Y - (col_tile "show_image" cn nil)
/ J2 [7 X; M2 ?# o. i; e. n, s5 T: S* L ? - )
& A% _% @8 @2 P) E7 f, c) w - );if. ]3 b; |3 f6 z8 ]& |
- layname
! K5 w. O$ [0 |3 f8 O2 X+ z - );progn0 k% D' B, S* z6 f- M+ R
- elayer. a2 q% s5 L* ~5 p& I2 c7 {
- );if0 |3 @, ?$ K& y5 v& G8 k" H. m
- )1 N; d Y! m; \
- ;;8 r/ M" i3 B. b' m
- ;; Edit box selections end up here
* j9 i3 o; d$ x. u, f# l. m8 s - ;;6 U& L( W1 f( g7 ~4 M4 `. i
- (defun layedit_act()
7 s4 u) A4 w( u* a* E - ;; Convert layer entry to upper case. If layer name is0 l* a5 Y2 u" x; G0 H
- ;; valid, clear error string, call (laylist_act) function,7 \8 u3 ~( S- z1 _
- ;; and change focus to list box. Else print error message." G) X3 W* J6 Z$ d; B
- (setq layvalue (xstrcase (get_tile "edit_lay")))
9 r' l! {) W# ]% t& T% W" U - (if (setq lay-idx (getindex layvalue laynmlst))9 n% W( A$ ]$ M2 k x& Y5 `
- (progn
! l' h1 s- T+ D& e8 L - (set_tile "error" "")
. q: ~6 Q2 w! l! G# { o5 ` - (laylist_act (itoa lay-idx))2 [% O0 U# G6 Q/ i3 s: P% @
- )0 g" T- `' m8 a( U7 V% T
- (progn9 k$ `1 v6 ]( G& x
- (set_tile "error" "Invalid layer name.")) _. i$ F9 D7 E: A
- (mode_tile "edit_lay" 2)( k. ?/ X* P4 d6 }9 X: X8 ]! |1 H
- (setq lay-idx old-idx)9 a8 s% E# B- v, q3 X
- )
% l h2 e7 l. p6 ^# l9 m& s - );if& t0 B( x- i- | N
- );defun
) v9 W0 B6 R8 X% a4 C# ` - ;;
( F- N! Y9 q" D - ;; List entry selections end up here
4 e6 U& h% p: _& d( T - ;;
- J9 K- @0 M* y/ ~: g1 b1 | - (defun laylist_act (index / layinfo color dashdata)5 C. [4 ?4 O2 H4 @5 v) I( l8 }
- ;; Update the list box, edit box, and color tile* m7 s. U& M G; W% O2 x; L6 O
- (set_tile "error" "")
! h# }9 h0 \) N! ~% Q9 W& G - (setq lay-idx (atoi index))
( M7 C# S& T* p. { - (if (not (equal lay-idx (1- (length laynmlst))))) k' v% A$ H. U) j& }
- (progn ( h4 R4 g$ J; g. C7 x
- (setq layname (nth lay-idx laynmlst))+ z5 A5 L7 I! I1 S
- (setq layinfo (tblsearch "layer" layname)). y. J3 M: l3 m$ X7 z- F' L+ [4 n, O
- (setq color (cdr (assoc 62 layinfo)))6 o; I5 L: {! B5 U* n
- (setq color (abs color))
: v; D. v6 @" t' Q# d" l- U8 f - (setq colname (colorname color))
z& ~% O2 q& }% G n0 g - (set_tile "list_lay" (itoa lay-idx)) E2 [& [; S8 \! x9 G9 Q
- (set_tile "edit_lay" layname)
( G% S# r' ]* H; }& H1 @. e - ;(mode_tile "list_lay" 2)
) R9 v2 h. V/ T8 p - );progn then 3 L7 P+ e" y9 C3 T
- (set_tile "edit_lay" "")
9 n$ I+ ?9 R7 A, |9 S+ A/ t - );if
( g" l5 ^& Y5 F3 B0 M3 l! N# Y - );defun laylist_act% @' e0 o( n+ n
- ;;% a, y |% q M X
- ;; Reset to original layer when cancel is selected: u' H( j8 D. r5 s* N) {: U
- ;;
2 t( [9 u* V) g- a. J- q: w - (defun reset-lay ()3 f# N! S* ]( ~' [; I0 a- Y/ P# g
- (setq lay-idx old-idx)! t" q9 G. T% ^' g* W1 m7 ?( e
- (done_dialog 0)
8 x8 d Y+ _2 \3 t - )
2 g% I e8 Q1 D/ }" ^
) }* g& I/ w+ N, ^- ;; Checks validity of linetype scale from edit box. It checks to; y. G1 }- S8 m) G/ q4 E
- ;; see if the value equals "Varies"./ ?8 A8 m H7 | e y' l B
- 7 i, l: t$ p a5 ?7 w* e3 z5 k
- (defun getscale (value / rval)# C3 N$ ?, v0 \0 q9 N! h! G, O9 S' ~
- (setq value (strcase value)+ y5 K0 S# q" \4 X% L2 M* E0 o+ U
- rval (distof value)1 j/ q/ t- r" L! W4 t2 o6 u: z
- );setq$ w: G$ A6 W d( s x
- (if (or (= value "")
( u1 A2 W2 ^1 H4 v* N - (> rval 0.0)# U$ M! ^# U1 p, B
- )' f' e' G. l7 s3 d3 j
- (progn
L6 {! u$ x( b. i - (set_tile "error" "")
% q' S( C3 o0 Z- o' [5 m - (if (= value "")* V1 L, ?. ~" t
- (progn
% W- n7 k! E7 B- l$ } - (set_tile "eb_ltscale" "")/ k& Q5 b" T' v, p4 G
- (setq eltscale nil)
# W" p; H0 F5 f+ D% O - );progn then
4 ?/ i8 ?$ N( ~/ l( w& x4 J - (progn+ v Q; O( ?$ e
- (setq eltscale (distof value))& B, t+ s* P( a" U9 d4 I4 `* {( b7 `
- (set_tile "eb_ltscale" (ai_rtos eltscale))' X6 Y/ H- }) v7 J
- eltscale
! o4 j3 A1 ]7 m9 p3 K/ n3 j - );progn else f1 V+ `" u( K, |# }3 R7 N
- );if
$ E4 l" j& `4 |% a - );progn
2 X& |- I; ? J8 E2 e( q* n( o - (progn
3 d- U; Y" @" G/ C! a1 {; t - (set_tile "error" "Invalid ltscale."). S' h, X# b) |+ p' H6 ^9 A" q
- nil7 _6 `$ u1 N- r/ T
- );progn else
7 j5 K5 i: Z+ v" ]* Q - );if
; M3 d6 F) w/ L9 R6 V - );defun
5 V. d0 i$ L& b8 R0 S; P - ;;
) U8 N# I- K7 n$ X; r - ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a! W m3 N& \4 Z, U% O- L5 V# |
- ;; string can't be converted to a real, this routine checks if the first* P% u" j( f1 x* X0 X- A
- ;; character is "0". It also checks to see if the value equals "Varies".
' C" l8 V L1 b) R - ;;
. `& R8 o& q8 u$ J$ ~ - (defun getthickness (value)5 @( I, t& C, ~8 G% A
- (setq value (strcase value))
) w* j' D* z l. { - (if (or (= value "")
" V' C# F6 Y4 ^! Y- J- | - (distof value)
5 K+ Y. D( ^9 V - );or
, t* Z& o% ]" e' n" n4 ] - (progn
% t( O! Q+ z- e4 t3 w; G - (set_tile "error" "")
! j0 W+ G. J* v5 R; a - (if (= value "")" O1 w" f8 e4 @- `* R( p' e
- (progn
: ^2 j& o' p/ S, f+ O2 ? - (set_tile "eb_thickness" "")3 j( A- h+ Z7 b, P4 A! E3 J* l
- (setq ethickness nil)
1 M3 ]) w8 r( k$ T' q7 I - );progn; C2 f3 w9 _& \# E
- (progn. X: E" Z# ]0 t2 M
- (setq ethickness (distof value)); v% B) J/ @7 _. v2 E2 Z& \" I
- (set_tile "eb_thickness" (ai_rtos ethickness))
8 w$ k" X) r8 N5 t4 }+ r - ethickness, O) H# T# Q, |2 ?9 H% t2 p! B2 F
- );progn0 c, |9 e+ F7 j6 m
- );if
# v3 u, x( L N, P6 G* N: Q# m1 A - );progn
6 `( P) S5 _* X" t4 P ` - (progn. y# j% P6 T* n# Y* U; \; n& t+ [' T; p
- (set_tile "error" "Invalid thickness.")6 L4 O" f, ]5 O" b# y9 R2 u
- nil
5 i+ E: e* {4 |) T2 O a% Y* F - );progn4 Y/ r5 ]- S4 w+ h7 Q5 C1 T
- );if# r- |' R4 [0 z* @" s
- );defun
3 |& K& z. f! |" M( [ - ;;, v& P: H! Z. w' C# F+ b. {( R
- ;; Checks validity of polyline elevation from edit box.$ n2 w9 K5 \( R9 Z% b
- ;;
5 w7 c. z7 c u, K - (defun getelevation (value)% E0 I( L7 N0 k! y5 p0 z, w
- (setq value (strcase value))- F- y. H" \3 D V
- (if (or (= value "")( J; e, U/ ^/ \ o$ L
- (distof value)
5 X; O0 w. W6 V% Q7 p - )8 s2 B* `3 @2 {) V
- (progn% r# D! E% I" i& n3 v) c7 C
- (set_tile "error" "")( |5 @; r$ t; }
- (if (= value "")
1 a* [. P, j; v* f - (progn
' t+ X" a3 E5 m- a - (set_tile "poly_elev" "")
0 H- b! m7 X: ?% P - (setq eelevation nil)* [: g, X4 g) L3 I. Q# N6 C
- );progn7 Z' n% i+ _; k5 X8 F b
- (progn( Y) ?' `$ H# R% M0 o# K
- (setq eelevation (distof value))
1 c4 h& |- G6 G" H - (set_tile "poly_elev" (ai_rtos eelevation))5 Q' e" p4 T- W( W1 w
- eelevation$ G6 _* f' C9 d7 g* w) H- _0 p0 L5 r
- );progn& G0 o! `) U8 h
- );if
9 D+ k5 X7 h" g0 S- L: | - );progn9 b' t4 ~8 b( m
- (progn: p. g! A' q4 B7 l$ {
- (set_tile "error" "Invalid elevation.")8 d( H$ r( ^2 |1 S. H
- nil% l7 I$ [; i( p! ^$ t
- );progn
; C% h- d9 P$ m0 R - );if
7 U% F2 c) ^$ A# G ?+ W0 Z - );defun
3 l2 N; }" R$ t3 |3 {2 D2 H - ;;; K. Q' E6 d0 G$ ^- M1 F6 Z
- ;; Checks validity of polyline width from edit box.+ }" t/ f' k+ f0 i: b( G$ l
- ;;
) g( q* ~8 ~2 C' ~# p6 J - (defun getwidth (value / rval)5 ^" s- B9 R; f& l9 o: v
- (setq value (strcase value)4 l- ]# i4 R2 W- ?6 n
- rval (distof value)3 G: L5 k' r0 h% v, C+ T
- )8 }2 \( e: I8 d+ _ H- {
- (if (or (= value "")
" K- ]" c- `1 x8 C1 E - (>= rval 0.0), D1 }# ?# i z0 B& a3 _% b
- )
8 F0 ^- n+ d$ V; j* r8 @ Z - (progn. K: ~9 l- v1 g4 O8 G7 Q B
- (set_tile "error" "")
6 [ G! v/ q8 B% a; p3 ^ - (if (= value "")8 W1 i$ W0 h4 [$ M( c* |: n8 g
- (progn
- @+ H+ \6 U, k" m$ e - (set_tile "poly_wid" "")6 v8 S. d0 L! Y7 `
- (setq ewidth nil)" [$ Q" L! l) Q2 A0 e) J
- );progn
* G% T9 Z' u& I( z0 H# y- | - (progn
# F. Y% }' M& e: t$ C - (setq ewidth (distof value))3 E& d: B" m, q+ ^5 y
- (set_tile "poly_wid" (ai_rtos ewidth))3 ^8 C1 ~- \- _0 Q7 Y% m2 R
- ;width8 S# B) i7 w1 t9 K
- );progn) |( t% A! {/ a0 E( D6 j
- );if
( E& { }& X6 M- V/ w6 p1 Q' B2 O3 s- O - );progn# L3 b2 W+ e1 R% _5 t/ n# O7 @: c
- (progn" V. }1 i+ e; k) \: l9 w# s
- (set_tile "error" "Invalid width.")
( g0 |7 f! N7 F8 @" ~8 \ [ - ;(setq ewidth nil). A1 K$ y; l( [4 t' s; H
- nil L3 g( [0 h' c8 l
- );progn2 [; x1 L( a3 X W0 k
- );if1 ]3 a9 e0 G- p% {4 B% ~* D
- );defun
8 _# A) N5 N9 L - ;;
( @: n/ Z0 W1 t8 }: ^2 { - ;; Checks validity of text height from edit box.
8 r8 }' q! p9 ~ - ;;* r7 C4 N5 ]( ~) s2 g/ ?' _
- (defun getheight (value / rval)$ e, @4 u9 m T) C
- (setq value (strcase value)! r: u: }" q* p0 f8 z2 J6 T
- rval (distof value)
/ n3 d X# O6 P+ x7 a$ i* e1 G1 \ - )
2 y$ B( h1 x5 b - (if (or (= value ""), q4 A, j! _* L: u# C
- (> rval 0.0)8 j- C7 O) F* e1 e+ P) S8 x% Q
- ); D9 ~4 X q1 p2 Y. T/ b
- (progn
: V P* S4 z! j$ o5 r/ W2 r4 o( R F - (set_tile "error" ""). \0 ]9 ? R# V9 h+ a
- (if (= value "")! Q8 V$ g) a9 j- x; z6 @! v6 O
- (progn' }6 J5 R/ q* y8 _/ W
- (set_tile "text_hgt" ""). N; n" L! C) C. S: }3 L1 d/ O! w8 T
- (setq eheight nil)
. B5 W3 j. ]8 z- A/ U f H- z- P - );progn, v S m3 ^/ ~+ x& w/ Z
- (progn/ y5 c$ n' b# [5 ^9 I: Q
- (setq eheight (distof value))
u4 {4 o# d1 |" W - (set_tile "text_hgt" (ai_rtos eheight))
- L3 I( j. _8 Q1 E6 j' T - eheight, O$ E" r, V; ~
- );progn) K Y- q! O5 y9 R3 u/ E. Y4 ]
- );if
, J: v0 h, N. ^% Z+ U - );progn
/ b+ j' T+ d# m: F - (progn& X$ s; f4 j% l+ k. ]
- (set_tile "error" "Invalid height.")
9 }! E9 d! h' I B7 v6 i - nil) k6 m$ T+ U5 y) G: S
- );progn
. L0 T, c, h' F P, e# A: ~. o* n- I - );if1 t/ w5 U: s' ~# r, ?! ], s% j I
- );defun
, p5 K# v" S& z7 }' J& K1 u - % Y* a! m/ ~0 z: C
- (defun getstyle (value lst / rval)
/ d" ~( k3 n8 ~& ~ - ;(setq value (strcase value))& P! m, G$ L9 W
- (set_tile "error" "")4 Q3 L5 ]; m g1 }4 v
- (setq estyle (nth (atoi value) lst))# }7 ?; L8 b. x
- (if (equal estyle "")
. v" g! M/ [. c6 a. S' { - (setq estyle nil)
4 u7 m; @' q5 V! Z" c( m( d4 p# L - );if
0 v r- g: _0 i: d- [' a -
3 z# q0 U1 f9 W8 E - );defun getstyle( Z$ r- Y0 J/ F; @% Y) F% b) t3 C+ u
2 a0 ?+ B! Y C3 s5 b7 `+ ]9 {- ;;
+ r2 R: A! h. L( Y - ;; This function make a list called laynmlst which consists of all the layer
* R" l6 c, l, r4 S - ;; names in the drawing. It also creates a list called longlist which
3 T; i% q5 u A/ w" g - ;; consists of strings which contain the layer name, color, linetype, etc." q/ _6 U3 F, ]' Y
- ;; Longlist is later mapped into the layer listbox. Both are ordered the& @9 c2 z' Z. W* y6 ]1 i
- ;; same. F) q2 L' G5 Y: j2 X7 \
- ;;# h2 \. @; {" S4 T, {, P3 Q
- (defun makelaylists (/ layname onoff frozth color linetype lock vpf vpn ss cvpname4 I D' k* m7 t& Z' L" `$ ~
- xdlist vpldata sortlist name templist bit-70( {! Q8 ~' ?0 J6 o3 _2 H
- layer_number1 N5 s" S( m( ?( S# o: x, p
- )
; Y" f7 M8 b$ ^ - (if (= (setq tilemode (getvar "tilemode")) 0)0 x7 G" |3 s7 d2 y
- (progn/ S K* V/ x6 e/ G1 T0 Q* h
- (setq ss (ssget "_x" (list (cons 0 "VIEWPORT")' G0 p2 G/ S4 S) Z" w* ^
- (cons 69 (getvar "CVPORT"))
! t" B+ V( @* P3 Q; N - )6 z2 A3 I' H! u
- )' W! ?; F% X( v/ c! s1 `% |
- )! [* W# z+ u! n
- (setq cvpname (ssname ss 0))
* i Z% w# P8 N - (setq xdlist (assoc -3 (entget cvpname '("acad"))))8 Z! C! s. l6 U8 k+ _+ Q/ D
- (setq vpldata (cdadr xdlist))
\ K5 ]( L9 U# P* E3 ~# Q6 z - )9 ]9 m3 Y8 b- ^; ~2 x
- ), R) M' @2 Z8 b
- (setq sortlist nil)2 }0 t1 j# Q5 l1 q* x: L$ K
- (setq templist (tblnext "LAYER" T))1 B D# m4 ?; U% r
- (setq layer_number 1)
( g. C) ~% u, c% }( F- f4 I2 S" D - (while templist
8 T1 b% G3 n! g& q4 J* ` - (if (not (equal 16 (logand 16 (cdr (assoc 70 templist)))))$ x+ P) H# n4 |- p8 R0 M& Y
- (progn - X" N: L/ s( L; ^' l- a2 h
- (setq name (cdr (assoc 2 templist))); C. {+ f& E/ s0 E/ O' j
- (setq sortlist (cons name sortlist)): A( o! s1 W- L$ a
- ;; Not dead message...5 X7 x1 ]5 D. p1 E( b, g: Q/ O, h
- (setq layer_number (1+ layer_number))
9 I! j8 t. F( t" n! l$ P1 C1 l1 y - );progn
. c5 S: \5 U; n3 A; p D) ^ - );if b( e8 v5 k2 a" p: p2 ~# a
- (setq templist (tblnext "LAYER"))
' v0 h' @+ b1 h/ z# s! z - (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))8 ^$ V+ a% | O* V9 q' ^
- (set_tile "error" (strcat "Collecting..." (itoa layer_number)))
- ~3 V/ z9 K# u - );if7 B: M9 v6 D' S. M9 h- r) y
- )
8 z5 c1 R# F* z& w) C; k: H s - (set_tile "error" "")' m" L }- ?) v8 Q
- (if (>= (getvar "maxsort") (length sortlist))
7 |* e6 M/ V; X4 M+ N' }9 P3 |0 d - (progn
, ~& T/ G" Z( j0 f6 v - (if (> layer_number 50)
6 _' D) l+ B$ q' m - (set_tile "error" "Sorting...")7 k0 O8 C0 F2 D* c7 l9 I2 t
- )
0 g) n5 M& I- R0 G+ D - (setq sortlist (acad_strlsort sortlist))) l: j. q( h* @' K8 f
- )
$ G9 A7 H8 p: r7 q7 F! m8 t' w - (setq sortlist (reverse sortlist))9 X& b( W& V# \2 ~
- )1 a+ G. |2 S6 h& D( p
- (set_tile "error" "")) Y% `8 b* E$ X; t2 X& U
- (setq laynmlst sortlist)
( `# t& T' o1 D/ i4 c1 p/ f+ [ - ;rk " A2 b' L. y. C. \& [
- (setq laynmlst (append laynmlst (list "")))
) E* D% G- Z! ~ J5 E3 P0 Y) f
/ n+ J5 g6 Y+ ^& F* c) X& E- (setq longlist nil)
6 g/ `/ C: O* \+ Y - (setq layname (car sortlist)). Q/ V# @* C, o* g& Y
- (setq layer_number 1)
( u X! c. j! w - (while layname9 Z7 O: H( M( k- O7 ?) l# z
- (if (= (/ layer_number 50.0)
6 x1 @. B6 J2 T( ^6 e# x - (fix (/ layer_number 50.0))0 F2 c( ]9 ^. O
- )
6 b+ y9 b5 v5 q. `$ p - (set_tile "error" (strcat "Analyzing..." (itoa layer_number)))
0 b' B/ u5 `# [7 k0 F( z0 [, P - );if/ P8 F& q, _. ~, W( X+ _
- (setq layer_number (1+ layer_number))& { Z+ U9 e: {1 @; ~
- (setq laylist (tblsearch "LAYER" layname))" E; R- m+ r: z; x# j/ `5 u i( ]
- (setq color (cdr (assoc 62 laylist)))
! k8 ^3 k& j# J+ H5 a o; r - (if (minusp color)
& c: N# t: I: i - (setq onoff ".")1 W0 v2 f: w7 j2 f5 ^+ \
- (setq onoff "On")0 o5 k: V2 [0 L7 x; q9 O
- )
# x) U0 M( Y* {/ E# @ - (setq color (abs color)): {; y" `# P) `: i) }4 k: i4 V
- (setq colname (colorname color))
- r; d6 q$ J3 Z - (setq bit-70 (cdr (assoc 70 laylist)))& v: j# c7 ` `# P* C2 [& r
- (if (= (logand bit-70 1) 1)- U! F3 W6 x3 ^
- (setq frozth "F" fchk laylist)! P" e! B; p/ t" r) G4 W. F
- (setq frozth ".")
* z& m {2 ]% D - )7 a' W! d" d! [7 h) E% [
- (if (= (logand bit-70 2) 2), t. z6 J6 ?- Z
- (setq vpn "N")4 \7 K2 q' s) {: N8 Z
- (setq vpn ".")
3 }$ _. i6 o4 c: i - )" h: |8 Q+ z9 O* s
- (if (= (logand bit-70 4) 4)2 F" G6 I* m5 N3 a: G( f
- (setq lock "L")
+ U. I) D4 U V - (setq lock ".")
5 [0 M' [8 k9 e8 k W - )# o5 v. ?9 L$ R& e% g: X! K. r
- (setq linetype (cdr (assoc 6 laylist)))
5 k, b! }1 X6 n+ w) P+ K. | - (setq layname (substr layname 1 31))
0 z# M4 j. a3 b1 O - (if (= tilemode 0)
# e- O( l. Q% A - (progn1 W; e* j7 J& W' Z
- (if (member (cons 1003 layname) vpldata)6 {! c- k4 b2 K$ D+ }2 x7 D1 y
- (setq vpf "C"); G! d! n7 S3 ?
- (setq vpf ".")
) s7 t" M$ I; d8 \' i! ` - )1 h6 n& t+ ^) H. G% o
- )6 z9 s& q, S R+ W* z; [! A
- (setq vpf ".")
1 y& s; t& y& k$ u8 ] - )
, @/ l9 J6 H; L* L8 C - (setq ltabstr (strcat layname "\t"
7 [, B; _! k1 r. j* |6 O - onoff "\t"
0 X( o g5 x3 R3 B& q- B - frozth "\t"+ n1 w1 b' O5 b. U' G/ U2 `
- lock "\t"2 S6 ^8 h. Z n; }* x( f+ m
- vpf "\t": L( w1 p% a5 [2 X
- vpn "\t"! H u0 M4 M3 z: J
- colname "\t"
3 C s( ~9 X8 n0 L- g- T - linetype" F7 n% m, |* h- W
- ); M w, v2 X0 u* L- _
- )
3 V) l8 {3 {9 |2 R5 u - (setq longlist (append longlist (list ltabstr)))
% o! C1 y, y3 U2 E. K Z - (setq sortlist (cdr sortlist)); ]8 h9 s3 l+ z! M/ W
- (setq layname (car sortlist))
( `/ I$ L8 q" I; H' u - );while
! W; v; `( _+ E; F8 X - (setq longlist (append longlist (list ""))): j+ x* P) H- [3 B& K" M
- (set_tile "error" "")# C3 p+ l( N* q1 w8 i D v" J
- )- W% u' x7 f, v
- ;;5 r! @# g* s) Z+ G
- ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of* i$ i; }; ^! j
- ;; linetype names read from the symbol table. Mdashlist is list consisting9 E* q" h: V8 b( h
- ;; of lists which define the linetype pattern - numbers that indicate dots,
& {. R0 V; q4 S2 j8 U. h - ;; dashes, and spaces taken from group code 49. The list corresponds to the
* v$ F5 u, p5 b& d6 V - ;; order of names in ltnmlst.
# E' F4 T! c4 ]" S. ~: { - ;;' V4 u# w! s0 g3 H8 q! _
- (defun makeltlists (/ ltlist ltname)2 M7 g( u1 ~, J- `* i# }, h
- (setq mdashlist nil)
0 a6 _7 x: g7 _9 P* @7 O$ a* b - (setq ltlist (tblnext "LTYPE" T))* x8 r+ D$ T, ?* x
- (setq ltname (cdr (assoc 2 ltlist))); \: Y: k0 H' o e
- (setq ltnmlst (list ltname))
1 I) v7 S G" K+ n0 N - (while (setq ltlist (tblnext "LTYPE"))
0 Q8 c+ j* x. q' p6 X( O5 f - (if (not (equal 16 (logand 16 (cdr (assoc 70 ltlist)))))
3 D, E E& z0 ?" n - (progn
' Y W* R, x( W# Q - (setq ltname (cdr (assoc 2 ltlist)))
- u, J/ X8 ?) B0 U+ t) d - (setq ltnmlst (append ltnmlst (list ltname)))
& X6 p) u! d N7 n( h - );progn) F- m0 q3 L& R: k3 I: p
- );if ! V& q9 W5 p8 ~- e5 Z" L
- );while
5 k W) a$ H3 @- Y9 Z - (setq ltnmlst (acad_strlsort ltnmlst))1 N) M) d. D* \7 \4 P" i
- (setq ltnmlst (append ltnmlst (list "")));add by rk 5 z& \( R1 K' Y, I( S( T+ U; c/ @
- (foreach ltname ltnmlst
/ O- S' p1 k' f% e- {: B/ O3 Z - (setq ltlist (tblsearch "LTYPE" ltname))% Q1 t7 T! f& k; z3 L( X1 k8 X5 p
- (if (= ltname "CONTINUOUS")
) n+ `% R; O1 {* O* y1 v F) G - (setq mdashlist (append mdashlist (list "CONT")))
: b p3 v7 r- w3 ]# K: i - (setq mdashlist
# g6 c) g+ I; j$ z1 P! K2 q - (append mdashlist (list (add-mdash ltlist)))+ a- u* D E: E/ m! n
- )
3 `3 l1 Q" f1 Z( [5 i - )- z; c Y& R) W
- )8 h Z3 G9 g7 T- E4 S
- (setq ltnmlst (cons "BYBLOCK" ltnmlst))3 V1 S. S8 Z6 n( y
- (setq mdashlist (cons nil mdashlist))
D$ O7 `8 b, e( v3 k - (setq ltnmlst (cons "BYLAYER" ltnmlst))% i0 A4 J! S* P' v9 T
- (setq mdashlist (cons nil mdashlist))
- ? v- T3 L" a# B8 u# P - )
( B L' d+ Q; J- q" I/ g) U& U - ;;
N( `7 v8 G6 n: k1 W - ;; Get all the group code 49 values for a linetype and put them in a list4 I6 I/ r) W9 w: N
- ;; (pen-up, pen-down info)
$ ~+ Z' P3 y$ ^, N; ] - ;;$ {# w- g" y5 C7 D8 n2 [
- (defun add-mdash (ltlist1 / dashlist assoclist dashsize)' H2 w1 h% g: |$ `8 `, d) p
- (setq dashlist nil)
- c, Y# i K, u - (while (setq assoclist (car ltlist1))
( k6 f8 y6 q6 ^$ T- ~+ T - (if (= (car assoclist) 49)
! i" [" \: X2 D, ?4 o$ @ - (progn
# O% N, \1 H+ F+ c/ N - (setq dashsize (cdr assoclist))
7 E Y" W6 |4 ~ - (setq dashlist (cons dashsize dashlist))
& U9 Q f' @$ C+ m, l. Q - )/ v3 ~. A4 t( D0 r; `+ t; n
- )# s6 w2 `7 N3 f4 a- _6 \2 ^; f
- (setq ltlist1 (cdr ltlist1))& E9 C0 w( ]3 R
- )
) w1 S5 J4 G& j8 G - (setq dashlist (reverse dashlist))
0 ^# t& o4 X1 x9 f5 v; b$ k - ), a; X$ _6 X2 n5 j. } U% [
- ;;* s# V" G1 N( D. ~- [) F& {4 @
- ;; Color a tile, draw linetype, and draw a border around it
' R& b" d1 l1 z; G8 y+ Z* ^ - ;;$ ?& F# X$ d( g _3 n
- (defun col_tile (tile color patlist / x y)
+ K" _2 s! K) p8 i - (setq x (dimx_tile tile))
% r" g$ ?. f( k5 `2 e5 S - (setq y (dimy_tile tile))0 i8 t% z q# H- o j$ ^3 z
- (start_image tile)7 W0 O2 O' q# d& F- X Y! l' B
- (fill_image 0 0 x y color): L9 ^( s% Q' e! ]
- (if (= color 7), r3 u% e+ a, J4 a- ~9 p0 m% M
- (progn. Q0 o2 C( g& t) t
- (if patlist (drawpattern x (/ y 2) patlist 0))! X( d3 S$ b6 I- e% @1 ?) |( w7 y
- (tile_rect 0 0 x y 0)8 i$ G8 b' s5 R% z( ~' d
- )
7 R& ~0 M. i4 ~+ R - (progn
2 v5 c( @0 l9 S0 I% v - (if patlist (drawpattern x (/ y 2) patlist 7))
2 O o+ N' @$ d. y2 ]4 o8 |- _ - (tile_rect 0 0 x y 7)# g: N3 U- c8 p$ @) I E
- ); F* `7 y e2 ^3 H) _
- ), v( D4 y/ S3 B' V: I0 }- v8 O" E0 k
- (end_image)
" O9 h1 ] Q/ V8 F - )0 X4 V. m! z% D; b/ U1 ^* k
- ;;8 N9 h: @' g5 P$ {/ q: q
- ;; Draw a border around a tile
1 y; ?/ y/ [% q - ;;
9 ^5 c4 U; _6 z: j, k4 L, I - (defun tile_rect (x1 y1 x2 y2 color)- w+ o, J0 e$ S- f
- (setq x2 (- x2 1))
4 E7 v6 }! j' |; Q8 k - (setq y2 (- y2 1)) E' ?" |0 p5 G4 ^6 X! f2 _, k
- (vector_image x1 y1 x2 y1 color)
- {4 Q. H* w2 [$ l5 l. j0 Z& _9 e - (vector_image x2 y1 x2 y2 color)1 f+ O+ e& Y/ t& _) \2 a& v
- (vector_image x2 y2 x1 y2 color)
+ A9 z* L: z! X' g+ |0 I# u - (vector_image x1 y2 x1 y1 color)
( E1 p. u) g k3 }8 v - )# M( z; P3 J3 Y7 L- J; d' s
- ;;6 T7 D0 e z& Z
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
4 ^3 a$ N$ k9 Z. ?" K+ f& m+ R8 N - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
$ z3 y2 l: J' H% p - ;; list of numbers that define the linetype, and color is the color of the
p+ I( } e1 |4 \5 | - ;; tile.
1 K3 u. \: m; @( y5 a* L+ }3 _ - ;;
, @. a6 M( R, G1 l* h" c% Q: j) y - (defun drawpattern (boxlength y2 pattern color / x1 x2
5 z; |) d7 I$ G6 Z- d - patlist dash)
! @) E8 {( W# Y3 g9 i - (setq x1 0 x2 0)- L9 D5 h+ ?. [ Z! B% V( i4 |
- (setq patlist pattern)
9 m* F2 U) }) u1 }$ \" @- H - (setq fx 30)
% x, N8 }( b" T5 F4 C - (if (= patlist "CONT")- R' l! q9 b% ]8 ]
- (progn. t+ h5 }4 ~8 R5 k' T1 N0 K
- (setq dash boxlength)
! u8 D. `8 ~" c+ m1 k - (vi)
1 N2 x0 A7 y' R8 w" D. I! Y - (setq x1 boxlength)
7 v# Y7 x/ [8 ?! Q J - )
& H3 B4 U" Q) @7 \; f N% R# p - (foreach dash patlist
: j/ X; i. s& W! ^; j - (if (> (abs dash) 2.5)
1 R! r1 b; O, @3 u - (setq fx 2)
9 n& i! P [0 e) o% E( X4 q: h - )
3 F- Y% N/ Y) K - )
3 N/ k" Q* \1 j - ); N6 n2 d2 O7 z7 S- {) a
- (while (< x1 boxlength)- [& e5 w! y' U9 M' o
- (if (setq dash (car patlist))
2 D8 h( h1 t6 L - (progn% f# W6 Z# }8 q+ W
- (setq dash (fix (* fx dash)))
& G. s8 _9 S O - (cond8 x+ h* k2 I$ A2 a& E+ t+ ^. d0 Y
- ((= dash 0)
& ~) B+ Q# w% G8 b! j9 r6 _ - (setq dash 1)
* p: r( Q+ V9 l! x5 M - (vi)
V3 G+ c" e0 x9 }, x/ X q - ); @' o" y- n0 r8 K# P& r
- ((> dash 0)
7 B! y- n v' E; v - (vi)
5 ~ r/ Q5 O4 d - )
( `! m5 F" l( D$ B( y( @( b - (T
7 `2 i; G+ `' W3 Z$ P( z1 q - (if (< (abs dash) 2) (setq dash 2))$ B& S. j. U' z' E3 v
- (setq x2 (+ x2 (abs dash)))
+ r- J( {/ C& H& E" j6 N. b - )
! L, \: U6 Q. L" f6 z - )9 y+ K5 E8 [, j+ t+ h0 T
- (setq patlist (cdr patlist))+ j4 u& X% ]+ l5 n! {: B: c2 z
- (setq x1 x2)
9 J: n# |! t, p - )& w& Y' O4 ^9 S6 U% `$ @
- (setq patlist pattern)2 c) t* S4 T, k9 S7 C& H
- ); u% d G5 v0 O' k3 E" _
- )$ p6 k+ @' |. A0 e6 M! G5 R% `
- )* X9 Z. K# o, [$ J
- ;;! j) h- h: [9 d' Y1 }2 o2 w: T* {
- ;; Draw a dash or dot in image tile2 ^9 {6 r L9 R4 D" u
- ;;! ?) J& J# t) h* f) J v
- (defun vi ()0 I8 v. g* I. i* P: d v
- (setq x2 (+ x2 dash))
$ j6 B1 _! W. Q/ {5 M7 J - (vector_image x1 y2 x2 y2 color)6 L& Q- H3 r5 {! t* u) c
- )
/ E6 _* u( o6 V2 k9 t1 K1 y2 c - M, V7 ^, ]8 h0 [8 P8 | b( I+ h
- ;; This function takes a selection and returns a list of the color,
, | ~8 v4 R9 Y3 w% U - ;; linetype, layer, linetype scale, and thickness properties that
5 W9 Q1 p2 z$ w: q" U, { - ;; are common to every entities in the selection set - (color
- R, @" c9 ~4 V3 f - ;; linetype layer thickness). If all entities do not share the same! |$ p, j) @0 E0 \. V+ G
- ;; property value it returns "Varies" in place of the property
8 x% r1 C0 ]) e" { - ;; value. i.e. ("BYLAYER" "DASHED" "Varies" 0)7 f( w( S+ [: z8 y1 ^
- ;; The last item in the return list is an integer flag for the; w( x: j& W! p; X2 C
- ;; homegenity of the selection-set object types.6 F' N2 F! Q. }1 D3 D+ `
- ;; 1 = All polylines% J! {: _# C& b' k
- ;; 2 = All text or mtext or attdef, or a combination of the three
- v, t2 r1 |3 J: Y# C6 a( ~- B - ;; -1 = Any other mix of objects
2 V7 V) i" L: Y/ l3 f |
+ J8 X* _( ^( f6 ]' x0 [- (defun getprops (selset / sslen elist color ltype layer ltscale thickness
K* z' W) B% ?, a' H. i7 d2 B - width elevation height go ctr
, E A4 ?# C" Q8 O& D - eflag / Z2 o# L# C3 }- s
- etype temp
0 }" j& k! E" L - txt_ss ;;;;rk 11:24 AM 1/30/97
4 E) ]+ Y* V) x: }' Y" p4 T0 | - tmp * g- |, L3 T4 `0 Y. r# i
- poly_ss ' f5 t6 I" d# j- P
- style& C6 u, ^; b0 p& v- d
- )) D3 N5 Y1 \- o) g u) q: B2 w1 o
& c' R' n5 F+ }4 F
" H8 B0 u6 H) ]$ L+ f' g- (setq sslen (sslength selset)5 S1 s& r. [4 N- P
- elist (entget (ssname selset 0))/ D- B% \8 q3 f( U" @4 h
- etype (strcase (cdr (assoc 0 elist)))! C) U1 \4 r5 b% M$ p
- color (cdr (assoc 62 elist))1 ^" q0 n$ b- S0 `9 a7 w' [: {, \% _/ }
- ltype (cdr (assoc 6 elist))
$ R6 r" F8 F) c+ z) [( d0 r; M - layer (cdr (assoc 8 elist))
; ^5 [; S3 k. z - thickness (cdr (assoc 39 elist))" |# x1 p" k6 d ~
- ltscale (cdr (assoc 48 elist))1 X7 ]2 N2 Z$ A) _ k
- );setq# [8 L, Z, A5 ^
- 8 l7 E) x5 l% Q+ k9 y; Q2 k, t# c V
- (if (not color) (setq color 256))
) M; O1 g# m# F3 ?7 j2 W0 m - (if (not ltype) (setq ltype "BYLAYER"))) J# ^. ] F0 T9 r. C
- (if (not thickness) (setq thickness 0))
3 x- D4 B: ]& X( y - (if (not ltscale) (setq ltscale 1))
# K; k3 z. ?# B9 w" y
$ f5 I- [9 s4 Z2 n7 f' Y5 }8 o- (if (not width) (setq width ""))( u" W% P8 t8 y* U P8 I9 b
- (if (not elevation) (setq elevation ""))
* S/ E8 {/ u9 x' Y. ^* z' y2 v: v - (if (not height) (setq height "")). c2 e' U k% F: ^* i
5 J: F& V8 m3 @6 A9 K E% o- (setq go T
- ?4 ~) C1 D7 }$ h* ?" l - chk-col T , G5 c7 \! ^! O( b" X1 b$ F. S2 J
- chk-lt T
$ p7 m8 i/ Q T3 j# B - chk-lay T 2 _2 r/ o# t& q( @3 D
- chk-lts T
2 y6 n& V# N( O0 j& a - chk-th T
: w; a/ d* y w9 ]5 o# k6 A - ctr 07 k' r- u) o, w% S
- );setq% L; @! x m) [. H- s
- ' k5 P+ X. P5 F% D
- ;; Page through the selection set. When a property
, S7 O6 e9 ]' k - ;; does not match, stop checking for that property.
( W y! ~# E, U8 q - ;; When the selection set is not homogenous, stop checking." v! M+ |7 d+ X/ \0 f
- ;; If all properties vary and the set is not a type 1
6 }$ [! c- G1 |/ W - ;; (polyline) or type 2 (attdef/text/mtext) set, stop paging.7 S& n5 v, w1 A3 G7 s
" j* f$ o+ _* ]& P" X# X `; G- ;Lets set the eflag so we know if the selection set includes any - _8 |# r9 k: _% f. k! {$ \2 j
- ;combination of polylines, lwpolylines, text, mtext or attdefs.: F: ~2 s7 ^) e! C5 P$ h
9 {3 }% G( y U2 G Z- ;watch out for 3dpolyline and 3dmeshes here! @rk 10:17 AM 1/30/971 k3 d# e& k$ z9 s: H
- (setq eflag 0)! D! u9 r. {2 ]/ d0 b' e' ]
- (if (setq poly_ss 3 J. U$ k! m' E d; C% Z; Q8 {6 ]6 y
- (ssget "P" (list '(0 . "*POLYLINE")
, R i: _. A) f' O - '(-4 . "<AND")
" N$ K$ X, H- o - '(-4 . "<NOT") '(-4 . "&=") '(70 . 8) '(-4 . "NOT>")
; H: l4 u+ Z% D. b: z0 M - '(-4 . "<NOT") '(-4 . "&=") '(70 . 16) '(-4 . "NOT>"), w4 A- h4 x) V# M, x
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 64) '(-4 . "NOT>")
* n8 U$ @% Q0 J1 A0 i; }( h3 [ - '(-4 . "AND>")
5 \5 R( T0 e0 K0 j4 j* M @ - );list
& K* e- m' ~1 z$ G9 \6 z - );ssget get 2d polylines (legacy and lw)
- Q0 @6 N4 p6 T" _% D+ U- j/ o4 p; J - );setq
# h3 V6 i' `5 G& g @ - (progn- `# D/ w) j; N5 d
- (setq eflag (+ eflag 1))
* s ~8 h* h0 t1 G6 O2 l" D1 |4 A - 6 D# j0 l9 A2 a. c* {' v
- (setq tmp (entget (ssname poly_ss 0)));setq+ p5 [; @7 _! {& h
9 l8 n" S) e8 u1 U6 t3 h- (if (equal "POLYLINE" (cdr (assoc 0 tmp)))
8 Z8 F$ x( ]" q2 Z1 {$ a. G5 @ - (setq elevation (last (cdr (assoc 10 tmp))))' n7 _& ^* |5 k, ~3 [
- (setq elevation (cdr (assoc 38 tmp)))
1 t. q! d4 C+ V( i. ]! L+ j - );if q& Y2 G7 r( N" \; [' [
- (if (not elevation)
0 l; l& M. A: }# q - (setq elevation 0.0);setq( }. h. e/ `) u: M
- );if
3 p0 Q9 ?* [/ Q F
* s) n+ M2 l2 {" @- (setq tmp (ssget "P"
7 K! F0 a$ U5 F9 `5 Q1 ]- p - (list 7 `! r |3 Y `) b. Y& @% ^2 @
- '(-4 . "<OR")
# w) ]! n1 i3 ^0 L' X - '(-4 . "<AND")
( e6 b$ c6 P0 E9 o d! l* Z - '(0 . "LWPOLYLINE")5 ?3 e/ x/ l1 o8 ~) {
- (cons 38 elevation)0 _9 ]2 }& m6 b9 y+ ]: h8 z, ]1 `/ w) V
- '(-4 . "AND>"); U1 }& v5 l& ~+ K0 C7 L
- '(-4 . "<AND")
$ _) Y8 H5 @8 f* e - '(0 . "POLYLINE")% c& ~# j$ S( u! G
- '(-4 . "*,*,=") 1 p8 q7 ^. M, D
- (cons 10 (list 1.0 1.0 elevation)), w: W6 n1 G" P; s G5 q3 Q+ B* h8 ?
- '(-4 . "AND>")
: G1 c" ~9 c1 T: U! H - '(-4 . "OR>")
% g( e1 y s" h9 ? - );list% ]# C6 K% o1 B0 p
- );ssget" j* b# s( v+ U
- );setq
; I$ K4 [9 Q5 _
& p& [( I3 ?7 C! D7 W) B: M- (if (and tmp
; _+ Z; ~) _, v0 D( f: \( ?& i - (equal (sslength tmp) (sslength poly_ss))
e! @& ^! x4 P6 y0 w - );and' F3 W' R; Q5 K$ N( t5 W% r
- (setq elevation (ai_rtos elevation));setq
: V6 n1 ^2 n5 R - (setq elevation "")
5 V( q6 G; Q. @+ {# K - );if
0 g$ L6 Q9 a# N) H1 _4 m3 X - . s5 s( j3 o. w- ^
- (setq width (pl_width_getter poly_ss));setq9 Y+ j2 e1 f4 y" I# p0 p
-
3 Z5 C. u6 H& K' ~ - );progn then 2d polylines and/or lwpolylines are in the HHHHHOUSE!# k4 |( U1 r7 B3 s4 T1 j
- );if) h! ^! m$ o* u' u% A% ^' ^
- (command "_.select" selset "")8 y% t: o5 i2 ]$ L
- 3 s; R5 [/ A; X. I* D! y3 i
- (if (setq txt_ss
1 K7 ]' w$ [9 L( m: s - (ssget "P" '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT")
7 k0 [& j4 x( q% s - (0 . "ATTDEF") (-4 . "OR>"))# v& _5 u# c3 N2 [; _" @
- ) 2 ~: @( {) X( Q. g1 F
- );setq8 a L' S: J2 }# [
- (progn
" T c; m1 m/ f: a6 }! e' f) `4 u - (setq eflag (+ eflag 2))0 ~6 p3 t9 K( z
- (setq height (cdr (assoc 40 (entget (ssname txt_ss 0))))0 d5 u4 G3 }* K5 u# j5 {; U
- tmp (ssget "P" (list (cons 40 height)))
* v( `, ?) e; V - );setq
2 |. u- C$ `* x2 S* c, A$ [. p - (if (and tmp
$ g% N4 y% ~1 z7 c% @: C# C+ Z4 c - (equal (sslength txt_ss) (sslength tmp)) * X5 M; \! h6 Y9 @' B; E
- );and& e/ g s$ F) S2 T3 p, x; S/ Q
- (setq height (ai_rtos height));setq ;@rk need to translate from float
4 a2 J( p, [2 x# I: d) P/ A7 H - ;to string and back again easily
2 A B/ z. ?' M; _: I6 B - (setq height "");setq else the height varies 2 t7 ~% ~% ~6 g0 M" E: I% v* C
- );if
, p+ l; L6 | n) C0 |6 N6 m# |7 v0 N - (command "_.select" txt_ss "")
# C! Z# T. k" M$ E3 @8 G - (setq style (cdr (assoc 7 (entget (ssname txt_ss 0))))3 u& }2 O& L5 V( b! N
- tmp (ssget "P" (list (cons 7 style)))
5 W% _ A0 Z/ r4 J/ m1 [: j - );setq
- s* Q. ~2 {) Y1 h( |5 M( h - (if (not (and tmp
% W& z/ B7 v" Z9 M6 F; ^ - (equal (sslength txt_ss) (sslength tmp)) ( C. l; X/ P+ _7 n% m3 ]1 U U7 Q' J
- );and2 b: x5 c: z7 g8 E
- );not
* h9 ?8 Y* z* T, _2 L8 W8 U& ^ z/ l - (setq style "");setq then the style varies
2 z- a3 I) S/ i+ U/ q - );if
4 H/ m* p u2 n# [" n - );progn the text type objects are in the selection set
) o1 \+ G) P* M! `. G' X - );if8 v1 L& s/ x; c" g$ ?
- (command "_.select" selset "")
' x+ ~7 q7 R+ h8 F, g: T4 ~- U -
) S A0 V3 F0 H" t! \, }. J - (while (and (> sslen ctr)
, F& P& @$ T/ ?9 D a7 f. v. n - go
, L/ g! e5 f/ }; p, D - );and
% O5 N2 _/ F4 M( P1 C$ \& X' H: V - (setq elist (entget (setq en (ssname selset ctr))))
3 Q; ]& E" f2 I. r$ N - 1 m. ~7 X4 x9 X/ r4 a7 }( _+ f
- (if chk-col (match-col))
$ W: y; s y6 `% u - (if chk-lt (match-lt))9 o, I8 M; I4 v& [) U3 n
- (if chk-lay (match-lay))
( J* x$ @( }6 a9 j: R" I; a$ K& s - (if chk-lts (match-lts))$ m) e/ f/ V& }+ M9 S
- (if chk-th (match-th))5 K4 F6 s% h, u# k9 Z5 u- H
4 U8 F# S' o& R( [8 j4 _- ;(if chk-etype (match-etype)) C0 F% J5 v4 l4 c+ J: L5 @' G0 E6 V9 x
- 4 C' v' Y, a1 O5 w- J* z0 a
- (setq ctr (1+ ctr))
0 o/ Y8 N7 E! L7 I7 a* W2 p+ i - (if (and (not chk-col)
1 s$ L& f- J* M3 r# _9 ^% A - (not chk-lt)
3 m* B; U# J, b& t( Q) N# Y - (not chk-lay)
# u# u9 `; k5 T/ @6 B - (not chk-lts)( Z- \1 o6 h0 N2 U; i& z' I
- (not chk-th)
3 |8 @4 ^# T. R% T - ;(not chk-etype)
0 e. i( t' e! X - );and
( T1 R8 [# U! @7 }# y! q- R/ z3 M' d" P - (setq go nil) u" Y) Y( Y. m% N6 z. z5 L
- );if' c/ k K# U5 ]& }- f4 m! C
- );while
( c9 N I1 a' ]/ s3 c) o -
8 q3 V2 g2 V# A3 W) S o; W - (list color ltype layer thickness ltscale
' H4 Z- t; |# ^9 M$ V* r - width elevation height eflag ; H7 Q- J$ p- j, h
- style poly_ss txt_ss
/ U+ C' [6 n# T: D8 M/ |" c9 T - )" z; l4 s6 K1 d" M& S
- );defun getprops: b9 x3 E( N* H
- 8 q, x" \: F. ^/ i
- ; This is a speedy little routine to tell whether the polylines in 0 Y6 c6 s4 y) ?, V: B5 _( c
- ;the selection set argument are of varying width or a constant value.
7 H) d. _8 d0 n8 _- e) T4 r# c- A - ;Looping through the vertex's has to be done for old polylines when
7 E/ c4 [8 r8 n' a& z' Y- v$ z - ;the polyline header has width values of 0.0. Basically, in this case, T( d( Z2 j, I& B1 g
- ;information in the polyline entity header is abmiguous. Width values / \9 T* ?6 x! l! X' e y! g
- ;of 0.0 in the header entity could mean the polyline has a constant
# v& @" f+ M$ m+ ?/ O& j: x - ;width of 0.0 or it could mean that the polyline has vertex's of varying 2 q1 d8 M* u/ y1 J6 @" L6 O
- ;width.9 U) ]: t9 o' y v+ B0 N% F
- ;
) e! q( c" Y% k+ c. p - ; It's all in wrist. Err a.., I mean it's all in the 'if'
0 W1 n [) Z3 \. K3 [# c; \ - ;;5 ]! Q4 e' l: Y- v6 G0 q5 E) A
- (defun pl_width_getter ( ss / ss2 ss3 n na e1 width width_a width_b flag flag2)
2 B$ i" g- z' ]4 c- p - / z6 G2 W% u* ^; u! W
- (if ss 3 }' b/ f$ V S( X m( N
- (command "_.select" ss "")
1 G7 \7 a1 Y4 \' _2 k1 G7 C* o/ J - );if
$ F2 I z; ^4 Q$ _ - (setq width ""/ f* z5 u; Y1 W
- flag nil6 k( Q/ n# \& l9 U+ T! p
- flag2 nil( i) Z5 ?$ r0 s$ m+ E7 J' R
- );setq! [+ R3 \( W+ O0 a- x
- (if (not 8 t( S6 ~( z' u
- (and ss
- W+ b, Q1 J, d# U# l - (setq ss2 (ssget "p" '((0 . "LWPOLYLINE"))));setq
" L' I# j7 M! K4 o% T3 C - (setq na (ssname ss2 0)
3 ~0 X- n! b" _6 n: J" l' C2 M" F - width (cdr (assoc 43 (entget na)))
: O: q$ w; S0 m0 M8 k [# k1 N - );setq
4 ^5 ^$ E5 M! p5 e% Q - (setq ss3 (ssget "p" (list '(0 . "LWPOLYLINE") m% e( O( _4 [4 }) D7 Q5 @
- (cons 43 width)
+ q# P; C+ I( l3 I) k. O - );list
& d6 \0 U2 X7 T' a8 f - );ssget% s" f4 l6 k- u' Z. F% h6 m
- );setq
3 s* n% V& S, ~ t - (setq flag T) ' U# H' g: `& F: Y
- (equal (sslength ss2) (sslength ss3))% `/ U# o- |$ y% C" _% [# T; a
- );and
, U6 H" Y, D* H5 D% z4 o- a - );not
4 G) z& [! P1 T - (progn' N1 G( v+ o% c# y( O
- (if flag; d6 P( f2 w0 Y) Z! B
- (setq width nil)
7 @+ ~( [6 e6 ?) k5 V; K" O - );if% n7 Z' y: @: k$ \4 Y |. r
- );progn
- H) p; z0 g B) ]5 v" }6 ]9 f - );if Z2 P V: e8 G& r* Y( U, Z
-
$ K3 |8 ~: q5 p( ~ - (if (not
. h. V5 R N. \- P- N - (and 5 Y& f4 _. {! o% H
- ss
& J R" H( d0 S" _ - (progn (command "_.select" ss "") ) _6 w3 Y& `3 f, s
- (setq ss2 (ssget "p" '((0 . "POLYLINE"))));setq; d! M' q/ d7 J+ H, V
- )
. K$ z8 }5 E2 X4 ~6 N- I - (setq na (ssname ss2 0)
# n# Y: U0 k$ _5 I9 p - e1 (entget na)1 Z# B# H$ Z1 D% I
- width_a (cdr (assoc 40 e1))
' W! R! V' M+ Y - width_b (cdr (assoc 41 e1))9 C) f4 V, z& r9 S
- );setq
5 t0 ?7 t; m6 E s. p, l: I - (equal width_a width_b)
- C& k7 Y) ?( K0 N. ]6 h3 _ - (setq ss3 (ssget "p" (list '(0 . "POLYLINE")2 O$ ~: G4 I: @# k
- (cons 40 width_a)/ z- p" a4 I1 U Q( B' a% Y
- (cons 41 width_b)* A& q6 P3 @7 |8 I
- );list
' s5 F* B$ Q+ h5 L0 Y4 }9 r - );ssget+ \: ^7 ~: H, S$ p: u" i
- );setq
0 c! ~4 c$ N7 ]; M) ^ - (setq flag2 T)
' b- z; }+ {9 P U - (equal (sslength ss2) (sslength ss3))! ?9 V1 p3 U+ y7 f0 {
- );and
$ V/ e& w) e. [3 r - );not ! q0 a, L- ]1 H2 I7 C$ R
- (progn- `1 D' C0 i7 `+ E5 ` ?, @
- (if flag2
3 T0 ?0 n. _6 J, Z; g9 } - (setq width nil);setq
" J5 r9 _( l1 n; q! ` - );if
+ d. C7 l+ { r z9 e - );progn then" z$ ~0 |3 `3 e( y; ^4 z; y5 Z
- (progn8 p. Z6 E5 |4 f# y
- (if (or (equal width ""): Z. _1 u3 u. y N) r/ X
- (not flag)
/ o$ T8 S8 e! J: w+ J1 { - );or) k$ q% V& b1 p3 O) }, ]" E$ j
- (setq width width_a)
* R; [( |, i0 U4 u U1 P - (progn
# d6 P, z0 }( B8 K6 ` - (if (not (equal width width_a))! R2 U+ w" O6 ?, }+ G3 ^4 C
- (setq width "")8 w/ K" |+ S9 o" K
- );if W9 n0 e8 A: u
- );progn
3 N- B8 h. }7 Q7 Z. [. q. b' I b - );if N0 {* p" e5 Q' P% o4 u, e
- );progn
; c1 V' ~7 \* J5 i - );if* ?# a- a Q1 {1 f
-
# ~4 g( l0 R5 a$ W, ?" q/ k
& E' t0 B( Z7 M! O& ~- ;now for the special handling for old polylines& B' a( L0 N- }' ] `5 T1 ?/ A& G
- (if (and width
7 O6 R% c- S5 k% \2 a6 `. e - (equal width 0.0)5 Z# o) |' N, {$ z
- flag2
% T8 X3 x' ]/ Q# j! n3 P - );and p2 w) J9 v5 v) z3 ]6 g+ t
- (progn
/ G. ?: F$ \* ~: N: f -
& [% A" o0 l3 h( e! V4 r - (setq n 0);setq5 I2 W3 @5 N$ U# ~ U# J- V
- (while (and (equal width 0.0)
9 ?; F% X; }8 s/ t7 o1 X! d! X - (< n (sslength ss3))
# B! G2 {) r; m6 g. G - );and- }2 I7 ~0 R! l3 J% R2 p) S
- (setq flag nil$ H3 }3 Z/ E; u: `5 x# o- `, c
- na (ssname ss3 n)
$ b, K( J, L0 q: \' @ - na (entnext na)
& x% c1 I, ~7 V; V6 ? - e1 (entget na)
; P0 Y6 _; Q6 H& P; u9 R - );setq- P9 R I$ \9 C: U% @% e9 x
- (while (not flag)3 `" E8 `, Y# h6 B% P! d$ o7 I0 P
- (if (or (equal (cdr (assoc 0 e1)) "SEQEND")' c ]) K% R6 }" V/ e( e N
- (not (equal (cdr (assoc 40 e1)) 0.0))) ~5 @, X8 C+ |! C x: s$ j
- (not (equal (cdr (assoc 41 e1)) 0.0))! _! |7 A. t+ x, E( N: {- T @* `3 M
- );or( l5 ?9 g: p C1 w6 c2 E
- (progn' o/ G$ z# @7 `6 t2 ?& L/ `+ ^" k
- (setq flag T);* p" |' T9 x; a. `
- (if (not (equal (cdr (assoc 0 e1)) "SEQEND"))
/ g/ w& P0 h. }! g' k - (setq width nil) - o/ G& q( Q* s& O% B
- );if
% ]4 M* n8 f( v' _* P - );progn then jump out of the loop2 u% d" k- P. J3 a0 V: s- g
- (setq na (entnext na)
* z" o- W- l, |# {) d$ c - e1 (entget na)
5 J3 I9 m t. E+ ~; [ - );setq
5 Z4 N9 E7 e& y# m# G - );if : u' v5 ?4 j& n6 D# |% B
- );while
5 m* n7 @7 Q' E% `* e. S - (setq n (+ n 1));setq
; w9 V9 r" g9 m0 j - );while 9 [ {+ Z% G; Z+ _
- 7 V+ y' N, [. }4 P( h0 W' z% p
- );progn then it's a legacy
3 r2 E, E4 \/ m6 m! F$ V. G - );if ;legacy polylines that may have varying widths
, n \- g. j7 e
4 v2 T, @' ]4 U" V- (if (not width)1 z' D8 O& A7 {7 c( g" I; l2 M
- (setq width "");setq. x2 y" I- `) {3 e
- );if) Z/ }; a* Y% r- G9 I
- (if (not (equal 'STR (type width)))6 [% x3 |6 a3 ~1 L+ O. r
- (setq width (ai_rtos width));setq 5 t! H6 ]6 @5 g$ |1 G# _
- );if " x( m. B9 }' b' N* @1 a0 A
-
! S. O9 r5 t* {' ~- Q! w - width ; m; ^: c( j% m
- );defun pl_width_getter
$ ?3 }9 _' y& [* E: ]) |. |- r9 I
% w/ S- b4 @ D7 @# L& }-
$ B# m9 d0 w9 V1 P: S4 u( s - (defun match-col (/ ncolor)3 _( |) I" c4 W( P; B7 R
- (setq ncolor (cdr (assoc 62 elist)))0 n" C5 e; Z5 P' ~5 F8 y% B
- (if (not ncolor) (setq ncolor 256))
3 N; A% F( ~. n/ s, D& J. g - (if (/= color ncolor)2 _( ?- p+ Y! w( V/ E
- (progn E. Q3 I0 Y: V
- (setq chk-col nil)
) i$ |0 F" B3 Q! I- S o7 b - (setq color nil)5 ?) Y5 E/ j# q' ~- s
- )
8 ~1 ?* _6 |, x: r5 g2 D - )9 Z5 s: d8 I+ r
- )8 ~% I7 r% w, b" D. g7 x- g
$ Y% c& a3 r$ i o- (defun match-lt (/ nltype)
+ v3 a9 l! w0 {& { - (setq nltype (cdr (assoc 6 elist)))- i( x! j+ Q1 U. U! x
- (if (not nltype) (setq nltype "BYLAYER")); R. V0 M z/ g0 A
- (if (/= ltype nltype)5 n/ `& Z+ _- D" B4 a/ T8 }
- (progn
( u m8 f9 r/ Z% ? - (setq chk-lt nil)9 }' f5 x4 \ A
- (setq ltype ;|MSG0|;"Varies")
, e' K% b% _/ Q4 ~3 [7 H+ ] - )
8 t( w7 Z% G- E2 ] - )- B. e% i: ~$ s3 ?
- ) o9 ^. T4 T+ { }. D4 p: Y
- 7 U! Y4 H1 i5 O' v1 T. ?
- (defun match-lay (/ nlayer)
1 i% ` ]' ~- V# Y2 S% @4 i - (setq nlayer (cdr (assoc 8 elist)))
T/ w2 P1 p( g3 M - (if (/= layer nlayer)
" `9 G. j2 l2 i! B1 u# `, x# i - (progn1 \! @2 k. k6 X+ J
- (setq chk-lay nil)
( @! ^! n! {# m9 s - (setq layer ;|MSG0|;"Varies")
$ k$ Z/ F. i' C$ b - )* Z _1 ^# l/ Z9 R9 |" \) ]3 O9 ?, T
- )
9 _* |& T' R+ G4 h5 n$ p) { H1 w - )& x; b6 Y u$ h- F/ A
- . D- b P4 ?) W+ U! R
- (defun match-th (/ nthickness)% T2 n3 Z/ b7 A
- (setq nthickness (cdr (assoc 39 elist)))4 K& V4 T4 q; o
- (if (not nthickness) (setq nthickness 0))
! ^4 }( e4 Q6 X! A* A - (if (/= thickness nthickness)
5 ]3 I3 q8 |9 h) S+ I' T8 k - (progn5 h7 |6 S* a V
- (setq chk-th nil)
( E) z; J5 J6 G" S - (setq thickness ;|MSG0|;"Varies")
5 p2 b% V6 N8 Y; l - )
( M, Y+ n: P" `, [ - )# t4 q3 c5 l7 h9 z/ |
- )+ [6 n+ z9 O( D; O7 r
7 U, x! j" O+ F& [$ ^- (defun match-lts (/ nltscale)( |$ U8 v5 U: N6 ]: q+ [
- (setq nltscale (cdr (assoc 48 elist)))1 y8 l& ~' H9 V K$ Y9 F+ |
- (if (not nltscale) (setq nltscale 1))' P. Z1 l" r! |* m; O
- (if (/= ltscale nltscale)7 S5 B6 W( `2 N* x, ]/ y, C
- (progn
# K1 `9 f! P$ v4 W5 R. U - (setq chk-lts nil)
! F8 K0 e0 t! e6 w( e3 p6 q - (setq ltscale ;|MSG0|;"Varies")
: B& V) b' B! x3 P" X) t4 n5 |* F - )
$ ?( N( l9 T0 ?; n' u( m r r8 B - )8 f2 ?/ s! [& K
- )
0 Q, H$ r& j. ~/ ~( | - ; c& U h$ {( K+ {
- ;;
9 {0 s9 j9 Q9 g* a - ;; If an item is a member of the list, then return its index number, else
) q! x; D6 Q4 T1 _- l+ Q4 m3 x: Q - ;; return nil./ \4 a. z( [9 {8 u
- ;;$ ?) Z6 E( [2 e
- (defun getindex (item itemlist / m n)
% x+ S% [" Z3 l! j( | - (setq n (length itemlist))3 H d5 J/ W9 ~, I
- (if (> (setq m (length (member item itemlist))) 0) i8 `7 P7 g( d% q- W
- (- n m)
) }: a r; b6 y% v% u e1 O" ^ - nil; e# L% G+ z- a5 L
- )
( L5 p9 S# F! d$ B& z, ~ - )
# N; g4 [3 f3 f$ A# M6 H: d5 E - ;;
" p% x* K7 T6 T0 e3 v. V - ;; This function is called if the linetype is set "BYLAYER". It finds the
& O2 l2 h. p) {' d- e, P$ Q - ;; ltype of the layer so it can be displayed beside the linetype button.
1 g* r6 T7 U0 E$ A - ;;
+ m8 y# U6 X5 n: Y) H4 w - (defun bylayer_lt (/ layname layinfo ltype)
1 k# f+ B5 R1 }$ S - (if lay-idx
, B" O1 C1 y4 J/ S) N8 I# q - (progn
) G5 F/ U( u/ }6 d - (setq layname (nth lay-idx laynmlst))9 E0 t! d7 w( @5 p' S4 w% r
- (setq layinfo (tblsearch "layer" layname)) a6 X9 d0 d |' W5 Y3 i
- (setq ltype (cdr (assoc 6 layinfo))), h4 Z. M, g0 r/ O% v
- (strcat "BYLAYER" " (" ltype ")")0 K$ p! j5 P% G% R, o+ R' a
- )7 Q" N) |3 V) H Z8 g- _. }- V
- "BYLAYER"* C% Z3 F8 F' ?# Y
- )
# K+ s1 N# X4 I - )9 g2 b+ s; q$ S1 H* F' H' P/ `& P
- ;;
( v! e! r6 g. ?- n, g) E - ;; This function is called if the color is set "BYLAYER". It finds the
$ e4 W. C% k" S) B - ;; color of the layer so it can be displayed beside the color button.
0 U& x# W7 M8 h2 {* S - ;;6 H U1 l8 N3 R# A! H
- (defun bylayer_col (/ layname layinfo color)
; d3 P- w9 c6 m6 c' I - (if lay-idx. E) O2 _$ }! E$ v
- (progn( H/ S0 ^: m$ e5 N. J+ }4 g
- (setq layname (nth lay-idx laynmlst))& t8 K1 u4 Y( y
- (setq layinfo (tblsearch "layer" layname))+ M" A9 T5 L/ n1 N. a% c6 i8 x
- (setq color (abs (cdr (assoc 62 layinfo))))
! ]% D' {$ w+ r/ g; w% d - (setq cn color)0 f" E. Y" S/ \
- (strcat "BYLAYER" " (" (colorname color) ")")4 l4 ~$ D7 ]2 e- Y* q5 p4 l
- )
% x% `' e- h/ {) E) c0 ^0 G - (progn
: W* ]: O; G7 A3 X I' a1 | - (setq layname elayer)
: p: ~% s0 H! e2 ?0 M4 o - (if (and (/= elayer "")$ p4 t/ r4 x) l( n' m8 \
- (/= elayer "Varies")0 H& g1 M2 @2 V7 U7 o8 o) z6 j
- );and/ E1 o* }' {) m' i
- (progn8 G, X; z3 i' Z# p# i
- (setq layinfo (tblsearch "layer" elayer))
# B8 M+ L3 u, m6 t! i' l - (setq color (abs (cdr (assoc 62 layinfo))))
$ c3 G4 a. a2 t5 }, G4 _" @$ g - (setq cn color)
+ c9 A: {) P+ L - (strcat "BYLAYER" " (" (colorname color) ")")
' r/ ]- a+ \# S2 e& ?" h j# p9 x5 \ - ): c2 _% {4 E7 s9 {# e# l
- (progn# H, J) N: \4 s- u! T3 F/ S9 k% q
- (setq cn 0)
8 I! `$ m3 v2 h8 h) d9 r: e - "BYLAYER"
1 Z! T7 [7 G2 w! U i - )
0 E1 a) m( d6 o7 l+ Z1 H, R7 [ - );if
% h5 ^ R. G- b: X7 k) _ - );progn
% S* W% c, `: u. f m- e. {# n$ r - );if
7 i" P/ {% ?9 `% Q4 I& v - ) ]0 T1 d& j9 i2 [
- ;;. p/ t; c. Z, l0 x; _
- ;; If there is no error message, then close the dialogue4 a# p+ h% ?4 z& c0 o
- ;;
& S% }0 n/ t5 d8 F+ J: n - ;; If there is an error message, then set focus to the tile
+ h' r. _% m) b7 K - ;; that's associated with the error message.! o$ q+ ?( A+ E" z
- ;;$ w2 y3 P( a0 t* n5 V- U
- (defun test-ok ( / errtile). M8 Z2 h+ I: L; f! J# ^1 c: Q
- (setq errtile (get_tile "error"))
6 X+ C3 W* k# E; l! E* J* x- W - (cond
8 T B# p: D( F6 Q+ s4 u6 J - ( (= errtile "")& r0 Y: b( J/ K8 I; W, f V6 m- {2 j2 m
- (done_dialog 1))$ u6 Q. j2 @" ?! A9 ^- q5 u
- ( (= errtile "Invalid thickness.")! u1 ` U. ?7 f) M6 a; S: B
- (mode_tile "eb_thickness" 2))
' u4 b' K. V) X! ^1 P8 E( h! j - )
+ J7 _3 i% T2 v) J, C' a - )! A5 ^' s3 c3 \. I0 x
- ;;
1 ^. }+ a( Y3 i - ;; OK in main dialogue.
0 v- T$ }" ~! M$ ?& z - ;;
4 y; ^- T# A" |5 p6 S I3 K - (defun test-main-ok ( / flag)
3 r# r' K0 Q+ T J/ U- S - (setq flag T)
# Y4 F/ u" ]! K - (if (not (or (distof (get_tile "eb_thickness")); s" D/ \: S+ G8 B' v& W2 ?
- (= "" (get_tile "eb_thickness"))" { D d0 P8 |- @, o
- );or3 m0 W2 W2 Z# \' W7 U
- );not
( T: f, k H: {) w" g% n$ a5 w - (progn
0 D4 [3 ~8 [4 E2 e) h - (set_tile "error" "Invalid thickness.")# p* u2 C4 d( S
- (mode_tile "eb_thickness" 2): {5 k; B" F x4 e% H6 W% w4 ]: t; k
- (setq flag nil);setq
0 E7 n0 `3 M7 {& p5 i9 ?* _ - );progn
" I/ L( D6 F4 m - );if
( F2 z6 G8 O( h7 o! H9 ? - (if (and flag2 l3 ~5 Q1 }4 u( Q- N% a4 v7 I
- (not (or (< 0 (distof (get_tile "eb_ltscale")))
* T$ y |! V9 h; @3 E \; ~/ x - (= "" (get_tile "eb_ltscale"))/ `+ s3 ~% Y0 B/ O1 \- W
- );or $ y1 S$ `* Y& o$ J' o
- );not9 k+ e2 G! i) ^. ~* {' O
- );and
% ?9 W! e# L! z7 c - (progn
! T- u2 \4 |+ J - (set_tile "error" "Invalid ltscale.")
$ M: p% z2 Q2 L; x - (mode_tile "eb_ltscale" 2); R' L# G J0 k/ }
- (setq flag nil); ! | H0 S/ _1 }1 Y+ Z
- );progn then$ o4 N' t8 E2 F4 v: G/ i- g5 \
- );if: j# H1 Q( C6 H! W9 x
- (if (and flag
" V( J% F- V! L& j @. ^ f3 z - ; Don't test the tile's value unless it's enabled.3 J$ E/ M2 H0 l& q/ f0 t
- ; We're not set up for the display-only value* t$ D( s; ]/ D. y( q& H
- ; of "" here in the error handler.
- c7 ~' f* ] A- u7 d2 M* H* s - (= 2 (logand 2 eflag))
+ n% h9 r6 s: ^6 f: H - (not (or (< 0 (distof (get_tile "text_hgt")))
8 V2 o# D2 a0 X6 O, ^ - (= "" (get_tile "text_hgt"))" G$ r$ q* O" |( L7 U, ~% U# ^
- );or
* D# y. w y+ j# k - );not, C& }1 R0 U2 x/ ]! ^9 m+ `
- );and
* G& h7 s' H! s$ [" i - (progn4 c2 f# H$ z. ~
- (set_tile "error" "Invalid height.")) r$ V1 ?7 a# v8 v* H
- (mode_tile "text_hgt" 2)0 P/ O. {+ F5 w2 h
- (setq flag nil);9 L4 j3 }6 v* ]$ J& H/ h m! p
- );progn then
) g; c4 K) d+ i3 O* U/ o! t - );if
' O9 t* V( J4 \ - (if (and flag
6 Y- ^ O! Z$ q+ M+ w: r3 P - (= 1 (logand 1 eflag))' v4 C) \# R' Q) @9 i" a! c
- (not (or (<= 0 (distof (get_tile "poly_wid"))): i6 ?2 B% K' I: Q& ^5 d/ {, a
- (= "" (get_tile "poly_wid"))% G- _" a8 `/ @" u& z
- );or& w9 ?" W3 y5 R5 Y- g) y
- );not# K( E/ h! I7 |5 u- ~* ]6 [7 j
- );and. X, E) v; H( Z+ V) }
- (progn
1 i+ U! a, N0 g+ X1 j5 N% t6 {' | - (set_tile "error" "Invalid width.")5 ^/ \/ ]" c0 G# Q/ ?5 }
- (mode_tile "poly_wid" 2)
8 E( @0 M+ j' {" i7 E+ V/ k1 N - (setq flag nil)/ \& }" Q! p( o# T" s' L
- );progn then
T5 L: M, \; v8 V+ Q* [ - );if & x* R3 n, {' i* ]
- (if (and flag
; e8 n) V5 w6 T6 E* A - (= 1 (logand 1 eflag))
3 E& `1 D) k- i) [( U. x( \ - (not (or (distof (get_tile "poly_elev"))
4 d: F) G) {- b! l$ K; P9 r+ e - (= "" (get_tile "poly_elev"))* j; t! l# P# ~% X- _; y4 G, y
- );or" E. m4 o7 }6 e+ D- Z" c
- );not% {& c" a) ~1 `" c$ d/ f/ ]
- );and4 A$ `" v# t2 u1 K- v, _
- (progn+ W8 d: {; g# t; L# g; |) R3 U
- (set_tile "error" "Invalid elevation.")6 j6 [7 m1 q7 N. N$ i p
- (mode_tile "poly_elev" 2)
) r1 |( q7 _4 B: y" ^ - (setq flag nil)
' E! [8 ?( \$ C - );progn then
* f7 l5 P' W3 N9 H+ T0 d6 | - );if
2 i$ {2 @ h) s1 t9 e3 x% i, G - (if flag
6 ~3 F/ {3 ~1 Y! Y; U - (done_dialog 1)# ]$ l, |6 i/ g. }& {
- );if% T* O w' h( J# v
- );defun test-main-ok
/ I. @. g9 }9 O% m# R8 ? - 0 Y# o" v, }7 Z+ o- I/ P
- ;;( |8 B3 c( e: n! f. M2 D! [# d k
- ;; A color function used by getlayer.- w2 ^* d- I, Q) n& J p$ I- k
- ;;
" O' B* h$ p. U; A; [7 G - (defun colorname (colnum)& c" e @7 h9 P& h8 p% {
- (setq cn (abs colnum))& M' z+ W5 W0 g1 l1 ]) z5 p) ~
- (cond ((= cn 1) "red")
- T' X$ [5 c& }3 C) Z6 Q3 f - ((= cn 2) "yellow")
5 S) ]; u5 a1 D) _4 G P; Q; v" a8 I+ Q - ((= cn 3) "green")
! x8 s: Z+ ^! C# W7 y1 ^! E - ((= cn 4) "cyan")& U2 U# D q& l$ @/ z @, y
- ((= cn 5) "blue")9 B0 U/ K3 i6 p B
- ((= cn 6) "magenta")# q' @ G# @/ I! |+ q8 p
- ((= cn 7) "white") }. T5 P! T6 V( D: S4 H4 t
- (T (itoa cn))
" k" v9 L: y# B: h7 {) ^8 h' g {2 u - )
w6 J! k* r* Z/ U, t8 E - );defun
' D$ s* Z# \7 v) _. O+ _ - 7 H0 J2 l- ]9 V, v5 N/ [& G
- ;;; Construct layer and ltype lists and initialize all
2 \9 s" }, b/ R) G$ P2 H& T5 I% D - ;;; program variables:
/ U/ L* G P* j! G - ( a2 _# l! K7 S4 N& c6 H9 p
- ; (makelaylists) ; layer list - laynmlst
4 T7 |* U, P `7 ^0 G - . a+ M2 N/ U2 [; `! \
- 5 H) F& M2 X* k4 y6 L
- (makeltlists) ; linetype lists - ltnmlst, mdashlist
; W& c3 l6 Q, Z+ O# j7 J! J
* q% F" V m7 d0 I- ;; Find the property values of the selection set.
' |5 J1 L8 P% @% o, ~ - ;; (getprops ss) returns a list of properties from
3 {, F1 A0 J6 T - ;; a selection set - (color ltype layer thickness HEGHT STYLE WIDTH).
8 m% f2 s0 @* f! `$ B, f% t, J - 6 k5 j7 T) r8 M% v5 s, c% K
- (setq proplist (getprops ss));@rk interesting things happen here! S" V2 C( q* @' O) u0 j2 Y8 W5 ^
- - i0 W+ [8 n5 d J: X/ Q [& e
- (setq* c h I/ [5 {8 f. ^; p0 A% ]+ ?
- ecolor (car proplist)& }8 }4 _! N+ F7 \- {. T
- eltype (nth 1 proplist)/ ^. E+ H' ]& l( \2 l! R& ~
- elayer (nth 2 proplist)5 }% l4 s9 W5 M, ]
- ethickness (nth 3 proplist)& F4 Y' b2 g0 x/ ]: m# V
- eltscale (nth 4 proplist)
$ Z! [9 {1 P; ]- x; `1 C, ` - ewidth (nth 5 proplist)
* y! z" \$ z& h% n9 j1 ^ - eelevation (nth 6 proplist)- b: R6 M. x8 `
- eheight (nth 7 proplist)
$ m |0 W: f. X* }, q - ;etype (nth 8 proplist);commented out and replaced with the line below. RK.
3 p* A, u, i2 n R; u% h" D - eflag (nth 8 proplist)
& e4 Y7 M2 X5 r* v/ h0 @ - estyle (nth 9 proplist)
, N+ [' L; X! c8 X4 |% s - poly_ss (nth 10 proplist)
( p' B3 y9 t* C - txt_ss (nth 11 proplist)
; d* U& v% c: L/ D3 h - );setq
6 a- [8 N# L: x
4 v. M0 D0 F- y7 u) ?+ H- ;; Find index of linetype, and layer lists
% o ?6 p) S3 R5 ? - (cond% G" y6 V7 z5 U
- ((= eltype "Varies") (setq lt-idx nil))7 t8 c3 ~; w, K5 k; K# R& v
- ((= eltype "BYLAYER")2 i! }0 |1 w% E0 H
- (setq lt-idx (getindex "BYLAYER" ltnmlst)))" `' z" |% c; W$ _$ R7 j
- ((= eltype "BYBLOCK"): B( O6 I/ K) X% H# Z
- (setq lt-idx (getindex "BYBLOCK" ltnmlst))): B, B: j) U: v. L" d& g
- (T (setq lt-idx (getindex eltype ltnmlst)))
( c" {: y, h* _1 ~8 @ - )
/ Y2 x8 D8 @1 u+ n5 M - (if (= elayer "Varies")2 T7 A# ^# g0 E! e, n+ [: l
- (setq lay-idx nil)+ m2 w# x' z: R9 b2 `
- (setq lay-idx (getindex elayer laynmlst)); l- L- L) Q2 H* y0 P* Q
- );if
2 [( c' {, C; e/ i3 S) o5 ^: f - (if (= ethickness "")
8 ?4 \4 Y0 L. W0 H) i' a - (setq ethickness nil)
/ Q1 @0 }( A. } r d: T - );if
0 `+ Q& A- r6 N( S0 [" y1 o: Z8 o - (if (= eltscale "")
) s6 Z! l0 v M4 T - (setq eltscale nil)$ F8 l" M+ `4 t: F" y4 X8 k
- );if
* _/ M; s4 O) J4 D6 F' E$ b4 [
& O: Y: n% F: \+ X q: k" C# A! n& c0 l- );defun ddchprop2_init ; end (ddchprop2_init)) x5 l% r3 e. E' t9 x3 @0 M
& ~: f( s9 w6 B/ M- ;;; (ddchprop2_select) a8 s8 L; ^ L# I) u
- ;;;' P% ]& L$ o: y* d! [9 E
- ;;; Aquires selection set for DDCHPROP2, in one of three ways: z5 _) x5 n8 r
- ;;;
9 X' l- R3 q, J. ^5 h, v9 E - ;;; 1 - Autoselected.
2 S+ D6 R4 m! q% f% j& a: R - ;;; 2 - Prompted for.
8 H) j/ r$ e* _9 I - ;;; 3 - Passed as an argument in a call to (ddchprop2 <ss> )' V2 |$ f- V+ D+ c1 n! D, E! _
- ;;;$ c( W6 T) T# V5 }9 l, H9 p" P
- ;;; The (ddchprop2_select) function also sets the value of the6 B9 i, M" H t
- ;;; global symbol AI_SELTYPE to one of the above three values to
0 O/ }! J' ]* T- t. z2 r" E3 D - ;;; indicate the method thru which the entity was aquired.: O4 `8 n- X# @) c* q8 B. _
- 7 V5 D# s$ C& U- w% v
0 `1 h+ w" l/ e* H3 B' l- {- (defun ddchprop2_select ( / )3 `& K5 U7 s9 V4 k; e! [
- 3 j8 X* ]1 `6 { W; R9 Z: K' C
-
* {6 }; A/ o% I4 i z {7 ? - ;returns only entities in ss that are in the current space. # {5 o$ f. ~; j
- (defun ss_in_current_space ( ss / a cur_space ss2)
0 F% S4 U& U) B
1 i. R+ }6 M: M6 c9 D! f0 r- (if ss1 d2 v W7 c. Z d7 L5 z( {
- (progn5 c+ w2 L8 q; v! O l
- (if (and (equal (getvar "tilemode") 0)7 V; h, Z6 m) p- w( e7 I- Q2 I5 K
- (equal (getvar "cvport") 1)
! i4 _& k+ `1 o. E - );and
" |7 `0 E/ \" u# ?2 j* V - (setq cur_space 1);then paper space is where we are.; h/ k* a) K; c
- (setq cur_space 0);else model space.
& K) _$ y* p8 A9 B' J - );if
. [. C8 Z) v! g - (command "_.select" ss "")
7 V! `8 W3 J I# P1 ?5 Y% F7 F - (setq ss2 (ssget "p" (list (cons 67 cur_space))));setq8 ]7 X# J# Q* F+ Q, |
- (cond ;;;;;tell the user what's going on.
/ A6 M" l! \# S - ((not ss2) (princ "\nNo objects found in current space."))
3 ?0 d4 A3 h2 w0 G, M1 T7 t1 G( k - ((not (equal (sslength ss) (sslength ss2)))
1 k- P* f# S! w7 [3 u - (princ (strcat "\n" (itoa (- (sslength ss) (sslength ss2)))) U1 f/ K7 L8 _; Q+ ]: B
- " object(s) were not in current space."
" M. k* `9 X; g: W% R& Z# s - )3 c9 x x* q5 `- o7 E0 T( s! p
- )
: \) _" ~7 G7 `' I - ) 6 G5 ?' B- [" d3 M! h1 m3 y
- );cond
' p, e) t0 l0 y - );progn then; ], p1 r; G; O8 Y/ P( o* k
- );if
( P3 V5 D0 W- P2 P# _( N, k - ss2
, v* d2 O" k# e) W( ?1 p( c' f/ n - );defun ss_in_current_space3 s$ s9 m: h" q1 O V
# C& r5 p: n+ S- " q% w3 j# [. _+ a
- ;;;begin the work of ddchprop2_select
) T8 p j2 ]+ f, c$ p - 7 O, C0 e3 j8 \' y
- ;; temporarily restore original highlight setting.
: ^2 i" g2 H7 `( [9 G - (b_set_sysvars (assoc "HIGHLIGHT" (car bonus_varlist)))
1 a; T3 a( \# d* s% h - (cond
$ j, x$ o9 H$ X) f - ((and ss 4 O0 E; b7 E- _% I& ]3 v0 m' l
- (eq (type ss) 'pickset)9 l7 }2 T, t& K% v) n; c2 g; L
- ) ; selection set passed to
1 T5 H7 I1 H6 t* t9 z) D - (cond ; (ddchprop2) as argument; ?6 \! j [# ?4 o6 W
- ((not (zerop (sslength ss))) ; If not empty, then
" C+ T P# A0 E - (setq ai_seltype 3) ; then return pickset.. d' `. c3 y& Q3 R9 u1 n7 g) p
- (ai_return ss)
- l8 ]2 e7 m& F" l1 R3 \ - )
% h- {% C2 c" \' i& X; n - );cond close
$ g0 q7 E: [) E+ X- e1 ?; O - );cond #1
3 k0 H: K u# p3 J- a+ m: r" c - ((setq ss (ai_aselect))) ; Use current selection/ r2 {2 H6 H5 x6 _
- ; set or prompt for objects
. }6 A6 R1 Q0 F& u/ z& P - (T (princ "\nNothing selected.")
) K8 ]' r2 M; M( ^& v - (ai_return nil)" ~3 u6 `& z; y0 q' w
- )
+ Z# l4 C, j* B! K! K! H- K/ E, P- f' x - );cond close
- v& B. u ?( ^ - (b_restore_sysvars)
0 g9 y7 N; I1 K- @ ^ X6 ` - + d$ b5 |* P) x* u! z0 @
- ;(if ss
' z& m8 G/ k+ C- W4 Z) P V - ; (setq ss (ss_remove_locked ss)) ! d. b; t$ r! ]6 c/ `
- ;);if
8 H! P) U6 i4 {) t# X - (if ss
" G# `' X) m. @4 { - (setq ss (ss_in_current_space ss))
# E _- i' {- b8 @2 F3 u - );if
% _5 g# r% `- q+ F! P* k8 x - / q: ^/ ~+ k4 \/ L( n! I
- ss
5 L$ A6 D, Z: }5 ?7 o7 w! Z% k - );defun ddchprop2_select
3 n4 d5 F# M- `2 L$ s9 \ - 3 h% Z H8 f, @" C% [
- ; T- v3 x9 W4 ?$ k
- ;;; Define command function.
5 b! x3 A* s# y7 u1 |+ r - (defun C:CCH ()! X4 f* ~. G* d# M; \, ^
- (ddchprop2 nil)5 u t6 u; w5 d( s
- (princ)
& G# h7 C; t8 F! Q- f. O; u - );defun8 u' F( S9 ~/ i. R
- 0 H& u9 o# ]- R* ~3 |/ w
* o9 k+ z8 C) ]- j* d/ d8 V- ;;; Main program function - callable as a subroutine.- Y8 `& m; C- q. K
- ;;;
! S" i) p# h' b( z; w9 F - ;;; (ddchprop2 <pickset> )
! M% i ~ {6 T - ;;;3 P, ^) r2 {# J" M8 t
- ;;; <pickset> is the selection set of objects to be changed.
% N0 {8 S" y, b$ B - ;;;. t9 x( T* {% ]) r$ C0 S# ~
- ;;; If <pickset> is nil, then the current selection set is) a1 F/ s) {# w' H+ x" `: v _
- ;;; aquired, if one exists. Otherwise, the user is prompted" o( H3 L i4 r/ k% l
- ;;; to select the objects to be changed.9 i" m# o4 C( v% x( @
- ;;;
8 b7 X& v- p5 C {/ B* l" E - ;;; Before (ddchprop2) can be called as a subroutine, it must
& M+ d$ R* W3 @8 r; S! v$ T& ^0 i - ;;; be loaded first. It is up to the calling application to
% c2 p0 d$ ^ f( P% ~. p - ;;; first determine this, and load it if necessary.5 o3 K* |0 R1 I. }5 d
. p3 K- p0 ?0 V1 T2 |- (defun ddchprop2 (ss /9 ]" h. ^5 z( }1 L/ i- {! x9 k
- # \0 l( v$ C$ T
- a4 L" L5 X/ R- V& G
- add-mdash4 r1 \' B, G6 q$ L
- assoclist
7 T. W# v& `6 {" U* g: } o7 R: c - bit-709 @- C! N* ~: p' l" _5 I
- boxlength
+ w0 E2 f( i' d' B' ] - bylayer-lt
/ o5 W" e$ `" v: Q - bylayer_col
; p7 t# a& W6 j6 |3 \' t1 { - bylayer_lt3 E' @+ ]! G9 |. G. i( t. O9 Z4 {$ U. L
- call_chp2
6 x; w, `" U# C: Q$ f, Y - chk-col3 d0 D6 D3 X5 N- W! [! ~
- ;chk-etype ;var removed by rk , E3 Z) C: m1 S: i; {* v# \. Q) Q2 e5 Y
- chk-lay
7 C' x5 e) n$ a8 N" x, h9 q* A8 q$ t - chk-lt
. `. {$ k: v& b) Y' m - chk-lts ;var added by rk ) t x! l: c! U- F0 y
- chk-th, l7 e% C5 [) {, z
- cmd/ `- L8 Q5 a' o7 b5 t6 v \7 O, ~
- cmdecho
* k B l5 W* r1 Q6 _: ? - cn
8 c* B% N% H1 ?5 q3 L - cnum
& } V% [, t/ M- B) Z. e8 [/ y - col-idx
6 U. T6 a$ Z [" l( B3 a - col_def/ u5 N; R4 ~3 g7 M
- col_tile. v7 H4 g9 I% C- v. Y3 ^* o7 {
- colname* k3 D/ b4 n; r" W+ l9 ?/ W- ]& D
- colnum
* c* V' q- V$ O+ i9 p+ _ - color7 f8 ^* t, D7 ?8 h, P7 c
- colorname
! M+ }, _" D3 T% Y; S - cvpname
; }9 I/ e E. n* B1 g2 t1 A - dash
- M* t( }: l# i - dashdata
* N. k: v+ g1 ? - dashlist" f' X0 K% `. r+ y! c4 s
- dashsize" O# _- Z% }' ?0 Q2 d {5 @' C
- dcl_id
- F$ z$ n( v o - ddchprop-err
4 R; h+ U% a) }: z9 z - drawpattern
9 @3 U2 I. ~. {% C" O - ecolor
0 f# d+ l" H1 h. o- {/ J - eelevation
* c7 k) V8 H. }+ R# |6 q9 p$ r - eflag
$ V9 J' g A; [2 T) N' d - eheight
$ ?' }' Y9 @. t) V3 K0 L - elayer
1 {% r! R, p, Q$ X/ M/ k F - elevation
- ~4 h3 V8 x3 B - elist# C2 F( a9 m0 }7 J$ P, u K1 q; k
- eltscale8 t/ _( i/ o" @# N
- eltype; y, n/ A( z/ h7 V3 I9 h8 J0 O
- en4 q" O! s& s4 X6 T; g
- ename
5 U+ a- `& x' G- n! H - ESTYLE ;var added by rk: [, f: k. u- @% Z5 ^8 U9 A
- ethickness: b3 O4 g% X0 A" \" \8 \
- ;etype ;var removed by rk
+ V0 D- O$ m5 u - ewidth0 @6 K9 d, E0 h
- fchk/ K& b1 d% t* @2 g
- frozth, L8 `6 D0 h1 w: F
- fx
5 M/ M7 O7 p/ G$ W4 F. X - getcolor [* k. B( A) Q! z
- GETELEVATION ;function added by rk
- k z' \: V) N1 a4 V - GETHEIGHT ;function added by rk2 \9 D8 S; G' [ m! u
- getindex Y5 g3 ?1 v' o1 a8 d
- getlayer6 W2 | X4 i" v
- ;get_locked_layers ;function added and then removed by rk
" E8 H+ H: S: q- G7 T9 T O - getltype
6 }7 s$ W0 A' r+ g& f: R - getprops
% w# v1 I: N5 q: m1 j# l - getscale ;function added by rk% i k, L* n6 ]; b" }
- GETSTYLE ;function added by rk/ s. g3 f. l0 a7 i/ J1 {
- getthickness+ E+ x, o3 M8 t2 X4 w; p
- GETWIDTH ;function added by rk1 q7 l! g: P9 x
- globals5 Y( [ d9 Q' ~. J( K! J P
- HAIR_STYLE_LIST ;var added by rk5 N# P9 ^% i- ^! E
- height2 |$ e2 z/ F% H6 k
- index1 J1 ]; K% F2 L
- item
q; y: I% \' ^6 d - item1
7 G1 P, T+ f1 x+ T3 q8 ` - item2
) z8 B; e' }) A) h0 \0 C - itemlist
% Z* z9 @* P# v( u& l" l1 S( Y* Q - lay-idx: `# m5 X! Y+ f/ r3 G
- layedit_act2 ]) g0 z" M, f8 {7 Z. Q
- layer* {: }: l6 i! Z1 G
- layinfo
; o* t" a" l0 o4 n0 A - laylist& X# l5 t( }' A% J7 D
- laylist_act8 D7 R& p: _! C
- layname( Q: W8 U' \9 ~' i$ o. c! X4 H
- laynmlst
; k p' u& D" S7 [0 r+ B - layvalue& n. L* O5 Y* s8 u
- linetype
+ N" I$ `+ V" f; W% h0 Y: o - list1: y! k- \1 f5 ~: y: n' Q+ ^
- longlist
1 ?7 Z3 N8 I' z' i7 d4 k - lt-idx" b: w: m9 b$ ]2 K. Y4 U; w% |
- ltabstr
U9 D2 p D; h - ltedit_act$ N" a( ]# u8 R) I' Z6 _1 P' K
- ltidx- |, h( j2 V# |/ Y
- ltlist
( E( z$ c- U4 R& ] - ltlist17 f. ^* Y) Z3 d4 L- t/ ?9 f3 T
- ltlist_act- c5 Y9 {. x9 U7 r1 s7 M
- ltname
9 g5 C) A) {. Z, A4 D4 e' p - ltnmlst
- ~: q) @+ x6 o - ltvalue2 k! o2 Y# [" ^) ]. Y& {1 B5 y3 F6 z1 w
- ltype/ R& b' j4 Q: w; E& t
- m* _: i8 S- I- H' \
- makelaylists2 J X6 R) }. A! b( B; L1 o
- makeltlists
6 }: x( `" K1 F1 _% V; G - match-col
7 B; [5 u9 ]7 J* K( E9 n" P# s+ s - ;match-etype ;function removed by rk
7 u/ ^" n" T& i1 g/ f) w - match-in
T' x7 H" P, E6 u5 t - match-lay: p+ Y2 Z/ H/ n. z$ I' x
- match-lt
. t) N- q* y) L - match-lts
' c+ D' t8 D, | - match-th
4 `" t8 p1 I! ]' y - match_col
% D. y: k) V/ t - mdashlist
/ @! r5 C9 a. K7 z2 x- U - ;MPOPLST ;function added and then move to ac_bonus.lsp by rk: D' T; x4 c5 i: M, {
- n! G3 x8 R- b" ^& G6 K0 U3 K
- name
/ }% p, w& z/ s% D7 v0 z - ncolor% w& ^* ^' a5 [. Y* ?
- nlayer
: {( L; E S" R% S - nltype3 b) g1 \3 L6 J% c' O! t
- nthickness
; s$ C1 f- }0 R - off
# s! h7 G! ^+ T0 n2 ~- h - old-idx
- M3 G( t; U. d8 | - olderr
& c" ?. h) _8 j. f9 E7 G - on
2 b) } K2 X& T* D - onoff9 I; b; v) s$ d
- patlist0 [8 g( R6 a; Q8 V# E
- pattern
5 m A" ]: I4 B' l/ \' @" j4 z6 [ - PL_WIDTH_GETTER ;function added by rk3 ]$ ~' ^( B4 w* G7 H9 X
- POLY_SS ;var added by rk
6 [2 ]& }( }) J. A* N5 V+ G R3 J - ;POSITION ;function added by rk and then moved to ac_bonus.lsp
: N) i7 }2 K: H* F/ H# n - proplist Q) E* O) i" h0 F9 |8 y
- reset-lay
) {& m% f1 R8 J3 A5 I$ p, S - reset-lt
+ }' L. G8 z1 [; G+ f - s3 A, q& g2 B* g% Z( b
- selset% R5 P4 L' W4 F% D) `; S
- set_col_tile* n% e8 n$ {$ p# P$ m2 G8 h. N6 M
- sortlist9 J+ i: U5 O) M, S- Z* f
- ss
+ i1 @, N7 Q, ^ - ss_in_current_space ;function add by rk.
& r; r* |8 A: M# X% H* h - ss-index
( K2 }& y$ X) [ - ss-length
* i) p! Q: A! y$ [$ |! `% ^ - ;ss_remove_locked ;function added and then removed by rk.5 A/ l4 I- ?- H' ]9 t( R
- sslen( }9 R4 M+ }& n: q
- temp_color2 |9 n5 z' [# b$ P# S2 S& z
- templist( `" ^8 v) ^4 b0 u
- test-main-ok+ |# ^' `( G- J l! m& k+ B- y
- test-ok
) n- V- X' H$ T, n2 h3 p6 E; k& m2 d - testidx
+ T# E3 x+ R- u4 u: t) {- J - testlay1 V6 Y+ @9 r6 W, C& \& k/ W
- th-value* i% N% D7 @! M! U0 c, x
- thickness
! M- N- p! S1 F8 Y1 T - tile
- H1 {- M2 F. l! c: V' [ - tile_rect6 R J6 D) t; m" Q9 d- v: y) B1 k
- tilemode
) }& u8 I" B) }* m - ;TNLIST ;function removed and moved to ac_bonus.lsp by rk
1 ~8 ?5 ?% c1 z' s+ M- ^ - TXT_SS ;var added by rk5 v! w% ] p. f, n1 c: H2 O8 z
- ;undo_init ;removed by rk.
' o& H5 T" K! ~ - vi
' g m" G1 }8 J9 ]) M$ S" Y! C - vpf
: h/ x# N0 K. a8 w; o - vpldata) q' R. s4 ^( C0 [, r
- vpn
8 O% ?, G& @: }) M# Z - which_tiles& d8 ~( i7 i5 O8 s" \ b+ H9 P
- width% n, S, T, d4 b4 C4 o- y% w
- x
' E$ S+ E: z- L% ~4 ?; M - x1
* J/ t3 K) {5 o- x6 n0 p: d8 K0 G; o - x2
! D# F- z' |# w5 O7 `0 ` - xdlist
/ j( E9 m) B g% M) Z - y
. c& ]0 X; M5 {/ _' Y - y19 {# J8 m* D2 y) t. V J
- y2# M2 q! u& c7 k0 [4 p# h
- )- _" e& t9 @/ \! j
- $ [) J. M/ {% l. {
- (if (and (not init_bonus_error)
; M' ^- ~( t$ L/ U1 O# K7 D i - (equal -1 (load "ac_bonus.lsp" -1))
7 v; B+ R/ s- D8 y - );and
. e7 S4 j' B7 N- [; ?- g! u( g - (progn (alert "Error:\n Cannot find AC_BONUS.LSP.")(exit))
9 Z0 X# ^8 x& {& a( A - );if6 s$ t& T6 v( t9 I1 E: Z
- (init_bonus_error (list
. G+ D' H: s8 c' q# g8 m3 [) h - (list "cmdecho" 0
) z" A8 \* U8 N q8 g& E: g3 G - "highlight" 0/ i5 ^8 z; B0 @; R4 x
- "regenmode" 1% M; v1 ]$ B: ~4 x
- "ucsicon" 0- {8 J+ K: |4 w7 ^- v5 S) `* t" f
- ) ' b, Q- i; d' O! k: C0 q" z& [
- T ;flag. True means use undo for error clean up. * U0 \9 n$ @0 C6 d) m" H& N7 r
- );list
/ Z# r( D1 P5 Y v6 F - );init_bonus_error
$ W7 `9 P/ ] s - 5 z/ ]- `" ~5 z
- (cond- Q; ~5 A! U0 a* k( S
- ( (not (ai_notrans))) ; Not transparent?; a9 T( M0 r, z: Y
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
/ L b0 V# ]9 R$ j, O - ( (not (setq dcl_id (ai_dcl "exchprop")))) ; is .DCL file loaded?% {4 ~- D& @5 F# ]
- ( (not (setq ss (ddchprop2_select)))) ; objects to modify?, p. S( W$ p, k! X" }
- (t : x- V; G3 G: z$ }9 ?; I
- ;(ai_undo_push)
3 |' B- M7 Q. b9 y! l - (ddchprop2_init) ; Everything's cool,
( {/ X3 @) O& u; j9 i; m# ^) n - (call_chp2) ; so proceed!2 r7 d' F# L* L; ~ @2 e* Z
- ;(ai_undo_pop)
) ]9 j) O: g- q- e* r6 i - )' y1 t4 K7 B3 m5 F: v0 Q6 l
- );cond close
4 l0 G% x% N/ F0 Z) F/ R. \
& k3 S+ \/ J" H- X- (restore_old_error)9 `* k- Z7 E6 k. i/ V# i) F
- 5 y% E) s- [- U O G5 }. d2 m! n
- (princ)
9 ~( }7 Q# o1 l - );defun ddchprop25 [- l% z! p" R2 _9 J
. O- [# E6 _# _# c( f/ q. z2 W8 ?- ;;;----------------------------------------------------------------------------- V! P+ U0 g! |9 F+ J
- " x; U8 m2 r7 i! E( x, _# T# r# G
- (princ " EXCHPROP loaded.")* [0 K! [6 s7 }% k4 L
- (princ)2 W8 }6 I) M; S B# o% P" M
- & X/ c9 ?* G" R2 x9 J; e
- ;;;----------------------------------------------------------------------------
7 r# L C) w9 f+ q5 ^, U$ f6 a - ;;;---------------------------------DDCOLOR_LSP--------------------------------$ f. j; F+ c8 d3 y2 j; r8 }
- ;;;----------------------------------------------------------------------------
0 r7 }! ^+ f; ` - 3 O5 n4 i8 g8 L: x% z
- ; Next available MSG number is 24
. O! c& k9 ]2 | - ; MODULE_ID DDCOLOR_LSP_
b) B: U( d5 R' ]0 f$ T$ w - ;;;
% J0 F% H, D% T( i2 Q - ;;; ddcolor.lsp4 L# [! B% |' B
- ;;;
+ t3 U, d( @" ^5 _" a - ;;; Copyright 1990, 1992, 1994, 1996 by Autodesk, Inc.4 U: c a" p+ C
- ;;;
4 @% e0 a# |! c% R4 J - ;;; Permission to use, copy, modify, and distribute this software
7 o' j9 }0 u; [, j, g2 q - ;;; for any purpose and without fee is hereby granted, provided: ?6 A& p/ F6 x$ P: h
- ;;; that the above copyright notice appears in all copies and* p" y% b, j5 c A+ s% p6 w0 s2 B
- ;;; that both that copyright notice and the limited warranty and1 s- ]( U3 Z" }8 N7 o
- ;;; restricted rights notice below appear in all supporting" S; F5 K4 j* _! p1 M }! J# u+ k8 q" J
- ;;; documentation.
; y& W- H$ u- j2 x& y _! z' { - ;;;
1 I* ^8 R) s( L' C - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
T; E8 q9 ?, B: c4 A- h. Z - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF3 H: a' R) k& M& f' c* N
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.% J4 H& M+ u3 r. z0 N
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
# d$ _4 {5 m0 W" S/ J8 m8 N! V - ;;; UNINTERRUPTED OR ERROR FREE.7 m& F: n% K/ V& e7 R
- ;;;
: n6 C$ |. V: {+ H - ;;; Use, duplication, or disclosure by the U.S. Government is subject to
) g& s, @2 h$ _, Q n - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
4 I# W" M! X6 ^; \0 K# p - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
& W$ @/ ~- D" d& V; W. S - ;;; (Rights in Technical Data and Computer Software), as applicable.$ z1 ~# z0 v1 \) _, r( h
- ;;;/ a" V7 w9 y9 A1 v7 h, i) \4 Z& P+ ?
- ;;;.
7 W: N8 m2 v6 U! r- M1 P - ;;;
& s6 @: s3 v3 U) f- o - ;;;----------------------------------------------------------------------------! b1 w1 d$ J6 ]; X) G; t
- ;;; DESCRIPTION0 f2 V" P! r" A& U
- ;;;
# k8 N6 |" R0 x( {8 X5 L - ;;; Chromatic Pallete style color selection dialog.
- N2 z5 E8 f/ p - ;;;
2 Q3 ? {& ~1 b) d0 J7 v5 ` - ;;; Globals:* F6 Z y+ ]1 P/ E
- ;;; ; t! a! b1 `+ g9 \' _0 c6 W
- ;;; chroma_color - Integer color index. The last value selected
) ^. r* V, u% ~7 e* L" a! O+ a) f - ;;; by the user in chroma dialog. It is not cleared or reset
$ F9 x. X x1 h8 N3 v4 ~2 V# V - ;;; by a cancel. Only used for communication between callback) l9 j" R. L2 X. E5 j
- ;;; functions and the (chroma) funciton.
" e( ~( d- N& T5 I$ J - ;;; & V; j1 ]: K6 c, @
- ;;; Depends on the definitions for the dialog provided in chroma.dcl., u6 t4 M+ j) {$ W
- ;;;
+ `0 Z) h) O5 J% T' K - ;;;/ X0 c w0 F8 e+ `. Z' s
- ;;; C:DDCOLOR -- Dialogue front end to the CECOLOR sysvar. Uses the chroma ; K c$ |; [; w% k5 ~5 r+ F
- ;;; pallete style color selector.
" C7 q# |- m( _0 M) D4 A - ;;; `- J- E2 R( Y1 i
- ;;; =========================================================================== P% v/ G& e2 Y; f! B7 E
- ;;; ===================== load-time error checking ============================2 ?7 z2 _$ \1 T2 Q& f$ d
- ;;;
O- M3 p' Z2 ^4 r. y2 S - 9 a; A" w$ j7 K, }' B
- (defun ai_abort (app msg)
* T( c* D+ V+ E- ^- n7 U3 A - (defun *error* (s)6 g! P! ^. S4 ? F; @
- (if old_error (setq *error* old_error))
- A8 L" s$ b" l# X2 k% ] - (princ)
9 w s, W R7 ^/ i1 d0 | - )
4 j% l; k6 [$ l% j: @0 J7 h: J) a - (if msg
( `% H/ z: S6 n1 i1 | - (alert (strcat " Application error: "
8 p" s# T9 R& q; h( P; ] S; g - app
4 m0 D' K" E" e$ v: c8 F1 G - " \n\n "" X: Z( {# I; w( y
- msg
* ^3 h% ~2 Z- N: t* p; I$ h/ O9 f( I - " \n"
9 c5 `& Z) b3 L+ k7 K4 a( p - )5 o3 K9 O+ t4 w a) B# D
- )
, y* E5 A: B- l+ O) I - ); J: Y+ V4 e5 S4 N9 K$ o; W
- (exit)
/ }0 t, v8 a% f- ` - )
3 V% r# O: {( F: C* N& }8 G8 r - ' G/ Y, o( D( v3 E1 U/ `/ I' `; `" ~
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
1 ] T1 @$ `& t7 A" N" e& i - ;;; and then try to load it.1 z. v& c( ]1 ^/ U
- ;;;6 R. p0 @1 _' ~3 z2 z5 ]9 y
- ;;; If it can't be found or it can't be loaded, then abort the" V# v( o* @6 G8 @: o B8 B
- ;;; loading of this file immediately, preserving the (autoload)
$ S8 Y% h+ R9 r" `" z' Q - ;;; stub function.# h# J* a& H' E, e9 p
- 5 R# u M" y7 x9 n+ i7 C- s& V) V& }
- (cond) K% ^$ r2 w( h. s V! R( M+ C
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
/ m+ k. G. }1 i6 f2 W( Y& }
4 Q' R7 T A( h; B- ( (not (findfile "ai_utils.lsp")) ; find it. m* s- l3 I9 F( p- F- C
- (ai_abort "DDCOLOR"7 L$ d% S/ Q/ b3 n# \
- (strcat "Can't locate file AI_UTILS.LSP."( |) V# @- T" t3 E1 w
- "\n Check support directory.")))) `% l+ m: p/ \ d8 N9 {8 K0 c
- 0 l5 g! Y. \6 w2 @# E
- ( (eq "failed" (load "ai_utils" "failed")) ; load it7 G+ B. g) c( ~+ n% q- V k
- (ai_abort "DDCOLOR" "Can't load file AI_UTILS.LSP"))& f2 P- V! k! d' y( y; L2 l
- )% R( p9 u0 N6 \+ V+ ~
- 9 _/ [6 U) m" Y0 [7 N! [7 C
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
3 i- I' J* C% d* i0 V6 [ - (ai_abort "DDCOLOR" nil) ; a Nil <msg> supresses
; Z! p; T E- J6 c( e - ) ; ai_abort's alert box dialog.
4 y7 M K+ ]$ @, J$ L$ g; h' r+ b* c
q$ a1 t" A8 [: ^- ;;; ==================== end load-time operations ===========================
' W! J7 L% k" M7 b" J - : M3 Q7 b- C5 f |6 U. l! o0 R1 ]) p, J
- (defun c:ccc (/ co_oce clrx co_err co_oer lay_clr)
, O/ r8 i* F1 v& D) b" K+ i - ' J M( V1 [& E0 C
- ;; Main Color function, called by setup code.' X7 x" }+ w% {0 M
- (defun ddcolor_main()) A# l1 c* ?2 {! l
- 6 q( E6 I y/ A) Q. { S% R
- (graphscr)
, S+ f! G/ u, k9 u - ! G5 k' c+ j+ {
- ;; Get the color of the current layer, for possible BYLAYER color swatch.& a. G4 i! u( G8 F% [
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" (getvar "clayer")))))
4 l+ \, A# i2 c
( }; z4 x: |2 l- ;; Call the dialog here...
8 }: \/ f- o$ @% ]$ m4 q" D' w - (setq clr (acad_colordlg (cstoci (getvar "cecolor")) T lay_clr)); T4 {. v/ n* V. X
- 9 u. \/ S6 c" l. g
- (if clr% {+ q5 J* X2 B P0 d3 _7 z4 C
- (setvar "CECOLOR" (citocs clr)))( P0 p0 e$ B P- ]
- ), {+ q7 `) v0 a! B
4 ?5 Y5 V; W$ X% R2 R- ;;;0 d5 [3 m6 I0 @1 x3 `
- ;;; CSTOCI -- Color string to color index
& |# |% x9 p5 j/ d2 _ - ;;; Convert an arbitrary case string into a color index.: c3 `5 O# O* r( a8 ?. H" d4 \& U
- ;;; Returns nil if string is not a valid color.( A- s0 V7 G B# p' a
- ;;;
@- ~9 @+ a0 C% S - (defun cstoci (str)) {& `+ x+ t7 ~/ J) Q3 ?) ]
- (setq str (strcase str))2 t+ F: L; E! ~7 J A8 L! O
- (cond3 L' v$ {: O8 s9 B# |; Q, F
- ((= str "RED") 1)% r" e) P% V9 Y& m% M7 @3 i" ?
- ((= str "YELLOW") 2)- B ]. [* |" m4 @! d
- ((= str "GREEN") 3)5 @0 F! h# [* \4 I; U: l) P
- ((= str "CYAN") 4)# v$ P9 [; [7 d, f6 j
- ((= str "BLUE") 5)
: P7 K$ a! E1 s) i4 d5 z - ((= str "MAGENTA") 6)
1 ~8 J0 F$ Q( ], S5 Y - ((= str "WHITE") 7)1 h4 d4 @( L3 A: c
- ((= str "BYLAYER") 256)
% d2 v' p' y+ b5 ^# ^ - ((= str "BYBLOCK") 0)
. e0 L' J: R/ ^7 s# [3 k - ((= str "BY LAYER") 256)) P( n3 x+ c+ w3 I- {$ U# E
- ((= str "BY BLOCK") 0)- _- `8 G. }2 {* k6 |
- ((and (< 0 (atoi str)) (> 256 (atoi str))) (atoi str))
8 U7 `* k: W4 Z' s) | - (nil)). \1 P3 t, S3 h: K
- )
5 I2 h1 V$ Q D( {0 E4 ]+ Y - n% K9 @. E' B( p4 J& f* ~
& o! |0 k7 S3 [/ j0 u- ;;;
& x$ L- w( V' u* e# Y$ G( o4 u9 ~ - ;;; CITOCS -- Convert color index into standard color name.5 I1 V# ]5 n6 G) a
- ;;; Will return the standard and logical color names as text
8 w2 Y2 E( P( ?6 k7 Z. d; r6 U0 U9 j/ _ - ;;; strings. Returns nil for out-of-range color indicies., s$ \6 d; o+ p$ c1 A ~( I# _
- ;;;. Z) d+ i# b. ?6 M! L/ D
- (defun citocs(i) N4 b" B8 v/ C% b
- (cond
9 m4 I$ h$ e: M0 g6 } - ((= i 0) "BYBLOCK")
9 D! z, E3 T, @- }( ? Z$ a - ((= i 1) "red")
+ a7 ~9 D" E+ y; J2 E9 m% ` - ((= i 2) "yellow")
2 Q: R9 E! A9 { - ((= i 3) "green"). R1 d1 c/ m1 [! H' \$ y+ \
- ((= i 4) "cyan")
* S: i; L/ F; b7 Z/ ] - ((= i 5) "blue")& @5 _0 O. M1 d( a9 C2 y$ L
- ((= i 6) "magenta")7 N: b) P# x# l! _% _+ v
- ((= i 7) "white")
3 G: Q) H6 r J" ^1 H( M - ((= i 256) "BYLAYER")
0 W4 p: a l) t' d9 h# |% C - ((and (< 0 i) (> 256 i)) (itoa i))* d7 K3 l6 L7 O h' P" t2 e
- (nil))
' z+ A( w$ V8 v* D - )
2 s8 w' Z; X9 R& ?6 v, p* B - " b7 O3 p: P( [, W
- ;; Start of ddcolor4 q5 d [: ~' y0 F: Q
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho: C4 t/ a! K% h+ g2 n) f* Q( \7 h' f
- old_error *error* ; save current error function& v" i) e9 U8 c" `7 o1 b2 b0 p
- *error* ai_error ; new error function% D C+ F# B( B$ O+ M; m
- )
8 f& x# V8 w) O7 n( I+ [
/ G3 d: V' C$ f7 D+ K$ f- (setvar "cmdecho" 0)3 p. |' t* x3 F6 r
0 L0 |" x& D) r2 i2 U8 }- (cond
; C' r7 ]% @6 R1 v5 X1 A - ( (not (ai_trans))) ; transparent OK
: g' Y3 }/ h2 C6 r - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?6 r$ G' a1 x( v
- $ }" m8 r p; `5 c: D
- (t (if (and (/= 1 (logand 1 (getvar "cmdactive")))
0 f) J% s& x; ?7 I5 z E - (/= 8 (logand 8 (getvar "cmdactive")))( c5 l! q# l0 U& x9 e( N6 {5 j. S
- )
0 ?3 X" _% }4 m - (ai_undo_push) T6 Y9 V- Y) [2 }8 `
- ), b, }7 Y0 T h8 C9 P! i1 d6 I
6 J! x7 Q' ~4 K/ p- (ddcolor_main) ; proceed!+ A5 a2 L L( Z$ J5 y
$ N) V0 z6 y9 t. ~5 \% p$ x- (if (and (/= 1 (logand 1 (getvar "cmdactive")))* y% w. B8 Y$ y. o% { ]6 j
- (/= 8 (logand 8 (getvar "cmdactive")))
4 {7 ^$ w7 l8 G - )+ W& l- i. P1 H1 z( Z! S
- (ai_undo_pop)* G# }$ U/ a. F9 ~
- ), ^; `: [8 s& K
- )
! C0 ^* h% }( D6 E1 |; y& t - )
# N1 \# y) r' c - 7 B% g8 F' C0 J9 @0 ?# g8 e
- (setq *error* old_error) 9 b7 @4 m; e6 s8 g( s! o, s
- (setvar "cmdecho" old_cmd)
0 ? m- K9 \* F - (princ)! Q* L2 J5 A( p6 A; \. [5 P5 `4 A
- 2 t1 w( d: D. s1 x& k& Y$ F
- )0 R4 d" K9 x- T* [
. L" f ?% w1 T* c( T- ;;;----------------------------------------------------------------------------
8 G' ?! C# d5 c/ r& `7 k. ~ l7 F* ?' D
. ?+ L4 ^9 u1 x* ~( N- (princ " DDCOLOR loaded. ")
7 U- r: U4 G0 T2 h - (princ)( a8 Z. x; N+ o! P
! n7 Z1 s! V8 E, }, D; k/ e- ;;;--------------------------------------------------------------------------;3 p2 u9 O4 A5 H/ m0 G" ] @5 R
- ;;;---------------Chon NHANH Nhieu Doi Tuong GIONG THUOC TINH----------------;# e) S) W. E6 l$ s
- ;;;--------------------------------------------------------------------------;
) A3 `+ w5 l4 v1 E- I. O5 V - ;;; ssx.lsp
" z6 x, H' Z* ?6 Z) ` - ;;; Copyright (C) 1990 by Autodesk, Inc.
8 ~5 X( }; E8 h8 T) } - ;;; Copyright (C) 1991 by Control Systems, Inc.
8 Y! L" W0 u7 U$ b. ~1 d - ;;;/ B$ U2 I3 m% Q+ T0 a o. h7 F, J9 V
- ;;; Permission to use, copy, modify, and distribute this software and its
0 J( r' F5 |& o2 B2 W8 { - ;;; documentation for any purpose and without fee is hereby granted.
+ c% @2 p+ P( W& R; O& ?3 ^: y4 a - ;;;
0 s( M! o0 Q1 S& K6 p# D( z. R - ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.
( e# } g9 Y2 m c8 I' e$ M - ;;; ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF" x# e+ i( {7 B. K& Y
- ;;; MERCHANTABILITY ARE HEREBY DISCLAIMED./ i/ Y& u8 @- y4 ]' \
- ;;;
+ b# ^* c! h; ? - ;;; Larry Knott Version 2.0 7/18/88
+ t7 v8 f! [* `) L9 d u1 H - ;;; Carl Bethea & Jan S. Yoder Version 3.0
/ W/ @- I% _+ v; {: p* n* w8 y - ;;; Enhancements to (ssx).
, Y) N0 i5 B: i4 q; P# T - ;;; 15 March 1990 " @- a9 q% ]: z
- ;;;' v5 g3 A5 ]' g6 d: f. ~0 V: G
- ;;; ARTIST Software, Inc Version 4.0 December 19918 v9 k+ P" q |8 }
- ;;; Modified for FLEXICON usage. If the variable FLEXVAR = 1,
5 c6 P9 d, v1 L+ U - ;;; use Flexicon menus2 O' n% ]3 B! t) [% c! |0 W
- ;;;8 a0 X8 z, Y Q2 _
- ;;;--------------------------------------------------------------------------;
" I$ v k: o9 t: P/ S1 f - ;;; DESCRIPTION
9 s- `4 Y- a# y5 p& n- ^ - ;;; SSX.LSP 7 l4 j/ M8 Y% w0 `" _3 @0 ^) {
- ;;; ' Y# ]/ x* j* C0 H3 V1 o) U
- ;;; "(SSX)" - Easy SSGET filter routine. ' D$ g5 f, P% }/ n& l* z; W
- ;;;
" |$ \5 W. ]: w2 v- P9 f8 Y4 | - ;;; Creates a selection set. Either type "SSX" at the "Command:" prompt 8 h% f& R7 R' @# a C
- ;;; to create a "previous" selection set or type "(SSX)" in response to . Y- J" ]0 m- f9 K2 u/ \0 J# ]) D/ \
- ;;; any "Select objects:" prompt. You may use the functions "(A)" to add
5 ]& f3 E5 ^& L$ g: |: j4 W: h: o2 U - ;;; entities and "(R)" to remove entities from a selection set during
5 R/ I& h H# \/ N: O' y - ;;; object selection. More than one filter criteria can be used at a
9 c$ g" ]' u4 p5 J& j# R* u - ;;; time. # S* I) f& a. r5 i
- ;;; , M5 I0 h* w* G3 P# C# v* s
- ;;; SSX returns a selection set either exactly like a selected$ k1 n5 y+ I5 X; J
- ;;; entity or, by adjusting the filter list, similar to it.4 o* \4 c$ W# K
- ;;;
- k @$ w# M# H% q3 C7 _- q: ] - ;;; The initial prompt is this:! t2 P% j' C( N
- ;;;
: j4 T: c' n4 i2 _5 o9 f - ;;; Command: ssx
4 \& W+ x, k) o - ;;; Select object/<None>: (RETURN)' K! U6 ] V( h- ~+ L
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
- G- j% L" T! i) ]1 s - ;;; ! X: P( ^& D$ K# t) B# B
- ;;; Pressing RETURN at the initial prompt gives you a null selection
3 A2 a# H. e0 Y; y8 u8 w! b( z. | - ;;; mechanism just as (ssx) did in Release 10, but you may select an 9 p( W1 F' r( |( u* _2 J
- ;;; entity if you desire. If you do so, then the list of valid types 3 N7 m- ~+ E6 N
- ;;; allowed by (ssget "x") are presented on the command line.
+ l) W7 o8 A" ~& P+ | - ;;;
; g( q5 L3 _: a6 M$ a - ;;; Select object/<None>: (a LINE selected)7 b+ ^2 N: A' y. c; C( {2 k$ F
- ;;; Filter: ((0 . "LINE") (8 . "0") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0)) 4 X" f) a2 I) n3 }, |# L, E. _3 k
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: . k. g- a. X% j" A2 `/ s; |
- ;;;
x& t2 c" t( u; _: n3 j/ e# @ - ;;; At this point any of these filters may be removed by selecting the 1 U$ s6 ?7 m/ \/ V& b1 F
- ;;; option keyword, then pressing RETURN., _# I4 U/ y0 M
- ;;; - I2 S- W* k; j% u f
- ;;; >>Layer name to add/<RETURN to remove>: (RETURN)
4 m3 {% W; h5 d0 B# `" v - ;;; * z, z$ o$ ~: h+ A: o, }6 ~4 y7 |
- ;;; Filter: ((0 . "LINE") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))
$ }( i, @9 Q. S; w* {, ] - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
. t' l6 {2 D2 \ - ;;; # @5 n3 c9 D3 g5 P% p& C
- ;;; If an item exists in the filter list and you elect to add a new item,
- J$ |, `& B# F7 G; f* K - ;;; the old value is overwritten by the new value, as you can have only
5 p( E% t; u2 { - ;;; one of each type in a single (ssget "x") call.
# m$ L# E, Q- D4 H2 G - ;;;
6 }& B, @: U5 s3 H' b0 F W - ;;;--------------------------------------------------------------------------;
9 ?- n* K6 e0 @6 S$ |) { - ;;;
. `- o# @1 ]5 f0 a2 V - ;;; Find the dotted pairs that are valid filters for ssget7 ?# D+ Y2 Z+ c7 J9 {9 ~
- ;;; in entity named "ent".
) f2 }5 m6 `: j. C- E - ;;;
_1 h4 R( D% [2 l% k5 H - ;;; ssx_fe == SSX_Find_Entity
. Q+ W4 R) F/ K# }! k$ ? - ;;;
. V F9 [6 k" b% U* C9 D- I) k - (defun ssx_fe (/ x data fltr ent)0 Y/ Q& w- d' v) y
- (if (and (= flexvar 1)(/= t2 "Pick"))
3 `8 w, `- v3 Q - (setq ent nil)1 O# V$ |/ Y, E
- (setq ent (car (entsel "\nSelect object/<None>: ")))
# x {, c! I6 U; i R& b - )( a; Z3 ?* h2 _ T( W1 y$ n
- (if ent( \1 A( q& Y( k& \$ s. S, W
- (progn, l2 \. j/ h$ b
- (setq data (entget ent))$ G1 Q2 X: h+ |% z+ D* G
- (foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 38' |! E: R# L7 c% L4 K& D: \
- (if (assoc x data)4 v' ~" s# S v
- (setq fltr . M4 }2 O$ C; Y) R$ i9 T
- (cons (assoc x data) fltr)
`4 [- n! p% f' C/ _ - )' [ ^# V- M# _" \
- )8 k4 }# {6 v$ Y( A
- ) 6 L9 A5 l1 X2 V7 x. W
- (reverse fltr)
* ~9 N! _- G5 D# ]6 B9 w% } - )
$ H3 D8 [3 R' X - ) % I% a$ W" S' C/ [
- ) @3 a2 K7 x% `& |5 N" [
- ;;;
! y$ j& A' t, u. V# ? [ - ;;; Remove "element" from "alist".
; e$ H" z K6 V( `9 S- |0 i - ;;;
- J1 g* ?, w0 F6 Y8 O - ;;; ssx_re == SSX_Remove_Element' G) q+ w$ y4 G' M* m! m! n3 n% U
- ;;;( X" T5 ]6 b+ `1 S, |6 O$ X
- (defun ssx_re (element alist)
$ A1 V1 ?4 Q+ a - (append
% T4 R5 [! G9 @3 l - (reverse (cdr (member element (reverse alist))))
1 l* m( t. w, X - (cdr (member element alist))
+ U4 x- n8 M0 i, s/ S" r - )
* D4 G6 j2 U% @/ `8 X" k. F - )
9 y1 I+ h5 Z' _$ N; w4 `2 ^ - ;;;
# `* l p+ Z8 H: a3 @5 R - ;;; INTERNAL ERROR HANDLER 6 T% a: u! Q3 l, f) ~+ o
- ;;;$ c R8 S/ e; \* }7 B/ I/ i9 j
- (defun ssx_er (s) ; If an error (such as CTRL-C) occurs
" @" z& I/ P C. v. L5 a - ; while this command is active...
# h9 A7 Y9 a; a - (if (/= s "Function cancelled")' Z' l; }8 k, N' W
- (princ (strcat "\nError: " s))
! t# Y* h1 e8 A, d2 a$ B - )' f/ c& |7 A8 H" y
- (if olderr (setq *error* olderr)) ; Restore old *error* handler
3 L- u9 ~) z& l4 U9 E - (setq flexvar 0)& r1 _1 @( V" W" ?
- (princ)
, [( ~5 n3 [. Q7 y) |1 a - )$ [. M- w5 h6 C/ p/ E8 o
- ;;;
7 O9 h, n- A; I! d) Z - ;;; Flexicon call routine
$ Q( T7 j' |5 V - ;;;
: E7 g7 p# D5 _ - (defun flexmnu (a)
$ W- V, ?/ w3 y1 I% {" z9 z9 o - (if (= flexvar 1)9 N) x) T/ d" U) h
- (command "FLEXICON" (strcat "FLEX" a))
5 s! T* c2 U c: {6 t - )
$ n# Y. E. b) Z. M3 o$ b! t - )$ V; A7 n9 e+ t# I* C5 [
! k$ ]$ L/ f X- ;;;
5 L6 u/ G* [; s - ;;; Get the filtered sel-set.
: C. m% z9 ]) k, e$ a- O - ;;; ^1 W, Z6 X7 @5 r
- ;;;
$ @, _+ c! Y: L - (defun ssx (/ olderr)# |! }/ \& u2 h+ D4 r; g; I
- (gc) ; close any sel-sets 1 }/ Q+ \* d# w; ^ w
- (setq olderr *error* - C4 G5 |+ u& @% p. O H7 o
- *error* ssx_er
! {2 N, ]' \0 g - )
: T, h. _" u/ B8 j - (setq fltr (ssx_fe)) 1 r4 Y0 z5 A0 U) Q0 i0 n& C
- (ssx_gf fltr)
9 X1 {4 a3 b% b8 a8 y - (if (= flexvar 1), }# Z6 J: F# s l# S$ i5 M7 O
- (progn
) r: e% H! z; K - (prompt "\n \n \nNow select the required EDIT command and (P)revious.")
4 z9 ?; o Q: @7 D# c$ T. M - (flexmnu "EDIT")/ w `* t1 S' }* p5 V
- )
" h% M7 G9 ] X, z( k" e% f7 J. ]# G - (command "p")
7 f1 }% u1 ~# W! O - )) h2 s, k' d' N1 m' s
- (princ)7 a1 Y+ W8 ^" w* b, ~' G
- ) R4 l$ S7 A* J% x( }% Z& ?4 k0 s
- ;;;
3 O# ~7 I) w. i+ U3 g! o - ;;; Build the filter list up by picking, selecting an item to add,% r v" f$ X: ]2 P+ B
- ;;; or remove an item from the list by selecting it and pressing RETURN.' x# b7 E/ g3 Q2 i3 a7 D) B
- ;;;- E* c( x3 A0 U: z- F% @: q
- ;;; ssx_gf == SSX_Get_Filters
% w4 }' Z6 O! b3 r' J3 v% b% l/ t - ;;;
1 }& z( U6 U2 l; F% t - (defun ssx_gf (f1 / t1 t2 t3 f1 f2)
& q& D' Z- @* c; I - (while
/ {4 f* ^. M3 a( N( e6 A* W - (progn4 p0 y: D( P' Q: V
- (flexmnu "SSX")1 m( Z: q/ u$ }8 W
- (cond (f1 (prompt "\nFilter: ") (prin1 f1)))
. m2 t6 U5 U+ U& \* q1 [5 q - (initget / p! e L& N' e" t9 g) Y% \
- "Block Color Entity Flag LAyer LType Pick Style Thickness Vector")
" c/ G5 f1 {8 P - (setq t1 (getkword (strcat b. W" A Y3 B6 b* n; Y
- "\n>>Block name/Color/Entity/Flag/"" |7 _/ v6 @) e% F, f
- "LAyer/LType/Pick/Style/Thickness/Vector: ")))
. ^" ~ n' l) s8 E - )
7 G" j% \( f X( C( O7 e$ f7 K - (setq t29 a1 |# G! L) `6 v8 e5 u( v: K1 k
- (cond
2 ~# q. T3 o/ W$ {# J$ C' u - ((eq t1 "Block") 2) ((eq t1 "Color") 62)
; ^3 E6 l# r5 E - ((eq t1 "Entity") 0) ((eq t1 "LAyer") 8)
- w) y* r& z! C( g0 D3 n - ((eq t1 "LType") 6) ((eq t1 "Style") 7)
! b2 G6 j: F; r" x L( l - ((eq t1 "Thickness") 39) ((eq t1 "Flag" ) 66)
' c* u1 G# I# S2 v- Z5 f/ k! ^* ~ - ((eq t1 "Vector") 210)- a2 m+ ]0 @5 G- y
- (T t1)
( d7 ^8 y" U5 O3 o: `4 w$ g - )
5 ]! c5 S; K# z/ l) `, T - )
% c# _* _. s* H5 e7 Y P" w - (setq t3
; ]# G. v# U% D, d' D - (cond/ [; `% e4 w; r4 Q
- ((= t2 2)
; _# f. T+ |/ D9 r4 X* P - (if (= flexvar gtads 1)5 @/ g/ Y" L; F2 u, }+ t" J+ c
- (progn
5 _; O* c" D! R1 u, R9 Z - (prompt "\n>>Block name to add/<RETURN to remove>: "), }' k; h) s) Z" l+ o I6 R U
- (gttable "BLOCK")0 x1 C' s2 k# Z0 E: ^; B
- )
+ J' W. q* q1 h/ D - (getstring "\n>>Block name to add/<RETURN to remove>: ")
* {; y6 K) s6 _5 H k - )
- ^# w3 ]- g0 I) S5 O- q a# o - )
/ o6 k, J m" X - ((= t2 62) (initget 4 "?")8 h7 b& M8 g; F2 M; A! T
- (cond
3 P a9 m5 L3 d1 S& d - ((or (eq (setq t3 (getint
. ^; V# h# C% Y# X" { - "\n>>Color number to add/?/<RETURN to remove>: ")) "?") ! a( M& [$ |" h& {1 b) K
- (> t3 256))1 s# a t% B" P# j
- (ssx_pc) ; Print color values.- Q' P& |8 C! B& m* j
- nil
8 l S# D) E9 u4 @ - )
& b" n( D; ^% K9 ` - (T6 s/ K( s% L. O3 P; |/ _( B
- t3 ; Return t3., E2 d6 m- S1 j9 x4 _8 l0 G
- )
6 U% d/ @3 w3 N% m. l# W( U - )
# E7 n. d; U6 w! ^ - )
) ~7 Y; s+ i7 d4 r. K0 ~, [; n0 m - ((= t2 0) (getstring "\n>>Entity type to add/<RETURN to remove>: "))
' s4 n) D" P. g! x# F - ((= t2 8): d3 u) q! N7 S) }
- (if (= flexvar gtads 1)
4 o! L& W q5 r i# |& ^/ B - (progn G; h1 i3 @$ A' z. O7 Y
- (prompt "\n>>Layer name to add/<RETURN to remove>: ")
8 p2 c" L0 e5 L7 i: } - (gttable "LAYER") t+ h b. I2 l, s
- )
2 L- o. X4 R1 L - (getstring "\n>>Layer name to add/<RETURN to remove>: ")
" U2 h, k* E, x' F A) L' Z - )
3 `+ O, D$ p& M! j( j - )
" D: p' H# h5 A% n' H+ R - ((= t2 6) 3 G H; t0 s3 w: G; h
- (if (= flexvar gtads 1)& S. P# e3 I0 s% z
- (progn) t' y2 _0 Q: J v
- (prompt "\n>>Linetype name to add/<RETURN to remove>: ")7 o, z/ }; G: U3 L; E/ B( n5 Z
- (gttable "LTYPE")
% y# c" g; t* D0 F' b0 _: V3 ~ - )) [0 J! C9 j5 |& t0 z; c
- (getstring "\n>>Linetype name to add/<RETURN to remove>: ")
2 w/ [- W/ h; | - )( j' H V* \" w6 b
- )
3 V3 d6 Z$ x% i: S+ K' e3 T9 J - ((= t2 7)
( [6 x7 d, Z2 L( K1 K& y - (if (= flexvar gtads 1)( b: q8 e9 [" R! T5 c
- (progn0 s" K4 C9 J: Q( }
- (prompt "\n>>Text style name to add/<RETURN to remove>: ")
5 g, L# j7 x8 l9 B7 k; F& r( Z - (gttable "STYLE")
, @/ V. Q6 \8 h! l+ s - )2 l$ [0 O- n6 R
- (getstring "\n>>Text style name to add/<RETURN to remove>: ")
& R, e5 v9 G# ?/ O2 S6 x& R - )( y, C1 e$ W$ h' ^0 Z, n# m
- )7 \: e% \6 o# a( w
- ((= t2 39)5 t9 p/ m8 D: u+ h, [. F) T; ^
- (prompt "\n>>Thickness to add/<RETURN to remove>: ")
8 p. T0 s- d% ?7 M$ Y3 I - (if(= flexvar gtads 1)(gtfnum"Thickness to add:")(getreal))% Q" U9 u" M( m+ ~) E! q5 m
- )! U; z- O }7 [/ H
- ((= t2 66) (if (assoc 66 f1) nil 1))( L/ V% g$ a& z- C- w
- ((= t2 210)
' C, h3 U6 p' E# b' A - (getpoint "\n>>Extrusion Vector to add/<RETURN to remove>: ") L3 P; m: D7 C0 _
- )
6 {5 m+ s, X. t' O! { - (T nil)
3 v4 A v/ ~% l: g; ? - )
( U! f& ~8 X! x* n9 T1 y1 J - ): h8 W8 i; i* `5 ]6 {. H9 p! n
- (cond
/ _( m9 t! P6 H) Y& B - ((= t2 "Pick") (setq f1 (ssx_fe) t2 nil)) ; get entity
" ~3 o6 o# F' {6 y. ^# R8 V - ((and f1 (assoc t2 f1)) ; already in the list
/ H% J; T# f0 z9 b- M - (if (and t3 (/= t3 ""))
- q) A& r' j3 e4 S9 F - ;; Replace with a new value...
6 |. W- e" |' J0 G - (setq f1 (subst (cons t2 t3) (assoc t2 f1) f1))
" P; m0 |9 W& Q/ x% V( \! K3 Y' e- G - ;; Remove it from filter list...2 y4 X$ j( ?! `% X5 r
- (setq f1 (ssx_re (assoc t2 f1) f1))
' z& S; s9 l) ?0 D% p - ) 5 B3 }9 ~: o5 C- N2 Q
- )& v( T5 U B" S2 J2 r
- ((and t3 (/= t3 ""))8 k# U% K8 Y- V* E9 t# p2 n" U
- (setq f1 (cons (cons t2 t3) f1))5 U+ C% ? y& n2 l, d$ D
- )% ]" ~/ Y' S$ R8 }8 M h% t$ e( d
- (T nil)8 q+ d& q/ n: h. W; b" c7 C4 ~& t2 P
- )' v: |, m( Y. y$ g! _
- )
' g; c8 m# s( H9 w4 n } - (if f1 (setq f2 (ssget "x" f1)))/ i; k9 D" Z# ?
- (setq *error* olderr)
9 Q7 s7 s* V& V' i, ]. I0 { - (if (and f1 f2)
& r7 W8 b* y; Q: P1 m7 Z! [- j - (progn
& M9 g* ~" {0 t" i9 U - (princ (strcat "\n" (itoa (sslength f2)) " found. "))' w% S. A% c# b$ P: t
- f2
: A6 ]4 c% Z0 Q8 B" I( B - )
* f$ p+ m- `$ y. T; M, J' `- ^ - (progn (princ "\n0 found.") (prin1))
* @6 g% `. n( ~# W6 P - )8 W: G" [: h7 |, S* d
- )
3 h3 F) D# y7 \& o D( m- p7 y - ;;;
9 v/ Y y9 k# I. n2 A* _5 z% b - ;;; Print the standard color assignments.
' M4 m: |5 s& b - ;;;
8 T0 F" s0 W9 N" ? G3 D - ;;;
* D% v! ~& b4 u% t7 n - (defun ssx_pc ()) p7 i: b! [' d9 _9 y
- (if textpage (textpage) (textscr))
5 C4 O7 Y* X7 _1 D7 l0 g! L - (princ "\n ")3 ^* r2 D( Z% ^ f
- (princ "\n Color number | Standard meaning ")
# ~2 Q/ `2 C- E# l$ C - (princ "\n ________________|____________________")8 c: C0 O8 ]6 u! `
- (princ "\n | ")
2 l4 Z2 F! `5 `2 q# o2 e0 f - (princ "\n 0 | <BYBLOCK> ")3 g" Q* j) x* U; u0 V: k+ p8 B! [. @
- (princ "\n 1 | Red ")
0 V+ u' l1 F' X5 a; `; c8 z- S - (princ "\n 2 | Yellow ")
- h' E+ H# S& i1 S& W) Y G - (princ "\n 3 | Green ")# d q1 }8 `( E% o& n. B" X7 F+ s
- (princ "\n 4 | Cyan ")
" Q* |8 g* t h( W - (princ "\n 5 | Blue ")
6 n0 D* F2 y5 g - (princ "\n 6 | Magenta ")
: f5 B) ]: N9 p# v' @/ n8 _ - (princ "\n 7 | White ") Y! N3 F8 \* p2 h8 f
- (princ "\n 8...255 | -Varies- ")
) d& y, s6 L- O' }) d5 Y - (princ "\n 256 | <BYLAYER> ")6 |) V5 t) s& K5 W
- (princ "\n \n\n\n")4 c1 @" I! v B0 s7 f: ~+ V
- )
7 g% ?# }6 A+ O6 t# o - ;;;9 p- d# T& _* X& D
- ;;; C: function definition.# O; v6 B2 V: G8 A( h3 F2 G# O
- ;;;
% Z# H3 `+ l9 y' ^8 L - (defun c:ssx () (ssx)(princ)). m& \) V3 w7 v7 u# y2 d( |6 |" T2 @
- (princ "\n\tType \"ssx\" at a Command: prompt or ")
) V1 i( V' i s# F$ @/ L s - (princ "\n\t(ssx) at any object selection prompt. ")
5 a6 a5 E' x8 s* m - (princ)/ v6 w7 i Q3 h$ b1 u
- " X" }$ x. e0 Y6 r. p/ d
- ;;;--------------------------------------------------------------------------; M# f- Q' H% W: R
- ;;;--------------------------------------------------------------------------;
- X# F. X" R$ ~, M. r - ;;;--------------------------------------------------------------------------;
" w6 _2 l- z+ s - (defun S::STARTUP ()4 X! X3 V/ B3 H: E* M# J6 ~, B
- (setvar "cmdecho" 0)
7 T: N& V% S9 v - (setvar "cmdecho" 1), k# K6 M# w6 X" |# Q0 `! c3 J/ q
- (setvar "LTSCALE" 10)
( k+ W8 N F. P
8 ^: K: @( L5 X9 ~1 |3 _& K- ;(command "_load" "chenKH.fas")
, g0 `6 O2 w& \* x. b - ;(command "_load" "ctcot.fas"). \" H1 D0 ^2 L( j9 [0 y8 K
- ;(command "_load" "damdoc.fas")
6 R1 F. p: B. R3 s; e1 i/ q - ;(command "_load" "ghichu.fas") _6 v4 T% q- { h, S: ?
- ;(command "_load" "hamtutao.lsp")
& H7 d9 y7 |3 ^ - ;(command "_load" "KHOITAO.fas")
$ \/ f/ ]; ]+ @* C; Q - ;(command "_load" "KHthep.fas")2 E3 _- u0 c- h
- ;(command "_load" "mbmong.dcl")2 I" R/ n2 H1 C# B! g8 w
- ;(command "_load" "mbmong.fas")" \- F% I( G* Q H3 D
- ;(command "_load" "mccot.fas")' P: e) _. F% s. U/ i; D0 V5 Y4 X
- ;(command "_load" "mcdam.fas")
6 U. \: T1 T* K: ^4 g - ;(command "_load" "mcmong1.dcl")
1 Z) Z/ H2 M+ P4 n( c! v' @6 P# T - ;(command "_load" "mcmong1.fas")
; S" g: j. L2 u; X - ;(command "_load" "mcmong2.dcl"): x9 S/ J/ z- S1 k
- ;(command "_load" "mcmong2.fas")" m% Y6 C9 g) t0 S' m/ P
- ;(command "_load" "mcmong3.dcl")! V9 |4 r* H' E6 z+ o- z
- ;(command "_load" "mcmong3.fas")
6 l) D, k* C$ H3 M/ Z3 a/ z - ;(command "_load" "mcsan.fas")2 H" k: l3 m$ A. @* [
- ;(command "_load" "thepdai.fas")) z5 E% V' `% x# E% f$ [! O8 q
- ;(command "_load" "thepdoc.fas")
+ o) E# i1 E. c - ;(command "_load" "thepmb.fas")2 [3 D/ u$ F7 c" o9 |
- ;(command "_load" "thepphbo.fas")
% N g% E6 L% D! [# Y- Y& S3 K - (command "_script" "thongso.scr")7 q$ ^( L% r) A6 A( f/ f
- ;(command "_load" "thongso1.dcl"). L) h" w! V4 a7 [8 F9 _
- ;(command "_load" "thongso1.fas")$ W; j% M7 X/ Z. }% R8 Q J
- ;(command "_load" "thongso2.dcl")1 ~' k: N- v4 ?7 B3 x8 x# N# m
- ;(command "_load" "thongso2.fas")* e8 _# @( v4 J# I+ D& t8 a
- ;(command "_load" "tietdien.fas")& w% _9 h F) P: S
- ;(command "_load" "vehan.fas")8 u$ z2 A) h/ |. s
- (command "_load" "phamDuy782006_TKT.lsp"); a: x6 y! F7 B' Y/ b+ R
- (command "_load" "phamduy782006ganhtd.lsp")
* F$ T7 _7 D! A4 B% k9 e! r - (command "_load" "phamduy782006ganhtds.lsp")
0 T5 H+ N& Z6 O" J - (command "_load" "phamduy782006htd.dcl")
$ ~" \# o Z \2 C6 _. `1 F! [3 U - (princ)
1 s% B o7 k0 l) D6 o - )
2 {7 C4 O! E3 w7 a - ! }+ H+ l3 x" q' a3 C x) t! M5 ?8 Z
- ;; Silent load.$ i6 Z% t! g6 I2 m, N- D. h
- (princ)
% X; L' y" F+ o a
4 {4 K' Q9 j) _, t+ R+ x
0 K) t! H: z$ T6 g- ~ i- ;; Silent load for the Express Tools.
+ G& {: w1 j9 Q7 N - ;; Altering this line will affect Express Tools functionality
, \ D$ a% a" z. F8 T8 v8 w - (load "acettest.fas" (princ))
1 N4 F$ q* c2 N- V3 C& ~ T - �32
Sao chép mã
6 }% H$ d: d7 V( W00st Cách Thêm Menu & Lisp Vẽ & Fonts Chữ mở Gõ Chữ Administrator để Gõ
6 ?& j+ V3 j( e p |
|