|
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 |
- ********************************************************************************: w3 \! E+ n, S* H
- * ACADLISP FOR AUTOCAD R.14 -> AUTOCAD R.2012 *7 g# v9 ~3 }& k. l* P# q7 i
- * Tran Ngoc Thang DHXD-HaNoi41 from years 1999 -> 2015 *
2 x7 O7 p7 U' H! E' [: U - * Suu tam & Soan *
7 S. ~, d+ q+ i* M - ********************************************************************************
/ p% k0 I# ~" ]. o( |9 Y& |( j$ ]
1 K# T: g$ `. }) E9 a2 F1 R- S- ; Next available MSG number is 104
: [) z. e6 _1 ~4 K9 ~/ l - ; MODULE_ID ACAD2000doc_LSP_
, y& Q/ _* H/ j, o9 W - ;;; ACAD2000DOC.LSP Version 1.0 for AutoCAD 2000
y' L- Z3 R: l# I - ;;;
4 V; W0 T3 C: V - ;;; Copyright (C) 1994 - 1999 by Autodesk, Inc.* ~; X: c5 I( e9 i# A( q
- ;;;5 P( j1 `6 }. {) g! C
- ;;; Permission to use, copy, modify, and distribute this software
- e; P; c3 j# h5 T - ;;; for any purpose and without fee is hereby granted, provided7 [) J4 e4 C0 e9 ]
- ;;; that the above copyright notice appears in all copies and
/ C/ B! j1 ~) W - ;;; that both that copyright notice and the limited warranty and
5 p6 X9 U( K1 \7 Q4 a; O8 E - ;;; restricted rights notice below appear in all supporting
! E1 @. _$ p$ e - ;;; documentation.$ h# N% f) D, ` {2 c
- ;;;
% p; L5 v; W7 U/ h+ ~6 k2 T8 Q - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.* x8 }* {3 G8 Y! V; ?8 R' m& k
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
0 M3 @* t D- s) R; H* m: z6 H - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC. F1 W3 B8 d+ U" }( ]! c/ `
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
% ~1 k0 b4 T* c2 a O3 u% j+ D" S - ;;; UNINTERRUPTED OR ERROR FREE.
, f( _ h- i! i - ;;;6 A$ U1 A1 {: _
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to% _1 B) |+ Q9 W7 g' ~
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
0 [1 X( o4 ~3 { - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) 8 C) ]: H: o7 q, I9 v& ^
- ;;; (Rights in Technical Data and Computer Software), as applicable.9 K2 R/ a# o2 [
- ;;;% h; `! T( y4 k& H; }% `& B
- ;;;.
9 ]1 X: t [5 p& a - ;;;5 m( D, T$ e; ~4 H& {/ K: c
- ;;; Note:4 y( h. D; v) U) F _# K8 P
- ;;; This file is loaded automatically by AutoCAD every time : p2 o! b: e+ A8 J
- ;;; a drawing is opened. It establishes an autoloader and8 V4 [/ F g l( `$ P
- ;;; other utility functions.& z$ p4 p+ ^1 x0 ~; V
- ;;;3 r. H) M9 m' \' H: H' N
- ;;; Globalization Note:
% s! ]( R! S* c' j x- t* D - ;;; We do not support autoloading applications by the native
( e$ D0 {1 M' i - ;;; language command call (e.g. with the leading underscore- K* X! o a1 ]# P* `8 h$ j) J7 q
- ;;; mechanism.)
' Q/ O# w- ]5 p
8 w# Q& p1 }$ ~# d- T: E$ y- 0 x, ]( b& B g0 D
- ;;;===== Raster Image Support for Clipboard Paste Special =====
. @+ K0 ^ V) U- |* ^9 ^1 g1 G. A - ;;" [+ ]% o, F9 Q) _% _; Q9 I0 Z# r. e
- ;; IMAGEFILE
B& S+ y3 L& d3 P/ }% K% E3 @ - ;;
q! s3 ~- G$ k0 K" o. P; t - ;; Allow the IMAGE command to accept an image file name without
+ \' U, z9 N) H- V - ;; presenting the file dialog, even if filedia is on.
" s+ j9 t. [7 ^& p/ w# r% a6 @$ ] - ;; Example: (imagefile "c:/images/house.bmp")! f% Y/ m0 q2 q3 H
- ;;& X, e1 X" a: k( Q: F, S/ a1 j
- (defun imagefile (filename / filedia-save cmdecho-save)3 H" F2 d1 x6 r; u- |; w
- (setq filedia-save (getvar "FILEDIA"))) d2 y$ T7 g5 B; |. c
- (setq cmdecho-save (getvar "CMDECHO"))- ~; I- U( \. h
- (setvar "FILEDIA" 0)
' D4 ], X- n$ k) r. i" j. n - (setvar "CMDECHO" 0)
$ V. i& }* G0 S4 ~% @ ^2 V4 _ - (command "_.-image" "_attach" filename)6 ] K7 P K/ y/ t( _" ^9 D
- (setvar "FILEDIA" filedia-save)
1 \, E; t" r8 z6 `. G - (setvar "CMDECHO" cmdecho-save)( q# {. y8 p$ z2 t; l# T8 ?+ d
- (princ)
$ _" R7 l- Z% e; Y. S8 f - )0 U" r! W( v$ }" k" `0 Z* V
- - k: T3 I) ^% A8 Y% b) T. a
- (defun c:zx () (command "zoom" ".5x"))
3 t( Q$ e' @/ N4 U6 W# H; u0 a& \ - (defun c:zz () (command "zoom" "p")), g E) t& c/ v/ Q4 r5 ^( V
- (defun c:za () (command "zoom" "a"))+ a" K. E8 [( a
- (defun c:zd () (command "zoom" "d"))/ f" {/ ?0 i4 C- _
- (defun c:ze () (command "zoom" "e"))
) e/ s- f0 O% g1 Z9 |( _ - (defun c:zr () (command "zoom" "" ""))
# R6 B& M1 f! G+ D, K" \. |# L. L - (defun c:vv () (command "ucs" "v"))
) O: d) F8 J" a7 O4 B" c7 [ - (defun c:co () (ssget) (command "copy" "p" "" "m"))
2 Z; m1 S& w, L9 g1 M! G - (defun c:c () (command "circle"))' r6 c1 `- N t* ]
- (defun c:rt () (command "rotate"))
. \% ], ?( H! E - (defun c:3q () (ssget) (command "_rotate3d" "ANGDIR" "value" pause (princ)))! s+ L& {1 P3 E; K/ W$ V! F( Q5 M
- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))
' C1 B; ]4 X1 Q4 [' N6 n - (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))
; b. w- r1 B1 h ~9 x8 g$ _; _ - (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))4 y! Y/ o% P* I5 f. b7 |
- (defun c:r5 () (ssget) (command "rotate" "p" "" pause "5"))
# |5 E6 ~. X/ h' v: J' a( v - (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))
/ F4 |2 t& i5 P r. R1 b - (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
$ k w" v" ?) O9 l5 Y - (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))5 |5 t5 C8 `. h% S) f5 v
- (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))
. w' Q# {: V* L& V - (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))) c: b+ K$ s! c2 O) B
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))
( J' L" f) ]6 Z - (defun c:md () (ssget) (command "mirror" "p" "" pause pause "y"))' S& A5 R1 a; R3 Z7 z7 `
- (defun c:fd () (command "find" "p" "" )(princ))(princ)' t1 V$ |5 w6 G! [
# a* Q1 D/ B8 K9 G- (defun c:romantdim () (command "-style" "ROMANT-DIM" "romant,vnh.shx" "200""1""0""n""n""n"))(princ): A! m% l, v5 q# x# I$ w& k
- (defun c:romantext () (command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)
* w( I) q- k" I' x+ F, A - (defun c:vnhelvthuong () (command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1""0""n""n""n"))(princ)
( [; ^8 ]2 S5 {! j" @ - (defun c:vnhelvhoa () (command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500""1""0""n""n""n"))(princ)' V1 u/ ]/ X) R
- (defun c:truc () (command "-style" "TRUC" "impact" "0""1""0""n""n""n"))" j7 }' E1 V4 L9 A6 w
- (defun c:chu () (command "-style" "VERDANA" "verdana" "200""1""0""n""n"))
# W Q+ S+ q$ f5 f! x - (defun c:cot () (command "-style" "COTES" "verdana" """1""0""n""n"))
: F; ?" h$ o' t, S" R( J% k
& z% M/ u8 K+ Q' r, y- (defun c:an () (command "-style" ".AVANT" ".vnavant" "200""1""0""n""n"))
; z2 _# U# n# R - (defun c:ah () (command "-style" ".AVANTH" ".vnavanth" "200""1""0""n""n"))
$ C0 }+ m' P2 l: q6 V. W - (defun c:ha () (command "-style" ".ARIALH" ".vnarialh" "200""1""0""n""n"))( R2 X, X: a' `" o2 d2 L9 R, M' U
- (defun c:na () (command "-style" ".ARIALNARROWH" ".vnarial narrowh""1200""1""0""n""n"))
! i; \; L a6 | - (defun c:vn () (command "-style" ".VNTIME" ".vntime" "200""1""0""n""n"))
) }6 [0 _# w6 a% s3 | - (defun c:vh () (command "-style" ".VNTIMEH" ".vntimeh" "200""1""0""n""n"))
& N7 w; S8 ~4 @
' |$ \9 Q( C$ c7 M) H a- (defun c:ps () (command "PSOUT" "CorelDraw-import-Photoshop" "W"))(princ);export the current view of a drawing as an EPS file, D$ R' X# o: I0 m
/ s/ ?6 \1 x% g& c, ^/ q- ;free lisp by cadviet,cd2k44
, ^$ d3 y, }5 l0 T" b' R8 j - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=538304 Y: x: @( _6 u& l/ w
- (defun c:FTEXT (/ ent tstyle )5 P7 t( h9 G4 ]$ V: ~
- (command "undo" "be")" A7 B8 W4 N) R0 u6 d
- (setq ent (entsel "\n Pick text :"))
6 \% A0 y, E, p. G0 ? - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
! T# e, a$ r+ L& T - (command "STYLE" TSTYLE "romant.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
9 g& F' ]! l6 [# b5 l( |. ~: ^ - (setvar "TEXTSTYLE" Tstyle)
; m5 V3 [' m3 J - (command "undo" "end")
6 K1 z3 C, F- M$ h# u - )
3 ]4 e& R; i' o$ y L$ ?% v) l' q - ;Cam on cadviet nhieu 27-11-2023 04h15p36s (thanks cadviet)' p3 m9 a) @/ [- t. l
- 8 I# ~" h" M- o2 T, ]$ r
- ;free lisp by cadviet,cd2k44" Y, a4 g4 Z2 ]
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=538303 A3 N& B1 }) }3 f1 c
- (defun c:Fvnh (/ ent tstyle ), H9 z+ ~: Q* M7 B" D9 x
- (command "undo" "be")3 j6 y* m! U7 R) v: a0 b# o
- (setq ent (entsel "\n Pick text :"))
' Z$ T- E3 S; G# x5 h - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))2 e* d/ p2 P4 ^, @* `
- (command "STYLE" TSTYLE "vnhelvh.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
& |8 I6 G' ~" L7 z# i - (setvar "TEXTSTYLE" Tstyle)! o0 e( [" n- u, w. f! J: h. T5 [6 A
- (command "undo" "end")
" V5 z" T( o$ C; j - )
9 y2 P2 K( L; g, A( X# S
4 |, v9 G X' x; m7 c5 x5 h8 I- ;free lisp by cadviet,cd2k44! u- _/ ]. v O. C) K# y
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830 Z6 r, V$ v% T; @. a
- (defun c:Chbg (/ ent tstyle )* b, Q/ M9 P0 D- |7 M2 [: T3 `; U) x
- (command "undo" "be")
( u! j7 I% H9 r% _7 K: y" g - (setq ent (entsel "\n Pick text :"))* p. Y# o" v+ j) c* r7 g
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
7 U2 h; Z" _ I5 D& u - (command "STYLE" TSTYLE "chhbg.shx,vnh.shx" "0" "1" "0" "N" "N" "n")) J% O- _2 |0 x% H; m
- (setvar "TEXTSTYLE" Tstyle)/ p6 M% w) C! H, H
- (command "undo" "end")
G$ W( `/ `' y$ m9 e! L) Y4 }( K - )
' X" ]7 |0 z8 q7 [7 z8 W: o
& T/ e* |8 o9 Y; Y% N5 N" m- ;free lisp by cadviet,cd2k44
% Q- C& b1 {4 x& j - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
; M) e- V9 m, R" L: O$ U R4 U, F - (defun c:Chsm (/ ent tstyle )
( H* W7 d& a# o - (command "undo" "be")
: j2 @& I) C1 z( D& j' i - (setq ent (entsel "\n Pick text :"))
' t9 t9 X/ w" y/ H) X - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
1 Y* k& J; C9 j: ~) m - (command "STYLE" TSTYLE "chhsml.shx,vnh.shx" "0" "1" "0" "N" "N" "n"), w" m$ Q6 X4 c
- (setvar "TEXTSTYLE" Tstyle)( b3 W( P$ ~- @: G) y0 T
- (command "undo" "end")" S/ X: L1 K" b5 \- D* V
- )% D( L; r, \/ a9 B3 V1 ~* j
- 3 Y- @/ `$ p" |
- ;free lisp by cadviet,cd2k44* K) i$ y [+ k
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830 r, j( S. `+ Z: a6 M
- (defun c:Fttf (/ ent tstyle )& ]9 U" L1 C: g" v
- (command "undo" "be"), M6 }! }# O) m0 k$ Q7 ]% N. _1 o# E" {# A
- (setq ent (entsel "\n Pick text :"))' G7 A6 B; |2 p$ H
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
# S7 P& ~+ H2 C; ^$ V - (command "STYLE" TSTYLE "verdana.ttf" "0" "1" "0" "N" "N" "n")2 |& w/ F. d" C3 H5 U: y; ^
- (setvar "TEXTSTYLE" Tstyle)
" O: e4 }8 }: R. l8 H/ I4 c$ b - (command "undo" "end")
' o3 i2 q8 |. J" H- x/ @ - ); E- [/ I* ?, I- P) c* {( F2 g4 o
$ R9 e# k# `" I3 `$ d! x' Y7 w- ;;; ============================================
9 i4 H& o$ J1 b! b! g/ | - ;;;5 \9 v5 t! ]% L, k/ M4 L
- ;;; LISP Creater Tao Duong Dan AUTOCAD2000
2 G. E( P }& q! P/ r4 E - ;;;% N6 @0 O2 V: r4 G
- ;;; ============================================" f' T9 W0 ~' {& v# T
: j! p& z4 a8 n( n1 Y2 ]- ;;; ============================================! E% u3 w/ Y" s! H
- ;;;
* o0 o8 `, N. E% b - ;;; CREATING FROM AUTOCAD20007 }+ _! I! g" L* `
- ;;;
8 O* B1 M* Z/ w( F a3 E8 c - ;;; ============================================# _% q+ C4 g# ?) E7 j% R
- h1 u6 w' n6 d" I, d1 y
- (setvar "INSUNITS"4)
, V# A& {, V# B5 h" f o$ @ - (setvar "ANGBASE"0)
# K/ ?8 q v- R1 T3 j - (setvar "ANGDIR"0)* R! L, Q: D+ g) A
- (setvar "AUNITS"0)2 l0 T. F: l& x# p8 o
- (setvar "AUPREC"8)
& G( v- P4 K0 ~7 | C! I. i - (setvar "LUNITS"2)
, l: t1 g, D, @/ i% z - (setvar "LUPREC"8)
8 T% o' k5 T7 T/ [% m - (setvar "ACADLSPASDOC"1) . c8 |& `9 B8 ]% r; M3 k
- (setvar "pickbox"5)! E7 g9 C4 r+ a( F
- (setvar "blipmode"0)0 G0 Y5 i' J0 W0 n2 O9 s& Z
- (setvar "mirrtext"0)
* A; x" c* s9 l) n) R; }9 U - (setvar "cursorsize"100)& D2 B3 i5 d$ @
- (setvar "ZOOMFACTOR"75)
* S" r9 `% N' U+ U - (setvar "LTSCALE" 10)
9 B& ^$ M1 m: f9 h - (setvar "lwunits"1)
( b9 i6 k2 D N7 s- @ - (setvar "DIMBLK" "Closed")" N' k- W3 r: W' s4 n
- (setvar "DIMGAP"0.0693) r, O6 Z4 R! F) l# h( Q p
- (setvar "DIMASZ"0.20)
) n; F0 ^1 t& O! L( q. i3 ?& K) D0 k( u - (setvar "DIMCEN"0.2)- E/ Q( [! k* @/ l- M( Q- e
- (setvar "DIMDLI"0.1)/ ]1 @; N1 u/ K8 o* @) Z
- (setvar "DIMEXE"0.0693), c9 n- a) z/ t# @/ e
- (setvar "DIMEXO"0.25)
8 r! L3 J3 K. Z3 ]( K - (setvar "DIMDEC"0)2 V7 U9 k" D: L" C
- (setvar "DIMTIX" 1)9 O" e: `. K$ v3 X; t0 X# [. ]' Z4 e) p
- (setvar "DIMTXT" 0.099)2 Z1 w" q6 e! I, i8 c
- (setvar "DIMCLRT" 7) c( l# l# T. m, d& N: }' f, s' q: J
- (setvar "DIMTVP" 1)4 p& _! p# O* D+ o4 s, K" w
- (setvar "DIMJUST" 0)
6 B. J2 O9 k) @, p2 Q! Z+ d5 `2 H - (setvar "DIMTIH" 0)
1 R! u3 e5 x; I1 _! \" h( D - (setvar "DIMTOFL" 1)
q7 ^ X' y0 {. C4 c6 }0 ]4 ]7 K- z - (setvar "DIMSCALE" 1111.1111)
" G! [0 m5 ~4 y1 d0 D. G - A+ a$ v$ H$ f7 R$ Z4 H+ n1 l/ g) h
- 2 r6 b* x; q! g
- " ]6 e: v3 c/ L1 Y
- (defun c:zp () (command "'.zoom" "p"))& R% o2 `0 l) E* j2 \ e0 C
- (defun c:zz () (command "'.zoom" "p"))
0 L! T' n, L3 z" w - (defun c:ze () (command "'.zoom" "e"))' s; M# i' f% q+ C4 y+ Q' G
- (defun c:za () (command "'.zoom" "a"))
- ^0 y7 p; S1 T& E8 G5 @7 ^ - (defun c:zd () (command "'.zoom" "d"))2 }( p; |$ T; m& a; O
- (DEFUN C:ZZZ () (COMMAND "ZOOM" ".25X"))
& x; m9 z, m3 H" y/ K( e W - (DEFUN C:ZX () (COMMAND "ZOOM" "2X"))
4 @; X! E( O, P2 T% N - (defun c:de () (command "ddedit")(princ))
( B7 G- o& K. E/ Q' R( F! W3 M - (defun c:dda () (command "Dimaligned"))
: W/ P" Z' [5 `! G! d: Y7 |. | - (defun c:ddb () (command "Dimabaseline"))
/ \& B& ?5 o' Z- @! z7 O - (defun c:ddc () (command "Dimcontinue"))' x; ?+ y+ Z2 o* O0 ]) K5 d
- (defun c:dde () (command "Dimtedit"))8 g. }4 ^$ Y9 [1 n' |9 y7 G
- (defun c:ddf () (command "Ddattdef"))
3 s( G, L( k3 `1 b8 j) u" F9 B# I( Y - (defun c:ddi () (command "Dimdiameter"))
8 o3 r, x9 X9 M3 |8 j - (defun c:ddl () (command "Dimlinear"))
$ P- U$ t$ v3 ?& `, U - (defun c:ddn () (command "Dimangular"))
8 d% A; D! {" s: `- h5 Z - (defun c:ddo () (command "Dimordinate"))
" F" }" `4 o0 E2 b- a - (defun c:ddr () (command "Dimradius"))3 D. [' Y+ _$ }, g: Q4 l
- (defun c:dds () (command "Dimstyle"))9 c1 f+ H1 ]# N8 [' ]+ A
- 2 e j; Q& x# q
- (defun c:DU () (command "dim1" "up" "select" "exit" pause ))(princ)
( r7 b- H( i/ G2 O" y$ l" E+ A - (defun c:DH () (command "Dim1" "home" "select" "exit" pause))(princ): q W1 e# p( V* d
- (defun c:UU () (command "dim1""update""all"))4 X. c- d; M9 V- i
- (defun c:ded() (command "dim1""tedit"))
" y, P0 `/ ~& {9 V0 l. h% O4 S5 p: @ - (defun c:da () (command "dim1""ali"))
3 c' E$ J& A7 w$ C4 O, | s% m - (defun c:dll() (command "dim1""l"))% ^5 t7 Y R: T) o" a/ U( [
- (defun c:dan() (command "dim1""an"))' t9 w( Y4 m* D% u3 J! C( z
- (defun c:d1 () (command "dim1""ra"))
# E" u! j% |( D/ n3 n - (defun c:n () (command "dim1""new"))
H+ H% I& U8 M" p3 c
; |% s5 g8 c" ]9 T/ Y- (DEFUN C:PE () (COMMAND "PEDIT"))
, h0 B5 w2 |1 u - (DEFUN C:PL () (COMMAND "PLINE"))! P. q9 W) g: v' P$ h
- (defun c:dd () (command "dist")(princ))+ n+ Z& Q7 ^9 M8 m; a1 Z, T
- (defun c:w () (command "pedit" pause "w" "au")(princ))
O# P$ q8 b; x( s Z! ~8 F" J - (defun c:pg () (command "polygon" "polygon"))! x. U v- S, l5 P5 G% k* J
- (defun c:el () (command "ellipse")) O2 e3 @# H4 t
- (defun c:xe () (command "explode"))
3 U& W) V: i- ] - (defun c:eex () (command "extrude"))
- u) g; Z/ T' e4 r( c - (defun c:xg () (command "xline""a"))
8 k9 E' t0 T L9 b - (defun c:xh () (command "xline""h"))
) o! ~9 [ v a* j5 i* D - (defun c:xv () (command "xline""v"))
- m/ O$ W% o: Z" F/ x: x - 6 \3 n( Y, [, e& X8 R9 j
- (defun c:oc () (command "osnap""cen"))+ P+ T* d" F; V. s, r- a
- (defun c:od () (command "osnap""nod"))+ S' C" \1 s3 x$ ]1 r+ W
- (defun c:oe () (command "osnap""end"))
5 x, H1 L) W3 M8 j. P - (defun c:oi () (command "osnap""int"))
( M$ I4 e/ A: u" ?8 E - (defun c:or () (command "osnap""per"))7 t9 Y; W( ]+ S! v/ K
- (defun c:on () (command "osnap""none"))8 c2 B1 J- @/ f3 M6 a
- (defun c:oq () (command "osnap""qua")); z' q5 `& c! }2 Y9 D
- (defun c:om () (command "osnap""mid"))2 f t$ A1 p% e$ X4 p- }
- (defun c:ot () (command "osnap""tan"))* D' j: z' i" [1 ]6 P& u! Y l
- (defun c:oin () (command "osnap""ins"))
% k$ b8 L. g! L7 { q5 |- t( B - (defun c:oa () (command "osnap""nea")) c% ^6 }' F9 l- C6 Q7 q( Q
- (defun c:ol () (command "osnap" "End,Mid,Cen,Node,Nea,Int,Perp,Qua")(princ))% D* z4 X7 ]( ~. ?( ~) f& @# B
- ;(defun c:du () (command "dim1" "up" "s" "pick" "other"))1 x3 c( u0 Q C4 E
- ;(defun c:nn () (command "new" "y" ))$ D9 S/ o! H- b% [
- ' @) a/ A/ Y7 j' F0 D/ q8 c; [
- (defun c:/ () (command "limits"))4 }( ~' v6 D0 z6 ?
- (defun c:`1 () (command "region"))0 ?- z! |+ ^0 c8 o8 L5 C: [0 G8 L
- (defun c:`2 () (command "subtract"))- G- d+ m4 i+ \. P
- (defun c:`3 () (command "union"))
& O* j/ m; y8 _$ @7 d: \ - (defun c:`4 () (command "intersect"))# h0 Z, e) X' D
- (defun c:`c () (command "cal"))5 W$ W/ J a( L- W4 X/ X0 b# }# D
- (defun c:`g () (command "Polygon"))
$ [: ^2 R6 o$ s; _ - # L! v, U; B5 T7 U7 w1 K
- (defun c:lmi() (command "LIMMAX" pause "" "zoom" "all" )(princ))
, o; i0 X" k) R3 ~ - (defun c:drt () (command "DRAWORDERCTL" pause "Integer" "" "" )(princ))
- w+ D; N c& V3 b2 w! ^8 b" e% V9 a) Y - (defun c:ip () (ssget) (command "print,_plot" ))(princ)
5 t7 z9 ~5 g4 g1 ~ - / U% n8 O8 n' {# P, D! U
- (defun c:ddm () (command "ddlmodes" pause))# |) j2 C+ P* s; t5 R
- % U: e0 h* ] V7 F& U+ H
- (defun c:sha () (command "shade" pause)): F3 X( u$ L. o9 u: m
# d" i& l$ T/ n. y. v3 y; j- (defun c:sr1 () (command "surftab1" "p" "" pause))/ A- k3 b( c6 X2 j6 }6 |
- (defun c:sr2 () (command "surftab2" "p" "" pause))3 p) ]% I) {# H. q9 ]1 e2 G
3 d; c7 B' O9 P. b# V6 \/ h- (defun c:ad () (command "audit""y"))
, h' q/ U! K" h& T N1 A% c7 W - (defun c:q () (command "quit"))
- I7 h# I$ p* ?9 a4 N- p N& \3 }3 s6 ?
+ w: ]+ v$ h4 R/ @- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))0 @$ c/ Q' a0 f# O4 c$ N& d: T. y- N2 N
- (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))/ z4 f4 f: r% r3 f/ M
- (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))2 ~& m& C n" t1 ^4 R4 x
- (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))
- ] m" D* ]. I! @/ g+ d/ h% [. z - (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))+ _* K+ Z5 \, |$ T% z
- (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
8 K$ r3 |/ I' f ` - (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))" O! _) ]( L% g/ Z# Q2 T
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90")); C7 C7 K3 W' v6 v! G5 s. C* q6 E
- (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))# Y& x* n- @! ~) k) _
% r- B3 ~! z: y6 R7 z) G8 j. ^- (defun c:u3 () (command "ucs""3"))1 D0 B( X" O8 w; h4 M
- (defun c:ue () (command "ucs""o""end")) P3 p& H7 Y' m/ ~9 }+ E# ~% z0 E
- (defun c:ui () (command "ucs""o""int"))
7 a0 p; e- [& G. o - (defun c:um () (command "ucs""o""mid")), u( M2 r, O6 }9 @+ I; B( t; b
- (defun c:uc () (command "ucs""o""cen"))
0 h! d) R' P2 P' ~ W4 T6 n - (defun c:uq () (command "ucs""o""qua"))
9 n3 x' o2 p* i' o" u ? - (defun c:3s () (command "ucs""3"))
9 G" c( q, c" N/ R( z" ]( I - (defun c:sx () (command "ucs""s"))
9 {$ H! h6 g/ ]1 `9 j: x - (defun c:sf () (command "ucs""o"))
! w8 `$ }) Q( z3 w: g& d - (defun c:sz () (command "ucs""p"))
- d# U% q( }6 b - (defun c:sr () (command "ucs""r"))" G7 @1 R7 C+ t- G
- (defun c:sw () (command "ucs""w"))
& @# k, Y+ x, P - (defun c:fv () (command "ucs""v"))
7 M% Q" {% N. G1 N - (defun c:ux () (command "ucs""x"))3 ]+ S2 ^! M h- s" Z% q
- (defun c:uux () (command "ucs""x""90")); b, }1 H* |* H$ r p6 `9 Y
- (defun c:xxu () (command "ucs""x""-90"))2 T6 ~* W7 m& L6 F8 q' O
- (defun c:uy () (command "ucs""y"))3 |! ]) g$ x4 M9 B; {2 ?( ^5 g, {. O
- (defun c:uuy () (command "ucs""y""90"))3 d, l2 l1 ^2 x C! |; ~7 j$ s
- (defun c:yyu () (command "ucs""y""-90"))
4 z3 a" K* C5 J% F3 {5 S - (defun c:uz () (command "ucs""z"))1 ^1 ]. M4 @7 ~5 i
- (defun c:uuz () (command "ucs""z""90"))
+ P% Z# \2 {3 I, C( m$ L - (defun c:zzu () (command "ucs""z""-90"))7 H* E' o; Y# V6 t4 U/ a- r
- (defun c:uci () (command "ucsicon" "Properties" ))(princ) f4 D7 g* r, _. H( X w
- (defun c:ucm () (command "ucsman" ))(princ)
1 x" m% F- o4 z% q
' [* Q l8 H6 \- (defun c:sa () (command "vpoint""_non""-1,-1,1"))+ I$ ^% I* Q4 m3 I+ [9 ?0 `
- (defun c:sd () (command "vpoint""_non""1,-1,1"))
% `. M" Y/ \; R5 j - (defun c:se () (command "vpoint""_non""1,1,1"))
+ p1 n5 x& P+ p; n ~8 ^# j1 R - (defun c:sq () (command "vpoint""_non""-1,1,1"))
4 I* @8 N! N( R' A2 y1 n - (defun c:vc () (command "plan"""))7 [6 d, ]) c h3 b9 P
- (defun c:vd () (command "dview""all"))
y6 ^; J ^+ }8 J S, | - ) G$ N u" i, R4 G8 m X& Y
- (defun c:TT0 () (command "tilemode""0"))! p0 a. S3 y' W) {0 N. ?- ?+ y
- (defun c:TT1 () (command "tilemode""1"))
$ n7 C! i8 i; D$ l - 1 ]" |8 N. C- V
- (defun c:vt () (command "vpoint""_non""0,0,1"))) B+ _* | P( `! J0 ^) }
- (defun c:vb () (command "vpoint""_non""0,0,-1"))# P0 P0 R2 e8 }4 y8 Y. `4 E
- (defun c:vl () (command "vpoint""_non""-1,0,0"))
1 ^2 b" ~' `2 `0 Q3 N6 Y' {/ E - (defun c:vr () (command "vpoint""_non""1,0,0"))
3 E, g( h; U& x/ k. l0 D - (defun c:vf () (command "vpoint""_non""0,-1,0"))
8 d3 k- i3 f. Q0 v, l - (defun c:vk () (command "vpoint""_non""0,1,0"))
# y2 K) c8 _ l* _ - " K' `( g3 m# v+ T
- (DEFUN C:MM () (COMMAND "MIRROR"))
# q% o, m! F0 C! V4 s - (DEFUN C:MP () (COMMAND "MOVE" "P"))' U5 F$ j8 o/ ~1 \) A7 k
, ]* z; n2 ~0 o ~* q( I- (defun c:mee (/ a)) u1 ?6 Y. c9 z u
- (setq a (ssget))(command "move"a"""end"pause"end"))
6 \ h; ` f, `. \9 |3 t$ Y ? - (defun c:mc (/ a)
6 [; ^5 h- c3 y. e( P7 Y$ Z - (setq a (ssget))(command "move"a"""cen"pause"cen"))
! l0 h% H! b' N - (defun c:cc (/ a). F! j# |6 W& L; u
- (setq a (ssget))(command "copy"a"""m"))! M# r# t; N E5 M3 W
- (defun c:ce (/ a)
7 m' A: |% W& N+ ?) | F - (setq a (ssget))(command "copy"a"""m""end"pause"end"))
* G; u) ?7 }- k/ J( E - (defun c:cn (/ a)
' a( [ m( w5 o+ O+ N - (setq a (ssget))(command "copy"a"""m""cen"pause"cen"))2 T* S5 u' |8 P1 U
- (defun c:tl ()(command "trim""l"""))
6 Z& C- q9 e5 n- }% u4 z! m$ ? - (defun c:tf (/ a)- y, l7 g C% j
- (setq a (ssget))(command "trim"a"""f"))
6 }8 y! Z$ n9 n+ a" x$ \ - (defun c:el ()(command "extend""l"""))
9 \" k& Y' P A9 ^' ~6 | - (defun c:ef (/ a): h0 _0 E. O6 b
- (setq a (ssget))(command "extend"a"""f"))
6 ], ?( \ L$ U - 4 a5 d- j' B- K, {* P
- ! E. J" B: b. z7 X, B* a
- (DEFUN C:110 ()(princ "\nChon doi tuong can offset ra 110.......") (COMMAND "offset" "110"))5 e' k/ z: k5 K, ~! ?
- (DEFUN C:220 ()(princ "\nChon doi tuong can offset ra 220.......")(COMMAND "offset" "220"))
1 a! T( o" o5 E2 g* V# w - (DEFUN C:330 ()(princ "\nChon doi tuong can offset ra 330.......")(COMMAND "offset" "330"))6 p' v/ d: s Z' }- Z# o( R
- (DEFUN C:400 ()(princ "\nChon doi tuong can offset ra 400.......")(COMMAND "offset" "400"))
! R3 n1 P" p! D' ~6 ?3 C - (DEFUN C:55 ()(princ "\nChon doi tuong can offset ra 55.......") (COMMAND "offset" "55")), s9 m& s/ h! ^ u: M
- (DEFUN C:600 ()(princ "\nChon doi tuong can offset ra 600.......") (COMMAND "offset" "600"))
! L9 n1 S$ }% O% q: `. v - (DEFUN C:700 ()(princ "\nChon doi tuong can offset ra 700.......") (COMMAND "offset" "700"))# O) @+ w7 e& Y
- (DEFUN C:800 ()(princ "\nChon doi tuong can offset ra 800.......") (COMMAND "offset" "800"))
0 u9 I1 P* L+ ~7 Z. n - (DEFUN C:900 ()(princ "\nChon doi tuong can offset ra 900.......") (COMMAND "offset" "900"))
9 t2 q, s* M9 P - (DEFUN C:1200 ()(princ "\nChon doi tuong can offset ra 1200.......") (COMMAND "offset" "1200"))
% Y$ D+ a! Z2 W2 q) k - (DEFUN C:1500 ()(princ "\nChon doi tuong can offset ra 1500.......") (COMMAND "offset" "1500"))0 R9 y. S ?- ^2 o
- (DEFUN C:1800 ()(princ "\nChon doi tuong can offset ra 1800.......") (COMMAND "offset" "1800"))4 H' K* S( I0 s; s5 P
- (DEFUN C:2400 ()(princ "\nChon doi tuong can offset ra 2400.......") (COMMAND "offset" "2400"))
. l( Z/ C0 P" Z- {7 S - (DEFUN C:3000 ()(princ "\nChon doi tuong can offset ra 3000.......") (COMMAND "offset" "3000"))
& q( p8 M/ @6 [1 M - (DEFUN C:3600 ()(princ "\nChon doi tuong can offset ra 3600.......") (COMMAND "offset" "3600"))7 [. b9 N& S5 v# a- E% r z
- (DEFUN C:4200 ()(princ "\nChon doi tuong can offset ra 4200.......") (COMMAND "offset" "4200"))
. I3 T: Y2 q% J+ w& L" m - (DEFUN C:5000 ()(princ "\nChon doi tuong can offset ra 5000.......") (COMMAND "offset" "5000"))
5 |) q3 h( ]9 d" D - ) q% }8 q! ~4 E8 m4 V6 S n9 j' C# d
- (defun c:mla () (command "-mledit""av"))
9 n; v0 z) M% ~7 X- C+ v3 T" | - (defun c:mlc () (command "-mledit""mc"))* V- P% ^% j0 ~) X- I) @ ]1 d Y
- (defun c:mld () (command "-mledit""dv"))
* J+ n+ F! m9 Q1 d } - (defun c:mle () (command "mline""end"pause"end"))
0 ]3 R: Y0 G: G* q( T" s$ r - (defun c:mli () (command "-mledit""ca""int"pause"int")); o$ T/ G: M8 l) Y$ E, p
- (defun c:mlj () (command "-mledit""cj"))
, S- A& y. T# c" U) Q. J" I - (defun c:mlt () (command "-mledit""mt"))
! K: c% _* U }1 _; y8 B { - (defun c:mlk () (command "-mledit""ca""end"pause"end"))
5 s+ R! l* ]$ p7 _( K8 G - (defun c:mlw () (command "-mledit""wa")): h7 m" H' k/ L+ @0 V; |
4 `+ }0 H4 i/ K- (DEFUN C:DCA () (COMMAND "DVIEW" "all" "" "CA")); o) ^5 P- j2 H' y
- (DEFUN C:DPA () (COMMAND "DVIEW" "all" "" "PA"))2 n9 T) h1 P7 u! w
- (DEFUN C:DPO () (COMMAND "DVIEW" "all" "" "PO"))
0 N+ v* L) Q+ w; I( k: f3 e' t; c - (DEFUN C:DDD () (COMMAND "DVIEW" "all" "" "D"))8 p2 l# y& D8 r2 J$ j- e8 V6 g4 x: S
- (DEFUN C:DZ () (COMMAND "DVIEW" "all" "" "Z"))
7 K" G' E4 \% q6 o! I, [. w
5 V. i! c% I0 T- (defun c:p0 () (command "pline""""w""0""0"))) f& g8 M( N) u- A) e
- (defun c:ot () (command "offset""t"))$ f, i8 z: `( U+ |3 A0 e
- (defun c:t () (command "mtext"pause"j""bl""h"pause))
2 A! v1 j Q2 l/ T5 ^ - (defun c:uo () (command "ucs""ob"pause))
% E$ d2 P1 k4 m0 k - (defun c:f0 () (command "fillet""r""0"))- d$ D3 Y( i, N# g( p
- (defun c:fr () (command "fillet""r"))
: S8 r& ~; L% c3 K/ X0 U% ?& z; S - 9 c$ X) i- g) d0 \5 _9 D+ ?5 b* l) r
- ;CHAMFER) |9 G0 a5 i: `. l* a2 |5 ~. v7 ?
- (defun c:cf () (command "chamfer"))
/ |% A, s5 s. i& x - (defun c:cfd () (command "chamfer" "d"))
2 M% C! h. W. h9 R - (defun c:cf0 () (command "chamfer" "d" "0" ""))' C# W6 |% S2 G! m* b" y, b# S
- 8 p- a% R' S5 k- m- d
- ;FILLET
5 S4 [6 \9 y" T7 ^& D2 m0 g9 B: r - (defun c:f () (command "fillet"))
* N" h' K f/ D: G, o1 r" f - (defun c:fr () (command "fillet" "r")), H: q2 a, o! u$ f2 n. a
- (defun c:f0 () (command "fillet" "r" "0"))
1 c. e7 b" |' B, K1 a1 u - ! H/ V& q: d0 d1 c+ M( r$ i0 L. E p
- (defun c:OO () (command "oops"))
) g0 R( s9 m% \# e6 D - (defun c:dln () (command "dimlinear"))
, ]! p% N. n2 k0 C0 U# x" L - (defun c:dan () (command "dimaligned")); ^! ?5 X3 Y, T3 ]
- (defun c:ddc () (command "dimcontinue"))2 R5 Y* G' m) A- S
8 ]: T$ w4 H4 q" C' _2 Y- (defun c:sc () (command "scale" "auto"))8 n# ~+ k' [3 g) E, @) t- F
- (DEFUN C:XO () (COMMAND "snapang"))" H8 O/ {! F3 F9 K
- (defun c:cc (/ a). [0 X8 M3 \+ Z' q- T! _
- (setq a (ssget))(command "copy"a"""m"))! N6 R! m1 Z( @% e) n5 S
5 g9 j3 {: k* E) u, Z$ c a" D1 j) e- (defun c:PJ (/ a)" Y n0 D' i+ Y7 _: O+ o6 w
- (setq a (ssget))(command "pedit"a"""j""all""y"))8 z' N/ |6 d! [# l) y, l6 ^4 U
- (defun c:JJ (/ a)
2 m7 g% k X( q: g" a1 H, S9 f - (setq a (ssget))(command "pedit"a"""j""y"))9 m/ j/ ~; w; K! e
- (defun c:TN (/ a)
" C3 E" B) P) [" H$ Y. j H' [) V - (setq a (ssget))(command "change"a"""p""T"))6 y) w% I3 a% l- J9 o
- 1 ~2 [: p4 x' D$ u ]3 y1 N( ~4 ]
- # B( m y% B4 N7 X( H
- ;=======================Tran Ngoc Thang - Tu nam 2000 - Hoc nam cuoi KTS . DHXD=========================
5 M* [' N7 A. Z+ H( a4 o7 X! M - # B$ ^( C7 f& \' R5 r6 z/ @
- (defun C:IB ()(setvar"cmdecho"1)' d' P. P6 K {& n; N2 R3 F' S
- (setq pt(cadr(entsel"\nSelect Block:")))
" c& d$ P& b( M+ f" X0 u6 t0 X* K - (setq e1(ssget pt)) $ d% X, \! j' ]3 S- t- V
- (setq e2 (entget (ssname e1 0))) @! [5 z7 J2 F! L1 p
- (setq blname (cdr(assoc 2 e2)))
0 P3 q/ \7 x. s/ m& G9 I. I - (setq oer *error* *error* err2)(command ".insert" blname))' b/ C/ \1 M0 s. t' ^) k
; i( [: s4 E" @6 I0 D; X- t- (defun c:II ()
; q$ B! o+ ~9 \7 | - (setvar "cmdecho" 0)
, M( ~' o. E+ m7 `" R - (setq olderr *error* *error* myerror)1 n3 [3 |% i* F3 y' f
- (prompt "\nSelect objects: ")) k8 i# v G) T* G! j
- (command "select" "au" pause)
2 T' |2 s D) _* C3 S - (setq sstxt (ssget "p")
; L- w4 I! q3 Z: _7 N/ u - sslen (sslength sstxt)$ N* I7 i$ f! n# M, Y" ~. N/ X$ M0 Q
- ctr 0' W) ~6 @4 p1 I6 q2 r/ d
- )6 j M) O) Y8 q. S
- (command ".undo" "mark")
, j7 X) B* q/ o$ X - (while (< ctr sslen)2 P' w$ X7 F* ]8 T V1 i' r. v, b+ \
- (setq listxt (entget (ssname sstxt ctr))1 [% P7 u7 R. O @7 c7 C6 s8 ~
- txttxt (cdr (assoc 1 listxt))7 D% [9 \+ w* q0 V
- enttxt (cdr (assoc 0 listxt))
3 p, c1 P4 X( C' y& a* f+ a - )
. C" k! Q( V% M* {2 Z - (if (= enttxt "TEXT")
7 e0 h/ b6 w! J* }# h - (progn
% t0 W# s1 \; S$ i - (setq testxt (substr txttxt 1 3))
5 y: [( r o3 I. J7 U3 M4 | - (if (or (= testxt "%%C") (= testxt "%%C"))# v* Z( d) r# X& W0 ?7 f, c. k
- (setq newtxt (substr txttxt 4))& }, |6 C5 A+ r5 t7 J
- (setq newtxt (strcat "%%C" txttxt))
( I# y7 Y0 [) D+ Q8 x - )) n0 J9 [* i6 A1 q" _/ ?
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
( H, O% X" @+ F% T4 p0 u7 [! A% t - (entmod listxt)+ D1 x* y/ d. Q
- )
& z6 O8 g" S( \6 G; P+ P! I - )2 D& c+ M# G B6 {$ h2 B5 ]
- (setq ctr (1+ ctr))
! A2 ~+ c; ^/ h4 x' U; `3 u. G2 n - )2 e% b8 P( q3 u- w+ x" e$ j' E
- (setq *error* olderr)
6 h, o/ u8 a- F" C - (setvar "cmdecho" 1)- |* b) d* B. w) F8 \: |, i) i) I
- (princ)
. X0 ~9 ~. x& n: A/ Z6 P& P - )
. Y( A, X5 P' r: }) w Q9 { - ; u6 Q }- ~& v, g6 b8 a; M# F. f3 p
- (defun c:DG ()
" I, n5 l3 ^1 K( y1 _9 W - (setvar "cmdecho" 0)
+ H% @; w0 W5 _% n" M - (setq olderr *error* *error* myerror)
- M" N- w8 Z/ P$ `4 P - (prompt "\nSelect objects: ")
" E" }. r' k& B1 {- k6 n; }5 `2 L - (command "select" "au" pause)
5 a% p1 ]# d1 t7 T p7 K - (setq sstxt (ssget "p")
) N s9 B% Q* P6 F - sslen (sslength sstxt)
8 i& V, f: W" J9 R- q6 } - ctr 0) s/ s5 l' X- v# U4 g# K9 m
- )+ A% z5 V$ i: i7 I! n
- (command ".undo" "mark")$ C! K% W* N) M& u: N j+ b" t
- (while (< ctr sslen)" b6 H+ s) q$ |* `6 C* R
- (setq listxt (entget (ssname sstxt ctr))
& Q6 A( |9 T( ^# ` - txttxt (cdr (assoc 1 listxt))
1 p1 m8 D6 I5 m* s" Z7 ~, f - enttxt (cdr (assoc 0 listxt))2 ~6 v; `3 e& L; O' L
- )
, L) ?, k$ \* x; J9 y - (if (= enttxt "TEXT")
$ o! J% K$ w- L! D* W; Q% s7 U - (progn4 V4 y b: o3 E1 L, M4 h
- (setq testxt (substr txttxt 1 3))
, p1 t8 M1 q# l7 v - (if (or (= testxt "%%d") (= testxt "%%d"))+ X! C& X7 ^1 K' L; s
- (setq newtxt (substr txttxt 4))
4 K6 h3 I6 L( F9 k' p - (setq newtxt (strcat txttxt "%%dC" )): S6 M: L( p# z0 ]
- )
' M3 E- |8 x! a$ d' ~2 w. @$ o - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
9 q! o" U$ C; W" i5 r: ~# ~ - (entmod listxt)1 k0 [) U% \& n. \
- )
3 o2 q- _ w3 W1 a' m1 P - )
# X M3 R- l i _8 W( e - (setq ctr (1+ ctr))5 v5 a4 I/ n B
- )
2 ^; ?8 M; o+ w# W: r1 b+ R: y - (setq *error* olderr)
% v' W7 h& i% ~( n - (setvar "cmdecho" 1)
1 {' I" t: q3 n4 C - (princ)# D3 A, A* K: b" Z; f$ q, [7 M
- )6 }+ W' |5 e2 p# z+ T; |
- # K% D+ \+ i5 `8 {. V* O$ l$ ^! n
- (defun c:PI ()
* u5 G$ j: D, Y+ T0 G - (setvar "cmdecho" 0)1 d* d" h- k; z6 S/ m: m
- (setq olderr *error* *error* myerror)' Y: I" ~0 T* s) K
- (prompt "\nSelect objects: ")
5 F6 S* a' N( K0 R3 C; _ - (command "select" "au" pause), t7 o$ j1 r1 F) q6 c' N
- (setq sstxt (ssget "p")2 ^; y O% O: S7 f" c4 u8 Y1 R
- sslen (sslength sstxt)
1 O& |7 Z" N1 L- d. d5 i" S q5 q - ctr 0
$ c* ^* G- T' E( i& g. Z9 J$ z - )8 ?: k% I6 N) _- ~7 X( j
- (command ".undo" "mark") p- o, V/ f# _; M& S
- (while (< ctr sslen)% D% C/ H( G' m
- (setq listxt (entget (ssname sstxt ctr))! y0 E8 y9 G: X: u4 m$ w
- txttxt (cdr (assoc 1 listxt))8 \6 P1 J7 N0 m1 Q. F( r
- enttxt (cdr (assoc 0 listxt))
# S& Y% y3 A" p - )
, G; b3 D) P( {* h% j - (if (= enttxt "TEXT")! y; S1 g& ?- b- r- ~
- (progn
9 b: D8 x& X! j5 ` - (setq testxt (substr txttxt 1 3))
$ d1 O% v1 V1 E: ?6 m6 Z1 U) s* Y - (if (or (= testxt "%%p") (= testxt "%%p"))/ m3 A, ^) v, w9 o% D
- (setq newtxt (substr txttxt 4))- x1 F9 _2 t& s8 e. O8 w
- (setq newtxt (strcat "%%p" txttxt))$ H0 c8 n# ~, o: G" {5 Y
- )' w8 m0 E( M6 l$ x3 Y
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt)); o' i _$ I3 l# |+ u3 |# C. s* A
- (entmod listxt)' G6 i) c8 p3 D9 P, ?
- )3 K4 S4 r1 d2 @: U0 D
- )" b+ H1 C/ x; B
- (setq ctr (1+ ctr))& t; J; |# H4 S% [( N3 J% H i
- )
; j3 X9 x2 M4 ^ j3 M2 c - (setq *error* olderr)8 c6 S% h6 H c: q! d G( {
- (setvar "cmdecho" 1)4 D. ]- A( v: \* ]; I2 ~; W2 K& K
- (princ)
3 A) \! @% q" {+ I - )' o8 O' n, v# u0 n) s. L+ C
- 1 S3 V$ p. C' j
- (Defun c:CB (/ a)) N" P7 q! D4 v$ j
- (setq olderr *error* *error* myerror)
7 q& G! n/ ]# W3 |2 o - (setq ocmd (getvar "cmdecho"))
' ]4 D2 f+ [! f0 K - (setq oblp (getvar "blipmode")): o8 M B: @- C4 _0 B
- (setvar "cmdecho" 0)
4 D* z! A% u! k - (setq a (ssget))
0 l2 V0 D4 P8 B4 [% l - (command "CHPROP" a "" "C" "bylayer" "")% }9 ?# [. r4 ^& g# q
- (setvar "cmdecho" ocmd)' p9 K+ F u+ T3 c* _
- (setvar "blipmode" oblp)3 k2 D5 R8 u( a# ~
- (setq *error* olderr)) f' G3 t7 u) j6 Z! q R
- (princ)
" P9 d* t9 E3 B% G - )
: {6 i( |) ~8 ?+ v# e2 J& h - 9 ] v/ A' }- [# |$ a
- (defun c:LCC (/ co43 obj23 la23)
8 P1 [$ V3 i, v - (setvar "cmdecho" 0). |& k# `- |0 H8 `( J$ q
- (setq co43 (getstring "\nNew color : "))4 k/ L, a4 |2 B# P
- (setq obj23 (car (entsel "\nPick object on desired layer: ")))+ n4 Y" W6 @% N0 \ n
- (if obj23 (progn
. f; u+ |+ `4 D7 G# ^ - (setq obj23 (entget obj23))6 G+ Q" ~ R& G, t0 t: A5 {* q
- (setq la23 (cdr (assoc 8 obj23)))
; ?. J8 A; A* ]# o/ H - (command "layer" "c" co43 la23 ""): X6 @* O& y- P6 G
- )
$ g2 j6 ]- t) A* l$ A0 P7 m3 F* X - )
* Y! Q/ X7 |4 U9 T - (prompt (strcat "\nLayer has changed..." la23))
# w; r& Y) s$ ^* A4 d8 K - (setvar "cmdecho" 1)
9 h0 J3 w5 e d+ M7 y3 | - (princ)0 m$ d4 q4 s9 Y- L4 S7 R8 o! ?/ [
- )
) T3 t% P% H6 f# S/ N
' Y, x( _9 S* P) D: u- (Defun c:RP (/ a)
2 m) n% V- J7 O8 _' ^4 u: c* g* g% S - (setq olderr *error* *error* myerror)
* D1 k% S# e- u* m" f) ] - (setq ocmd (getvar "cmdecho"))
6 C+ \! \, o6 w) s - (setq oblp (getvar "blipmode"))$ S; g% O8 g/ J8 a- s
- (setvar "cmdecho" 0)
& p& P& M( g9 y - (prompt (strcat "\nUSE: Delete object(s) belonging to"( A( [# i. m7 F }; A0 U, U
- " the layer of the entity picked...!"))
7 W Z y" f/ p5 d! J+ O - (setq a (entsel "\nPick the entity with the desired layer to delete: ")). j# p, h. H0 T& K5 v% S. x
- (if (/= a nil)
; @0 C0 G8 F; f% l - (progn (setq a (cdr (assoc 8 (entget (car a )))))
" K @' t% C1 ?6 T - (command "Erase" (ssget "x" (cons (cons 8 (eval a)) tempword)) ""))
% u0 _! @. }2 Y! B# u - (prompt "\nNo entity selected!"))! }6 |$ {2 ^8 a, ]4 l6 Z: m
- (setvar "cmdecho" ocmd)
" l8 J4 W7 p8 ]' W5 q+ @ - (setvar "blipmode" oblp), t) \6 R9 u# c4 F! i
- (setq *error* olderr) [ _8 e9 i5 }% E( {$ c
- (princ)) T* U, b/ B% U0 ^, {& L- e
- )
' ? @/ u) b# }! l7 Y, _ - 0 E2 i# Z3 Z6 w3 b* q
- (DEFUN C:WL(/ SSET NET SSL M)0 s4 {( f% T3 F" p$ k% c
- (PRINC "\nSelect lines :"). o r5 a0 h: N/ e
- (SETQ SSET (SSGET))0 Z: z6 r5 R- l: p( `, I [
- (IF (/= NIL SSET) (PROGN
, w; n( a- c2 c - (SETQ SSL (SSLENGTH SSET))( ]! }) w& Q$ r! `5 x
- (INITGET 4)
a/ G. B: A7 D" N$ |* m* G - (SETQ NET (GETREAL "New width : "))
$ j$ @, u) t5 p - (IF (/= NIL NET)
( }- @+ X, [/ i0 Y - (WHILE (> SSL 0), d! z2 }2 c) i; q$ J. _0 q
- (SETQ M (SSNAME SSET (SETQ SSL (- SSL 1)) )) s5 U, H+ Y* V7 l/ q8 [; P: i& [# a
- (IF (= (CDR (ASSOC '0 (ENTGET M))) "LINE")
& o% i5 J( `5 y3 _/ T/ p - (COMMAND "PEDIT" M "Y" "W" NET "") . E6 H' f0 t+ b$ ]
- ) ( z' ~7 A3 n, A1 O% F2 m% Q
- ) , c o6 O8 h- ]3 U
- )))+ }& s1 M" n$ P3 L, m& i4 C
- (PRINC)
7 U1 I1 R- h2 A- }6 }' ~ - ), h/ x8 D, R7 \& V7 ~
9 i: g1 ?" W; H9 {2 Y- (defun C:MML ()* m& K0 ], p7 n
- (princ "\nSelect objects to move to another Layer.")! S( Z: k. H9 b3 B
- (setq ss (ssget))* R# B7 r1 `8 h( K) ]0 W
- (SETQ UL1(GETSTRING "\nLayer to move entities to : "))
/ V: y, Z" i: Y - (setq counter 0)5 f6 [) ?# C4 f9 B# D
- (prompt "Moving to layer.....")(princ ul1)
. v2 E( t7 w$ g9 J/ h! P- g - (setq e (ssname ss counter))
+ ]9 w: G, S' y/ p4 q - (setq l (cdr (assoc 8 (entget e))))
( ^0 }6 t: w4 e; Y - (setq S (ssget "X" (list (cons 8 l))))
0 e/ L# V( Z! g. o; M0 ^) p& T - (command "CHANGE" ss "" "P" "LA" UL1 "")
& o( a/ `+ n" a/ _* }( | - (setq counter (+ counter 1))
. {% {. e' b3 ?8 B7 u& T - (princ)7 X: `/ k0 ~6 u6 A8 w6 p+ G
- )
- ~6 x/ V, W7 x+ Z" Q+ B& v* m; d
" J1 B# D/ u+ ]! R3 m- ;;; ================================ GHI CHU ============================$ r2 K* ~5 J& c6 y0 h* s
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
" z- s( q3 T8 R: N+ g6 \ t - ;;; =======================Thuong Dung Font Romant.vnh===================/ Y% S4 z8 B3 W
- ! o! o- W4 X3 c8 W! g( a
- (defun c:RS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)3 q! t6 \* ~8 c' i
- (setq oer *error* *error* err2)
3 Z v S# D! H ]8 j$ W - (PROMPT "\n(UNICODE-Verdana)(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. (M)aster Bedroom. ") v7 @2 C9 I6 r4 h, H
- (SETQ Cpt(GETSTRING "\n (ROMANT-vnh)(DD).(SS).(LL).(CC).(OW).(KK).(BB).(MM). (UNKNOWN-font)(oD).(oS).(oL).(oC).(oww).(oK).(oB).(oM)."))
+ s! b! I; X/ @* e1 ] - (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nha` Bê´p"))3 J9 U5 m, p! l- [
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Pho`ng Vê? Sinh"))
; V9 O- N' ^3 P* B( H - (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Pho`ng Ho?p"))
9 m. X# s- D8 P4 a: C) c - (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Pho`ng La`m Viê?c"))! x; R# r* F4 r' _2 U0 N5 e
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Pho`ng Ngu?"))# Z4 w/ `" P) p: `0 ^
- (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Pho`ng Bê´p + An"))
' |4 S! i* x5 v+ W$ m - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nha` Kho"))3 w) C* [ k" W% `; n; {: z, h
- (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Pho`ng Ðê? Ðô`"))7 c5 i. z: z! t4 W! m! o1 `/ h# a2 [
( H6 I/ a5 Q- q* [4 n$ A- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))
- K( S3 q7 a5 H - (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))
2 k) e/ W! x0 H' o2 p - (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))
a. V$ Q/ E$ N/ `5 H - (IF(OR(= cpt "OW")(= cpt "ow"))(SETQ CPT ' "Phßng Lµm ViÖc"))
6 q% E8 Q; z* S% R+ v7 B9 W* s - (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))
2 [9 l6 Q: X, @& Z3 q - (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))) }! k- l" z U, i- X. X
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))
' s. h" y2 Q1 |% e! y' ^ - (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
: W5 ]6 Q+ C: y2 r u -
2 Y; O% Z5 N* ?/ ]) ?4 ]8 } - (IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP"))) N* @2 T( {9 f2 ?3 q2 \
- (IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM"))& X. c5 n3 ?9 q6 f
- (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP"))
, U( O5 k$ n3 ~! D2 }* y' A - (IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC"))0 D% ]. Q* p) [8 S5 ~8 V
- (IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R"))
7 [) h) J. Z: \" a+ p, _3 ]* Z1 ?2 V - (IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))
: X* N0 @1 L3 ?8 X - (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO")): `8 k3 a4 v; ^! B! J+ E
- (IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))
8 e I4 B6 L h - (setq pta (getpoint
2 I8 E5 f8 M$ W: z: v ^( i - "\nPick first corner. : "))! I- `3 X# B. _! m
- (setq ptb (getcorner pta
. z* F4 t# J5 y6 h/ z - "\nPick second corner. : "))
$ j9 T0 O- w+ l! |% ?% b3 d - (setq ptc (list (car ptb)(cadr pta)))! z; h" w, o0 a I
- (setq ptd (list (car pta)(cadr ptb)))0 I" N' `. u4 J8 p, O F# d
- (setq ang (angle pta ptb))7 a2 t7 H& V/ W
- (setq d1 (/(distance pta ptb) 2))
) {5 v4 w& o* M | - (setq cp (polar pta (- ang (dtr 0)) d1))
" x t5 ?( a' E - (setq X (distance pta ptc))9 x# L) m+ p$ B, P
- (setq Y (distance pta ptd))3 k+ u3 m! @* W3 `* A
- (setq X1 (rtos x 2 1))
/ S: z1 ]# M; _- y* B; m - (setq Y1 (rtos y 2 1))7 L" b1 |- y) d8 q6 i
- (setq rmsz (strcat "(" X1 " x " Y1 ")"))! V1 _+ t0 t2 N8 r, I/ y9 ^" `; O' J0 v
- (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))
. g6 w ]% R5 K4 [ - (defun dtr (angg)
1 L, \, }4 r: A4 \/ Q - (* pi (/ angg 180.0))): b& Q! ~3 z! j* O5 y
4 H+ @* W6 N" G3 u1 e7 [- (defun c:WS (/ pta ptb rmsz pl1)" h( o) C# f4 i ^8 l) l9 u! N
- (setq oer *error* *error* err2), }. Y" Z& Q/ E, O6 |) ^
- (PROMPT "\n (RomanT.TXT)floorp(L)an.(E)levation.(S)ection.(M)planFoundation.(C)Found.(K).(P).")
( K. b- l% G" u - (SETQ Cpt(GETSTRING "\n (VnHELVH.Vnh)(LL)floorplan.(EE)elevation.(SS)section.(BM)planFoundation.(CM)foundation.(KC)Structure.(PP)perspective."))3 A6 L: d( w Q1 K! ~6 l# Z3 N
- - r1 `3 n" c, E+ N4 L( d: w
- (IF(OR(= Cpt "LL")(= cpt "ll"))(SETQ CPT ' "MÆt B»ng TÇng 1 : TØ LÖ - 1:100"))
4 k* b+ d o1 S) S' v# g) T5 b - (IF(OR(= cpt "EE")(= cpt "ee"))(SETQ CPT ' "MÆt §øng Trôc ?-? : TØ LÖ - 1:100"))
% q; g' R K1 F1 N; F - (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "MÆt C¾t A-A : TØ LÖ - 1:100"))
) n8 g l- A, B! W$ L3 s& y - (IF(OR(= cpt "BM")(= cpt "bm"))(SETQ CPT ' "MÆt B»ng Mãng : TØ LÖ - 1 : 100"))
9 s! O$ u$ _) Q+ h8 h5 p - (IF(OR(= cpt "CM")(= cpt "cm"))(SETQ CPT ' "MÆt C¾t Mãng : TØ LÖ - 1 : 100"))
, a8 z# ~0 W/ d7 A. | - (IF(OR(= cpt "KC")(= cpt "kc"))(SETQ CPT ' "KÕt CÊu Khung Däc Nhµ : TØ LÖ - 1 : 100"))9 A4 b, \- G) K) }( X
- (IF(OR(= cpt "PP")(= cpt "pp"))(SETQ CPT ' "Phèi C¶nh Mét Gãc Nh×n"))1 Z4 Z, K4 H0 K* d. \: ?5 S
4 [- h: o0 d- Y# M- (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"))9 J) h7 |2 ~5 p8 j4 y$ N4 u( l
- (IF(OR(= cpt "E")(= cpt "e"))(SETQ CPT '"MA/W/JT /D/}/SNG TRU/JC ?-? : TI/R LE/M/J - 1:100"))
@3 `+ F! D' [ e7 ~ - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT '"MA/W/JT CA/W/ST A-A TI/R : LE/M/J - 1:100"))' ]' H) X3 L3 k7 Y5 S, a: I) p
- (IF(OR(= Cpt "M")(= cpt "m"))(SETQ CPT '"MA/W/JT BA/W/FNG MO/SNG : TI/R LE/M/J - 1:100"))) K x* \8 L8 V7 \6 O. D
- (IF(OR(= Cpt "C")(= cpt "c"))(SETQ CPT '"MA/W/JT CA/W/ST MO/SNG : TI/R LE/M/J - 1:100"))
+ D1 ]7 F$ r& j+ u- h - (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"))4 I; p1 B! D; e- ? G9 `1 o/ G
- (IF(OR(= cpt "P")(= cpt "p"))(SETQ CPT '"PHO/M/SI CA/R/NH MO/M/JT GO/SC NHI/FN"))) h. e, A9 c+ @$ G: q! v
- (setq pta (getpoint. _" x5 B7 ?0 d# j+ x; y+ |" e6 L- W
- "\nPick first corner. : "))5 B+ q1 n/ G4 q8 ^9 Z
- (setq ptb (getcorner pta5 d! g: h6 H9 w0 O% [5 e* i7 h @
- "\nPick second corner. : "))% l5 N5 f( `; R, Q
- (setq ptc (list (car ptb)(cadr pta)))
$ L. `3 V4 y1 v3 w, u - (setq ptd (list (car pta)(cadr ptb)))
$ Y* p6 ?( o5 ]& f" l, S2 h8 i1 r - (setq ang (angle pta ptb))
% X: ~& r' ?* v/ ` - (setq d1 (/(distance pta ptb) 2))
T6 b5 z o; n; r6 M - (setq cp (polar pta (- ang (dtr 0)) d1))
; m1 o: B8 J/ [8 U, r - (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))& \6 t' t: Y. D+ g, A+ ]: c- C
- (defun dtr (angg)6 z) C; Y$ V0 [% T. u
- (* pi (/ angg 180.0)))) F. P* U9 X! L- U( @
3 _& }/ ^9 Q, m! T! M* R% `1 K8 Z- ;;; ================================ GHI CHU ============================* |4 R$ n5 l9 j9 A# F g
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========8 @- @5 m/ Y( |9 ` _
- ;;; =======================Thuong Dung Font Romant.vnh===================5 P$ H6 c h5 x8 a
- 8 X( H1 T' n7 @! K7 v3 z
- (defun c:RRS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)% d$ o0 D( _7 {) e5 h
- (setq oer *error* *error* err2)/ ^& i2 M6 a$ }. }+ D3 B
- (PROMPT "\n(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. ")" `' g6 h) A# S
- (SETQ Cpt(GETSTRING "\n(M)aster Bedroom. (DD). (SS). (LL). (CC). (OO). (KK). (BB). (MM). "))
) P2 W! S& s0 \4 K( r; ~/ \ - (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhà B?p"))
* m2 u b9 `% \( b$ X7 t - (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phòng T?m"))
5 d( T q' ]& n, r - (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Nhà H?p"))$ }# {5 A8 Z I6 y' u. i0 B/ g
- (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phòng Làm Vi?c"))( S# H9 d) Y) X( k9 B7 P+ b
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phòng Ng?"))1 `- X7 `$ u8 u0 T3 ]1 |, w( k' J
- (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phòng B?p-An"))" K" I- r* j3 X- G$ x2 I |
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhà Kho"))& w3 p2 C ^! r% x m5 t: M" `
- (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phòng d? Ð?"))
. _! J+ f& o9 I1 S' q+ X - (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))' ^& x: g$ ~# k S
- (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))9 h8 h! `5 L0 g4 n+ l6 t& k
- (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))
0 C( h# h. a$ J2 P* y, I - (IF(OR(= cpt "OO")(= cpt "oo"))(SETQ CPT ' "Phßng Lµm ViÖc"))& b: u( L; V' g$ S5 b# H
- (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))
" |* i3 [+ I$ W0 z6 T - (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))& s1 Z) U- E+ u" d4 {# l! L1 m
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))' e& j9 H# a8 ]
- (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
5 Y1 Q. L; j" {8 p' Q/ Q2 f/ _' T - (setq pta (getpoint* {4 e! v! I& P/ U2 n8 I0 Z% L
- "\nPick first corner. : "))
9 E7 o/ v) c* j. K5 j& t2 z& A5 F; R - (setq ptb (getcorner pta
+ ]4 l4 i" S* N6 D3 J - "\nPick second corner. : "))
. Z9 [0 T' i) j; W6 _ - (setq ptc (list (car ptb)(cadr pta)))
, h- u) ^/ M9 a+ h9 h+ w+ `# y - (setq ptd (list (car pta)(cadr ptb)))
5 R( q, g' G0 X - (setq ang (angle pta ptb))
$ t+ J8 Q5 @) X- f" X9 y- m - (setq d1 (/(distance pta ptb) 2))
/ a1 d+ U+ ]8 |$ L* K - (setq cp (polar pta (- ang (dtr 0)) d1))6 _+ L( @+ j/ K; B- o' Z2 Q/ @
- (setq X (distance pta ptc))
3 ]! ~8 _5 h8 \1 @' C8 N - (setq Y (distance pta ptd))
" J* K0 P7 i( C; b9 ]4 d; v - (setq X1 (rtos x 2 1))' V0 X t! N3 `2 M
- (setq Y1 (rtos y 2 1))
( f* g6 Q' `3 X - (setq rmsz (strcat "(" X1 " x " Y1 ")"))
* b+ y S7 A" k; q6 z - (command "TEXT" "c" cp "0" CPT "text" "" rmsz))5 d- y3 n b0 l8 m* A3 n" |$ Y
- (defun dtr (angg)
/ n/ n! |4 b& @! d: s# y. g$ I9 Y - (* pi (/ angg 180.0)))
) N0 P2 A5 d. [4 x/ p7 y
( N$ f: _9 A6 F* I: [* G7 M4 G- ;;; ================================ GHI CHU ============================8 e$ q+ j/ _- Y1 u8 O) W8 X
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ======== K1 e. F$ O* g+ f, Z+ |
- ;;; =======================Thuong Dung Font Romant.vnh===================
/ ]- T- H/ m7 ^$ t8 M
+ d0 O$ T, Z+ D: ?* |9 X7 c- (defun c:GS (/ a b c d)
/ W+ Z: F# @# Z' n - (graphscr): @, F7 d! e" y0 A6 R
- (prompt "\nSelect text to set style....")' p: o* y4 p% P6 }2 }0 O5 f% t
- (setq a (entsel)): {0 B' t" Y! {
- (setq b (entget (car a)))* K, T; M" l( a# W; @% L
- (setq c (cdr (assoc 7 b)))- f; J! b, D( }& d5 G0 V
- (setq d (cdr (assoc 40 b)))
0 ? k; w) w% |3 p5 _* _ L" n- D - (command "style" c "" d "" "" "" ""))7 z; @1 H. w3 e6 D
- (princ "\nType GS to set text style.")
& g+ H# V1 ]/ |8 y$ E - 2 h! k4 Q2 R0 Z% D5 q: v6 F
- (defun c:RC (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w)
8 C, ?1 p3 U' A - (setq olderr *error* *error* myerror)3 C; j7 V1 a8 r1 I
- (setq ocmd (getvar "cmdecho")) K. L8 H9 `& T0 j! t9 X
- (setq oblp (getvar "blipmode"))+ G1 _4 e9 X: e0 }
- (setvar "cmdecho" 0)
0 c4 S u1 y% \, s" G' [# m - (initget 1) ;3D point can't be null
. S/ F$ o" i- k' F - (Setq pt1 (getpoint (strcat "\nCorner of rectangle or square: ")))
6 f6 v3 r% L W. E+ m; ` - (setvar "ORTHOMODE" 1)
8 {: S9 V0 N! Q6 m - (initget 7) ;Length can't be 0, neg, or null) D( n0 B% c! O( k( S
- (Setq l (getdist pt1 "\nLength: "))0 ~' q: A7 E8 P4 j/ K/ D" ?2 O+ e* b8 i
- (Setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1))). J' }. T; k J7 C! ]
- (grdraw pt1 pt2 2)8 j8 i3 r" j% Z- v7 u: g" `# v
- (initget 7 "Square") ;Width can't be 0, neg, or null
0 d8 g* _6 Z& [, v5 D' c) B* ^ - (setq w (getdist pt1 "\nSquare/<Width>: "))
4 }( H4 f$ o+ }3 x; }3 v6 ~8 y4 B - (if (= w "Square")
2 V; j5 b3 P# |# o6 W& B8 K - (setq w l)
7 ~: a Q% ]: r& `5 \ - )
* L! W% G- V+ ?) I% J0 \" x9 ] - (setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2)))# o. @. f% t' ^* w/ n& ` t, n
- (setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1)))
+ Q+ t: M7 p) W, o5 X - (grdraw pt2 pt3 2)
( [- V4 `" Y* {5 S- }/ ~. R - (grdraw pt3 pt4 2)
* p# _( P% N2 w! H$ Y - (grdraw pt4 pt1 2)& Y R( W2 h; V' p+ C) `
- (setvar "ORTHOMODE" 0)
( _! c5 C$ v9 W2 q" O5 O/ p - (command "pline" pt1 pt2 pt3 pt4 "close")2 }) c) f0 |% u6 Q. P
- (setvar "cmdecho" ocmd)* L2 L7 W4 m' h9 G0 H/ J L3 l9 U
- (setvar "blipmode" oblp)
+ I8 }: S. r. K& E. l) X8 h0 e - (setq *error* olderr) ; Restore old *error* handler
. Q- c! x, R+ j3 r - (princ)1 v: h4 Z8 L U1 h0 _& h
- )/ A' a; ]3 G9 M a0 ]* k. j
- ' V0 t b$ k* ?( _/ q5 e/ [
- (defun c:SG (/ ent pt1 pt2 ang)
/ n: E" p3 v- h - (setq cmd (getvar "cmdecho"))
4 T2 J4 i" _3 v - (setvar "cmdecho" 1)% v8 R) Y: R/ \ i3 L+ n% \
- (prompt (strcat"\nSnap angle will be set to angle of line"))/ V a7 S6 z$ l1 a
- (setq ent (entget (car (entsel))))' P- ]& C, N8 c$ p1 z
- (setq pt1 (cdr (assoc 10 ent)))
7 A% K* D+ k: K/ P$ z# k5 ^9 z) ~, V - (setq pt2 (cdr (assoc 11 ent))) w; l) v+ h7 ?
- (setq ang (angle pt1 pt2)), ~+ o/ }1 t( j0 z7 s
- (setq ang (/ (* ang 180.0) pi))
4 z# `- h# Y+ S, U; m0 K; Q - (setvar "cmdecho" 0)
4 ^5 O# o$ v# K - (command "setvar" "snapang" ang)+ I; @3 q7 Q$ E# L) B+ \
- (setvar "cmdecho" cmd)* |) m& T. v. |" A4 G$ P8 L! a
- )
: i( f: p, @6 Z( T
* J6 _+ c" |9 P M; I. y" ^, ^- (defun C:TG ()
# a/ a, y i7 Z. r - (initget "Increase New")
! ?2 c' d. G1 O/ h# k4 Q - (setq ans (getkword "Increase/<New>: "))- b Q* }( h8 q0 \; T. B+ g
- (modang)1 t; o) E9 \0 ^
- )
8 `0 ]0 ?% u$ l- H - (defun modang (/ ang ss ca e na ssl)
) @* z5 h7 K5 }, f, R - (if (= ans "Increase")
9 ]' Y- m4 j& F8 C9 H; G - (princ "\nIncrease angle for text by: ")
8 T; z7 i+ L9 `6 w: A( j - (princ "\nNew angle for text: ")
1 c7 h/ d* q" h - )% b3 M1 g, E' }; p2 V4 \7 z2 H/ j
- (setq ang (getreal))
, i" E1 l6 b- _1 I, j- u - (setq ang (* (/ ang 180) pi))% y' e2 K- H- Y( O
- (setq ss (ssget))
9 n' O1 B- S. @8 U' j - (setq ca 0 ssl (sslength ss))
. v# R" {5 z$ c; a - (while (< ca ssl)
# R7 M2 p, v6 F8 J$ _ - (if (= "TEXT" (cdr (assoc 0 (setq e (entget (ssname ss ca))))))
& @+ l/ r2 m: Y# @1 ^ - (progn
: L- w8 F$ Q+ E! d5 x - (if (= ans "Increase")' m% G+ O! W2 W! [: e
- (setq na (cons 50 (+ (cdr (assoc 50 e)) ang)))1 ~5 K1 s3 y4 v# j
- (setq na (cons 50 ang))
+ p% r9 H- @( q0 h7 s+ a - )
$ J, m. x3 [3 N2 V - (setq e (subst na (assoc 50 e) e))
3 W" A4 C6 n# ?5 v) R - (entmod e)6 K U. U2 ]: `. d0 w( a" F( f
- (setq ca (1+ ca))
( j7 Y* N. u& l* H5 G* P - )
/ ~, @, h+ t9 T. z$ u - )
/ j# B/ ]" I! ~( C; ` - )! S% M7 ~' C1 `4 u9 M3 k/ A `6 |
- (terpri)5 C5 R3 b$ V7 W! @& |
- )! p! t2 c+ i k6 B
- # ^+ G; M! d8 i2 @/ f$ ^8 W
1 P+ Q" a" W- d4 j, P- (defun c:WL ()# E+ s, ?6 y/ @% u8 S A
- (setvar "cmdecho" 0)
' H0 a5 K/ w# _3 U+ X - (setq a 1)
! ]! P) i c* {# g& F7 t- G - (prompt "\nSelect Polylines to change: ")
" w; h2 o) @: t; n: j - (while (/= a nil)
" u$ D5 G/ R) r6 s( S5 y$ P - (progn
: L# G/ u. q. P- V- j - (setq a (entsel))
8 o; N2 g. o1 E- ~ - (if (/= a nil)
; I Z9 K! e ^" c4 R$ j - (progn
3 ?: j9 z: g# `" e* @* U6 U! c3 s - (setq b (entget (car a)))5 k8 C; w9 }: V: V, `& F
- (setq c (cdr (assoc 40 b)))' P7 m0 q$ N4 n6 s2 R y1 N
- (princ c)
% e0 Y5 a( Z5 n1 s6 z' Q/ K - (command "pedit"a"w""lw""")
0 \4 D2 f, p3 m5 y8 U - ))))
4 w9 C! k% ~4 A9 r$ J8 _4 V: }7 S - (princ)
4 O8 } M( V) }1 w8 u, Z - )
9 k" @) X: w* a4 y* D: r - 2 w8 a" i1 r* h7 g% x
- ;;; ================================ TEXT FIT ============================5 s# M6 W; z5 M: Z+ j
+ c& S+ ?) ]& x" u+ d/ X" G- (Defun c:FT ( )( a5 A3 r$ i: F: N! r/ f
- (defun setsnapang (arg /) (setvar "snapang" (angtof (angtos (cdr (assoc 50 arg)) 0 8) 0 )) )) ~5 Y" M: x `* ?
- (Defun LL-xyz (arg) (CAR (TextBox arg)) )
+ N# Q1 V3 I' t - (Defun UR-x (arg) (CAADR (TextBox arg)) )4 Y7 A# a. p9 P l9 m
- (Defun LL-y (arg) (CADAR (TextBox arg)) )
2 o. X3 @0 B: @* i7 h - (Defun LR-xy (arg) (List (UR-x arg) (LL-y arg)) )8 z- g! C5 ?% }' z- Y' Z9 }
- (Setq ename (CAR (EntSel "\nSelect Text to stretch/shrink:" ) )
- l. D3 j' p" H5 N - Textent (If ename (EntGet ename)) )
6 n, n% ^9 H# u! u+ [! p% u - (If (= (CDR (Assoc 0 textent)) "TEXT")! T! T3 f+ ~/ C r
- (Progn (initget 0 "Start")7 p0 V) P/ t8 G# F
- (Setq NewEnd (Distance (LR-xy Textent) (LL-xyz Textent) ) )
! R% T7 r7 I6 Z - (setsnapang Textent) ;set snap along text entity1 B, b3 ~) f# M$ D! M1 _: o
- (setvar "ORTHOMODE" 1) ;drag along the text
9 z3 ?4 G2 P' J% p1 J- G$ V - (setq 8 b& x. B% {# A) q/ L
- TMP (getpoint (cdr (assoc 10 Textent)) "\nStarting Point/<Pick new ending point>: ") )6 b' d5 l% e- q m' G7 [
- (setvar "snapang" 0)
. A) J) a6 r5 X/ j& d# a; o - (cond
# b9 k$ N6 Y; C2 t - ((= (type TMP) 'STR) ;;new starting point to be selected
2 h& w, E: p; Y4 N2 s7 U - (setq Start (getpoint "\nPick new starting point: "))
3 P) \5 Y9 i( I# H: t/ X; h - (if Start (progn
# V& C- p9 x5 d - (command "_UCS" "_E" (cdr (assoc -1 textent)))1 Z. k3 f$ e! v8 H
- (setvar "ORTHOMODE" 1)/ n6 l! w" |, a; Q3 K% [6 Z( B
- (setq NewPt1 y7 R3 H, D0 c5 T% M" j
- (if Start
" l1 N! P4 R0 Y - (getpoint (trans Start 0 1) " ending point: ") nil ) )- o4 F3 C" d |
- (if NewPt (setq NewPt (trans NewPt 1 0)))9 d) Z8 `7 o9 {7 t" d: Z
- (setvar "ORTHOMODE" 0)
# Y1 C; q2 ] R) o, v. A. W - (command "_UCS" "_W") ) ) )8 Z' p! ^' }( B4 Q! |, j$ `
- ((not (null TMP)) ;;new ending point selected
" K) H9 N6 c1 Q( e - (setq Start (cdr (assoc 10 Textent)) NewPt TMP) )
# W5 ~' j: U: s0 o. v: [ - (t (setq Start nil NewPt nil) ) )
0 R, g6 j' `* f; ~8 v. A2 e - (if (and Start NewPt) (progn
$ b) O' | g% M, c - (setq Val (Assoc 41 Textent) ;;current width factor
9 r) R+ u e% G/ C4 E5 Q7 P3 E - Val (if Val (cdr Val) 1.0) LTC_%
$ ~" o. E) A( n0 X+ z - (* (/ (Distance Start NewPt) NewEnd ) Val )0 Q6 |3 d' { P/ m+ f3 O
- textent (Subst (cons 41 LTC_%)
/ }; x$ q3 p/ B7 D+ J - (assoc 41 textent) textent)6 Y K5 O; d/ x# S: p! x q
- textent (subst (cons 10 Start) (assoc 10 textent) textent)
* J+ ^) S9 n. n' n1 y - textent (subst (cons 11 NewPt) (assoc 11 textent) textent) ), s9 w1 p1 I t, E" p
- (EntMod textent) (EntUpd (cdr (assoc -1 textent))))))) (Princ))
* t# O' k3 O" N! W$ S
8 U# r4 x& Q& h- ;=====================================================================
* g% N. R) p) i+ L! F$ j: J! k - ;=========================COPY + ROTATE ==============================
9 B- w0 A7 y; ^- p2 _ - ;=====================================================================3 {# `8 z/ W# \3 G& a" r3 U6 [
- - \ I9 U# s" F
- (defun c:CR(/ olderr cm loop ss1 ss2 bp mult lent ss2 lp1 lp2)
. F8 B" }9 g6 }7 S - (setq olderr *error*
( L4 J2 X/ {+ s4 D- @- H - *error* croerr)- j) J c2 v! w( f7 D0 _
- (setq cm (getvar "cmdecho"))- d( w& t* ~' h
- (setvar "cmdecho" 0)
4 y, O! S; g/ d6 ? - (setq loop t)
, h! c& O/ R" Y( _( G3 ?+ s, A - (while (not (setq ss1 (ssget))))
1 t I9 N# n2 _: q$ \ p, R. E - (initget 1 "Multiple")
* a- e k. P8 t3 s2 _0 C$ j - (setq bp (getpoint "\nBase point or displacement>/Multiple: "))+ @. x$ B l0 o0 [* b: w" S
- (if (= bp "Multiple")
( x; I# X: Z v! p - (progn
% G2 V& V# ]% ]* B9 k8 \/ T - (setq bp (getpoint "\nBase point: "))2 P# L6 q( m: _
- (setq mult t)! j% Z/ H; x: u' ~! d: Y
- )
+ B" [9 U. q( {- x - )( }$ m7 T( R+ ]" p2 M) f
- (while loop0 D& ^1 {! o+ ]. Z* S1 d
- (setq loop mult): w" j2 j \( [0 U5 ]9 i/ i
- (setq lent (lastent))
% B: H9 ^8 F. U0 w - (command ".copy" ss1 "" bp bp): r# K5 l; s1 c% `/ ^- c. K
- (setq ss2 (lss lent))
. M" C7 E0 u5 C" T* s% H - (setq lp1 (getvar "lastpoint")), k' m2 E6 M N4 }$ v
- (prompt "\nSecond point of displacement: ")
8 u6 n$ x1 p+ r( G% _% N& |) ]" D - (command ".move" ss2 "" bp pause)8 I, f. c& J: R. v- _
- (setq lp2 (getvar "lastpoint"))* u/ ?. G+ h; h1 C6 n* @( p
- (redss ss1)
; b/ y# ]! S1 q, v- w( H7 q7 B - (if (and (not mult)
+ c1 |* T+ O0 p - (= (distance lp1 lp2) 0)
: V" G- i+ C# [8 ? - )
2 V' I8 L5 V5 V+ A0 o$ Z( Y. q - (setq lp2 (getpoint "\nRotation Point: "))
6 Y7 S* E; N$ X! V# ?; X3 O8 M- L - )# h7 k5 h: ]' H! s3 p- _
- (if mult
) N" u2 Z, `( C; q& | - (prompt "\nRotation angle ")( n. s0 X0 l3 {+ m4 W U" R8 V6 V
- (prompt "\nReference/<Rotation angle>: ")% e. W$ v3 s3 a
- )
5 u5 h. }0 n' e* t - (command ".rotate" ss2 "" lp2 pause)7 {* t9 A5 N8 C8 k' \
- )
* U& t6 D& s$ @+ G; v; c# h - (setvar "CMDECHO" cm)# r( |# |8 ~7 H' i) Q7 d" u8 Z
- (setq *error* olderr), I( [6 s5 ]1 H/ J; u/ g
- (princ)$ c S5 ^/ X! V2 F/ r4 T% s: B% Y
- )
' g3 T1 d7 a3 i2 m( m Z - (princ)
0 l Q: R) C9 |# ^" _ - (defun croerr (s)
9 T7 a+ n* o, A5 Z1 ?: s- T, {8 N5 M - (if (/= s "Function cancelled")
1 e, d0 l' o1 L - (princ (strcat "\nError: " s)), B5 c- {3 j% M H9 [
- ) 0 Q! m5 N1 \" S% U0 ?! J# p
- (setq S nil)
0 F7 h: Z1 { y$ o- Z) v0 h - (setvar "CMDECHO" cm)3 K$ e+ k+ o- A9 T6 d
- (setq *error* olderr)
$ c8 Z+ N3 H2 q$ s' B - (princ)' a* z: G. C0 v* D7 Z+ e
- )( J7 U. M8 D; W$ N7 U8 l$ z2 P! r: i
- (defun lastent (/ a b)
2 Q3 x2 L7 [' H, F - (if (setq a (entlast))
- K) U; b' z R( u" s - (while (setq b (entnext a)) @3 T1 _6 j* r# j& m; g; f
- (setq a b)
7 h" b, H0 R1 G8 y( Q% q - ), ~7 z, }- u0 J" o3 e8 {3 i
- ); l3 ~1 V. i6 m) |2 T5 j" l
- a0 c& F: C/ Q/ }0 `! k: Z
- )
* @ d+ S: H- ? - (defun redss (ss / en i): o0 ^8 s5 o) `7 F$ z0 }
- (setq i 0)+ ?7 V! a; y3 m0 {# N! a4 o
- (while (setq en (ssname ss i))
- T! {: a8 L( i - (redraw en 1)0 [# S+ R% c8 l! s* N, s5 b
- (setq i (1+ i))0 B6 F4 L g/ B7 }6 t; S
- )0 p) f: \! T9 h% O
- )/ ]) w" R6 [: j) x% W. T- M
- (defun lss (en / sels ed)
8 Q7 n9 ~' P# H" n0 f - (setq sels (ssadd))' E! [/ _1 f, `) S' |3 U& d$ m
- (while (/= en nil)
e& W+ p/ n. y - (if (setq en (entnext en)) (setq ed (entget en)))
4 p$ q/ i6 ]% s( V; a; j8 s - (if (/= en nil) (setq sels (ssadd en sels)))! d! S5 K) c5 g2 c: l7 _4 a
- (if (or (= (cdr (assoc 0 ed)) "Polyline"), g, s) G8 _! \2 b5 b
- (= (cdr (assoc 0 ed)) "Insert") j& o0 m' ~. H6 i8 b& n) [: q
- )
; w5 P; b5 }; e( z - (while (/= (cdr (assoc 0 (entget (setq en (entnext en))))) "Seqend"))5 _: W- [% S8 d
- )
5 S, i& |: `& F+ y - )
/ Z8 x" h* B* ~8 L% f2 w - sels
. W, _6 Q# r* U3 Y. X - )
3 {8 {0 T2 Q5 J3 t) A3 q2 g - 0 f- n G) p% B) k4 v5 _
- ;;;; ================== CAC FUNCTIONS DUNG TRONG ACAD.LSP ==================
8 ?2 L- D* U7 _( ~% n2 d
- J, q \7 E1 N3 B* I- (defun c:00 ()(princ "\nChon doi tuong net Defpoints")(ssget)(command "change" "p" "" "p" "la" "Defpoints" ""))
% f" {" i" h7 T m- y! `9 y1 H - (defun c:0 ()(princ "\nChon doi tuong net 0")(ssget)(command "change" "p" "" "p" "la" "0" "")), F' T4 j5 K: B; \2 N, p6 m
- (defun c:1 ()(princ "\nChon doi tuong net COT")(ssget)(command "change" "p" "" "p" "la" "COT" ""))
?/ d9 i" W$ I! _& k) e% z - (defun c:11 ()(princ "\nChon doi tuong net DIM")(ssget)(command "change" "p" "" "p" "la" "DIM" ""))$ K% P$ i( Y& U$ s) @" R
- (defun c:22 ()(princ "\nChon doi tuong net MANH")(ssget)(command "change" "p" "" "p" "la" "MANH" ""))
. V/ Z0 ?8 h6 _& L - (defun c:33 ()(princ "\nChon doi tuong net NETMANH")(ssget)(command "change" "p" "" "p" "la" "NETMANH" ""))$ G" v) `5 G) X. Q: I
- (defun c:2 ()(princ "\nChon doi tuong net NETDUT")(ssget)(command "change" "p" "" "p" "la" "NETDUT" ""))- p* {3 i+ l2 v
- (defun c:3 ()(princ "\nChon doi tuong net NOITHAT")(ssget)(command "change" "p" "" "p" "la" "NOITHAT" ""))
3 J: ]5 w# @) }" ] - (defun c:4 ()(princ "\nChon doi tuong net TUONG")(ssget)(command "change" "p" "" "p" "la" "TUONG" "")). G/ Y4 U, r3 \2 `( c% N0 ]
- (defun c:44 ()(princ "\nChon doi tuong net KHUNGTEN")(ssget)(command "change" "p" "" "p" "la" "KHUNGTEN" ""))+ G+ t1 T' D( F# Q* f8 U4 s2 Z9 ~
- (defun c:5 ()(princ "\nChon doi tuong net TIMTUONG")(ssget)(command "change" "p" "" "p" "la" "TIMTUONG" "")) t4 N- m2 J' J3 m6 e& D( K
- (defun c:6 ()(princ "\nChon doi tuong net CUA")(ssget)(command "change" "p" "" "p" "la" "CUA" ""))
3 g7 C3 s. n+ h - (defun c:7 ()(princ "\nChon doi tuong net THAY")(ssget)(command "change" "p" "" "p" "la" "THAY" ""))
* E% [! x- B1 P2 R$ c( k - (defun c:77 ()(princ "\nChon doi tuong net NETTHAY")(ssget)(command "change" "p" "" "p" "la" "NETTHAY" ""))
$ L$ o* @9 O4 k; ~, t - (defun c:8 ()(princ "\nChon doi tuong net HATCH")(ssget)(command "change" "p" "" "p" "la" "HATCH" ""))
+ n2 F& G* v% I, k- ` - (defun c:9 ()(princ "\nChon doi tuong net TEXT")(ssget)(command "change" "p" "" "p" "la" "TEXT" ""))* \/ r, \2 j: {3 B5 v( l3 d f" n6 Z
- (defun c:99 ()(princ "\nChon doi tuong net CUAMATDUNG")(ssget)(command "change" "p" "" "p" "la" "CUAMATDUNG" "p" "C" "bylayer" ""))) N8 `3 M( m& p- }) W. x# o, L
- (defun c:td ()(princ "\nChon doi tuong net THEPDOC")(ssget)(command "change" "p" "" "p" "la" "THEPDOC" ""))
% k) i' N( p3 k4 A. |) e - (defun c:ddt ()(princ "\nChon doi tuong net THEPDAI")(ssget)(command "change" "p" "" "p" "la" "THEPDAI" ""))
C7 {8 R8 q# U; V0 i, ` - 4 K1 W0 k2 l5 F4 c4 r7 E
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
8 X n- y7 n7 M& M& ^+ l1 K
" ^( k1 O* G6 L5 L- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============9 _. E- T9 K( I$ |% [7 m. _
8 D" y* }) j) y& f' i- (alert "Using the NetXuatAnh-[ 5940.00 x 4200.00 <pixels> ] command!")
% C# [$ z4 V. d+ f3 Q9 @ - (princ "\nEnter (DEFUN C:netxuatanh () to get to real LAYER command.\n") (command "NETXUATANH")# a o0 p- z5 O* P4 p3 ?9 f# K' q
- 3 V+ W; r7 i0 {! U; @
- ;=============== DAT LAYER NET de xuat anh JPG [W x H] [5940.00 x 4200.00] ===DRAW===9 L3 z9 Q+ }' B3 J q
- % C) T) Z+ _7 d
- ;(DEFUN C:netxuatanh ()
! y Y7 k! `; B0 G! G - (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.6" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""3 S, W% y ~9 o' c# \) I ^
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1.58" ""( p- L1 B2 @3 [7 t+ \6 M6 U
- "M" "MANH" "C" "9" "" "Lw" "0.5" ""1 H: b3 d' x9 \3 c
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
7 L9 o: b! l* ^) F4 b1 u - "M" "DIM" "C" "1" "" "Lw" "0.6" ""
+ w2 P* q4 I: t1 m8 P$ F - "M" "THAY" "C" "7" "" "Lw" "0.7" ""9 C, e) M5 P( ]0 S& t
- "M" "NOITHAT" "C" "3" "" "Lw" "0.5" ""0 f8 R9 q6 b e, W5 D" a$ ~" f
- "M" "HATCH" "C" "5" "" "Lw" "0.35" ""
. R3 z, @# a( D- v. N/ i/ j' W - "M" "COT" "C" "2" "" "Lw" "2" ""
6 \( W3 K9 B* c8 P F) n - "M" "Defpoints" "C" "7" ""4 j1 r( o t$ u e% K# x) b
- "M" "0" "C" "3" "" "Lw" "0.5" ""
7 ]8 Y" H# n N8 t6 b - ; "M" "1" "C" "1" "" "Lw" "0.5" ""
; {9 h5 `% M% ]: H6 e4 _8 b - ; "M" "2" "C" "31" "" "Lw" "0.5" ""
+ u4 ~' s5 ^. `4 h* |4 S: B. } - ; "M" "3" "C" "8" "" "Lw" "0.35" ""
& v' |0 A4 E2 U. e, | - ; "M" "4" "C" "4" "" "Lw" "0.8" ""
9 o6 O7 M/ O. _4 X4 s( k - ; "M" "6" "C" "6" "" "Lw" "0.35" ""
9 J8 A8 v: ^3 t* \# g* X - ; "M" "7" "C" "7" "" "Lw" "0.4" ""
8 X/ Z c6 u$ Q% l% G$ d# r p - ; "M" "8" "C" "8" "" "Lw" "0.35" ""8 `& W6 {9 ` b3 T5 H( O( M9 m
- "M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" ""
1 ? |4 b6 V: Z s, x - "M" "DUONGBAO" "C" "7" "" "Lw" "1" ""
0 \9 Z/ Z5 x7 w; E. E6 @7 W- t - "M" "KE" "C" "8" "" "Lw" "0.3" ""
2 r) {6 ^7 d& Y. Y- T& f - "M" "KT" "C" "9" "" "Lw" "0.35" ""( L* }1 l0 ]6 Q
- "M" "NETTHAY" "C" "255" "" "Lw" "0.7" ""
* R4 A9 p$ _5 H* H0 ?* j3 m9 d( g - "M" "NETMANH" "C" "43" "" "Lw" "0.5" ""
% u1 b* b1 R6 A, U - "M" "TBD" "C" "2" "" "Lw" "0.8" ""
7 Z; {7 c/ ~, H2 _# W4 a7 E& j - "M" "TEXTTXT" "C" "7" "" "Lw" "0.4" ""% d: _' f; M5 K, c) b0 h
- "M" "TEXTVN" "C" "132" "" "Lw" "0.4" ""
# h/ @+ K# D0 Y2 k! ] - "M" "THEPDAI" "C" "3" "" "Lw" "0.7" ""
/ Y- K7 w( M* L M8 Q" } - "M" "THEPDOC" "C" "2" "" "Lw" "1.58" ""
: I f( p) N! ^1 c - "M" "CUA" "C" "6" "" "Lw" "0.5" ""7 K* B S7 J9 h5 c
- "M" "CUAMATDUNG" "C" "6" "" "Lw" "0.5" ""
/ X& z9 {0 X; a* R% F7 r - + |% R4 _+ k1 Z
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] ===NUOC===
1 | T F* S# i8 i# ?" e
$ i* z; E: P- P- "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" ""8 m, N8 n/ a7 Y: I3 p( q
- "M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" "" _7 j7 m$ [4 W4 q# Z8 l9 p5 d
- "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" ""9 M3 R4 ]% b$ m w* \" W6 r# M5 m
- ; "M" "250" "C" "250" "" "Lw" "0.35" ""
2 \/ ]" w$ d1 S/ T# J0 W - "M" "KHUNGTEN" "C" "4" "" "Lw" "1" ""
+ v' P! A1 I6 j% [ `; T& _- N - "M" "TIMTUONG" "C" "5" "" "Lw" "0.5" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" "" )3 n+ ~ ]8 ^2 T8 a' q9 K
" H* E% p9 v I. @4 v- ;=============== DAT LAYER TEXT de xuat anh JPG [DIM] [TEXT] [GHI CHU]======
, R1 `7 ~4 q' G - ;===================================30|04|2024==============================) |1 h; Y/ c9 k5 q$ B; R
+ U8 w T- ~8 A- L! @7 L1 z' {; r0 t) C- (Command "-style" "Vni-VietNam" "vn_vni,vns.shx" "0" "1" "0" "n" "n" "n" ); B5 K! M! O& V, u
- (Command "-style" "Vni-ROMANS-TEXT" "vni-romans,vns.shx" "200" "1" "0" "n" "n" "n" ); M5 A% U' S5 h% b$ s
- (Command "-style" "COTES" "verdana" "" "1" "0" "n" "n" )! x6 t+ S9 D2 l% c1 ^
- (Command "-style" "TRUC" "impact" "0" "1" "0" "n" "n" "n" )* W2 T- M) n7 R- Z. d
- (Command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500" "1""0" "n" "n" "n" )% \ X v$ |% i- r) C8 R3 z i
- (Command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1" "0" "n" "n" "n" )
# m) A0 t" R% Y/ n) l - (Command "-style" "STANDARD" "Verdana" "200" "1" "0" "n" "n" "n" )7 M* z2 `$ O8 I/ W9 [' m
- (Command "-style" "VERDANA" "verdana" "200" "1" "0" "n" "n" )- I/ r7 s9 P4 b; a* [
- (Command "-style" "ROMANT-DIM" "romant,vnh.shx" "0" "1" "0" "n" "n" "n" )
# `2 W/ m$ B9 U) w - (Command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200" "1" "0" "n" "n" "n" )(princ)
5 G) Q3 [" G! T" @' Y6 H8 d1 Q - ) q8 D) w+ ] _9 ]- O
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=4 O- P1 i5 Y6 J# r) z: `7 d
- ;===================================17|10|2024===================================
6 S+ a1 p$ I' j K7 e
8 G+ f3 F# Z. L! w- {' h2 l# {- (Command "DIMTXSTY" "ROMANT-DIM" ): `, o. E: g* m/ _5 n3 ?" j
- (Command "DIMBLK" "" "Closed" )
3 `* i; {5 b, A- N$ P0 t
. @4 w2 `1 ^* ^- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=( e$ |2 |) x5 U( W/ ?7 a
- ;===================================17|10|2024===================================8 U* C/ t7 K* w: m
+ y0 V; Y" z! X; {2 B& ^1 X- ;(Command "-units" "2" "8" "1" "8" "" "N"). m4 d0 d; S' _9 S; D; N
- (Command "-plot" "Y" "" "publishtoweb jpg.pc3" "User 1 (5940.00 x 4200.00 Pixels)" "Landscape" "N" "Display" "Fit" "Center" "Y" "monochrome.ctb" "Y" "")(princ)
0 K8 K- m9 ^/ ^: x - $ i; e, U G7 {9 A7 | X
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
: P) }) Y/ S# J \8 C7 X- A5 | - ;===================================17|10|2024===================================; Y3 N% J0 v. Z) }/ K2 m
- ) P- R' I" ?" R
- ;======== KET THUC - DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =====/ C @' ~/ E( N. J# p$ S
- / Y) X. n9 b# F) | _5 N
- ;======================== DAT NET IN & TI LE BAN VE =============================
4 p2 R' t- D% M6 ?# M9 a - ' I# I, V5 G( Q7 `: v7 Z/ u
- ;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================
( ^- u: W% T2 H - ;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================2 R9 _: R- ~0 u" |
- ;=============================11|07|2025==============================( N/ @4 u8 a1 R* K. c- E4 H
- ;Ti Le Ban Ve - 1 : 100
$ ^! z# Z& r8 F5 y/ q; z2 W - (Defun c:kta4 ()
2 f& q3 s0 |: D) d* p$ x* j8 | - (setq mv_sc 100);Ti le ban ve# g% S1 R) e8 s# p
- (setq x4 297)
2 n+ j9 S9 d. |6 P/ h - (setq y4 210)
7 z. i3 n$ `% r+ i, a, W$ p# F - (setq x4 (* mv_sc x4) / F2 y9 G3 \" I
- y4 (* mv_sc y4) )% e: J! T: p$ h# \0 V. Y" G
- (command
2 E" A! x* o* z; s \, p5 s$ ` - "LIMITS" "0,0" (list x4 y4)& g: S( x' G" R, u5 B0 ^* P" E
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"$ B# b. X' c. Z! U6 K% `
- ;Khung CHU NHAT Chinh ) \; O- I) _% e0 A! |& U
- "RECTANG" "500,500" "@28700,20000": P/ g* _1 g8 [' d& s
- "RECTANG" "700,700" "@28300,19600"
+ j3 M L5 R4 t# ^8 Z9 M3 j. G - ;Khung Ten Chung# d5 k8 ]5 t. u# m% h/ K
- "RECTANG" "700,700" "@8000,1250"9 d5 g" U& @, r* X4 |
- "RECTANG" "700,700" "@17300,2500"! Y& z( c& c' j
- ;Ten Ban Ve
: j3 T3 }+ D' ^5 [3 f6 v - "RECTANG" "18000,700" "@11000,1250"
! S1 ?, O9 |; z5 y( l; V% c; _4 N4 X - "RECTANG" "18000,700" "@11000,2500"
) w6 g( {, N+ p" _$ u - ;Khung Ti Le + Ngay Thang Nam
, d9 |+ s1 R% P& f# N! _ - "RECTANG" "22500,700" "@2000,2500", r X4 A0 u0 I* l$ W N
- ;Khung CHU TRI4 E% s( q$ r6 q5 b/ C0 U B" _: S4 N
- "RECTANG" "8700,700" "@3800,2500"
[5 p `' t6 }0 B7 t7 z - "ZOOM" "_a" ))6 V. y7 t9 ?/ P. b" J& s" Q
- ;=====================================================================
7 w* M& j- g1 X - ;Ti Le Ban Ve - 1 : 100
) X/ B( a1 i1 C: e - (Defun c:kt4a ()& C3 w% z" g: [" Y8 C
- (setq mv_sc 100);Ti le ban ve+ c' ~; N5 {2 G9 B
- (setq x4 297)
0 t' B2 c( d8 N# U7 g X - (setq y4 210)
3 X& {1 b8 D1 w- m) W% | - (setq x4 (* mv_sc x4) % S8 |! G( e6 a& N" c" I2 |
- y4 (* mv_sc y4) )
; G+ }* U6 M. Q. F% Q2 g5 o" w - (command 6 O6 g& G/ c. x! V4 l3 w, }
- "LIMITS" "0,0" (list x4 y4)1 @- d2 j$ }7 C
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
1 L3 q1 R) Y& H - ;Khung CHU NHAT Chinh
( ~$ O: s/ z( B3 g/ {( b - "RECTANG" "2000,500" "@27200,20000"
# I' W" x& G' G1 L, S6 d T$ s - "RECTANG" "2200,700" "@26800,19600"% p7 w9 O+ E+ |& k: k* G6 a
- ;Khung Ten Chung
/ \; m e. [. ]1 J- B9 L8 f - "RECTANG" "2200,700" "@6500,1250"+ O3 q9 r3 A0 D4 [" Y ] U! Q
- "RECTANG" "2200,700" "@15800,2500"
! d% ^1 O: |: t, u9 t3 z% g, N; | - ;Ten Ban Ve2 s2 [& ]5 d5 v7 |1 r+ r1 @
- "RECTANG" "18000,700" "@11000,1250"
5 G9 u% `3 N$ I" r4 |/ ^( a - "RECTANG" "18000,700" "@11000,2500"# J, N0 s5 D6 R H5 ?
- ;Khung Ti Le + Ngay Thang Nam, a U4 L5 Z' r8 k" d' _5 \3 v
- "RECTANG" "22500,700" "@2000,2500"
6 [2 w6 C+ D1 a h8 G9 ` - ;Khung CHU TRI
5 u, t0 H: }$ Q$ K - "RECTANG" "8700,700" "@3800,2500"
9 F( i! ^% ?% @1 q2 d( s - "ZOOM" "_a" ))
, B' e! q* I6 Q! `- s - + f' Q f; \, w# |7 j
- ;;; ============================GHI CHU Khung Ten========================
4 |: j' k; R. e - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========4 h: b# p7 `1 q& G* T' T4 R8 s
- ;;; =======================Thuong Dung Font Romant.vnh===================
: p. @4 u6 o/ {* R9 g/ H: A. u
9 E2 X! a9 W! f% F- (defun c:GhiChu (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1) d0 ^/ o- k% f8 d* C
- (setq oer *error* *error* err2)
5 x9 O" M% k U+ A" G) C! s9 D - (PROMPT "\nChuTri. ThietKe. KiemTra. TiLe. Ngay. HangMuc. QuyMo. KieuNha. CongTrinh. KyHieu. TenBanVe. Kts. TranNgocThang. ")
1 O) ^* a: _" i: X7 C1 `- E& { - (SETQ Cpt(GETSTRING "\n(CT). (TK). (KT). (TL). (Ng). (HM). (QM). (KN). (CTr). (KH). (TBV). (Kts). (TnT). "))
7 ]& B! T( \. I* l- ~+ C$ }$ n - (IF(OR(= Cpt "QM")(= cpt "qm"))(SETQ CPT ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông quy M« :"))3 l4 q9 V! Z% G# h" z1 {
- (IF(OR(= cpt "KN")(= cpt "kn"))(SETQ CPT ' "2 TÇng 1 Tum Thang"))
. j) s" e, S w4 i+ g8 H3 _4 W - (IF(OR(= cpt "CT")(= cpt "ct"))(SETQ CPT ' "Chñ Tr× :"))
( j2 B( l9 N4 J7 Y* F5 m - (IF(OR(= cpt "HM")(= cpt "hm"))(SETQ CPT ' "H¹ng Môc :"))/ X3 H' V* V; l9 k$ w; {: i
- (IF(OR(= cpt "CTr")(= cpt "ctr"))(SETQ CPT ' "Nhµ ë Gia §×nh - Nhµ LiÒn KÒ"))
& W" v5 l- r q5 D4 _0 |' e3 l - (IF(OR(= cpt "TK")(= cpt "tk"))(SETQ CPT ' "ThiÕt KÕ :"))! ]% V: g7 m; d8 N6 B
- (IF(OR(= cpt "KT")(= cpt "kt"))(SETQ CPT ' "KiÓm Tra :"))# q- ~( L3 s% ]4 X3 a
- (IF(OR(= cpt "TL")(= cpt "tl"))(SETQ CPT ' "TØ LÖ :"))+ D& j: C* y3 D4 W: r1 p9 `; N
- (IF(OR(= cpt "KH")(= cpt "kh"))(SETQ CPT ' "Ký HiÖu :"))
- e) ^0 t6 i2 I( D - (IF(OR(= cpt "TBV")(= cpt "tbv"))(SETQ CPT ' "Tªn B¶n VÏ :")). S! K& V) Z. ?) ?
- (IF(OR(= cpt "Ng")(= cpt "ng"))(SETQ CPT ' "Ngµy :"))0 Z/ G5 X# v7 y E1 K5 E4 ^
- (IF(OR(= cpt "Kts")(= cpt "kts"))(SETQ CPT ' "Kts. TrÇn Ngäc Th¾ng"))
# D: P3 m& Y# S* K% C* ? - (IF(OR(= cpt "TnT")(= cpt "tnt"))(SETQ CPT ' "TrÇn Ngäc Th¾ng"))( N" C; U+ ]( W. C% w# _
- (setq pta (getpoint
: j& Q9 I) {7 O8 X' S6 m0 U - "\nPick first corner. : ")) E0 u9 ]' |, z6 [ \+ Q
- (setq ptb (getcorner pta% Z; i# y0 e U8 v) k
- "\nPick second corner. : "))# m+ j+ M# e1 |9 L0 R2 n7 B
- (setq ptc (list (car ptb)(cadr pta)))
# c7 W4 h- \/ h4 ]( K* q+ q7 @" @ - (setq ptd (list (car pta)(cadr ptb)))
$ w: I, |( U% r- l - (setq ang (angle pta ptb))- G% o3 R. n3 g9 W1 E5 J
- (setq d1 (/(distance pta ptb) 2)); @, U7 @9 o' L& U. g$ R+ E: D5 Y
- (setq cp (polar pta (- ang (dtr 0)) d1))0 h4 Q# p$ L6 \" f( V! f" J
- (setq X (distance pta ptc))1 v% g2 e1 x$ C
- (setq Y (distance pta ptd))' O( Q2 F) B/ w" M. J9 t
- (setq X1 (rtos x 2 1))2 X4 [* U$ F) h2 p9 ^
- (setq Y1 (rtos y 2 1))/ @ m7 D( b2 }: S9 x
- (setq rmsz (strcat "(" X1 " x " Y1 ")"))
7 P7 \4 L9 T! P5 c* z6 C6 R; G" J - (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
9 b, c: r* H6 U: ^$ e - (defun dtr (angg)
( ]9 l# _% n% A% Y' T - (* pi (/ angg 180.0))): `5 |4 }& V3 l" i( X
0 R( M0 S8 q' d' d1 G1 X- ;=====================================================================
& @% v ?4 u2 c/ u4 J$ B6 M7 O! `8 O - ;==========================DAT KHO GIAY BAN VE - KIEU 1========================* T/ n) S6 ^. { F) e4 _. l* Q: ?) C
- ;=====================================================================7 q' ~0 k1 A, \% ^. _( u! c, _! z A
4 q: m( i: s% l( e- v! @- (Defun c:a6 ()
+ F# d) Q7 S2 o9 D$ N! ] - (setq mv_sc 100);Ti le ban ve
9 F3 `: I1 M6 h: w8 c/ T2 A% m - (setq x4 74.25)
$ Z" N) j D( N" |3 P - (setq y4 52.5)% Q9 ^$ r; B6 |* ?. _- G
- (setq x4 (* mv_sc x4)
/ x- a4 s9 A9 I! ?7 e - y4 (* mv_sc y4) ), B) m9 ?9 V+ ?9 Y9 R- y! d
- (command
& R6 \. h" i: P: m/ S" E - "LIMITS" "0,0" (list x4 y4)
) u4 l( y0 [: w, b4 M( { - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
* G' q- _- t* @- ]2 r - "RECTANG" "125,125" "@7175,5000"; \0 ~6 p. l2 \5 P- r) P
- "RECTANG" "175,175" "@7075,4900"! z% [" I3 M8 A) N& K
- "ZOOM" "_a" ))
# D; b, x8 f( B, X+ e - ;=====================================================================
( f" _+ A, X9 B3 P - (Defun c:a5 ()$ Y1 `/ U5 ]9 D# L
- (setq mv_sc 100);Ti le ban ve
8 X- T2 Y& {+ I& n! n) ?4 i - (setq x4 147.5)! K- q9 M7 c0 y( H( u8 q8 u/ k
- (setq y4 104)
5 h& b2 u/ |5 { u - (setq x4 (* mv_sc x4)
& \$ r7 @* Y6 t% W/ ]$ I0 X - y4 (* mv_sc y4) )" `1 Q+ _- J4 G o4 @
- (command / X+ j: W* l }* `' ^
- "LIMITS" "0,0" (list x4 y4): a8 _5 {1 h5 z$ X
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
; ]4 P: N u9 Y. j* }+ c - "RECTANG" "250,250" "@14350,10000"
" m0 ?9 p8 ~8 {+ D# Z& S: V - "RECTANG" "350,350" "@14150,9800"
) ^( Q3 n+ r5 z+ c - "ZOOM" "_a" ))
R. b- w6 P; R5 ?) U# u - ;=====================================================================
4 J+ o( J+ B$ X7 P* l# i! V - (Defun c:a4 ()
4 ~7 D# F4 m {3 C- ^3 U% H% ^; w - (setq mv_sc 100);Ti le ban ve
1 W+ p1 T2 c8 M( J* B - (setq x4 297)0 \* q4 J, h% X% P' x% ?0 f
- (setq y4 210)# X9 n w! ?) z* [, k# J5 j; j1 ^8 z) N( r
- (setq x4 (* mv_sc x4)
, d0 T* ~) U7 F" m+ Q; {1 `8 p! ^ - y4 (* mv_sc y4) )
8 o+ G5 h2 ~3 l$ g% g" ?! @ - (command 0 ^6 A4 ]+ }( Y1 c& w* ^
- "LIMITS" "0,0" (list x4 y4)3 ~7 b! \2 ~0 S6 S0 W8 p
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C". P6 c" h9 K6 K# q) z! c
- "RECTANG" "500,500" "@28700,20000"4 n5 i u* E Z( s& W' a& G$ G2 p
- "RECTANG" "700,700" "@28300,19600"% L9 H" ~2 t; V I) J/ J) u
- "ZOOM" "_a" ))
1 d4 J. S. G, d B; }, h0 ~& G$ ^ - ;=====================================================================
6 E+ m: e3 q0 E# D( e& v+ Y - (Defun c:a3 ()
" K. {$ X, H" M0 U5 [; \7 l5 e - (setq mv_sc 100)4 `* o" ^. U; m6 N
- (setq x3 420)
" b B4 [4 I$ \1 b) g1 z/ \/ b6 R3 [ - (setq y3 297)
; q- ] j; V3 u _, `9 a ]0 @5 _ - (setq x3 (* mv_sc x3)
3 S/ `! ^, ~% h L% C - y3 (* mv_sc y3) )$ T7 Z$ I: V6 L
- (command
- p( F4 N& g. f - "LIMITS" "0,0" (list x3 y3)
9 _( {' n5 W# @% a; f4 e - "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
, o+ Y5 D1 B: r. ~8 ` - "RECTANG" "707.14285714,707.14285714" "@40590,28285.71428571"
5 \2 }( D0 L3 [# B - "RECTANG" "990,990" "@40024.28571429,27720". M7 Z2 m' U/ R5 f0 `7 |/ w. ]. B
- "ZOOM" "_a" ))
. b1 }9 f2 j$ H5 _4 o& p1 h) R. W - ;=====================================================================
% ~! r) I, x5 S" B, X - (Defun c:a2 ()* R7 E0 k$ J& R0 ], i
- (setq mv_sc 100)+ A# }* A p) Z" E
- (setq x2 594)' G% J N/ B+ T. ?
- (setq y2 420)) R% E- E5 i4 G& j4 H* F" e) g
- (setq x2 (* mv_sc x2)
0 y% P! h: }5 c& y% u8 ?' B$ A - y2 (* mv_sc y2) ): G' }; S) }6 c$ u% d6 D
- (command
( R& J5 t8 V; Y! \5 b* R - "LIMITS" "0,0" (list x2 y2)
/ |+ ^+ Y4 }* }0 p) W0 ^ - "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"7 O5 Z/ b1 `5 i9 A# U* | ^6 G2 g- X$ G
- "RECTANG" "1000,1000" "@57400,40000": i4 u+ z9 W/ _4 |. @2 V
- "RECTANG" "1400,1400" "@56600,39200", `+ Y: R; @1 L+ `# q5 b3 ^0 O
- "ZOOM" "_a" ))
6 J* W. v2 U% n7 q6 g8 } - ;=====================================================================9 L2 J7 p" i! N* L! r! f3 t
- (Defun c:a1 ()3 V; u3 h" y) r: r; B9 o0 I* j! ^2 F
- (setq mv_sc 100)
4 W: U$ E/ a$ J/ H. L- C. @ - (setq x1 840)
6 u# M: ~. U6 l/ D5 a6 ^ - (setq y1 594)
- {9 Q( t) Y2 Z, d2 E; x - (setq x1 (* mv_sc x1)
" x n/ v: Y! e) q+ f; Z9 v - y1 (* mv_sc y1) )
8 a4 C; w% t; \4 Q - (command 9 K: a& k/ a0 U5 J: `% R
- "LIMITS" "0,0" (list x1 y1)4 g0 [% ~9 l% N7 D7 g6 L" O
- "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"
+ X* Z; P0 T( L* T# T6 |* z: M6 i - "RECTANG" "1414.28571429,1414.28571429" "@81180,56571.42857143"" D& t- E% G9 n$ z
- "RECTANG" "1980,1980" "@80048.57142857,55440"
) L# H: j, Z8 S% C% W4 f y - "ZOOM" "_a" ))
! E! c ?, a3 C6 j - ;=====================================================================# Q0 S- Z7 `* P# F( S8 j
- (Defun c:a0 ()
# b: W+ V( Z2 M8 n% P- R - (setq mv_sc 100)
e6 [" [, X4 K - (setq x0 1188)
- Z4 v% z3 R% E) i5 o: ]3 X1 W - (setq y0 840)5 C0 ], f( L) R* {2 R
- (setq x0 (* mv_sc x0)
, ^% t. u Y. q- r. U" t - y0 (* mv_sc y0) )
3 t5 F; W8 R. ~* r' B - (command ; p* O7 u. {: @
- "LIMITS" "0,0" (list x0 y0)! D0 D8 p$ @. {( y! p6 n% Q$ C
- "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"% a3 }1 h: t2 o2 d6 i
- "RECTANG" "2000,2000" "@114800,80000"4 ^& L7 F' j# @
- "RECTANG" "2800,2800" "@113200,78400"/ g; l8 J6 k0 G& w' V
- "ZOOM" "_a" ))' W& L. R1 E/ c! M* D0 t
- 8 |0 a0 v8 W3 l- F! H: w/ ?% ~
- ;=====================================================================+ o, V- ^4 W( a& D5 t4 O
- ;=========================DAT KHO GIAY BAN VE - KIEU 2=========================
# r9 u9 }8 }6 k% w+ r! y - ;===================================================================== ]$ S1 b: O' m, s* r2 B. J
7 k! B) F- I8 B5 J% b8 O- (Defun c:6a (), X/ F: }8 \6 c# _' n
- (setq mv_sc 100);Ti le ban ve3 s. B( ~6 `$ s2 W. L
- (setq x4 74.25)
/ c, E, s" p/ U- ?- A8 K* p$ x P b - (setq y4 52.5)7 a4 g8 T3 A2 B7 h$ t
- (setq x4 (* mv_sc x4)
) ?( [: C. }- C5 A - y4 (* mv_sc y4) )1 t9 A; S* f8 ~: ~! I: }
- (command ' @+ Y/ f4 N2 s1 \# s5 M- Y. h
- "LIMITS" "0,0" (list x4 y4)3 B+ P( _! _- u9 o d
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"% R6 }& [/ H2 e* ~. o
- "RECTANG" "505,125" "@6800,5000"
* c- ^ u8 G! x$ b - "RECTANG" "555,175" "@6700,4900"2 `# ^3 d* X' U% F
- "ZOOM" "_a" ))3 [2 Z3 s3 `6 I4 O& @; z5 t2 G$ A; p. J
- ;=====================================================================* d' m% X* u" B) x& ]
- (Defun c:5a ()
8 E% X) Z( Q1 G$ H - (setq mv_sc 100);Ti le ban ve
e7 E3 n! H- A7 M - (setq x4 148.5)0 h5 q# N; m6 r" G2 \# z
- (setq y4 105)5 n2 G0 B5 U; x; R, |! o
- (setq x4 (* mv_sc x4)
: i1 G& p, z$ Q2 \, S" b - y4 (* mv_sc y4) )
6 T. b# P, W; r+ t* M - (command l7 M c+ V- \( i# v9 ^
- "LIMITS" "0,0" (list x4 y4). }8 s- D Q; K0 K( S
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C" l& N9 H3 E @/ e2 B
- "RECTANG" "1000,250" "@13600,10000"
8 b1 u. x" g0 s# U8 X: @ - "RECTANG" "1100,350" "@13400,9800"
( v8 T# _/ ?; B$ t+ S - "ZOOM" "_a" ))
% w% W8 d8 ^1 n/ s( f2 W" W" y - ;=====================================================================" R0 ~* |% p$ \/ _; k# ~
- (Defun c:4a ()
1 a1 g/ t/ D- O% } - (setq mv_sc 100);Ti le ban ve
/ r! h! }* o7 D1 `2 k0 d3 {& z - (setq x4 297)9 U, {: V& j) u. x$ f2 l5 V
- (setq y4 210)) y* \* s C: p- K' [# j/ q/ [
- (setq x4 (* mv_sc x4) X$ k# X6 x0 K8 \
- y4 (* mv_sc y4) )' \: Y# ~+ p) F& b$ t3 p
- (command
" n; O7 y3 Y$ ~7 L7 W) g* S# r - "LIMITS" "0,0" (list x4 y4)
4 }+ {3 I! j1 _4 o% p - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"5 M' n+ A& {, C/ R) M
- "RECTANG" "2000,500" "@27200,20000"$ {- G; f; w S# G5 u
- "RECTANG" "2200,700" "@26800,19600"2 H* a7 X& A V# U" ?. V: g
- "ZOOM" "_a" ))
7 Z" u1 u2 b9 |0 ~8 A3 } - ;=====================================================================" J3 O* l. Q+ p$ M2 k' n+ U
- (Defun c:3a ()% g8 c; z2 A, s
- (setq mv_sc 100)
; v: q: h5 i: u8 a - (setq x3 420.0428571429)% c6 h' j% d9 }# m
- (setq y3 297) ~( T3 R6 e7 Q. z9 f& M+ O
- (setq x3 (* mv_sc x3)
5 a$ k9 S6 F/ F- z2 e - y3 (* mv_sc y3) )( q3 K8 k: O0 ^! C, b, K
- (command
0 T0 k2 n# b! U - "LIMITS" "0,0" (list x3 y3)
1 f. K% n" M5 u4 Z/ K - "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"4 u0 b8 p' ~- \6 k. K" D8 v
- "RECTANG" "2828.57142857,707.14285714" "@38468.57142857,28285.71428571"
. \* v% l5 l4 s) i- M - "RECTANG" "3111.42857142,989.99999999" "@37902.85714287,27720.00000001"
/ a3 x7 v, w! c9 D4 O9 |0 a - "ZOOM" "_a" ))$ C2 A8 |/ C3 \0 C7 C( S( s
- ;=====================================================================
' x1 _8 F' Y! L& m4 i - (Defun c:2a ()) ~4 d# b0 ^( b# `6 |- L4 M
- (setq mv_sc 100)5 P( n$ Y" m6 }( Q- F! `! k9 ]
- (setq x2 594)
8 ]+ d' P6 o) }- }$ a - (setq y2 420)6 x$ P4 O$ |% z- ^7 W
- (setq x2 (* mv_sc x2)
[% N( o4 n C! U; @) h2 U - y2 (* mv_sc y2) )' N/ d* N7 j C p; o" J }$ j
- (command ; d) W' c6 h' n! q
- "LIMITS" "0,0" (list x2 y2)
, u& h5 a# i0 y+ j& d7 q3 h" q - "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"
" C0 i) z+ S3 u& l2 W - "RECTANG" "4000,1000" "@54400,40000"
7 i, a3 S& T! A- V6 [ - "RECTANG" "4400,1400" "@53600,39200"
4 L$ a$ U2 I* ]* W. [+ o - "ZOOM" "_a" ))* ?! }# @8 r* w% E
- ;=====================================================================6 v: c' r% C* ?- z& `1 f4 S) x
- (Defun c:1a ()
, Q% a& Q& J: y - (setq mv_sc 100)4 {- k" e2 S! Q7 q- P+ ~: [) v
- (setq x1 840.0857142857)
* e0 a3 w+ C: z% ^0 V. F - (setq y1 594)
9 e' C+ L: k0 X3 Y% D - (setq x1 (* mv_sc x1)
) b: z0 e$ R2 q8 N - y1 (* mv_sc y1) )( [( Z% X2 ~) T7 Q# q
- (command
; B. {& t9 ^6 x - "LIMITS" "0,0" (list x1 y1)6 i+ Q. g. z5 N0 t! [9 S
- "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"
0 U# i7 i: S% X; u6 k& J - "RECTANG" "5657.14285714,1414.28571429" "@76937.14285714,56571.428571436"% S9 V" N6 j: Z* r
- "RECTANG" "6222.85714286,1980.00000001" "@75805.71428570,55440"
: L) L& L3 u9 U - "ZOOM" "_a" ))" Q2 ^/ K& ~) }% v" ]7 g
- ;=====================================================================
) X% T% b' R5 ?# X9 P' y# e - (Defun c:0a (). M Q+ @! h' c6 `
- (setq mv_sc 100)
! [& ?* x! c) ]2 O$ Z; s$ k5 s - (setq x0 1188)* f: q' T* e+ x, A: I' S. j Q
- (setq y0 840)
% i+ S+ G' j# N# a. Q" u4 l+ o- A - (setq x0 (* mv_sc x0) : s' I5 y. i! H! v
- y0 (* mv_sc y0) )
: O9 ^+ j/ ]( Z) {4 l - (command
" ?+ n+ H" a g0 b- e - "LIMITS" "0,0" (list x0 y0)* t6 D& D# m9 [+ g1 w3 X2 N
- "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"/ I$ f( H% q0 m% d3 c
- "RECTANG" "8000,2000" "@108800,80000"
# J" @/ f2 h. o0 g - "RECTANG" "8800,2800" "@107200,78400"
' Y" O8 ]' Q+ |) o3 z - "ZOOM" "_a" ))( m7 r! m3 X- e0 c( s9 _
- ! Q$ }0 u$ h& v: c1 A& T+ {
- ;=====================================================================; b5 o1 K# o6 W+ B
- ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================
I; w/ k- h' E - ;=====================================================================
8 h5 w- A* n4 T7 U" @) g - (defun c:khogiay (/ oldlst a b c d e f g h kho TL)
8 _! p* c7 ?! Y0 S" X, Z - (command "undo" "be")
4 Q4 q W" ?/ w& `3 Z& }- z - (setq oldlst (mapcar 'getvar (list "CMDECHO" "OSMODE" "cecolor")))% h! S& k( O' a- s2 n
- (setvar "CMDECHO" 0)7 y, ?# u3 F* F: m. V% m* H) F
- (setq a (getpoint "\n chon diem chen :"))5 V+ x J2 T, Z6 W/ m5 |
- (if (not TL) (setq TL 1.00))
1 @$ {" T! N6 ~6 d/ o - (setq TL1 (getDIST (strcat "\nScale <" (rtos TL 2 2) ">:")))! l2 Z. }/ V5 V: N
- (if TL1 (setq TL TL1))
! I, p5 c- S3 \/ N: D - (setvar "osmode" 0)2 E, |, C& ?: l1 {
- (if (not (tblsearch "layer" "Defpoints")) (Command "layer" "N" "Defpoints" "")): W! N1 \8 |- ^5 i% i8 u
- (initget "0 1 2 3 4")
- k$ H& L+ F1 d# a7 J# o - (setq kho (getkword "\Kho A0 _ Kho A1 _ Kho A2 _ Kho A3 _ Kho A4 [0/1/2/3/4]? <0>:")): i4 L/ f1 e- a! e
- (if (= kho "0")4 ^9 l! t; v+ k9 O$ {: y+ T ~
- (progn3 Z1 X, ?' ^7 z( Q* p% ^( B" J+ @' D
- (setq b (polar a 0 (* TL 1189)))
: h9 h. j+ w' z! r - (setq c (polar b (/ pi 2) (* TL 841)))( L! H0 ]5 M7 N) n
- (setq d (polar a (/ pi 2) (* TL 841)))
& \8 A `; K" ?0 o/ j) Z; S - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))
7 v# R! y$ @& i8 {. o9 [ - (setq f (polar e 0 (- (* TL 1189) (* TL 24))))
6 l6 `" U' o/ m0 x* M - (setq g (polar f (/ pi 2) (- (* TL 841) (* TL 24))))1 G& h2 {6 s' `& L) F4 H5 |* W% ?
- (setq h (polar e (/ pi 2) (- (* TL 841) (* TL 24))))0 S6 Y% p6 p- s8 O4 g, u3 h
- (command "Pline" e f g h "c") ! q% |* ?0 G. ]: n( R) N
- (command "change" "last" "" "properties" "layer" "0" "")7 q% h% w' ~8 @* P
- (setvar "cecolor" "4"); u' _; q* Z" W* I b6 ~
- (command "Pline" a b c d "c") v4 D* h$ a0 l; j4 d% \& F8 _
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
. I5 G8 Y! S9 m, k - (if (= kho "1"). w9 {- d m/ B
- (progn
" h9 [0 P: c$ q8 ]4 \& f! b - (setq b (polar a 0 (* TL 841)))
% _# J( Y D7 v, o3 @4 M - (setq c (polar b (/ pi 2) (* TL 594)))
6 |1 D1 {: U& D8 t' I2 | - (setq d (polar a (/ pi 2) (* TL 594)))2 K R+ Y, i; a4 r$ r7 n# s
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))
, D5 r0 k& n( k4 W - (setq f (polar e 0 (- (* TL 841) (* TL 24))))7 B* T+ \' H; ^. z6 W" \& J
- (setq g (polar f (/ pi 2) (- (* TL 594) (* TL 24))))( p/ a4 P' y4 q; ^# Z! s6 O+ D
- (setq h (polar e (/ pi 2) (- (* TL 594) (* TL 24))))
1 ?. }1 `" i0 X1 H, H - (command "Pline" e f g h "c") 3 C* Y& [/ R- p! ^
- (command "change" "last" "" "properties" "layer" "0" "")
2 o3 c# p. i. ]* c( e: f - (setvar "cecolor" "4")7 m( X! X7 M( I4 v9 y
- (command "Pline" a b c d "c")2 H G6 c! S0 r+ v/ z+ C6 S
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
2 X( j; J" B& P! R4 u* S. m" u - (if (= kho "2")
+ V# a, _1 D. m6 { - (progn
1 K% ?# r- u8 k, S o - (setq b (polar a 0 (* TL 594)))/ p w2 G$ {) A9 o& I* R5 k) B$ a
- (setq c (polar b (/ pi 2) (* TL 420)))3 |+ ?- I6 m( W# X0 _) T
- (setq d (polar a (/ pi 2) (* TL 420)))
& F0 ?/ G g4 O! y0 {: D - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))
' r0 Q1 M- O( C: g5 W- _$ @ - (setq f (polar e 0 (- (* TL 594) (* TL 20))))" D, o" S' _, D; N% B H4 c; t
- (setq g (polar f (/ pi 2) (- (* TL 420) (* TL 20))))
+ c' Q3 U- E* i: S! I3 F - (setq h (polar e (/ pi 2) (- (* TL 420) (* TL 20))))
& A. [% ~9 D7 l% O6 J - (command "Pline" e f g h "c") 1 ~6 g' s1 Q: U. k$ f
- (command "change" "last" "" "properties" "layer" "0" "")7 I& e7 ^; E, y
- (setvar "cecolor" "4")' `, }2 P% r& [, A1 N9 t# k
- (command "Pline" a b c d "c")9 C2 [ J( j5 A" I0 u- J8 E/ [
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
8 ?& v; @6 R) H2 R - (if (= kho "3")
: ^, W3 z8 Z8 d6 m0 f' \. I - (progn
' B8 O! y) I! Q' O' }/ s2 ~* x - (setq b (polar a 0 (* tl 420)))' M' m$ ]- N8 _" l
- (setq c (polar b (/ pi 2) (* TL 297)))9 U) S* F4 J" k% V
- (setq d (polar a (/ pi 2) (* TL 297)))0 P# w0 X; t P8 q, }
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))9 t$ k7 U# o4 _0 W9 }7 a; L- h
- (setq f (polar e 0 (- (* TL 420) (* TL 20))))
/ O. ?7 M' X' @ - (setq g (polar f (/ pi 2) (- (* TL 297) (* TL 20))))% C8 p P' s8 a) w6 _
- (setq h (polar e (/ pi 2) (- (* TL 297) (* TL 20))))& v* \4 `- _$ B D. x7 r4 F9 ^
- (command "Pline" e f g h "c"), w: ?6 M: \& Q7 O' j; M
- (command "change" "last" "" "properties" "layer" "0" "")
/ m; _4 I y7 H! j& k! e( N - (setvar "cecolor" "4")3 t) Z# I5 ^0 C4 {) }
- (command "Pline" a b c d "c")) F1 P( ~5 m+ s l$ V/ [. T
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
; E! [ x, p- o3 l& i4 i - (if (= kho "4")0 D2 [. w0 t; k$ V
- (progn- D# ^# B9 ?% X6 X
- (setq b (polar a 0 (* TL 297)))
/ J; ?, q# e9 D$ f - (setq c (polar b (/ pi 2) (* TL 210)))
& _3 h+ x8 }( f8 f - (setq d (polar a (/ pi 2) (* TL 210)))
- B3 S+ ^" B/ ^0 }4 I# ]" s - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 81)))))& O2 N2 [8 B4 A+ Z$ v7 M4 s
- (setq f (polar e 0 (- (* TL 297) (* TL 18))))
% q2 `+ \# q; [4 N - (setq g (polar f (/ pi 2) (- (* TL 210) (* TL 18))))
5 S8 L+ E1 h3 N- [ - (setq h (polar e (/ pi 2) (- (* TL 210) (* TL 18))))
& E) l( `7 K+ Z7 R0 S# L - (command "Pline" e f g h "c") 6 O7 h* Y. t6 i+ q0 {" Y# W6 o! C
- (command "change" "last" "" "properties" "layer" "0" "")0 ^& T( n( z# l
- (setvar "cecolor" "4")1 M5 |& ?9 T. A5 A) F
- (command "Pline" a b c d "c")% k7 d( n; c, E# ?5 Y1 E3 q! @
- (command "change" "last" "" "properties" "layer" "defpoints" ""))): Z+ n9 ^2 Q2 c( J4 O" c5 n
- (mapcar 'setvar (list "CMDECHO" "OSMODE" "cecolor") oldlst)
! @$ J( K; \; }6 [" J: Y2 g, m - (command "undo" "e")
9 C! Q" [- Y$ x0 Y9 _8 M5 n - (princ))" ]2 T: j( U3 s5 Q8 u) e8 ?; S/ M1 Y
- ;=====================================================================
/ D; f& C* C7 H3 X' t7 s - ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================
- t/ a G3 }# g! d5 x$ H" Q* M' l - ;===================================================================== _0 n' c7 I4 X; Y* E% O% I8 W
- 5 h" i2 C3 T7 R% V! o( r
- ;=====================================================================% K; }9 Y3 e$ P& l
- ;===================DAT Ti Le Theo KHO GIAY BAN VE====================+ H- |! l6 M* q* a0 X# }2 {
- ;=====================================================================
5 n0 K: ~, v8 ] _ - & e% y8 C4 b: o& b6 O$ K
- (DEFUN C:SA6 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.1" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""; _8 z+ f* a ?! W" e4 i' ?
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.3" "" d" O( G/ t+ S4 V
- "M" "MANH" "C" "9" "" "Lw" "0.1" "") T2 ?. N* I5 n" Q: R$ T
- "M" "TEXT" "C" "7" "" "Lw" "0.12" """ ?; ^, q( ]. J, g! x$ z, U# q6 ~
- "M" "DIM" "C" "1" "" "Lw" "0.12" ""2 e! Y# C4 `# h9 Z
- "M" "THAY" "C" "7" "" "Lw" "0.2" ""7 H% k: c6 j" a& Y/ ^! |
- "M" "NOITHAT" "C" "3" "" "Lw" "0.12" ""
6 Z1 d% r7 T3 ` - "M" "HATCH" "C" "5" "" "Lw" "0.1" ""
) C" G& }6 r C1 B - "M" "COT" "C" "1" "" "Lw" "0.3" ""4 ~2 u9 i+ b/ r: ^7 V5 |* z
- "M" "Defpoints" "C" "7" ""
/ H2 N7 P% K' \' |, |3 z - "M" "0" "C" "3" "" "Lw" "0.12" ""* h& ^9 e( n/ |7 S
- "M" "CUA" "C" "6" "" "Lw" "0.12" ""
( S% Y3 t9 z- H. u - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""0 C! B$ o* r' t
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.1" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "3" ""))0 x( l7 t# {& |7 B
- (DEFUN C:SA5 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.12" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "10" "", Y5 J/ h% b3 j' f/ F S, Q& I
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.4" ""
7 Y; M; h0 j3 q - "M" "MANH" "C" "9" "" "Lw" "0.12" ""2 L; G( ^& L. J8 k8 B& C# f
- "M" "TEXT" "C" "7" "" "Lw" "0.12" ""
, a1 L- ?5 M6 J' H3 t: G+ Z - "M" "DIM" "C" "1" "" "Lw" "0.2" ""
5 m$ K& r! D2 I - "M" "THAY" "C" "7" "" "Lw" "0.2" ""
) S$ n9 |0 T, g+ w: p; c - "M" "NOITHAT" "C" "3" "" "Lw" "0.2" "". m$ O% Q9 u+ \" V2 p
- "M" "HATCH" "C" "5" "" "Lw" "0.1" ""
5 x) X( y% G" N4 U/ ~0 S( x - "M" "COT" "C" "1" "" "Lw" "0.4" ""
" I0 X, c' y0 y" o - "M" "Defpoints" "C" "7" ""
. h1 H0 p) w6 S" l) ^) f - "M" "0" "C" "3" "" "Lw" "0.2" ""
- i1 p& P/ U# X9 f - "M" "CUA" "C" "6" "" "Lw" "0.12" ""7 [8 Q/ a( R+ e, S/ s4 h9 p# Z
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""
9 @* A- Y G0 H - "M" "TIMTUONG" "C" "5" "" "Lw" "0.15" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "5" ""))
7 j. v: u+ F) f6 |# d - (DEFUN C:SA4 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.2" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "20" "", @2 m' _9 B% O! U6 m+ L
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.6" ""
2 @% A5 v6 p/ v& T! w - "M" "MANH" "C" "9" "" "Lw" "0.2" ""/ S: F7 Y9 I2 w f
- "M" "TEXT" "C" "7" "" "Lw" "0.2" ""
, m- Q9 {) e1 |" e. p) J( b - "M" "DIM" "C" "1" "" "Lw" "0.25" ""
- V" G4 K2 l" Y9 |4 b. S" S - "M" "THAY" "C" "7" "" "Lw" "0.35" ""
; r d" g# ?( P% C - "M" "NOITHAT" "C" "3" "" "Lw" "0.25" "", |" N b3 ]' }! E) r
- "M" "HATCH" "C" "5" "" "Lw" "0.15" ""8 j h; ]6 u0 v9 O; d
- "M" "COT" "C" "1" "" "Lw" "0.6" ""0 h5 C; m. C# O2 Q' L7 ^; o# \
- "M" "Defpoints" "C" "7" ""
2 Q6 m# V5 L: Y8 i0 K% ^+ } - "M" "0" "C" "3" "" "Lw" "0.25" ""4 V0 o' Y: m6 n M# j0 ?
- "M" "CUA" "C" "6" "" "Lw" "0.25" ""5 \- E2 ?2 ^8 O! D% y! ~
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.25" ""
: s4 T3 {3 L: K3 _ j5 q1 Q - "M" "TIMTUONG" "C" "5" "" "Lw" "0.2" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" ""))% w9 U% }# D( _( W$ b' W
- 1 I; [0 G+ ]7 Q' |7 M* K
- (DEFUN C:SA3 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "30" ""
7 i! D& Y: L* T( c2 c+ [ - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""' r0 k+ }8 a8 n: G$ K- s. A
- "M" "MANH" "C" "9" "" "Lw" "0.25" ""* n7 Y5 P! }+ F( q" Z
- "M" "TEXT" "C" "7" "" "Lw" "0.2" ""
& a! K+ v) C0 }9 s% I! \& k - "M" "DIM" "C" "1" "" "Lw" "0.35" ""$ Y- W. N2 m6 }$ T$ A
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""
1 o6 ^8 i& p/ ?; R4 k9 j D - "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""* X# f( U# E7 c5 Y9 k; l
- "M" "HATCH" "C" "5" "" "Lw" "0.2" ""
: y9 t! _3 P+ | - "M" "COT" "C" "1" "" "Lw" "0.7" """ V: P2 F" c& q. ?2 d$ n s; o
- "M" "Defpoints" "C" "7" ""9 m9 j, h/ S4 x2 M
- "M" "0" "C" "3" "" "Lw" "0.25" ""
/ _1 ?- s9 T# x U: I7 k - "M" "CUA" "C" "6" "" "Lw" "0.35" ""
; b' F3 N0 t& x1 ]$ U - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""
# ?' l5 V6 X/ B$ x - "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "20" ""))(PRINC)5 g! e: Q3 C2 e5 _
- ) B& ~, v6 J0 ~+ U
- (DEFUN C:SA2 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "45" ""( W2 i7 r, y: t. B* E Z# Z
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""% t2 z) c! P& r0 M( W6 f+ k
- "M" "MANH" "C" "9" "" "Lw" "0.25" ""
) Y* w5 D3 u$ n: v+ | - "M" "TEXT" "C" "7" "" "Lw" "0.25" ""
8 k; a% m* L0 L$ H" a1 d, y - "M" "DIM" "C" "1" "" "Lw" "0.3" "": r4 c% \4 b- s! h' O
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""5 e: Q4 [- M3 `) m
- "M" "NOITHAT" "C" "3" "" "Lw" "0.3" ""9 \3 ~( p( o! w; o3 }8 j
- "M" "HATCH" "C" "5" "" "Lw" "0.2" ""( M v7 d. s' L" z4 R
- "M" "COT" "C" "1" "" "Lw" "0.7" ""
# |* Q) k! q/ V, Y0 O1 { - "M" "Defpoints" "C" "7" ""+ Q, S+ l. ]: A
- "M" "0" "C" "3" "" "Lw" "0.35" ""
5 A. F3 E0 n! M. u# W4 h - "M" "CUA" "C" "6" "" "Lw" "0.35" ""/ @3 b( Y P! a1 o
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""
# ~& z3 Q; Z5 A" }, b7 c5 U - "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "30" ""))
' h& Y7 C* e. H9 a2 X6 x - 9 ~7 e% Z) I6 S+ S
- (DEFUN C:SA1 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.4" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "60" ""
$ D. V$ Z; t6 F - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.85" ""9 u+ k: f# R: U% h# O9 `
- "M" "MANH" "C" "9" "" "Lw" "0.35" ""6 I/ F& n- U/ z4 Q) J
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
) m1 h7 ~. Z5 O- @$ l/ i - "M" "DIM" "C" "1" "" "Lw" "0.35" ""
+ w6 k6 l( }+ ~2 v3 g& Q0 T: E - "M" "THAY" "C" "7" "" "Lw" "0.4" ""
% u( I. \" a5 W& O1 v% ?. J - "M" "NOITHAT" "C" "3" "" "Lw" "0.35" ""/ X- Y: q: j8 R, f5 F4 r2 |* a z
- "M" "HATCH" "C" "5" "" "Lw" "0.25" ""
: I) B* l0 w9 s9 o" x! z/ z - "M" "COT" "C" "1" "" "Lw" "0.85" ""+ B$ W! H# Z1 _0 s
- "M" "Defpoints" "C" "7" ""4 h% [* X7 y. n* e' B8 M2 i
- "M" "0" "C" "3" "" "Lw" "0.35" ""
3 k4 q7 s4 k4 z$ ^) A3 \ - "M" "CUA" "C" "6" "" "Lw" "0.4" ""
* c& d' q+ g% _, B6 k - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.35" "". W: @. T" z; d) e6 X
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.3" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "40" ""))
* W3 u1 T6 B r: F( b, g1 b -
. i0 l6 H" \. T6 u y. P4 r { - (DEFUN C:SA0 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.5" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "85" ""
9 \# [# Y4 n, Q( m8 Q - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1" ""! L) z- z1 ~ R: q
- "M" "MANH" "C" "9" "" "Lw" "0.35" "" p' d( P @- x" {8 O, r% g! G; e
- "M" "TEXT" "C" "7" "" "Lw" "0.5" "". C5 f2 X6 h; w7 E5 F
- "M" "DIM" "C" "1" "" "Lw" "0.35" ""
7 X3 \2 |7 V3 H, E& l- p - "M" "THAY" "C" "7" "" "Lw" "0.5" ""
T- j) H0 R4 u1 Z1 u) ?: w - "M" "NOITHAT" "C" "3" "" "Lw" "0.4" ""
/ B- w# l7 K& ^ - "M" "HATCH" "C" "5" "" "Lw" "0.35" ""
/ O, r; J* n8 D! h z0 w3 ? - "M" "COT" "C" "1" "" "Lw" "0.1" ""( |; U" X, u5 A$ m( R
- "M" "Defpoints" "C" "7" ""
* q$ _1 O; q( ]% Z2 |0 {3 \8 Q - "M" "0" "C" "3" "" "Lw" "0.5" ""
" a4 g; J0 @7 d, h9 M4 Z% n, F+ m - "M" "CUA" "C" "6" "" "Lw" "0.5" ""
C( G7 M X4 f+ A/ X( w+ e - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.4" "" h% ~- P1 m4 F7 L, I7 M
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.35" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "55" ""))8 m5 P5 r% w; k8 Y8 ^& G7 u
- (DEFUN C:O () (COMMAND "OFFSET"))) Z/ ~+ _) x; K8 Y5 V$ E. q! G
- (defun c:s1 () (command "surftab1"))+ a& J( @4 S* v8 Z4 [- ]4 U
- (defun c:s2 () (command "surftab2"))' @. `6 Y. F# I: F1 B. ~2 r# ]
- (defun c:ep () (command "explode"))
% ?! R- r( t& l - (DEFUN C:QS () (COMMAND "AUDIT" "Y" "purge" "all" "*" "N" "QSAVE"))7 j0 g# ^* I. K m* O$ U6 k* a
- (DEFUN C:QV () (COMMAND "QSAVE"))! H. s, G7 S, S# z9 l I2 V
- (DEFUN C:S () (COMMAND "STRETCH" "C")). Q! s" x0 {0 \7 c, s
- l/ w# }* t) l5 D. m- ;************************** CAT DIM **************************
6 h- N1 v, u; D! r3 w - ! J2 N9 l/ l4 b5 y) r
- (DEFUN C:DC (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I
0 r0 w) A% M* ]: n' X+ H) \5 z - PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)* {# l4 D) q S
- (SETQ CMD (GETVAR "CMDECHO"))
/ Z( [( F2 D3 H* }+ |" a( P% W - (SETQ OSM (GETVAR "OSMODE"))& A# f$ c% d- K1 L0 ]) H* B# V
- (SETQ OLDERR *error*% w3 D8 F$ T3 J3 S
- *error* myerror)
1 V" {* ?: }( d- p4 O - (PRINC "Please select dimension object!")- d; M% u) |. |3 T% d. m, u' D
- (SETQ SS (SSGET))
3 g" \6 c+ n# o7 T - (SETVAR "CMDECHO" 0)
# }1 w0 p/ n$ a3 N - (SETQ PT (GETPOINT "Point to trim or extend:"))
; B9 @$ u! I$ S' C - (SETQ PT (TRANS PT 1 0))
6 V. g5 y* w5 @: F2 H - (COMMAND "UCS" "W"). r2 M. g# n- `
- (SETQ LTH (SSLENGTH SS))
2 o# o) m' q! k9 d - (SETQ DEM 0)/ L R3 Z7 v8 k1 I
- (WHILE (< DEM LTH)+ [2 ?5 e' l) d* { d! D
- (PROGN
1 z! s9 R6 j/ h0 f+ b! m - (SETQ DS (ENTGET (SSNAME SS DEM)))/ S: O7 `/ x; I
- (SETQ KDL (CDR (ASSOC 0 DS)))
6 U. Y% Q, ?) C! c/ B - (IF (= "DIMENSION" KDL)! c, W c- c1 C' S! t. E- s O7 P0 R! ~3 P
- (PROGN( ~5 W, j, y' Y
- (SETQ PT10 (CDR (ASSOC 10 DS)))
; W1 x7 B5 f/ k$ F& ?0 @( D - (SETQ PT11 (CDR (ASSOC 11 DS)))/ I% p+ X. ~' l# p1 V- I6 X
- (SETQ PT13 (CDR (ASSOC 13 DS)))9 q5 d8 {! T# s- `1 w. [2 O
- (SETQ PT14 (CDR (ASSOC 14 DS)))
# V( J3 L) O, N1 j4 k/ q" j - (SETQ N70 (CDR (ASSOC 70 DS)))* m7 F+ Z. F7 V
- (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161)), R) D% e" {7 |
- (PROGN- B% [+ V! K& n: u8 b
- (SETQ GOCY (ANGLE PT10 PT14))
2 m" N7 }' P4 T% K5 I+ T - (SETQ GOCX (+ GOCY (/ PI 2)))
% o- `. H8 e/ t- R - )$ S, G q( x4 Q2 j- v" ]2 k [; P
- )
# z4 |- `, m, n7 g - (SETVAR "OSMODE" 0)
0 p: |- C# E% v* ?. M - (SETQ PTI (POLAR PT GOCX 2))
' e: e; [) x* b - (SETQ PT13I (POLAR PT13 GOCY 2))
5 B3 {7 L# C& e* O - (SETQ PT14I (POLAR PT14 GOCY 2))3 x- h7 `/ m; y9 w% ^. I/ F
- (SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))
! S0 v1 i* p, D A - (SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))' N: f$ J# P- c! |
- (SETQ O13 (ASSOC 13 DS)), f5 i& [8 O4 R+ A" G
- (SETQ O14 (ASSOC 14 DS))1 C. a$ X. @1 H& n2 K0 a
- (SETQ N13 (CONS 13 PT13N))
% t! ^+ p. \9 C - (SETQ N14 (CONS 14 PT14N))
4 P0 W1 |5 F! c) j5 O( p# Y - (SETQ DS (SUBST N13 O13 DS))7 s5 g8 s3 ?+ W, L
- (SETQ DS (SUBST N14 O14 DS))! M ]. g% x; A* R3 k
- (ENTMOD DS)
; x2 B' D! N. _1 s7 b# P) N - )2 o" }- I# G* e! I0 b
- )
% O Y* {5 V2 Z5 T% {( d - (SETQ DEM (+ DEM 1))
* D9 m( w( s: F4 H - ). g. H& c9 `! T2 ~7 _
- )
w) B" r$ \7 L0 w6 ]6 j- } - (COMMAND "UCS" "P")
2 N' z, X( ~6 D, R! r" b7 z5 _ - (SETVAR "CMDECHO" CMD)) \3 n8 U2 Z# {
- (SETVAR "OSMODE" OSM)2 s) Y8 P6 b- D
- (setq *error* OLDERR) ; Restore old *error* handler
: Q/ z& Z3 R2 s, ~" [% J1 s - (PRINC)
2 O9 c+ H' u, r, W2 R, D - )
8 l( H8 k2 O. I1 J - , ?3 b; e5 }$ [4 y* B- e$ w
- (DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI& u2 Q+ e% D% [' _
- PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)7 l0 g, t' O: j! \0 G6 Y
- (SETQ CMD (GETVAR "CMDECHO"))( D0 F8 B- u1 a( X* i
- (SETQ OSM (GETVAR "OSMODE"))8 V( k" V, C2 w6 ]2 r/ Q
- (SETQ OLDERR *error*7 A# n# S1 Z' U) e) Z
- *error* myerror). D/ n- }% I# Q* a+ Y( M3 {# f
- (PRINC "Please select dimension object!")
0 v; ]# }- ~, }2 X) o - (SETQ SS (SSGET))1 y9 P, o/ x+ b+ c J& r% y" H
- (SETVAR "CMDECHO" 0)5 }) G! @' z1 t
- (SETQ PT (GETPOINT "Point to trim or extend:"))
/ Y* K, h. H r - (SETQ PT (TRANS PT 1 0))
6 H$ P0 I+ q, X* t/ l( v3 m) E - (COMMAND "UCS" "W")) G8 a, f, r" M m# l$ j& e
- (SETQ LTH (SSLENGTH SS))7 K8 B' T( `+ j& u$ k
- (SETQ DEM 0)6 L' C) |0 T* F; w. c7 K
- (WHILE (< DEM LTH)
3 X% K' [; w1 w& a% h a - (PROGN* s" c' ^9 h# a1 @1 m1 H0 N, _' l
- (SETQ DS (ENTGET (SSNAME SS DEM))), o& f: g+ D' d% |# P
- (SETQ KDL (CDR (ASSOC 0 DS)))
/ |0 a% F r6 N$ W# i; } - (IF (= "DIMENSION" KDL) k3 P+ P' C- Q0 b
- (PROGN8 x% `6 L3 p/ `7 }
- (SETQ PT13 (CDR (ASSOC 13 DS))) l( Z# U4 W2 ?+ c6 ^% k
- (SETQ PT14 (CDR (ASSOC 14 DS)))
! s/ B% a5 B! u \0 Q - (SETQ PT10 (CDR (ASSOC 10 DS)))* [ i5 I! n2 h5 J& A% \2 t
- (SETQ PT11 (CDR (ASSOC 11 DS)))
s9 Z' q6 P7 `2 J5 ] - (SETQ N70 (CDR (ASSOC 70 DS)))
( R& b! d% h2 y - (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))3 k/ C2 a7 q8 d4 H
- (PROGN
5 e1 Y0 F9 p+ x8 r% O - (SETQ GOCY (ANGLE PT10 PT14))
2 k* B+ T+ P' Z - (SETQ GOCX (+ GOCY (/ PI 2)))% P" s5 z! X' }! g1 \
- ); p- e F& S- I+ M7 j
- )3 f! `8 C; y" X
- (SETVAR "OSMODE" 0)% d4 o! d7 z' o! u5 @1 y3 b3 K
- (SETQ PTI (POLAR PT GOCX 2))4 R( L. W. F) o4 c
- (SETQ PT10I (POLAR PT10 GOCY 2))6 c4 b3 [$ t5 g* Y( l1 b
- (SETQ PT10N (INTERS PT PTI PT10 PT10I NIL))
! l) g" E8 i% Z8 }' W7 R. V - (SETQ KC (DISTANCE PT10 PT10N))1 P$ A; F1 [9 `* R! d6 s4 e
- (SETQ O10 (ASSOC 10 DS))
; U/ h& P* p6 s7 ]' ] - (SETQ N10 (CONS 10 PT10N))9 x9 v! G0 ~& {" Q; ~
- (SETQ DS (SUBST N10 O10 DS))
9 g7 r# g+ m8 }4 y. c' E - (SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC))2 {6 p0 ` Y. l3 T. e$ A. N
- (SETQ O11 (ASSOC 11 DS))
- C3 K p% m1 I9 u- Y - (SETQ N11 (CONS 11 PT11N))
2 D- p. {- i3 a9 N% j - (SETQ DS (SUBST N11 O11 DS))) F1 w& E5 p4 |' ?
- (ENTMOD DS)% \1 B, ~5 t; v$ n& R; M
- )
. U8 M9 K: }: B! ^ - )' I1 ` J/ z. P. m# `
- (SETQ DEM (+ DEM 1))
5 T3 f; R7 L1 x: p5 }3 t - ); n1 c9 ^$ c. N7 X3 f9 h) p! q
- )3 [- D% }/ c( f8 A4 r- ~& [4 z
- (COMMAND "UCS" "P")
2 r+ N |1 s B: x - (SETVAR "CMDECHO" CMD) a- `: |2 c# b9 r7 M" Y- V
- (SETVAR "OSMODE" OSM)
& I5 \9 E3 j& s$ U% v7 i - (setq *error* OLDERR)# g( G8 ]$ b& h) T8 Y
- (PRINC). D. Z( _! Q+ o& |3 A6 U& b, `
- )! _. m7 S! s% o P6 C5 ]' V( I
* o. S- ]+ f, S; J- ;;; ================ BAT - TAT CHE DO GACH CHAN TEXT (TU) =================: L. Y& \( U8 i) ]0 d( |4 k' \, P8 S, c
- 3 g# {8 G& p7 z
- (defun c:tu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can gach chan ")
- i* ?* ~. ^- L7 c1 j0 x4 ^ - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
- K* {! L/ J7 s; G# W d - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt" P. Q0 O: h7 z `
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
; c: X9 d& S8 J& L# n. H' p - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%u")6 _6 B! }7 m. Q: E
- (= testxt "%%U"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%u" txttxt)))/ H4 H$ P: ^! ?
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
* J# {, j5 W2 V4 Y. S- \6 T - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))% M8 Y' R( I6 e
- : |& k4 ~4 W5 H7 p2 v
- ;;; ================ CHEN COT (TUU) =================# j5 C5 |* T' ?" e3 p
- 4 m0 T* n7 \8 V! I6 x: c8 z- i' s
- (defun c:tuu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen cot ")
9 e4 s; H/ ?# D, Q# n - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
! ^7 T+ L; }. W* [! \* M3 c+ w - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt+ H/ z: u: C$ ]$ k9 W
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt))) ^" W0 B& x) a5 a" _
- (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%p 0,000")& X& m# l! C$ S5 ?
- (= testxt "%%P 0,000"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%P 0,000" txttxt)))
/ t: i2 T8 ?) G0 B7 s" m# ^ - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))" L0 o5 E( g) y; W; I( \1 I
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
# a+ v: \# D! a6 _2 C; d2 F% J0 X* H - 3 @3 M6 v0 P5 x* [: ^8 Q* R6 ?6 H
- ;;; ================ CHEN KY HIEU THEP (TP) =================
$ X- s0 w4 A: {' g) C* I; q% d - ) g! r2 ]$ T1 N; K7 z
- (defun c:tp () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen ky hieu thep ")' e7 m: J1 Y1 t: ]2 b' k) j: H
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")# a7 s0 N: @. K' P) z
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt% R: j$ Y0 T f4 ~1 w; D
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))) h; ^3 P& _* I* J9 i6 _
- (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%c")$ S7 z8 ~% F$ @. S5 D" P8 e4 B, U
- (= testxt "%%C"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%c" txttxt)))6 L# ]4 g. U6 _9 M$ D( p, y4 t; @5 `
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))" d( w4 `, D& {
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))$ P0 |/ e3 P7 F1 V H- Q
7 W1 \( g$ _ r, i/ h) q. l+ M7 s% o- ;=========================== TAM TUONG (TAM) =================================9 E8 z W0 O1 z4 E; q8 S B
- 4 ?1 l7 l4 Z# d* j! j
- (defun c:tam(/ data_m)* |; P! V* |, g7 K
- (defun import_data(/ i)(setq data_m (ssget))(if (= nil distan_m) (setq distan_m 110.0))
' s0 Y3 e# H' E - (princ "Distance (")(princ distan_m)(princ "):")(setq i (getreal ))(if (not (= nil i))
# \# M7 O9 b6 u% f7 M" Y( T) G - (setq distan_m i)))(defun process(/ ent check)(defun p_check()(setq check 0) e9 M7 y$ o6 K/ p. h. `
- (if (= "LINE" (cdr (assoc 0 ent))) (setq check 1))(princ))(defun p_d_offset
3 N% x& A% ?8 C t( _0 K - (/ p1 p2 p3 p4)(defun makeline(/ e2 e5)(setq la (list (cons 0 "LINE")(cons 5 (cdr
3 q9 ^+ L" j) O" q, S9 n* } - (assoc 5 ent)))(cons 8 (cdr (assoc 8 ent)))(cons 10 p3)(cons 11 p4)))(entmake la)(princ)
7 h& j6 @ O/ G! b* `! P4 U, _% K - )(setq p1 (cdr (assoc 10 ent)) p2 (cdr (assoc 11 ent)))(if (not (= p1 p2)) (progn (if
1 ?* |8 z' ~* D. u* x! f2 G* P - (< (abs (- (nth 0 p1) (nth 0 p2))) 0.000001) (progn (setq p3 (list (+ (nth 0 p1)3 S9 u. n0 P2 F6 ?3 a5 Y/ L, w" p
- distan_m) (nth 1 p1) (nth 2 p1)))(setq p4 (list (+ (nth 0 p2) distan_m)(nth 1 p2)
$ u0 b, X m2 L; L# S+ l - (nth 2 p2))) (makeline) (setq p3 (list (- (nth 0 p1) distan_m) (nth 1 p1) (nth 2 p1)))( ]$ k% F2 L; M: W; m1 q
- (setq p4 (list (- (nth 0 p2) distan_m) (nth 1 p2) (nth 2 p2))) (makeline)))(if (<* C2 S4 F# o; k5 f, h* j
- (abs (- (nth 1 p1) (nth 1 p2))) 0.000001) (progn (setq p3 (list (nth 0 p1) (+ (nth 1 p1)
}0 G; [; a* ]; F% ~1 {' V - distan_m) (nth 2 p1)))(setq p4 (list (nth 0 p2) (+ (nth 1 p2) distan_m) (nth 2 p2)))
9 P: `, G \: g& z* @( U - (makeline) (setq p3 (list (nth 0 p1) (- (nth 1 p1) distan_m) (nth 2 p1))) (setq p4) G; J! o2 l% b& q7 E
- (list (nth 0 p2) (- (nth 1 p2) distan_m) (nth 2 p2)))(makeline)))))(princ))(if (not. l6 _3 k) _, {! Q3 P' L
- (= nil data_m)) (progn (setq i 0)(while (< i (sslength data_m)) (progn(setq ent (entget, \9 r, l: R9 y) x
- (ssname data_m i)))(p_check)(if (= 1 check) (p_d_offset))(setq i (+ i 1))))))(princ))7 R6 _4 X+ t! ^* w; S1 r7 U/ `
- (import_data)(ai_undo_push)(process)(ai_undo_pop)(princ)), _- u9 }, K) I! M6 ?6 @5 @6 H3 w
/ x1 |* }2 a8 \* @- ;============ GHI CHU PHI (T1) ================
" z* |9 p5 B3 b
1 p( r3 B. \6 J# Y! `- (defun c:DuongDan ()(setq D1 (getpoint " Diem thu nhat: "))(setq D2 (getpoint "Diem thu hai: " D1))
+ I7 O; q$ v# F0 s* w& g; @ - (if (> (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (< (car D2) (car D1)) (setq D3
+ p! }) O! p, ~1 A - (polar D2 PI 16)))(if (= (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (> (car D2). N) R+ f5 Q9 v0 W# t8 L, |) V
- (car D1)) (setq D4 (polar D3 0 3.2)))(if (< (car D2)(car D1))(setq D4 (polar D3 PI 3.2)
) H. H+ ]3 o4 l7 z9 V& C$ j - ))(if (= (car D2) (car D1)) (setq D4 (polar D3 0 3.2)))(if (> (car D2) (car D1))
" T/ u- G3 x, ^! |8 g6 o9 ?& o2 A - (setq D5 (polar D2 (/ PI 9) 3)))(if (< (car D2) (car D1)) (setq D5 (polar D3 (/ PI 9)
# l6 ^- c1 M% h q! e8 x7 u+ f - 3)))(if (= (car D2) (car D1)) (setq D5 (polar D2 (/ PI 9) 3)))(command "color" 1)- u T0 I! F( @% F' D% }! |* A* \
- (command "line" D1 D2 D3 "")(command "circle" D4 "3.5")(command "color" 7 )
& } J/ w% [8 D: A7 U! Y+ e - (command "text" "m" D4 2.5 0 "1")(command "text" D5 2.5 0 "%%c6a150")
3 L, q& E; M$ v6 P! o - (command "ddedit" pause))
" K1 P5 V6 O& u9 q0 l4 `1 C, _/ }, V
7 E& \& R" n _, g# I1 \- ;;; ========================== Join (J) =================/ q4 R8 o& E( A- p g3 E% x( p2 M1 X$ L
- / ^: L Y" P t( H
- (defun C:J () (Setvar "cmdecho" 0)(setq m:err *error* *error* *merrmsg*)(setq sset (ssget))5 B+ \! R. L6 ~ `
- (if (null sset) (exit))(setq kt (getstring "\nJoin all (Y/N) <Y> ? "))" z. Z( x+ e% f4 f- p% b! h" C
- (setq ssl (sslength sset))(setq temp (entget (ssname sset 0))etype (cdr (assoc 0 temp)
! o2 Q% o1 f) P2 U - ))(cond((or (= kt "Y") (= kt "y") (= kt ""))(progn (cond((= etype "POLYLINE")
3 e' Q/ k1 F" o D: d2 n) s$ d - (COMMAND "PEDIT" sset "J" "all" "" ""))(if (or (= etype "LINE") (= etype "ARC"))
' \8 F! L8 k( V. U - (COMMAND "PEDIT" sset "" "J" "all" "" "")))))((or (/= kt "Y") (/= kt "y") (/= kt ""))4 i$ F+ Q0 b6 h- z6 M! Y
- (progn (cond((= etype "POLYLINE")(COMMAND "PEDIT" sset "J" sset "" "")) # f, Q' K; F/ {; c0 \& E* C$ d9 ]
- (if (or (= etype "LINE") (= etype "ARC"))(COMMAND "PEDIT" sset "" "J" sset "" ""))))))
$ U! D p3 x! E' Z- } - (setq *error* m:err m:err nil)(princ))- ]4 _6 {% t$ K
( E+ d8 [: E9 m- Z: x4 e' n% Z; K- ;=====================================================================& Y3 ~' d0 F1 A+ z# ?! E
- ;;; DOOR.LSP 1.0, Copyright (C) 1998 by CAD Department, HUCE.1 f" w- B9 W+ Z& f- D( F8 |
- ;=====================================================================
3 h- s+ o* n$ U7 p! X - D- q+ u! I4 [, x) P d
- (defun C:D1 (/ p1 p2 p3 p4 side dis wid ang angsile old)
# v7 F8 O+ x5 q2 V) U9 A* c - (setq old (getvar "OSMODE")) 2 L6 _8 ~9 z# b w
- ^4 u5 p F8 Q% F0 q% F- (setq p1 (getpoint "\nStart point:"))! K$ b- k) V5 z& F
- (setq p2 (getpoint p1 "\nEnd point:"))$ z4 c. V* E4 s' {& ~/ P
- (setq side (getpoint p2 "\nOpen side"))
/ F% H3 q6 R: V! b, k - 7 N* |6 M# R4 y" S/ H
- (setq dis (distance p1 p2))
L D A( `2 r& i9 a - (setq ang (angle p1 p2))1 I7 A* F- s5 A6 e7 _* z/ A
- (if (< ang (angle p1 side))
0 q0 C5 D, m# ?& I+ u) S - (setq angside (/ pi 2) )1 m- o# ?2 w- X/ [: u: ^. l) I& B( V: F5 K
- (setq angside (- (/ pi 2)))
( _4 s% H6 A: @; s* h& {; q7 T - )% z5 |2 H. J m; ^1 y [8 d( `! q
- (if (>= (- (angle p1 side) ang) pi)$ m% f* v# _/ }9 d. ?
- (setq angside (- (/ pi 2)))0 X( K3 K4 d# `) m9 E
- )
2 q$ F4 P) j# o; r4 S) Y - (if (>= (- ANG (angle p1 side) ) pi)
+ D4 @, s+ L9 \ - (setq angside (/ pi 2))3 h. h L& } R- ^! @6 J, Q
- )
5 T) }$ \+ U- s8 D: b
/ q! t+ }: V* [/ U7 |9 {- (setq p3 (polar p2 (+ ang angside) dis) )
* p ~$ l4 [3 R - (setq p4 (polar p1 (+ ang angside) dis) )
+ j9 n% w& D7 p: }3 r - (setq wid (/ dis 15))8 f8 S' r/ Z Z
; R/ |. ~7 v; n1 V: l/ r- (setvar "OSMODE" 0)) w! U! b1 Z4 o: A
, w% o' k" l( c! b0 F- (command "PLINE" p1 "A" "D" p4 p3 "L" p2
8 w3 K+ o, e- Q( T( `# \ - (polar p2 (+ ang pi) wid)
, t2 C# c# p3 \: n3 {- W2 u5 ^ - (polar p3 (+ ang pi) wid) ( B- C) b% n9 u) ^+ }
- "")/ V a0 w% p7 A
- + u. t( u4 O$ g3 {& u
- (setvar "OSMODE" old)
' \6 {6 @4 |# c0 J5 D) o2 h* A5 Z - (princ) Y/ j( ~ n2 i$ z n/ Q. x% ~
- )
7 R% l! O2 I8 L( V1 U - ! m- w0 ~2 E: v1 a2 c" i8 f
- ;=====================================================================' i+ D( \# L8 `' I
- ! j, z* ^; \& s
- (defun C:D2 (/ p1 p2 p3 p4 side dis wid ang angsile old); K7 W1 k# w4 r1 ?0 q6 U& n
- (defun cua1 (pt1 pt2)& C: Z- n( ?, N
- (setq p1 pt1. R. m9 U0 O) n- G& a
- p2 pt2)# R/ f+ X3 i8 U& G! [7 W
- , K/ P2 ?0 |: G
- (setq ang (angle p1 p2))
8 o% p5 @" g% y* s3 H2 h - (if (< ang (angle p1 side))
( z" i, O' a) L! B - (setq angside (/ pi 2) )% I( O3 {- I" ] r
- (setq angside (- (/ pi 2)))2 Y$ P# }4 ^! V) p
- )+ G8 d: [; N/ @" o1 x3 l
- (if (>= (- (angle p1 side) ang) pi)# G' q0 H3 ?) O: z* q. o& L Q; p
- (setq angside (- (/ pi 2)))
% ], g! A8 j. X) E - )
* x5 D1 e6 Q4 { - (if (>= (- ANG (angle p1 side) ) pi)
3 ]* E* Q/ P$ @ - (setq angside (/ pi 2))
J- D% ]0 [) p - ); Z# |- u% v; I, j' } X/ e2 Q
/ ^9 v1 C# i' y) Y" g- (setq p3 (polar p2 (+ ang angside) dis) )
" [5 @- ^; G& j7 y& M" {1 d# ` - (setq p4 (polar p1 (+ ang angside) dis) )' J1 L! d% m- i d7 L3 V
- (setq wid (/ dis 15))7 D9 T9 c" P; K0 S6 [
5 ^# Q! Q8 X" n: e5 Z g" x- (command "PLINE" p1 "A" "D" p4 p3 "L" p2 % G' q) _& ]8 w4 L
- (polar p2 (+ ang pi) wid)
3 ?! y4 s- l8 `* e - (polar p3 (+ ang pi) wid)
8 o4 w' r7 P5 s! H2 U - "")
; Z. J* U( ^7 D - )
' A, Y8 J2 ?/ O, g& ?! D2 X! ~ - ;=====================================================================
) g8 z) m) P/ n: X$ J - (setq old (getvar "OSMODE")) ' V2 ^4 r( }( v5 V- j
& m3 x& ?/ Z8 N. }- (setq p1 (getpoint "\nStart point:"))* c) {0 v U2 |, i2 j6 |" J/ w2 S0 n0 r
- (setq p2 (getpoint p1 "\nEnd point:"))$ c$ }4 U1 L1 e% u
- (setq side (getpoint p2 "\nOpen side"))
& m/ A! Y& t% P: L - 4 F n* ~* B; D
- (setq dis (distance p1 p2))2 \5 e% z' G( d5 Q# p+ [5 V Z/ z7 h
- (setq dis (/ dis 2))
* N; J! _ C( F7 ?7 h
0 P! v2 J. v1 x% S- (setvar "OSMODE" 0)
" j0 f6 m; b+ a# M, s7 N - & Z# Q+ A( C3 w1 a. _* A
- (setq p1 (polar p1 (angle p1 p2) dis)), P; R2 D8 ?2 z) r$ G/ Y- ?7 R
- (cua1 p1 p2) 8 I% R4 Q! R0 z4 s. ]; x5 X
- * p! `3 ~3 W6 ^8 T
- (setq ang (+ ang pi))
4 B4 D* T& ?; X( D9 k: Z - (setq p2 (polar p1 ang dis))
* ]* U0 Q; j9 q) T! E8 m5 o - ; (setq side (polar p1 () dis))
% C& O! P# Y4 x; I0 t Z - (cua1 p1 p2)
1 p% W( m8 q% S% B0 T J
, Z1 m9 V: A+ B; ~- (setvar "OSMODE" old)
. S# _5 w) d9 |) D6 v - (princ)
, t) H: \* J" _1 i" U - )
- r: W4 W/ ^1 Y1 g - 9 g' f; }; W+ Z
- ;=====================================================================7 K8 G$ K$ k% E8 K: w7 K
- ;"Glue" text strings. All adopt first's properties.7 j; L% K/ z- ^3 p8 ]( ~% M
- ; Author:
- t/ o1 y& K6 r& H - ; Henry C. Francis
. R/ s, ~% y# Y; Z1 {: { - ; 425 N. Ashe St.5 u) x! h# v5 p4 H& `6 V, O; m
- ; Southern Pines, NC 28387
0 ]1 ]4 d/ a9 J k9 k1 P' | - ; http://www.pinehurst.net/~pfrancis
' s- F9 w- r9 R6 v - ; e-mail hfrancis@pinehurst.net, F# r; D. V$ B/ y7 f
- ; All rights reserved.' d( d- G4 m7 u& i
- (defun c:gst ( / ename ent1 ent2 old1 oldsl old10 old11 old40 old50 newstr newsl new1 new10 new11)/ a# N8 b) w2 m% z6 C3 j
- (while
) v. K5 t5 E, q, T3 j1 q' z - (not( K& L! c$ o$ ~0 J J! R; z7 n
- (and
: e S, Z* U% h& { - (setq ename1 (car(entsel "\nSelect first text string to join: ")))6 s5 I# V! S9 U3 v2 o# v
- (setq ent1 (entget ename1))
2 ^& U6 H, M: p8 A - (eq(cdr(assoc 0 ent1))"TEXT")
4 E* c) F* z$ D3 M! i - );and
6 i/ o2 o ?, Q' T3 |! {7 s8 q$ s - );not2 v3 T/ {! S5 N/ X. T% k
- );while6 F# I# m2 }5 c: S; `9 P7 i1 s" @
- (setq old1 (cdr(assoc 1 ent1)))) k5 Q; Y [: w8 g/ K
- (while1 H7 }" ?9 [2 {% U3 ?- G
- (not# _2 t6 `) M( ]( O$ U% d
- (and: t/ X" F9 y9 |. w" Q
- (setq ename2 (car(entsel "\nSelect second text string to join: ")))
8 ^- b3 j! I5 c) Q0 X - (setq ent2 (entget ename2))
9 h" _- [% ?# h% b- Y/ B7 P3 E/ Q - (eq(cdr(assoc 0 ent2))"TEXT")
) m8 x3 p. i3 g2 B - (not(eq ename1 ename2)); {; Z2 d7 h. M& o. k- _$ J" L
- );and
. |9 b, h# n8 `" u: E M - );not
9 F0 b3 z- @4 [1 N+ ]7 b( R - );while1 _* f, l9 K$ J9 ?
- (setq old2 (cdr(assoc 1 ent2)))
" `3 [/ P) R# e: y9 b, C0 P - (setq new1 (strcat old1 " " old2)
2 W1 o) A' W6 H& Y9 j - ent1+ @; k% e' z d+ y
- (subst (cons 1 new1)
& g r5 b. G4 j9 i) [0 f1 b9 C - (assoc 1 ent1)
; n) V' h9 ^) i7 |: _) w - ent1)
" D* A# Q1 ]8 p- z - );setq# Y( _8 ~2 s& J( Q z
- (entmod ent1)
5 u, j+ \& H3 }# s% K% o+ W' o% Q - (entdel ename2)
# Q. Q7 N& e4 B! d9 c$ _" u - (princ)
" X# L1 R! X2 v( j. O, ]2 ? - );defun
2 k; C7 u5 z* k0 c Q6 T/ W2 p
' E* P8 Z4 |. R8 w3 M- ;=====================================================================4 U. ]) u% s! [* n p0 _; N& B) G! {8 n
$ {; f6 b2 w! u" g$ C5 P- (defun c:nt (/ g1 g2 ss1 olderr nterr l i temp e1 e2 new old dd dc)- A5 y0 E: I1 N9 f) r. w
- : m* ^1 ^+ c' t" \& R9 Z
- (defun nterr (s)2 f# s' g) g, n8 k9 |' ?" ]
- (command "_.UCS" "" "_.UNDO" "E")
# S; {3 M" k1 R7 N# Q5 V% b2 _ - (setvar "cmdecho" 1) r$ X9 E: Z" }4 A9 u
- (setvar "blipmode" 0)
7 q, \* e0 \/ P1 d - (setq *error* olderr)
7 _$ O% s6 |1 J7 c# J - (setq g1 nil g2 nil ss1 nil e1 nil e2 nil olderr nil
# t4 u. F, f0 N' F3 H- z; X - nterr nil temp nil i nil l nil new nil old nil dd nil dc nil). Y7 w% D( t8 H( m% e3 Y( m
- (princ)
- U8 d8 w( D; Q% A - )
3 O" b' D0 e9 ~! G, W) r - ) D& O! g- X7 f
- (defun tim_in (dt / p01 p02 ktra)
" ?7 H3 T$ y T/ K - (setq p01 (cdr (assoc 10 (entget dt))))4 `/ q E5 y; [9 ^6 C: e. U
- (setq p02 (cdr (assoc 11 (entget dt))))
j9 P9 \6 ?/ m0 u) w7 g6 O/ H - (setq ktra T)7 l' s; F ~/ e6 @0 g) y
- (if (and (> (car p01) (car g1)) (< (car p01) (car g2)) ) S8 b! B) A! G' [2 i
- (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
% e2 X& H, ~# u L - (setq ktra nil)5 y: x' T& |) J4 c* T
- )
- J1 [. P N3 U% J' t4 r& r' m - (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
# j+ z2 j* N$ T9 h& I' O- A3 q. U$ R - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2))) f( V8 i3 l; _5 V0 a
- (setq ktra nil)% P4 K' G( h' A2 o
- )' _2 P: f# T# T: C1 Y
- ktra! _* T& m' {) Q
- )
8 s; ~; m% D: Z5 H
8 |0 {, H4 B' C1 D- (defun timdt (dt1 dt2 / p01 p02)
/ }3 G3 A' o) o8 x$ q" w. g - (setq p01 (cdr (assoc 10 (entget dt2))))- r% B8 d3 c" h$ G
- (setq p02 (cdr (assoc 11 (entget dt2))))4 X1 q6 Q: g+ [; J
- (setvar "ucsicon" 0)6 D2 T% ^0 z( V
- (command "_.UCS" "E" dt1)8 }% p a/ p3 v- L2 O% m8 B/ k
- (setq p01 (trans p01 0 1))
3 v1 Q( |. t1 V9 s% S - (setq p02 (trans p02 0 1))# r; v7 q' q4 j+ x
- (command "_.UCS" "")
% |1 U" P) E0 O - (setvar "ucsicon" 1)
- H) ^2 `( O1 h' E0 k - (if (and (equal (cadr p01) 0 0.001) (equal (cadr p02) 0 0.001))- J) l) C5 A% a9 q
- T
* u# O' F3 N3 N - nil* Q+ m5 b/ v( k
- )' p9 h/ W" W4 r; G9 a2 q. W# E
- )
' k# O) t! J7 u$ J* |/ J" [
( ]( }/ b: W' [( \ U8 U" b, i4 l- (defun tim_out (dt / p01 p02 kt)" b+ \" b' T; U- A
- (setq p01 (cdr (assoc 10 (entget dt)))): `: s1 s. y6 c+ K8 T
- (setq p02 (cdr (assoc 11 (entget dt))))
5 \+ K" t: `; n. }' R - (if (and (> (car p01) (car g1)) (< (car p01) (car g2)) . ?2 C4 V' A/ E
- (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
, l' T& H8 P$ d- u/ l; X, O - (setq kt p02)) K* z2 _/ u: p9 `4 r$ L
- )
% Z$ j: M5 K# C6 q: L. K& r6 Q - (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
* O; K8 G, }% S) p! [$ K: ]3 U! Q A - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))8 R9 l' U5 H* d, n" f
- (setq kt p01)) Q" b/ p2 J5 g( E" t9 s
- )
7 W9 @& c- {6 x$ W: _* } - kt 4 Z/ O! \! V& z$ r9 r/ ^
- )- @" I w! s5 f. h& s0 y+ u/ `3 @
- - u" y! o: _) a* U% G7 o8 u* Z
- (setvar "cmdecho" 0)
8 U! E% p/ p) r" B$ x8 V - (setq olderr *error* *error* nterr): g$ g/ G3 k; _& r; t# Q) L% Q
- (command "_.UNDO" "G" "_.UCS" "")
6 S0 r Y# U5 f D, a9 Z' `; y3 r - (while (null ss1)
& }5 l3 {9 r% d$ N, _3 U7 ] - (princ "\nChon tuong muon noi...")
( S6 z( i2 Q4 Y0 r* c3 j& D - (initget 1)0 Z& B# c4 z$ B" g/ n- J
- (setq g1 (getpoint "\n>Goc thu nhat:"))( O3 r$ x. L9 K! _
- (initget (+ 1 32))' u# f2 K4 p5 q& _
- (setq g2 (getcorner g1 "\n>Goc thu hai:"))
, L* T: x/ y+ s+ I, T - (setq ss1 (ssget "c" g1 g2 '((0 . "LINE")))) C6 I' V. F0 ?7 h
- (if (null ss1) (princ "\nKhong tim thay doi tuong!"))0 C' S5 x6 e$ W5 h
- ), |! d* S# f: D; _3 F, f; U: O
- ! x- j# k5 I) F5 A, ?" |1 Z
- (setq temp (list (min (car g1) (car g2)) (min (cadr g1) (cadr g2)))
4 y/ v6 Q. l `) D0 c0 Y - g2 (list (max (car g1) (car g2)) (max (cadr g1) (cadr g2)))" z/ y, Y2 N* w5 W# ~' r
- g1 temp)7 U. Q0 n1 q) ?8 k; J
- (setq ss1 (ssget "w" g1 g2))9 X2 p8 l" ]: R( x
- (if ss1 (command "_.ERASE" ss1 "")) \# H( s7 c$ y. _: d* R
- (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))7 n7 a: @- ?! y* e: E" z( W s# n# B
- / F3 F# K g. f# G. j
- (setvar "blipmode" 0)
, Z5 b: g8 a- C1 Y$ Q - (setq i 0 l (sslength ss1))
# m: [" O. W8 G" i# `7 m - (while (< i l)
+ U! ^8 R4 v, ~ - (if (tim_in (ssname ss1 i))
& x! s5 M$ L' H# Z! U# V - (progn 4 Q5 x, j9 ~( Y! W- ]
- (ssdel (ssname ss1 i) ss1)# r8 q4 `. n( A& c) ?. u) l
- (setq i 0 l (1- l))
+ F% j' p% B) i7 |/ q: u3 x - ) % B3 }, \, N7 U/ f9 ~( N0 u4 o
- (setq i (1+ i))
0 g, g, K% n$ ^, U2 p - )& }1 _+ ^7 }9 {
- )( R! }. ~: h/ C" t2 b
- (setq l (sslength ss1))
& |- `0 B: W1 \7 d" p* Z* ] - (while (>= l 2)) h( v7 M5 V1 a+ o4 z, a
- (setq e1 (ssname ss1 0))
" p: m: ~# g0 _4 t' R+ x - (ssdel e1 ss1): W3 r3 h; D$ K; [/ p
- (setq e2 nil i 0 l (sslength ss1))
( {. U+ ^& A' H/ [/ {' z, k1 z7 K - (while (< i l)
' ~$ k Z% M( B9 E: x - (if (timdt e1 (ssname ss1 i)); c/ o! Q5 |! s: b. G- L
- (progn
: T: e7 \) N, D# a, ? - (setq e2 (ssname ss1 i))/ h) i1 f# J9 ?2 P7 f: m! \& Z
- (setq dd (tim_out e1))
: ]1 @% s1 |+ R% s - (setq dc (tim_out e2))
7 q N/ \/ H' d2 e! [7 |# U3 ] - )' ~# @2 y. Y* b" P
- )
I/ F9 j, X1 i; I }9 y - (setq i (1+ i))- y% ]4 C: K+ `$ S" Y
- ). Z3 ~! k4 {2 p5 L
- (if e2 (progn) @) _7 N0 V) c3 V
- (ssdel e2 ss1) : x6 s: G7 B& h9 ^$ Q0 G5 S- h
- (command "_.ERASE" e2 "")
' F. q' G8 Y* K* O - (setq temp (entget e1))
7 }; D. Y! ^$ ^ - (setq old (assoc 10 temp))( P: }, d: {) f: O5 h! @
- (setq new (cons 10 dd))
3 {# G5 N/ `6 A' Q - (setq temp (subst new old temp))
2 y R- X, r, B2 b; @3 S9 b. O - (entmod temp). _. q; G+ K# ]* d) r% D
- (setq temp (entget e1))8 w- @. U' Q" }0 G" f( n( h0 b( _
- (setq old (assoc 11 temp))) O% g( G7 ~+ S" h" h
- (setq new (cons 11 dc))
5 `' F* I) q" } - (setq temp (subst new old temp))
. k% g E" [& V6 i9 F - (entmod temp)
; q9 I% Z6 f- a; h& [ - (redraw e1)1 p) ~6 A5 X! F7 f3 j$ \
- (setq l (sslength ss1))% ] j* F7 i& C; P/ ~
- )
. B/ ~# q! G( P5 r% G% b, o - )
& R% L: D6 v, i2 T. [6 m' [1 J - )
x# p$ C3 A% U" N4 {% l
' x! a( X9 s# `) z+ E" @- (command "_.UCS" "" "_.UNDO" "E")
' B$ i! _# k4 k' Y$ G, O$ F - (setvar "cmdecho" 1) ^6 z8 @6 @4 a: X6 b- D' U
- (setvar "blipmode" 0)
2 e4 S2 n* g! A- ` i - (setq *error* olderr)
2 r5 i/ ]5 s' U# Y: b, E7 V+ { - (princ)3 d4 e. K% Z! c
- )9 @* {0 i0 g2 S7 I) @7 v+ F6 l
- ;*********************************************************************
4 }% ]& v1 e" ~9 T' D' X - (defun ketthuc ()+ V' O+ V4 n6 H# m. y6 u
- (setvar "cmdecho" luuecho)6 |' K4 a& y2 [# g
- (setq *error* luu
1 W$ i' k: h+ M - luu nil - w1 W$ g8 [: E
- luuecho nil3 G+ R: |" T) j; o- B( C
- );setq
/ S! B1 e8 G/ B8 w: i( Q( b - (princ)$ ?' i C. n0 A) A7 h9 m
- ) : \+ m. _1 q! P) h
- ;*********************************************************************
/ Q" q+ u# h8 ^7 ]( A2 x3 @ - (defun modau ()# s8 C2 N; c/ k
- (setq luu *error& l- l! t6 D& `3 b6 Y7 w3 N
- luuecho (getvar "cmdecho")
# q( d, I2 ?) k: L% w - *error (ketthuc)
4 I: _4 ~6 ^1 B" s O+ i - )3 {0 k) w) f! Z( m5 m" s
- )3 ?6 Q, b" Z& |
- ;*********************************************************************; Q' r0 k$ w7 }) ]
- (defun xulytext (text / kytu ma sokt luusokt lui )
$ r3 ?8 F8 @9 N/ r) w/ K( Y7 g - (setq kytu (substr text (strlen text))
4 X& P( h* ~# ]/ R. B! X* @ - ma (ascii kytu)& H9 p. N5 y3 f' ?- M) g
- sokt (read kytu)
c3 R# D# z' ~, z% H- t! q! c - lui 1
+ [6 ?3 Q7 O; C8 M) s - )
% s9 S& A: K" N, X( R# _5 V$ Y - (if (numberp sokt)
: C( K$ z+ r1 e$ ~0 l2 ? - (progn/ W+ J5 x4 t# H$ r! ~; |7 H$ ~
- (setq luusokt (1+ sokt))
- W' h) F- d/ ]% {9 A! q - (if (and (numberp sokt)
# E2 B+ }( K' A - (> (strlen text) 1)
3 ^4 [4 W4 b/ }2 z: e - )
6 }: a @' H. t# W" r - (progn
2 D; x( ~ z2 J9 h/ A! h - (setq kytu (substr text (1- (strlen text)))0 z) n; J/ h5 F4 }
- sokt (read kytu) : ]0 @* | J* p! a! t: P- }! G
- )) m" z6 d) Z5 \) L3 H( {/ C2 }8 z
- (if (numberp sokt)
6 L! j2 g8 f' b) [ - (setq luusokt (1+ sokt)9 E2 M- h, v4 k% n6 w) y7 h4 W4 D9 m
- lui 2
9 k) Y! w* C& x - 5 r6 j8 d/ W4 S* ?
- )
: { j, I+ u, \: }0 J! m - )
7 B/ f& C4 C5 e" n& g( b - );progn
; I# T+ S$ v2 j& D. b1 o) v- w( P - )
& V( v- S9 T, @8 K/ u4 k, q - (if (= luusokt 100) (setq luusokt 0))
0 a) D- e7 N/ I# j; B - (setq kytu (rtos luusokt 2 0)5 u1 S* ~# i; U0 Y
-
( ~9 @! Y/ i/ K" s3 o; ~ - text (strcat (substr text 1 (- (strlen text) lui)) kytu)" F! ]7 J( s1 u0 E
- )
4 e8 R' [/ u$ d4 V+ G - );progn
* }. E3 s9 g4 ^ - (if (or (= kytu "z")9 D. p1 X M& m% `5 ~& k
- (= kytu "Z")$ z: r1 e: b* Y3 O. c+ T; k
- )& {' X1 y& [5 W8 s0 F# }, l9 M1 l
- (setq text (strcat text "0")2 s0 U! C1 ^2 X
- textxl "0"
6 l+ c8 ^) |+ M- H1 S1 \, G% B9 T - )
- \7 _2 z; E1 @1 a+ w0 @( X - (setq ma (1+ ma)3 R9 ?# a" g8 V: N J" S* b$ ^! r
- text (strcat (substr text 1 (1- (strlen text))) (chr ma))9 M6 T3 E# ~, D8 n4 K! `. P
- )
1 B# W* f( Q" p3 X+ t - );if
7 f& F9 R' ^* x - );if
+ A! y4 y6 x; ?5 G% ? - )" I+ J1 Q) U# M+ ? M+ M- `
- ;*********************************************************************- ^. O# }$ o/ T4 u* M
- (defun doitext(tendoituong / chuoi doituong thoat tam dsach kieu text vitri10 vitri11 dem canle)/ [4 G! C& H+ h% [
- ;Neu doi tuong la text thi tiep tuc
5 _# L; M2 b; d# l* C* ] - (setq doituong (entget tendoituong)
- s2 \' G( p+ ` - kieu (cdr (assoc 0 doituong))+ {2 |3 \( H' i: c! r
- canle (cdr (assoc 72 doituong))
0 D% m8 l5 G9 b - ) " k' L. t$ O8 r8 T2 g& V, v4 d
- (if (or (= kieu "TEXT")4 Y l3 G4 h3 x! [) W- k
- (= kieu "MTEXT")
+ O3 V/ F" c# |" ~/ G1 W/ C v% U - ) # ?7 w _9 y9 m+ \
- (progn* v o+ r- d+ [. M+ Q R
- (setq textxl (xulytext textxl)
, {8 @ {& B1 Y; t1 Q# o - text (cons 1 textxl)
4 e$ \, T% F ^. x - vitri10 (cdr (assoc 10 doituong)): J% Y+ ?- I* Z! e( {* Z
- vitri10 (list (+ (car vitri10) (car vitrilech)) (+ (nth 1 vitri10) (nth 1 vitrilech))) _7 P3 w% x! P6 _/ u6 D
- vitri10 (cons 10 vitri10)
; ^: c' ]0 X b0 T - vitri11 (cdr (assoc 11 doituong))
c! U. `3 ]( ] X- X - vitri11 (list (+ (car vitri11) (car vitrilech)) (+ (nth 1 vitri11) (nth 1 vitrilech)))
3 V3 p" m" _* N: w4 I - vitri11 (cons 11 vitri11)
) g: d# S' S3 F8 ?5 m- S; P6 M2 O - dem 06 U; q" P' g4 l' j
- dsach nil. g: R0 }- Z! o
- )' ]/ _! @5 I1 C/ Q0 e7 {; m
- (foreach tam doituong
" p* C0 J7 f8 E/ k( j - (cond: ^. e9 a4 J9 z+ {6 W4 h1 {, n% x
- ((= (car tam) 1) (setq dsach (append dsach (list text))))
$ U" q0 B' ^" V - ((= (car tam) 10) (setq dsach (append dsach (list vitri10))))
; y( H+ V1 A5 Q5 o Y3 b - ((= (car tam) 11) (setq dsach (append dsach (list vitri11))))4 T# [+ U+ c3 b! p
- ((setq dsach (append dsach (list tam))))
' @6 b$ z& r! z - )
7 k r6 S1 D1 h5 @! q - )1 I" u/ K$ G" Q9 S0 ]9 v
- (entmake dsach)
Q/ Z7 k' h$ M1 a7 M4 @1 @ - );progn
+ T' U5 w* W; t0 A. Z. b. W/ v - );if d6 A! G6 a% w7 {& m0 B2 q
- );( q" J! y6 h$ u. o U5 s
- ;*********************************************************************
+ k8 _1 f* s7 d6 p$ O/ s; s - ;sao doi tuong cu sang vi tri moi4 u7 {* n1 m I) p( E! E
5 M1 L# w: f u+ u) |- (defun copy_dt (tendoituong )1 h! g& e; m6 H" @& ^( {5 [. [
- (command "copy" tendoituong "" goc toi )
6 m) N+ l# `! f - );defun
x t& }, b* t q - 0 g- p" H( h( g6 x
- ;*********************************************************************
3 M$ \9 h( s9 x+ l3 f - " d# I; ` b7 t: Z0 R# \* u
- (defun c:ct ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)3 k3 \! @/ U6 Q& i; z. k
- ; Khoi dau cua chuong trinh
2 P+ p, Q- J; f - (princ "\nCopy Inteligent...\n")7 x! E2 G1 M* R" p( f- i R: f3 a
- (setq luuecho (getvar "cmdecho")
% j, Q# z7 [9 r2 ~7 A! s4 ? - luu *error*" q, F2 B/ P. [9 D! q/ u0 d! {
- *error* ketthuc$ V3 H8 e( h) v4 n. e
- cumdt (ssget)
0 ~2 r4 l' Q3 j. N - dodai (sslength cumdt)
6 q; w: E% q- u6 K8 I' ^ - goc (getpoint "\nSelect base point:")
, ^) ]+ f9 i, F( C3 P0 i5 V - thoat nil* _/ W- l( i+ v6 v' P! c% Y
- dem 0% z6 O: j0 K J4 c$ z
- textxl nil
6 ^1 j1 t6 @* ~ - );( j$ F, p9 s+ }# \7 L
- (setvar "cmdecho" 0)
4 |* J! u# N! b* I - ; Loc ra duoc ong text de xu ly L7 P1 E3 {) O# D" o$ }
- (while (and (= thoat nil)& \+ Z0 @3 c4 c# }
- (< dem dodai)
* X# E2 S5 Y7 p8 `$ h - )
& y( ^1 m1 `! e5 Q7 m# W/ {1 [ - (setq ten (ssname cumdt dem) c) v4 b$ {; o# y* Q
- dem (1+ dem)2 @) |# |) _8 T$ ~5 x
- doituong (entget ten)
8 ]% f. G* U$ y5 d. a - kieu (cdr (assoc 0 doituong))
) ~5 I' g1 _, u0 |$ H8 I9 f# J - )* Y2 {1 k% @% F
-
# h+ W+ l0 T+ D# N! K - (if (or (= kieu "TEXT")
7 W; c# u; d/ _. @ - (= kieu "MTEXT")
8 E) ^9 A* u. @* C - )
# a, I9 e) X/ h - (setq thoat T& Q; F' h+ A ?) P. Y* ^2 ]
- textxl (cdr (assoc 1 doituong))
# \$ e* S V d7 I, g0 [ - )6 m1 r# u# N6 C- C* U' I) L) z$ r
- )
; K$ r4 E2 t" d( d$ L - );
3 O& B$ e& ^9 X# Y( M% ]6 t' N - (while T $ a) b, x+ w9 C' P3 @& Q0 H
- (setq toi (getpoint "\nSelect next point: " goc)
7 p! N1 k9 l0 Z5 K - vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
2 q5 O. I% v. s& U" H+ Y2 H$ @ - dem 0
& O5 e1 K. m7 |. `6 }2 E - )
: l6 J0 o, ^# {9 K, `3 r- ]' f - (while (< dem dodai)
$ v3 |! `7 m! p* D* L/ l - (setq ten (ssname cumdt dem)7 O0 }! O6 u V2 `, `
- dem (1+ dem)) x8 D$ ]) j1 j5 D& F' | u, B
- doituong (entget ten)% `. d. M+ Y$ |" b9 o) T& r0 F
- kieu (cdr (assoc 0 doituong))
! u* X4 C' M. m$ Z3 C$ i$ l2 p3 ^ - )$ ?5 O! @8 Q$ Z# i$ d# x
& f7 }" i- s! R4 }- (if (or (= kieu "TEXT")
0 K: |7 I2 E! A$ i - (= kieu "MTEXT") ! i3 t Y$ w5 L: Z3 q9 B
- )
6 s) T1 ]5 c/ w# ~9 r2 f - (doitext ten)
3 z7 b- G& T* g0 D7 V - (copy_dt ten). w8 D- m6 N) O/ B
- : `$ A6 |6 E9 v q- {
- );if& Z8 v3 Y' b& G" l& p
- ), k2 i8 p# w( M+ C2 c2 o
- );while
4 C% A8 o' m- O - (ketthuc)* S& s& n# V6 b+ g2 R* _2 t
- );defun7 {/ R9 Z/ R$ f/ m7 }
- (princ "Type \"DG\" to start")
+ N- {- M* {- ^/ T7 O" n. K - ;Note: bien toan cuc: textxl vitrilech! ]( z/ Y# c( X& T; f! o% X7 L
/ J5 z( D7 w$ F) C- ;=====================================================================" b5 i k8 M/ v+ u8 d% _
- ;;; PLJOINFUZZ.LSP
3 k+ G2 b$ O/ s% E ^* M/ Z - ;;; Joins lines, arcs and polylines using a fuzz distance b- w ?0 ?' _1 W* q/ ]% j
- ;;; If only one object is selected it tries to join to all objects that are possible; T8 l8 v/ H( @4 A( n
- ;;; By Jimmy Bergmark, _7 X, d0 c L% _ v
- ;;; Copyright (C) 2003-2004 JTB World, All Rights Reserved
! `3 s. x( T; V. L* m; @$ s - ;;; Website: www.jtbworld.com% ]) T8 }& b# a* I4 Q% ~% D
- ;;; E-mail: info@jtbworld.com- M3 b3 s0 O8 i! i9 @- k Y
- ;;; Tested on AutoCAD 2002,2004 and 2005" @: y# ^! \5 Z* H" ~- u; Z
- ;;; Latest revision made 2004-11-11$ O/ d% v6 `& Y4 D$ T) ^; T5 {- H
- ;;; Minor code cosmetic change made 2004-11-13* }' x+ V7 g( d- S; Z0 j
- ;;; Bug corrected 2004-12-23
- _2 {; q6 d' W7 f5 }
4 R5 P2 j0 v5 E/ U- l- G, D! b; f- (defun c:jf () (c:pljoinfuzz)) ; this line can be commented out if there is an existing command called jf
$ _! ^, b, F E; U, f0 {" u - (defun c:pljoinfuzz (/ ss1 entLine objType oldcmdecho oldpeditaccept fuzz okObjects)5 K" A" ~1 ^% q8 s0 d
- (setq oldcmdecho (getvar "cmdecho"))
) F+ c) a5 H0 {. v Y( h - (setq oldpeditaccept (getvar "PEDITACCEPT"))/ f, W/ g; `+ Z. Y) f
- (setvar "cmdecho" 0)6 ]! j* s4 R. v, [2 @! y
- (setq A2k4 (>= (substr (getvar "ACADVER") 1 2) "16"))
1 b+ C0 c% l4 N& C - (if A2k4 (setvar "PEDITACCEPT" 0))# h8 N, s/ ?5 \1 o" A2 k5 \: ~
- (setq okObjects '((0 . "LINE,ARC,POLYLINE,LWPOLYLINE")))
7 o0 r( O7 v& P5 j9 \9 T0 C [. K - (princ "\nSelect object to join: ")+ ~7 e1 F9 C; C% J2 |, r; }0 w4 I
- (setq ss1 (ssget okObjects))
) v# `) c, D0 E! q - (setq fuzz (getdist "\nFuzz distance <0>: "))
# b( {; i1 a% Y5 q/ _ - (if (= fuzz nil) (setq fuzz 0))
" y7 g. F9 n8 g4 o' R; G - (if (/= ss1 nil)
/ U) \3 Y( _7 k. O* m9 J q% ^ - (progn
; N) Y, f: J& {. W: N( A2 g - (setq objType (cdr (assoc 0 (entget (setq entLine (ssname ss1 0))))))$ C' t1 X+ X& A1 A `$ Z' g4 A7 h
- (if (= (sslength ss1) 1) (setq ss1 (ssget "X" okObjects)))1 w+ V- Y+ K& O# e# g$ U
- (if (member objType '("LINE" "ARC"))( R' N O5 |. ]
- (command "_.pedit" "_M" ss1 "" "_Y" "_J" "_J" "_B" fuzz "")
2 V! T) E8 {$ u6 h/ m: j6 b# ]( ~( u - (command "_.pedit" "_M" ss1 "" "_J" "_J" "_B" fuzz "")
$ A' J L* g' f! o4 u$ \6 z3 u+ z - )# `0 Y4 j& Q, L F- h; P9 X
- )
. Q; @! P. r, c% @. G& T9 N( C - )9 c8 Z W" f" A' @
- (setvar "cmdecho" oldcmdecho)9 I( Q: T9 b2 B; J
- (if A2k4 (setvar "PEDITACCEPT" oldpeditaccept))* K" y3 G/ @+ D& x# Y. T
- (princ)
% n2 \" R5 a, Z2 m3 u5 o7 } - )
* u/ B5 ]. ]* R+ W
# p+ p" j/ B. \. B# U* T4 S- ;===========================VE CAO TRINH===========================
, c7 M( m; I: \2 W; y& N/ o - $ u$ ]8 Z2 i: X. E& \7 `" C+ c o
- (DEFUN C:Cotcao (/ CMD PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 NPI TX DX DY TL OSM OLL
' B. @" o5 i* j) M! N$ J - CRST RSIZE TSIZE STR PRMT FCH NBC OLDERR)
3 |6 N* P/ P+ k. U - (SETQ OLDERR *error*) r+ v! m- c& M$ I1 ~
- *error* loisb)* Y8 M3 C% \' l/ h
- (command "layer" "m" "dim" "c" "" """")0 T* V1 e2 h! }. F U9 g' k: j
- (SETQ CMD (GETVAR "CMDECHO"))
6 _* I* @% \& I - (SETQ NBC (GETVAR "CLAYER"))
6 ]2 U. ]9 y& _1 }1 {) a - (SETQ OSM (GETVAR "OSMODE"))
, N A6 M2 O5 C - (SETVAR "CMDECHO" 0)
. g4 I$ ?2 R! [0 k' x+ ^ - (SETQ PT1 (GETPOINT "\nDiem cao trinh:"))$ e: S9 l/ z" D9 l
- (SETQ TX (GETSTRING "\nCao trinh:"))* v& i# R* s& Z
- (SETQ FCH (SUBSTR TX 1 1))9 G1 G3 w: N' O9 ~
- (IF (= FCH "@") (SETQ TX (STRCAT "%%P" (SUBSTR TX 2 (- (STRLEN TX) 1))))), V7 R7 h \9 L1 P5 X7 B. M' D
- (SETQ CRST (GETVAR "TEXTSTYLE"))9 i) r& @, \: }
- (SETQ RSIZE (CDR (ASSOC 40 (TBLSEARCH "STYLE" CRST))))) y$ }$ G7 s. J* {& t
- (SETQ TSIZE (GETVAR "TEXTSIZE"))( F- C/ C3 d2 `
- (SETQ STR (RTOS TSIZE 2))
! X2 v) Y7 ^) k- y - (SETQ PRMT (STRCAT "\nText height <" STR ">:"))
8 ^! ^3 {! o1 h# F+ ^ - (IF (= RSIZE 0)
, ?3 W% r0 w& J( {/ o; [9 _' c - (PROGN1 d$ V4 Q2 E9 U7 S
- (INITGET 4)6 K" M Y7 D8 a1 v1 q% h
- (SETQ TSIZE (GETREAL PRMT))
) b! R* ]; O# _- `, T* ? - (IF (= TSIZE NIL) (SETQ TSIZE (GETVAR "TEXTSIZE"))
. K. k- J( l. B8 R - (SETVAR "TEXTSIZE" TSIZE)). X. ]: b& b+ j, y! @$ [
- )0 |0 `" G8 g# O" V
- )% f/ X7 J. {, K# ]! w4 |! z, d
- (PRINC)
: v5 P( _$ `5 i5 } - (SETQ TL (/ (GETVAR "TEXTSIZE") 2))
' t$ c% r+ R" B' S% U; { - (SETVAR "OSMODE" 0)
; Y) E# e" ^5 G* w. h' w - (SETQ DX (CAAR (CDR (TEXTBOX (LIST (CONS 1 TX)))))): w9 e0 t& I) x8 E3 H2 T& b, S/ y
- (SETQ NPI (/ PI 2))
% m1 |8 i! `% M4 I* Z7 j$ s X - (SETQ PT4 (POLAR PT1 NPI (* 1 TL)))6 `1 O, L' \* l; V
- (SETQ PT2 (POLAR PT4 PI (* 2 TL)))+ h) G1 N( E |3 M
- (SETQ PT3 (POLAR PT4 0 (* 2 TL)))
9 ]5 n/ b1 [& l - (SETQ PT5 (POLAR PT4 NPI (* 5 TL)))( x) L6 H; ]3 N! e& M
- (SETQ PT6 (POLAR PT2 NPI TL))
" a6 j/ Q3 l8 a' t0 y0 G - (SETQ PT7 (POLAR PT6 0 (+ (* 3.7 TL) DX)))+ ]6 w) _3 i* K8 M* C p" x
- (SETQ PT8 (POLAR PT6 NPI (* 1 TL)))8 |$ T' L4 Q1 J$ l9 B3 F3 W: f
- (SETQ PT8 (POLAR PT8 0 (* 2.5 TL)))
' v6 b: J. J! u' P - (SETQ PT9 (POLAR PT1 pi (* 2 TL)))
# Z0 _0 v* u4 I - (SETQ PT10 (POLAR PT1 0 (* 2 TL)))
% w) y! S9 F" f: W Q# _% D4 ` - (COMMAND "COLOR" "7" "")
- y' s$ P4 ?7 [ - (COMMAND "STYLE" "COTES" "Verdana" "" "" "" "" "")
C- K, x1 h. P5 n1 n - (IF (= RSIZE 0)(COMMAND "TEXT" PT8 TSIZE 0 tX) (COMMAND "TEXT" PT8 0 TX))
9 B. @+ E9 _0 V( w2 t. r - (COMMAND "COLOR" "BYLAYER" "")# o& z+ k: L" m3 B
- (COMMAND "SOLID" PT1 PT2 PT4 "" "" "pLINE" PT1 pt3 pt2 ""); u2 M0 w/ D# {/ P
- (COMMAND "COLOR" "BYLAYER" "")
2 g$ s1 `' ` @' g - (COMMAND "pLINE" PT1 PT5 "" "pLINE" PT6 PT7 "" "pLINE" pt9 pt10"")
: s. Y7 O0 k7 |# g/ J - (SETVAR "CLAYER" "0")
6 p8 |: A& y$ R+ L* [( Z3 e - (command "ddedit" pause)+ j! D0 u: Q5 V, R$ l% D
- (COMMAND "COLOR" "BYLAYER" "")5 N! \0 K! W I5 o
- (SETVAR "CMDECHO" CMD)
0 m( `: X1 L' y; T8 x! p - (SETVAR "CLAYER" NBC); T$ b5 R3 }; m
- (SETVAR "OSMODE" OSM)- ]3 D6 U' }1 f/ P4 j
- (PRINC)
2 Z3 l: Y# h+ n% w9 P) L3 |2 ^ - )' L0 W, h# w' c7 z- Q
5 ~6 c* t3 l/ H( w2 j- ;;; =========================== VE NET CAT CHEO (GC) =============================
3 _) ~- Y- i, n- y- J - ! p! C: D+ ?) F2 k* F
- (Defun c:G1(/ p1 p2 p3 p4 p5 p6 p11 p12 l ang): H0 n+ i3 W4 S
- (setq x (getvar "osmode"))
6 @ j, u; [& `& n9 o! B* ^ - (setq p1 (getpoint "First point : ")
4 U- u, H Z/ H* f. E1 q - p2 (getpoint p1 "Second point : "))5 c, `( P R" M. O3 ] C: c, E
- (setq l (distance p1 p2))
9 g9 i: O; F' v* e7 V- e8 X1 C - (setq p11 (polar p1 (angle p2 p1) (/ l 5))
7 ^' v6 f+ a' i8 [. h: h - p12 (polar p2 (angle p1 p2) (/ l 5)))
3 u+ C1 j" U5 v" r3 h4 F N- e, k6 x - (setq ang (angle p1 p2))
) _/ R2 W9 p- S4 v; i0 |$ O- g - (setq p3 (polar p1 ang (/ l 2.5))
8 u0 u& h( L! ]7 L d - p4 (polar p3 (+ (/ pi 2) ang) (/ l 5))
9 s/ A3 Z, e" f4 K - p5 (polar p3 ang (/ l 5))8 n; D0 z' d$ b' [# ^2 o
- p6 (polar p5 (- ang (/ pi 2)) (/ l 5)))
+ y+ a. ]/ F/ H# s3 L! C5 D* l - (setvar "osmode" 0)
2 \* }$ d3 R2 ~2 }3 I - (command "pline" p11 p3 p4 p6 p5 p12 "")" `0 e4 h+ `$ a7 N- ^! a
- (setvar "osmode" x)
( D; R, Z5 M9 A0 D9 v - )
' X8 B% u3 J) V9 ]6 |% _5 D - ;----------------------------------------------------------------------------------
! Z( Y8 ~1 j( Q - (Defun C:G2 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
+ Z" V# U- v4 Y% [' t* C6 b5 I8 r - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))3 T) W% r2 f3 |1 n
- (setq ps1 (getpoint "\Chon diem thu nhat: "))
8 Y& C( F* m: H' r; ] - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))* H. W+ [% m; c. c
- (setq sb 50.0 sh 200.0 se 20.0)
' J8 @: K- D& e* g) ^6 r - (setq ang (angle ps1 ps2))
- F: k4 u, s# { - (setq pf1 (polar ps1 ang (- 0.0 se)))! o, p0 {$ p2 Y, Z
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
3 W0 o' n! Y1 F5 i - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
0 ^ f3 r& I3 I - (setq pf5 (polar pf2 ang sb))* o1 R" G3 j4 I+ T+ @6 U# T6 V- g
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
+ f# Z" T6 m. l9 w' C - (setq pf6 (polar ps2 ang se))) U) K9 v/ s# E- r
- (setvar "OSMODE" 0)+ {% f8 m" k3 `6 ^4 U' L4 l
- (setvar "BLIPMODE" 0)
3 p/ E5 _9 c) `% T0 ^ - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
* }, s6 _3 ^! G- d" q% j) ` - (setvar "OSMODE" 703)& ~& ?9 t* p& I
- (princ) )" u+ S* ~, c0 e3 z- U% v
- ;----------------------------------------------------------------------------------
; U' S2 l" i5 x6 N5 t/ o k( ]7 L. @! Z - (Defun C:G3 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
# _, B" z! S- x0 h0 K K - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
0 `3 ^* l @6 ] - (setq ps1 (getpoint "\Chon diem thu nhat: "))9 Z* u- i8 G9 ]2 Y n4 |( P
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))# {' }9 q6 e4 G1 N4 X5 x y& m
- (setq sb 100.0 sh 150.0 se 20.0)
+ N$ O, {( Z7 s9 n - (setq ang (angle ps1 ps2))0 i( m+ P2 v- A! C/ i3 J
- (setq pf1 (polar ps1 ang (- 0.0 se)))) L7 ?6 O8 R) c6 K1 u: z4 Q
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
! g) w& K5 h4 ^1 L# {% w - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))1 U& ?: f" U! j! [# D3 c
- (setq pf5 (polar pf2 ang sb))
1 A2 n3 ]: Y, j7 ?7 H. R; j' c - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))/ K5 w8 N, c6 |5 ^1 r
- (setq pf6 (polar ps2 ang se))3 r, V* V- h m; ?) i$ u9 y
- (setvar "OSMODE" 0)
- F5 A, @( t% W% } - (setvar "BLIPMODE" 0)5 E: j" ?- t& {* M3 r0 a* @
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
% e7 T' k8 F5 e - (setvar "OSMODE" 703)) r( y" g; M0 o5 q# D6 n6 A
- (princ) )0 }3 @5 l. X) D ? U7 @7 L; R
- ;----------------------------------------------------------------------------------
; o5 `& t$ D: w5 `+ s% Q - (Defun C:G4 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
5 ^. w7 W9 h( j" `2 z% _# Y" a/ t' m - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
" |2 r$ I3 [6 D1 t, E! o) X - (setq ps1 (getpoint "\Chon diem thu nhat: "))
: F0 y0 Y) s$ _# C% F5 a0 p# I* X& Z - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))( n" X6 R% j& W u$ `* W
- (setq sb 100.0 sh 250.0 se 20.0)0 f! u. D+ L" j8 @8 |' i
- (setq ang (angle ps1 ps2))
! X' F b X) |' R" ]. o - (setq pf1 (polar ps1 ang (- 0.0 se)))
" F1 X7 B4 x) x4 z F' m* S - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
1 `8 q% T& x3 f8 J. g) V - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))9 S$ D5 {5 ~6 _5 u6 ~
- (setq pf5 (polar pf2 ang sb))9 k& P G* I- a! h
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0))), U d+ O+ b& U* k! G" z+ u7 O- A
- (setq pf6 (polar ps2 ang se))% |2 `* ?7 A2 x$ S
- (setvar "OSMODE" 0)
1 a$ @0 o3 _. y2 Y* }" g5 x( l - (setvar "BLIPMODE" 0)1 L$ Y: w4 `! Q" w! Y
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
* P: B f& G+ H2 I1 q% {- v1 w - (setvar "OSMODE" 703)
- I6 f1 I3 T7 s( q - (princ) )# K& Q- K/ m* K8 [2 W* g2 n5 V k
- # }5 A2 _, K: W: y8 z# f
- ;==================================================================================& O- F U- N6 i' ]& {
- (defun c:ang (/ ent pt1 pt2 ang)
k9 i0 [1 y0 T: I7 n# B4 h: X - (setq cmd (getvar "cmdecho"))
* L3 Z' `' D g$ Q3 l5 e7 R - (setvar "cmdecho" 1)
+ ]8 _* H, m5 t( E" j - (prompt (strcat"\nThay doi truc toa do theo duong thang chon truoc"))" K0 `) A6 o+ e- m! o/ u# q
- (setq ent (entsel "\nChon duong thang:"))/ M6 U C8 G' \, e% a! U
- (if ent ( z+ q& R4 Q6 d& z7 n% n
- (progn
; c. V! A! @3 m8 m* E - (setq ent (entget (car ent)))6 U2 {. w2 {* }( T/ y
- (setq pt1 (cdr (assoc 10 ent)))
N7 I* m2 ^5 l5 @ - (setq pt2 (cdr (assoc 11 ent))). V' Z& ~* v1 K% a! R
- (setq ang (angle pt1 pt2))
1 j' c( {! s4 ~) {9 c. p9 l1 S2 v - (setq ang (/ (* ang 180.0) pi))6 _# S) H) O9 w
- (setvar "cmdecho" 0), J3 o* K3 m5 T+ C. ^- h
- (command "setvar" "snapang" ang)
% q( ]$ X( g# ?, g - (princ "\nGoc cua truc toa do moi : ")4 Q ~3 W; _, {7 z
- (princ ang)/ S$ {3 h k6 ^" |/ ?) N
- )! b' v3 n1 s4 x d; r7 B' O3 s9 m
- )4 u; {! x& R# E0 I) }8 G G6 I! i
- (setvar "cmdecho" cmd)
! Z8 A4 X( k( d - (princ)
" T0 i- ^) _6 g! h9 a; u - ): ~: s' s& v$ ?! p7 x. {# W
- ;==================================================================================
( l& r( s& E* w6 u7 d - ;============================== KY HIEU DOI XUNG ==============================9 H: i# ]- ]2 o8 c7 G* S
- ;==================================================================================2 q$ N. |% M2 D& w# h0 P0 W
- : Y9 n4 J6 _& V, C/ o$ \* d* f
- (DEFUN C:DX (/ CMD OSM OLDERR PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 PT9: n2 h: I+ z5 L% M. _
- SZ G45 G135 G90 G180 SS loi)3 |: u- G8 E- r. Q- M3 }6 W
- (defun loi (s)
7 z+ B8 H* F1 w - (if (= s "Function cancelled")2 E0 {* C; f/ e; p# a% k6 i$ {) u P
- (princ)
2 N0 Y7 w4 h6 p' m - (princ (strcat "Error:" s))
f9 G/ p1 [7 E - )1 p/ J+ |: W9 a1 q+ k% G9 u8 T
- (SETVAR "CMDECHO" CMD)
/ S: A) o8 g' n s1 p - (SETVAR "OSMODE" OSM) s; t% R+ L2 B+ ]8 {, S
- (SETQ *error* OLDERR)/ C7 |) b+ m0 r+ c9 C
- (PRINC)" O6 {( ?7 q) {/ o! M2 J
- )' K3 v% h9 |! K
- (SETQ CMD (GETVAR "CMDECHO"))
+ ^! I* g o2 g1 L - (SETQ OSM (GETVAR "OSMODE"))
8 G2 h( S& h) N - (SETVAR "CMDECHO" 0)
' E& r! A# R" ~& x- k; a - (SETQ OLDERR *error*
8 G: b6 H' W- w/ @( o) T - *error* loi)8 ~% q6 E6 k* s1 t
- (SETQ SZ (GETREAL "Size <1>:"))
( P9 G' o: j9 U - (IF (= SZ nil) (SETQ SZ 100))
# @: B0 ^- N/ X' c# l/ v) U - (SETQ G45 (/ PI 4))
; {8 k& Z- l* H) V! U - (SETQ G135 (* 3 (/ PI 4)))
5 D3 T9 C$ ^! e- X9 P3 L9 { - (SETQ G90 (- G45 (/ PI 2)))
1 k) G+ R' y* e+ X0 e+ P - (SETQ G180 (+ G135 (/ PI 2)))
6 g6 @6 X7 q9 X# ~6 p: V - (SETQ PT1 (GETPOINT "\nDiem doi xung:"))
3 e$ f6 Z6 f* L+ {1 j$ y: I - (SETVAR "OSMODE" 0)
% {! r: y$ F4 \! x8 y: h* d: I - (SETQ PT2 (POLAR PT1 G45 (* 2 SZ)))
+ i$ y% s+ N8 g1 R - (SETQ PT3 (POLAR PT2 G90 (* 2 SZ)))
! z$ T' P q, i, |, T - (SETQ PT4 (POLAR PT1 G45 (* 1 SZ)))3 k, y! U4 ^3 z n
- (SETQ PT5 (POLAR PT1 G135 (* 2 SZ)))
4 K( S8 c# h6 y' G/ E3 u - (SETQ PT6 (POLAR PT5 G180 (* 2 SZ)))
: d: I U2 @) z9 E: r) a+ {# I - (SETQ PT7 (POLAR PT1 G135 (* 1 SZ)))
. T, R U0 p% { - (SETQ PT8 (POLAR PT1 G45 (* -0.7 SZ)))6 {8 V( N# \# n" E
- (SETQ PT9 (POLAR PT1 G135 (* -0.7 SZ)))
/ [8 m1 d0 d5 Z `3 Z0 m) h4 r - (PRINC "\nGoc quay:")
0 r& Y8 {, a2 M. c& K - (SETQ SS (SSADD))8 Y; F) m3 q" U* u, ]6 `
- (command "layer" "m" "Dim" "c" "" """")+ A c) y3 \1 M+ K
- (COMMAND "COLOR" "1" "")
% d0 M' a+ O/ S, X" c9 w - (COMMAND "LINE" PT8 PT2 "")9 W( i0 j6 }+ T4 x
- (SETQ SS (SSADD (ENTLAST) SS))
* H9 |. H% b# E1 c5 ~/ k - (COMMAND "LINE" PT9 PT5 "")
& t. C7 s# M" g2 ^+ _) S - (SETQ SS (SSADD (ENTLAST) SS))
0 i4 V) `( W. N8 @ - (COMMAND "COLOR" "1" "")" ?4 y% h5 U3 |2 w+ k3 A3 V) O/ d
- (COMMAND "SOLID" PT2 PT3 PT4 "" "")
# U: t& u$ N; k. j3 _ - (SETQ SS (SSADD (ENTLAST) SS))
" k6 M! ~4 v# d- t% @, D - (COMMAND "SOLID" PT5 PT6 PT7 "" "")
4 w' _9 |5 _ ]3 ]2 _ - (SETQ SS (SSADD (ENTLAST) SS))
# P# P+ H5 N5 {& [: m4 } - (COMMAND "ROTATE" SS "" PT1 PAUSE)4 [7 Y8 h5 ^; \/ S4 j
- (COMMAND "COLOR" "BYLAYER" "")
- S" o/ f( T$ O9 g- s3 O- _ - (SETVAR "CMDECHO" CMD)
a3 O- ?! H" M4 e* U - (SETVAR "OSMODE" OSM)( ~+ h5 x" L0 b/ }6 T2 [% ` P
- (SETQ *error* OLDERR)
3 W" ^3 p& |# y9 W) w+ q. }3 O& [7 `7 B - (PRINC)
: m* ?* ~' W: d3 Q - )- Z3 b% X8 j# O# N+ \
- # x ?, n" v; e3 {
- ;==================================================================================
0 Q$ v! U# Q$ R% J7 | - ;================================= KY HIEU TRUC ===============================
/ l9 K# L5 d$ K9 v4 P/ [, V, K( u - ;==================================================================================
) I1 P: C/ V1 X# ]! v7 P - 0 l# h# ]5 d8 {% n6 l8 n
- (defun C:vetruc ()* H) V* a' [3 T! M
- (setq bk (getvar "USERR3"))
* O; K$ \( |, d* d! g - (if (= bk 0)
0 ?& M8 U( J& K* }) \1 t - (progn
4 n4 J; A1 ~3 D- _ - (setq cont "1"), G8 i0 E$ d: y
- (setvar "USERR3" 1)
4 c! e+ s% @2 n' U. I" m* a2 j+ M - )
/ d* _6 D) s, f9 [; D) d - (setq cont (rtos bk))& ]3 Y, X1 _% v. Q" O
- )! E2 D$ C* a/ O$ \8 B1 f6 ?1 F
- (setq pt1 (getpoint "\n Nhap diem dat:"))
) a4 W5 C% w% L! m, S. I - (command "layer" "m" "Dim" "c" "" """"): Q4 y0 ~0 z0 X) F# K
- (command "osnap" "")
4 q4 S& ?5 l0 A( D' u - (COMMAND "COLOR" "7" "")
: T* D5 p' u9 P% k8 \7 a - (command "circle" pt1 150 "")
8 ?- M& ]+ A# M - (setq pt2 (polar pt1 0 150))
+ U7 e# D$ k0 S+ ]* t - (setq pt3 (polar pt1 (/ pi 1) 150))
* S% u: v" @, W) ` - (setq pt4 (polar pt1 0 300))
( Q7 y% u* P0 o. y - (setq pt5 (polar pt1 (/ pi 1) 300))
4 J: R/ n; ]% g E( R - (setq pt6 (polar pt1 (- 0 (/ pi 2)) 150)) k4 u, f+ q4 Q; g
- (setq pt7 (polar pt1 (- 0 (/ pi 2)) 300))
+ m, T! O' d4 U4 |2 |) { - (setq pt8 (polar pt1 (/ pi 2) 150))
; K% P* S! i# E" e+ ^+ j - (setq pt9 (polar pt1 (/ pi 2) 300))
! s- k, ?9 g+ q6 i! u4 a. `& A - (setq pt10 (polar pt1 0 150)) L8 C1 V H) T2 l
- (setq pt11 (polar pt1 (/ pi 4) 150))
% H, Q( h: U, A& X* u; I2 \ - (COMMAND "COLOR" "BYLAYER" "")
; o: a& u. Z% g% n- P2 Q - (command "line" pt2 pt4 "")# U8 @" y/ l' G/ Q; f( w
- (command "line" pt6 pt7 "")
1 Q4 ~- \: r+ Q/ ` - (command "line" pt3 pt5 "")
/ A6 }4 Z2 {3 O+ F5 n( |# ^0 J4 Z - (command "line" pt8 pt9 "")- e) H: @0 f, N4 ]$ k$ v: {: T; h
- (setq dk (strcat "\n Size:<"cont">"))
( x! W6 ?6 z l' \" w - (setq bk (getreal dk))
2 ^% r T% W. Y - (if (= bk nil) r/ Q p0 {% f3 G5 B5 {
- (progn! S2 B5 K% }" U# w
- (setq bk (getvar "USERR3"))
% E& \& N) W6 ?) j3 p o t+ Z - )1 u/ o( v+ S) h% C; @
- (setvar "USERR3" bk)2 y' f6 \0 E/ f# {, G" ?
- )
( _! F! O- z1 m3 { - (command "scale" pt4 pt5 pt7 pt9 pt11"" pt1 bk"")
' M) r5 f6 S! H% c' x0 C0 E - (COMMAND "COLOR" "7" "")
4 m( I. F, ~5 K+ t7 V - (COMMAND "STYLE" "Truc" "impact" "" "" "" "" "")
) L8 z7 d/ A! w - (command "text" "j" "mc" pt1 (* 150 bk) pt10 "A" "")
9 Z6 E0 P) m$ D2 } - (COMMAND "COLOR" "BYLAYER" "")
* h/ n6 A! x6 u3 |' d2 Z - )
& P4 g- U" C7 A" s/ e- H; _) L. g/ X - 3 c, J, y# K1 r! V! U1 y1 _/ o
- ;=====================================================================
^8 @6 O3 _: t+ Q - ;CA - Reverses the case of text. (Upper to Lower and Lower to Upper.)
! W/ a4 I- M; r# E: e" a. N - ; P) z7 K& l! E
- ;Jeffery P Sanders9 G# z' I( R9 Q& M C+ j
- ; p s: t& ~" b) u
- (defun C:CA(/ en enlist tx newtx cnt tp asc note)
4 \6 a" D" H4 q+ s6 B" D6 H - (setvar "cmdecho" 0)0 w9 O3 c) z0 |) N" l8 w i" x* |
- (if(setq en(entsel)). Z! }" u6 o1 N$ \3 K
- (progn
0 t& O- |7 K; I/ W - (setq enlist(entget(car en)))
' M. F1 W% a4 I4 F6 O - (if(= "TEXT"(cdr(assoc 0 enlist)))" j/ P0 Z5 ?# R% H2 ~/ {9 T
- (progn" C$ e" P# j, A' N9 Z2 X; J
- (setq tx(cdr(assoc 1 enlist))8 o$ k, |& T" J$ P/ \
- newtx "" cnt(strlen tx)
! m/ {. N, P7 n ]/ \* `5 t; \ - note "\n...CASE Reversed. \n "; s8 F7 F& h- p% J3 a1 v; F
- )9 s8 [- f0 t( A1 `
- (while (> cnt 0)
P. x" P2 e, K - (setq tp(substr tx cnt 1))
0 {4 u6 U0 k4 V - (setq asc(ascii tp))* u3 G; z$ q, y) l+ B2 Q
- (if (> asc 96)$ ~5 V$ ~2 S( T8 K3 x) c4 h
- (setq tp(strcase tp))
. w+ Y* e" l7 F9 R - (setq tp(strcase tp T)): O3 i* o O' O& a
- )3 s3 U! x+ t) p) z6 D% `
- (setq newtx(strcat tp newtx))
6 I; X! T( G8 j1 u, ] - (setq cnt(- cnt 1))( b% H5 s9 `( L
- )
. n, Y" l( E7 j* Y - (setq enlist(subst(cons 1 newtx)(assoc 1 enlist)enlist))) g, r' X* p4 f5 `0 |. Q& A
- (entmod enlist)% P* K6 y# c7 z U
- )
& c2 r0 q O: G U - (setq note "\n....Text Only Please. \n ")
( d _( \) P" g9 @8 @ v7 V - )
1 u. T# Y- E" g' }/ G4 m0 @ - )
' b8 a6 Y! Z/ f, H* w - (setq note "\n....Nothing Selected. \n ") P: L4 ~( g: s( ~
- )
a; \# H9 w. e" f+ B- n! Q - (setvar "cmdecho" 1)) ~$ S$ n+ C$ @; E+ y" O
- (princ note); Q! h+ Z2 G9 w% Y% Q
- (princ)
1 X( v6 G' c% g: J( _+ Z - )
8 y) L1 _* r0 \7 r
5 P8 Q M2 R& N/ q e4 ?% X- ;=====================================================================2 w. x8 `3 w; F# S
- ;==================== NEW TEXT STYLE UPDATE ==========================3 G! a2 ?0 m2 K9 s; m
- ;=====================================================================6 X$ A* {/ [8 i3 p' @, X
2 c; N* Y1 v+ [2 J9 A- (defun c:nS (/ tdt ssdt sodt index)4 l! q7 s6 H! l# @7 b$ G9 R& H
- (defun ObjName (ssdt /)
% U1 y" Q7 r9 Z4 I' X4 h - (cdr (assoc '0 (entget ssdt)))
2 e7 h) W, x( C; F) D: t; A# ~- R - ): V# |" w8 H; J
- (defun MoPL (ssdt /)) [! g& [# _; j
- (= (cdr (assoc '70 (entget ssdt))) 0)
( l$ N, k2 N: H, g( { - )
: z7 `& \; f! t7 _: | - (defun NoiPL (ssdt /)3 T6 A n i5 @* _1 j
- (if (MoPL ssdt)0 i! _) Z( S# y+ ?) O
- (command ".PEDIT" ssdt "J" "All" "" "X")3 [6 F3 l: ~* e0 E. h" V
- )) ]: {' V6 J! Q5 c
- )
% S7 w R) i9 H3 p- N' J - (defun NoiLC (ssdt /)4 g+ Z8 U( L" g8 k" n( Y5 P
- (command ".PEDIT" ssdt "Y" "J" "All" "" "X")
, n" y: Q; x) m, B7 n! S- I - )
6 o8 Q% D6 [- V4 Z8 G; i1 e0 b - (setq
, T2 u" G+ {, [ - tdt (ssget)
* s9 O g0 Q/ u! B9 H4 d( G& T! L - sodt (sslength tdt)8 f R% B4 }$ i% D( A* B- u
- index 05 g+ d( T* l3 k2 }( l6 d
- )
# c! p+ `# {, x1 U3 U) q' j - (repeat sodt- L9 ?5 y4 H: j+ r
- (setq
2 ^ |! M* C% `# U - ssdt (ssname tdt index)# L) ^. g; X! g
- index (1+ index)' j. e; i$ n0 j
- )
/ E# w$ s' E: F m1 K5 e& ?+ R' N - (if (or (= (Objname ssdt) "LWPOLYLINE")
' { c; p( z, G' E4 f5 F - (= (Objname ssdt) "POLYLINE")4 M+ y$ ? Q7 Y1 o' n! d; m' [
- ) i, m/ z( b4 }* i1 h9 ?
- (NoiPL ssdt)
0 N9 |. H3 M# [6 P! j9 j - )
' S4 R8 p( b B# S4 F; ^. j& j - (if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC"))! ~& V; P! B' S, y$ M( M3 }
- (NoiLC ssdt)
( a/ g1 p& T' u4 C1 M% N - )2 U3 P' h. A2 T9 t
- )- J7 M. j1 V, x6 v
- (princ)
& m" F$ |/ r; ]. {/ b3 m - )* s- H6 I$ w& k) m" O# A
7 H% t, d8 Q- X G1 C9 S/ @7 h- ;=====================================================================
" P2 x# _1 l+ Q$ ^# L; |+ [" d - ;;; AREAM.LSP& K9 n7 @( R. h) g" t9 m4 o+ v
- ;;; Function: Calculates the total area of selected objects9 Q; }5 V" a! X7 O
- ;;; By Jimmy Bergmark
# _) N4 I' W% }) C, b/ w - ;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved
Q' y0 X& ?+ Z- N' j) n6 ? - ;;; Tested on AutoCAD 20001 i4 q& Y8 Q' [! z, c
- 5 J* R2 E! b% j- l9 @% @% {
- (defun c:ea (/ olderr oldcmdecho errexit undox restore ss1 nr en tot_area)
& e7 f. @& B* G" O/ U' e - (defun errexit (s)
6 ^5 s: z5 }, p d7 i' G - (restore)9 _3 t- d# l6 X U) |) G7 h9 E
- )/ c( s# D% `" O, b3 R
- 0 A8 Q8 U. `3 b' R5 x0 j
- (defun undox ()
7 w4 X& z, e n8 s" j - (command "._undo" "_E")/ t& D( E3 V# N: t+ l* s! `: Q+ v2 _
- (setvar "cmdecho" oldcmdecho), w; F& w1 S( @# M: ~
- (setq *error* olderr)8 [% I2 _6 `* K% H, v( }2 \
- (princ)2 v1 o. A3 d, I6 P$ p% z& i
- )
, J U8 X. [1 O) u2 g& s5 ?
+ f9 U0 D3 M e Q, X- (setq olderr *error*
% E2 z9 a4 K0 e7 { - restore undox& K2 _( L. s* S6 a* a( J
- *error* errexit7 ^ K) U6 P3 \; _
- ); p! K4 M! l3 j7 L5 E: A* E
- (setq oldcmdecho (getvar "cmdecho"))
) R+ \; j' ~2 q8 w* F% }3 L/ P - (setvar "cmdecho" 0) F. j8 g4 {; Z5 _
- (command "._UNDO" "_BE")
8 w( n/ L2 d- ~9 G7 M/ N- N - (if (setq ss1 (ssget '((-4 . "<OR")
, ?" Q( u2 C) \ - (0 . "POLYLINE")( ?+ A, ^3 B4 r# j
- (0 . "LWPOLYLINE")
, `5 `' |7 H# q1 _% a - (0 . "CIRCLE"); @7 I& b" S" b0 V+ b
- (0 . "ELLIPSE")8 ]$ w# }% s- ?& F5 P6 a9 Y
- (0 . "SPLINE")
( Q' ]" q7 ]' D9 R& W - (0 . "REGION")
& E6 D; Z2 f) i1 r, p R - (-4 . "OR>")
% C+ I2 a. T4 h* L* Y! c+ G; a - )
8 L- h+ _5 ^( d u - )0 f% A- \0 t, f: U% O
- )
% P# j8 B# x5 h! f2 V9 O+ i - (progn. Y7 E. @- f5 _, y& m1 R" h7 k
- (setq nr 0)
( m" ]& `) [% Y# f! Q( ? - (setq tot_area 0.0)) f0 ~) k6 N' E: g9 v
- (setq en (ssname ss1 nr))# J, [# B; o# a: _# C& [) P
- (while en1 L9 y- q+ i. j+ O' U2 a
- (command "._area" "_O" en)
( I4 F+ }$ S, t m - (setq tot_area (+ tot_area (getvar "area")))
: E- t. w; J7 d - (setq nr (1+ nr))/ E' }: D$ W2 e `3 D
- (setq en (ssname ss1 nr))* W- k( o& m) K; N+ c7 a5 F
- )8 G: l8 s# P6 S. U
- (princ "\nTotal Area = ")
' v2 q% F! y* [+ h3 T) l% m7 C - (princ tot_area)
' u2 n, E0 F" H1 o4 d9 V - ) N7 w* [* u, e9 x1 w4 |
- )
. D7 F6 z2 j! J# g, o - (restore)
, k' I" }7 D! i; _ R+ c/ ? - )5 l* b8 u; D5 c5 x2 ?
* |3 G$ Y6 M# A- ;=====================================================================: p( |5 T3 c- v/ L7 D& U% R
- ;;; By Jimmy Bergmark
6 T0 O/ x1 c9 T( M# a - ;;; Copyright (C) 2008 JTB World, All Rights Reserved% c; q8 R" \, R8 q- g
- ;;;
4 B. J" O9 B2 r - ;;; Created: 2008-03-31
# Q5 n! j/ o2 K. A$ d: S" b8 ? - ;;;) P) _0 y4 W9 C. ?' M, I. J8 s
- ;;; Convert Attribute definitions to mtext
% m5 N. ?2 ]" u& A6 E( O; |0 m. ^ - ;;;% t5 o1 C1 r2 |# R- w7 i
- 6 `. w) l! w8 V' U6 ?& U
- (defun c:ATB (/ eset1 blkcnt en enlist tag1 ht pnt vl space)
% S! W; |: d1 T0 U% x2 D - (setq eset1 (ssget (list (cons 0 "ATTDEF")))2 ^/ o1 y& w; e1 _
- blkcnt 0
: r- w0 P0 W' {$ X' \1 z7 ]. K! f0 k - )
" g: ^* L: a4 C* g- n! V% x - ! ^9 r9 z) ~) B2 v* i
- (if eset1
/ u3 H' }) q: F: B5 W8 N n8 f - (while (<= blkcnt (- (sslength eset1) 1))
! w/ y3 S6 D- w3 o h8 e | - (setq en (ssname eset1 blkcnt): _. H+ F3 W4 c! A# N* z
- enlist (entget en)
. n: T% W5 Y# F- r) f) D - ht (cdr (assoc 40 enlist))
5 K! W; v" r! D1 N% [$ I - pnt (assoc 10 enlist)
" z( M c% B, t+ l+ {* l - pnt (subst (+ ht (caddr pnt)) (caddr pnt) pnt)
; _% T( B, t1 c, M6 j" Z - space (cdr (assoc 67 enlist))
# S5 ?- V7 U( K" I1 y' b - )* W/ u' a" _' V0 K2 v
- (setq vl (list, q( Z+ t+ C4 G. `3 r. k) o4 b; x
- (cons 0 "MTEXT")# k$ [( G& @0 V [
- (cons 100 "AcDbEntity")
7 G0 i: e* T. X) x+ t) u - (cons 100 "AcDbMText")
3 I9 _! \0 {3 K C - (assoc 7 enlist)8 c; e" d+ Z# P8 m
- (assoc 8 enlist)
C$ V4 J5 ?- ^' E. U, V" U3 D - pnt& i& y; I6 C: V( ~
- (assoc 40 enlist)6 r7 i) C0 b, U$ {
- (cond ((assoc 62 enlist))
/ e7 K8 Y z& `0 b$ D! p, B) l ]( [ - ((cons 62 256))
* S) `* G8 ]& _ - ). N& t1 b$ _0 Y6 ]1 r8 J& V
- (cons 1 (cdr (assoc 2 enlist))); @8 y# J5 n* ~ R: T1 H
- (if (= space nil), [0 I, N+ R+ X- \3 [1 Q
- (cons 67 0)/ n9 T/ m5 R2 ]% a) ^
- (cons 67 space)
7 ~4 Y2 d/ F: I3 Q9 r8 C& u/ N - )9 P: j5 d( e0 N( i$ m5 e
- )
* \9 v0 n( ?- O, o' C' N3 C; N - )
' K \6 N- J9 H/ k# {2 v* z% [ - (entdel en), Y6 S2 F* _1 A! _" {6 C! U
- (entmake vl)! k0 h8 k1 f, @- ~9 A: t, z; Z
- (setq blkcnt (1+ blkcnt))
7 S+ e3 H! h3 R, {3 C8 W( \5 k0 D - )+ Q& | }% I# B4 y, v3 a) X1 h+ d
- )* s) v/ o' ]- x7 n. }$ K% U+ G) I
- )
3 \& d0 b1 A- ^4 R* _
4 Q/ J% U, t! P* b% y+ v- ;=====================================================================- k* u. B& R% U; z+ t
- 4 I/ ^4 R' l" D- J4 w% W4 Q# P3 S
- (defun c:xxx ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
* i5 t' X+ N( @8 ~/ h0 }' K - ; Khoi dau cua chuong trinh
4 t J9 R' {/ A3 ^5 ]; L @ - (princ "\nCopy Inteligent...\n")( G! g5 d4 h2 r+ ?$ F
- (setq luuecho (getvar "cmdecho")
* h2 f! w6 L& w! G$ m4 } - luu *error*
+ ?3 A. Y- U0 h* u - *error* ketthuc$ E0 J1 u& ?/ O# K( F
- cumdt (ssget)
. \9 J2 Z9 H$ s4 y - dodai (sslength cumdt)- i/ C6 X3 U8 I# T9 \* Q
- goc (getpoint "\nSelect base point:")( P2 |9 Y _& E) U5 S" o/ }
- thoat nil
" d* T' `4 G3 m7 K2 q - dem 06 H: j8 e; u% O! M
- textxl nil
' ]8 ? N, b3 P; z0 N% { - );
4 ]' h, H5 s# M* ^ - (setvar "cmdecho" 0)
7 L9 E6 T1 x1 y& |; J# g! ` - ; Loc ra duoc ong text de xu ly p% _6 [& C5 }. x# H% [" t
- (while (and (= thoat nil)
8 Y3 q! K$ I# G# j9 ?: t - (< dem dodai): |/ [0 r U7 i5 M+ Z% ~
- )
/ p$ F2 [/ {4 L* J - (setq ten (ssname cumdt dem)
- C" p. M6 s' w. I5 j' i - dem (1+ dem)* F2 p F; k$ u0 |, O, x
- doituong (entget ten)
5 s4 S8 V- c6 v6 B: B" j6 z" t - kieu (cdr (assoc 0 doituong)) * q2 C* c6 T& f- I J
- )' }9 F# |5 E! d9 W2 y# O) h3 T
-
1 r l7 W. X, z. \# n - (if (or (= kieu "TEXT")
% {2 a$ i9 t0 U& l, u - (= kieu "MTEXT") # e4 g, J! `; Y# D) X4 B
- )
: i- X) l5 J8 }; d" Y - (setq thoat T
q/ d' h2 G9 X( m1 U - textxl (cdr (assoc 1 doituong))
' f8 v$ B8 z9 \ U - )
8 u2 a: @1 _) `2 X7 d! C# P5 [- p - )! X% ?- y# H! g; v: h+ b4 F
- );
3 O: \3 t6 d/ o- h& B* n! B& C - (while T 6 Q. }; A. v( i
- (setq toi (getpoint "\nSelect next point: " goc)9 a9 A! I% |! ~" }6 ~
- vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc))); f5 L* W% b' b- r$ y6 [: z6 q
- dem 0( _# N( a+ r, Z/ K9 J
- )
* j9 B* ^! A2 \6 W6 X9 O8 V: u - (while (< dem dodai)
7 W9 ]4 I6 `4 d6 _7 S7 J4 d - (setq ten (ssname cumdt dem), c* l+ u% q" F6 i" L+ o' t
- dem (1+ dem)
# W0 {0 D# d' t* u0 e9 I& L; L - doituong (entget ten)( Q* z) T8 \% }7 J0 b
- kieu (cdr (assoc 0 doituong)) 6 V& e% l# B- I3 w/ D3 Y3 ^
- )% }7 C& A% [6 H8 z( b: b, _
- ' O- j, _4 u5 D( {, |
- (if (or (= kieu "TEXT")! j, }& e) |6 v# h! ?, K
- (= kieu "MTEXT")
, o* i$ u& K" g& M: I0 e - ), f3 h; O0 m! ]. O
- (doitext ten)
! ~: C' }# W# l0 {1 m - (copy_dt ten)
. L. W1 {! A! w" U - 5 A2 v7 @0 w N. H
- );if
% ~3 l6 s% j+ }4 n) _0 d" P - )+ v5 S* O- m$ v
- );while
) Z( J. I! M+ b6 o: `8 H - (ketthuc)) P! y/ e* K6 Q
- );defun
* v5 S& t8 k. D8 x( \) _( r - (princ)" N# |+ ?3 @0 H( i1 r, y1 ?1 l
/ W( g# s {5 ?3 k4 i6 H3 A: |) N- ;=====================================================================
, p; z0 g$ Q3 X6 u9 f - ;;; By Jimmy Bergmark, w( D N1 E* A% j/ [: C1 q
- ;;; Copyright (C) 2008 JTB World, All Rights Reserved& P+ ~5 n# e* C$ E! m+ P4 b
- ;;;
5 K- [ Y' X$ X# v3 m - ;;; Created: 2008-03-319 |! \/ n4 W0 A4 _* i
- ;;;
0 a/ x, ~- I+ D4 J- q, E - ;;; Convert Attribute definitions to text
: _2 G. L! x/ ] - ;;;+ O: F) s& Q2 `$ p' z: T
- ; `# ~7 ^( u5 t" f0 d
- (defun c:ATT (/ eset1 blkcnt en enlist vl space)9 r' I. T" E7 v- \, [, ^
- (setq eset1 (ssget (list (cons 0 "ATTDEF"))). N8 I/ _, ]6 |8 n
- blkcnt 0& [6 g' @* a+ L. `4 _5 C
- )
7 [; O+ B2 A, v8 Y' Y$ U+ ~7 i
l0 J, ]. C* M1 ~* {- (if eset1
2 G4 Q! p9 d; d3 U4 j o% _' h - (while (<= blkcnt (- (sslength eset1) 1))- H: G7 x9 n" t: x! v
- (setq en (ssname eset1 blkcnt)- s+ A2 K( i5 g/ j
- enlist (entget en)
2 \! _. q8 V5 |2 c+ B5 |4 C - space (cdr (assoc 67 enlist))
: b: f+ b6 c$ q2 ?/ W# K - )
7 G. n9 M0 ~7 F0 `9 N - (setq vl (list4 S+ f( g5 M. r8 R
- (cons 0 "TEXT"); `: B- s5 n" @' G* b
- (cons 100 "AcDbEntity"), P {( Y) ^' w* C3 {5 J; R" [
- (cons 100 "AcDbText")( Y5 i# ?' m: d/ @" {2 m0 g
- (assoc 7 enlist)
& c7 e- \' B$ z4 H - (assoc 8 enlist)1 [9 B$ Q" e0 r5 u6 n0 \& G, u
- (assoc 10 enlist)
( s6 ], M9 ^2 r - (assoc 40 enlist)+ z5 L$ Y4 @9 O# A! I0 C6 s, Q
- (cond ((assoc 62 enlist))+ g/ w+ s2 m8 c* `. z% ^1 C* a
- ((cons 62 256))5 I2 v- T% Z( w5 q! ]# I: R. N
- )
8 e7 m1 e5 M- T" _ - (cons 1 (cdr (assoc 2 enlist))), [8 c7 ]: t* u- j$ s! M
- (if (= space nil)% ?6 A! }% ?/ T' M2 ~( ^' m; D! A
- (cons 67 0)4 z- ~- \/ q1 q @+ h" q* X0 J
- (cons 67 space)" u M7 {1 e A9 w) b' K
- )
5 [+ [# Y5 F# G: u) K - )
& V1 k* a3 A7 t% Z6 @" a5 h! W - )
7 _* t" o j, f+ S5 L, M, ^7 E - (entdel en)6 p: w1 ]! D! S) f
- (entmake vl)
7 I& _' @- _, U/ C; D7 @% z1 }9 D - (setq blkcnt (1+ blkcnt))
* c* V) ]2 g& d9 [/ J0 C - )
) R6 ~ [0 [) X9 W. G - )
$ z: c- @0 v' I0 R - )
) ?: a) z0 [6 N F x; S - ;=====================================================================
0 R u, W. p/ M _: M( d - ;============================ Doi Truc ===============================
. f1 O1 D# w7 v+ S: v - ;=====================================================================' @/ g; `' A+ [( d3 a
: k7 o7 Y+ x- r o- ;=====================================================================6 y" ` ~/ p& [ h# n# A& s
- ;=============== FUNCTIONS GA 1+3+5+7+9+11+13+15+17+19 ===============
( n9 S$ s4 V& f4 ]% d! G: ~ - ;=====================================================================
; g1 W; V. d% r2 Q0 ?( X x+ ^. h - (defun c:ga1 ()" y3 a7 D5 F$ _
- (setq a (getpoint "\nChon diem: "))* \9 ?: v7 _1 D# `6 {
- (setq b (getpoint a"\nChon diem: "))7 K: F0 G; J, v0 R4 l6 g& i
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))2 [* a* _# _4 U! G" P
- (command ".circle" c a)
0 @+ X, n1 ^1 s# n! H# L, i m) p - (command ".line" a c "")
. Y$ l" u% \6 P- K8 b# p' p1 f - (command ".array" "last" "" "p" c "1" "" "")
5 o6 W8 r/ `2 j* D - (princ))
( {3 |8 W3 E3 K) c/ h8 g7 H5 v8 F - / u, v" F( v& B% {) R+ Y# _ z8 Y- Y
- (defun c:ga3 ()4 s8 Y5 M- X- R5 N" T1 X
- (setq a (getpoint "\nChon diem: "))
' e4 f' Y% q% V* ^# | - (setq b (getpoint a"\nChon diem: "))
5 B. L$ O0 n8 `2 w& B; m9 I - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))* s% G4 s1 w( Q$ D$ V$ d
- (command ".circle" c a)
, C$ x1 w) _4 I2 H1 b - (command ".line" a c "")
0 ]* ^. A! U$ P0 z9 @ - (command ".array" "last" "" "p" c "3" "" "")
6 v3 y, A( g3 ? - (princ))/ {" I$ b( p# ?' i0 x
- ' [% X, z$ J: s
- (defun c:ga5 ()9 U% n* X5 H2 _+ [; O- v+ k' K
- (setq a (getpoint "\nChon diem: "))
3 U$ }6 @) s. F6 q4 u+ f - (setq b (getpoint a"\nChon diem: "))% D) E+ a( D6 M0 J- \( a
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))" ~; {) J' s {- U- R4 C
- (command ".circle" c a)/ `6 b: k$ F: O4 w/ g
- (command ".line" a c "")/ F3 [5 e4 K2 t0 f+ X
- (command ".array" "last" "" "p" c "5" "" ""). k; L' C6 n1 e
- (princ))
j4 e; z% L" K8 c' H - $ l! W4 a9 e2 C, N* N6 r6 a, x
- (defun c:ga7 ()2 B2 K, ~& s ^1 U
- (setq a (getpoint "\nChon diem: "))
# r$ [- e0 ?$ y5 ?* f3 T! D - (setq b (getpoint a"\nChon diem: "))
8 q7 p0 y' L2 O* S3 a! C+ [ - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
* W( u z* j4 P+ }: P - (command ".circle" c a)
, m! H, L4 \! G( ]+ @+ e U; g - (command ".line" a c "")
. H% p) u |6 a - (command ".array" "last" "" "p" c "7" "" "")& E: o8 i9 V5 H4 G8 f
- (princ))5 Q T/ [2 t& X2 d* w; {2 Y# f
, Q7 N# i3 P! k c8 [- (defun c:ga9 ()
$ z* P3 w, o4 k" @3 _0 O. M - (setq a (getpoint "\nChon diem: "))% a8 u" n0 N! J" ]$ g
- (setq b (getpoint a"\nChon diem: "))
* C) C, ~2 Z) E% C" T' q" X6 H - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
& p1 ^; x5 {0 a - (command ".circle" c a). j, w9 L4 G, J) R2 ]6 B
- (command ".line" a c "")3 j/ H8 `/ B) P/ @) [( M2 B
- (command ".array" "last" "" "p" c "9" "" "")
2 q) k3 Z2 |9 _! h - (princ))/ N! t f. A9 X
b2 b, W- e. M: r6 r) A- (defun c:ga11 ()* s) ]+ o+ l! f$ L2 r
- (setq a (getpoint "\nChon diem: ")), n7 W# Q3 Y1 {" R
- (setq b (getpoint a"\nChon diem: "))
! n s$ Q& R% n1 }1 _- ?, D1 {) v - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
7 u$ q. _ a: m7 B7 ?6 Q9 r( G - (command ".circle" c a)4 _4 r6 @3 l! J
- (command ".line" a c "")
+ `* [5 R+ H" ?" z+ T - (command ".array" "last" "" "p" c "11" "" "")
; D$ N" u) e$ K, ]# P* l - (princ))
^2 ^3 s" v" ~, K" H3 s - . ^$ e! `/ Q: A" A4 @: m) O( M
- (defun c:ga13 ()
/ f/ X0 }: u* j3 Q5 ?6 m - (setq a (getpoint "\nChon diem: "))
2 g: y0 m( t q% ]8 y - (setq b (getpoint a"\nChon diem: "))
" Q; O. N# q! l+ A - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))# Q2 ^; r* L% Z6 D/ q
- (command ".circle" c a) d9 I" m0 U x) ?! R
- (command ".line" a c "")
7 {6 t6 a- E: R) ?2 J3 f - (command ".array" "last" "" "p" c "13" "" "")
`# L4 g0 l5 ~) u6 I. `9 ^ - (princ))
/ S) u; G4 X2 q' R5 o4 v
9 L4 k% L2 C. `6 V- U5 T- (defun c:ga15 ()1 M' c$ {" ]' x: k* j
- (setq a (getpoint "\nChon diem: "))3 J; x% U% J8 h5 S) M+ ]; j
- (setq b (getpoint a"\nChon diem: "))
( V, ^. P% j- e g0 Y3 e - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))$ t8 ?. J4 D. [, J3 w4 K0 v
- (command ".circle" c a)8 |2 M' f/ I& h- N7 ?
- (command ".line" a c "")' s0 G! b$ s# k& X
- (command ".array" "last" "" "p" c "15" "" "")
* r) Y5 D/ ~- T# d - (princ))
) k3 i0 }* K' w( \8 j
; n" s3 r$ V6 X- (defun c:ga17 ()) _1 f6 \ N/ c
- (setq a (getpoint "\nChon diem: "))8 m- s1 a8 m8 l# i; u' O
- (setq b (getpoint a"\nChon diem: "))
! A1 e! n1 r. J. { - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))+ n7 \& F* H. l
- (command ".circle" c a)6 H" c& u/ G: a) B. N
- (command ".line" a c "")# f4 }2 Y2 F2 M c V+ |7 _
- (command ".array" "last" "" "p" c "17" "" "")
. D2 ~" V) o; ?* t$ J7 x - (princ))* ?. C) s; M' \4 s; a
- + D+ ^( D5 P" X S5 X
- (defun c:ga19 (), i5 J* Z- Z, x: w9 R
- (setq a (getpoint "\nChon diem: "))
1 l6 j6 a, m- x) S - (setq b (getpoint a"\nChon diem: "))/ g) {4 X2 J% M
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
4 ^3 z9 ?5 I2 {( x) Y: F - (command ".circle" c a)
; R# \+ Y: c E7 ^' ] - (command ".line" a c "")
4 X T8 `& F8 v - (command ".array" "last" "" "p" c "19" "" "")
5 F& E' g+ x- q1 n - (princ))
+ k. }; ? e0 B; Z' K j+ J* b
: Z& A) M* w/ ~. S. d- l- ;=====================================================================5 b' X; s7 L0 |' c6 Y9 `
- ;============== FUNCTIONS GA 2+4+6+8+10+12+14+16+18+20 ===============
4 }' W3 C( u# J w8 J( _ - ;=====================================================================8 `9 C+ B! {* c
- (defun c:ga2 (); K r! I* N% d
- (setq a (getpoint "\nChon diem: "))6 T9 v# c% i' x
- (setq b (getpoint a"\nChon diem: "))
@+ ^: s& r% _+ v, |: h+ r - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))* T. t; L$ w$ F, y9 {' Q
- (command ".line" a c "")
- |/ g! ~/ v, \: x H4 { - (command ".array" "last" "" "p" c "2" "" "")
3 Q" V, z, u& d - (command ".circle" c a)
9 `- n/ p% ? [ - (princ))( C, o. V0 ]$ n! G7 `+ U# `3 o/ O
- 9 u5 Z$ k4 H" g4 k4 J
- (defun c:ga4 ()) ]: y8 q x. x0 C- O* D: S
- (setq a (getpoint "\nChon diem: "))% b$ L/ X# n) V X" T, T0 [) T
- (setq b (getpoint a"\nChon diem: "))
9 T1 o, k+ I O3 W2 r, t, S - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
: [( V& V5 Q: }# I - (command ".line" a c "")
7 X# S9 f0 l9 K! h - (command ".array" "last" "" "p" c "4" "" "")9 r8 o @) t) z8 ~; L* L2 y& ~
- (command ".circle" c a)
4 F$ R) s& S J" U - (princ))
$ J+ Y8 J( O2 J- l - + s3 d$ v4 M# j& d* C
- (defun c:ga6 ()
" U& A9 c: P2 k, |" n - (setq a (getpoint "\nChon diem: "))/ J' z' @8 |' Q8 h# b: j& L& U
- (setq b (getpoint a"\nChon diem: "))0 i) x& s$ u- @- q# N9 {7 Z
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
F4 j- r/ Z9 a1 t) z3 b - (command ".line" a c "")
2 j) M/ ~: R0 Q! O - (command ".array" "last" "" "p" c "6" "" "")& f7 m: n6 Q' W5 f' q# q
- (command ".circle" c a)& r: r6 ~- ~6 p6 S" y c/ T
- (princ))
0 y% g, v1 S0 |- I I }8 i; j - $ T0 c3 Z) } a2 O5 K! D
- (defun c:ga8 ()( M2 Y2 z: D% s* |* d
- (setq a (getpoint "\nChon diem: "))0 x3 k- n' B( ~/ }$ A. m, ]2 I' c
- (setq b (getpoint a"\nChon diem: "))$ d T4 D3 v0 {) r( h
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))& P! ]; V8 K# s; O- b: O: N
- (command ".line" a c "")) ^; b; L& d# Z
- (command ".array" "last" "" "p" c "8" "" "")) h: @& z: j ?* x( t1 S
- (command ".circle" c a)
4 M" f( h# j" R9 j - (princ))- l7 L" N! L+ d) B* l4 z2 @ a; `7 J
- 1 ]4 p: m9 S4 ?6 N
- (defun c:ga10 ()
5 O! g! F- b3 Q - (setq a (getpoint "\nChon diem: "))
3 [) m! `/ T& t# K+ ]; \; @ - (setq b (getpoint a"\nChon diem: "))
0 g2 y$ g+ B9 C* k8 l" N7 I - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))); |! Y3 T5 h% B- G& x3 U
- (command ".line" a c "")
$ v* Q1 o" i+ d6 [( u8 ~! a+ t - (command ".array" "last" "" "p" c "10" "" "")
2 ?6 x2 S$ e3 E( e - (command ".circle" c a)
+ n- G; N" f/ ~ - (princ))% N6 _; o: X- _
' W$ h4 V' P' \8 u# F5 h, O- (defun c:ga12 ()2 V$ v# B1 t, T% r" g7 H
- (setq a (getpoint "\nChon diem: "))
* y4 t+ B- R0 U - (setq b (getpoint a"\nChon diem: "))
, p! d5 _4 B g. n% a2 |, V - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))+ `; I: W U0 q
- (command ".line" a c "")
% W6 X$ I& k0 h" Z) H; I+ ]0 m - (command ".array" "last" "" "p" c "12" "" "")
' d( p: P7 O% }3 p( f6 L - (command ".circle" c a)
2 O$ l, G6 p: `) o; x - (princ))
3 H5 N. S$ i% R6 |" T0 r8 n9 s6 C - " I# c- v! V& x" U& k, {
- (defun c:ga14 ()
+ y& N6 y" a( G& Q8 o - (setq a (getpoint "\nChon diem: "))* ^+ }2 o' R; K8 Q, U3 i% h
- (setq b (getpoint a"\nChon diem: "))& y$ W6 q, n7 @, z# ~
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
% A6 r! [+ s2 g3 D6 S& r - (command ".line" a c "")" a8 E$ h5 o% c
- (command ".array" "last" "" "p" c "14" "" "")0 `/ k/ x& B6 F! x5 ?' t8 n
- (command ".circle" c a)
% J# s. E" `. e# D$ P9 d" K - (princ))
5 r1 i! f) H( B
W$ a B) I3 f s/ G- (defun c:ga16 ()
/ E$ h. Y" S" u( f - (setq a (getpoint "\nChon diem: "))
0 `! S2 `8 P, L - (setq b (getpoint a"\nChon diem: "))
$ m" u' P) I7 z2 r. ?0 |2 H2 K3 n - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))5 ^: ?4 _% m, q
- (command ".line" a c "")
* J8 r; P! U0 k) {5 d - (command ".array" "last" "" "p" c "16" "" "")
# Y7 g$ A3 |7 x; A- _ - (command ".circle" c a): R/ `5 ~4 T6 U$ i3 |' T; ^
- (princ))1 k/ }0 M- v( S6 o8 J
- : W7 R+ |5 ?* e$ F" s: w0 U
- (defun c:ga18 ()' W' y2 `. r0 |4 d, F
- (setq a (getpoint "\nChon diem: "))( w$ t" z$ z3 V/ a/ i
- (setq b (getpoint a"\nChon diem: "))
, \9 Z# o# Z5 R- t - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
" t3 P+ B9 k4 Z6 j( A - (command ".line" a c "") c, B7 U5 m$ t7 n* V; L$ b
- (command ".array" "last" "" "p" c "18" "" "")
8 U' \, K; W: w& [ - (command ".circle" c a)/ \7 M1 E. s H( v) Z( x
- (princ))
1 a, E& |2 w }
' {) [/ R* z3 h, J- (defun c:ga20 ()
) [& P1 E; ~$ C# K - (setq a (getpoint "\nChon diem: "))
' Y; }9 C& H! D: P0 q' j - (setq b (getpoint a"\nChon diem: "))
4 p' b! T, A% n7 b - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))), {9 m) {# o2 c3 f2 s
- (command ".line" a c "")2 l1 z _; V/ n4 L L j- Q
- (command ".array" "last" "" "p" c "20" "" "")& w9 `; p5 d% Z8 r8 h
- (command ".circle" c a)7 y8 \) Y! ^1 C; f' X8 O
- (princ))
]0 \: O/ W, D3 F - & P( l; V4 D( w+ L9 e: m
- ;=====================================================================4 i4 f! a6 U8 G6 a' B/ g
- ;============== FUNCTIONS GA TUY THICH : EVERYTHING IF ===============
- g7 X' G' k; e - ;========================== 06-11-2016 ~ 18h00 =======================
7 |& m6 S; x9 J5 j% r( O - ;=====================================================================
/ C, i) h) V# @6 n9 f: e u - (defun c:ga ()
5 C/ F0 J2 R' @% a# R& W* W - (setq a (getpoint "\nChon diem: "))
% f9 Q' g$ w8 |: `' I& w - (setq b (getpoint a"\nChon diem: "))
( ?- i; l" U* |; z3 ?) ^3 i - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
* g9 W3 C5 C9 T6 \; q) |% G4 F - (command ".circle" c a)
. o) \! q Z9 }6 P - (command ".line" a c "") R! R6 [3 n5 b; e8 t' B* Z
- (command ".array" "last" "" "p" c "NUM" "" "")5 U0 {1 V0 R6 A# h0 i2 d
- (princ))
$ K( i ]9 J0 F6 W - # w2 Z) U) p: A3 R% p0 T
- ;=====================================================================- p* q: k2 J: W6 ^
- ;=========== FUNCTIONS HOA THI TUY THICH : EVERYTHING IF =============3 u2 ]& ~4 m' S
- ;========================== 06-11-2016 ~ 18h40 =======================7 E4 V) }- _1 q! y. x6 T+ t- l
- ;=====================================================================5 N- ]1 q7 f% t( |( J+ F$ K; J
- E! a# G; p& L! g- (defun c:hoathi ()
) Y9 V1 n3 c2 G8 r4 l - (setq a (getpoint "\nChon diem: "))& U3 C# j8 X" S$ @) }' W
- (setq b (getpoint a"\nChon diem: "))
4 x3 _5 N! X" u$ j) H - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))' E, ] j) ~ O* k/ g1 [) t8 q
- (command ".line" a c ""): q* W8 P/ m0 d0 y( P l
- (command ".array" "last" "" "p" c "NUM" "" "")
4 _: O) Y9 u8 W, O+ g - (princ)): i4 A+ M! V$ f7 |
+ |* {- s: {# m7 y- ;=====================================================================
- G; u2 q; _ {5 O% I- R$ V/ J. a' e - ;============= FUNCTIONS CUNG TUY THICH : EVERYTHING IF ==============
: N0 j; E; m8 v1 K6 W+ U - ;========================== 03-11-2024 ~ 19h33 =======================
. m, D% q5 F- R' Y7 j9 o2 c4 }/ k - ;=====================================================================
5 l: W- k. V/ b$ p4 @( g: Y - 2 @/ I- y: ~1 U- N- W/ `
- (defun c:cung ()
# H% \- w" C; V0 v7 a - (setq a (getpoint "\nChon diem: ")): [' Y8 ^" j/ g5 Z/ `# t# ^9 v
- (setq b (getpoint a"\nChon diem: "))
3 V( R. n ?) R! t3 ] - (setq c (getpoint a"\nChon diem: "))# a9 z' W/ D5 f. G/ c4 n% k: l
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))- X L, x/ D" I& {4 w3 W+ T; ~% D
- (command ".arc" a b c "")
9 H! l8 J! Q2 O4 V9 A0 w - (command ".array" "last" "" "p" c "NUM" "" "")
. F+ w" o/ C) D6 l; C6 H% M& x - (princ))
& Z) l* l- b; j: N1 X9 m( h
5 b/ S1 q1 q! O4 }. R# b; R, ^- ;=====================================================================
d# M$ x/ |3 l9 w/ C) k4 x; }1 [ - ;============ FUNCTIONS HECLOIC TUY THICH : EVERYTHING IF ============
) D# w1 u; V- ~3 T) d# m4 c: e - ;========================== 03-11-2024 ~ 20h02 =======================$ O* L: Z3 p+ M" E) ~& }0 Q3 A
- ;=====================================================================
5 M' }% H( Z7 t - 4 @) g( M& w" }; z$ q
- (defun c:hecloic (), O" K: c1 Y, I# P% P; P7 D
- (setq a (getpoint "\nChon diem: "))
% W) \2 ^0 k# g j. G( w' o3 u R - (setq b (getpoint a"\nChon diem: multi "))2 b6 `, R5 G3 ]' G9 ]
- (setq c (getpoint a"\nChon diem: "))(princ)" }8 U# j' x" ^2 J
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))) n5 Z3 N9 h/ r$ p; [ ~. r% w: u
- (command ".arc" a b c "")
5 K- l; I, }8 x - (command ".array" "last" "" "p" c "NUM" "" "")
. ?0 A5 ~4 |# L+ }% a - (princ))
! e+ i2 V; \; h- t - 8 c/ j4 ^( i- O- p3 G; R7 H) L! G) y
- ;=====================================================================
c7 \& ]( `; _% g4 z8 f! ?' V) g - ;============== FUNCTIONS GAY TUY THICH : EVERYTHING IF ==============
6 X5 z" @3 j8 Z$ P* |. i `0 c - ;========================== 03-11-2024 ~ 19h38 =======================
- F- l+ |% c) W/ w* B - ;=====================================================================# N( \$ h5 H! N
- ; D( x. K5 _6 J% S) ]
- (defun c:gay ()
' P& a7 r4 o/ x, z! y2 W - (setq a (getpoint "\nChon diem: "))( w) b3 K2 z4 L3 N' `
- (setq b (getpoint a"\nChon diem: "))" M: C7 V, L3 z' y( Z. |% M( V) `5 Z
- (setq c (getpoint a"\nChon diem: "))(princ)+ w( {1 W! z) m& {; ?, e$ A
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
/ |( O; \/ ]3 A/ H4 v8 T9 N - (command ".pline" a b c "")$ ?& \/ c& V3 q3 B% a$ G/ U
- (command ".array" "last" "" "p" c "NUM" "" "")
! ~ a3 T3 @) M) P+ b8 L* P. a - (princ))
& M0 J |# G& z; @ - 2 B! b0 t6 i4 l, K, J) o! l& N8 a
- ;=====================================================================
0 u2 f: u/ W( e) o4 p, _ - ;============ FUNCTIONS HECLOIT TUY THICH : EVERYTHING IF ============& S# i4 T2 @& X3 c+ o
- ;========================== 03-11-2024 ~ 20h02 =======================
! T8 o. v9 P) G - ;=====================================================================0 J3 F I# C' d u. c5 Y
$ p7 R& _. q( C3 ]) L' f- (defun c:hecloit ()
8 L j* x+ U0 w3 E( A9 X/ z - (setq a (getpoint "\nChon diem: "))
/ z+ b P$ [; q% U3 ^$ j, Y - (setq b (getpoint a"\nChon diem: multi "))4 H* G" }4 J' S/ K
- (setq c (getpoint a"\nChon diem: "))(princ)0 X/ M/ P+ X* L0 S& m8 x6 E6 D
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))1 [' J) Q2 v$ c1 a
- (command ".pline" a b c "")' O6 p- N0 x$ d8 d; \0 l: X0 x/ w
- (command ".array" "last" "" "p" c "NUM" "" "")0 \% Q2 y" }- S( d
- (princ))9 V8 w" W7 M3 }$ P: j' U; Q' o- R
T% N8 `' y! O+ A- * k1 q; a% Y: o0 }& Y8 U% P
- ;;; ============================ Merge Hatch =============================+ q9 z& u+ B7 t! i" z ^+ L
# J$ P; q1 v6 m8 l! ?+ R) \0 B- (defun c:mh (/ ss entht sl i dt dtht)+ R- N" |' C/ X3 n3 |# Z
3 z' Z7 r; n* u/ @. ]- (princ "\nMerge Hatch - free lisp from CADViet.com")% |& F: o9 {; j, i5 ?' L
- 5 k* }* u2 s, i, P/ ~
- (setq
7 o7 ?' B, V) I - ss (ssget '((0 . "HATCH")))5 `# [0 g% \ D3 p' ~
- sl (if ss
" @% K3 }( C8 C- s- z - (sslength ss)& B8 `& U. P+ J+ r- M7 F+ w& N$ C& s
- 0
4 H& s% Y, _: t o h - )
( n) q9 z9 a4 [; o; H- l - i 0
4 r7 \; D; I4 a! _, |! { - l 0# n, {- G0 z$ ^* R$ D* l
- )
) g \# B8 C! d
" t4 U. [2 k8 g5 d( I! L- (repeat sl
) Z# Z* W5 e% l0 y- U3 P - (setq
7 d4 V; X# n5 _7 i- ?/ R - entht (ssname ss i)
, @3 X* A* E) q - dtht (getbdata entht)
( ~3 r8 b' G; z; F+ l - dt (append dt dtht)3 R) d3 H% Y# `1 M) q
- l (+ l (cdr (assoc 91 (entget entht))))' d/ Y* y/ x0 [5 N4 O
- i (1+ i)
5 n; [! N% k0 Q% r9 F: B1 m - )- m3 b1 f% h1 l& |. O0 T
- )
7 K4 \: R" T: {% e; B
1 J% B& |8 B" F; o- (setq ent (ssname ss 0)) u% d% T+ i% W7 X
- ss (ssdel ent ss)
4 M: m/ n( a% k& R( S. ^4 U - tt (entget ent)) o" m+ ?2 n' k* g% _* J
- duoi (member (assoc 75 tt) tt)( M& _& d9 t: I6 _# B
- dau (reverse (member (assoc 91 tt) (reverse tt)))9 Z b6 n5 G# X
- tt (append dau dt duoi)
& N- c5 X" i9 T0 Z1 \" N% k - tt (subst (cons 91 l) (assoc 91 tt) tt)
( J& X& ]* y, O, y' y" I- @6 u - )
% {1 l2 V: Y1 c9 q% p8 r - (entmod tt)' U! T$ t8 y5 W) y7 k& X. g
7 y( h( ]+ q7 N. A, z" c- (command ".erase" ss "")
5 v* ^3 w, L% h - (princ), ]. ?- M& T" i5 `+ V
- )
5 x# O: v) r; T# U3 y - 4 k& }7 [+ j) [) H
- (defun getbdata (ent)! W6 w2 i. n8 B0 T* A7 `# _
- (setq tt (entget ent)
; g' F' i( |4 B3 b" b1 N& ` - tt (cdr (member (assoc 75 tt) (reverse tt)))/ M# W8 e! O7 u/ W8 R
- tt (cdr (member (assoc 91 tt) (reverse tt)))
# q1 q: l' d7 r! q. x - )
) c; [# K5 b$ M {7 [ - )% ]& Q$ W9 y+ K) ]
4 G; M( d; ~- e) n1 m- 8 P0 p( e/ t6 \+ V
- (princ)3 z! L% m7 S3 @( j0 @4 u$ k% B9 b
- ( h' F3 J& ]5 s
- ;;; =========================== CAC LENH LAYER ==============================- ]) w+ \1 p& r6 S
- ;;; =========================== Layer hien hanh =============================: H! e+ [2 R2 W0 \4 ^6 G8 r8 x! E; _
- M! V: }% S6 r1 I- _4 \
- (defun layset (/ LAY) (setvar "cmdecho" 0)( u) H! p) u* R# D* o+ B& U e
- (setq LAY (entsel "\nPick vao doi tuong muon Layer hien hanh la Layer cua doi tuong do : "))3 k2 U2 c1 F1 e' C O9 I5 b. z
- (if LAY (progn 0 {$ |5 `& { ?6 Y+ P9 H6 L
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))! N( ?3 B) P: b0 M$ ~/ O! G: X
- (command "_.layer" "set" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) )
+ S$ G6 L N$ C [ - (progn# `$ B0 U( f% P/ S( l, x' b8 q
- (if (not ddlop) (load "ddlop")) (if (setq LAY (ddlop))
: Q) u$ n# l$ X3 |. {* a( P2 p - (progn4 q) G) q( j2 l, j, [
- (command "_.LAYER" "ON" LAY "THAW" LAY "SET" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ) ) ) )(princ) )
2 t9 e/ l; D H" N9 S: W0 J# |) ^ - (defun c:LLL () (layset))(defun c:LAYSET () (layset))
% V' [4 ^# `: {
- `8 G7 Z9 H6 c4 i! ?5 N- ;;; ================== Cap nhat doi tuong vao layer hien hanh ==================/ U5 m' t; R4 K2 a( H/ c
9 [4 f& N3 \6 R. V4 V- (Defun LAYCUR (/ SS CNT LAY) (setvar "cmdecho" 0)5 l. o3 U# Y2 u8 K4 \, H
- (if (not (setq SS (ssget "i")))
" i/ X5 O( j% e4 X! E3 j - (progn (prompt "\nChon doi tuong cap nhat vao layer hien hanh: ")4 Y! T" h( s: u) c. M8 l
- (setq SS (ssget)) ) )
/ Q1 w; a4 A6 k% {( y - (if SS (progn: K5 |; d3 P5 V) p; o) k
- (setq CNT (sslength SS)) (princ (strcat "\n" (itoa CNT) " doi tuong tim thay.")) (command "_.move" SS "")
8 q" o& m r: x3 I - (if (> (getvar "cmdactive") 0)
" f; O3 v( S4 U/ T* C - (progn1 D; k" C' d4 o. M
- (command "0,0" "0,0") (setq SS (ssget "p") CNT (- CNT (sslength SS)) ) )2 a0 v T, ^7 K" E% j
- (setq SS nil) ) (if (> CNT 0)
# D5 R9 O' T0 y: y9 H! I! M - (princ (strcat "\n" (itoa CNT) " doi tuong tren layer LOCK.")) ) ) )
N6 I8 j- i- a. x9 O% m% y - (if SS (progn5 v% D5 ]- Z! `! }5 x1 {: {
- (setq LAY (getvar "CLAYER")) (command "_.chprop" SS "" "_la" LAY "")7 ~- c/ ?' V8 b0 L" [- w v- A
- (if (= (sslength SS) 1)5 M, \' o- C0 ^
- (prompt (strcat "\n1 doi tuong da cap nhat vao layer : " LAY " (layer hien hanh)."))4 `7 z9 Z- b# h; s9 R/ E+ X
- (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")) ) )) (princ) );end
; z8 b: f; L5 ?) v( R' m8 E - (defun c:LAYCUR () (laycur)) (defun c:LHH () (laycur))& w* c2 L9 g5 X) k3 C
- 3 Z* g7 @+ ^; @3 U/ X
- ;;; =========================== Layer Iso ===================================
: T" C1 L" p. k4 i% X
' ]8 I! ^1 a b& s; j* S- (Defun LAYISO (/ SS CNT LAY LAYLST VAL) (setvar "cmdecho" 0)
- U0 z, X+ a* l* [) F4 E7 R+ p - (if (not (setq SS (ssget "i"))) (progn3 i# o2 D" p2 S& C% j
- (prompt "\nChon doi tuong tren layer(s) muon lam viec doc lap: ") ^$ T, Q" X) ~. Y
- (setq SS (ssget)) ) )! A3 O- q `1 U* h! _
- (if SS (progn (setq CNT 0)) v& ~& {' I. }( P! G2 @5 |% N
- (while (setq LAY (ssname SS CNT))8 Y9 Q( Q* @4 A( B @- F" N( _
- (setq LAY (cdr (assoc 8 (entget LAY))))
m. {0 k7 T) M. z$ I7 F5 F g$ G+ V - (if (not (member LAY LAYLST))
6 T1 T% N. @% z8 } - (setq LAYLST (cons LAY LAYLST)) )
) x( o" a8 k: ^+ `+ j - (setq CNT (1+ CNT)) )
; p" y5 f4 V1 [; G$ _" b. ^- V: h - (if (member (getvar "CLAYER") LAYLST)* {) c( g& u- {4 w2 c! O' Y; S
- (setq LAY (getvar "CLAYER"))
' a" J9 \- t( v4 d( ~7 Z3 j - (setvar "CLAYER" (setq LAY (last LAYLST))) )2 ^" B+ d6 y4 c- L
- (command "_.LAYER" "_OFF" "*" "_Y")3 }0 B0 }% i6 E1 n/ h# v7 H+ Q
- (foreach VAL LAYLST (command "_ON" VAL))
2 h) g# I- F; X5 L. M - (command "") (if (= (length LAYLST) 1)% z6 I4 M! w5 O: \! S
- (prompt (strcat "\nLayer " (car LAYLST) " da tach ra."))
# v2 h' R( A1 _# d- q9 K - (prompt (strcat "\n" (itoa (length LAYLST)) " layers da tach ra. "
8 {) \1 A. H' V - "Layer " LAY " la hien hanh." ) ) ) ) ) (princ) )
5 f. M, y+ I5 K4 x - (defun c:LAYISO () (layiso)) (defun c:LI () (layiso)): {, c6 ?# \( P
* z8 }& D1 W% T* v5 H- ;;; ========================= Layer Match ==================================
- n' @1 Z/ ?8 l( \5 w
/ d0 ?- Z/ ~! e+ O/ f7 e2 t- (Defun LAYMCH (/ SS CNT LOOP LAY ANS)
! m. W2 I( f; D% A+ W - (setvar "cmdecho" 0)9 r3 I4 m1 e$ J2 ~1 a
- (if (not (setq SS (ssget "i"))) (progn
' o$ x' T! A) l9 f3 X - (prompt "\nChon doi tuong muon thay doi Layer : ")1 V/ w; l& H; A$ i" f
- (setq SS (ssget)) ) )( [1 x6 l$ b, O/ q" ~" j: l
- (if SS (progn
) b2 Z% E5 O4 C* D9 B W1 g* B - (setq CNT (sslength SS)) b4 V% Y$ m$ Q# H9 u. a% D
- (princ (strcat "\n" (itoa CNT) " found.")) (command "_.move" SS "") $ I) D7 b$ Z' l9 o. v6 V$ b6 G/ d7 b
- (if (> (getvar "cmdactive") 0) (progn
3 ^7 ^' k. z' Y; Y - (command "0,0" "0,0") (setq SS (ssget "p")7 V1 p7 Q6 D( }7 h9 D
- CNT (- CNT (sslength SS)) ) )+ t$ C% p B6 I! a, U
- (setq SS nil) ) (if (> CNT 0)
3 c% V# o& h/ A* y: K1 ] - (princ (strcat "\n" (itoa CNT) " tren layer LOCK.")) ) ) ). b" m' o- |: i: ^9 P+ @% n9 j
- (if SS (progn
" J9 D2 L. L( b8 ] - (initget "Ten") (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ") LOOP T )
* w1 ~& e: b, _7 r3 [# | - (while LOOP (cond
& |* A) ?' A" ?4 [% z# s; `3 b" T- N - ((not LAY)
+ B6 l+ o0 ]7 y% g - (prompt "\nKhong chon doi tuong.")3 `& l, |, o/ s$ U1 z+ P
- (prompt "\nSu dung layer hien hanh? <Y> ")2 a5 V3 y, @" {# H% G
- (setq ANS (strcase (getstring)))
) ]6 V; U( c+ R. U7 p( ^: c: l - (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
( ?% P% ~ @6 l- l( o9 r' [( a% b( | - (setq LAY (getvar "clayer") LOOP nil ) ) )
: R; P N' u2 \0 |' j - ((listp LAY) (setq LOOP nil) )
/ n) X. n, x' z" B( p: x2 j$ A1 m - ((= LAY "Ten")
6 Q: v. c! I+ \# b+ P' ?$ ~ - (setq LAY (getstring "\n>Nhap ten layer: ")) _6 U# x/ h' V4 {
- (cond1 Z# z( G- r7 \& g% s
- ((tblsearch "LAYER" LAY) (setq LOOP nil) )1 s' H5 E4 R( Q% T# J/ E
- ((/= LAY "")
6 }1 {& N) Z1 W; ?* G, o* e; \ - (prompt "\nLayer chua co trong ban ve. Tao layer moi? <Y>: ")
# ^" y6 z4 L# @( y6 z' Y2 V6 i - (setq ANS (strcase (getstring)))" |. W5 N' I$ P4 A1 S( f
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
6 a$ ^1 d6 p* }0 \. d! w - (progn
, r9 i$ y, C8 u( O - (command "_.LAYER" "NEW" LAY "")! n: {" L/ T. |( [
- (setq LOOP nil) )6 d5 g0 {% @/ S
- (prompt "\nLoi ten layer.") ) ) ) ) )) u8 T x, B( n+ u8 ]
- (if LOOP (progn (initget "Ten")( u; x' E1 l: s% N y; b
- (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ")) ) ) ); while LOOP
6 p2 H. _/ L' k - (if (listp LAY) L; b# z& b M8 D4 b+ a3 \
- (setq LAY (cdr (assoc 8 (entget (car LAY))))) )
. M3 `) E& y% ^. n) k7 h9 F - (command "_.chprop" SS "" "_la" LAY "")
, b) h6 W+ z7 A# R9 \ - (if SS (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong thay doi toi layer " LAY )) )1 _1 F; d V4 |; J4 e2 \
- (if (= LAY (getvar "clayer")) Y# H$ X7 W; v8 Z/ b0 z7 X
- (prompt " (layer hien hanh).") (prompt ".") ) ) ) (princ) )2 h' |+ S4 j& E4 C# R) R
- (defun c:LAYMCH () (laymch)) (defun c:CLL () (laymch))
9 q8 H. i& E' p. i% r
8 v2 x7 B1 ? n- ;;; ============================ Layer OFF =================================- U8 w5 J( a* t: W4 C+ u2 T; Z: V
- 0 L, d1 h# j) N: x
- (DEFUN C:LJ (/ SSET SSL ENT LAY I MODE)3 o1 A: t, n& c; Y* k
- (SETQ SSET (SSGET))9 p& t% B& F% O1 G
- (IF (/= NIL SSET) % V8 L, |6 I( P, L8 k( ?
- (PROGN: h- i0 G" G1 E! [# ]
- (SETQ SSL (SSLENGTH SSET))/ d6 `7 B& p+ r' Q R
- (SETQ LAY "")
0 O/ g# S# o$ i( J& } - (SETQ I 0)/ C, W4 c5 I# E! {% ^
- (SETQ MODE 0)
, i9 A% ^. o7 M& y- [- ?: F; ] - (WHILE (< I SSL)4 T$ n+ `' H+ A* P& v
- (SETQ ENT (ENTGET (SSNAME SSET I))); a% B( ^/ F( Q8 k
- (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )/ R- A4 q& V& T
- (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) ))
8 Q5 m$ ~4 _, V& s# h: |' s - (SETQ I (+ I 1))2 U9 J# e$ D% E$ F+ h
- )
D4 o8 N+ p9 f/ s8 f0 \' z1 t" g4 o - (COMMAND "LAYER" "OFF" LAY "")" Y# g: G0 b- X! |
- (IF (= MODE 1) (COMMAND "") )
- j) J6 N, m$ I/ W- H - )
8 }& F7 d9 C# [. p$ ~1 V$ U2 M; a8 T - )8 I6 x1 a( Q; b: z1 W x, a
- (PRINC)# ^% i: E; n6 v
- )- Q4 q( }2 n# e& ]6 o( F
- / a- P' w4 L1 w6 E' d7 X" Z7 F
- ;;; ================================ Layer ON ==============================: V; o. M; w, f# b
- # g. a' }/ \0 l; g# y6 M6 J
- (Defun LAYON () (setvar "cmdecho" 0)
- k8 S" d. b2 N' M - (setq Lay loff1) (setq Loff1 Loff2) (setq Loff2 Loff3) (setq Loff3 Loff4) (setq Loff4 Loff5) (setq Loff5 Loff6) (setq Loff6 "0")
* l( O, x$ f" f7 Z/ y - (Command "LAYER" "ON" Lay "") (princ (strcat "\n Layer : " LAY " da ON.")) (princ))9 [: j* Q* w5 p
- (defun c:LAYON () (layon)) (defun c:LOO () (layon))! F( b T! g/ j4 ]) r/ r
- (Defun C:LO () (setvar "cmdecho" 0) (Command "_.LAYER" "_ON" "*" "") (princ "\nDa ON toan bo cac Layer !") (princ))' |* B( B* A3 p. E( x
- 9 I0 J( \3 y0 w9 | X9 r4 i
- ;;; ============================== Layer Freeze ===========================
/ P( A: {9 q8 u - / S' U r0 }9 h- O1 c( Y- m9 y
- (Defun LAYFRZ (/ LAY TEMP)(setvar "cmdecho" 0)
8 A" C$ Z2 w! C$ D. b# o# K/ ^ - (prompt "\nChon doi tuong tren layer(s) muon FREEZE: ") (SETQ SSET (SSGET))# |1 Q- X5 @1 B, _3 V0 ^+ @, o
- (IF (/= NIL SSET) (PROGN N) J* E5 L8 m9 h
- (SETQ SSL (SSLENGTH SSET)) (SETQ LAY "") (SETQ I 0) (SETQ MODE 0)
9 a7 E/ K) U6 }6 v" W& S" E - (WHILE (< I SSL)
9 {$ |$ C5 G1 G1 \0 f - (SETQ ENT (ENTGET (SSNAME SSET I)))+ Y1 x; x% @; s* R8 T
- (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
7 @0 b* o0 m$ d3 X! V0 g9 o - (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )) (SETQ I (+ I 1)))
% N; o+ M0 B6 |' x - (COMMAND "LAYER" "FREEZE" LAY "")3 R+ J) k7 \- o
- (IF (= MODE 1) (COMMAND ""))))* ~0 C/ Z0 l/ z4 y6 \( f
- (setq Lff6 Lff5) (setq Lff5 Lff4) (setq Lff4 Lff3) (setq Lff3 Lff2) (setq Lff2 Lff1) (setq Lff1 LAY)% l: I7 W4 H' X: j
- (princ (strcat "\n Layer " LAY " da FREEZE."))(setvar "cmdecho" 1) (princ) )0 n* M! {, P0 u5 _* N
- (defun c:LAYFRZ () (layfrz)) (defun c:LF () (layfrz))2 W. V$ d' o. u& d
- - A* |: l. v, ?, A
- ;;; ============================== Layer Thaw ===============================9 \. Y) z8 r% ~- l/ }1 ^0 O+ T6 A$ d1 i. s
: `9 h9 U8 {, a# y- (Defun LAYTHW ()+ o* J9 _" r) {+ Z9 G
- (setvar "cmdecho" 0)) A7 R$ |( m$ d3 N' p6 {. o& z
- (setq Lay lff1) (setq Lff1 Lff2) (setq Lff2 Lff3) (setq Lff3 Lff4) (setq Lff4 Lff5) (setq Lff5 Lff6) (setq Lff6 "0")
; L3 E2 R. R1 ^/ {5 T3 e - (Command "_.LAYER" "_THAW" LAY "")
; u$ s; F; k1 E - (princ (strcat "\n Layer : " LAY " da THAW."))
9 b, {# ]8 c5 J r2 s - (princ) )
1 M3 b) l, M( G3 K7 P; @ c8 C) a - (defun c:LAYTHW () (laythw)) (defun c:LW () (laythw))4 r2 J: p/ ~$ E" H
; N5 u! e3 ]5 x' i8 I) k# F- ;;; ============================== Layer Lock ==============================0 y# ], }8 z, Q. g! _/ ?# G2 \# Y* v
2 e7 _6 P$ W4 ~5 Q9 e1 A- (Defun LAYLCK (/ LAY)" T# R1 f# \4 E8 _3 T0 q0 ?
- (setvar "cmdecho" 0)3 p2 z# \, F0 ?) Y1 [# F0 l U4 J
- (setq LAY (entsel "\n>Pick doi tuong tren layer muon LOCK: "))* c* t" d* A" Z
- (if LAY, D& N) K5 j6 V! b! }5 k
- (progn
# p. u- K9 z# o3 h0 `; y - (setq LAY (cdr (assoc 8 (entget (car LAY)))))
# M" F" a7 O& o - (Command "_.LAYER" "_LOCK" LAY "")! K! I8 D" B+ {
- (princ (strcat "\nLayer " LAY " da LOCK.")) ) ) (princ) )
& M& ` P. h0 L5 Q9 H u. L - (defun c:LAYLCK () (laylck)) (defun c:LK () (laylck))9 r" |; j/ f/ O. G. D2 x* L
- $ v0 v2 d1 W6 e+ R Q) |
- ;;; ============================== Layer UnLock ============================== a5 @$ y$ N8 R8 z/ R, w( C% A
- 7 V5 I: H4 q5 \
- (Defun LAYULK (/ LAY)
7 R) n/ T! ~$ X" Z - (setvar "cmdecho" 0)/ V, [& J$ G' u
- (setq LAY (entsel "\n>Pick doi tuong tren layer muon UNLOCK: "))5 k# S8 W2 g+ J$ M( `0 P+ o& {
- (if LAY* ?* k8 W5 b! E# c5 L; j- j% @
- (progn
7 i6 _! D! q# K9 A J; L - (setq LAY (cdr (assoc 8 (entget (car LAY)))))
" D! ?5 q( o9 r% Q* S# B6 r, Q - (Command "_.LAYER" "_UNLOCK" LAY "")' M* h2 i, S) ~& }' U! G" q& g
- (princ (strcat "\nLayer " LAY " da UNLOCK.")) ) ) (princ) )* @$ m3 U! I2 m3 B$ i
- (defun c:LAYULK () (layulk)) (defun c:LU () (layulk))" o5 b# I& Y' M6 D
1 h$ a3 J6 R }; ?- Q5 q" c$ t( Z- ;;;===================== Delete all objects of Layer ========================) y6 z6 P/ i& x/ o- i, T
- % p5 J6 l" b% a" M+ F6 m6 M* _
- (defun DELAYER (/ ocmd L S)
) E1 g; g& N& E* h( i( L( c - (setq ocmd (getvar "CMDECHO"))
$ H1 _# k* r) F/ {5 n: N; D' E - (setvar "CMDECHO" 0)0 M! V; C b" E) x
- (setq L (strcase (getstring "\nLayer(s) to delete: ")))# i, X2 T. N- `0 s0 ^0 d" m$ U9 z
- (setq S (ssget "X" (list (cons 8 L))))
* A7 S' n7 @8 N2 o - (if S 5 o- P" q2 p/ z( N# A( G! y2 y7 o
- (command "ERASE" S "")
7 l0 \, s9 A) f- O' w, u - (princ "Layer empty or not a valid layer name.") )
7 [' S8 b2 W9 l( H4 o- W# t - (setq S nil) 2 G) a% p$ ]) ]. y" I# w3 d' o5 `
- (setvar "CMDECHO" ocmd) 5 [ U5 |1 h; ?. h( q, A6 K
- (princ) ) ; L; O+ g) i* D+ i% n- n
- (defun c:DELAYER () (delayer)) (defun c:DELLAYER () (delayer)) (defun c:DEL () (delayer))
) A; B$ V# c+ w D' F! c - + s/ g5 T1 ^2 r ~1 J
- ;;; ========================= HET CAC LENH LAYER ===========================
5 {2 V8 m. A) r - * n) B. ]3 ?8 g
- ;;;====================== EXTEND NHIEU DOI TUONG ===========================( [2 R6 e! n# e) N" M
! N M! N5 m! F: c( E- (Defun C:EET ()
6 A( U& i" O, x5 x9 P0 k( M - (Setq CVAR (Getvar "CMDECHO")) (Setvar "CMDECHO" 0). y* f! r4 F. A% X& {
- (Prompt "Chon doi tuong dich cua EXTEND :") (Setq CUTEDG (Ssget))
% p$ e* J, ?* ~: |: U& {% ~ - (Prompt "Chon doi tuong de Extend :") (Setq SS (SSget)) (Setq LEN (SSlength SS))9 N; K2 x' U" I
- (Setq I -1)
. \, \$ J. A1 [ X* d! s% y - (Setq SIDE (getpoint"Chon phia de EXTEND")) (Command "EXTEND" CUTEDG "")6 y5 W5 Y( v: s* ]" N5 f/ l# H
- (Repeat LEN
9 C- Z6 r3 L# f2 b - (Setq I (1+ I))- v" j7 N* |4 ~! H2 J
- (Command (List(SSname SS I) SIDE)) ) (Command "")) C* j% K1 f8 f4 v6 H
- (Setvar "CMDECHO" CVAR) (Princ "Da Extend xong moi ban lam tiep") (Princ) )/ Q* Y0 P! M0 S. N( S7 Z' I
- - B) y% x7 |0 f; o' `. ?
- ;;; =============== EXTEND 1 DOI TUONG THEO KHOANG CACH ===============
( f' M/ d$ u( p5 D
% ? E* I/ B8 L9 D8 E Y, Q0 d- (defun c:ETT () (setq os (getvar "osmode")) (setvar "osmode" 512)
! {) n: _, L& q& Y - (setq pt1 (getpoint "\nKich vao 1 dau doan thang can EXTEND "))
. C' x8 Z2 l$ q+ } - (setvar "osmode" os)
5 ^$ e& b# V4 |5 g3 W- x/ j - (setq dis (getdist pt1 "\nKhoang cach can EXTEND :"))9 Q3 [, W3 p+ ~6 w1 z9 O. D
- (command "circle" "endpoint" pt1 dis) (command "extend" "last" "" pt1 "") (command "erase" "last" "") (princ))* C+ b1 A& d1 s
) e, J: n6 i2 _% L- ;; ================ Change width of polylines =========================, t& o+ n0 t6 g7 H# q8 j1 l
- ; D3 u' x5 X& ]- S
- (DEFUN wp (/ a b sophantu sodem list1 ha:wid)
3 o( j; \, C- U/ S6 C( N, W, T% H - (PRINC "\n Chon doi tuong can thay doi do day (Width) !") 3 z" e2 D/ h) K$ q
- (setq b (ssget))
( ?1 g8 [; B' i7 M" E. p8 ?+ M5 ~, T! T - (setq sophantu (sslength b))
/ e' ~/ X8 N8 V! v+ o - (if (null ha:wid) (setq ha:wid (getvar "tracewid")))9 n6 d6 s. p. {& k8 y
- (princ "\nDo rong polyline <")
- X) F" ? u0 z( d0 s - (princ ha:wid)
& e: O9 ~6 Y* m3 X$ D/ {1 \ - (princ ">: ")+ p9 a! R8 N5 P) i( J
- (initget 4)
* }- K2 S4 @- `, k Y. o: k5 Y9 x - (setq ha:wid (getdist))* o2 Y8 O3 H& G- B! }
- (if (null ha:wid) (setq ha:wid (getvar "tracewid"))), d4 f, a( L) z. P0 N$ J1 Q
- (setvar "tracewid" ha:wid)! h7 ~! a; z0 M" }- L
- (setvar "cmdecho" 0)3 \0 Q2 a" I2 O1 C* x
- (setq sodem 0)
) T m6 p4 E% F/ a - (repeat sophantu$ q$ b. ?: ?6 R) T, C# Q$ W, E* {
- (setq a (ssname b sodem))
u' t( O2 [0 h - (setq list1 (assoc 0 (entget a)))+ r2 H H1 b4 [; R
- (cond. `1 `' K/ m u
- ((= (cdr list1) "POLYLINE") (command "_Pedit" a "w" ha:wid ""))+ a# O5 R3 ]) ~3 Q- ?
- (PROGN (command "_Pedit" a "" "w" ha:wid "")) )
7 K3 f0 V$ R5 C% a5 L - (setq sodem (1+ sodem)) )(SETVAR "cmdecho" 1)(princ))
6 V3 u3 _/ ~+ g: h+ m/ T' R - (defun c:wp () (wp)) (defun c:pw () (wp))) d- o3 ^6 R! O7 o9 C
- + `- Z) e2 Q3 K
- ;; ================ Change radius of circles ==========================0 F; o* n, ?% g7 i, U1 x9 t
! P7 c3 V; p& n; K' ]* j% `+ G% Z- (DEFUN C:CHR (/ SSET SSL M RD I) (PRINC "\nSelect Circles :") (SETQ SSET (SSGET)). I1 y) t7 \. R- A0 ^
- (IF (/= NIL SSET) (PROGN (SETQ SSL (SSLENGTH SSET)) (INITGET 4 "") (SETQ RD (GETDIST "\nNew radius : ")); ^* R' G" L- ]$ i D
- (IF (/= RD NIL) (PROGN (SETQ I 0)
# u9 Y0 a0 B) f - (WHILE (< I SSL) (SETQ M (ENTGET (SSNAME SSET I) ) )# P Y" ^; L) e9 e
- (IF (= (CDR (ASSOC '0 M)) "CIRCLE") (PROGN
; a" E8 @" J0 e A - (SETQ M (SUBST (CONS 40 RD) (ASSOC 40 M) M)) (ENTMOD M) ) ) (SETQ I (+ I 1)) ) ) ))) (PRINC) )* T/ E. Q/ B: l, q3 H+ q' d
! m8 E: V7 n6 h+ r$ ^- ;;; ============================== TEXT Hight ===============================
0 r L) _. A- c" ] G - * {5 @; n9 ?' N. c- j6 G1 B. V
- (defun texthght (/ ent hght)7 O. }0 V, H" _+ Z% T# f
- (setvar "cmdecho" 1)
. {; }, ]7 d% L: T - (prompt (strcat"\nSelect text entity with required text height"))" M) J; F+ {8 i+ U
- (prompt (strcat"\n."))
5 A# D& ^6 @' j9 z - (setq ent (entget (car (entsel))))8 `2 a3 E u) C3 ` s
- (setq hght (cdr (assoc 40 ent)))
2 F, O1 Z& z1 q( U* {8 H. ^3 b - (prompt (strcat"\nText height now set at "))(prin1 hght)4 }& o5 d! g+ x4 c4 C7 T: S
- (prompt (strcat"\n.")) ( k! R- g' C# S6 o
- (setvar "cmdecho" 1)
9 G8 q- x) K( u3 F0 F( G5 o/ V3 y - (command "DTEXT" PAUSE hght "") )
9 Q! R% V' M/ o6 P6 G - (defun c:teh () (texthght)) (defun c:texthght () (texthght))
( A3 c9 T' f$ A. z5 G9 U. P
5 H/ _/ j4 ^: G- B# W' e- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================
# a9 ]4 T& m2 Z
% p0 N6 M8 V: @( L2 Q A7 }* o- (defun c:tuu () (setvar "cmdecho" 0)/ z+ z+ @3 v: t$ K
- (prompt "\nHay chon dong TEXT can gach chan ")
l( |8 z- @# t9 m: y* i u4 u4 J! n - (prompt "\nSelect objects: ")" M' s; K5 z2 ?9 y
- (command "select" "au" pause)" V" q, }( @3 h u4 s2 v, `* a
- (setq sstxt (ssget "p")
& g2 s8 P" N$ V* ^1 b/ z - sslen (sslength sstxt)
1 \2 z+ L1 V! m" D$ a; A - ctr 0 )) i0 L% Y$ b& b/ \7 p( M
- (command ".undo" "mark")! R( d( |- `0 s9 ]9 N
- (while (< ctr sslen)+ T0 h; f& q* k& W% F" O8 d
- (setq listxt (entget (ssname sstxt ctr))1 H! H8 E% a% V
- txttxt (cdr (assoc 1 listxt))4 q1 c2 u: P1 p D( N$ H) L
- enttxt (cdr (assoc 0 listxt)) )) P5 M5 d: a0 R" S3 l; {3 x
- (if (= enttxt "TEXT")( {* R0 h7 V/ ?3 L. B; E
- (progn6 Y# N0 V" x2 M; J, U
- (setq testxt (substr txttxt 1 3))
! X* Y. t, H+ L - (if (or (= testxt "%%u") (= testxt "%%U"))' G% U7 [- Z0 B0 C4 @$ m
- (setq newtxt (substr txttxt 4))
B8 E1 x2 h6 ^# l; E$ _" h# w - (setq newtxt (strcat "%%u" txttxt)) )8 N. V. X' T3 _6 s' h4 z4 S
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
5 d! U, X# M- D" K2 p8 c/ } - (entmod listxt) ) )1 E2 t( P# o; H" Z7 R7 K
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))) Q: ~7 ^% k) ~& q* H4 W8 Y$ u9 _
- 7 v2 h3 B: }7 P7 C
- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================
) ~: c% |$ F: [+ Y6 n0 e- Y3 O
0 y! v& b; [2 E: S/ J9 w, |. N4 b- B- (defun c:tob () (setvar "cmdecho" 0)( v q2 u9 }8 O- i5 ?7 O
- (prompt "\nHay chon dong TEXT can gach tren dau "): ?& j+ v+ N7 c0 b6 x, z$ u l
- (prompt "\nSelect objects: ")( B- H$ j" G$ ~1 Q; ] J R/ o4 p
- (command "select" "au" pause)! m- y2 W) S6 E) f c. y. u
- (setq sstxt (ssget "p")3 k; x! n T5 p1 D
- sslen (sslength sstxt)
: i6 n N, o4 j% E1 Q& H - ctr 0 )* u+ r' c. a. V/ z" _4 ]
- (command ".undo" "mark")9 [) I$ H% }; B8 T6 [) j2 V9 u
- (while (< ctr sslen)
5 S9 k9 V4 _; T- F - (setq listxt (entget (ssname sstxt ctr))5 r2 r/ X j4 y
- txttxt (cdr (assoc 1 listxt))
; B* @* t/ z8 {; P - enttxt (cdr (assoc 0 listxt)) )
( W' n& j( k2 i$ A6 E' M/ n - (if (= enttxt "TEXT")
, B% ~& ]6 }9 k8 q* Q; ^ - (progn( O6 g- ?% x4 H$ z& Y
- (setq testxt (substr txttxt 1 3)); i( n! }: u6 g# @
- (if (or (= testxt "%%o") (= testxt "%%o"))
$ W5 M7 k. X# B - (setq newtxt (substr txttxt 4))
. ]1 @1 B+ l1 Q1 H - (setq newtxt (strcat "%%o" txttxt)) ) _' _: N- {6 P. E
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))! f+ G9 d |6 g6 Z8 d- m& L3 [7 C3 T
- (entmod listxt) ) )) e+ K: R$ |$ d
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
; v9 y2 F! B) h' Y! x1 O2 u* S. { - - o+ c4 Y ~) a3 f' Y l
- ;;; ========================== Tim & thay the TEXT ==========================
. i4 s: d" c+ E( S8 x4 ?+ `0 e, q - # a( A9 m. q% U! y8 a. o
- (defun frstring (str search replace / str1 str2 index find)
0 K G; u- O6 S9 g - (setq index 0) (while (<= index (- (strlen str) (strlen search))) (setq index (1+ index))
9 m9 u' H- l. p# c- ^ - (setq find (substr str index (strlen search))) (if (= find search) (progn (setq str1 (substr str 1 (1- index)))
+ [! l* m, t: |) N - (setq str2 (substr str (+ index (strlen search)))) (setq str (strcat str1 replace str2)) ) ) ) (setq str str))+ S* @, G) |+ i
- (defun hai (/ dial)5 X: c4 ]9 ^2 T# N; P
- (setq dial (load_dialog "hai.dcl")) ;;goi dialog
& d" Q5 O1 z6 o* s9 t - (if (not (new_dialog "find" Dial)) (exit)) ;;
. E1 Y5 x- D/ ~# }4 ? - (mode_tile "find" 2); Tao dau nhac tai hop thoai
( k7 i1 k; S* U; y6 w - (action_tile "find" "(hai1)"), g# I8 q( Q: R% l
- (action_tile "replace" "(hai2)")5 k2 u2 b9 k0 d6 ?7 P- U& {
- (action_tile "cancel" "(done_dialog) (exit)")& T( _. |) K( W6 [
- (start_dialog) 8 D$ D N' Y$ o& r0 f( Y6 [4 Y
- (unload_dialog dial))" ?5 h6 T o4 {
- (defun hai1 () (SETQ str1 (get_tile "find")))$ v4 t- m4 K$ b M2 i- h5 {/ U
- (defun hai2 () (SETQ str2 (get_tile "replace")))
. d0 W% u4 |+ Y- s( Y7 L
3 h; [5 G0 o. r- R6 c- (defun c:TTT (/ a str str1 str2 newstr taphop sodem)) b& W/ n! r4 @; D. w& I
- (hai)5 }% d9 D5 s n% @' I& \2 }
- (if (or (null str1) (null str2)) (princ "\nDu lieu khong hop le")
! [7 r0 S, z0 y( `% x9 w# p# S6 ` - (progn2 E; Y8 ]; S q6 k, r5 i: I
- (setq taphop (ssget '((0 . "TEXT"))))
6 p7 q. d, {" K" B5 ~ - (setq sodem 0)
+ K7 ]9 \+ p( ] - (if taphop
( T y" t6 t0 M. l( _2 ]3 Y8 K - (progn$ D- G" b# \" `: p5 X( x
- (Repeat (sslength taphop)
& S* B. R& E# [ - (setq a (entget (ssname taphop sodem)))
H" g' X7 A2 j' r0 y5 [9 l - (setq str (cdr (assoc 1 a)))
' A: P3 Z' f$ \, x) T - (setq newstr (frstring str str1 str2))+ T( z) W/ ^' c$ ~( N
- (setq a (subst (cons 1 newstr) (assoc 1 a) a))
2 o' r; Y* H+ s! {7 f6 Q0 U6 T - (entmod a)
2 a* p3 g, c8 O3 W6 k8 X - (setq sodem (1+ sodem)) ) )( g, t* a9 r- p8 {# s) M0 U
- (princ "\nNone "TEXT" selected") ) ) ) (setq *error* olderr) (princ)), Y/ \" C& R8 {1 k
- + t! B9 k3 R1 O" y+ c# }6 P
- ;;;============================= CHTEXSTY.LSP =============================
$ T, O0 w2 M8 K4 u5 c2 G; s- U4 V' ~: Y
% e* s) m( V- V( E- (Defun C:TXS () (Setvar "Cmdecho" 0) (Initget 1 "SE ST ")4 H: X. [# [0 a6 Z* _
- (Setq G (Strcase (Substr (Getkword "STyle/<SElection>:")1 2)))% X& N! j( R7 E; n6 O9 p
- (Cond ((= G "SE") (Setq A (Ssget)) (Setq B (Sslength A))
5 ~5 o. k H; t2 P. n( R0 b% D - (Initget 1) (Setq C (Getstring "\nEnter new text style: "))
6 Z2 K% j+ \ ~' \9 _$ n# ^0 V4 i - (Extang C) (While (> B 0) (Setq B (1- B)) (Setq D (Ssname A B))4 K, ?$ r: x$ N& e! \- f
- (Setq D (Entget D)) (Setq E (Assoc 7 D)) (Setq F (Cons 7 C)): v; U5 L3 ~! e
- (Setq D (Subst F E D)) (Setq H (Assoc 51 D)) (Setq I (Cons 51 J))
Y1 x/ @; a# M - (Entmod (Subst I H D))) (Setq A nil)) ((Or (= G "ST") (= G ""))& R# x8 `# p) L
- (Initget 1) (Setq A (Strcase (Getstring% E( E; ~( b9 v% W
- "\nEnter text style to change: "))) (Initget 1)5 j/ L4 W. S+ P" T2 g/ r
- (Setq C (Getstring "\nEnter new text style: "))(Setq D (Entnext))
/ }. h5 a$ t6 W+ q+ q% | - (Extang C) (While D (Princ ".") (Setq E (Entget D)) (If
# k- s+ Y+ c' F6 l% K - (And (= "TEXT" (Cdr (Assoc 0 E))) (= A (Cdr (Assoc 7 E))))
1 A6 L6 i) G" ]4 a' ^- _5 V6 z2 C - (Progn (Setq F (Assoc 7 E)) (Setq G (Cons 7 C))/ n1 E; [) Z T) o
- (Setq E (Subst G F E)) (Setq H (Assoc 51 E)) (Setq I (Cons 51 J))
% M2 f2 C* P4 R. F3 l1 p. L - (Entmod (Subst I H E)))) (Setq D (Entnext D))))) (Princ))0 S/ |3 @! F8 K* t1 M. @
- & @* j# L. d5 J
- (Defun Extang (A) (Setq A (Tblsearch "STYLE" A))
6 q# h) [: H6 b" U8 E* e( ]: K0 q - (Setq J (Cdr (Assoc 50 A))))
% |7 o( B7 I# m8 f( y
) g) v/ ^) `1 Z4 u' Y4 b0 _( _- ;;; ============================ DRAW CLOUD =============================0 r( v) I& x8 X. E+ V3 }
- 9 l! C3 ?# r+ v1 f U
- (defun CLOUD (/ pt1 pt2 arc1 cnt ss la) (setvar "cmdecho" 0)
8 I; h- Y5 T9 z/ E! e! c - (prompt "\nVe cloud (may) khong khep kin - Tu khep kin ve diem dau!")
- q7 _8 v' m8 i$ n T" w9 \ - (setq la (getvar "clayer"))
3 o0 }8 S& [6 V - (command "layer" "m" "cloud" "c" "5" "" ""). g! h+ P% M' \+ z6 V- i& `
- (setq pt1 (getpoint "\nEnter first point of Cloud: "))
+ L6 m6 i9 b) ~: `6 e- t - (if pt1 (prompt "\nProceed in a COUNTER-CLOCKWISE direction..."))3 w, q8 `8 {4 I3 |) v( `8 L; A
- (setq cnt 1 ss (ssadd))9 A3 b, ]+ i P% X
- (while pt1 (setq pt2 (getpoint "\nEnter next point - and close: "))8 V$ O8 |: j R' w R
- (if pt2 (progn (command "arc" pt1 "e" pt2 "r" (/ (distance pt1 pt2) 1.75))
4 b) m6 K+ O7 Y N7 ^: j - (if (= cnt 1) (setq arc1 (entlast) cnt 2) (ssadd (entlast) ss)) ))0 } @: i5 a: R: W3 r W+ |) m1 {" j
- (setq pt1 pt2) ) (setvar "highlight" 0) (if (> (sslength ss) 0)
+ q* d$ N/ Y; _& R; E" f - (command "pedit" arc1 "y" "j" ss "" "x")* `: l# `; b' B* t8 K
- (if arc1 (command "pedit" arc1 "y" "x")) ) (setvar "highlight" 1)
w. R9 J8 a0 Q7 }% Z3 t# [, ]: F% t - (command "layer" "s" la "") (setvar "cmdecho" 1) (princ)) ) z2 `: W- e! X6 y; p7 B5 |
- (DEFUN C:CLOUD () (CLOUD)) (DEFUN C:CLO () (CLOUD))6 {! G; Q: \3 g3 \7 M) Z' c
# s; x* S1 P4 o& k, C3 m1 v* T, f- ;;; ================================ Funtion-Dulieu ========================: B7 r$ |! t+ v7 O& S
- ;;; ================================ Funtion-Dulieu ========================
/ O; u7 ~0 l% p9 F0 | - ;;; ================================ Funtion-Dulieu ========================
' R2 Q+ t4 |0 ^% [ - 1 r5 M, G) x/ a! F
- (defun ha:nhap (kytu thamso) (princ kytu) (princ thamso) (princ ">: ") (setq key (getint)) (if key (setq thamso key)) (princ thamso) )
) O7 z, I8 I$ c a - (defun ha:thoat () (reinit) (setq Temp "Da thoat khoi chuong trinh")): q: S. e2 u, f/ g4 ]) q$ C
- (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))
4 k1 p6 f7 t; z2 a: J& o' Z - (defun hacat (hacat1 hacat2 / hacat3 chon) (if (and (/= hacat1 nil) (/= hacat2 nil)) (progn (setq hacat3 (polar hacat1 (angle hacat1 hacat2) (/ (distance hacat1 hacat2) 2))) (setq chon (ssget hacat3)) (command "break" chon hacat1 hacat2) ) ) (princ) )
; I) t- t9 Y1 g( o7 E: h - (defun hauon (hauon1 hauon2) (command "fillet" hauon1 hauon2))) E7 V# H1 O) T+ P9 Q1 ]# Z
- (defun init () (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "angbase" 0))- x& g/ \( G* t9 }' c: x
- (defun reinit () (setvar "cmdecho" 1) (setvar "osmode" 0))$ F0 H5 f8 R' N: j$ k( O9 v
- (defun tichvecto (vecto1 vecto2) (apply '+ (mapcar '* vecto1 vecto2)))3 Y: h6 N! k$ @" A- n
- (defun vectophap (v01 v02 / vectochiphuong) (setq vectochiphuong (mapcar '- v01 v02)) (list (cadr vectochiphuong) (* -1 (car vectochiphuong))))$ V5 n' X: |* m
- (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)))- n' J# ?- H' ^ b2 I, D! e, l
- (defun dtr (dtr) (* pi (/ dtr 180.0)))
3 V5 }" W# d0 |' ]/ e, n6 o - (defun rtd (rtd) (* 180.0 (/ rtd pi)))
8 y$ D4 Y" y" Y* L4 K
" y+ M- [* [" U" O: l- ;;;==============================PROGRAME===============================) W' P |8 y9 g3 r# Y
- ;;;=====================EditDiM Hien Hop Thoai Dep======================: U8 T0 S/ v% u5 A5 |& @; @
- ;;;==============================PROGRAME===============================
, d8 U' w9 J6 s) q3 B+ z - / {9 v) h6 R# C% L( z
- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)
' l$ o+ R' t7 t; k2 k5 P/ t - ;;Chay Cung Du Lieu.Lsp & Hai.Dcl
6 u5 D5 o' Y' {. ^& h, I! b - (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)8 Z% X; {# ]( b& q1 V- Q
- (Setq Oldlis (Entget (Car Chon))& ?- N' f/ {8 |
- Pt10 (Cdr (Assoc 10 Oldlis))
3 o H/ W7 O, n+ Q# b6 G* q - Pt13 (Cdr (Assoc 13 Oldlis))5 N# \: C+ ~/ ?
- Pt14 (Cdr (Assoc 14 Oldlis))
1 u% ~! E0 U, z - St (Cdr (Assoc 70 Oldlis))
: H8 ]3 s+ j. W' p E. k - Dimdefault (Cdr (Assoc 1 Oldlis))
3 T6 h* ]7 J; _- @% O0 ^ - )$ |6 d) J7 K2 t# f8 }; A; z# ]1 t
- (Cond8 t$ e5 b3 q3 u9 U" u
- ((Or (= 32 St)(= 0 St)(= 160 St))6 N' ~: @0 z6 @- o
- (Progn
# i+ p$ b* X5 r! b; f& u1 A - (Setq Ang (Cdr (Assoc 50 Oldlis))" ?+ q+ Z/ e2 E; T# j2 X* [
- Pt (Polar Pt13 Ang 500)
+ `3 {6 C; j, d3 _' s; \: z - Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)
; M9 M- [- h$ l - Dis (Rtos (Distance Pt13 Hc))
4 p" J0 v% r0 e/ ?1 Y - ) ^0 |* ?2 i, q
- )/ N; N" h+ I! g) E+ g( B2 g
- )
' f- `, c6 R9 M+ H0 b - ((Or (= 33 St)(= 1 St))8 u$ V+ P) A8 y( r1 Z* g. d! G
- (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
7 C( `3 f) u C6 H5 k/ d& J - );;End Cond% X U) Z, ~$ ]7 V
- (If (= Dimdefault "") (Setq Dimdefault "<>"))% w& j' w, }. z* E5 S7 y4 m
- (Setq Dial (Load_Dialog "Hai.Dcl"))
: X3 ~( I3 x. Z( Y Y2 ^ - (If (Not (New_Dialog "eddim" Dial)) (Exit))
; L6 i; X+ x* e/ s% v: { - (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))
: Y! g! Y# U) y5 r8 B: b - (Set_Tile "text" Dis))
+ Z$ X6 j t' o% Y - (Set_Tile "ha:edim" Dimdefault)4 z. H$ p% Y/ S3 H4 V g7 @5 w. ]# D
- (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai8 t0 j6 c# f- c, O
- (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")
, a1 r/ L5 m3 Z6 ^: {2 ~! p" A1 N7 e - (Setq State (Start_Dialog))(Unload_Dialog Dial) @- y7 ]5 m& E b0 l" B
- (If (And Str (= 3 State))1 @& V3 s9 r2 d# E7 t
- (Progn8 f9 k3 d; f% ^, Y% w% [& y+ s
- (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))/ `/ x& z; Z6 A) {: Q
- )
* X6 N" H( q+ r( c - (Defun C:EH (/ Chon Name )
0 T3 O! S/ y# D5 x* U - (Defun *Error* (Msg)6 i8 r: @* ]" \3 a5 F
- (Princ "\nerror: ")(Princ Msg)(Princ " ")
/ I, R5 u w* s. J; m9 x8 o7 K. l; m - (Start_Dialog)(Unload_Dialog Dial)
2 l2 W% U' \4 N8 w( A" u - (Setq *Error* Olderr)(Princ), y. C0 k5 H: c9 }
- )
3 P- h# z: J) r3 M4 O - (Setq Olderr *Error*)% q4 E7 V; L9 k/ Q
- (Setq Chon T)
0 O2 t1 o+ w) a - (While Chon, }# ~8 j7 b/ }1 `9 q
- (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))- g( E# x( S0 {# o' I; G8 c& I
- (If Chon
0 k- b! x E. g - (Progn" Q# c5 u* l- |; \
- (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))
' d/ s$ Q; m" f) L" h - (Cond
" y7 W9 k4 I$ M' Q; h - ((= Name "INSERT")(Command "Ddatte" Chon))
+ J, q5 s# K; k' E. L - ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))! L$ F0 }6 K" R. {8 r" ?% M
- ((= Name "DIMENSION") (Hai_Edim Chon))7 z/ Y# F) N% O" j9 i; o: A8 u
- )2 G0 v2 c6 Q6 D4 w8 V& Z
- );End Cond/ C" W _2 l$ B1 S1 w# F3 y
- );End Progn; r* f4 I! B) |# W) l
- );End While
! z1 C# \4 ]# [- A7 }. E; B. p' { - (Setq Olderr *Error*)(Princ)7 ~$ v E: {4 ^2 o9 j
- );End Program
) [# m# T. K* Y7 K7 x: N$ B - 0 y: q- Y- N2 H9 a" X
- ;;;====================DDeditDim=====================* G; E5 Y) X$ T; T" F
- ;;;=====================Hai.DCL======================% I/ j: ]. w# T! ~
- ;;;====================DDeditDim=====================
- F& _5 b/ ?4 }6 h. J4 I7 x
8 T+ ?9 P# G# ? j; ~& j# u- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)6 T4 g; a* x0 d/ _; A' K+ u! w! T
- ;;Chay Cung Du Lieu.Lsp & Hai.Dcl! c- G, K# N3 S% k( X( J+ M9 y
- (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc). f. o' o+ q. ?7 ]5 \. C& N
- (Setq Oldlis (Entget (Car Chon)); i* c% n/ ]( Q; p! ?) E" R. m
- Pt10 (Cdr (Assoc 10 Oldlis))
/ _% B& h) U+ e: r1 o& X - Pt13 (Cdr (Assoc 13 Oldlis))7 W. F3 i2 G" k& y$ M
- Pt14 (Cdr (Assoc 14 Oldlis))' c9 s% }: a) _0 z0 n
- St (Cdr (Assoc 70 Oldlis))) r3 s0 Z+ E. L9 j! t9 C! ]% I# d
- Dimdefault (Cdr (Assoc 1 Oldlis))! l8 L0 T2 Q S6 I
- )0 ^3 K, `; m/ v. f0 k% | k( ?& D- ~. z
- (Cond, P, h5 ^% ~& i5 }- ^. |" s
- ((Or (= 32 St)(= 0 St)(= 160 St))" M2 W* R( b$ g W7 Y
- (Progn
) _$ g% N, k L0 r4 _0 z- T - (Setq Ang (Cdr (Assoc 50 Oldlis))
! D Z* J! ~9 {1 e, x. n, q - Pt (Polar Pt13 Ang 500)
" a1 k; f* K6 e% T. u - Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)
2 E+ @0 i5 t! x5 |/ ]4 ] - Dis (Rtos (Distance Pt13 Hc))' r# t; q3 u' R9 V8 w7 u" ^% ~
- )" ~8 o( v. S8 t! m, E( N1 K4 C: y' N
- )7 r' @$ `3 B7 m) {; F; ]3 d
- )
3 ]: B- t- L; z# O0 n6 r - ((Or (= 33 St)(= 1 St))
- q$ _% w! H) U% m% q: G. l - (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
6 L) P& {0 J0 x+ ]& `- y - );;End Cond! C7 q3 r9 V/ m4 X9 f& y
- (If (= Dimdefault "") (Setq Dimdefault "<>"))4 o3 e/ ?$ J* o( Y( s# l
- (Setq Dial (Load_Dialog "Hai.Dcl"))( @% z" E, |' d/ w2 y
- (If (Not (New_Dialog "eddim" Dial)) (Exit)); z. N, w* K7 N! s6 K
- (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))/ }9 d2 @ h' H, V+ X
- (Set_Tile "text" Dis))
( `2 U. ~# i! a: k$ ` - (Set_Tile "ha:edim" Dimdefault)
) m7 y$ K. Q2 s. [. i7 l- p8 P - (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai( r: Y1 V; F3 k1 Y ^
- (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")
6 p9 t c; {) Z$ R% y3 `3 F- Z# R; [ - (Setq State (Start_Dialog))(Unload_Dialog Dial)3 e1 D1 z. d, p& B0 x
- (If (And Str (= 3 State))/ M" C2 j2 s! C# c% v |5 Z% N
- (Progn
' }# G0 t% o# E1 D! f# M1 U - (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))
8 C! i6 I& @1 x& d" K - )
7 V# U" f* h( X9 a7 k) s - (Defun C:EH (/ Chon Name )! s( a$ w+ a; m5 X8 X+ k
" i# f; \- A& B: x1 w9 a- _- ;;;********************Du Lieu********************9 {$ ~, q: G$ J0 O
- & H+ S W3 u4 V6 }8 M$ ~
- (Defun Ha:Thoat () (Reinit) (Setq Temp "Da Thoat Khoi Chuong Trinh"))
+ L- i6 O/ i8 p* G# D3 u( W* ] - (Defun Hacat (Hacat1 Hacat2 / Hacat3 Chon)
- G1 b7 T, ?: u/ m C- g - (If (And (/= Hacat1 Nil) (/= Hacat2 Nil))7 ^1 `9 X: J1 g4 J" P$ U2 B- U3 n
- (Progn
1 F4 S" E; E' ]. A* g - (Setq Hacat3 (Polar Hacat1 (Angle Hacat1 Hacat2) (/ (Distance Hacat1 Hacat2) 2)))
! O% N/ y# E! \, T. \& O - (Setq Chon (Ssget Hacat3))6 h' w2 M9 D% F i; ?
- (Command "Break" Chon Hacat1 Hacat2)
& v! y1 g; \! I+ G" j- [ - )$ C6 r4 O9 W( W1 c4 t4 I! V
- )3 I* }" x! f3 F/ B# M
- (Princ)
2 V9 a& q3 i4 U2 ~' I/ n - ) p0 Q& ?& b% @" s
- ;;
- e1 M$ w% G1 {- ~' h# k - (Defun Hauon (Hauon1 Hauon2)(Command "Fillet" Hauon1 Hauon2))$ s$ @2 Q) I- k) u% W2 \
- ;;" \3 m6 N5 w6 J
- (Defun Taolop (Mau Lop / A)(Setq A(Tblsearch "Layer" Lop))(If (Null A)(Command "Layer" "_N" Lop "_C" Mau Lop "")) (Setvar "Clayer" Lop))4 E3 v- V0 Y' T4 L8 z' }. J
- ;;
7 I) V# d0 P" ^ - (Defun Init ()(Setvar "Blipmode" 0)(Setvar "Cmdecho" 0)(Setvar "Angbase" 0))5 Q ^* U7 Z* e( _
- ;;
F) d7 @# ]3 z; m$ H$ P - (Defun Reinit ()(Setvar "Cmdecho" 1)); S8 }; W& i9 [% z& Y
- ;;+ w% N! s. _( }+ {6 W3 @
- (Defun Tichvecto (Vecto1 Vecto2)(Apply '+ (Mapcar '* Vecto1 Vecto2)))* J& F) c8 W& k4 Q7 X
- ;;
" S3 `8 L! q6 h1 ]6 D4 y( Z - ;;Cho 2 Diem Tinh Ra Vec To Phap
7 n2 G8 U; x+ d' F - (Defun Vectophap (V01 V02 / Vectochiphuong)(Setq Vectochiphuong(Mapcar '- V01 V02)) (List (Cadr Vectochiphuong) (* -1 (Car Vectochiphuong))))
! M+ A! c! t1 \& z. }5 ]$ T - ;;Xac Dinh Vi Tri Hinh Chieu 1 Diem Len 1 Duong Thang
: y+ F7 x$ P7 t" p - ;;Da Biet 2 Diem Thuoc Duong Thang0 p5 B1 |+ t! v6 u
- (Defun Lay_Hinh_Chieu (Dc1 P1 P2 / Hc Dc2); c9 @, g! w2 X5 X
- (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)' a$ _, A) P! Z6 o
- Hc (Inters P1 P2 Dc1 Dc2 Nil)))
' V& l# C7 U7 Q, [ B( | - ;;Xac Dinh Khoang Cach Tu 1 Diem Len 1 Duong Thang3 s1 T4 J6 ]! a) W9 u( ~/ o9 }
- ;;Da Biet 2 Diem Thuoc Duong Thang
. k5 a# g N& W" ^: Z& m - (Defun Khoangcach (Dc1 P1 P2 / Dc2 Hc)- i5 K( S4 [/ X% g; K: ]
- (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)
( v+ N8 _8 v" |0 t. K Y. t - Hc (Inters P1 P2 Dc1 Dc2 Nil))
6 j# }7 b/ h1 z# [$ D, B6 k& P - (Distance Dc1 Hc)2 Z1 {' P L0 A5 {3 p
- )$ u$ {2 \, F( m$ A( [( @1 d7 T
- (load "nhapcua.lsp")
* l" r7 `& f+ T+ u( J8 {% @& |9 x - (Defun *Error* (Msg)
4 V+ j4 F: ~7 b8 w - (Princ "\nerror: ")(Princ Msg)(Princ " ")" V) u0 [# g3 s! D3 N: G. H+ c- U
- (Start_Dialog)(Unload_Dialog Dial)
3 M! R+ T5 l( z8 b4 g- } - (Setq *Error* Olderr)(Princ)( B3 e' j( B; U i) E; e3 X) C
- )
5 l% z( J) I( y - (Setq Olderr *Error*)
% F, d+ E+ d! T, J3 S3 G - (Setq Chon T)0 a4 t1 _* q# T' e' q
- (While Chon
) N9 b+ }. }5 {% g# o - (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))
4 R3 A: q7 j) A/ } - (If Chon
( |# H+ W4 K1 @7 y. n - (Progn) ~% j) T0 U$ E
- (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))
; H5 l% o- H1 j _9 { - (Cond8 v1 L5 F3 l, h1 _( _* y5 L
- ((= Name "INSERT")(Command "Ddatte" Chon))8 G& d7 H. W+ `, [8 Z9 R* N4 m$ ~
- ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))- D5 Q$ L8 h; b, U! |' _
- ((= Name "DIMENSION") (Hai_Edim Chon))6 R# ]- Z& D" M( y3 [5 z7 k
- )3 K1 g& M* _% A4 s6 y$ ^( [' F
- );End Cond
% Z/ r0 g m |3 k5 Z - );End Progn: O+ g3 P9 U; x
- );End While X. f: ^; m! |+ X( L
- (Setq Olderr *Error*)(Princ)
9 b S; O# ?: q& d( ~- ]) f! | - );End Program
7 v$ \- v4 I: Y
6 [3 n- a' B3 @3 V- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================
, D- x9 e) I* T, s# j - ;====================================Nhapcua.LSP====================================% w2 C5 G5 l# g
- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================+ K5 W9 r4 n# A5 e
; Z- L7 B9 |' K- T
; p2 Q5 o1 A# x, j- - Q4 Z' [0 {1 S8 h' ^
- ;*******************;*******************;*******************;*******************2 r* k' J0 r' q! d A, I
- ;****K E T C A U****;****K E T C A U****;****K E T C A U****;****K E T C A U****
* f5 Y5 \ |- L; p& D - ;*******************;*******************;*******************;*******************
3 D% c4 J6 D! Q! F2 f
: n, m/ s! L8 k3 T( _& j- ;VE HINH BINH HANH
U( N! Q! W9 A) x h5 N - ; u7 q- d w) A7 P
- (defun c:binhhanh (/ p1 p2 p3)
* Q8 W$ k7 Q' t - (setq p1 (getpoint "\n Nhap diem thu nhat:"))2 F o; f0 t/ e9 w! ~, ^
- (setq p2 (getpoint p1 "\n Nhap diem thu hai:"))
/ V; d! f0 f f5 H& N$ F' R5 F" s4 W - (setq om (getvar "osmode"))1 O* H! [0 c* @* z
- (setvar "osmode" 0)
' M4 {6 Z% B8 \# V3 z& n: O# } - (command "line" p1 p2 "")
$ E) A+ q( {4 t - (setvar "osmode" om)
% m0 i% p2 V, r5 ^5 c; j9 X - (setq p3 (getpoint p2 "\n Nhap diem thu ba:"))7 \, G" W/ [7 P
- (setq a (angle p2 p1))
$ s7 F) u( j3 W4 s/ S0 T6 r - (setq d (distance p1 p2))
% q3 p% k9 C4 h0 J - (setq p4 (polar p3 a d))
2 T/ E, z! g7 L9 K/ i/ }* I, f - (command "OSNAP" "none")! p* U H5 Q4 G7 J" I- H+ a
- (command "erase" "l" "")
8 x% N- z% x; \2 ^% p/ n( j. R - (command "pline" p1 p2 p3 p4 p1 "")( `; w1 Z% J- t
- (setvar "osmode" om)
" \) L0 t. T" g: B# y - )
$ l' Y4 i" h' n' o+ c
' x% f6 e( F: X' Z- ;VE LUOI COT
/ y4 O- R/ `' z. H; H3 d - ( D& H$ I$ e9 `$ Z8 ^; C
- (defun c:LuoiCot (). p/ l1 J- {- b7 d9 t7 a2 {
- (setq om (getvar "osmode"))
5 S9 r$ P3 D& |4 Y+ O6 i1 } - (setvar "osmode" 0)
) T6 Q( N( G, I- O+ d - (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
' s% Y% I2 b- P/ ? - (setq p0 (getpoint "\n Chon Basic Point:"))
+ K" j# T5 y$ [* w% R - (setq nc (getreal "\n Nhap chieu ngang cua cot : "))
" V% O7 o: k: Y" {) g n - (setq dc (getreal "\n Nhap chieu doc cua cot : "))9 T* R' k# P; Q" Z: x% \
- (setq p1 (polar (polar p0 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )" V3 V! z1 P5 A: l4 p' a
- (setq p2 (polar (polar p0 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
, U# V3 y9 O% \ S# f( a - (command "rectang" p1 p2)
3 p7 N; h6 r9 d; h. O$ N' _4 w4 ^/ h - (command "hatch" "solid" "l" "")9 p5 O: B& ~5 ?9 u
- (setq bcn (getreal "\n Buoc cot theo phuong ngang : "))
; T' A5 D. N+ {( p3 H6 @( ~; a% ~ - (setq nn (getint "\n So buoc cot phuong ngang : "))& n- ^. D+ o; Y) S) m
- (setq w1 (polar (polar p1 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )% b2 V+ H! t; g3 v; o3 w
- (setq w2 (polar (polar p2 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
5 B0 Z' k. G7 ^/ f! g - (command "select" "w" w1 w2 "")
+ g+ [; }, ~- c' x4 V+ _6 f - (command "array" "p" "" "r" "1" (+ nn 1) (/ (* bcn hstl) tile) ); G: D, N* g# B% O* N
- (command "line" (polar p0 pi (/ (* 1000 hstl) tile)) (polar p0 0 (/ (* (+ (* bcn nn) 1000) hstl) tile) ) "")
) `. a1 L7 {2 H5 w, E4 |3 I- V - (setq w1 (polar (polar p0 pi (/ (* hstl 2000) tile)) (* pi 1.5) (/ (* hstl 2000) tile) ))
" V: }/ t$ d' h" w, m! C+ m/ o - (setq w2 (polar (polar p0 0 (/ (* (+ (* bcn nn) 2000) hstl) tile) ) (* pi 0.5) (/ (* hstl 2000) tile) ))1 h& p8 m! M) ]6 g: T: V
- (command "zoom" "w" w1 w2): F; ~1 ^* C5 B; m& p4 T" {
- (command "select" "w" w1 w2 "")
4 H r- D$ g& l2 @" @ Y - (setq bcd (getreal "\n Buoc cot theo phuong doc : "))
2 Y8 w! }& y$ A9 l8 F3 Q# Z3 F& D - (setq nd (getint "\n So buoc cot phuong doc : "))
' A: x( [! _( d, s# E - (command "array" "p" "" "r" (+ nd 1) "1" (/ (* hstl bcd) tile) )4 z/ O0 Q; n, \" i: l7 @* E7 H( |
- (command "line" (polar p0 (* pi 1.5) (/ (* hstl 1000) tile)) (polar p0 (* pi 0.5) (/ (* (+ (* bcd nd) 1000) hstl) tile)) "")+ _3 [+ {$ q* q# [7 h" a7 f" K
- (command "array" "l" "" "r" "1" (+ nn 1) (/ (* hstl bcn) tile) )
7 o5 u+ r9 ~2 T! W4 G - (setq w2 (polar w2 (* pi 0.5) (/ (* (+ (* bcd nd) 2000) hstl) tile)) )
6 `) D, \6 A7 C7 T - (command "zoom" "w" w1 w2)
0 y# x* M* v; v3 C3 A/ O7 r - (setvar "osmode" om)
. f5 e- [6 x$ g5 d) l: Y - )
" @. U0 [$ \( T$ `1 r& l2 l
( Y% t: |0 y0 T- ;VE CUA DI% j4 u8 Y) n2 [/ O1 m
0 w0 s; C6 o! o# h" Y& V* _; S- (defun c:cuadi ()" e+ k, r# t, u
- (setq om (getvar "osmode")). o8 Q& ~2 ~+ l' c' k( b
- (setvar "osmode" 0)0 Q. Z2 H& o& `0 ?! c
& y8 \$ u- R" U; S- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
# C5 \! R7 b( m" y. v) G - (setq b (getreal "\n Nhap be rong cua : "))6 y$ T: z- d( P
- (setvar "osmode" om)5 O$ \; d8 r# R0 y' Z0 p
- (while (< 0 1). C) D2 h" n3 _1 T
- (progn
& R8 W& @7 C' A c: p - (setq p0 (getpoint "\n Chon Basic Point:"))
' H3 F! O* S B' S- {! d6 M - (setq p1 (getpoint p0 "\n Chon diem de xac dinh huong cua cua:"))2 w- ]# x$ Z3 x% O- ~
- (command "osnap" "none")7 h5 P. R1 {: }0 N1 r5 y# M
- (setq p2 (getpoint p0 "\n Chon diem de xac dinh huong mo cua:"))
/ w7 G& v7 E+ I$ _1 ]0 @; h6 R - (setq a1 (angle p0 p1)), G4 E/ [ R0 Q& p
- (setq p1 (polar p0 a1 (/ (* hstl b) tile)))
% T4 y. z2 f" b) E5 n - (setq a2 (angle p0 p2)), @& b, k2 V3 o! X8 l2 R: C
- (if (< (- a2 a1) pi) (setq a3 (+ (/ pi 2) a1)) (setq a3 (- a1 (/ pi 2))) )6 G/ d: d/ j4 l- [$ z& I/ S& p9 C
- (command "pline" p0 "w" "0" "0" p1 (polar p1 a3 (/ (* hstl 40) tile)) (polar p0 a3 (/ (* hstl 40) tile)) p0 "")
: l0 V# ]6 e5 A% U) y" f - (command "rotate" "l" "" p0 (/ (* (- a3 a1) 180) pi)), G" E9 J% t7 I Q( F/ g5 J
- (command "arc" "ce" p0 p1 "a" (/ (* (- a3 a1) 180) pi)) & A3 d* p( K* \- y8 k, m& P
- (setvar "osmode" om)
7 W3 g, q' D$ R# p - ))0 V4 W8 I6 e2 O. u N7 F: [
- )3 v, ^* n0 D3 ]1 m/ I
- : R9 a. [6 K! H
- ;VE CUA SO
* d {5 r* |( y! Y' w, z
# L6 o0 T4 @; f. t5 k/ k- (defun c:cuaso ()
9 ?! j g* M7 B0 _; F - (setq om (getvar "osmode"))
, p* j4 o% k# v - (setvar "osmode" 0)
2 o& {4 A% R9 _" x7 r) \$ @, P3 E7 T - $ H7 C$ o* l; G; V+ L
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
1 d( b: U0 b8 b0 T- { - (setvar "osmode" om)
$ y: W4 g _% M& |+ d - (while (< 0 1)$ @! t3 f- F1 g! M# G) M
- (progn7 Q2 b2 S) U! g! m4 z; `3 J# k v e
- (setq p0 (getpoint "\n Chon Basic Point:"))
6 @3 r1 a' _+ m" S - (setq p1 (getpoint p0 "\n Chon diem de xac dinh be rong cua:"))! _- |- \7 M( N8 K2 O) N; z$ I5 [: V( L
- (command "osnap" "none")+ I) ~4 H% F: y2 s I! i
- (setq p2 (getpoint p1 "\n Chon 1 diem o trong nha de xac dinh huong cua so:"))2 _$ E: C& W! v7 z U6 z# b4 \4 A2 f# y
- (setq b (distance p0 p1))
* z5 `: p6 G* m1 E3 H, O$ Y - (if (< b (/ (* hstl 600) tile)) (setq du 50))% A" r; y: W7 g5 h0 V6 J" K8 L+ e+ ^' w
- (if (> b (/ (* hstl 600) tile)) (setq du 150))
' |! d; y: G a; o! y - (if (> b (/ (* hstl 1800) tile)) (setq du 200))
! Y" m* ^" b+ c. N, H+ l - (setq a1 (angle p0 p1))
/ I1 |* s8 Z% A$ I - (setq a2 (angle p0 p2)), A$ g* Y! U8 j% \7 [' c% H
- (if (> a2 pi) (setq a2 (- a2 (* pi 2)) ) )
% t% i- P' q7 j7 i( n9 A' D - (if (> (- a2 a1) 0) (setq a3 (+ (/ pi 2) a1)) )
& `9 k- |, j& M [ - (if (> (- a1 a2) 0) (setq a3 (- a1 (/ pi 2))) )+ i3 ^ T; ~: P0 B* a( ^* j
- (command "pline" p0 "w" "0" "0" p1 "")
4 m. ?4 R5 ^/ o8 g/ V5 j - (command "pline" (polar p0 a3 (/ (* hstl 50) tile)) (polar p1 a3 (/ (* hstl 50) tile)) "")6 `8 |5 U' b. Z9 s# Z$ X7 i$ _
- (command "pline" (polar p0 a3 (/ (* hstl 100) tile)) (polar p1 a3 (/ (* hstl 100) tile)) "")
- q+ t; G+ [8 a+ q; r5 g- D1 } - (command "pline" (polar p0 a1 (* (- du) (/ hstl tile))) (polar (polar p0 a1 (* (- du) (/ hstl tile))) a3 (* -100 (/ hstl tile)))
$ C& `, e+ S; p4 L S3 g1 t - (polar (polar p1 a1 (* du (/ hstl tile))) a3 (* -100 (/ hstl tile))) (polar p1 a1 (* du (/ hstl tile))) "")
0 e2 g3 C4 }' t; D4 r+ W - (setvar "osmode" om)) v7 h5 I( O1 U2 t/ c" z
- ))
1 I: Y. r1 F4 Q - )8 v+ x$ a$ M( j0 e
% c" O) F ^- a5 E3 _- ;;;=== General Utility Functions ===( s: e; O: Y7 L: b' s
- 6 j* s' p X/ S0 @* m
- ; R12 compatibility - In R12 (acad_helpdlg) was an externally-defined
$ I/ g) v2 g8 n4 G( E U( i \- n - ; ADS function. Now it's a simple AutoLISP function that calls the . k7 t) C2 K0 _3 `$ u: y6 L5 ?
- ; built-in function (help). It's only purpose is R12 compatibility. 7 v7 G% E1 k- V
- ; If you are calling it for anything else, you should almost certainly
& c' [1 d6 b4 i0 I: j/ l - ; be calling (help) instead.
/ }4 S7 ^8 i& w$ ~4 Q0 q - ) J: q! _1 [5 s' B
- (defun acad_helpdlg (helpfile topic)& F9 ?! R! i2 Q5 Y9 f! i
- (help helpfile topic)
$ A: s% L, R& X: y$ S - )3 b% P+ s2 ]* v5 j$ i9 r3 T' D
$ ^& m3 B( {1 y" Z+ V3 R( M- / B: h) e) Y% Z5 {1 E9 c
- (defun *merr* (msg)6 D& N' j$ U1 d4 M2 z: x
- (setq *error* m:err m:err nil)
( x% p. L4 ^) C) N" T7 H) w - (princ)' V; m4 Z5 b. `8 G! g4 o: e
- )5 D+ M) v+ z3 b% o
- + Z+ o0 P% C1 a/ _. u
- (defun *merrmsg* (msg)
) j6 }) g: |4 s) o2 L L - (princ msg)% w* j/ T4 }6 Y T% n& d' b
- (setq *error* m:err m:err nil)
# t% r* t2 {9 g3 u - (princ)# g. ^9 E! m) B5 P R% f1 ~# p
- )
6 s: p6 z8 \ D9 s; I* c
6 w/ W: @. t* k- k+ z& [- a- ;; Loads the indicated ARX app if it isn't already loaded
& [( T7 U) C% ~ - ;; returns nil if no load was necessary, else returns the
1 k3 C( h9 O: p5 j1 E( Q - ;; app name if a load occurred.; w, p, w9 a5 P% ]+ F- e
- (defun verify_arxapp_loaded (app) # B& w# C& O3 q0 q6 ?
- (if (not (loadedp app (arx)))& B' g0 I1 x w
- (arxload app f)
* u* x/ x6 x, ]. K - )4 u2 e% g2 ?$ N5 Z4 z) O
- )
0 ^ F. G) _" T& p2 e4 i
& l6 N4 | b" q0 u9 Q5 I4 b- ;; determines if a given application is loaded...# \6 y7 B' C% I" O: g$ J
- ;; general purpose: can ostensibly be used for appsets (arx) or (ads) or....
2 \$ A& W/ a* w- T - ;;9 Y" ~* ^# y0 Q D0 P. t
- ;; app is the filename of the application to check (extension is required)
) X, j! M( }) N; B( D - ;; appset is a list of applications, (such as (arx) or (ads) ^' b7 ~/ @- a0 ~
- ;; ) k/ u2 Y. e, R9 w" F' C
- ;; returns T or nil, depending on whether app is present in the appset
$ d3 l1 ?2 R7 N$ q& X - ;; indicated. Case is ignored in comparison, so "foo.arx" matches "FOO.ARX"
4 f, b, R$ m2 R9 z6 t - ;; Also, if appset contains members that contain paths, app will right-match1 ?0 T7 F: u& A) K
- ;; against these members, so "bar.arx" matches "c:\\path\\bar.arx"; note that
' ?0 [7 N5 d3 s2 N0 J7 v/ Y. J- `% x( w - ;; "bar.arx" will *not* match "c:\\path\\foobar.arx."
9 D( h% \$ v8 }6 I - (defun loadedp (app appset)
" Q8 E! V1 a0 P5 ?3 M( D+ l - (cond (appset (or
7 x$ F# x# {4 t3 [) Q - ;; exactly equal? (ignoring case)
1 ?6 k5 j* d$ `+ E - (= (strcase (car appset))3 b7 j# m# P7 r1 e
- (strcase app))$ v7 G1 c1 F/ H9 S p) L. S! Z
- ;; right-matching? (ignoring case, but assuming that
B9 o& x& J V - ;; it's a complete filename (with a backslash before it): p" A9 _& f# u9 A7 |
- (and
) u, J! a* e) C# Q6 O' q5 U4 ~ - (> (strlen (car appset)) (strlen app))
6 `7 s' r4 ^' {: f. e6 {' J - (= (strcase (substr (car appset) ' p( m3 E4 V: v, o2 ]$ n3 }: Y
- (- (strlen (car appset))
8 K: Q% T6 z; x9 O5 ~ - (strlen app)
3 d% _- @* L0 P7 F - ) ; E; p8 J" G$ b7 i+ Z+ Q3 _
- )
& g; o; y" {8 i! h2 Z" M - )
) G* ]( R& ], U- W - (strcase (strcat "\\" app))
: V2 g! R; v9 y* D3 |' x - )
% U4 x" H$ }1 T+ x/ B- p - )
* C: u& p8 q/ q4 q0 ^ - ;; no match for this entry in appset, try next one....* n! b& F* T' T }& g+ ~+ f% J
- (loadedp app (cdr appset)) ))); V+ u, B$ z/ X" p/ U2 \' i' ~) \
- )
/ l' i* `# |6 \: H9 G1 r - ( a# P% s8 Q' E, O- ?8 O/ S" X
0 F L# L* ^& k( W- ;;; ===== Single-line MText editor =====: ^" m" t) T; Q. `6 ^9 R8 [
- (defun LispEd (contents / fname dcl state)( n; a' J/ z8 r/ S
- (if (not (setq fname (getvar "program")))
9 e6 i% b/ c" M, f& l7 [ - (setq fname "acad")5 ~' @0 N" w; w h0 w" \! {0 t
- )
6 K) ]/ _* T- b - (strcat fname ".dcl")+ ?+ m7 j* @" c! ^
- (setq dcl (load_dialog fname))
) L* s. s4 [. K3 C% p5 {' V - (if (not (new_dialog "LispEd" dcl)) (exit))
- b( I8 _1 _. t8 M! J - (set_tile "contents" contents)) m% a1 j4 { _. }+ @# b
- (mode_tile "contents" 2)& P6 F: Y/ ^, K: s
- (action_tile "contents" "(setq contents $value)")0 m# X( r3 C" M$ O" p( a4 n- B% a! A
- (action_tile "accept" "(done_dialog 1)")' j+ @6 k+ {$ Y# R' {9 {* i
- (action_tile "mtexted" "(done_dialog 2)" )
, \- _- p, G9 g! P - (setq state (start_dialog))! G3 d! L3 ?" Y" S) |* n( X2 B
- (unload_dialog dcl)
/ W: L8 X* Z ^, z% F' T5 {( g# `# J - (cond7 B8 @1 U/ t# i1 c
- ((= state 1) contents)
# n# O5 z: I% a+ ?" |% E - ((= state 2) -1)
9 T" I: {' j, k+ C/ P - (t 0)/ K- H; G- y* v* Q- b* T0 {
- )
% x/ d$ B! ^, q) f- I2 a - )+ j" i5 U: r( r3 ] _+ H! ^7 e0 L
- ' d" b6 V8 [; T
- ;;; ===== Discontinued commands =====
4 b- y; q/ [! Z! } - (defun c:ddselect(/ cmdecho-save)* E, c% H8 Z3 E- i0 j
- (setq cmdecho-save (getvar "CMDECHO")). \. C3 E; _% S C8 k; r
- (setvar "CMDECHO" 0)
0 q0 h. F& {7 r7 _: U; Q - (command "._+options" 7)
7 t i) W* t. R8 B$ ~6 Q - (setvar "CMDECHO" cmdecho-save)
' G1 w: u( b& i' \: H - (princ)1 q- M& @+ t& w3 @$ ^
- )
0 d& w! k, u9 ?) m; B - 3 W f: q: m9 T! F, \
- (defun c:ddgrips(/ cmdecho-save)4 r5 V$ _ d* r' i, J
- (setq cmdecho-save (getvar "CMDECHO"))
9 ?' i* b% G# c# d - (setvar "CMDECHO" 0)
$ U. A* k- i+ i( {4 W - (command "._+options" 7)/ {" l* ]3 k) [5 {- {" ^. A8 H* t, P& _$ {
- (setvar "CMDECHO" cmdecho-save)
) f- L) C0 |4 Y& q4 G- l% S - (princ)% N# V0 L1 E" G
- )% d$ O9 O3 _; m- h/ G
- ^6 z/ U' `9 w( f& p
- (defun c:gifin ()
* c) O; \: z2 ^ k. P - (alert "\nThe GIFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")7 `. T2 S9 L) `; \* Y& K$ m
- (princ)! N) o3 H! i# e- j( ?
- )
* e4 w$ E, ^8 ?% C3 P Y, J - * F3 t; {; k2 x0 B. S6 X
- (defun c:pcxin (), R- |; P- t7 f( q
- (alert "\nThe PCXIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n"). t9 A% Q# m0 }! {
- (princ)+ f1 @" f! i( o; Z7 \# l
- )4 C* r6 Y6 N( j7 D- D& Z# |
& M: a8 n! |7 b% U- (defun c:tiffin ()' H, p3 K6 O i5 r V
- (alert "\nThe TIFFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")- c# Z# S( q- U0 C
- (princ)" s9 `' T: D0 Z5 i' x
- )
" e% H# A9 ]2 E7 h# X1 a. f& r - . w- D$ J* |+ w0 X$ o
- (defun c:ddemodes()- ^7 e4 @9 v- c! i
- (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.")
+ Y( B& j+ H1 I) n - (princ)
$ n/ S: h/ H' t; q5 p. T - )5 E5 P' V; Q# b8 W3 u
- $ j+ C" l5 K# J
- (defun c:ddrmodes(/ cmdecho-save), G7 [3 Y4 {) K4 ^
- (setq cmdecho-save (getvar "CMDECHO"))" _4 Q6 U2 l6 k1 H
- (setvar "CMDECHO" 0)
# l' f- ^. n0 Q6 F - (command "._+dsettings" 0)/ E7 ]; N# i$ y4 m- r4 i% Y" {9 a
- (setvar "CMDECHO" cmdecho-save)
% K2 F; r8 W2 `9 ^! S1 d; M - (princ)% d7 v I9 V" r- h4 T/ e
- )
& {, c$ w3 L, w* u& D6 i
2 S9 p9 P5 m! P- l6 L- ;; HPCONFIG
5 h& t' @# O8 ]- M. v - (defun c:hpconfig (/ hlppath)0 e G, c0 c9 n. \' ]( Q, y+ R, P) t
- (if (not (setq hlppath (findfile "acad.hlp")))
/ @1 R3 y4 t( `# V4 x0 o s - (setq hlppath ""))
8 H& R# z6 B' l1 f6 f* ?# G7 w1 c - (help hlppath "hpconfig")
5 i" @9 {9 U/ E: }! R - (princ)
7 x0 ^+ [4 [9 h - ). n2 K8 { {' ~6 s w5 ?/ t0 {) z \
. y( g, Y& Q/ C! B/ K# _) P u- ;; OCECONFIG0 _% a& `% c7 V
- (defun c:oceconfig (/ hlppath)! X% R2 N7 X$ J5 X5 e2 P# F% \
- (if (not (setq hlppath (findfile "acad.hlp")))0 |4 Q$ K" ^3 z
- (setq hlppath ""))3 G% g& c5 q/ L8 V0 x' B. g
- (help hlppath "oceconfig")# J0 ^/ p( j7 Y4 X+ T
- (princ)0 ]) v/ q9 z4 x3 L8 r6 X6 S
- )0 s p* R- t. x* B) m' v. n
0 k2 p$ q5 }1 n0 }& R6 r- ;; CCONFIG
& t, z" d5 v% ]# t9 Q" L - (defun c:cconfig (/ hlppath)4 |8 j& A+ x# A. M
- (if (not (setq hlppath (findfile "acad.hlp")))5 h/ ], W4 r5 a9 f! ^; ?
- (setq hlppath ""))8 U+ G0 ?' v+ w
- (help hlppath "cconfig")( y$ Y) g; }8 N! M$ \ }3 h
- (princ)
* K1 X8 N( ]0 V! F( t: g: e1 K/ V) s - )
- Y. M$ L P1 v, L) i }2 F% u) @ - % f6 A, N9 J7 _; }- y5 ^
- ;;; ===== AutoLoad =====+ P. I: W( {0 G( S* N: u, m
z5 l* \* |. m& i" Y) E w- ;;; Check list of loaded <apptype> applications ("ads" or "arx")
" t) _" V: M v) W3 T - ;;; for the name of a certain appplication <appname>.
8 _" ~9 k0 x. o7 p8 E% ~& |/ K8 U - ;;; Returns T if <appname> is loaded.
' y b/ T2 E: ^/ u
R( W/ D# N0 Y2 L0 [$ F j- (defun ai_AppLoaded (appname apptype)
9 e: G8 e9 X5 D' L - (apply 'or
. ?6 A1 M7 _. i' D - (mapcar - V- H/ b1 G2 _) [/ m+ B I2 L( z
- '(lambda (j)
2 J4 J0 w' _1 T - (wcmatch
1 ^, ?/ t, _, F3 r - (strcase j T)
' u" d3 y# y+ e' Q1 |$ [ S* f& x - (strcase (strcat "*" appname "*") T)
9 u6 T& l% e5 G) a9 G% _6 {6 X - ) 2 A. @: X, a3 E" d) L6 c
- )/ V0 W" |7 R: Y/ g0 O+ f
- (eval (list (read apptype)))
$ s6 B; ?; B" @9 t0 | - )
" _" A( n0 P" w, t$ C - )
- O, Y- m/ J! ?, D) h5 I8 L - )
9 M" `1 Q) }4 z
+ [( b- R1 v% Z# N3 [2 L- ;;
5 d" a- K8 y3 v! o - ;; Native Rx commands cannot be called with the "C:" syntax. They must
. V- P \9 h0 o9 l9 \7 A5 d. y( K1 I - ;; be called via (command). Therefore they require their own autoload
+ `' P) ~3 u; i8 N4 G - ;; command.
- ^9 V; g3 E9 F( Z' q5 L, T - * k- h( n" D' ]" b( ?" `. G
- (defun autonativeload (app cmdliste / qapp)
9 }+ `+ Y& B n% l8 z' N1 ~ - (setq qapp (strcat "\"" app "\""))
; c' B+ U5 f& c9 G( F - (setq initstring "\nInitializing...")1 o% p1 q$ O+ s+ ^; J- {% m
- (mapcar
4 Y' u# v ~& b - '(lambda (cmd / nom_cmd native_cmd)
6 u' h9 l6 ?* C1 ~* j - (progn
3 J2 t: o6 M+ T, C$ ?2 R - (setq nom_cmd (strcat "C:" cmd))
; n5 P9 J! y5 a5 M9 r S8 ]* X - (setq native_cmd (strcat "\"_" cmd "\""))1 `4 O" K$ W# h; f L6 O
- (if (not (eval (read nom_cmd)))
3 l$ V$ S0 ]0 d7 r+ M - (eval
! |6 {3 x' O+ k2 O - (read (strcat8 t3 S! m" W. E% Z
- "(defun " nom_cmd "()"; h# P0 Q* u" `2 p- f- Y
- "(setq m:err *error* *error* *merrmsg*)"
3 \* r) I O7 J5 \1 Y y$ G1 Z - "(if (ai_ffile " qapp ")": m* \, {# i3 ]! \
- "(progn (princ initstring)": x2 V9 t& B+ Y8 T1 z% O% l
- "(_autoarxload " qapp ") (command " native_cmd "))"
4 n9 p) e1 F' _2 h9 q, v5 W2 D - "(ai_nofile " qapp "))"2 g# e8 l: e% _/ u/ |% R
- "(setq *error* m:err m:err nil))"
3 `9 T. M( G1 X F; e, k- i - ))))))7 E+ k+ F7 f$ z p6 B( N7 _
- cmdliste)
H3 f- d! S! j6 F2 P - nil! N: O' f3 p, u; H
- )+ z2 e. I' [$ @) i$ ^% M! k
- " q( ]# E% T5 ^0 h; G' x% e
- (defun _autoqload (quoi app cmdliste / qapp symnam)0 e6 {2 T( f& Q0 ~
- (setq qapp (strcat "\"" app "\""))2 l; m! ~! K5 x5 j M8 m& \
- (setq initstring "\nInitializing...")2 y7 S3 A( L; S: w" I
- (mapcar- ^% _/ h/ n( {' P( p
- '(lambda (cmd / nom_cmd)
$ j" q3 ?1 C; q3 a g1 a0 ^) a - (progn" r9 n- K2 `) y% l* O9 r, d! f' ^! L
- (setq nom_cmd (strcat "C:" cmd))) @! O+ Y5 w& q, p. W& O
- (if (not (eval (read nom_cmd)))
4 ^5 H3 L8 ?, d - (eval
* o2 `5 _5 }- g& b - (read (strcat
9 ]1 ], k( F, o z8 T - "(defun " nom_cmd "( / rtn)"
, a- i+ s/ q) s* U - "(setq m:err *error* *error* *merrmsg*)"
, `, B4 n! @7 A8 f5 D) }3 i) s - "(if (ai_ffile " qapp ")"
5 Y) b( f# h2 i$ W; b - "(progn (princ initstring)"
8 e7 r0 u) T, |# N! O) k - "(_auto" quoi "load " qapp ") (setq rtn (" nom_cmd ")))"
& I2 h2 Q0 \2 f- `, Q - "(ai_nofile " qapp "))"
) D+ ?- ^6 b+ L0 ^/ f) J% }' \ - "(setq *error* m:err m:err nil)": O) u2 s2 X( j* y# v! ^7 ]5 X- i
- "rtn)"+ U, Q2 a9 F4 w% Y) A0 g! X9 @
- ))))))
5 ` s! @! G+ T - cmdliste)4 l' w" D% F5 C B
- nil
/ B; ]# k* }% W r% o. s - )' q7 p* q) |# R' Z
" E7 t. R; r+ S L# A" ?- (defun autoload (app cmdliste)
' e T$ d* ~, C |0 Z, r - (_autoqload "" app cmdliste)1 A6 @- r- U$ ^9 F' u7 x' h- @' f8 |
- )
4 e9 i6 W# j4 k% G
! \0 e8 h& |3 M; |" q- (defun autoarxload (app cmdliste)( j+ F3 M- x' M+ z) l
- (_autoqload "arx" app cmdliste)
" q/ _; X, ?4 l5 K4 f) Z9 l6 M - )0 ?& T x9 C: W! G, Z8 o1 A
- 9 x( W9 X& _/ u
- (defun autoarxacedload (app cmdliste / qapp symnam)
& [/ ~' D, \: ^2 m - (setq qapp (strcat "\"" app "\""))
; m- c7 q, }: R( Z+ c# Q+ b* Q - (setq initstring "\nInitializing...")& Y8 }: {8 y7 T5 T, v5 y# Y
- (mapcar
, u; |9 A2 l6 @ - '(lambda (cmd / nom_cmd)
# `, R5 ]- H" |: L* W - (progn
4 a/ k4 T0 F; x$ o" v0 ~0 y+ r - (setq nom_cmd (strcat "C:" cmd))
; f' t/ G% u' h+ ` |2 a - (if (not (eval (read nom_cmd)))9 L# u3 ^( a% ?( b
- (eval
8 _& v0 v& l# N$ I& J7 `* Y( \+ s - (read (strcat c- q9 g5 k( B( M$ v; Z
- "(defun " nom_cmd "( / oldcmdecho)"
! f8 K$ [' l6 R; z) G: N# I4 | - "(setq m:err *error* *error* *merrmsg*)"! T0 B! {- T& q
- "(if (ai_ffile " qapp ")"6 C" A# x" {( t. m- M5 \8 w- e
- "(progn (princ initstring)"
1 H; \ I5 o( o) U - "(_autoarxload " qapp ")"
$ y" o* H* S" X0 h4 o" t - "(setq oldcmdecho (getvar \"CMDECHO\"))"
% A8 f) H+ N3 D# H- z - "(setvar \"CMDECHO\" 0)"8 ~" }$ p) D- I) w2 i
- "(command " "\"_" cmd "\"" ")"- r/ `& s# @$ k: A+ ^" C/ C
- "(setvar \"CMDECHO\" oldcmdecho))"5 g" Y9 V+ {. P% ~! F' C
- "(ai_nofile " qapp "))"$ l4 ~5 j1 @3 z# o4 i2 I
- "(setq *error* m:err m:err nil)"
3 s6 E. D- T5 \7 Z7 a - "(princ))", {. e9 O% W8 \* }( `5 C9 B# p
- ))))))
% y/ G7 O: e [- W$ J, F - cmdliste) m1 w6 e/ B. E2 u6 D9 K
- nil2 I( ?; O+ \8 V8 R; R
- )4 W* g M( D8 n* w2 @9 q
" \% m- L+ g- t- V' c- (defun _autoload (app)
8 ] [8 ]. C# H* Q - ; (princ "Auto:(load ") (princ app) (princ ")") (terpri)' E6 a& z, s8 U3 @- N$ X9 R
- (load app)" n: A/ ]. Q( ^( L
- )
! u: t! f8 r- h: c2 r/ h1 N - ; ], l: m# W. b+ L; H
- (defun _autoarxload (app)% `' W; l) G- @
- ; (princ "Auto:(arxload ") (princ app) (princ ")") (terpri)6 X# Q8 l" q- X' ]2 K' ]
- (arxload app)( H% ?8 p. R/ R; z7 ]( _: S, E5 g
- )
9 q: T! b8 L, z' p - ! X9 Z7 y6 O/ V( C, r N
- (defun ai_ffile (app)% I3 v% K2 G- E2 f
- (or (findfile (strcat app ".lsp"))& Z- Y" R$ R1 p( |; [( f
- (findfile (strcat app ".exp"))
6 b- N- D+ @* a' _( R) V - (findfile (strcat app ".exe"))' ?" ?& Z& U* ~0 q+ m1 A
- (findfile (strcat app ".arx"))2 R) w3 @% s/ ?3 s6 A2 h' k- E
- (findfile app)" a/ O8 [6 T/ |. y4 c2 X
- )+ E' `, [* |1 P3 u
- )( u2 ^( y$ d2 m
- # L+ U* S7 }* J+ f- m
- (defun ai_nofile (filename)! b1 v" r) M, A. a1 R
- (princ
5 }) z; d, O+ |7 Z) h" E - (strcat "\nThe file "
! f, _5 M" A9 H8 p& R4 {4 t - filename
8 ]9 O. w6 |8 \6 J7 @0 g - "(.lsp/.exe/.arx) was not found in your search path folders.", `0 p$ l- Z. G2 u
- )% s4 Q! t M* C+ g' p
- )
1 ^# ]; B2 ^. y - (princ "\nCheck the installation of the support files and try again.")
. ?, s' N; v. z+ i+ I - (princ)
/ y6 K. P7 C$ p - )' M; c' Z7 P4 }6 K$ L
8 c3 T0 k! @) p- B( z- 5 }1 a) w8 Y4 N
- ;;;===== AutoLoad LISP Applications =====* o. T' Y, b( a% M1 Y7 L% X
- ; Set help for those apps with a command line interface
* u$ G6 j: A9 _
( N* D- ~! O7 t: t- m* I: g- (autoload "edge" '("edge"))8 i1 R/ p1 K# K. u0 `
- (setfunhelp "C:edge" "" "edge")
3 {4 D6 q& s! {
- g7 e$ ?2 R# T* L- (autoload "filter" '("filter " "filter"))
: ?4 s! t; t+ B
% L8 P% q5 S9 f: V8 s# i- (autoload "3d" '("3d" "3d" "ai_box" "ai_pyramid" "ai_wedge" "ai_dome"
( b0 d b9 v$ V# Y) [$ r - "ai_mesh" "ai_sphere" "ai_cone" "ai_torus" "ai_dish")3 T! p4 t4 E% ]
- )
8 g+ C: U; q( y8 `) _, @7 @ - (setfunhelp "C:3d" "" "3d")( O9 S. r" D) ?: ?8 f, X# ^
- (setfunhelp "C:ai_box" "" "3d_box")8 H2 u, ]/ Y# ]( D+ u9 N
- (setfunhelp "C:ai_pyramid" "" "3d_pyramid")3 M4 ~0 s% ^0 D. [# w$ ]3 h! h$ c: y
- (setfunhelp "C:ai__wedge" "" "3d_wedge")
- N% y/ e' z. j! q2 @/ e - (setfunhelp "C:ai_dome" "" "3d_dome")
! q. V1 q2 H3 T; s$ n - (setfunhelp "C:ai_mesh" "" "3d_mesh")6 I0 Y; a5 Y- w1 P
- (setfunhelp "C:ai_sphere" "" "3d_sphere")% F' l2 p1 V5 C, g9 J
- (setfunhelp "C:ai_cone" "" "3d_cone")* A0 |" Q3 Y$ C, v% W0 G
- (setfunhelp "C:ai_torus" "" "3d_torus"); i' `* x2 l9 J5 I6 S
- (setfunhelp "C:ai_dish" "" "3d_dish")
% n6 M7 L* Y% ^& g3 D- C' D - 2 h* D- b& k; G1 v- A/ m" u
- (autoload "3darray" '("3darray"))
0 O9 A1 c2 I( a2 M3 O9 X - (setfunhelp "C:3darray" "" "3darray")
5 ~& Q* x. q& k) r - 8 e* [. d& a; `! P8 f4 Z* u
- (autoload "ddvpoint" '("ddvpoint"))0 |( \0 V+ U5 X( D. f1 g; h9 w9 v
s$ v! b b! V! |* o7 q* v6 l/ g- (autoload "mvsetup" '("mvsetup"))' N( v5 m' M; c8 X3 n( N. q" R
- (setfunhelp "C:mvsetup" "" "mvsetup")7 ~* r; \. i ^, w9 j! h
- , z8 E: `) }! N( z& x0 `
- (autoload "ddptype" '("ddptype")) G+ E) F. @5 U$ a! T
/ m; ^, w5 ~1 o9 X; O6 _* m- (autoload "attredef" '("attredef"))
$ C1 i5 N, ]. I& n- f - (setfunhelp "C:attredef" "" "attredef")2 V' }( P& v' R l* T. F) p$ m0 H
- * p }' J* l" I- s
- (autoload "xplode" '("xp" "xplode"))
1 f! Q2 O' a. T% x: Q/ a& t - (setfunhelp "C:xplode" "" "xplode"). ?. L, c+ c0 Q v# E5 D* q
- % }, ~# P+ N- Y4 [! D% ]
- (autoload "tutorial" '("tutdemo" "tutclear"" u: X! r2 Z- B- t4 u! o+ U
- "tutdemo" 1 U" o3 [ G7 c
- "tutclear"))
, Y3 P0 k* Q& f: |1 n4 h; e5 Z - 0 E) }! p6 ?4 A# y. G" M
- ;;;===== AutoArxLoad Arx Applications =====7 L" g, K+ ^4 `4 n$ P6 V; f
5 @4 }. M k, B8 `- (autoarxload "geomcal" '("cal" "cal"))# y/ V. W5 }4 ?4 b" f4 e
$ s: D" Z6 ]0 ]& q8 M- (autoarxload "geom3d" '("mirror3d" "rotate3d" "align"
: s" Q% g( ~" B( D% w - "mirror3d" "rotate3d"
3 b* l. I# ]6 v" X, d* M - "align"))) |) V$ b! a6 k, r
0 Q. B0 z: [1 D4 W* z! o- * _ x' T7 x* Z- p
- ;;; ===== Double byte character handling functions =====
0 d4 G3 v( ]- ?( d1 X
) b p6 P5 y: ?3 W7 Q0 U- (defun is_lead_byte(code)0 X8 s3 J2 q5 T- c. k% Z% Q+ c
- (setq asia_cd (getvar "dwgcodepage"))0 k7 n% |, m Z
- (cond0 N$ Q M9 g2 i. ?+ G) d2 b" o
- ( (or (= asia_cd "dos932")
! J; ~$ r, f# j% ^; I, C1 y - (= asia_cd "ANSI_932")' ]: m# T2 G7 r$ _# D
- )$ N6 F4 _" y3 h- o, r. E5 A& r
- (or (and (<= 129 code) (<= code 159))
1 i1 P+ l6 d( x7 F! g - (and (<= 224 code) (<= code 252))
; W6 \& I t$ F8 z! b - )
: K$ G) x" _& A- i - )
* L- L' ~# J( b% Q A$ G1 z - ( (or (= asia_cd "big5")& w- z# w+ m# B; d& j
- (= asia_cd "ANSI_950")7 J Z1 X( d; J A
- )( d" ]( K) M, Z/ j
- (and (<= 129 code) (<= code 254))/ _. }. P6 C0 {: V- Z9 W- ~' t
- )
$ v& i6 A5 B m- b9 I' {$ R8 j - ( (or (= asia_cd "gb2312")$ N4 a5 V5 ^+ g. `
- (= asia_cd "ANSI_936")
# h4 r, a1 u" W' \; m- R - )
* h# N2 [ w+ G+ w( a - (and (<= 161 code) (<= code 254)), w, Z0 _' J, }$ \3 Z7 e
- )- I4 @& Y) u$ u# D- |7 q
- ( (or (= asia_cd "johab")* Y, i9 f# @/ D: ^4 V0 x5 O0 ^% N
- (= asia_cd "ANSI_1361")
' T" A# F K/ {5 H' R& N - )
1 q' {$ c1 D* {# c. y: Y% p( U- s; Z - (and (<= 132 code) (<= code 211))
7 M m+ j, D8 a0 ?( ]5 T6 g" n - )
- M) E6 E6 }! m# h% \ - ( (or (= asia_cd "ksc5601")8 |% n D" t! m' Y2 K8 f6 c
- (= asia_cd "ANSI_949")
5 c$ ~; e' F1 z8 {2 k$ ? - )3 t( b" b% `0 i- @
- (and (<= 129 code) (<= code 254))
. Z+ z3 f; l8 J0 V - )9 l3 `3 b& x0 \. Z
- )/ i: z6 S% }) Q, d% M% l5 _: u+ h
- )
) h4 X8 H9 ?* m. S0 w# | - ; G3 T: R! A% q5 ?
- ;;; ====================================================( `. Q+ I: a% D/ I( ~- C
/ q7 E$ v# _5 I0 Z& q- # H, {' I( B, N: ^; s$ H
- ;;;
* b" w( f1 J4 P) _/ t - ;;; FITSTR2LEN
* Z# T5 @; ^; B- o0 p8 R4 p9 f& H$ D - ;;;1 {# ~3 x' w: _# y4 ]( s! o# ?
- ;;; Truncates the given string to the given length. - z6 _$ ]6 ^- ^- M. @
- ;;; This function should be used to fit symbol table names, that4 D o! m. T0 U$ M2 z
- ;;; may turn into \U+ sequences into a given size to be displayed* O6 \) x, C- @+ R. C, `
- ;;; inside a dialog box.
; M1 j& B1 i9 ]/ m" a) e2 u, ]/ u - ;;;0 [' s% x8 ~4 u! b; ]
- ;;; Ex: the following string: . F6 D4 |' D/ e
- ;;;" e) e* F% ?: A) n: s* O7 m
- ;;; "This is a long string that will not fit into a 32 character static text box."
: t5 e" X% i! f. t% I9 V - ;;;
8 b5 r& K* f1 K V& c - ;;; would display as a 32 character long string as follows:( G: `# w; G# `0 B' u2 d I: W, {
- ;;;. b* d$ b0 }0 x. ] ^2 i" u! g+ x% h
- ;;; "This is a long...tatic text box."
- }# J. v; O$ a6 `1 k2 M - ;;;
7 N) W* b8 l. i7 H* _
+ Z* d$ w2 j6 v- |8 f, [- (defun fitstr2len (str1 maxlen)
+ L' [) ]3 L& [" O, t& i3 z
4 E. x" ^0 b3 j9 ^: c8 @- ;;; initialize internals
0 S/ J) X- s+ N, j6 B* Q - (setq tmpstr str1)$ r/ K W5 f4 j9 v3 L
- (setq len (strlen tmpstr))
, ]0 t7 K; A8 d) K5 i9 g - 1 ~( w5 }: X) }3 }$ D4 n J
- (if (> len maxlen)
. ~' h8 \9 S. V# z- u! }# k - (progn
& y1 c; _& l9 q) F0 w - (setq maxlen2 (/ maxlen 2))
9 Y* _9 E; Z4 F - (if (> maxlen (* maxlen2 2))8 s) Z$ M% I% W5 H; A8 h% E
- (setq maxlen2 (- maxlen2 1))
& m0 n3 ~4 E/ x3 }( _6 D - )
5 @2 p/ m/ v+ k& Z, K' Z: \8 O - (if (is_lead_byte (substr tmpstr (- maxlen2 2) 1))0 K4 s% o2 J. C0 q4 g
- (setq tmpstr1 (substr tmpstr 1 (- maxlen2 3)))( ~1 o0 A& v6 d( P. W" g" v
- (setq tmpstr1 (substr tmpstr 1 (- maxlen2 2)))
( `. c2 I& g* x8 i! Z: z - )% ?8 m6 M% h) x" m9 V/ w8 r
- (if (is_lead_byte (substr tmpstr (- len (- maxlen2 1)) 1))
/ D( I* X- G8 T O8 H, t - (setq tmpstr2 (substr tmpstr (- len (- maxlen2 3))))
! \; A7 D$ v1 ` ^ - (setq tmpstr2 (substr tmpstr (- len (- maxlen2 2))))
4 K; X; }: ~. i4 o2 P - )
$ v$ u9 i% G; S7 H- \ - (setq str2 (strcat tmpstr1 "..." tmpstr2)). ^1 _! y% A* c! @5 p6 y$ _# `
- ) ;;; progn
" p3 I2 B$ K5 U8 s4 D5 [' B a - (setq str2 (strcat tmpstr))
9 l. F3 j# O. H' \+ d& q - ) ;;; if/ P! j/ ~% z. E3 g c9 L
- ) ;;; defun
v; V/ p8 s6 I r& b$ c5 n - ' K" f! v8 n! \
* m5 P6 Z2 F) H% Z" h& U- ;;;5 z" \5 I: \, Y' z! H
- ;;; If the first object in a selection set has an attached URL/ ^8 z, k1 B5 C; T4 ^4 {7 O% r: A
- ;;; Then launch browser and point to the URL.
/ E5 {: i! T, Z" h - ;;; Called by the Grips Cursor Menu$ \% L1 E7 \; Z O9 ~* Q V9 v& N( P
- ;;;$ T8 @7 t. |& H, s7 V4 ~
- ) z1 t; D/ L0 k& [. ?. b
- (defun C:gotourl ( / ssurl url i)' T# T( m C# G
- (setq m:err *error* *error* *merrmsg* i 0)2 J+ v' k) h+ R5 T# s& `0 b
; r# _# V5 M1 e: s- ; if some objects are not already pickfirst selected, 9 @5 f- q2 W! o) w% I5 z
- ; then allow objects to be selected
5 J+ O# ~$ n/ z+ f4 o+ Q% ^; w1 J' n w. S
) V% `1 I/ ?! i& ]- H( y- (if (not (setq ssurl (ssget "_I")))" M: v' i/ |) e: e: s/ F
- (setq ssurl (ssget)); ^ J( O3 s+ p" ^
- )
# O( k) n# h& i, e, B - / n( p+ p5 D+ K9 K5 v! y
- ; if geturl LISP command not found then load arx application! J& b: m+ ?0 X
- B/ O' g) Q% D/ ]3 N- (if (/= (type geturl) 'EXRXSUBR)
. B! a1 z* O3 i3 q Q - (arxload "dwfout")
! H7 ^' { f+ H. ~0 W - )/ n3 V' j6 W8 p( ^8 q k. f. _
- : I: O- ]) B1 |; I/ q
- ; Search list for first object with an URL1 i ~) w9 v* B9 Q) s
- (while (and (= url nil) (< i (sslength ssurl)))
I& g$ B5 t. ^- I+ y& a - (setq url (geturl (ssname ssurl i))& O- ^5 I3 s- |9 ~ U( V Y
- i (1+ i))
$ h4 T3 R& I' \" f9 ~* p - )$ J p4 O$ [4 a4 Q0 X
+ M: ?# n, u w- N$ g O: C; S3 a, S- ; If an URL has be found, open browser and point to URL
# U0 W3 J. C) E$ g - (if (= url nil)/ d) W6 V/ y4 p+ a4 H
- (alert "No Universal Resource Locator associated with the object.")
" n5 k5 u% r8 U6 F9 I* I* x - (command "_.browser" url)
" y) u' z; S! Q - )
; i1 R5 T8 o8 u9 l7 K" N - ) Z; [7 x I( p
- (setq *error* m:err m:err nil)8 N \- N$ X1 G" \! q
- (princ)- c* s; m4 H9 h
- 9 c7 O4 z& m T! }
- )
# \3 J9 G( S4 l7 {) B1 z/ R$ f
( m% ?( J7 u ]1 T# k8 _+ r- ;; Used by the import dialog to silently load a 3ds file
# I# U7 y4 D& L& F - (defun import3ds (filename / filedia_old render)" |! W7 m8 R; z# R8 Q5 S
- ;; Load Render if not loaded6 h6 d. Y6 n1 E0 b U. U3 ^
- (setq render (findfile "acRender.arx"))
; b0 k4 u) C. I9 h# n - (if render
0 p" l6 j1 M; l, [- v - (verify_arxapp_loaded render)
, @, L; z( Y8 t& b, S/ e - (quit)7 g* ~" k9 c5 C( b5 w1 W) S
- )
8 x% `% g8 r6 o9 N! b& t
. g3 y% V. f0 [- ;; Save current filedia & cmdecho setting.0 Q2 Y6 K# f, o$ O' J
- (setq filedia-save (getvar "FILEDIA"))
% _6 r4 {, N+ \4 N: e - (setq cmdecho-save (getvar "CMDECHO"))9 x7 J: A) l, Y- [ y$ o( w& o1 m
- (setvar "FILEDIA" 0)
! }5 g1 L" l3 l# e - (setvar "CMDECHO" 0)
* _& R+ V3 e, X - 6 N; i* b9 G; I- P, |0 ?0 n( ?) N( w s
- ;; Call 3DSIN and pass in filename.
) ]7 H) X3 h) E - (c:3dsin 1 filename)1 ^$ z! }' j0 w! J, B. x* f K
- ! l9 r+ v( r3 v7 e6 O
- ;; Reset filedia & cmdecho6 M: S; i& d0 O( M
- (setvar "FILEDIA" filedia-save)- s+ @1 b1 z' F% D! z7 T" u
- (setvar "CMDECHO" cmdecho-save)4 d# E- ^3 [$ B! C6 {% l
- (princ)$ X" |$ }5 S# d2 b
- ). t z/ W# v* L0 F
- , y7 D( q: A1 l" t! I3 ^% E. {* a# i
; p: V% a1 E! M' s5 t$ f- ;;;=== Menu Functions ======================================; u* V6 u/ P+ F1 o. _9 u a
- ; U; d; w7 V& g5 }# _5 B( P
- (defun ai_rootmenus ()
$ @0 D1 a+ ?( Z0 @, _- T3 t+ E) h - (setq T_MENU 0)
; [$ V5 j3 p% U- m6 [ - (menucmd "S=S")
. m E. h1 \. b5 y- E - (menucmd "S=ACAD.S")0 X8 q9 B) K2 {" O7 M3 O. M
- (princ)
: u' w8 ^7 s. L; H8 l) v - )
" Y# S5 U9 N$ n" W1 Q
1 m4 P B& f; Z0 y2 h; R2 F1 s- (defun c:ai_fms ( / fmsa fmsb)
?" X/ c3 F) i$ X - (setq m:err *error* *error* *merr*)9 N& s7 k( D* E c! @$ }
- (ai_undo_push)9 x7 ]0 z8 D+ s
- (if (getvar "TILEMODE") (setvar "TILEMODE" 0))4 O/ g" p2 K- S5 t& t& [$ n
- (setq fmsa (vports) fmsb (nth 0 fmsa))
) H# n2 q/ x2 ?- y2 J- z k. F - (if (member 1 fmsb)
# N% H, U( r1 ?, | - (if (> (length fmsa) 1)0 e) R3 N2 @, D* n+ X
- (command "_.mspace")
% d7 v( Y" S( s - (progn# m1 h$ }* i& ]6 Q5 H2 w9 p
- (ai_sysvar '("cmdecho" . 1))
2 a+ O- R6 \ G: W1 m/ L - (command "_.mview")
' M4 i1 w* n8 N8 i+ L) x3 e - (while (eq 1 (logand 1 (getvar "CMDACTIVE")))
( ~5 i1 r1 ^3 c6 y" H9 A. ?0 l - (command pause)
) i, P' [( ~4 z7 S& v1 N; c - )
5 r) a+ `3 p2 A# W4 \/ v3 \% `# i$ a - (ai_sysvar NIL)
+ I3 g) b+ h: G9 ]+ b. a: ]: T - (command "_.mspace")
7 _- w# n8 c( |, C - )
/ l; C$ [; t) n - )9 P& i! n/ c8 o- Y- _
- ): @; F3 f) J" V, A$ G* n
- (ai_undo_pop)
, B \0 B/ {; _9 c4 r) Q - (setq *error* m:err m:err nil)
7 k4 W) V p {! R0 k - (princ)9 U- I4 Z! ~: W+ V: c" b" B
- )
/ a# o' L$ U/ e% b) l. u4 d# Y - 0 f$ |9 W: s" @; @9 J7 n* p
- (defun ai_onoff (var)% B( k7 c( z+ N1 {3 y, }
- (setvar var (abs (1- (getvar var))))
* w7 V- N5 W. ^- n; z/ V7 A - (princ)+ n7 { d7 V; c. j M
- )8 J3 @3 ]+ R3 Z$ I) }
9 M' o* H% ?6 s# t2 v. J2 h- ;;; go to paper space1 v& @2 H! q4 j7 @4 q
- (defun c:ai_pspace ()
_" v9 ?' Y$ a; } - (ai_undo_push)
& @' X/ U4 W7 i1 v2 X' }5 y - (if (/= 0 (getvar "tilemode"))
# W9 ^0 I/ c7 Q5 V' [ R, J - (command "_.tilemode" 0)
8 p+ i. h9 K0 ?5 ~! B - )
# U) n. s7 T4 w, v: E - (if (/= 1 (getvar "cvport"))
" e8 |" c6 D" X' l% B - (command "_.pspace")3 _ F- V9 h3 ~( Y( C. ~$ N" O8 z/ I
- )1 u! m/ q) v2 \/ G2 B0 f/ R7 ^8 ^! j) Z1 e
- (ai_undo_pop)& I: w0 g6 `* ], W2 ~
- (princ)4 ` q' O" H+ g$ O4 ^1 F! h
- )
% u N" [* g8 @* N( @! l5 F
, I4 r# _' B0 Z. p/ T. x- ;;; go to tilemode 1
}4 h9 {1 `( j- E7 b6 \9 B - (defun c:ai_tilemode1 ()
3 K% |" h6 ?7 c - (ai_undo_push)
: Z" G/ V6 K6 Z4 S - (if (/= 1 (getvar "tilemode"))& W* r, [6 e ~: d4 n1 h7 E q
- (command "_.tilemode" 1)9 H& C1 e7 h" C
- )
! i, A% i! j$ G# C8 M* Z$ r g - (ai_undo_pop)# D0 K, `* T a3 \: |
- (princ)4 b) Y6 l6 T2 P8 }8 g( W
- )
% F' w8 f" W0 l! c - . R( b% F8 Q6 u" D1 S6 |
- ;;; Pop menu Draw/ Dim/ Align Text/ Centered$ a& |- C6 H& Z. a; n# l
- ;;; Toolbar Dimensions/ Align Text/ Centered
% ?! ?, W0 D5 Y; q: h7 s7 M o - + t8 X, m% d: L
- (defun ai_dim_cen (/ ai_sysvar ai_dim_ss)
. s# N% k+ e4 b+ R - (setq ai_sysvar (getvar "cmdecho"))3 ^; o. E$ ` U: X
- (setvar "cmdecho" 0)
. s3 {( c: r: L N1 L+ n8 L6 L - (cond& r! T* s% Y3 X2 |4 \# N5 J
- ((setq ai_dim_ss (ssget "_P" '((0 . "DIMENSION"))))( U6 j( G$ c2 g5 z6 \
- (command "_.dimoverride" "_dimjust" 0 "" ai_dim_ss ""
0 ~3 _$ Q: f% m( V% ?7 | - "_.dimtedit" ai_dim_ss "_h"), c/ G- z4 L5 w
- )
. f- c& }& T* j, z( I) b - (T nil)
4 N3 m9 ]: E* L# Z$ y8 Y+ P& P% V9 Q H" t - )9 D4 b4 M' h! E. E v; w" S
- (setvar "cmdecho" ai_sysvar)( U# z4 Y4 t0 ~1 K+ g0 v
- (princ)6 @( M8 U( R+ U5 Z+ G
- ); a. i! U8 h3 J
- : F+ Y, w3 m7 m: E4 {& O3 D
- ;;; Shortcut menu for Dimension Text Above
6 |* d6 j/ {: {
: O+ b: H" c7 y; T- (defun c:ai_dim_textabove (/ ss)
; d. @1 s- M& Y R - (ai_sysvar '("cmdecho" . 0))
' \9 p! w+ o, x; ^$ R+ s - (if (setq ss (ssget "_I"))4 A# V" |! Q' H" J
- (command "_.dimoverride" "_dimtad" 3 "" ss "")" o/ l3 J; Z& B4 n, W$ ?' D
- (if (setq ss (ssget))
+ p9 i: Y- {4 }* j) H' S; Q/ W. |( U - (command "_.dimoverride" "_dimtad" 3 "" ss "") 0 D, O1 p' f3 y% q6 l
- )
# L6 J" j* a2 K" C7 G& a% j - )- M f% E1 b" F! P j: g; y
- (ai_sysvar NIL)" \ h# l. @" x+ X) y! g+ t
- (princ)
& P) t; x. M9 j6 h, Z1 j7 J, [ - ): k; y2 ?2 z6 ~; g) J' a4 ]
- 6 b: h+ G; k j6 |" b
- ;;; Shortcut menu for Dimension Text Center , y5 W; ~ @& L, w `# W
- 2 B X5 S* Y7 d& L9 q& i& N+ e
- (defun c:ai_dim_textcenter (/ ss)
8 O/ l6 P$ W, T% N$ g2 @ - (ai_sysvar '("cmdecho" . 0))# R* `. ^! l$ M
- (if (setq ss (ssget "_I"))
0 {/ i" J \6 v# K, |* U0 y - (command "_.dimoverride" "_dimtad" 0 "" ss ""): X. h* ]& D& f" I
- (if (setq ss (ssget))% ?% `, C' z1 e( L5 k, s' h# t3 O
- (command "_.dimoverride" "_dimtad" 0 "" ss "") % {4 |* Q& Q& m) A
- )
& u" K" g/ N+ B, r - )1 r: R) q" t$ Q
- (ai_sysvar NIL)
8 X, }0 Q/ T9 s! ?+ d5 [# c, e - (princ)
- y( [2 l/ _' j) Y6 M) E5 J, [ - )" ? [0 H2 ]# L! Y
7 H* N! A5 A$ S7 [9 n" M- ;;; Shortcut menu for Dimension Text Home
9 x3 b$ g/ g, U
' A" c* {: K- f: z8 m+ s7 ~- (defun c:ai_dim_texthome (/ ss)2 P9 b8 K2 p+ N6 U
- (ai_sysvar '("cmdecho" . 0))
6 o- J1 P$ I3 Z; g8 l+ n2 M' F" }; i - (if (setq ss (ssget "_I"))9 G2 X# Y9 x6 i. m& l& g, R9 N
- (command "_.dimedit" "_h")
$ R0 T0 f) @! ?& ^ - (if (setq ss (ssget))1 o& p* _. @7 z- z' O
- (command "_.dimedit" "_h" ss)! j6 A$ M d% ]5 _- R) s' |8 f
- )% p w) U: t& `: a! m3 X
- )
& G. q1 ^& a1 M; Y( E' E - (ai_sysvar NIL)3 V: ]4 G# O/ p! [2 X: Z
- (princ)
% M3 `& C5 p% ~5 |9 e8 w5 y - )! x2 Z2 B$ @& G" q l. N! m
- " n% \' r! `. D
6 v* S+ C+ f( `; a+ O- ;;; Screen menu item for CIRCLE TaTaTan option.' R- k5 p! i" W8 Q; ]5 u
- ;;; first, get points on entities
3 b) t3 S }' G1 e - (defun ai_circtanstart()! V% q/ {- G1 L
- (setq m:err *error* *error* *merr*)
/ b) N- }: Y2 v8 ~/ @ - (ai_sysvar 0 E g# u" l% `+ Z% v& F3 @
- (list '("cmdecho" . 0)* s8 T. A: c& d
- ;; make sure _tan pick for CIRCLE gets same entity/ J5 ^1 r" Z, F. Z, z7 @
- (cons "aperture" (getvar "pickbox")); r4 o3 ]5 z8 w7 n$ z6 f
- )
: H9 A4 @. A) }9 K! R, L) ?2 o+ c - )
1 R f& \2 F7 M8 T+ o/ d - ;; prompts are the same as CIRCLE/TTR command option
* ~' s# o* p) I; d. k* V) k - (setq pt1 (ai_entsnap "\nEnter Tangent spec: " nil))
( M" z2 D& | v0 ] - (setq pt2 (ai_entsnap "\nEnter second Tangent spec: " nil))
9 B3 m* j8 f5 u8 V4 q - (setq pt3 (ai_entsnap "\nEnter third Tangent spec: " nil))/ @. F' O( C. L+ V+ N" g% [
- )
' N5 d% f2 N- X, {/ T, N ^/ O/ Q/ w - ;;; Command-line version
$ g1 `0 i- K2 E$ U5 x7 |+ k3 ^ - (defun c:ai_circtan (/ pt1 pt2 pt3)5 H' [2 J: s4 u7 g, N
- (ai_circtanstart)3 ^$ ^) `) r1 U- G) H
+ G1 R7 r2 K4 T4 }0 ?( G$ e& ^& L- (ai_sysvar '("osmode" . 256))5 k0 g, \. W$ v
- (command "_.circle" "_3p" "_tan" pt1 "_tan" pt2 "_tan" pt3)
' z3 l1 u1 q' W! T9 k7 ]7 N -
3 T: \1 a: O+ n% } - (ai_sysvar nil)
* {0 k$ G: Z* o: s Z# T - (setq *error* m:err m:err nil)0 s+ a- }3 x8 m
- (princ) s; n$ u+ _% K* |
- ); A- i( ?/ i8 d
- ;;; Use this if CMDNAMES == CIRCLE5 X9 {1 C, E, J ?
- (defun ai_circtan (/ pt1 pt2 pt3)* B) j4 i, r" O, J
- (ai_circtanstart)
0 D) u$ u& E) I+ g - 9 o) Q; v* _' l2 t! N9 Q+ j
- (ai_sysvar '("osmode" . 256))) L: d7 r( [6 K1 C% s
- (command "_3p" pt1 pt2 pt3)$ w6 s# n$ }: R7 u; H4 \1 V* x
- 4 g- p8 {% q. s8 ^, G9 D) F5 ?- X( t
- (ai_sysvar nil)
, a6 `2 n) j( w6 r, G - (setq *error* m:err m:err nil)+ p5 f0 H$ b* l/ _' u% J2 O
- (princ)
: H! `) [7 R/ x2 `7 P - )
. \3 s- o' E k- s! i, P0 O. j
8 h* N. R& N2 \ O( y0 k+ N- ' c" c" ?% |- U0 C* ^2 X5 ^
- + X. b. c: L# I# \& c
- ;;; Shortcut menu Deselect All item.
; [ Q" X6 V; {* O - 4 C4 _! K. N" e$ A* H/ t A
- (defun ai_deselect ()1 t0 r9 J# r9 K, x0 ?0 J3 E
- (if (= (getvar "cmdecho") 0) ;start if
: z$ C% K" N. v, h, h+ c- T - (command "_.select" "_r" "_all" "")+ g# f6 u2 P1 W" ^9 }
- (progn ;start progn for cmdecho 1! \ A5 _, l( K- n
- (setvar "cmdecho" 0)$ b" v8 p7 [$ }% b" A5 S
- (command "_.select" "_r" "_all" "")( K7 {) A/ h* H& _& B4 S+ M
- (setvar "cmdecho" 1)
^ o f) S6 N9 c+ p - ) ;end progn for cmdecho 1
. Z" I4 J$ |) l8 a - ) ;end if( t3 M& y# b* j. O
- (terpri)0 `/ R2 ?" V# A' Y+ C/ n; b
- (prompt "Everything has been deselected")5 | s8 B# S# e. E& N" n8 r, K
- (princ)
/ j7 Q. U7 ]. i9 `& Q" T - )& i7 \, j$ v e; R0 J
- + I& N3 _1 |% o9 K* ^: V$ w
- ;;; Command version of ai_deselect to be called from the CUI
% _4 }2 ^0 Z3 a N; o' D - ;;; so it gets properly recorded by the Action Recorder# J: t/ M1 N Y! F, _6 M) v
- ;;;
9 G- O& l1 z4 F R1 Q - (defun c:ai_deselect ()& Y9 V7 ]. R! ~2 t
- (ai_deselect)
! {& c: L8 ^2 s# d! D - (princ)
% X2 V5 {( q# y8 [9 G4 J - )% P0 y. u% S7 L' D# t
- / A+ ~2 r) t5 d
- ;;;! B4 v! l' ?0 U. X
- ;;; Enable Draworder to be called from a menu0 `: E, v Z" Z
- ;;; Checks for Pickfirst selected objects, l. W; S; f- a S; S
- ;;;. a. L* q: U# T2 E# {6 c
4 x/ i% }4 B( Z3 k4 P( o- O- (defun ai_draworder (option / ss )4 {. ? o/ _* |1 X3 z) v
! k2 \: o) f8 k6 Z2 l7 g- (setq m:err *error* *error* *merr*) _+ w% T+ C$ A. `
- (ai_sysvar '("cmdecho" . 0))2 T4 c8 v- J4 T0 b; d) x+ o
- / ^2 A% D- }0 ~% y, ~
- (if (setq ss (ssget "_I"))
$ M8 [ m4 h$ I: ] [ - (command "_.draworder" option)
& H3 X v& L$ ]7 ~ - (if (setq ss (ssget))
+ L$ ] ~0 Z* Q r - (command "_.draworder" ss "" option)+ t: P1 `: f& W' I R) `
- )3 v8 |- m! L: q5 ~% v
- ); [7 J- m2 ?" h+ H
- (ai_sysvar NIL)% M2 m Q+ d5 x
- (setq *error* m:err m:err nil): N, f# {& n6 S7 x% u% h
- | K) n3 c* U1 U& t8 C- (princ)
% L0 k' r% S) h ]+ i0 W; H - )
/ t1 H" ]4 A/ z5 y$ R
: @; z+ d2 ^4 w1 [1 c& t- ;;; Command version of ai_draworder to be called from the CUI
/ Z6 ~: E9 E4 {) W - ;;; so it gets properly recorded by the Action Recorder
1 a) S- L: ?- @3 C - ;;;- p) c5 {: N. D
- (defun c:ai_draworder ()
, C7 {* d/ U& u6 W - (initget "Above Under Front Back")
( M% a# K2 x6 X' h, E' d. c5 c; r0 l - (ai_draworder (strcat "_" (getkword)))
9 Y, w2 ~9 v N. Q7 x0 k' d - (princ)7 ~4 U$ l7 K. k3 _+ G, y
- )
6 [: e0 g0 H% H" f+ x9 h" P - 1 X% K. E: i' x7 [6 d! G$ T9 F
- (defun c:vlisp ()- b$ t5 J8 J( s* ]& G2 R$ i
- (if (/= nil c:vlide) (c:vlide))! F: Q3 W% G2 H% _6 T
- )
% u$ k, m1 r2 v( p5 L$ ?- t$ @
! ?( B$ C/ c/ d; x O+ ~- `- L- (princ "loaded.")
7 K& I3 I3 \% i) n' \. z) K+ k - 5 c# u- N' `+ i
- ;; Silent load.
2 q* t3 v' N$ o/ } - (princ)( _+ E* t+ I- s# I& B
5 Z' ?$ s( A/ u+ h `6 P& _- ;;;----------------------------------------------------------------------------
- p: ^6 M7 s/ D% B0 r - ;;;
9 T6 f) \, H' P5 i - ;;; DDCHPROP.LSP Version 0.5# o: k& a% P% y4 ^2 U
- ;;;" b4 Y" ^9 `- ]5 y/ x2 K% E6 h
- ;;; Copyright (C) 1991-1993 by Autodesk, Inc.% Y& r; n8 C" n7 j$ @4 @ o
- ;;;" a; e% I. V- r: d, ~- {
- ;;; Permission to use, copy, modify, and distribute this software& F- o6 H" @' `* Y" k5 [
- ;;; for any purpose and without fee is hereby granted, provided2 a" m" }, w- T3 i6 @/ f- r
- ;;; that the above copyright notice appears in all copies and that
5 j! ]& o- C9 S7 d# M) M. z5 Z - ;;; both that copyright notice and this permission notice appear in9 G: T* t8 _$ ~0 o/ ~
- ;;; all supporting documentation.
* V. s" e: E' ~! q' l4 P) } - ;;;4 T4 F% D& ]4 y3 R8 T: Q! N
- ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED" [" `/ |2 U& G; P; d% n
- ;;; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR. D6 g/ s! \! H4 U. F2 ?
- ;;; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.; I3 D; U; S Z/ f
- ;;;; ]$ H) @. p7 T
- ;;; 2 February 1992 N5 g9 }9 m- N$ Z# v( |1 M- m
- ;;;
7 N0 B/ V& a4 w6 s9 E# t, `* ~+ X - ;;;----------------------------------------------------------------------------- S2 E+ {; @" \' V
- ;;; DESCRIPTION
, k. B" {( ?4 ~, N - ;;;----------------------------------------------------------------------------+ q" f" J1 x$ `5 V! A8 V
- ;;; C:DDCHPROP is a dialogue interface for the CHPROP command.0 E0 X g; q- X- J& {. ^% e& ^
- ;;;% x: a" d- z( b3 Z; \, V
- ;;; The command looks similar to DDEMODES. The main dialogue has an image " Z6 R! m; r% u7 p3 @3 l
- ;;; tile, 3 buttons (layer, color, linetype), and an editbox (thickness).
& O0 i' ?* U4 R b* |, w b - ;;; The 3 buttons each launch a sub-dialogue containing a list and edit box.
8 e9 N6 L, ?. p( X - ;;; The dialogues are all defined in the DDCHPROP.DCL file.
: y, N& W3 x5 i+ E - ;;;
" q- e" u* G% K1 m0 M" V+ @9 B m# z - ;;;
! r8 N$ H5 i# S' J2 b6 @1 [6 ? - ;;;----------------------------------------------------------------------------& |4 O% A' }; O6 }9 C
- ;;;----------------------------------------------------------------------------5 @1 V9 X" K8 {% C4 t' p: p
- ;;; Prefixes in command and keyword strings:
0 ]0 T, c5 B! @6 I: Y - ;;; "." specifies the built-in AutoCAD command in case it has been ' a5 ]/ M+ `0 v4 [
- ;;; redefined.# R' ~1 {# x6 G. c. U( X
- ;;; "_" denotes an AutoCAD command or keyword in the native language6 Q2 E, q5 ~3 [ q
- ;;; version, English.
; S8 t: }# l' {( J7 J* f( E& A - ;;;----------------------------------------------------------------------------
) G3 c/ K0 R7 L. x3 d! J* F - ;;;. v( A5 f& D ~1 Y2 Q2 S7 B' K
- ;;;. N5 T0 o5 M) j Y
- ;;; ===========================================================================
( n0 g, \: {. q% L9 w, t( Q) O& a7 D - ;;; ===================== load-time error checking ============================
; V9 N: O: [; t2 Q# {; z - ;;;
+ o+ m0 p8 [: F. w$ _2 G* U - 7 s2 I% ~1 @5 n, d/ D
- (defun ai_abort (app msg)
W7 [& j: k8 |0 t& a) ^. m3 ^7 P2 c - (defun *error* (s)* S! B0 ^- N! C2 G' b
- (if old_error (setq *error* old_error))
! s+ p1 @! U7 A) G - (princ)! n- ~' I4 O; R6 t
- )
% G1 T5 L! Y+ ~/ [" I - (if msg/ F( m1 E' `/ B+ x+ p
- (alert (strcat " Application error: "
1 G# m: n+ G1 P5 ~ {( g - app* F. M! A( S% Z+ |
- " \n\n "
1 }! ]) Y3 P" E* H9 t - msg
5 x* q% O: ]( ^( K" u0 q6 L( H0 B: J - " \n"* L& G/ i X5 F
- )1 C5 f8 Q$ X. z; \( y2 T
- )
! ~' k& r" X* j$ u2 L8 f) N - )
7 a8 |! ?5 }0 b! g& p3 s" F2 t - (exit)
' P8 J: B3 [& x0 ? - )
9 {/ k& o& T" U# x0 C* Z9 a/ x
9 b" x1 b# Y( i4 Y, n3 T- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
4 K$ \6 v7 y- \* g/ { - ;;; and then try to load it.) w0 J1 P+ c2 B8 D( n
- ;;;" }6 X; U% t3 c2 }$ Q0 w
- ;;; If it can't be found or it can't be loaded, then abort the
/ K: e0 L% ^9 h8 L8 P1 b - ;;; loading of this file immediately, preserving the (autoload)- R. v1 `4 {, M! F! j+ G7 l. h; }
- ;;; stub function.
1 ?' y$ ]% X' G, k) r- j - 2 C4 O% Q% W# @8 T% B" L, i
- (cond( H- |9 L$ V: N( u
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
* R! [3 l% h- f2 \ - 3 G' |: h( Y$ w$ y
- ( (not (findfile "ai_utils.lsp")) ; find it8 c5 f& a5 B! Y+ J3 T7 Z, S
- (ai_abort "DDCHPROP"$ M* u" W/ G9 N# o' ` D2 Q
- (strcat "Can't locate file AI_UTILS.LSP."
1 u# j5 F" k! S! b( X+ m- j - "\n Check support directory.")))' w, d; ~! V/ d( v% X/ L
; w& j5 `( k: K. H D( H9 P- ( (eq "failed" (load "ai_utils" "failed")) ; load it" N$ k$ v( K; n- ?" l
- (ai_abort "DDCHPROP" "Can't load file AI_UTILS.LSP"))
6 e# t5 e* J/ I; S - )! z, t$ [7 Y1 x& v, b2 D+ \. Y
- . F6 A, `1 s6 q( j
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
( c. b) q. m y+ G7 F, ~) x - (ai_abort "DDCHPROP" nil) ; a Nil <msg> supresses
- U3 `6 p) i' v9 O% Q) h: [ - ) ; ai_abort's alert box dialog.
1 l! n" x& ?1 X- ]' v) z
( ~4 I; W7 F5 N4 u- ;;; ==================== end load-time operations ===========================3 B9 \3 A5 C8 m9 Y7 k
9 v6 `8 R1 j0 \7 P( l3 k* q- ;;; Initialize program subroutines and variables.
$ \! e1 Y& t( E( M' C! ]. E( L - ) F. z9 R1 f6 t' g+ c
- (defun ddchprop_init ()5 J. I: L8 R) Y% K4 N3 P
( @& R9 m, C0 s5 ^$ M+ W6 ` V/ r- ;;
C5 [2 \. t! u. Y6 n3 T. T - ;; Define buttons and set values in CHPROP dialogue box
7 L+ M8 ~1 ]: R7 S" ?$ _. Q x - ;;
+ e9 H. U+ p# g+ k/ {7 I - (defun call_chp () w: q9 z5 U+ ]9 o. v: y
- (if (not (new_dialog "ch_prop" dcl_id)) (exit))
# @2 z7 u @2 t% E0 q. W - (set_tile "error" "")& B& v7 p s0 A# P3 x0 S) c; r
- ;; Set initial dialogue tile values
+ u. v( X; \% Q, e: L - (set_col_tile)
2 y% o: F% H4 L+ | - (if (= lay-idx nil)
9 y" a* W; n( k9 \3 U- J8 E! ]1 K7 S - (set_tile "t_layer" "Varies")$ K f$ V/ E) j4 p5 c4 I7 J
- (set_tile "t_layer" (nth lay-idx laynmlst)) o* s+ M8 U+ q1 k8 Z1 N
- )
$ b) [" t$ M( L- ^ - (cond ! A) e/ l* e3 ^
- ((= lt-idx nil)
' {# n7 V" c* D - (set_tile "t_ltype" "Varies")7 m, w. z3 Y5 j
- )
& O! R3 C4 O Z - ((= lt-idx 0) ; set tile "By layer & layer linetype"4 u+ H {1 G( w
- (set_tile "t_ltype" (bylayer_lt))$ L# E6 h3 ^0 N5 J
- )$ y# T0 P: F9 q$ b- w/ r
- (T
/ J' x* _9 v" \ j+ d8 m. @ - (set_tile "t_ltype" (nth lt-idx ltnmlst))
, E$ Z3 D& [ J" v - )# ]" M' t8 V/ k' B
- )
" _$ H: Z' P/ b7 `9 p3 f* G - (if (or (= ethickness nil) (= ethickness "Varies"))
' S8 L: { k% C# N - (set_tile "eb_thickness" "Varies")5 X) @/ o B( D% V# c" L
- (set_tile "eb_thickness" (rtos ethickness))
% x( A' g) M: d* q6 q1 q - )" k! Y6 f8 Q$ f7 ^1 W9 N1 }: W9 ~
- ;; Define action for tiles
( D* d8 p, i! ]% z t8 J) k, Z) | - (action_tile "b_color" "(setq ecolor (getcolor))")
% p, O3 t4 B: B2 [, u/ L - (action_tile "show_image" "(setq ecolor (getcolor))")! h4 v9 P0 m5 k' e1 P% z1 p* S
- (action_tile "b_name" "(setq elayer (getlayer))")
' P/ C+ o% b7 C" D2 ] - (action_tile "b_line" "(setq eltype (getltype))")( R- P# E- Y( P7 j2 v, ^
- (action_tile "eb_thickness" "(getthickness $value)")3 S3 f% k! e0 {5 W- X" [
- (action_tile "help" "(acad_helpdlg \"acad.hlp\" \"ddchprop\")")5 r9 y8 Z, \. m9 w; m
- (action_tile "accept" "(test-ok)")
# Z( t' C8 R- V2 {: J! X, M - (if (= (start_dialog) 1)# B* q+ r* X7 j9 N
- (progn
9 a% D+ b, t) H t$ | - (command "_.chprop" ss "")
4 ]" r- s8 m- A0 R: R - (if ecolor
: L( L: @) t2 \5 d - (progn
) w& s2 r, q. O. ` - (if (= 0 ecolor ) (setq ecolor "BYBLOCK"))4 `5 _. k7 w) p/ f2 c7 e
- (if (= 256 ecolor ) (setq ecolor "BYLAYER"))
; F C8 N3 B; o - (command "_c" ecolor)1 q r/ a# E2 n3 _1 j5 Q
- )
4 O. S2 G+ x1 b3 u - ), A( {/ @& R! ~# ]% K: [
- (if (and (/= eltype "Varies") lt-idx)
& ? b/ z% j" s9 P* `" u - (command "_lt" eltype)
9 i( Z/ D- @5 y6 q% @$ { - )) }! u8 x: n7 d; g
- (if (and (/= elayer "Varies") lay-idx)6 P8 t3 m% ~+ \6 r% }
- (command "_la" elayer)
. {' r9 n6 F. b+ W% O: f: N - )
1 F k2 M; R3 K+ _ - (if (and (/= ethickness "Varies") ethickness)
5 l' U! o. h0 Q |0 N: R l4 O - (command "_t" ethickness)
$ ?9 h# B# S2 |# w2 R! T - )
" T. }4 {+ a% ?$ O$ ?- G0 t - (command "")
6 E; i" h# X, F& k) \- T" x6 I! L - ): ?3 `: z2 b$ R; i
- (princ "\nProperties unchanged")
' Z+ G) [& l2 J0 u - )4 I: a/ y% h) `6 Y- ?5 ~4 a
- (princ)
: v7 n$ _; ~+ u - )# b; S* q3 I% h
- ;;
. u$ b" M. G6 D% X0 E. r - ;; Function to set the Color text tile and swab to the current color value.
# J& k, u. O7 f! j0 I ~ - ;;/ g6 c( O: m2 l' N8 P
- (defun set_col_tile()1 C/ O" a; ^5 b0 E4 Q9 n
- (cond
5 ]8 ?; \9 a: ^6 p. L' E - ((= ecolor nil)7 G/ o, m" r0 F9 r/ i* p! F
- (set_tile "t_color" "Varies")0 E8 w9 T/ D8 Z3 e
- (col_tile "show_image" 0 nil)
4 M: ?! T; ?& k1 O6 ~4 j$ R# A* b - )1 U* k. S8 c0 X; t% x# J% Q
- ((= ecolor 0)7 z! q" m0 q$ a/ I4 E' W
- (set_tile "t_color" "BYBLOCK")' G1 e; ?0 \0 H
- (col_tile "show_image" 0 nil)+ F+ R5 d" }- H- r9 w2 X6 N
- )8 h) L+ j5 m. s2 I# }( A
- ((= ecolor 1)' ~: U$ Q n4 k$ U; v6 J" f" P
- (set_tile "t_color" "1 red"). Z2 L5 f5 g: a6 R* s
- (col_tile "show_image" 1 nil), Q/ G B5 T9 m
- )" V4 D6 n1 e7 [: W& C& U
- ((= ecolor 2)
; C* I0 |" I1 k9 A& }* \ - (set_tile "t_color" "2 yellow")- s# C5 \- w' f6 ~) i
- (col_tile "show_image" 2 nil)
7 C7 K8 t" Z3 I - ), G9 m. _$ P4 y; H
- ((= ecolor 3)& p9 ?& |( x6 L8 H" Q& T
- (set_tile "t_color" "3 green")
6 U. e$ o1 I" _7 A - (col_tile "show_image" 3 nil)
( k. A# c3 g% j {% a9 f" R - )+ O3 q- C: u" W( [$ G# v$ e; i6 {
- ((= ecolor 4)* v; i- C+ E+ x0 `
- (set_tile "t_color" "4 cyan")
! V( R, c: K5 q% C& C# D3 z - (col_tile "show_image" 4 nil)
0 v3 ?3 |$ ?* A$ n1 ]; U - )3 h( t6 c7 ?# B
- ((= ecolor 5)
1 q. @& l' _# B) W1 G8 C. G8 {. D - (set_tile "t_color" "5 blue")
0 g. O9 f' w7 _5 N - (col_tile "show_image" 5 nil)
* M# Y7 E: S* f) |0 f - )
4 n0 P G8 J& ^ - ((= ecolor 6)" T# i4 A! V% O+ \
- (set_tile "t_color" "6 magenta")
0 o5 Y: Q+ g+ t. d5 O. ] - (col_tile "show_image" 6 nil)
. i: w5 E# X0 q, h! | l8 j6 [: i# } - )4 _% K; Z" c b
- ((= ecolor 7)
. v+ f1 x3 @ [5 p$ H - (set_tile "t_color" "7 white")
3 _; `9 n. h, k4 R0 f - (col_tile "show_image" 7 nil)
2 u! y- p" r, g - )! D- c# v8 ^2 _) T
- ;; If the color is "BYLAYER", then set the tile to
7 |8 ^/ A5 e$ r( @. O - ;; show it's set By layer, but also indicate the
) p* m2 Q' j5 S - ;; color of the layer - i.e. By layer (red)
( S+ D' I' c( H6 ? - ((= ecolor 256)
3 W+ I2 I" r7 f- }3 f/ i' G - (set_tile "t_color" (bylayer_col))
6 W& i9 g0 ]: k( R" M/ x" N - (col_tile "show_image" cn nil)- S6 v. T3 F! X/ u2 O3 V% G
- )
0 n0 M6 r7 M) x! `2 k - (T
. j; O6 _- j) r8 J% y( j' n - (set_tile "t_color" (itoa ecolor))" o! q. I8 v7 M
- (col_tile "show_image" ecolor nil)
& v" B% K( ^) o$ l+ L - )
% v" ^& f- \8 K; \3 H1 } - )* P) B$ q# N) U" Q
- )
) X' U$ `) |/ Q: |9 | - ;;
D" B* C8 s# r/ l' H) f - ;; Function to put up the standard color dialogue.+ y3 R2 @6 a2 p& j2 D( q- `5 u0 C. b' f" h
- ;;
8 q% f; b6 Y X. x1 X* ?+ G - (defun getcolor(/ col_def lay_clr temp_color)9 i( k- T) H$ M8 F- Q; D1 O0 ~
- ;; col_def is the default color used when rq_color is called. If ecolor ]; c& k( V6 q* h% c3 H& o
- ;; is nil (varies) then set it to 1, else use the value of ecolor.0 q6 V& p2 {; ]0 k O& \
- (if ecolor; ?# D3 ^. {9 l$ U
- (setq col_def ecolor)7 T) m8 H6 A9 I9 Q. K
- (setq col_def 1)! V8 X7 p, J$ n7 ?/ k
- )
! i. j/ M! n2 a- | - 9 ~* W6 |% f: y+ F
- ;; If we're working with a single layer, get its color/ [& ~. r: j# ?. f K$ @
- ;; for use in the color swatch if the user selects color BYLAYER.
% Q$ f' _; N' v: ]: O1 _7 @ - (if (/= elayer "Varies")/ s' K9 H+ G# Z; l: }6 J
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
{! f5 T5 s# K2 h8 Q - (setq lay_clr 0)& c8 y* O8 m' q9 z4 w2 ?3 G
- )
9 M) z, d- H/ ] - (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
6 L3 ~( y# Q$ \! D2 f - (progn
5 i U# q( _, h# _5 B9 R2 R - (setq ecolor temp_color)
( `2 w. U8 f8 | - (set_col_tile)
+ w3 p& y" U a4 m% p; p& e$ k( } - ecolor
! B. R" Z+ t2 D& O - )" b' L9 p7 P# g1 O8 g5 J5 p3 ^# ~
- ecolor
; ~/ a$ i8 F! g( Q7 V4 Y+ s: Y, w - )
+ h. p9 r7 R" W3 w1 O7 J- w6 ] - )
6 V8 X9 t& J$ E. l# A% m" w - ;;
( `. {1 Y" B+ v# k9 Y - ;; This function pops a dialogue box consisting of a list box, image tile,
; w4 N$ E8 q: T4 _4 w - ;; and edit box to allow the user to select or type a linetype. It returns
) {, b7 y' U) C. C: k - ;; the linetype selected.
# N9 E3 M$ c! { - ;; K* {0 w4 a8 C: K2 g# `; n l
- (defun getltype (/ old-idx ltname)" E' ^1 w0 P, \4 M2 m
- ;; Initialize a dialogue from dialogue file: T, `# }3 \. N. ]
- (if (not (new_dialog "setltype" dcl_id)) (exit)). ~& d4 K+ R& d9 o) J$ g7 z0 a
- (start_list "list_lt")
0 z7 V! S% r5 t, f - (mapcar 'add_list ltnmlst) ; initialize list box) r1 j) X* I' v- O5 c! n+ T) A6 C2 A
- (end_list)
1 Y) L: b& R) H) `8 H9 S* s - (setq old-idx lt-idx)
: F `- R" J; W6 J) ^) ` - ;; Show initial ltype in image tile, list box, and edit box6 Z- t* [- v$ S9 m3 M4 y p
- (if (/= lt-idx nil)
* a6 R, g) s8 B+ O7 F2 r4 ?! n/ N - (ltlist_act (itoa lt-idx))4 K6 u+ D! I }2 S6 d2 Y- O9 F
- (progn
) E4 e {) _% l$ j. P7 u" J. g$ \, G - (set_tile "edit_lt" "Varies"); V+ O. F% v/ s$ F
- (col_tile "show_image" 0 nil)
" A y4 P3 l+ R( f4 K! X" w - )
9 d! X, W# T9 y0 n3 d$ H, ~/ ` - )
1 G6 Z3 X& Q( ?6 E; r6 B4 X - (action_tile "list_lt" "(ltlist_act $value)")' a5 \* F0 _: L3 m3 |
- (action_tile "edit_lt" "(ltedit_act $value)")
8 `% i. B' u% e - (action_tile "accept" "(test-ok)")! `- P, C H, Q9 q! ~! k, h
- (action_tile "cancel" "(reset-lt)")4 \0 B8 V3 z" i$ N
- (if (= (start_dialog) 1) ; User pressed OK
% R# ~+ ^4 \, U- q2 H0 N - (cond
' t! ?, U+ s; @7 D; i: [ - ((= lt-idx nil)! m' d$ R; Y! W! ^. s' _
- (set_tile "t_ltype" "Varies")) l# E2 E# w8 z( C' m
- "Varies"
# ^9 R; G9 x6 K" ?& |, {/ t - )7 [: l0 S2 C: }2 E. h5 L& S* P j! y
- ((= lt-idx 0)
9 d9 B/ r/ M+ W4 m# ?, I4 V% t - (set_tile "t_ltype" (bylayer_lt))
- N- b9 I) ?. F' d5 ^ - "BYLAYER"0 O# F2 Y% e4 {6 P) W
- )
0 n. e6 m& [ a; r# S$ ` - ((= lt-idx 1)
9 f1 V5 r+ W. W# ]' n - (set_tile "t_ltype" "BYBLOCK")/ j z+ U+ [6 h* o, g ]6 W! f
- "BYBLOCK"9 E- q9 y' E4 R5 i$ n
- )
F- R% h% ~6 `% k* y A$ J' j+ U d - (T * N' N, M% Y. [9 S6 Y
- (set_tile "t_ltype" ltname) 8 W1 a+ }' V8 \8 `" d
- ltname* F) `/ T/ a4 y9 L
- )
: {" H: a7 j2 P' h - )1 r8 G/ z# N. O/ _' S1 M' A, T; z: I
- eltype5 o+ Q# e" {1 A* f( n
- )1 g0 y9 s4 Y8 K3 Z; R' q* Z( {5 t
- )
3 Q7 v( m0 B b) U: T5 l1 G% C - ;;# Y$ B2 c! i% c p- _
- ;; Edit box entries end up here
7 v- m- a3 B( c5 @6 R: l. p' ?, U- a; H# { - ;;
_ A; a' `. t+ N5 ` - (defun ltedit_act (ltvalue)
2 O1 d$ F6 ^, Z1 j" p - ;; If linetype name,is valid, then clear error string,
# O$ a x& H, I1 I" t - ;; call ltlist_act function, and change focus to list box.: J/ ^7 R5 N9 y( V( p$ {* v
- ;; Else print error message.
1 s! I' [2 v' j/ u& C - (setq ltvalue (strcase ltvalue))
# i! N& ^$ W: H4 l - (if (or (= ltvalue "BYLAYER") (= ltvalue "BY LAYER"))
, H. a3 ?6 S1 w& t9 M - (setq ltvalue "BYLAYER")
9 K+ q0 G6 k1 P8 B& f1 \ - )
$ B: q$ J/ e, E- q. ` - (if (or (= ltvalue "BYBLOCK") (= ltvalue "BY BLOCK"))% C9 N/ |( {. L) x! H
- (setq ltvalue "BYBLOCK") d) G6 R, R) g3 P, o' L
- ): y: {. I, T7 ?' n) y1 N4 Q/ X
- (if (setq lt-idx (getindex ltvalue ltnmlst))
0 q$ K" L; |, V T# z - (progn) d0 d# A/ k/ o' ~; O
- (set_tile "error" "")9 f, j! r5 W# X6 B
- (ltlist_act (itoa lt-idx))
6 U; p) ?/ o$ \0 o: Y5 B+ a; G, w - (mode_tile "list_lt" 2)% c& o, [5 H- r( ~1 o# S$ I7 U y1 X
- )
6 z9 o/ D8 e0 j0 T9 o. _( D - (progn1 _4 S- z; T: T3 T
- (if (/= ltvalue "VARIES") d8 X! L x+ U6 C% I P4 |! N3 P
- (set_tile "error" "Invalid linetype.")
% r/ M# K# n' X - )& K$ ?, Q8 B1 w
- (setq lt-idx old-idx)2 \9 u/ z+ O4 x( F' s' _2 G- {) {" a
- )
6 p- p5 {% N2 s2 D Q% V - )
- H" b$ _& ?& ` - )' B9 w* W y2 J6 o
- ;;
3 M1 _6 b$ U! Y3 Q4 C) @ - ;; List selections end up here5 }; j7 t8 ? i! A- ?1 B* ~
- ;;8 B7 U. g/ D) G; W
- (defun ltlist_act (index / dashdata)0 b; q; j! Y# U( y2 n
- ;; Update the list box, edit box, and color tile
/ X9 G6 c5 N0 Q3 _' \ - (set_tile "error" "")
9 l# f6 A |/ d( }, l - (setq lt-idx (atoi index))
) z8 R- \! {, Y, k# T - (setq ltname (nth lt-idx ltnmlst))% }$ O0 v% V+ L* l7 Y3 }
- (setq dashdata (nth lt-idx mdashlist))* B: T' J( Z( I
- (col_tile "show_image" 0 dashdata)- ~2 h" z% s* ^0 W1 H
- (set_tile "list_lt" (itoa lt-idx))5 |# y; v& b. B* i' S' V b3 a; d4 D9 h
- (set_tile "edit_lt" ltname)9 k4 H+ e. ~5 e
- )
, g$ l; R% ]6 v3 }+ X& P - ;;- d6 j5 c k) Q# o
- ;; Reset to original linetype when cancel it selected
( ~: S, F: N/ {3 f# s& N2 I( ?$ B- J - ;;
6 W0 h1 V2 W3 H8 D; n - (defun reset-lt ()
2 Z% G9 Z: C3 `" f# o4 q - (setq lt-idx old-idx)& U; c7 S# |6 ~9 Z1 `5 i
- (done_dialog 0)
! |8 D. y+ Z8 ?% l - )6 B3 M; T# w) M# W9 d! d4 Q
- ;;" N: G4 B: \# E2 z' v6 R
- ;; This function pops a dialogue box consisting of a list box and edit box to # S" P+ k) F4 t6 {$ Z+ o3 ]
- ;; allow the user to select or type a layer name. It returns the layer name
/ j. v0 J& e. R1 A - ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the ! t! G0 \8 M+ _
- ;; drawing.
% Z; w, w8 W0 r. ^2 |$ ?1 R0 K) V5 c- m- O - ;;
! l' ]! @# U) g, p+ r - (defun getlayer (/ old-idx layname on off frozth linetype colname), ~# V1 C) }# \
- ;; Load a dialogue from dialogue file
, d4 i( s! a7 }: i# M6 ~ - (if (not (new_dialog "setlayer" dcl_id)) (exit)); s. Y$ G% m( w( U# Z v+ ]# h
- (start_list "list_lay")
5 ?0 R7 K, z% w( v* r* h - (mapcar 'add_list longlist) ; initialize list box2 `4 J% Y3 N, e/ Q5 |0 a
- (end_list)4 ^8 H: ]. W# y. L" D3 U* U
- ;; Display current layer, show initial layer name in edit
! K [( Q' E, B- B% D% J) g4 O - ;; box, and highlight list box.2 V$ q5 |9 m" \+ K
- (setq old-idx lay-idx)
! g8 j$ F- o1 Z2 ~8 q - (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))
- V5 Y! @4 E1 H" i - (set_tile "cur_layer" (getvar "clayer"))( j& q2 o- @ G3 |
- (action_tile "list_lay" "(laylist_act $value)")
: @' Z/ S, o8 F' Y, {7 ? - (action_tile "edit_lay" "(layedit_act $value)")
+ C4 p9 q8 N! Y' ?! M - (action_tile "accept" "(test-ok)")
+ o2 Y E- y9 f9 c$ x9 Y k! Y6 B9 v - (action_tile "cancel" "(reset-lay)")$ B7 ?+ I8 ?% g7 e
- (if (= (start_dialog) 1) ; User pressed OK" X- z% a) P9 ^
- (progn, V1 g o" |% }& \- d' y
- (if (= lay-idx nil) (setq layname "Varies"))
0 M' H6 e- V& m# ?2 V" v - (set_tile "t_layer" layname)
( V* h6 I" U- }/ e* Z - ; If layer or ltype equals bylayer reset their tiles
1 \/ l/ B2 z9 S# {/ f$ S$ y0 E - (if (= lt-idx 0)
# F0 O/ \$ z# P, n - (set_tile "t_ltype" (bylayer_lt))5 g* v- d2 r6 H4 x- d2 R
- ). A5 N) |3 r( s( Z$ ~
- (if (= ecolor 256)/ C, I3 y" i5 [: X l! V
- (progn
0 ?: Q# ]# v6 y/ Z7 `2 M2 o X - (set_tile "t_color" (bylayer_col))
8 J+ o2 C& d L) y# W - (col_tile "show_image" cn nil)
8 P' f+ p g3 [, A5 l1 T - )# L( Z- J' P& P# C; Q$ B% a
- )/ k, ?. v7 i+ ^
- layname0 F, U9 Y1 V) e; q2 t4 x0 L
- ); X) S6 v4 T' ]% B6 a
- elayer
' C2 v) V1 F2 @ - )# T, J, X1 Q# U% B3 P; ?% D/ Z6 F& ]
- )% W$ X+ q6 Y) n& J2 f* T/ e& m3 A
- ;;
8 _& h) j; j& e& z* a9 ] - ;; Edit box selections end up here7 S, o$ H9 i$ ]/ w9 h5 W' Y
- ;;8 b* ]1 H) X; s7 G( Q1 A) S- s
- (defun layedit_act (layvalue)
v9 y6 E3 i2 Y8 p/ `. w - ;; Convert layer entry to upper case. If layer name is- L9 A) p/ e7 u' u X/ W
- ;; valid, clear error string, call (laylist_act) function,3 h) i1 d5 Z- W5 N. }: _
- ;; and change focus to list box. Else print error message.0 P* c# y% j" @1 B) O
- (setq layvalue (strcase layvalue))+ h$ K* g; b) k# ~
- (if (setq lay-idx (getindex layvalue laynmlst)): j2 g4 v3 t# q9 g2 V9 P3 T$ V I: O6 H
- (progn& q; }* z) G6 F; e: A6 ]7 I
- (set_tile "error" "")
8 d$ m; y1 U0 R% s - (laylist_act (itoa lay-idx))0 E! z9 q% e( A/ ?' H
- )
8 X/ ? }$ h: t5 n - (progn2 A" v2 W! s4 }6 b
- (set_tile "error" "Invalid layer name.")- U2 B O) r5 h# F2 D
- (setq lay-idx old-idx)
v/ T( Y" D8 O - )
8 l6 e. O/ v: G6 z" D( i - )
, c6 [6 M w* [* z% x - )& U# Q& n) T4 T e5 P8 ^3 |
- ;;
l7 b4 G; z/ E x - ;; List entry selections end up here
: c; J0 t. K7 Z- ^3 R - ;;- `3 k" E: y0 e8 f
- (defun laylist_act (index / layinfo color dashdata)
4 C9 L* k1 ]8 x3 |) f3 `9 p7 K4 J - ;; Update the list box, edit box, and color tile
% s" n! z$ @; ?& a - (set_tile "error" ""). b" @2 f+ S. a3 {/ v1 }- A9 k% r" q2 _
- (setq lay-idx (atoi index))3 G% H, p, W6 ]& C) O( @) `
- (setq layname (nth lay-idx laynmlst)) p; _3 D; B! R
- (setq layinfo (tblsearch "layer" layname))
d* c0 I9 s, Y/ q# D& ?$ h* B - (if (= (logand (cdr (assoc 70 layinfo)) 4) 4)
( J, T2 F3 x" d { - (set_tile "error" "Cannot change entity to locked layer.")
' m8 d& c0 O8 a7 p1 m& S - (progn4 v0 x( Y/ y. M+ |) {# y) A, I
- (setq color (cdr (assoc 62 layinfo)))
, L7 W7 }+ v8 r1 [ Z) q0 n - (setq color (abs color))9 V& N @4 Z( U- Y( C4 W
- (setq colname (colorname color))- g* e* R$ T% Y2 d! y! x5 g
- (set_tile "list_lay" (itoa lay-idx))9 g. V: y1 j2 S& m6 m; L3 j
- (set_tile "edit_lay" layname)
. o3 O/ X5 X/ ^ - (mode_tile "list_lay" 2)
- _0 \% {! P3 w6 Q5 U) r - )
/ ]8 r5 P& C" l! A7 V# \ - )1 t3 m3 Y. T% a' y% J F
- )
7 Y# F! _; J) l; t4 U - ;;. ?$ P( _% Q: N0 B" D
- ;; Reset to original layer when cancel is selected6 ^, g0 z3 x' T' ~
- ;;
6 z! A4 q4 k) Y$ H - (defun reset-lay ()* Z( W4 A& E& _. [ W
- (setq lay-idx old-idx)+ }& b1 J; }0 o
- (done_dialog 0)
7 l0 k$ q5 T6 w) f% j. i - )
- v! t: B9 t8 ` - ;;' x3 c; A" g0 d( F
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a 7 Z- s- M5 H9 `, ?" M5 M1 W u; ?
- ;; string can't be converted to a real, this routine checks if the first
- ?) G. Y" D" Y" n" T" T v5 ?1 p4 n+ @ - ;; character is "0". It also checks to see if the value equals "Varies".
0 f( ` F" j9 p5 {3 E1 U6 w0 @9 q1 X - ;;
: j' k: k" D( B, c/ \7 Q5 u5 c, h$ { - (defun getthickness (value)2 w0 I" ^5 x3 T8 i7 o3 g; h+ [
- (setq value (strcase value))
: y) ` u* L5 p+ w4 S - (if (or (= value "VARIES")! w& S: D! u6 f9 ]: u4 c; G$ e4 ^
- (distof value). T# t \( s$ }2 }+ _
- ). V- P% v& K. y+ J
- (progn: Z' }6 x0 x* q* G( C. X6 m3 P
- (set_tile "error" "")4 B Q. h) K/ e: k( b9 Q; j; k8 T
- (if (= value "VARIES")
2 u( V( A+ z( o- i9 w) t$ B0 s - (progn' _% N( y- j3 Q- N
- (set_tile "eb_thickness" "Varies")( G; \5 V+ W: ~$ O$ |' a
- (setq ethickness nil)
: [# O6 I+ x- u, ^8 c7 g; \ - )+ d% A" `. h& J
- (progn$ E4 U) j7 d" D. [* n
- (setq ethickness (distof value)), }; I; |3 w4 F3 M
- (set_tile "eb_thickness" (rtos ethickness))
! L% ~" e" c4 U) g0 J A - ethickness9 U4 o8 \$ }( c/ R- o. V! v, r
- )
# y/ I1 g1 \. J+ b* J& J - )
9 H, J+ f& S/ j$ z9 [6 N" w - )
$ F( d9 g4 {# ?6 F3 V }( X - (progn* C) |( R4 h7 P1 _/ Y6 V5 y V
- (set_tile "error" "Invalid thickness.")4 h x2 n2 D2 Y7 T
- nil/ O" H0 P. [$ y d. Q# `
- ), U/ A: d9 G% |" p) v% L( Y9 t, B e
- ) A" T& h. {( O1 |% t
- )1 H/ N6 T# }* s" L X l
- ;;
: i3 w+ l4 \7 u; V4 H - ;; This function make a list called laynmlst which consists of all the layer 5 F5 d2 D. G3 b- M9 x" {
- ;; names in the drawing. It also creates a list called longlist which 6 f6 p* _4 z Q6 P6 Z8 F# c/ r
- ;; consists of strings which contain the layer name, color, linetype, etc. 4 Q- F. \4 w0 w& i* W6 Z+ ?+ y
- ;; Longlist is later mapped into the layer listbox. Both are ordered the
& d/ k5 p" ~* C4 r* d4 N - ;; same.' A! z9 R7 x% t
- ;;# I, j2 O: ], _ O. [2 S
- (defun makelaylists (/ layname onoff frozth color linetype vpf vpn ss cvpname
( H6 k/ c- p4 U+ C - xdlist vpldata sortlist name templist bit-70) o; }+ c) C9 R- ~% T1 j$ }1 l
- )" \* j; W2 \! E+ x# H- v
- (if (= (setq tilemode (getvar "tilemode")) 0)8 L) w A) w, X B/ g( B+ W
- (progn' S/ [) D4 A+ Z4 b$ h( M9 S$ ?' Q
- (setq ss (ssget "x" (list (cons 0 "VIEWPORT")" W0 w8 e0 s: @3 }! Z: L" N5 t6 ]
- (cons 69 (getvar "CVPORT"))' s5 \5 w" l0 m. N# J
- )" U- ]+ L' }& d
- )% X5 p) `' K- X
- ) ( t; U2 D9 C/ m, E2 M i
- (setq cvpname (ssname ss 0))) j" _/ m( w7 J- ]+ Z; R
- (setq xdlist (assoc -3 (entget cvpname '("acad"))))
# l% L" n2 U ?0 n - (setq vpldata (cdadr xdlist))
0 E& O4 V" s! X- G. y# n Z - ). z8 u4 u' n' `% g$ I" o! r: I
- )2 l6 P/ M) A3 m' a: x* `
- (setq sortlist nil)
- E! k4 S% V; L6 a1 K - (setq templist (tblnext "LAYER" T))# N( g. B) I6 b' b
- (while templist! b* @7 F; D' K
- (setq name (cdr (assoc 2 templist)))% L* g: m) R. g% [" |
- (setq sortlist (cons name sortlist))
0 z+ i) e, B7 v - (setq templist (tblnext "LAYER"))
; g1 `$ P, y0 W# L% Q0 P% D% { - )
3 C3 _; J$ |2 ^3 k7 @- B# V; x7 k: U - (if (>= (getvar "maxsort") (length sortlist))5 C4 s2 ?( J2 V- U3 X6 k
- (setq sortlist (acad_strlsort sortlist)). T: d6 K. s$ w& _0 i" \
- (setq sortlist (reverse sortlist))
. Q: b0 j: {' V; E. F5 y6 |: O$ { - )* O+ R1 P3 X6 j- A3 p( u% E. _
- (setq laynmlst sortlist)
2 w/ G. m6 Q8 }$ Y+ C2 ]% L4 H - (setq longlist nil)
, ~, P7 \; o2 h7 X) V - (setq layname (car sortlist))' J+ ^* b7 N# j$ s' o% A" l. u* E' d
- (while layname
, s4 w1 a( P; b7 ?* x - (setq laylist (tblsearch "LAYER" layname))
: F3 D: g. f1 X$ R1 e4 J - (setq color (cdr (assoc 62 laylist)))
: I; f! j0 u7 t0 s - (if (minusp color)
- }9 w' K% \ h; e6 l8 L - (setq onoff ".")' M5 A, K8 `, [: A
- (setq onoff "On")
$ y( w0 u% i! X. _ - )% N$ d7 u% C1 x+ @8 G, O6 V
- (setq color (abs color))
: N. `( ~4 B0 h0 e# \1 U8 R - (setq colname (colorname color))
* g" x3 u0 v' f' Q9 N4 i3 E) H# @ - (setq bit-70 (cdr (assoc 70 laylist)))0 @) F: R1 v/ c# e6 d
- (if (= (logand bit-70 1) 1)
$ v9 F9 v I; ~/ L* r - (setq frozth "F" fchk laylist)$ b$ W& N5 Y: B X6 j; v( }
- (setq frozth ".")
# N% Q4 W( H" h+ } - )
+ V. l ?/ X) b7 ^& h. Z - (if (= (logand bit-70 2) 2)1 N, j& n) J7 ~7 C6 [- Q
- (setq vpn "N")
^ p" S8 G& I - (setq vpn ".")
3 @3 ^6 |8 f* g1 F4 f - )7 h4 t/ {- Y6 M5 I, h* J
- (if (= (logand bit-70 4) 4) W6 H( I+ y0 Q
- (setq lock "L")
$ p& M! K$ l) h2 ^* z* C - (setq lock ".")0 F' [5 F6 L9 P) F8 I
- )6 w" N7 n, m. U+ O, y
- (setq linetype (cdr (assoc 6 laylist)))# {( i1 i2 O7 E; E# N# I
- (setq layname (substr layname 1 31))
; i0 e+ y g3 [9 ` - (if (= tilemode 0)
, @) t8 ]1 s8 o7 y7 m% y! r - (progn
" {; K0 R: I' M( V - (if (member (cons 1003 layname) vpldata)
1 F: H- F9 Z9 G& u - (setq vpf "C")
" k& u5 J5 U* o0 X9 {( V7 C4 B/ c% J - (setq vpf ".")3 k5 X Z6 T4 ?) R
- )
4 I# r1 ?- V+ p; K& M7 P - )4 Q7 i+ ~( M+ U) S& N
- (setq vpf ".")$ D3 ~& l" n0 n2 m( f A
- )
4 @* s! e! I% B - (setq ltabstr (strcat layname "\t"
/ |- t' t: i: t$ t! s: Q9 M - onoff "\t"
5 M9 c7 W; q& G* C! [6 k" I+ P5 i - frozth "\t"
% `6 y6 _0 j7 O; U0 f$ u - lock "\t"# }' p: E/ p/ U/ W
- vpf "\t"
' I8 J3 ?- J9 h: j, c- h - vpn "\t", M7 e9 _$ v- e# \
- colname "\t"7 s: C$ y" b5 \2 e2 k
- linetype
4 }# q( ]; g) t8 M, s! I - )5 ~ i0 T/ q7 q- \3 F4 n
- )
0 V4 S. i8 G1 i( k/ S2 S8 t# r0 k - (setq longlist (append longlist (list ltabstr)))
6 D# W# L. ^: ?8 Y q3 g$ i. y - (setq sortlist (cdr sortlist)): l' X2 m# U& d( u/ X: s
- (setq layname (car sortlist)). \; c, z! q2 V& @
- )
" a$ [% T- o- z1 I - )
7 o$ H( ^2 X6 H - ;;+ ~3 n5 u3 N* S: ^+ M5 K9 U# B
- ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
. q6 I# R( |8 t* J& j& [ - ;; linetype names read from the symbol table. Mdashlist is list consisting - S4 m: d6 s" P, C W0 J/ |& N' l
- ;; of lists which define the linetype pattern - numbers that indicate dots, 1 O9 B0 Z8 o$ h. T1 P
- ;; dashes, and spaces taken from group code 49. The list corresponds to the 6 h* g4 m8 A; q4 e+ K
- ;; order of names in ltnmlst.
0 W+ Y9 w7 U5 x. Y" u" w( @ - ;;
. c+ e/ |6 q8 ^( k; P# U - (defun makeltlists (/ ltlist ltname)& l6 ]$ ]5 T: Q$ E* I" v" C
- (setq mdashlist nil)
/ h. P5 P. [2 s% X - (setq ltlist (tblnext "LTYPE" T))& a+ i9 R" b8 E6 ]( u- d% q
- (setq ltname (cdr (assoc 2 ltlist)))
( ^9 b8 d8 I2 h$ q; t7 i. f - (setq ltnmlst (list ltname))
2 ]3 R7 _9 u8 H# f
0 Y. _3 c5 _+ u8 ^. e6 b- (if (= ltname "CONTINUOUS")
2 B. R. d, }9 g$ d% L- _, K4 A - (setq mdashlist (list "CONT"))
0 I5 S/ V# I4 z& Y - (setq mdashlist $ V% q( z) a7 n( y3 O
- (append mdashlist (list (add-mdash ltlist)))1 ]0 L+ q' x; N- C8 }. _
- )
* u; h$ `, k& @0 M! h6 j - )
/ q4 ]. p# S( _7 \$ [ - (while (setq ltlist (tblnext "LTYPE"))1 G) j; i# |; x9 p. H
- (setq ltname (cdr (assoc 2 ltlist)))9 o' b r; d6 Q7 L7 U- u3 r
- (setq ltnmlst (append ltnmlst (list ltname)))
5 ^/ }. K% N- k2 l A( r" z - (setq mdashlist
+ p, [$ f' R( F# m8 D - (append mdashlist (list (add-mdash ltlist)))2 C5 m7 N# j$ }5 J/ B3 W
- )
3 J) a, k! O9 ~: S0 ?! |! n: x' @ - )! Y- `+ E# I! v# p
- (setq ltnmlst (cons "BYBLOCK" ltnmlst))
3 i. j- \) c P1 \* ]% a+ m - (setq mdashlist (cons nil mdashlist))
8 I* ]4 F& C' G) T4 Z; N - (setq ltnmlst (cons "BYLAYER" ltnmlst))
0 D: T! f. s- g9 n - (setq mdashlist (cons nil mdashlist))
* q5 v0 U, S2 T - )
$ e2 T5 ^5 ~8 D) S - ;;& r3 B" N! P7 d& }/ ^3 p5 \
- ;; Get all the group code 49 values for a linetype and put them in a list ( i3 ]1 x4 z: I0 M: J
- ;; (pen-up, pen-down info)
, M. O: X! ]. j1 o) I - ;;- {9 t7 j* g* i8 F! E# [
- (defun add-mdash (ltlist1 / dashlist assoclist dashsize)
4 P, G( |& @ W0 Q }' M - (setq dashlist nil)
3 q- w0 ?) t* \# g - (while (setq assoclist (car ltlist1))7 H4 R6 l6 r3 j# t4 t
- (if (= (car assoclist) 49)5 T; P3 t9 W$ c' J9 X ~
- (progn
/ Q5 `5 n ^ h& p$ \ - (setq dashsize (cdr assoclist))) ^3 ~5 g" v6 F. u* y5 O6 n
- (setq dashlist (cons dashsize dashlist))9 F0 L; N4 u9 h" N9 \# p
- ), ~* q |6 M7 A0 Q
- )
' w( j- k6 n5 A, p - (setq ltlist1 (cdr ltlist1)): A4 f% p" d# b
- )
$ o6 P$ }1 Z6 D9 E3 x6 B - (setq dashlist (reverse dashlist))
0 T7 T3 \5 W. d+ f - )
1 {0 k0 k( n* Z - ;;9 f9 E# K0 O5 I* b- q7 X
- ;; Color a tile, draw linetype, and draw a border around it
9 H2 | _; E; h ]( v4 U) x - ;;
* l6 K& h9 ^% ^( o+ K! `0 q - (defun col_tile (tile color patlist / x y)
7 F# O# @9 H0 h" F - (setq x (dimx_tile tile))
8 R# u; L/ o Y, i) ]) \* y; \4 K - (setq y (dimy_tile tile))/ }) c( T/ O `# B7 x& r$ v: Z- n
- (start_image tile)) h. ^1 O' K' d) F% W. J( _% M
- (fill_image 0 0 x y color)) \- Z( T$ T4 _2 |6 o6 w! r1 Q
- (if (= color 7)
9 i, Z z& R. L8 R8 k& R - (progn
. l2 t% k" H0 X; }4 x! A- Z8 X - (if patlist (drawpattern x (/ y 2) patlist 0))1 {$ l2 [5 _/ A
- (tile_rect 0 0 x y 0)
3 J2 L/ T* I; y% a7 @ - )9 h+ T7 {( g% {+ J1 i1 N% l
- (progn
' ]+ y& @8 B# ? - (if patlist (drawpattern x (/ y 2) patlist 7))# |% u% K7 A* `; J; c
- (tile_rect 0 0 x y 7)7 u: ^1 K, Q t: H2 R/ ~& f2 `
- )! W* l* F& u1 E% @* d) |0 U
- )& n* D- f. J7 x1 n" N' f; h
- (end_image)
+ F* R6 D, v0 u - )! c: B5 D3 t" r7 t4 P4 L
- ;;. y$ }+ Q& I# I, N& h$ U" o
- ;; Draw a border around a tile* s9 D4 A0 s9 A
- ;; u1 F5 r) |# U2 J! a: @
- (defun tile_rect (x1 y1 x2 y2 color)
/ ?5 w) d' h" j4 p; ]! t1 z - (setq x2 (- x2 1))8 W% g7 l8 _4 ^6 ~$ e
- (setq y2 (- y2 1))
6 D9 `' T, D& r& Y7 w/ N3 { - (vector_image x1 y1 x2 y1 color)
/ E* q2 F- t5 }1 e8 W* Z% B - (vector_image x2 y1 x2 y2 color)
1 w. I4 n& M6 t: C4 L5 J% c - (vector_image x2 y2 x1 y2 color)4 i/ k- T; m1 v: q' _* W
- (vector_image x1 y2 x1 y1 color)' B/ b: ~# B7 S: x
- )
5 [/ H4 B' Q9 z [. |8 v" W - ;;
. p' m2 V. Y* U$ x - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image # ?' ?1 H7 P4 Q$ Q. L
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
& X. U. {7 p& J9 ?+ {" W5 | - ;; list of numbers that define the linetype, and color is the color of the
, v3 c2 `; @) ~+ V- x2 A/ M* D - ;; tile.& {: B. d; E- ?
- ;;
: T% b4 L, m; m+ H4 @/ X- x& s - (defun drawpattern (boxlength y2 pattern color / x1 x2
! {7 }/ p7 g7 c( B0 \7 a - patlist dash)
+ V: k" I) J, S: d$ E - (setq x1 0 x2 0)5 m( a) \( d# v+ i1 O
- (setq patlist pattern)
% L& W7 T' H$ r$ [- g0 y5 n$ r - (if (= patlist "CONT")$ n/ v' h2 o' U7 J% [
- (progn ( }6 C# S$ Z* x; r3 M( A" t( i
- (setq dash boxlength)% |6 L( Z k5 s" k
- (vi)
: U/ o) o& A b, T# B% P/ Q' i - (setq x1 boxlength)
1 q" D' ^; |% o$ ?/ l0 p - )6 Q8 p! d2 a. e2 x
- )
, ` f2 I: T: E& j - (while (< x1 boxlength)' N) D# _6 N: G9 r( Y
- (if (setq dash (car patlist))
& X( v9 q% v) g - (progn0 o' {0 q# k0 J
- (setq dash (fix (* 30 dash)))
( M7 k' q) B; ?; R; p - (cond
1 L' j' U/ Y& W5 T( B( r& @& _; E - ((= dash 0) * O3 W3 g5 \$ N
- (setq dash 1)
( z4 h. e% c$ Z, B% |4 K% I - (vi) j* W9 f r8 O% \; [* f Y8 N0 Z
- )
% @5 x- v& o# ^5 o% ?0 U - ((> dash 0)
}/ I) O3 m8 c9 ^% a1 D - (vi)
" w* u& x& r+ c' m! Y( k6 G - )
; Y# m9 Z9 a/ i7 Y* J4 D9 g6 w - (T
5 n: ^4 H9 L; m7 c! e4 C/ L$ X6 p - (if (< (abs dash) 2) (setq dash 2))
1 Z! A5 k! Y/ j: F - (setq x2 (+ x2 (abs dash)))
/ i# ]5 M- ]+ X - )6 u5 H, U& r! `* j( `$ ~1 c: V
- )% y; K+ @8 w9 Z4 z
- (setq patlist (cdr patlist))
( s% P3 r0 P% E - (setq x1 x2)
8 B2 x% u( q" M! {0 X- R - )# T" L5 z( G$ }, c8 L7 |
- (setq patlist pattern)7 B' J9 \& |! }
- )
" a5 E! F* s: w - )7 z, J1 W2 c; n# H) ?8 B4 K8 h
- )! d7 }* |- ^) N5 @' [& y8 K
- ;;
3 F/ Q: h9 J" q$ R - ;; Draw a dash or dot in image tile
3 S9 d$ ^& w: x; G9 ~" c - ;;7 S: z) F7 U& }) |+ i/ |4 w# c/ D
- (defun vi ()( f3 a2 G3 L& G3 j, U
- (setq x2 (+ x2 dash))& B0 g2 t- r) a3 D* N
- (vector_image x1 y2 x2 y2 color): j) \' A0 F0 V! Q; X4 t
- )4 o z# W& u1 {% Y; c! a
- ;;. @4 ^- [4 ^- Z9 R5 O& ^
- ;; This function takes a selection and returns a list of the color, linetype, 1 x. K c# N) a; C6 U8 ?/ w- ]
- ;; layer, and thickness properties that are common to every entities in the
; O, L5 d6 {. Y2 k - ;; selection set - (color linetype layer thickness). If all entities do not * W9 {, v% \* Y7 |, v3 {% O6 |2 O
- ;; share the same property value it returns "Varies" in place of the
% l2 f) o2 c- Y( u - ;; property value. i.e. ("BYLAYER" "DASHED" "Varies" 0)
9 l. E/ h* J X3 S9 w# t2 X - ;;
- J# c9 J8 k" N# v' s, P - (defun getprops (selset / sslen elist color ltype layer
! y) w4 z: S8 T' y9 {* Z! d - thickness go chk-col chk-lt chk-lay chk-th ctr)
# g0 `4 v" E. T* f6 J1 k+ } - (setq sslen (sslength selset))4 W+ P5 I: f) b# S3 T( d* n
- (setq elist (entget (ssname selset 0))): w% h+ D3 x* C
- (setq color (cdr (assoc 62 elist)))7 @9 I" u1 v& s+ B* W+ @" l7 ?2 e
- (if (not color) (setq color 256))( v2 y; j7 ~" e+ J# _# k+ R1 `- G
- (setq ltype (cdr (assoc 6 elist)))
% I/ q" g- Q; v& S z - (if (not ltype) (setq ltype "BYLAYER"))
$ m+ y3 m7 M: ?& \$ X$ Q# l - (setq layer (cdr (assoc 8 elist)))
# `; ~# L8 I8 N - (setq thickness (cdr (assoc 39 elist)))* d5 \( I$ F. V7 h) c8 \. C
- (if (not thickness) (setq thickness 0))
% q' o3 e- t$ C0 e; s' K - (setq go T chk-col T chk-lt T chk-lay T chk-th T ctr 1)
( a: M; v0 q# d" o: U+ ^, m: t9 W
2 a8 c$ k2 `! u# s! H- k% Z* y- ;; Page through the selection set. When a property
+ h- f. `3 r9 M9 O* q+ w - ;; does not match, stop checking for that property.0 J! j, l" B, G6 p% `2 ]) x8 E' h. G
- ;; If all properties vary, stop paging.
6 r# ?8 Y5 a" R& a+ ^( U6 g
5 |* C+ U' R0 Z5 T- (while (and (> sslen ctr) go)1 W4 d P3 C+ Q
- (setq elist (entget (setq en (ssname selset ctr))))
9 d7 t+ C J- l. ] _ - (if chk-col (match-col))
. Q* ?! P5 x3 R0 c - (if chk-lt (match-lt))* }6 t) H& Y# }1 c) X* r3 ~
- (if chk-lay (match-lay))- I. P/ J- W$ M& B ]/ B6 b
- (if chk-th (match-th))/ q% k$ P7 H- E
- (setq ctr (1+ ctr))
! K- h# x: K0 E6 I$ Y! Y - (if (and (not chk-col) (not chk-lt) (not chk-lay) (not chk-th))6 M5 m0 B5 J. W
- (setq go nil)
( z) i8 C( T! S) J6 P/ p* q - )
% @" O- V$ s1 Y7 _! r - )* n, w- k1 o$ A F3 S9 {8 M0 L: j
- (list color ltype layer thickness)
* |3 b) u0 [5 Y- ]7 v8 G( q1 `. j - ), G0 y& _% b6 U) A' ~
- ' f% x/ w0 K: Z/ z9 ~) v# W. {
- (defun match-col (/ ncolor)
4 ^- t2 l) F& |! w8 o) V - (setq ncolor (cdr (assoc 62 elist))), ?( E0 Q1 J; v0 V/ k' h
- (if (not ncolor) (setq ncolor 256))
$ b5 p0 n4 M1 I! T9 u* L - (if (/= color ncolor)$ K5 d- r/ l q u( f
- (progn
, J, J. n7 b5 K% p4 X' ^' w) O - (setq chk-col nil)
7 t0 f2 F5 a; u+ K - (setq color nil)( ], ?7 r+ ]# e" D
- )
5 y) m2 B' M! J4 P" a; |, ]: u. H - )/ q8 K9 R. h: p0 U/ `$ s
- )
8 y4 e7 m8 f; x% F, Y
$ h3 w+ W z! q: y/ \- (defun match-lt (/ nltype), Z6 ]2 X3 A. f$ g% K+ { N/ b
- (setq nltype (cdr (assoc 6 elist)))
4 T( N) ]) S* ]& f - (if (not nltype) (setq nltype "BYLAYER"))2 x1 v) ~6 d0 H4 L- N/ b& {
- (if (/= ltype nltype)
& l3 c% Y; Z; y4 t( K - (progn2 Q, w" b( S: v0 i5 W3 Y
- (setq chk-lt nil)- k3 {6 Z% q. e% @2 Y% o4 s% A+ ]
- (setq ltype "Varies")
; ?$ x1 ^- b! X1 J - )7 e" b9 b, J& \/ V& U* S
- ); D7 Y+ Z7 F: w' I i% |
- )" s' q1 d5 F7 e! k3 K
- 0 u' {* |, I3 V* D6 ?
- (defun match-lay (/ nlayer)" `" H/ L* q5 {' p9 p; N
- (setq nlayer (cdr (assoc 8 elist)))
& `) n2 }! k, I7 F* Q; m9 k - (if (/= layer nlayer)
4 l2 N- ~4 s0 K x; |/ G$ L - (progn2 i" u" c1 V# |: w: B% T
- (setq chk-lay nil)
) D5 D" w- v4 ~/ t6 v - (setq layer "Varies")
: G2 h* t1 Z$ Y+ O7 u - )
) F7 Q! u* ^: H0 O2 @ - )
# A4 j* A0 @3 y- r, o - )
) q3 d- F9 v4 s
, o9 o4 K+ H2 `3 R/ m- (defun match-th (/ nthickness)) j$ d1 z' S8 r4 z
- (setq nthickness (cdr (assoc 39 elist)))9 S% y2 J# ~5 q( ?1 x
- (if (not nthickness) (setq nthickness 0))
7 [9 L+ `, x- x+ Y - (if (/= thickness nthickness) k' l+ Z& |4 v1 V1 O# ]# B
- (progn- b: P' n, `+ u2 h9 m
- (setq chk-th nil)# c$ _! v' K& s a% D
- (setq thickness "Varies")
, F7 B# z$ p* H3 } U( ?0 Z - )
2 {/ Y" V7 f; w9 F - ); n3 ^- T( n3 q! @0 T
- )
. e9 b! _" ^+ d6 ^. a. O$ q - % \- }4 t, y- M; W0 |5 j
- ;;( r3 d5 }% r7 E! s0 E2 [6 i) h
- ;; If an item is a member of the list, then return its index number, else
) A/ [' H6 m6 | d z* | - ;; return nil./ P3 z" C+ T8 U* h7 f2 n
- ;;
! k- u. j7 M$ }. Y' b2 E# p - (defun getindex (item itemlist / m n)
1 O* f; B0 ?9 P$ W8 W# V0 | - (setq n (length itemlist))
# O, |" o. i- i7 _ - (if (> (setq m (length (member item itemlist))) 0)3 l w: {: Q; U; X! u" |
- (- n m)) z3 C& @( Y/ W& a" H; [) u, B
- nil$ O. g8 C! J4 x
- )) r+ u) h$ Y0 a( r3 A. e1 U3 v
- )
2 O( q& B K0 y7 q3 x3 R' D - ;;7 j( F: s# ~# s' z% R; T; @/ p, {
- ;; This function is called if the linetype is set "BYLAYER". It finds the % [2 L+ _8 D% h( G
- ;; ltype of the layer so it can be displayed beside the linetype button." ^- _* e7 s# e9 {
- ;;
$ V2 N/ m8 z# h - (defun bylayer_lt (/ layname layinfo ltype)
( A4 ]3 v2 x1 X) F, ? - (if lay-idx) M7 S4 N* m( ^) @# l$ o' Q
- (progn! u1 ?% ?! m& c) u2 D% I" b# A
- (setq layname (nth lay-idx laynmlst))
' A) n' }* |) o - (setq layinfo (tblsearch "layer" layname))
E( x. } X4 j8 H) {% r - (setq ltype (cdr (assoc 6 layinfo)))1 {1 o% E% G2 G
- (strcat "BYLAYER (" ltype ")")
3 x4 f" d1 t+ d) } - )
4 s$ @2 B; Q0 e5 K" k - "BYLAYER"4 h- N. h q" }+ X2 a S9 A
- )' X: ]( ^$ { M6 t" [
- )
' }% k5 k$ Y. r8 C8 G0 k& \0 _ - ;;
8 |2 {- g0 x8 o, ]0 h; T - ;; This function is called if the color is set "BYLAYER". It finds the I5 @' l7 ^6 t
- ;; color of the layer so it can be displayed beside the color button.
: n/ U# g. R6 x0 I$ z A7 k - ;;/ u. f6 |6 V5 s( p
- (defun bylayer_col (/ layname layinfo color)# X. N+ j$ D! F
- (if lay-idx
3 }2 v1 R( G4 `: z - (progn; a- S9 V P/ c
- (setq layname (nth lay-idx laynmlst))) K8 H1 G- r. `' n4 B: P" P2 S/ T
- (setq layinfo (tblsearch "layer" layname))# |( s" f$ Y6 E; S
- (setq color (abs (cdr (assoc 62 layinfo))))% t& b. m. b$ {, g
- (setq cn color)& ~6 F [* K& U
- (strcat "BYLAYER (" (colorname color) ")")/ o# H. R0 c; _" Q( k; L
- )( @; i) o5 G2 z' a0 h+ K- ^
- (progn
" m+ p e! b7 X6 w' C - (setq cn 0)
3 u& a- n/ p% L0 W8 r - "BYLAYER"
7 J0 t A! x- ~ - )! o5 Z4 B ?3 m
- )3 `! E5 s1 w% b1 Y3 d; b& J/ X8 W
- )
7 g* B. Z3 N/ Z - ;;. l' o& |8 s) T+ r- K
- ;; If there is no error message, then close the dialogue8 G0 M: q+ J7 p; F6 U) p. D5 m0 y
- ;;4 e9 C3 P! \/ x$ B! f
- ;; If there is an error message, then set focus to the tile
6 o% b! U6 a9 K/ D) I: K/ {$ R - ;; that's associated with the error message.8 a2 A( q4 H$ }& J1 b
- ;;
$ C4 j- ~0 N% X1 h+ P, X# a - (defun test-ok ( / errtile)) n& Y2 l: l- G$ }
- (setq errtile (get_tile "error"))
! @& R F6 b; c7 [4 |% U/ a: C+ n& o - (cond
0 y" ~9 `3 _ Q) E& X - ( (= errtile "")& ~. ]5 J* F# O/ \! c
- (done_dialog 1))
- H2 ?4 }5 r3 C4 R - ( (= errtile "Invalid thickness.")
: P+ a2 P% i; V5 h: r - (mode_tile "eb_thickness" 2))9 I- o$ w* e' V. p* `4 T
- )% D* x6 T C! k- C. S6 a2 A
- )
0 k# C- d8 F! x; H3 \/ ]7 { - ;;! A7 u8 V6 v- q! T# a l+ W
- ;; A color function used by getlayer.' D9 C" }" D, `+ g
- ;;
* l! A9 ^4 v" E- d+ X) s$ v4 D# F/ A - (defun colorname (colnum)
5 X+ a$ b7 G% M4 z - (setq cn (abs colnum))) ^. w( T, p9 x( u0 U
- (cond ((= cn 1) "red")
2 W6 {* `; v/ G% } d - ((= cn 2) "yellow")4 p. l* Z3 u+ y6 f# `# x
- ((= cn 3) "green")
, d/ `) m: p2 E9 I, I. H7 D/ W - ((= cn 4) "cyan")8 t. X, h% Q. Z
- ((= cn 5) "blue")
% M* Z6 F7 J- M5 N8 Z - ((= cn 6) "magenta")
* w+ q, f- q3 S3 f& k - ((= cn 7) "white")+ a5 ?3 d# L9 C$ L8 }
- (T (itoa cn))
. }/ m1 H) [; G( Y6 R- s8 d4 ^ - ); }" E$ u* q# F# b
- )2 c& _! |$ |7 h- U1 d' r& Y
* V+ I0 O2 N- t8 G- ;;; Construct layer and ltype lists and initialize all( ^5 I8 h O6 ~6 T9 @
- ;;; program variables:
! K0 K, Z! F. J9 D8 y% X% }
* A H0 r9 k/ H# ]- (makelaylists) ; layer list - laynmlst
5 z' j) Y' {, y% @( K! T' y - (makeltlists) ; linetype lists - ltnmlst, mdashlist; r; W1 e7 D: Z# N4 D. N8 N
- ;; Find the property values of the selection set.
# }9 v5 O$ a2 {8 }* S6 l - ;; (getprops ss) returns a list of properties from
5 W' `! R: _" o - ;; a selection set - (color ltype layer thickness).1 S$ P' \6 \1 G: U* m9 m* x& d" q3 j
- (setq proplist (getprops ss)): T0 a9 N: t" t* @2 c
- (setq ecolor (car proplist))! u6 y# W/ H2 _! P$ a6 T5 b- r
- (setq eltype (cadr proplist))
# b) _- g* G, s( d2 y - (setq elayer (caddr proplist))/ j; E8 u* u8 u |+ J! x& M# O
- (setq ethickness (cadddr proplist))1 h6 s2 W# p, E: S
- ;; Find index of linetype, and layer lists
) {! ^6 u1 D% n$ M" u; Q6 C - (cond; X5 d1 F3 S+ d6 }/ A b8 U; Z- r" `
- ((= eltype "Varies") (setq lt-idx nil))" h+ I0 S+ z6 A8 t3 _5 [
- ; ((= eltype "BYLAYER") (setq lt-idx (getindex "BYLAYER" ltnmlst)))
2 f6 ~+ ?; s$ B8 V1 G7 H/ a - ; ((= eltype "BYBLOCK") (setq lt-idx (getindex "BYBLOCK" ltnmlst)))9 }% Z* O( z$ |# [# _- c0 [
- (T (setq lt-idx (getindex eltype ltnmlst)))
7 m4 g( n; N) P, L0 z - )- r" n; n, p' ^1 j! ^7 L/ F
- (if (= elayer "Varies"). e. p/ F* @6 Q! X
- (setq lay-idx nil)
6 q/ G$ g% n- t( y: u( K) }5 o - (setq lay-idx (getindex elayer laynmlst))
. @3 A6 ?. i. K: j2 w$ J) B7 j - )5 w0 l* k+ _0 n- q. c k
- (if (= ethickness "Varies")5 g( V. b/ P! f: V" v5 ?# D2 F9 G
- (setq ethickness nil)
5 v+ S1 c# {; w& d% _ - )6 N3 F) @5 B* }4 ]4 \# V
- 5 P% u: b* V' C) u# R
- ) ; end (ddchprop_init)
* k# p) _0 S8 ~1 i/ x1 h - 0 H9 I3 h2 ^7 G6 T/ t6 s/ Y
- ;;; (ddchprop_select)
4 R; i. l/ o& P; ? G - ;;;
; R* Q# X1 `5 V: z2 c) w - ;;; Aquires selection set for DDCHPROP, in one of three ways:
; F9 Q+ Q/ s5 \. {7 _( E - ;;;, P0 u9 s2 g2 r, b/ P7 a
- ;;; 1 - Autoselected.1 L7 E, T* W* H# j! m
- ;;; 2 - Prompted for.
' U4 Y6 x2 k% [ - ;;; 3 - Passed as an argument in a call to (ddchprop <ss> )
: G& A# ^2 I6 d m$ G - ;;;
/ c- v# I4 q! H5 G) D4 ~- \ - ;;; The (ddchprop_select) function also sets the value of the
4 u8 ]' ~! f- s9 ]$ j* A( C( |. B - ;;; global symbol AI_SELTYPE to one of the above three values to
. p8 i; W( h: x' n% [6 ]+ i - ;;; indicate the method thru which the entity was aquired." d& x# O2 [/ X. L( f
- ) z, T3 L4 W' ]% Y
- , |9 t' f% z8 O1 O
- (defun ddchprop_select ()( ~/ N2 Y' C8 e# b
- (cond
( |" o( @/ c5 i* T4 w+ y - ( (and ss (eq (type ss) 'pickset)) ; selection set passed to6 v1 \7 D1 p# `' H# s% {
- (cond ; (ddchprop) as argument% n [' D4 r0 c+ O$ E; [: f
- ( (not (zerop (sslength ss))) ; If not empty, then
( E0 q, s; p- A; y - (setq ai_seltype 3) ; then return pickset.* L9 ?( W6 I' E" A- i
- (ai_return ss))))- w* b+ N' |! z1 @: X! |
u7 Z! H! e9 p1 u7 l- ( (ai_aselect)) ; Use current selection
! f# O- T0 Z/ Y5 e. X7 j* M) D - ; set or prompt for objects& X7 u8 \& M8 ?" A: E( E4 i
- " p1 i3 u' u1 S2 g
- (t (princ "\nNothing selected.")8 W; ^# \3 q6 y3 a5 T
- (ai_return nil))/ G6 J* Y, {8 N4 y* R+ Q1 |
- )
+ `- A0 x9 b0 m. d, y9 _7 ^ - )7 J# j6 ] l) g& ` S8 H' l
. z$ h% Y" N1 I! J$ o; L- ;;; Define command function.
3 q$ Y& @ B( ~& v - % Z8 p5 l0 n. O
- (defun C:CH ()
( E" i' b# F. |: J( r - (ddchprop nil)8 ^" W" N$ |+ H7 o6 P0 P d. W
- (princ)
5 I& A+ ^/ ?6 Y9 [! D, H0 Q - )4 } y; r4 X2 W8 t1 {6 r) r& v
9 e9 |* y! x! |6 U
+ Y' m* N7 W8 T* {8 D- ;;; Main program function - callable as a subroutine.7 N* Y2 X% K4 L7 r3 {
- ;;;
4 x+ u- ]8 B6 U; _$ S6 ]7 E - ;;; (ddchprop <pickset> )
& U- Z N0 Y& D - ;;;
* g4 ~* W2 z5 {' G( A$ W - ;;; <pickset> is the selection set of objects to be changed.+ x# A4 p5 n9 e) h) o( t% o
- ;;;
1 v9 x! x; |9 _7 @ - ;;; If <pickset> is nil, then the current selection set is1 Y. j) |; w/ R
- ;;; aquired, if one exists. Otherwise, the user is prompted
4 r. j |3 k# x/ M8 ?$ j( ^, C+ ~2 R - ;;; to select the objects to be changed.
- \* S. t, Z1 y; x9 }( e - ;;;
% E; h ]. R: w/ s - ;;; Before (ddchprop) can be called as a subroutine, it must+ d& X, _, K! k$ n
- ;;; be loaded first. It is up to the calling application to6 I r' @- n6 @7 F: y0 h7 n
- ;;; first determine this, and load it if necessary.) y. D) q0 `+ x
- 3 }2 ^4 y- f6 r% x4 [2 h
- (defun ddchprop (ss /- @! ~8 e$ v5 N+ P4 {- B
. K i# P0 b& X: l L% q- add-mdash ecolor ltedit_act s
7 f0 |- G( ^9 F( l7 m - assoclist elayer ltidx selset5 C/ w8 H6 e t5 C
- bit-70 elist ltlist set_col_tile
; u0 V* k' F2 @7 K2 x- f - boxlength eltype ltlist14 a3 s1 `5 t) O1 h( C4 a9 Z
- bylayer-lt en ltlist_act sortlist
- k3 a& h; O" d. ?0 U - bylayer_col ethickness ltname
. r3 o9 P" x" N( a - bylayer_lt fchk ltnmlst sslen
3 ^9 b) L7 C) |! d! q: c - call_chp frozth ltvalue templist
5 f5 r/ B+ q+ {7 y4 i, w - chk-col getcolor ltype temp_color& Q( |( e t! h, [9 w& h
- chk-lay getindex m test-ok
v: P+ Q, e# U - chk-lt getlayer makelaylists testidx+ q& B" O& D, e5 T
- chk-th getltype makeltlists testlay
1 }. E/ ]) z) ~3 w - cmd getprops match-col th-value0 O/ _7 s8 T/ C
- cmdecho getthickness match-in thickness/ s* [" D0 }/ ^* N. p' c/ g
- cn globals match-lay tile
5 b" R/ G5 X- D1 ?1 u! o - cnum go match-lt tilemode
, }: q% i: v; L - col-idx index match-th tile_rect
. @+ U$ M+ [0 n - colname item match_col vi
; P& I) h. b2 F4 I2 p - colnum item1 mdashlist vpf8 e) z$ l# W, D, x
- color item2 n vpldata: X* }( e L6 T5 H) @6 D
- colorname itemlist name vpn
0 P. |, T5 w0 a! _7 V' o - col_def lay-idx ncolor x
0 P0 k" e8 {6 B/ I( U" G - col_tile layedit_act nlayer x1( p4 F, L$ y% [% z, C2 v: N
- ctr layer nltype x2- e! b4 z6 B- I# `1 k8 \
- cvpname layinfo nthickness xdlist
! n5 X" X1 H1 ]8 i5 S' `# Q - dash laylist off y0 c1 G0 s" h; H6 S
- dashdata laylist_act old-idx y1
$ ]1 E- e' @" q! \( `; B, p: ^9 W! N4 q - dashlist layname olderr y2
& {. |* x) P* V - dashsize laynmlst on undo_init
! Z/ i: N5 E1 F: S0 ` - dcl_id layvalue onoff; y0 v5 j9 @) i/ P" i
- linetype patlist% \5 }) |/ B" X7 b- Q4 d) C
- ddchprop-err list1 pattern. k- _, G& ~% q8 g. C) _
- longlist proplist0 \! y. e3 ^4 `
- lt-idx reset-lay; e- G2 G) ? i4 w6 \6 l% G
- drawpattern ltabstr reset-lt, T) m, i4 e4 |% z$ s* N! c
- )
0 {. W0 z! v2 ~1 V7 h& N! S - U, V1 C! M Q: t5 j9 Q
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
& L# C# y& {. ?9 f q, h - old_error *error* ; save current error function
# p* R0 m4 U8 y9 W4 J* z - *error* ai_error ; new error function' M0 _4 w; A! D- N8 w. ~. `
- )
0 l; j+ H. c# D/ ^2 p. O - ! E) B: B( ]' F7 |
- (setvar "cmdecho" 0)7 x: S0 W8 ~: L# p' Z7 k4 c" S7 K( d! v
- ; u& R6 w0 _8 Y6 u4 T
- (cond* ~# i# \% J- n& S2 g; G2 E) N
- ( (not (ai_notrans))) ; Not transparent?2 a* ]& k6 P* H/ k' {: Q5 C
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
n G4 V$ a7 ?$ Q1 S - ( (not (setq dcl_id (ai_dcl "ddchprop")))) ; is .DCL file loaded?; _+ U$ T( E) S& A+ B
- ( (not (setq ss (ddchprop_select)))) ; objects to modify?
8 _) y( J: {# l- O/ l' h
, j. O# ~ [# H0 v, @9 L, ~# T- (t (ai_undo_push)0 o( B9 H8 d9 Y" y) v& x% J: C
- (ddchprop_init) ; Everything's cool,
9 A0 k' y* y4 _# L) D) u3 b- { - (call_chp) ; so proceed!
4 W9 b: b$ ]9 ?# e3 p - (ai_undo_pop)
( z+ }' m, e F* l3 a - )
+ x/ ^3 g% h7 q% t - )
3 b' R: B J8 U - # {% _& H7 T8 R
- (setq *error* old_error)
& I) w8 [6 K# [4 X - (setvar "cmdecho" old_cmd)
" [8 B8 w( q7 t - (princ)
; m5 Y3 A A+ N2 |" D% _ q/ e7 i - )& f" b9 E; e' [, S
- 1 y9 J2 ?' K- x: F/ C- c2 ~
- ;;;----------------------------------------------------------------------------
' V% R& i, a: `' U- T - 5 [, o( n; z5 x7 W- ^9 v
- (princ " DDCHPROP loaded.")4 r ]3 t3 X& n: M8 ~# i# D
- (princ)6 Y( t9 J) T2 ^- C6 z8 D, |9 g
4 N/ O) A: S( Z- ;;;----------------------------------------------------------------------------
( }' U W7 S0 @6 n - 9 e% N- v$ x# W9 k& N
- ;--------------------------------ddmodify.lsp----------------------------------
5 M, i' G6 t% P - ; Next available MSG number is 111
% q$ F+ P4 M( D6 r! t. R- D' t - ; MODULE_ID DDMODIFY_LSP_
8 A. j6 j' A* @ - ;;;----------------------------------------------------------------------------; I0 M$ F3 s4 G
- ;;; DDMODIFY.LSP
+ V. @( E$ p. v8 F7 X9 o, g3 }, q - ;;;' f. {+ h% D2 a& C
- ;;; Copyright 1997 by Autodesk, Inc.
0 p0 ?1 m# a2 |/ Y, h' I' U - ;;;/ Y( V. @, z$ | v( K$ Z
- ;;; Permission to use, copy, modify, and distribute this software v; ^+ Z8 \& y0 r5 E
- ;;; for any purpose and without fee is hereby granted, provided
" ?9 e9 G, R6 n - ;;; that the above copyright notice appears in all copies and% w7 l$ m+ H- q4 F. X Q
- ;;; that both that copyright notice and the limited warranty and
- ]1 Y! o: O1 _) a - ;;; restricted rights notice below appear in all supporting9 j& v. |, b0 D# G/ r
- ;;; documentation.: p1 }2 F- j7 W' i
- ;;;5 ^& ^% N" G; V( l' j- l
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.' ]9 C0 u! N: a5 |& Z/ Y3 x
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF# n; M H! C1 i$ n& O
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
r0 Y8 a8 p, H8 v( y! }8 L - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
7 F0 v; S' z) H! ]! u2 I! S - ;;; UNINTERRUPTED OR ERROR FREE.5 }' X0 I7 c, \7 ~2 j& r; t. b
- ;;;) v/ L6 T8 O: K, B* c
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to7 i( c3 B& N% J- ]3 H! j+ Y2 P0 z
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
, o7 o$ e$ i7 d9 E; B - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii). ?+ u8 P) O- j% ?+ B9 {( U
- ;;; (Rights in Technical Data and Computer Software), as applicable.
8 n7 D/ L5 U: d" e3 C* m+ x; ` - ;;;
) Z# s6 g" O$ w& k2 `- \ - ;;;.
' N) }: K% Q4 z3 q3 O+ T# I4 D - ;;;# j5 G* x f1 z# c, u: `
- ;;;----------------------------------------------------------------------------
2 a2 a2 N* m' ]( X8 w: U* X$ g - ;;; DESCRIPTION
5 W* |. b, c! W, x! { - ;;;
+ E6 \( T7 v I. ^* L8 L4 ^, u2 y - ;;; This function allows the user to get a listing comparable to the LIST0 X6 w6 ]; G8 _
- ;;; command for most objects. In addition, most object fields in the$ I/ X7 [! F" C2 s1 K) E w
- ;;; dialogue box are editable. Points can be specified dynamically by N2 K* F( t/ m6 B" {8 `, @
- ;;; temporarily dismissing the dialogue box. Each object has a unique/ q9 [; l k7 B$ y. c ^& C* m
- ;;; dialogue.
) W1 ^% }' V, s( E" \# U - ;;;! t! H9 G. h3 D6 h8 }
- ;;; Naming conventions
, E' Z4 q8 M2 \' V3 C1 c - ;;; Long function and widget names may use an underscore "_": K' d' T" O' k2 P+ S( ~; S" ]! R
- ;;; in their names to make them easier to read, long variable
2 B( m: l' i; Q: I' }/ b - ;;; names use a dash "-".
( r- N( a2 ^) e2 X - ;;;----------------------------------------------------------------------------
/ a1 Z( @( m, w* h7 ]$ M7 v - ;;;----------------------------------------------------------------------------4 h, S( x( y! ?, R# R
- ;;; Prefixes in command and keyword strings:+ `( E5 X! I; t5 f
- ;;; "." specifies the built-in AutoCAD command in case it has been9 Y/ V! {0 @) Y/ R& d/ _! s
- ;;; redefined.
, V5 E& O5 g3 Q$ @, _ - ;;; "_" denotes an AutoCAD command or keyword in the native language1 u$ x" @- p7 t7 ]- a6 s
- ;;; version, English.
. P" n0 S) s$ Y5 G) [9 @ l - ;;;----------------------------------------------------------------------------9 d4 g4 a# F$ P" a/ {3 q# p1 r
- ;;;: b( a& B6 C/ m P3 d% T2 J5 T" A
- ;;; Avoid (gc)s on load to improve load time.; b) }. c4 S' ]# r: S) K, B; l
- ;;;9 P( v4 E1 U7 p1 v$ d7 S* [
- (defun do_alloc (/ old_allod new_alloc)
& Q* l4 j; s0 V; X" G' e4 ^. `5 N - (setq old_alloc (alloc 2000) new_alloc (alloc 2000))
: o/ f4 G P' ^5 V0 I Q3 `5 ^( u - (expand (1+ (/ 17000 new_alloc)))! {- u" h' {( A2 L7 r
- (alloc old_alloc)
: A( s8 O, h. F" m - ) P7 R t2 J* S$ e
- (do_alloc)( p4 {6 z0 i4 j
- (setq do_alloc nil)- T2 E; E5 X8 H: ^* ` K1 b
6 ?6 L% E8 u3 f! A/ o/ k9 o0 r6 p2 f- ;;;- P: ]8 i9 C1 i* ^. N# Q( \6 M2 \' ~$ \+ y
- ;;;- \3 _9 z% m) x% o
- ;;; ===========================================================================
& _( I, V/ `# w% y - ;;; ===================== load-time error checking ============================
& P/ z( W6 T, C& E9 | - 4 Z1 v0 a$ u7 e s
- (defun ai_abort (app msg)
* E( c0 V. y& M5 s) A3 _4 p - (defun *error* (s)
B& R: N# ?! ^7 G5 ^7 ^+ a* X2 [ - (if old_error (setq *error* old_error))
9 S! o2 H' |- u8 U1 q7 m - (princ)
, r' t Z8 {0 R/ H - )% }! c' S" @/ L" a4 a/ l( q& C
- (if msg
3 t' e( c* |( d) g1 O - (alert (strcat " Application error: "
6 r# G& k# c2 O s9 l& \. Y" X% Y - app# a, `, ?8 S! Y ]* a3 Q; J1 O
- " \n\n "
$ f u) |) g0 B% x# H4 K$ s - msg. a1 k; L5 E7 j1 \/ ~ T! ^ [0 e
- " \n": w9 z. O& ^- Y2 q1 U
- )% g2 H( W) E# O/ v# {: w
- ). b* P$ U# t; o- [: _) O6 }
- ): A5 d) O+ a8 F. c+ j+ Y8 C. N8 g
- (exit)2 o; l& s8 H) P2 L! R3 W
- )8 H8 r, s8 [ ^9 ?
7 [. r/ I* F: q- m: j- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
, ^0 p5 H2 ~" z$ Z( o& b - ;;; and then try to load it. If it can't be found or can't be* e. u1 ?0 i$ ]9 o
- ;;; loaded, then abort the loading of this file immediately.' `/ q1 W0 Z2 x1 k
, ]& u% C! h' l( B& l- (cond0 X7 W5 j% d+ K+ H7 @1 [# P% ]( V
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded., B* Z) f Y& m: y2 k) C- U
- & M9 I& u E' v/ a' m
- ( (not (findfile "ai_utils.lsp")) ; find it" M' I# b7 Y+ [5 d$ i" G
- (ai_abort "DDMODIFY"$ Q" V8 y7 H0 ]4 t
- (strcat "Can't locate file AI_UTILS.LSP."
% Q( B. P3 H: h7 W* ~2 p/ F - "\n Check support directory.")))
9 o/ q2 B2 d2 [ @% h1 @/ j
1 E5 N' |- U7 Q4 \0 f- Y- ( (eq "failed" (load "ai_utils" "failed")) ; load it! z8 F# T0 a" v0 }0 c
- (ai_abort "DDMODIFY" "Can't load file AI_UTILS.LSP"))3 H p+ c( O" L0 j: x
- )
0 g+ P# F8 A& u8 g+ M
/ p; ?2 S: O+ i- ;;; If we get this far, then AI_UTILS.LSP is loaded and it can
, l' o { k3 u5 H; ~& ~9 c+ } - ;;; be assumed that all functions defined therein are available., _$ K* i+ C( T' d
# v" ^1 x; {5 L# Y- ;;; Next, check to see if ACADAPP.EXP has been xloaded, and abort& S2 G" ^8 A) \3 L1 l* Z- Q8 J6 t7 F
- ;;; if the file can't be found or xloaded. Note that AI_ACADAPP/ c! e" @) W6 d+ y& m g3 C5 T
- ;;; does not abort the running application itself (so that it can' B, Y" j- U3 V0 L# `* [8 v
- ;;; also be called from within the command without also stopping" ~9 n+ H7 M& Q. |, p
- ;;; an AutoCAD command currently in progress).
/ p! D+ x+ ^. B& g9 o
" W, `% [/ h" {" @- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP3 v- J/ d- M8 ^5 y+ ?7 k( C3 t
- (ai_abort "DDMODIFY" nil) ; a Nil <msg> supresses
0 k! z8 B: T" s4 B- m* C - ) ; ai_abort's alert box dialog.
6 A8 f+ {) H: [) f4 f - " ^9 S6 D# M Z7 Z2 U
- ;;; ==================== end load-time operations ===========================$ }% T' S4 {) l
& n% _; C. S& t( @1 L- ;;; global variables
/ Z V$ t" h3 Y" |, b$ ]
* ?+ o9 g4 w3 c4 c- (setq hatch-elist nil)
+ V, M8 c$ k% q3 n4 x0 E9 r
3 z7 w& {8 q7 b1 ?- { Q) ~0 B" }- ;;; If we get this far, both ai_utils.lsp and acadapp.exp are! J k: f! Y* K- q F" l8 U1 e
- ;;; assumed to be available.
) b' s3 k% Y1 Q$ B' _: I3 P% o; \. l - 6 y) Y/ o! `: C0 N$ _: y
- ;;; Define and encapsulate all subroutines that are declared* L' d/ ]1 h z, k+ q
- ;;; locals of the (ddmodify) function.
' N6 v7 N. ]6 p4 Y1 a; P# j
, |( |& _3 p1 u& ~, X' {- (defun ddmodify_init ()/ p1 p7 D8 j3 D3 k
- ;;2 G2 m- H7 y% v, X, e' D8 z( b
- ;; These three functions modify the enitity list for common properties. Since N* o& @% a* r l; _' M+ n
- ;; color, ltype, and thickness are absent from the object list when they are
: J; _4 @0 k/ _3 D" M" z+ F ` - ;; set to their defaults (i.e. color = bylayer), a simple substitution using
' U, K5 ?+ a! j+ q' ] - ;; SUBST is not possible.
2 K$ Z3 q2 o# q9 `& T - ;;
# F- ^6 K- J( A9 _, S' G - (defun modify_properties ()% a& h# ^# k1 T3 |
- (emod ecolor 62) \. Z# X6 d# R6 C$ t. Y' v+ g
- (emod eltype 6)* S$ i& R% ?0 e8 }+ }7 b
- (emod ethickness 39)1 |! s* s7 Y3 C# W6 g% G( H( _
- (emod eltscale 48)
/ c; N% m, Z# t' o0 \ - (tempmod elayer 8 nil)1 o9 p% R+ _, d& p+ L
- )
4 Y5 X' k' P: m - ;;
+ r% O% _8 m3 }! t5 T2 F - ;; This function is used for modifying common properties of the ACIS
# h1 P$ d( N1 p! `; E - ;; based geometry objects. Thickness is not valid for these objects
' x" B" i8 A) r# ?& g - ;; so it is left out.7 l' i; X; ?' M. u# S7 ~2 {) T, ~
- ;;
' Q& p/ A2 _2 m. Q& P v9 z' O - (defun modify_prop_geom ()) z8 e. @4 B0 l2 X/ K
- (emod ecolor 62)
' f9 Z3 Z9 p% Z, m0 Z3 c - (emod eltype 6)
6 B6 w! |7 y0 r0 h# I2 Q - (emod eltscale 48)
1 j1 U" ~1 L: X |( F - (tempmod elayer 8 nil)* N3 |8 `# U) E+ O$ @( f
- )
: h/ g U7 k; o' u) |1 Q - / o9 w( q* B$ s; S
- (defun emod (value bit)0 K4 N& N) |! J+ x# P
- (if (= bit 62)
2 j! X. j0 J3 w9 T) t - (progn1 ^/ \/ h Z8 Q0 R& x+ G. d5 w; I
- (if (or (= value "BYLAYER")' M' U0 u) U- T1 ]2 U0 O) B2 K( S
- (= value "BYLAYER")) (setq value 256))% W$ j9 Q5 w7 _/ i
- (if (or (= value "BYBLOCK")" @/ I- T1 u6 o+ G/ K
- (= value "BYBLOCK")) (setq value 0))
( _% T- ]8 }3 u- a4 `3 D - )
2 ?' w$ O+ `; O c3 \ - )/ t$ J" {0 K6 P2 y
- (if (setq oldlist (cdr (assoc bit elist))). Q0 e0 l# P6 X
- (tempmod value bit nil)
+ ]2 q, ~1 n4 \ - (setq elist (append elist (list (cons bit value))))$ f# j1 d2 O8 U$ r* ]8 K
- )1 L8 _/ Q& M; F1 c# B0 w
- )
6 O( W- B' N# Y8 C7 L1 w2 D - ;;
5 g" V% V6 @# I8 Z - ;; Resets object list to original values. Called when the dialogue or
" L- Z4 y2 M8 i( u - ;; function is cancelled.
6 X2 C) w# a1 e - ;;
/ A( I5 W4 C& E o' O$ q/ Q! b - (defun reset ()1 \" P) b# C% F
- (setq elist old-elist
: R: M% y2 K! W$ h - ecolor (cdr (assoc 62 old-elist))
( {! R, u) t# L) L - ethickness (cdr (assoc 39 old-elist))
$ ^8 }6 B2 [0 \1 A) H' p - eltype (cdr (assoc 6 old-elist))/ o' l# x& V' e' R
- elayer (cdr (assoc 8 old-elist))
9 [) ?9 l" |& r& V - eltscale (cdr (assoc 48 old-elist)), [# A* q, C% \6 \. S& F! E
- )
/ v1 c# P1 k5 H+ b7 Z: n - (if (not ecolor) (setq ecolor "BYLAYER"))
; N$ L2 Y8 n4 t8 ~5 \- q* P - (if (not eltype) (setq eltype "BYLAYER"))3 y" p# r8 ?4 j0 U1 D
- (if (not ethickness) (setq ethickness 0))
2 R3 t" }& a( U: W+ { - (if (not eltscale) (setq eltscale 1))1 q1 w7 G& w6 U% \$ o) @. ]* w; k
- (modify_properties)
1 R9 p, {. Y4 R' }. x - (setq reset_flag t)( r% g$ t# v& m
- (entmod elist)
y* K5 T1 @4 Y: Y: n5 D0 I& S+ F - )8 i/ s% C! u: {. u" D8 e& A- T
- ;;
+ _3 @4 z: B+ s - ;; Modify object when dialogue is temporarily dismissed to reflect latest; ]8 @# _& n% O, O
- ;; settings of dialogue. It converts the point from current UCS coordinates to
1 i7 t! U* k; E' O4 h5 @" o - ;; the proper object coordinates (world or object).. z$ b2 L3 {/ K1 j
- ;;
! a* `6 _0 g$ T* j - ;; Arguments: value - in current UCS coordinates
6 u9 j/ O- f! q! e6 \ - ;; bit - object code (i.e. 10 for start point)$ E& M N. H* o! V& ~! d
- ;; ptype - point type 0=world 1=planar
6 ~$ y: J* ~9 k - ;;! [6 G0 K0 M$ y: ^0 }
- (defun tempmod (value bit ptype / newpoint)! B5 J, \: V, @ f$ P" J
- (cond7 o) M$ U- h- }) v9 D8 P' e& b
- ((= ptype 1) (setq value (trans value 1 ename))) I8 v0 _$ z' p; E0 V' c4 K3 @
- ((= ptype 0) (setq value (trans value 1 0)))- z! C/ l% s+ {. f
- )8 |* e( }; b5 N4 c( O. ^
- (setq elist (subst (cons bit value)
5 N8 y6 @* H+ C1 `* y" E3 {7 o! C - (assoc bit elist)6 o# `5 ^( r% o
- elist
3 l5 P/ l7 f% Y3 }, p o - ): I) ]& ~$ A, T; l- D) }
- )
9 R1 m3 `6 u7 V1 I$ U3 Y) J# \* W6 @ - )0 B( P8 ~) h2 `. v" |2 {
- ;;
0 K8 U i( v. _) A: }- J" c - ;; The following functions are called after a dialogue has been temporarily
6 |) v! P% U! j% A& c/ q4 U - ;; dismissed and the user is selecting a point. If a point is selected the/ j3 q7 k8 D D5 Y
- ;; object list is modified and new X,Y,Z values set. If no point is selected9 U# J& @2 M# Q& n: v$ i7 t
- ;; (null response), then the point is reset back to its previous values.# k4 T" q3 S, ~$ O
- ;;
$ e! y' Q8 F! m, W7 x - (defun ver_pt1 (ptype)
! d! d U S- @5 a! t8 b& T - (if pt1
* N) P. F: @+ e/ i) O( Z - (progn$ ~$ `2 M+ q7 {7 y: S
- (tempmod pt1 10 ptype)
, ]4 B4 `/ c$ K/ P: }' s. _ - (entmod elist)
- ?. S. F) X1 C5 Q' a S - )
5 U* }# O$ Z8 q- a3 f - (setq pt1 (list x1 y1 z1))4 Q' n5 C/ ?4 w( k# ~
- )/ k" u% {3 z) C9 x. } \
- )# L) {$ u& L2 O! ?7 W9 R3 o# ]
- 3 ~( z$ ~* b3 ~* f
- ; (move_pt1 <ptype> )
1 U2 T; K4 q2 M& T3 q - ;
0 F! d. ]) ^8 ^0 K) G- N - ; Called in liew of (ver_pt1) to translate block insertions which1 o/ _( ~' f6 _/ s/ M6 Y
- ; might have variable attributes attached to them. If the distance: Z% f: m8 q" ~
- ; the block is to be moved is < 1e-6, the move is deferred.5 g6 }5 o0 x( G0 \) \
- L8 K3 ?$ G- H r
- (defun move_pt1 (ptype / basept hi), w$ a% t/ M- y! `# v! |! A0 w( d
- (setq basept (trans (cdr (assoc 10 (entget ename))) ename 1))( y/ a4 M3 ]# X
- (cond) m2 d2 s) V' Y% A5 S. {& U1 |
- ( (not pt1)
' _' n+ a8 X" G* h - (setq pt1 (list x1 y1 z1)))+ M5 x) D& _, I1 T6 y$ h
- ) s% L) v" U7 [- R& y B
- ( (> 1e-6 (distance pt1 basept)))
6 N% R; ]: J) e: l6 P, ^ - 1 C1 `( G7 ]. l2 m1 c! e5 w" @
- (t (tempmod pt1 10 ptype)
, X. Q, f" G1 d+ U1 r! t' c; K2 R! C - (setq hi (getvar "highlight"))
2 ~) l: f" \. `# o/ ` - (setvar "highlight" 0). Z3 h/ \+ A6 V, F/ X5 [: W
- (command "._move" ename "" basept pt1) |# L8 m8 k' o7 Y+ j
- (setvar "highlight" hi))' S4 y- b1 p3 n$ x
- )$ ?: W8 d6 H/ h K: Z- [
- )( `8 l5 I$ [. ^% n3 P
- % U" d% f( E# o
- (defun ver_pt2 (ptype)
k8 B0 W4 l9 E - (if pt2! o1 A! b( }0 f1 a) k8 R
- (progn _" d. B3 t: G5 d7 P( k
- (tempmod pt2 11 ptype)
% C: r* {+ f# Y" m* J% ^( D - (entmod elist)7 ^! T* v2 R, l" `' I' s/ N5 V
- )' Z/ ~- _" ~% @
- (setq pt2 (list x2 y2 z2))7 {0 B2 E# J, ^. z( x/ u# Y7 `
- )# m. Y$ P1 S9 v& s( j7 Z! ?+ Y/ ^
- )
+ ~) I6 j" C% R5 P9 \
" L: l7 ^* I9 h) ^3 k4 a) r- (defun ver_pt3 (ptype)
. V) k. @" z# u - (if pt3
- z! @5 P( C9 Y, g/ J/ U - (progn% O) C" r6 N: j" a9 ]/ W) F
- (tempmod pt3 12 ptype), j1 ~" X F( U' S; V
- (entmod elist)
, V$ C `, Z! g* U' x - )
4 D- g$ _/ ]* R. f* C. r - (setq pt3 (list x3 y3 z3))
+ d- M; i" p, j% I - )
4 H- O* G0 x% w1 l - )4 Z, n8 o8 W3 `6 t8 u P9 b
- ; R- S8 F7 D6 t0 ]# u) R+ l
- (defun ver_pt4 (ptype)) y8 I8 S3 D( Y0 g5 F* _
- (if pt4- r$ c$ p) |( j: P0 j! ?
- (progn
5 d% W- n3 y, e5 h2 |! P - (tempmod pt4 13 ptype)
5 J- g9 @& z& I - (entmod elist)3 M: i5 f# m6 O5 n# c+ L
- )7 Q# C3 P* b+ W& j/ I I# E* q
- (setq pt4 (list x4 y4 z4))
4 p' ~% @3 p# | - )4 |' {6 q c) [3 \& t# {/ @; T% g" N
- )
0 k+ w; ^' f' H. l4 A3 h3 b - ;; Xline/Ray
: h7 L, v+ I, h' b8 U; p - (defun ver_xline_pt1()
6 x2 U- Q* m- p4 V. v5 ] - (if xline_pt1# F0 a4 C1 Q: h& E' N) b2 J
- (progn. \/ p$ I" u/ @/ _: P
- ;; convert to WCS.0 P# ~, x, V7 e4 d- g6 B
- (setq value (trans xline_pt1 1 0))
# o* t! }/ I- z( g* I' b# o - (setq elist (subst (cons 10 value)
; p' c; u* L& w - (assoc 10 elist)# i7 d3 ^; z$ c- f; K: @& o1 w- j
- elist
, X2 J: v' R/ J0 K - )
# S- H+ \- M" q. t' W& q - ) [) {2 Z# Q( ^' i9 Y9 ~0 I
- )8 I* H: \8 C6 M- {: I' m9 O7 `
- (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))7 g) \* c$ I7 n0 H1 |1 o
- )7 z' v3 C" B `& K& h" A, E4 s8 H
- )1 e+ D, w2 j+ I; G9 N) w
- & H+ r d+ H, ]1 l* o# i& m1 Z3 [
- (defun ver_xline_pt2(). G: T# r3 E- B" H) J+ P
- (if xline_pt2. C5 P5 N6 N3 d3 z) r9 \ g
- (progn. E; Y5 N5 Y2 q! N/ ^& R3 T
- ;;" b0 C) o0 z2 i1 I$ \, {. N
- ;; Calculate new Direction Vector WCS
& T) O' `- m& o* v, w M# j - ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))
- E5 h) w. {" y - (setq temp_dir (trans xline_pt2 1 0))- e) U6 L$ T- c3 Q0 T3 b" i
- (setq temp_dir_x (car temp_dir))
8 f) R' [ q2 W* K* a. | - (setq temp_dir_y (cadr temp_dir))! q6 U! B7 K/ Q" a
- (setq temp_dir_z (caddr temp_dir))
# D( B; X+ g3 i/ {5 W, a - / o5 x' M, Y* v1 z
- (setq temp_xline_pt1 (trans xline_pt1 1 0))
! z; _. Z, ?- _. p; h - (setq temp_xline_x1 (car temp_xline_pt1))
7 y1 w8 _# ^ U/ b - (setq temp_xline_y1 (cadr temp_xline_pt1))
/ d. S A" o" l) ~$ N% ~ - (setq temp_xline_z1 (caddr temp_xline_pt1))
4 n0 l1 B8 m3 D5 C - $ i* f: \8 N( w/ o) D) Y: ^$ F1 {% D
- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)
5 _ M' s& Y: Z. Q( c, v - (expt (- temp_dir_y temp_xline_y1) 2)! E4 F" C0 s0 R6 q# l
- (expt (- temp_dir_z temp_xline_z1) 2)
) C+ P* e' _! o3 V% [+ X0 d - )))
) O5 C; M1 h$ }- F8 r6 F( W6 K - (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
" |5 Z% G; k# @& C; W' i - (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
9 Z' G% K$ d# Y* ^ - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))
6 u3 T; u2 X W% I - (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))
0 H* g1 Q% K( l8 W - (assoc 11 elist)
* m9 J7 p* j' y - elist' w |, P& c" g% z$ s( [0 [' \) B
- )
0 v( W# c7 p+ Y, x/ n - )
4 X1 A' O$ r% Q2 U; D' w - (entmod elist)/ d- r, ^7 j) X j8 M$ O1 H, u7 f8 c6 Z
- (setq xline_x2 (car xline_pt2))& J) y% O. X0 q$ _4 J! J
- (setq xline_y2 (cadr xline_pt2))8 ^3 q! g( m1 p+ c% n/ w! V" ~- L
- (setq xline_z2 (caddr xline_pt2))
# H7 O( l/ a2 F8 T/ y) b - 9 y9 m8 U% f- `4 C% e
4 D$ K; H; H/ G& B" f- )2 \: n3 K' `1 L/ L8 L6 n/ R
- (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))6 H9 z# A p, W, U. ~ b: P3 \
- )
. a2 ~) {) S5 @$ U. U - )
! z- k; P: ]2 f' a6 m* d ]
6 G* K9 o8 K* w0 k, ~# e7 I- ;;+ ?0 {- |) W6 k6 G [+ L) _/ x
- ;; Common properties for all objects
% Y- ]) y' V) r+ h, ^3 \ Z3 e - ;;/ j( f: e7 O. @0 U3 S6 i( E
- (defun set_tile_props ()( l2 {) l9 \6 h- W" A
- (set_tile "error" "")
5 N! S4 t0 S% \. a7 m# B - (setcolor)
$ c6 k7 ?7 F, y+ z3 K% h - (cond
# H* q# V- @- ?' w2 R, \ - ((= eltype "BYLAYER")
- W# K8 R+ u# _ - (set_tile "t_ltype" (bylayer_lt)))
" b+ z7 ~ _9 V9 q! G% x' j( Q - ((= eltype "BYBLOCK")
8 ^% B4 d4 e. T1 h/ n - (set_tile "t_ltype" "BYBLOCK"))
3 ~6 G; d s# T5 x8 _ B - (T (set_tile "t_ltype" eltype))- |% y* L5 O( e
- )
" ]: }# p& Y& q9 p - (set_tile "t_layer" elayer)
6 n: Z) n ^% d - (set_tile "eb_thickness" (ai_rtos ethickness))
. y& d' h* t' B* P9 Y7 t' R3 h/ X - (set_tile "eb_ltscale" (ai_rtos eltscale))% @' _! H6 q, m5 b
- (setq which_tiles (ai_common_state etype))
: P$ l5 s% }3 p. I/ L3 H3 p - ;; Disable tiles if need be...
' R# I' @/ E/ i, Y - 0 n! U6 [8 G! Z0 U( \+ O
- ;; Layer Button and Text Field
" K# }; V( w* F- H) Y - (if (/= 1 (logand 1 which_tiles))' e2 R! A( m' R; \& R
- (progn
: a" M/ ^5 p G5 P! ^4 A( O - (mode_tile "t_layer" 1)" `1 R( j) D, S
- (mode_tile "b_name" 1) @- p3 W1 }- V9 c
- )7 S- ^2 X2 [8 {# h! p5 n
- )
5 s2 L4 C8 `3 M+ j6 Q" o/ C - ;; Color Button and Text Field" E# {) p4 f E* a
- (if (/= 2 (logand 2 which_tiles))7 c3 @. c$ w$ N2 [- @( X
- (progn
6 `9 f; P' `- P# k4 S' F1 E7 [" h - (mode_tile "t_color" 1)
8 A; I. A' l; a, a8 q% J - (mode_tile "b_color" 1)
# n! D# U0 s% K3 y# Z V1 q - (mode_tile "show_image" 1)$ A/ L! D& D: p1 d
- )
- U- I- l2 L' { V+ t/ X - )3 N, Y& W5 B) l# c) }$ |
- ;; Linetype Button and Text Field D" F$ ^4 t: H% ]/ J4 {- J2 X
- (if (/= 4 (logand 4 which_tiles))
. l: p7 G% S) N5 D4 k - (progn
; Y! J2 k7 d7 N1 b8 @: @& ? - (mode_tile "t_ltype" 1)
* k3 e) ~4 n: Q5 q - (mode_tile "b_line" 1)
) l& V8 j8 G4 I6 v3 d; u - )8 C, W( U! o L4 o) \: F/ z
- )/ c$ D7 {3 k3 y* E T; c* B
- ;; Linetype Scale Edit Field
j) s7 h& U- l( }' O - (if (/= 8 (logand 8 which_tiles))
8 E; t8 U5 f3 p$ [3 l' ? - (progn9 _* I7 ?6 j* h5 y* @( `' L; O
- (mode_tile "eb_ltscale" 1)
: u# E8 U ?2 O0 F) `7 I" m - )
- i* } ^7 c+ q- C; }$ R% D' D - )# q7 v j; \2 V6 A1 k
- ;; Thickness Edit Field.
. l; P- ~: U; d7 ?0 _2 V7 x: o% Z - (if (/= 16 (logand 16 which_tiles))5 U" v; U, c' u% h/ y
- (progn& r- f" u8 I& h9 s
- (mode_tile "eb_thickness" 1)/ m: k3 g, Y( Z+ K1 _1 w0 w& u0 M
- )
2 G+ C; ~" ~6 l) ^! @* d - )
8 [- X0 \' J1 A3 L+ p5 Y2 Q - )
$ G$ u8 q5 ~* p - ;;& H' @( i+ m/ B7 X* o
- ;; XYZ Point values for all enitites3 z( J3 o$ K" Q. N+ k, t
- ;;: t) Z6 U% O9 o4 V) c1 \' t
- (defun set_tile_pt1 (ptype)
; i5 {' P4 C! ?$ s3 Z, W: |% M - (if (= ptype 0)
# ~; B- W" x0 ~5 s! k( ]+ o - (setq pt1 (trans (cdr (assoc 10 elist)) 0 1))1 J2 l: G' q% S4 A$ c7 V+ A
- (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))
9 X1 Z7 y( w, e, U( c+ G/ Z8 w3 P - )) q6 f% r1 N9 Y5 e1 C# n2 J. a% H3 @
- (set_tile "x1_pt" (ai_rtos (setq x1 (car pt1))))5 m% c" U7 Q C' u0 O% m: M
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr pt1))))
n. `+ T9 u2 S7 _2 b - (set_tile "z1_pt" (ai_rtos (setq z1 (caddr pt1))))4 H @) I7 x5 o- C$ H# n3 }$ h
- )
9 }+ o% d; F9 c) Q. [ - (defun set_tile_pt2 (ptype)
- j) s2 E [" G4 e8 N L7 b - (if (= ptype 0)" Z r) N: Z7 H) B' k8 O
- (setq pt2 (trans (cdr (assoc 11 elist)) 0 1))
, e% R( ^2 S9 @ | - (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))
5 ]4 X" |# O ?4 M9 R' Y; J9 f8 Z, c - ) [1 W- t3 f/ R- E7 w
- (set_tile "x2_pt" (ai_rtos (setq x2 (car pt2)))); \/ I; I) D& F9 U& N
- (set_tile "y2_pt" (ai_rtos (setq y2 (cadr pt2))))! ?4 U1 o: Z0 u8 G0 D) p% Z
- (set_tile "z2_pt" (ai_rtos (setq z2 (caddr pt2))))& T7 E2 m' `9 {1 S) I- | ]* w
- )
: _( b6 T, a( `0 S% S$ X# B - (defun set_tile_pt3 (ptype)& I, L6 A% H5 I; E& y* B7 E
- (if (= ptype 0), r! h# i' v2 ~. D6 G! H
- (setq pt3 (trans (cdr (assoc 12 elist)) 0 1)); Q1 {% H- V0 M6 [" C1 k
- (setq pt3 (trans (cdr (assoc 12 elist)) ename 1))
% g9 z/ U) e V# K, N, ~ - )2 A8 r/ I/ z3 h. {' H9 f# [# b
- (set_tile "x3_pt" (ai_rtos (setq x3 (car pt3))))
5 c+ b3 C+ t }1 a - (set_tile "y3_pt" (ai_rtos (setq y3 (cadr pt3))))
! V, L$ j9 K3 f - (set_tile "z3_pt" (ai_rtos (setq z3 (caddr pt3))))% o8 \4 Q# D( i! p
- )+ B1 C2 i7 U( f+ [* m2 T" P2 g$ [
- (defun set_tile_pt4 (ptype); ^# `. Y$ N* B$ [/ ]( G
- (if (= ptype 0); e# B3 w* V! v9 m1 J
- (setq pt4 (trans (cdr (assoc 13 elist)) 0 1))8 Q0 N# X2 d, G7 {1 Q2 ^0 _
- (setq pt4 (trans (cdr (assoc 13 elist)) ename 1))- K8 L4 u# ^- Q! \, F2 Z
- )* Y: L Y% ~6 v: J8 n% i' @* [
- (set_tile "x4_pt" (ai_rtos (setq x4 (car pt4))))
7 _; x. q+ n0 W2 [ - (set_tile "y4_pt" (ai_rtos (setq y4 (cadr pt4))))
- g* {' d" n9 ]& X! t - (set_tile "z4_pt" (ai_rtos (setq z4 (caddr pt4))))2 I9 ]& ?4 P# V- j
- )& N2 M s8 b" b) A
- ;;
) f& t1 p- Z$ h# T - ;; Xline/Ray
7 B/ c3 a9 G* _" K - ;;1 i9 J) [- B9 t$ O5 g7 L M
- (defun set_tile_xline_pt1 ()# O- s3 g+ K, b# Z, I1 A
- & k" N; D* N/ q8 E9 u! |5 \% U7 P& c
- (setq xline_pt1 (trans (cdr (assoc 10 elist)) 0 1))
& U1 }. i! ~/ I- X. y* W - , {, x1 p7 L6 _+ M; F2 l
- (set_tile "xline_x1" (ai_rtos (setq xline_x1 (car xline_pt1))))
: f9 d( b1 b6 m4 y% s0 Z5 E - (set_tile "xline_y1" (ai_rtos (setq xline_y1 (cadr xline_pt1))))1 R9 F+ z$ K' ] }* s
- (set_tile "xline_z1" (ai_rtos (setq xline_z1 (caddr xline_pt1))))% Q) ] ~0 v- e- \
- )
: D) i6 n( `; z- E' ^8 ` - (defun set_tile_dirv ()
) u) g' a+ P& j( M - ;; Convert 11 group to local UCS (displacement)
w. v I! E: i6 ~ - (setq dir_pt (trans (cdr (assoc 11 elist)) 0 1 1))
$ t" |6 G9 G+ p& a/ e - 1 l( O J _/ K' R- a5 s& t( M7 Q
- (set_tile "dir_x" (rtos (setq dir_ptx (car dir_pt))))
5 v8 D/ _8 n7 [0 `! b' G2 \4 ]/ E0 w1 @ - (set_tile "dir_y" (rtos (setq dir_pty (cadr dir_pt))))
- J& F1 A6 q1 M# F4 \. M! y - (set_tile "dir_z" (rtos (setq dir_ptz (caddr dir_pt))))
& ~/ c' n4 X& J. Q- b - )
# L9 U$ S1 _/ ?& |: S, A: S - (defun set_tile_xline_pt2 ()
; Z: q* D3 G- [" d - (if (not xline_pt2)- L1 ^2 M* r) M p1 A) T5 C2 T+ \
- ;; Initial second point is Root Point + Direction Vector. C) L( G( c8 h$ v. [. b
- (setq xline_pt2 (mapcar '+ xline_pt1 dir_pt))7 i# ?3 m; m V5 u# [
- )
$ _) T! t0 |% ]: q2 T - (set_tile "xline_x2" (ai_rtos (setq xline_x2 (car xline_pt2))))
5 l2 a9 I; R7 H6 y+ |7 H - (set_tile "xline_y2" (ai_rtos (setq xline_y2 (cadr xline_pt2))))" Z2 h/ x1 m0 z: V) w9 [& u
- (set_tile "xline_z2" (ai_rtos (setq xline_z2 (caddr xline_pt2)))): G) H& d2 I. g: V" R0 c8 d
- )1 Z% b2 q5 j6 |- c9 z
- 0 z- t* d) Y$ | v& Z
- ;;' I2 a/ \; U. u+ f- U( \6 p6 P, l
- ;; Handle for all objects. B5 F4 l2 x. E* u1 y7 D
- ;;5 s' f6 E/ G9 K- e4 H
- (defun set_tile_handle (); u0 X7 N" j3 G4 Q8 L }* |
- (if (setq hand (cdr (assoc 5 elist)))4 l2 V( p! M3 I& {% i+ e
- (set_tile "Handle" hand)
6 Y. j' Z: } t4 A6 |: ] - (set_tile "Handle" "None")
) O% ]1 G$ l2 \: | w1 P" D - )4 Z' R- o3 s) [- j0 W6 K- n
- )
) f5 f5 h, G8 @; [ - ;;
" k5 u2 P' t- g) ^ - ;; Radius for ARC and CIRCLE8 ?# j% X- g4 \& d& I% Y
- ;;) @6 |- I4 c4 A; _6 \' [: M* l
- (defun set_tile_rad ()
% b3 L' _) j4 M' d1 b3 m; Y - (setq radius (cdr (assoc 40 elist)))
' x" I6 D6 n* C; ~5 } - (set_tile "radius" (ai_rtos radius))
0 h; {* ?' O. y0 f. b1 O9 x# W - )
8 U: s) t/ o) U% P* M: E2 i/ g0 A - ;;/ ^9 K2 f9 u' v1 B( P2 E
- ;; Start angle for ARC( b# _3 [) y' h+ Z1 Q
- ;;
' B+ b; W5 g8 D2 X* y, \, f - (defun set_tile_stang ()
2 N. t: e! l+ u0 Z( Z: I - (setq st_ang (cdr (assoc 50 elist)))+ l4 `$ j" g2 a$ |2 K
- (set_tile "st_ang" (ai_angtos st_ang))! f) e6 I+ E5 B) x9 ?# Y# g
- )
% K' N$ S) r M8 g2 k6 F - ;;
! }7 H1 E6 T1 T: ]" z' a' S - ;; End angle for ARC e2 j& I* r$ u; H4 g
- ;;
6 {# @5 i+ U. ?8 H% [) y - (defun set_tile_endang ()
+ r# s h4 M7 e c! D - (setq end_ang (cdr (assoc 51 elist)))+ w/ D3 @9 Y2 g/ y. i0 m# ]1 W; {
- (set_tile "end_ang" (ai_angtos end_ang))
) y8 \: B$ J2 |) `# _ - )) L# N$ G# }& }' O; y. q
- ;;
; U: ^/ S0 v, `3 U4 ?: v - ;; Rotation Angle - Text, Attributes, Block insertions and Shapes4 [, v8 l$ R, K: j
- ;;
( F/ e R0 u/ Y4 u- i - (defun set_tile_rot ()" D T, \1 s3 F8 b& B
- (setq rot (cdr (assoc 50 elist)))) d: R$ z1 [( K+ E2 q0 `
- (set_tile "rot" (ai_angtos rot))+ I6 K$ H9 E+ j b
- )
7 Y3 J5 U+ x* |7 N - ;;/ w t. R( J% j- l
- ;; Height - Text, Attributes and Shapes1 w+ L! z) x$ K0 s5 W
- ;;
6 `! q9 @2 t% H* W2 f- T- r - (defun set_tile_hght ()/ [ I0 [* I, F+ Q6 d
- (setq hght (cdr (assoc 40 elist)))
9 f$ W/ V. j+ k. n4 q - (set_tile "hght" (ai_rtos hght))' @, J, X2 p5 R; X
- )' T. d1 T' u4 |. C2 [& w
- ;;9 H4 @' E/ R- c' z8 ~
- ;; Width Factor - Text, Attributes and Shapes
- Y. Z( P! X# L4 }4 Q2 t+ O' W - ;;: T6 G3 J( a! B& m& ]8 h+ o
- (defun set_tile_wid ()
7 h I8 x1 n( k, U" \ - (setq wid (cdr (assoc 41 elist)))
8 e: Z) T7 Z! z* l% N - (set_tile "wid" (ai_rtos wid))6 H4 q7 m8 l l3 C) [4 j
- )% Q& d" a2 T0 C# `4 w) N3 x
- ;;) ~1 ^% d N' u4 e+ s. p( r. ?0 b
- ;; Obliquing Angle - Text, Attributes and Shapes
( @$ i9 v t- r) K - ;;
" {1 J- g$ h# o, [0 H - (defun set_tile_obl ()
c D4 F7 `5 p2 k* e - (setq obl (cdr (assoc 51 elist)))& U8 @# H) T* n) h
- (set_tile "obl" (ai_angtos obl))4 |4 |" H* j; D) [
- )7 k; @+ y4 k& e8 e; S0 S
- ;;
h( T% \+ r" R" }# u) S - ;; Text string
* g% e" i/ v: n7 l( s. _, \7 n2 w - ;;
) P/ ]* W* v) G, }% ~4 j* |9 ^/ }2 u - (defun set_tile_text ()
& `- E, z2 \3 p8 w6 y - (setq text (cdr (assoc 1 elist)))
, K$ U) r9 _& K5 i3 D; P* { - (set_tile "t_string" text)
0 `# e$ J' |8 I$ T - )/ r# ~1 r+ b3 O( B8 B6 h
- ;;
4 e% N5 q$ v) R - ;; Attribute Tag( n: Q k- Z5 M
- ;;
; i! f) z& x1 Q9 N7 c! \) r - (defun set_tile_tag ()& a' y2 v) U+ P. s* C
- (if (= etype "ATTDEF")
( l! F* p" Y" ^2 v& ^. v - (progn$ o, E5 I" X$ s; v0 t, D( i6 }
- (setq attag (cdr (assoc 2 elist)))
/ J4 T, Y" A$ w3 o* L - (set_tile "tag" attag)$ s( A# r/ n- F5 Q' N, w
- )
5 G% [7 p! }, o7 T2 c- O - )
! F1 S2 a/ e; d" _: A7 W% N - )
9 D+ m8 w% z9 W1 B0 [6 F7 x( F - ;;6 d/ k; U6 p! `
- ;; Attribute Definition( o: m0 A0 g ~4 M4 E& r
- ;;
( F+ U2 E1 P9 q$ B& j/ N - (defun set_tile_prompt ()# b" ]/ a, Q6 |% c) x+ P( E
- (if (= etype "ATTDEF")
( @$ X7 @: L( [5 Z - (progn; T! u9 T) _4 ^3 S# j \
- (setq atprompt (cdr (assoc 3 elist)))
- ~$ Y: @5 d1 X - (set_tile "prompt" atprompt) g* d9 d: W$ r' N4 H8 A: s' K2 C
- )
+ o) y5 V% i! A5 P - )
4 [+ M$ Y6 g' t% X6 F - )
1 H7 X# o) A f5 k! O' A1 ?) v2 F+ c - ;;
+ f( g4 _+ Y+ X8 d" @3 i - ;; Justification setting for Attributes and Text. Initializes, d# S! w, s p6 [8 w, O
- ;; popup list box5 l% [% ?7 B/ p/ m( M; L2 {2 Q
- ;;2 l; v5 h2 b+ m D# |$ j
- (defun set_tile_just ()/ Q; C3 w/ P. M/ G, I: z) Q0 `
- (setq ha (cdr (assoc 72 elist))) ; horizontal alignment/ h! e7 C; \2 O8 [. P
- (setq va (cdr (assoc 73 elist))) ; vertical alignment
4 e8 ]' D/ M' L3 n# X - (setq ha-prev ha) I- i: L* H: J" Y
- (if (= etype "ATTDEF")
$ d D4 o1 Y$ p( T- D5 r/ u - (setq va (cdr (assoc 74 elist))) ; vertical alignment
4 }6 ]! z6 R; u8 x; g) ^ - )
& M( Z4 {$ l$ t - (setq jlist' N5 I! P8 ]* y
- (list "Left" "Center" "Right"
: p3 z) K$ E& E: @! \% b; o - "Aligned" "Middle" "Fit"
. ?! N8 m. p/ Z - "Top left" "Top center" "Top right"
) e" E" m; p# ^# c - "Middle left" "Middle center" "Middle right"- F# T0 t4 Z1 a2 H+ L
- "Bottom left" "Bottom center" "Bottom right"
+ f0 m8 K) ]4 K1 ~& y! A - )
& ]6 B P3 ^, d3 G, L9 u - )
7 `8 F7 D( \9 @; s! z7 J - (start_list "popup_just")" L7 y9 I0 e# c8 Q
- (mapcar 'add_list jlist); m; z" a5 n4 h2 U
- (end_list)
4 ~+ ~7 g z& t I2 x - (set_just_idx)
1 v5 N2 F2 E8 r' e2 |- A - (set_tile "popup_just" (jlist_act just-idx))
/ B0 y4 z T+ R0 _ - ): y+ L2 r: v. C
- ;;
" } ]6 Q/ S' Y% g/ U, |$ D$ J - ;; Style setting for Attributes and Text. Reads symbol table for popup list
9 h8 ?- f7 X+ a& y - ;; box.! x7 s! h" O/ y: N
- ;;
* y( ^* T4 T( v% s* t) ~0 [) x# u - (defun set_tile_style (/ sname style-idx tlist)
/ c! {, w6 w1 ]5 j+ L+ C( T6 H" J - (setq tlist (tblnext "STYLE" T)
: F6 F8 g. z) {! h' o5 e - slist nil)# ]6 y! k% h+ g8 b6 H# g& r
- (while tlist
/ W- n) _: q0 V& |" X% V - (setq sname (cdr (assoc 2 tlist)))
2 a9 b9 K& |1 `! E% L, S - (if (and (/= sname "")$ f$ H* w+ ]: U1 G1 K
- (/= (logand 16 (cdr (assoc 70 tlist))) 16))* L4 X4 L' G% g/ `0 W3 P/ g
- (setq slist (cons sname slist)))
) @$ U. ~; C( y - (setq tlist (tblnext "STYLE")))
. b. d1 A4 G- I2 L - (if (>= (getvar "maxsort") (length slist))) v; s) a2 ?1 o+ L2 g) I! v" K
- (setq slist (acad_strlsort slist)) ; alphabetize style list" T* S4 P+ x, Y3 T
- (setq slist (reverse slist))) ; or reverse it to put it in DB order
9 x, x( g( P4 i- x - ' W$ z+ m1 ^; t0 S( a6 H+ U
- (start_list "style")
, y7 ]5 j: g/ q5 j+ q0 x - (mapcar 'add_list slist)- [. M$ _+ V3 M4 i* \: `& c
- (end_list)
) H0 ~$ j9 U3 A |( F* X1 o - (setq tstyle (cdr (assoc 7 elist)))% H, ~8 A/ Z4 Y" N8 b6 k$ [
- (setq style-idx (getindex tstyle slist))
8 T& x8 z. X8 U - (set_tile "style" (itoa style-idx))
2 A, s- I2 k+ n' Q! L+ _ - )( F% u \$ r: A
- ;;
: D# Z; ?! Y- `" d* s - ;; Text and Attribute setting - upside-down, backwards, H' U% V j H
- ;;/ v* P( ?/ a( Q7 c5 f: h2 P! f( V# v
- (defun set_tile_bk-up ()9 {/ x5 w' d% i) O4 v& T7 T# D5 W
- (setq bk-up (cdr (assoc 71 elist)))4 c8 K; B( V( Y( c! Z
- (if (= (logand bk-up 2) 2)
9 g- q( ^8 E6 t5 C. k2 g - (set_tile "bkwd" (itoa (setq bkwd 1)))1 ~ \$ A) f' c% E
- (set_tile "bkwd" (itoa (setq bkwd 0)))
o* p+ g: i/ p$ L% ?: K - )2 e9 y+ G& H8 i: v4 m! V3 d& {5 V
- (if (= (logand bk-up 4) 4)
! } k! B4 O2 r( O - (set_tile "upsd" (itoa (setq upsd 1)))
: N; s6 J0 A/ }" t- C5 R - (set_tile "upsd" (itoa (setq upsd 0)))" ?0 V8 Z( ?! Z; c( V. t. D' X9 o+ i
- )
h: v" J1 U" H+ A2 a8 @/ M8 l - )9 ^8 K9 b7 y& N4 E7 q
- ;;
3 f, n# [& O6 ^4 z `* @; i - ;; Attribute setting - invisible, constant, verify, preset
( ~( i! A* c4 D7 T. _ - ;;# \ F, a6 t2 _5 w/ h9 w
- (defun set_tile_icvp ()2 Z5 Q( q6 K$ z. O: l
- (if (not (setq icvp (cdr (assoc 70 elist))))
) B2 ?; {1 `9 S+ U - (setq icvp 0)9 Z& k+ E5 K, ]# j
- )
& v+ X9 k R, m: f - (if (= (logand icvp 1) 1): H9 F) ^1 v& }. m
- (set_tile "inv" (itoa (setq inv 1)))
0 s& \! {" U Y) j5 T+ F - (set_tile "inv" (itoa (setq inv 0)))5 J% a+ Z/ h9 h' Q" _
- )
8 t; }3 l" F: R! b1 i! g) ^0 I1 A! [6 j - (if (= (logand icvp 2) 2)
# ?+ H4 Q! s3 n+ J - (set_tile "con" (itoa (setq con 1)))( Y1 c* \9 n# \; m& x
- (set_tile "con" (itoa (setq con 0)))5 v* _7 w) _6 i+ [
- )
$ z' n4 ?8 S& s8 |# T& Z2 i0 j - (if (= (logand icvp 4) 4)( Z/ `8 ], Y1 w- L7 I6 A
- (set_tile "ver" (itoa (setq vfy 1)))
( ^' c) \) Z7 Z( m, I- t1 M6 ]. u - (set_tile "ver" (itoa (setq vfy 0)))
" j5 L5 k3 n1 j" L - )
9 O+ ], K( u' q3 ^* M - (if (= (logand icvp 8) 8)
6 t- a, k) ~$ X) k - (set_tile "pre" (itoa (setq pre 1)))
1 p( g: c$ `3 ^" f - (set_tile "pre" (itoa (setq pre 0)))
( T' Q1 |; i, x" S7 L - )
1 o4 r9 r2 b- B2 O! L; ` - )$ R) m i, u' H2 ? P
- ;;& y) X6 x. g& }. `( S
- ;; Scale factors for block insertions
" V6 ]7 I/ i2 d0 @6 y - ;;
z2 D4 U% f& w# } a7 L3 c - (defun set_tile_scale (/ temp)9 l4 z4 ~+ I# B- U6 B4 ~* i! \
- (setq temp (getvar "LUNITS"))# w w K, n* J. o: b- a% T1 ?6 i
- (setvar "LUNITS" 2)
. i5 B" t- L- G) \4 z - (setq xscale (cdr (assoc 41 elist)))9 x. H& O/ Y, V3 ?/ t, k
- (set_tile "xscale" (ai_rtos xscale))
# |7 Z. ^$ ` \ - (setq yscale (cdr (assoc 42 elist))), X# O% b# m2 ]+ p6 C
- (set_tile "yscale" (ai_rtos yscale)). k* R# e) F( T: d
- (setq zscale (cdr (assoc 43 elist)))
* }! ~+ i+ p0 F* } s* S - (set_tile "zscale" (ai_rtos zscale))
3 d( t/ _; _' E( m - (setvar "LUNITS" temp)
; T$ w- E5 f" \$ R" a' E: }9 Z6 P - )" x5 D1 G% R: ^ R5 t
- ;;
. R5 w8 d: \- b+ p - ;; Rows and columns for block insertions* h9 |3 `- V' T0 A1 X9 W$ z
- ;;/ }3 `% f( c* `5 f
- (defun set_tile_rc ()
( `; O. u, Q, U* m - (setq columns (cdr (assoc 70 elist)))
) y0 v- `/ S" h$ q6 m' {6 _$ V - (set_tile "columns" (itoa columns ))
9 [ w1 P& r$ j9 v: Y4 p" G0 P% l# x - (setq rows (cdr (assoc 71 elist)))
3 q9 e: Y( Z a - (set_tile "rows" (itoa rows)); h: M+ r' K5 }3 @+ _/ ~8 U% H0 Q
- (setq col-sp (cdr (assoc 44 elist)))
1 e% Z) C6 a: \1 u9 R - (set_tile "col_sp" (ai_rtos col-sp))5 g. r" [% L: D2 H
- (setq row-sp (cdr (assoc 45 elist)))
- ` d$ l5 ?. z5 _3 T$ v - (set_tile "row_sp" (ai_rtos row-sp))
; @; r* j9 r2 m0 u+ z% u - (if (/= hasclip T)
, N. s$ m6 x# Y; Y) ] - (mode_tile "xcliponoff" 1)
8 a! X" V3 k* @. {8 G; E! W - (set_tile "xcliponoff" (itoa xcliponoff))
g! S' |/ n) j/ l - )
8 F/ g. m7 G6 A# B- j; m' Q( m - )- @) D; u" }* {7 W( p! z0 Y
- ;;
& ]* O2 T5 u, r2 D& l' a - ;; Invisible edges for 3DFACE3 V7 z1 p( t1 d+ F
- ;;6 k' ?! t. L% Y' u( J% ^0 h
- (defun set_tile_edges ()! e/ O0 ]) }5 L# k0 q) Q
- (setq f-vis (cdr (assoc 70 elist)))
& i& U$ G J1 y1 E, v. R3 n5 t; e - (if (= (logand f-vis 1) 1)- B% ]( ?1 w3 W
- (set_tile "edge_1" (setq edge1 "0"))
* ]; `3 X+ u; d4 X7 o - (set_tile "edge_1" (setq edge1 "1"))) g; _! c0 i0 |& R& F
- )
/ }- O! c9 ?8 _2 t - (if (= (logand f-vis 2) 2)
! _3 v* j8 R. p9 r - (set_tile "edge_2" (setq edge2 "0")) W1 ^& i$ e: d9 r+ }: y
- (set_tile "edge_2" (setq edge2 "1"))
. P" ~2 G" X# K- \% Y7 L - )3 k" T% k: H6 t
- (if (= (logand f-vis 4) 4)- p! U# @! W- f4 Y& X
- (set_tile "edge_3" (setq edge3 "0"))
+ Z( G+ W' i- X& X3 V+ { - (set_tile "edge_3" (setq edge3 "1"))
" ]8 Q" l: I9 n0 i8 U& g - )1 }1 `' ]' c! H O
- (if (= (logand f-vis 8) 8)' D$ y. X- f. Y
- (set_tile "edge_4" (setq edge4 "0"))2 ?( I2 `- [" }) I% S' j4 b/ V
- (set_tile "edge_4" (setq edge4 "1"))+ t! z; `2 }* q! o# `
- )
; Z8 G B! X! [ r! _. | - )
8 [# ]0 M/ d5 t" E5 @ - ;;3 I& W* f/ J2 k) v* A
- ;; XYZ Point values for polyline vertex2 X" S$ m4 j8 M
- ;;. J) U( F/ N* e$ e0 j/ `
- (defun set_tile_vpt (ptype)5 [5 M0 L5 Y7 r" \
- (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")( f# H6 |2 j) [5 ]5 O' _- F; {
- (progn ]7 L M; O5 q( l) F5 d. U
- ;; ctr is 1 based, vertices are zero based.5 u3 t F( R2 ~- _' g
- (setq vpt (cdr (getLwVert (- ctr 1))))
( P2 s' P0 P1 G6 M - (set_tile "xtext" (rtos (setq x1 (car vpt))))" Z; Y: \( w" i9 ~: {
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))4 U& o" S5 j' U+ B% `5 O
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))8 M3 k. x2 r8 o% g# s
- )
, N0 q5 I7 p8 t, Q4 j - (progn# P5 \% f3 Q! ]1 t
- (if (= ptype 0)/ d3 z4 t. g4 N" e
- (setq vpt (trans (cdr (assoc 10 vlist)) 0 1)), N. v9 S7 g: B
- (setq vpt (trans (cdr (assoc 10 vlist)) ename 1))
0 y. E$ @9 A: A- N - )/ y! \0 A2 I$ J j. v! j. D, M7 \
- ' i" o. N3 o: b9 ]- y& ?
- (set_tile "xtext" (rtos (setq x1 (car vpt))))
% B6 P) L' N9 Q9 D+ c1 } - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
/ W. K! f8 p% G: K3 w* @0 I - (set_tile "ztext" (rtos (setq z1 (caddr vpt)))), P/ y$ |/ t6 s5 u( Q
- )3 E% [9 F* [* ^( i+ o2 X
- )
4 c. W0 _" b: W: I8 L- J7 \1 g) Z3 p - 1 l$ Y$ E& x& U8 \
- ). R" S' T) N) R% E
- ;; This is the equivalent to doing an entnext on the heavy weight% I4 b6 T: |2 n# t# W
- ;; polylines. The hard coded '4' below allow stepping over the
b7 s3 d1 M0 c0 r6 F2 p - ;; 40 41 and 42 group code information. The while loop finds the4 L) i7 ]) j5 p; k3 d
- ;; first vertex which will be used as the starting assoc in the
9 u* X P1 N$ b Q, k% a - ;; call to nth.8 C- [7 Z9 p+ b! F6 Y# }
- ;;
. H0 L( [6 D# {5 [ - (defun getLwVert (tmpctr / count tmp)0 `+ w8 j% l7 T B) z
- (setq count 0)2 M' \2 Y }! @0 G1 [
- (while (/= (car (nth count vlist)) 10)
8 X6 S* t9 {; {9 E2 \ - (setq count (+ count 1))+ @# S* n* C9 t1 J
- )% I5 x. q' I# f
- ;; If the counter reaches the number of vertices,0 R- q3 l! G' Y& a- S
- ;; reset ctr and tmpctr to zero again.
$ U6 R8 m8 g4 R7 Y - (if (= tmpctr (cdr (assoc 90 vlist)))
: s1 @6 a, ~; [& s1 x - (progn
- G/ `, r6 a+ F- {9 J& l6 k2 Z/ { - (setq ctr 0)% I, O2 {' J( s- q: I/ [/ [
- (setq tmpctr 0)
9 e& }- `- E1 n: \0 m3 W - )
# F2 d) E) b3 \+ b+ a6 `% D' O) D; C; R - )
3 e2 c( ]) ^0 u+ l& z/ D7 J/ W - (setq tmp (nth (+ count (* tmpctr 4)) vlist))0 H ~/ |+ i- m6 O9 B
- (setq tmp (append tmp (list(cdr (assoc 38 vlist)))))
9 E2 d8 ^: R# S# L1 V( z* @ - (setq pt1 (trans (cdr tmp) (cdr (assoc -1 vlist)) 1))
: C: \5 i7 u6 S - (setq tmp (cons 10 pt1))
/ a( F. J! ~9 C1 O5 d - (setq tmp tmp)
" e' Y3 j/ o3 V+ h - )
6 e4 w$ Y6 O5 J1 D" a - ;;/ Z( L( S# _: q- q, t+ P1 C
- ;; Set tiles for Spline properties. If the spline is rational then we
^8 {' |( p& @: G* L - ;; need to display the weight values of the control points, so set- F- h. v7 o/ A V. f
- ;; flag to 1.- d) h* X% [5 Z: `% t2 k h- |: [. N
- ;; 1 = rational spline" G; d% q; _2 B# c1 w
- ;; 0 = non-rational spline
2 ]4 e1 E. [' r% ~ - ;;
/ S h4 z/ Q' j& Z - (defun set_tile_spline_props ()
3 K" X2 I0 P+ W$ o - (setq rational_spl_flag 0) ;; initialize rational spline flag
3 I, t4 Y: A# l - (set_tile "Degree" (itoa (cdr (assoc 71 elist))))
9 y6 j- x2 k& V1 o+ L# H# c/ b9 A - (setq bit70 (cdr (assoc 70 elist)))$ j, U4 p$ M& s& D8 x! G
- (if (= (logand bit70 1) 1)1 z8 s; \& @/ k( | C; D: K
- (set_tile "SpProp4" "Closed")
+ ]; y9 T' Z7 r r% h - (set_tile "SpProp4" " "), v4 x5 w i+ c* L* C
- ): A1 a1 ^: W( a, \4 R$ k* B
- (if (= (logand bit70 2) 2)
- m( E8 @* {2 G; k9 d2 [ - (set_tile "SpProp3" "Periodic"), E1 m2 o! n- I2 V: X5 _( b& e
- (set_tile "SpProp3" "Non-Periodic")8 q( z' C' }. m- g: I
- )4 u5 Q; R3 M. H
- (if (= (logand bit70 4) 4), J% F# ?$ b# E
- (progn
5 |) `+ `2 W* Z0 L2 j1 Z - (set_tile "SpProp2" "Rational")7 s0 G D' s# f+ f: Q0 R; V9 B
- (setq rational_spl_flag 1) ;; this is a rational spline
$ u& y$ g/ u( m8 R - )
( H" @0 U6 k5 _* _; K5 T% j - (set_tile "SpProp2" "Non-Rational")
9 B* L5 f6 W) i - )
$ @" F6 c$ J2 U9 p4 i - (if (= (logand bit70 8) 8)6 N+ b, l% C& g' ~$ u6 X
- (set_tile "SpProp1" "Planar")' l1 u" q* a. j8 C: E0 @, t* c
- (set_tile "SpProp1" "Non-Planar")
5 W- u: y" g- Y9 X: A4 S - )+ q. [" ?- ~1 i+ S
- (if (= (logand bit70 16) 16)+ M* v- t& _* e6 T" ]
- (set_tile "SpProp5" "Linear") A7 h* Z' Z3 h4 k& i
- (set_tile "SpProp5" " ")7 V5 {( H2 I- X3 @8 b. F
- )
! s) u8 h3 E; ^# h* T - )
, p4 p5 w a) T9 G5 v7 M - ;;, ]) C+ |9 {0 o, N
- ;; XYZ Point values for spline points9 B" i) T8 ?+ x$ e2 f, E2 v
- ;; Need to account for WCS/UCS1 Q- n- E6 {4 c" W6 a, N
- ;;
# T: T/ a- l1 p |( G - (defun set_tile_cntl_pt ()/ k( C# \& O6 z. e
- (setq cntl-pt (cdr (assoc 10 elist)))! t; F- A2 ^: [% q; ^; {
- (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))5 D- y. q+ }: X4 `& `
- (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))
/ t$ b& e; C$ F - (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))) B" { e, \; R/ r7 w( V, n3 r
- (if (= rational_spl_flag 1) ;; if rational spline
. [" ^( n# ]9 Q5 C - (progn ;; show weight
1 Q% y. |4 @/ B! F! ^% _ - (setq weight (cdr (assoc 41 elist)))
; a; r# x+ @4 L# u5 I6 M, C4 C - (set_tile "weight" (rtos weight))! @" E d# Q% C" L
- ) ;; else
6 W( G6 w) f# w - (mode_tile "weight_text" 1) ;; disable weight field [/ Z( P) @+ U
- )3 Q% ?2 y/ p- f* L$ Z2 L2 Q
- )' m# y# n Y1 v4 D" c" x
- ;;
6 \1 t, F$ l2 e) [1 f, k - ;; XYZ Point values for spline points
; I" [2 p, t2 g - ;; Need to account for WCS/UCS3 l( _$ A& T2 v! t, v" T
- ;;
" t# S( R+ l6 [$ J& M. Q+ O" ^ - (defun set_tile_data_pt ()6 P' [7 b8 k* b& p: \4 t* b
- (if (not (assoc 11 elist))% v' a0 D5 b6 }( f* c3 P' S4 p3 }
- (mode_tile "data_pts" 1)
+ C5 c* X; R( W/ ]* z9 U - (progn
- }) F7 |, i$ d/ h - (setq data-pt (cdr (assoc 11 elist)))
0 z+ [8 H' y( j# Y Z3 v9 V - ;; display points with current precision.0 b+ i: \' A; t$ q" j' M4 t3 I- \4 C1 E9 O
- (set_tile "dxtext" (rtos (setq x1 (car data-pt))))1 l1 c5 M, O _( o' t' e3 R
- (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))2 @7 h3 O( X& g8 ^
- (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))
9 v" }, z/ w8 D9 Q - )
$ L7 ^% @# h, b G) o/ n4 Y - )
7 L0 R6 F# T# ]0 ]. T% n" ^ - )% n- _8 O# ^" t& X. }$ Q
- ;;, ]( E( q* K1 s
- ;; Fit curve, fit spline, or smooth spline surface setting
" B/ Z; @; S2 ~5 k7 `% W, S - ;;$ |. ]7 C1 C {7 g- H8 D9 R I
- (defun set_tile_fitsmooth ()1 G/ f$ G+ G2 o* g: [# y
- (cond9 `" I! P" f$ s/ j1 F
- ((= (cdr (assoc 0 elist)) "LWPOLYLINE")' h5 V" A( l% I$ j+ T
- (set_tile "none" "1")
9 W W$ C9 W: u/ {7 S: c - )
# s0 o# I! k% q- l. H - ((= (logand bit70 4) 4)
7 b( x" V9 P/ N3 Z9 ?2 D) d& _: y- b - (cond$ d/ k$ N) M- j( `9 m- b1 k
- ((= bit75 0)
0 R! F% j- Y2 _! p) r0 o - (set_tile "none" "1")
# I: U4 o6 _3 l7 G; O - (setq spltype 0)- X$ Y$ R8 {6 `
- )
0 t* D2 o0 j! v0 A5 t: T - ((= bit75 5)7 I- h5 Z* E1 ^2 b, o( Y, S1 e) Z
- (set_tile "quad" "1")) f% j/ `" ?" Q' W: Q' c' h
- (setq spltype 5)9 x' z, q8 ]0 d
- )7 p1 O3 q/ ^/ e A
- ((= bit75 6)5 Y) N7 m6 Y7 r9 r& n0 U
- (set_tile "cubic" "1")$ T/ f0 l- ^3 }/ o1 H. }
- (setq spltype 6)
- x9 s/ B2 u/ b3 ^; ~: t4 ?9 `: t - )# d9 X3 D/ Z2 [4 S4 {. r
- ((= bit75 8)
. ?" Y8 S* C& A( g. _0 c - (set_tile "bezier" "1")
, S3 I4 H4 d7 `3 x! d6 J' X, M - (setq spltype 8)9 @# z& a- m; F
- )
0 b0 A" |. B( E8 I/ v - )
- p0 b0 e9 Q2 G2 A* {4 X1 P8 O - )
2 @) [3 O" ?! I9 l$ c3 U - ((= (logand bit70 2) 2)4 i( L: i3 R5 ^! b: n% P
- (set_tile "fit" "1")4 p1 N* K8 M5 H) v8 a3 |
- (setq spltype 1)- B' B7 B5 {) t3 u3 w# F
- )4 j; g. H) O& i( z
- (T (set_tile "none" "1"))* @2 d! C2 w( y4 @$ z+ K
- )+ j$ I% R5 l' z' I4 D$ c
- )
6 }7 P8 Z% o' W" L; a4 n - ;;
: M' s- s4 J0 a: g - ;; Closed or Open mesh and polyline setting
5 E6 N1 X! V% Z7 Y* b I# D, h - ;;5 g8 A* w: g { G
- (defun set_tile_closed ()
. P; p9 @0 o" N - (if (= pltype "3D mesh")
: @+ ]: p9 l( J& G5 j$ t - (progn
' C( s- k0 b2 T7 D/ C$ C! M - (if (= (logand bit70 32) 32)
; _/ g. W" e3 A - (set_tile "closedn" (setq closedn "1"))
6 N8 v6 Q6 @- E: @8 G5 M( O - (set_tile "closedn" (setq closedn "0"))
8 H" M% Y0 z9 h0 ~1 @5 X$ D - )
% r/ f2 e. V7 Y, t% t) x6 D - (if (= (logand bit70 1) 1)
. d* F7 U: l1 _/ ?9 h% O& N - (set_tile "closedm" (setq closed "1"))! t1 G/ t# d; r0 E/ L9 O
- (set_tile "closedm" (setq closed "0"))
2 t4 W+ W( v/ Z/ r- m& x - )
9 Z: H6 @4 c/ r$ E R - (setq old-closedm closedm old-closedn closedn)3 f0 B L% ]: f0 L- C
- )* E3 U2 \2 d- {$ ~- R' A8 `
- )- }! b# s$ h5 |/ ^
- (if (or (= pltype "2D polyline")1 a- e0 u+ N3 g, m
- (= pltype "3D polyline")3 j* H5 A) K6 @! Y
- )( x7 e4 T7 x3 }
- (progn5 @- c" c( I) |" H
- (if (= (logand bit70 1) 1)
0 k U$ ~; R! G5 y0 y3 K$ ~0 S - (set_tile "closed" (setq closed "1"))" ^9 L* y) A! U& D; B0 f' ]: R
- (set_tile "closed" (setq closed "0"))9 K8 u/ B0 x) t$ M
- )
1 h% B+ }4 \' _0 N! m7 B, c1 d: f - (setq old-closed closed)
) w: a* F$ L' O9 \ - )
1 J0 V% Q, }* j: O' x& S - )+ Q8 ?3 R$ I3 b \$ `/ Z5 M+ c
- )
1 }, E; u( t% `0 Z& C, O1 N - ;; Set common action tiles. v- b+ |# \, B7 Q" Q
- ;;; W2 d) t( K1 Z- ]
- ;; Defines action to be taken when pressing various widgets. It is called- K# K; |/ D C+ F a0 w, B
- ;; for every object dialogue. Not all widgets exist for each object dialogue,
: B" ~6 j; k! @$ u - ;; but defining an action for a non-existent widget does no harm.6 E7 C$ I& S! F! g5 g% W/ N4 o
- (defun set_action_tiles ()
% s* \; A7 _& U) C- X - (action_tile "cancel" "(dismiss_dialog 0)")- ^7 B7 n8 n) }+ d2 X
- (action_tile "accept" "(dismiss_dialog 1)")
* g; S( s' M; ~$ r' R! i - (action_tile "help" "(help \"\" help_entry)")
' i$ m4 O+ H3 }0 n t) [3 _5 R - (action_tile "b_color" "(getcolor)")
6 L; N" }( h k2 [# M, |0 r6 T3 L' R* k - (action_tile "show_image" "(getcolor)"); t3 J8 L* A: ?7 g9 x
- (action_tile "b_name" "(setq elayer (getlayer))")" n: L- u3 t2 A2 H3 [
- (action_tile "b_line" "(setq eltype (getltype))")
- A4 e$ ^3 B( V5 p5 I0 z, j t+ \ - (action_tile "eb_thickness" "(getthickness $value)")3 W" u* Q l" E4 H: p: e
- (action_tile "eb_ltscale" "(getltscale $value)")9 s1 V# w; x: t% Y
2 q! @# A& d/ d/ L- (action_tile "pick_1" "(dismiss_dialog 3)")
5 |9 j) Q& T8 C - (action_tile "pick_2" "(dismiss_dialog 4)")
$ l! q; Q" s& ~. _ - (action_tile "pick_3" "(dismiss_dialog 5)")7 ^/ s1 C: z3 C4 _6 k
- (action_tile "pick_4" "(dismiss_dialog 6)")# t8 s: z; O" S! e
- (action_tile "x1_pt" "(ver_x1 $value)")
5 B v3 E4 w$ h6 Q/ C - (action_tile "y1_pt" "(ver_y1 $value)")
! g( g2 J, b) V. t0 ~/ C; p- ^ - (action_tile "z1_pt" "(ver_z1 $value)")
( F" M. ~; n6 L: p - (action_tile "x2_pt" "(ver_x2 $value)")
- _& x7 d1 G* r/ n - (action_tile "y2_pt" "(ver_y2 $value)")4 j+ h9 j( B0 _- [1 M
- (action_tile "z2_pt" "(ver_z2 $value)")* C( I+ p9 r& M7 l' s
- (action_tile "x3_pt" "(ver_x3 $value)")
$ @, e' U. Z7 ~5 K - (action_tile "y3_pt" "(ver_y3 $value)")8 Y: m6 K, {3 e: S! `2 }( q" K
- (action_tile "z3_pt" "(ver_z3 $value)")
3 q! ?8 } J. V/ A% ~! D8 j- C8 C - (action_tile "x4_pt" "(ver_x4 $value)")
7 m1 w% k" _ H- U s - (action_tile "y4_pt" "(ver_y4 $value)")
' R Q3 p( T+ ^! P8 b - (action_tile "z4_pt" "(ver_4 $value)")
0 w Q. U& l$ s r* l& |, J
, O% P1 \9 F1 a4 B! h; @+ Q8 J- ;; Action tiles for Xline & Ray
, N- q- P, m" m9 W2 g" c) x$ A - (action_tile "xline_x1" "(ver_xline_x1 $value)")! |1 c9 T- V' n9 N" F7 U
- (action_tile "xline_y1" "(ver_xline_y1 $value)")' v7 ?4 P; I* G/ z7 M9 x7 p
- (action_tile "xline_z1" "(ver_xline_z1 $value)")
+ {; X7 o1 Q i# g$ m3 Y! O1 ` - (action_tile "xline_x2" "(ver_xline_x2 $value)")
A& m: B6 R+ e8 ?0 g4 l3 @ - (action_tile "xline_y2" "(ver_xline_y2 $value)")# t8 d8 c0 u5 t7 X. L' I1 i4 r
- (action_tile "xline_z2" "(ver_xline_z2 $value)")
& z4 {' d* ^5 a2 Z5 P - % o3 J4 V: c$ a8 X Z
- (action_tile "edge_1" "(setq edge1 $value)")4 Z4 k" H. s& M; K
- (action_tile "edge_2" "(setq edge2 $value)")
* g1 r' a% F5 {. Z5 ^, b# J - (action_tile "edge_3" "(setq edge3 $value)")5 R4 A, V) q' [0 G1 \) \ ?8 U7 M0 Q
- (action_tile "edge_4" "(setq edge4 $value)")+ n: ^: W* t" y: H
- - s1 i% r; M7 f# i* s0 c7 {* a& [5 y, L
- (action_tile "radius" "(ver_rad $value)")
3 u( l: f0 ^* L. P' y v( D - (action_tile "st_ang" "(ver_ang1 $value)")5 j1 D* f6 F! N% I; f; @
- (action_tile "end_ang" "(ver_ang2 $value)")" o7 ^! l6 F2 Z3 i
- (action_tile "end_eang" "(ver_eang $value)"). y$ i3 a }9 D+ R
- (action_tile "minrad" "(ver_minrad $value)")
& O- r1 f P6 D. W( }5 r4 t - (action_tile "majrad" "(ver_majrad $value)")( m( T0 Z- i. B0 N+ r s: O; I
5 x" [; X* c$ D c2 @4 J- (action_tile "xscale" "(ver_xscl $value)")
( B3 F& Q& q. P: i* m) V. g9 ? - (action_tile "yscale" "(ver_yscl $value)")
: M8 `8 t' K9 W( H2 o* p( i7 G( x& C - (action_tile "zscale" "(ver_zscl $value)")5 Z7 S6 {1 a. z. z
- (action_tile "rot" "(ver_rot $value)")
/ F) [" S* }& V; O* n* i" p - (action_tile "columns" "(ver_col $value)")
5 P4 i4 D. u. @3 |1 Z( l2 p - (action_tile "rows" "(ver_row $value)"): Q* G T- J- w0 @
- (action_tile "col_sp" "(ver_colsp $value)")$ s6 A( l: G$ f O* \6 v
- (action_tile "row_sp" "(ver_rowsp $value)") p/ B, m' S" J$ M2 Z
4 L1 h+ F: Q! i' t4 ^% s- (action_tile "hght" "(ver_hght $value)")
2 D B4 s7 }& Y' ^/ Y. x - (action_tile "wid" "(ver_wid $value)")
2 I& L- Y( Q' f2 p# L - (action_tile "obl" "(ver_obl $value)")
/ \3 M v, @0 `, G- I$ ]8 o - (action_tile "style" "(style_act $value)")( |. g# s6 K _+ N! W3 {
- % W% K2 g1 l3 G8 O
- (action_tile "t_string" "(ddgettext)")
- T6 H8 a' C. v$ p: p8 m3 H* e; l - (action_tile "tag" "(ver_tag)")
( C4 G$ d* s: I - (action_tile "prompt" "(ddgetprompt)")
$ a8 j7 A) u4 v) h' o - (action_tile "bkwd" "(setq bkwd (atoi $value))")* A, U& C- r. b: M- p- c# o6 z0 ~& Z: D
- (action_tile "upsd" "(setq upsd (atoi $value))")4 n1 m( ~0 u; |' Z
- (action_tile "inv" "(setq inv (atoi $value))")
C) c& g3 g U' A6 I - (action_tile "con" "(setq con (atoi $value))")
. w8 A3 {4 o B2 W8 C) _3 \9 N, ~ - (action_tile "ver" "(setq vfy (atoi $value))")( E7 t, G( _+ E4 ~3 Q" c, d
- (action_tile "pre" "(setq pre (atoi $value))")1 n9 S* l0 Q7 `5 Q
- (action_tile "popup_just" "(jlist_act $value)")5 T0 X& N/ {& ?
- * q8 b! p+ R( O- T" s
- (action_tile "closed" "(setq closed $value)")
" ^! g% q* o, c3 } - (action_tile "ltgen" "(setq ltgen $value)")
2 n5 x, Q1 g5 Z1 n& ^$ T - (action_tile "closedm" "(setq closedm $value)")9 i) V4 g, {. b& u
- (action_tile "closedn" "(setq closedn $value)")( b3 D! R: } F1 G9 ~
- (action_tile "next_v" "(next_vertex)")* X% r! \6 K3 o* v+ l
- (action_tile "xcliponoff" "(setq xcliponoff $value)")' k* _, O5 g- O4 [1 \
) T/ P( B# {% k- (action_tile "next_cntlpt" "(next_cntl_pt)")
! y; `, Y/ e! C& c( q - (action_tile "next_datapt" "(next_data_pt)")$ f/ q5 ^; `8 W- d* Z! i k E- q. u
- + S2 g4 T; g& z- \3 ~
- (action_tile "none" "(if (radio_gaga \"none\")(set_uv 0))")6 D4 ]; b/ `6 S; k
- (action_tile "fit" "(if (radio_gaga \"fit\")(set_uv 1))")6 J; Q2 R$ \7 E
- (action_tile "quad" "(if (radio_gaga \"quad\")(set_uv 5))")
: m1 g3 g1 e# n7 v) \: o - (action_tile "cubic" "(if (radio_gaga \"cubic\")(set_uv 6))"); B# f7 g; L' `: E. v% I
- (action_tile "bezier" "(if (radio_gaga \"bezier\")(set_uv 8))")
! P# B" b- S; s+ h - 0 l7 O" A# a% p2 n% }$ M1 W
- (action_tile "u" "(ver_u $value)")8 c1 n$ j9 b* F1 |" H$ Z
- (action_tile "v" "(ver_v $value)")' u, j: ^+ o1 a
- )
0 }6 N: t( W9 G- f# D9 | - / R n* O) x) B2 @
- (defun ddgettext()
) R' _) G2 m/ c" Y/ s, l7 ~- s - (setq text (get_tile "t_string")), K) }4 o$ H, T# K
- )
3 P; _8 t) Q* i - , q& z! K6 Y2 ~. a
- (defun ddgetprompt()! n, F7 ]; ?% g6 R
- (setq atprompt (get_tile "prompt"))
: c/ V* z; r7 K2 [ - )0 q/ J1 ]) b% v. U- x! I% f
% y) U/ ^* C8 Z" W* C- ;; As OW doesn't support disabling of individual radio buttons within
+ D3 l" c. [% V' r - ;; clusters, a check must be performed as to the legitimacy of the7 l% m( l" Z+ _2 y; L
- ;; button pushed and reset if necessary.8 p7 [6 q) o: j! b5 J Y! A
- (defun radio_gaga (pushed); R: p2 a/ d1 N
- (cond2 Q5 `+ u. q9 D( R! T+ E* @
- ((and (= pltype "3D polyline")
# y7 R! ] \# ]5 E' O o - (or (= pushed "fit")
8 \5 u) W( u X0 O2 T1 | - (= pushed "bezier")1 ^! B( Q) R6 P3 C }6 r2 Z1 ^
- )
& R$ G& _( \ j' m - )' y/ ^. J0 v! A
- (set_tile "none" "1")/ {7 [' _ B/ n6 p
- nil% [7 w( H) F3 d1 Z0 I
- ); `) h" m3 _3 a5 Q* X- Y
- ((and (= pltype "3D mesh")
( I7 C+ R# _6 G$ R - (= "fit" pushed)# H: K' Z3 _( L% |0 h
- )
3 W5 c' L: u6 g! C - (set_tile "none" "1")
+ o5 {$ W" o' r - nil
2 B! G% z" k3 f9 R. t- E - )
, q8 v4 j9 }" V4 Y- C p1 H2 B6 I - ((= pltype "Polyface mesh")+ A$ n# K% j! ~1 Q- ?
- (set_tile "none" "1")
+ ~3 b: ?/ }! ~3 V - nil
$ u+ @( [) v' P* a: a3 _ - )
! F H* L. y$ p, R6 V& Z" c) v& Z - ((and (= pltype "2D polyline")9 P, l( C' ]2 D/ A6 | L" n
- (= "bezier" pushed)
% c7 H* n/ Q* y' b3 @2 k0 n - )
% X5 j6 W, y+ x' H - (set_tile "none" "1")1 e$ b0 [! V, A4 u1 @
- nil
' u8 h. a# T5 z1 m - )1 [# f' X1 W. u6 m' V" Y) x; O+ C
- (T)
" [' C% o: D1 D( P# X) b - )
% X9 p1 M( x" q7 L( H1 y+ b. `- o - )3 m( W- v& X/ S9 h- u
- ;;: Y W5 r- V, j4 Q) a3 o1 ~
- (defun set_uv (type_n)
+ w$ {* j- Y" a; v6 Y! z - (setq spltype type_n)
7 M& o2 Z: {, D) x) ~: ` - (if (= pltype "3D mesh")
% P- J0 y* G& I2 ^ - (if (= spltype 0)$ I I0 z0 \. a& o$ I4 w/ y) T
- (progn
# a) ?5 D( S* j6 ?6 U - (set_tile "u" (itoa (setq u 0)))0 z/ [2 s: w: v
- (set_tile "v" (itoa (setq v 0)))
: v- B' R% g, m t! u - )
1 z4 Z- c7 |* s4 d- O# d - (progn8 n5 F% l& j- J# V# @
- (if (= u 0)
9 p) x+ Y1 `5 t/ r - (set_tile "u" (itoa (setq u (getvar "surfu"))))
9 j6 i. P1 ^& _8 t2 ~, ] Z C - )! [% w! f- d i/ O% F' u
- (if (= v 0)
& b4 Y% H: j9 L; Q% {2 M - (set_tile "v" (itoa (setq v (getvar "surfv"))))
8 S. [+ B( P1 D. M - )5 M* S5 w; |$ ~3 }1 |, f8 t" J$ k
- )
2 j [$ f3 q2 h, }& `" }. ~ m8 F - )! h$ N: {% Q9 x+ H) y
- )
, A* M+ X% Z; |# c) ^ - )
( o' {$ z: S2 `3 o) T, v - ' b J5 q6 ]2 C( r9 m6 a
' ^2 a+ h, Z5 V% t* `. ?- ;;
2 ?$ x7 n, p; `' K: \% {/ J; ? - ;; Verification functions
( e& i9 @3 `+ i! o, ? - ;;5 W4 I F$ p% b" N2 d2 E) j" c
- ;; Verify distance function. This takes a new X, Y, or Z coordinate or/ A: A# ~4 n d' K8 N
- ;; distance value, the tile name, and the previous value as arguments.
4 {5 e- P0 J9 L+ p- n+ T - ;; If the distance is valid, it returns the distance and resets the tile.
/ _+ ]' o+ W& j# t* H# \" R) ~2 W - ;; Otherwise, it returns the previous value, sets the error tile and keeps
# L) M' f( s5 Z' {6 a - ;; focus on the tile. Shifting focus to the tile with invalid value can
, ? u; a8 }7 _* C0 k - ;; trigger a callback from another tile whose value is valid. In order
7 p# ?* h. O& G - ;; to keep the error message from being cleared by this secondary callback,# ~, l. m& ^3 O% x" o6 V
- ;; the variable errchk is set and checked. The last-tile variable is set
; ~2 u% e# ?2 g- d7 e - ;; and checked to ensure the error message is properly cleared when the
. A/ P% }0 O* ~! B# [ - ;; user corrects the value and hits return.
/ J( Q( J; n, e: n% l* E" T' h - ;;
9 C3 O" {0 l' [$ T7 }' R' } - (defun verify_d (tile value old-value / coord valid errmsg)
, V3 o! ]* A- |( c" Z - (setq valid nil errmsg "Invalid input value.")
) z$ o0 U, F( f) v. v {3 L/ Q - (if (setq coord (distof value))9 }4 ^$ C \' {. |: n5 C! N
- (progn
) N2 f4 t4 v8 F8 A8 a - (cond
7 J) c1 S# d" ~3 j5 V5 W - ((or (= tile "radius")4 Y1 R5 r: [* R& v: y7 q8 v
- (= tile "hght")9 B6 E' G ~, g. P) c
- (= tile "wid")
5 @7 \' y2 ]* W( a6 {: G& m - (= tile "majrad")& _" o: o- X2 q
- (= tile "minrad"), Z4 C( x8 K* s1 Y' D( q
- (= tile "eb_ltscale")
. x: ?; Z+ T4 K! e" f8 A% f - )
/ w. q/ }/ t# I( [4 ]% e) k - (if (> coord 0) O' p4 [5 X* b8 R8 u( U
- (setq valid T)
0 t E' U. O+ L! g1 Y) O - (setq errmsg "Value must be positive and nonzero.")3 e7 q$ Q4 L. g. V* X& x. x
- ). g% Y3 ]. H' R0 E3 \ t
- )
# a6 L8 k, E7 Q y8 ~( D+ [ - ((or (= tile "xscale")
2 G' E" C1 m( L- Y& g( M - (= tile "yscale")
# w/ v5 g8 D- W - (= tile "zscale")6 }9 b2 U4 K o( t6 y- B
- )
' _# U; [3 E" @) b+ M0 k9 d; n - (if (/= coord 0)
& c8 ^* H% _8 | - (setq valid T)& B4 c9 z* f0 y2 @; I/ V
- (setq errmsg "Value must be nonzero.")
2 L( q: {+ E1 E, s% W) @% e4 G - )- a6 Y5 ]* c! x. p
- )
/ J W! r5 m) B8 R+ { - (T (setq valid T))) I; [4 d& ]4 ?0 g
- )
7 P% }8 A9 t3 H Z9 k6 g' @ - )$ {7 E$ k2 W$ `; Z9 t- q: ]
- (setq valid nil)3 O# z" h3 _2 q
- )9 g. i9 x: j% L2 o, o
- (if valid
. G) M4 e( m# k$ g2 L. C - (progn0 _8 L; R5 V* F0 s: U. K
- (if (or (= errchk 0) (= tile last-tile))0 I. H# U @; F; G1 n! { I
- (set_tile "error" "")
7 l/ J& U3 G8 g" O - )) ?2 Q+ _# |3 O* w: V, n1 ?
- (set_tile tile (ai_rtos coord))
2 O$ X: s9 `8 ~* w9 a - (setq errchk 0)
6 K/ ]1 M1 q- k$ v - (setq last-tile tile)1 {) Z% R. c9 w$ |* I/ i+ ]7 E
- coord( N0 Q0 v) w% G' C. e. f5 W
- )7 \# t, K! T) [* ^
- (progn( p6 m0 T/ g5 p8 }/ S1 ]9 N9 r! b7 v% C
- (mode_tile tile 2) ; Move focus to offending field m0 c: s1 T2 [% G1 C& ]
- (mode_tile tile 3) ; Select offending text
3 _5 c2 U# k9 {6 Q& L9 s - (set_tile "error" errmsg)- A s }2 T; a1 l
- (setq errchk 1)
+ ^) S* @/ B/ m" g/ H0 D, J0 | - (setq last-tile tile)2 R. J5 l9 |: x0 R8 j, u' i
- old-value4 _. e3 c8 T" k% m; E1 x
- )
9 C2 a1 G. ^$ e9 l r% [. I - )
& p( O- B) N, A2 O - )
O2 b. A9 R$ ?# h - ;; Function for Xline coord edit box checking.8 K+ l6 p1 A8 x. @7 b. B# l# y! c
- (defun verify_xline (tile value old-value / coord valid errmsg)* g; [/ n$ a' p: Y4 o- ^
- (setq valid nil errmsg "Invalid input value.")2 e* m0 v; p ?
- (if (setq coord (distof value))* l* B& n* j* F# g1 i/ Q% b& }. U6 X/ S8 Z
- (setq valid T)
0 y- U/ L" L3 [ - (setq valid nil)3 r0 g4 `+ x! K1 G& w% h
- )
" @% o5 T7 ]0 t; e* }/ a' G9 k6 P! { - (if (and coord
" S8 {% t. ^( Z3 Q* _7 w8 N2 F - (and (= (atof (get_tile "xline_x1")) (atof (get_tile "xline_x2")) )
2 |- b/ [. A! p) z) n( N$ q9 b - (= (atof (get_tile "xline_y1")) (atof (get_tile "xline_y2")) )' ?/ l% R. e( p9 c# i
- (= (atof (get_tile "xline_z1")) (atof (get_tile "xline_z2")) )* n) z. M) X0 k/ t* b& q
- )
2 w" Y% h% L6 E/ N3 Z - )
: I! h% c& t, ]5 X# A) l4 T, k - (progn7 I( u* z! y$ |; { }/ m9 y1 k2 n
- (setq errmsg
! L, R! C2 A% ^' r+ z - "The Root point and the Second point cannot be equal.")
2 f# F5 Y+ @- D/ t7 T - (setq valid nil)7 O* j8 W* u0 ]2 G b1 j l
- )
R( k ~6 L" i/ Q$ N3 J* u - )* ~! J; o9 e$ X6 I; M
- (if valid5 T& o$ s/ G: Z+ Z; |
- (progn
6 Q0 a% h; B( l+ N# A& u - (if (or (= errchk 0) (= tile last-tile))
; a1 T8 q4 T& o2 D6 v C - (set_tile "error" "")
6 z7 |' }3 Z# C' g - )8 b5 G% V; Y) ?+ G0 e# L1 a
- (set_tile tile (ai_rtos coord))$ r% d- H0 ?: c2 G- G1 }
- (setq errchk 0)
2 ? Q& B3 Q F - (setq last-tile tile)
" B6 W$ Z7 x8 o8 l0 Z - coord
& E. f S2 ]+ D2 {* L2 e - )
9 ^; y5 \6 V7 X' F2 j' y5 M - (progn; B' I1 N" v5 I- Q' }" s1 E
- (mode_tile tile 2) ; Move focus to offending field3 y( U; ?8 z4 N/ k: L$ X- E
- (mode_tile tile 3) ; Select offending text. S [: x- W# n! a# Z7 p
- (set_tile "error" errmsg); O- e1 O9 C; J3 R% J! V+ |/ s2 `
- (setq errchk 1)
) {4 a! c9 Q7 x5 r - (setq last-tile tile)
' c- ?' I" F; H2 v7 _# x6 \) i - old-value4 m* o% w- ^ k
- )
4 R5 w2 Q: x8 D4 W - )
1 V3 n3 x( u z8 f/ v( S - )1 Y5 M% A0 Y3 o5 r+ x
; X. r$ t: {6 L; v# ^- |2 Y- ;;3 d; r8 e2 j# [% C
- ;; Verify angle function. This takes an angle and a tile name as arguments.) N! ]9 A! G" ]+ B4 l, z- [
- ;; If the angle is valid, it returns the angle and resets the tile.7 g I( U* @& v: u
- ;; Otherwise, it sets the error tile and keeps focus on the tile.
$ Z: q. T5 V, c1 S8 {0 e - ;;
4 | f) C, D( n0 X. w) e2 \& ^ - (defun verify_a (tile value old-value / ang valid errmsg oblqmax)
; ~! z9 O! F$ F* o - (setq valid nil( ?7 T% _+ K; Z
- errmsg "Illegal input value."
3 S. Q% o% }/ D+ h3 v* i - )* x! @+ l3 x4 U0 |+ R4 x
- (if (setq ang (angtof value))
B- e( D1 J; B x i( c* X - (cond) U7 k. t& X& c$ G( R
- ((= tile "obl") ; Restrict obliquing angle% F5 E- G' n$ |8 y @, M
- (setq oblqmax (+ (* (/ PI 2.0) (/ 85.0 90.0)) 0.000001))0 ~3 a/ `2 p2 u* S6 B; i. U
- (if (or (<= ang oblqmax)
# l+ @ u' n$ b+ F3 } - (>= ang (- (* 2.0 PI) oblqmax))( f9 A0 N; ~ l- S" z
- )
: m% ?- Q' I- s1 [* Q4 F+ H" v - (setq valid T)2 T! R' z8 Z% [& N+ j
- (setq errmsg
" n$ q3 P: q3 J7 U- z - "Value must be between -85 and +85 degrees.")
" A5 _# x- P* _2 Q) ?5 o4 ? - )% `0 e5 n! y. N7 e) N, ~
- )
' \: W/ h9 E* f0 d - (T (setq valid T)) ; Other angles not restricted
' _$ e) v; z0 G& N - ): t% m2 B; R" L$ Q) S+ A
- (setq valid nil) ; Invalid angle input: D5 N1 b8 J3 Q2 A
- )
% B- n" H q! P8 f9 n% t& m* G% l - (if valid* ~& W5 {" k. n* C; X# g/ h
- (progn2 i8 P; `, `, L4 H7 o
- (if (or (= errchk 0) (= tile last-tile))' I! X9 H: u, k8 q$ l) S4 |: j
- (set_tile "error" "")/ U ]/ \* u' a8 |' C- P5 O
- )
) I1 c+ v+ r* l+ u, U% h' I - (set_tile tile (ai_angtos ang)): ?3 m: @; \0 ]1 {
- (setq errchk 0)
1 ]. B1 K2 q9 D1 i2 b - (setq last-tile tile)
7 {" C; Y5 @, N* B - ang
9 @4 \9 M5 F8 V9 N - )8 u- |/ e. ?: `1 ^3 n
- (progn
q! I6 F& s! @, w - (mode_tile tile 2) ; Move focus to offending field( t( [6 ~+ [ n: T1 }) h( O
- (mode_tile tile 3) ; Select offending text
# u$ e6 y$ i" p - (setq last-tile tile)
! }3 a8 c" ?* m0 o3 i) P3 r - (setq errchk 1): Q1 [) W) D$ M; b
- (set_tile "error" errmsg)
3 c; t" w/ M1 @ - old-value
% R. R* v# r3 d9 @ - )9 d- v1 ^3 V/ }' b
- )
4 d; P- M& M) j+ E; j; I: i - )! b* x+ z# N9 t% L& ^6 h5 X" [; I
- ;;, T: z9 g: p* j# W, f7 s
- ;; Verify angle function. This takes an angle and a tile name as arguments.
3 _4 l) X0 O8 W% ? C9 O - ;; If the angle is valid, it returns the angle and resets the tile.+ C+ x$ O0 _: D+ B2 |
- ;; Otherwise, it sets the error tile and keeps focus on the tile.2 R6 ?0 k# E8 r
- ;; This function is specifically for the end angle of the ellipse object. If# K& D3 d; X3 ^% e1 q* J
- ;; the end angle resolves to zero then we want to display it as 360.
: y* n7 Y* A7 c/ Y$ K - ;;0 u, ` K* \5 p! j7 C& E: U- _* U
- (defun verify_ae (tile value old-value / ang tempend)
# C4 y; B5 i5 f& N- a f0 z8 u - (if (setq ang (angtof value))( d( x* d$ S% n! H/ g- U$ E6 ]
- (progn
% B) |# X1 [, e% j2 t - (if (or (= errchk 0) (= tile last-tile))
( E k4 ~( P. A5 G1 k - (set_tile "error" "")
) C: T# [9 a, u; Z5 ~ - )
6 R8 @ J- I ~0 P6 j0 z, p - (setq tempend (ai_angtos ang))6 k) s/ B6 f6 D8 Z
- (if (= tempend "0")& N1 v. R8 s1 P6 R4 R$ f
- (set_tile tile "360")
( i9 A2 }# k8 E7 I - (set_tile tile tempend)' A9 `7 w) {5 r+ L. w6 X7 q5 F
- ). a' E9 H5 b8 s$ m0 [
- (setq errchk 0)) y* @7 e+ t! o3 r4 o0 U$ \
- (setq last-tile tile)4 [3 z7 j0 y/ Y5 h0 ^) H9 Q. A' y
- ang
! }. U8 }! G' Z: s' V* q& r* s. ^: r - )' E/ [, P; ?6 |2 j
- (progn5 T- B3 h' M8 N" h" b4 r8 W
- (mode_tile tile 2) ; Move focus to offending field" B1 i: e; w! C1 T5 l
- (mode_tile tile 3) ; Select offending text
$ n* @/ Z# j* S- S2 m- X# h( x$ I - (setq last-tile tile)
% J( F3 `8 a& W. v- O - (setq errchk 1)
0 g8 H" @' N# d$ m - (set_tile "error" "Illegal input value.")
& C" g% j2 d5 _ - old-value- @; D) n7 W' D3 H' j. i
- )
: R7 W7 U4 W$ l" }. e4 i1 D* o - )
! P6 s4 _/ ~* P. [ - )
3 N. G# o. r. C) f) G1 g6 H - ;;
q3 ?& D) n# L& L4 D" r& O - ;; Verify integer function. This takes an integer and a tile name as
; G) l! u' ]- F) A) Q$ v7 M& X# Q( z - ;; arguments. If the integer is valid, it returns the integer and resets the* T5 ^1 ?6 `( c4 r
- ;; tile. Otherwise, it sets the error tile and keeps focus on the tile.( B, R) _# b/ g0 d! z
- ;;
: s; @2 z8 @3 {# A - (defun verify_i (tile value old-value / int valid errmsg)
! Z. }, C! s6 r; n9 L8 L+ [ - (setq valid nil)
* @' k' D4 n9 @+ C+ F* W/ \ - (setq errmsg "Value must be an integer.")
. z' Y1 R7 s$ W( `4 g. V9 ~ - (setq int (atoi value))
$ @$ i+ B$ ~% j" z7 c8 [ - (if (setq intchk (distof value))
9 K/ v/ \ r, O0 I - (cond$ N9 ^: @ Z3 }3 x$ {! C% r k
- ((or (= tile "columns") (= tile "rows"))1 g% S i2 R' Q
- (if (and (= int intchk) _ \6 k p) e+ G9 k! \& }
- (>= int 0)% s7 I; |3 H" o' w9 j
- (<= int 32767)' H3 }$ c: j) M! E- {
- )! x5 O& \6 ^- h4 t+ [5 i
- (setq valid T)' V8 I. m8 q5 l+ }7 J& ^5 w" q% ]7 V
- (setq errmsg "Value must be an integer between 0 and 32767.")
; X% h! F6 ~) Z. J# I3 [ - )
, k! s, w W0 Z2 r) O! M- M - )
& ?6 W* C+ w1 S0 R# Y - ((and (or (= tile "u") (= tile "v")))- U2 n" S! Q; N5 s
- (if (and (= int intchk)
& k' ^5 x3 S3 F# T, H+ z, n/ Q* E - (>= int 0)/ k9 b, \2 O1 x; E" V8 J! [
- (< int 201) }% s2 S3 d1 w2 \! z J* W6 e
- )9 @- @/ l' \/ ?+ G2 x x1 e
- (setq valid T)
, ^1 L6 j& N0 d$ y* v+ F! C: I/ | - (setq errmsg "Value must be an integer between 0 and 200.")
1 e. A7 b6 X& F( n - )7 t8 y% g- e6 Y) Z9 y( b$ V, V: _: }
- )
& k: X" V* g% @ S, W - )
" c# _# h, C; ?+ {& q: s3 Z5 q# _ - )
4 P& c+ ^1 t5 D" h5 A" c; O1 q - (if valid0 T7 P! s6 N: A7 n- J3 G
- (progn( e+ \; S ]* A$ o/ Z2 I8 ?
- (if (or (= errchk 0) (= tile last-tile))! t3 Y( `# M* t3 w- h( |: H5 r
- (set_tile "error" "")9 y" K2 w- l7 m. |( \9 x$ y
- )
; {8 r4 b, k# p U4 C0 Y - (set_tile tile (itoa int))3 N, K4 Y6 u- B) u* a
- (setq errchk 0)0 ^9 h4 T! {* B* d. J
- (setq last-tile tile)5 U4 W0 K4 M( h
- int* w( ^9 I c6 W+ o4 M5 Q
- )
" c# s4 r5 s; H g& O9 M5 C+ L - (progn6 N- Z$ e# N1 P( {) e. k* P: r" K
- (mode_tile tile 2) ; Move focus to offending field
: `& h. D) f! w L; j* Y - (mode_tile tile 3) ; Select offending text) C& T- y A, w
- (set_tile "error" errmsg)
- y/ O& s. J/ x: m) K+ w* P6 D - (setq errchk 1)9 `: F; X# }. l+ \. u7 q( N: \+ }4 l
- (setq last-tile tile)4 ]* R3 Z2 K h) y, h
- old-value3 P6 B' Y: ]1 F/ R: ?/ ` Z: p- R
- )
6 y2 }) u J' j& \! K$ m - )
5 s5 S, X! x/ ~% x - )* v% k8 g& {& y+ O
- ;;
+ I1 H; D# N7 s o- u9 M - ;; Functions that verify tile values for integers
! G( W* r5 U1 i0 P' ^3 L - ;;8 ^$ M# c; r: C( X5 m" @
- (defun ver_col (value)% z9 v% y! u# m1 B
- (setq columns (verify_i "columns" value columns))4 k5 \! N' y) x8 E; U5 d/ ?
- )
0 Q& \" e/ S) k1 e0 A$ p- w, n; f$ c - (defun ver_row (value). L c$ e! r+ }3 E. [) S
- (setq rows (verify_i "rows" value rows))# {5 @ _, o/ ]( X2 j
- )
" ]; m/ A/ [ T! x8 k% d - (defun ver_u (value)
/ ~/ B0 ^7 e0 }9 \+ @ - (setq u (verify_i "u" value u))" c/ D6 f4 i" X$ ^" s: a: P7 `
- )" \: Y' S U2 b$ N; \1 i- R
- (defun ver_v (value)
, K1 t) u+ d' F7 E/ H% v, { @ - (setq v (verify_i "v" value v))" n. l- g& e' B) F! f- H8 X
- ); a. [: e1 Z4 E, o& f8 r1 d
- ;;; J7 z. L9 p1 U% O7 i T. p
- ;; Functions that verify tile values for reals
; x( a: i) x# o" L - ;;3 I9 x- h4 i9 ?
- (defun ver_x1 (value)
$ B, h0 l- ?4 Z: ^% C - (if (setq x1 (verify_d "x1_pt" value x1)) (calc))
- D/ F* y: V2 a) N# _4 q - )
/ w8 Z) b. z/ d& f) h, S7 q6 I - (defun ver_y1 (value)
9 P4 U( @( D) s5 j- D6 O - (if (setq y1 (verify_d "y1_pt" value y1)) (calc))
7 m- b" O R4 S - )8 `/ p$ ~2 k) Y+ i" n. M2 U
- (defun ver_z1 (value)( W) o2 S; c+ A! H+ h4 Z. N
- (if (setq z1 (verify_d "z1_pt" value z1)) (calc))1 K* b( t+ ^/ C0 @
- )
' G! Q9 P/ S. G9 o$ k - (defun ver_x2 (value)
" T* ?: ]* o. v. A- H3 D9 O* r i - (if (setq x2 (verify_d "x2_pt" value x2)) (calc))$ i9 N8 ]( T4 }! t* B
- )6 G; J/ }5 Y7 l) r% o
- (defun ver_y2 (value)1 D/ _7 M" S6 e5 T7 Q
- (if (setq y2 (verify_d "y2_pt" value y2)) (calc))
. N) t4 q* |: S, Q$ b- }4 Y - )! ~/ b" P; s7 G- }$ I A
- (defun ver_z2 (value)" C0 ]1 `" J3 @& O I
- (if (setq z2 (verify_d "z2_pt" value z2)) (calc))1 u) ~; P0 R9 p) f6 A2 P" t% M
- ), u5 U. t2 E! s+ \! z+ T+ @8 d! j" H
- (defun ver_x3 (value)3 P* G$ i# N% V/ ]6 D/ y( O4 {8 Q
- (setq x3 (verify_d "x3_pt" value x3))2 @5 ^" q) _8 y( W' c
- )2 d/ L0 d) ]: ]
- (defun ver_y3 (value)0 s) y i x* @! Y9 {3 D- X# r
- (setq y3 (verify_d "y3_pt" value y3))
% }2 U* c& d" v) X4 m" L1 z - )' r3 X) o- o( U8 A" D m) Y$ G8 w
- (defun ver_z3 (value)3 D( `# t0 h8 x! r) z7 S& L
- (setq z3 (verify_d "z3_pt" value z3))
1 X! h/ }6 K3 }, m& B3 z! ^+ r - )
% D! b( J0 n) O( `" j, x' X4 ~7 T - (defun ver_x4 (value)0 y4 u& G9 I6 v5 j: K
- (setq x4 (verify_d "x4_pt" value x4))
1 r7 _* k+ E( c/ H$ w8 f- G - )
3 ^- \% w# b. p7 [& M - (defun ver_y4 (value)
# A& Q0 r# T# s7 E, b/ E$ k7 x; ~ - (setq y4 (verify_d "y4_pt" value y4))1 d$ k# p4 P1 W6 f2 S
- )( b. Y: A; \7 ]
- (defun ver_4 (value)
; ~& _5 v6 b8 g0 r [9 \ \( V) { - (setq z4 (verify_d "z4_pt" value z4))) n5 m# m2 }! ^3 S( n6 h) @3 Z
- )
, V7 j9 s$ m: {( i2 }2 ^, W1 x& G. G0 S - (defun ver_xscl (value); |8 p g+ O! [% q0 F
- (setq xscale (verify_d "xscale" value xscale)): R% b$ o9 k/ u, D
- )" h: |- x1 w, _7 g$ C% a& w
- (defun ver_yscl (value)# V0 w7 r" A; q+ B' C2 `
- (setq yscale (verify_d "yscale" value yscale))
/ k* @& A& S8 V' ]8 Y - )
* w$ n# n i/ F; Y9 `0 G - (defun ver_zscl (value)
9 Y) H6 f. }8 a, o - (setq zscale (verify_d "zscale" value zscale))
0 f: k% i! L& P4 q4 G3 s; n - )
/ e7 E* ]2 L3 Y5 Z4 D. T ^ - (defun ver_colsp (value)0 |! n+ m5 a0 w3 F8 X( X$ _9 |
- (setq col-sp (verify_d "col_sp" value col-sp))
8 X7 O9 t7 D. I7 x4 C, M - )1 j5 ]" w. `9 w: T: P
- (defun ver_rowsp (value)! t8 o. _/ k- S+ Z
- (setq row-sp (verify_d "row_sp" value row-sp))
$ `1 o6 m% D3 \/ | - )' h' k3 K8 P5 s1 n2 L
- (defun xclip ()( q" B. S" }' _4 j* p1 A6 m: T
- (setq xclipmode t)" D" g- |% l/ N7 z' F3 R
- (if (= xcliponoff "1")
: F7 p3 J! z4 o* H# o - (command "_.xclip" (cdr(assoc -1 elist)) "" "_on")0 B, e, }& @ n. `+ t- H
- (command "_.xclip" (cdr(assoc -1 elist)) "" "_off")6 s' F8 e4 N( I. h; h: r2 Q
- ), Y1 E; U X& E, Z% k3 q
- )
1 h, C, A- C- l, B& h - (defun ver_rad (value)
~& C# D9 z6 M) e3 E2 X - (if (setq radius (verify_d "radius" value radius)), ~! A, t b' k3 a" q# ^, d' b
- (calc)/ _4 O- H( F8 v% U9 Z8 T7 y" o! |
- ); u# j# l, A! o, i
- ) l! Q$ M# D3 z3 H
- (defun ver_majrad (value)
! @ ?" p0 {( R0 s- H - (if (setq majrad (verify_d "majrad" value majrad))
2 B' @+ m/ H" X1 l3 T; G$ w2 i - (ell_calc_newval "majrad"). b8 C0 b, Q+ m% |3 o- Z$ ~
- )3 X% l6 ] C" R0 m9 G* ]
- )
' `% ~1 ?/ t1 @ - (defun ver_minrad (value), F8 j+ E. M! _" T; v% q# V0 p
- (if (setq minrad (verify_d "minrad" value minrad))
7 B- r9 }8 ?) v% Z. i9 p- P% A3 C - (ell_calc_newval "minrad")& j" r% V. A3 g. w/ U/ w7 G
- )
; h, u8 U2 Z' f! u- W; F - )/ L. K# ~& z% z. y: @9 h% e
- (defun ver_hght (value)
3 [0 j/ H7 Q9 e5 Z& W" b) u. S$ [; X - (setq hght (verify_d "hght" value hght)); X, w- v- O& \ X: V. n, j
- )
: [" F$ F3 u3 P. o% h4 K - (defun ver_wid (value)
) v1 k" ^' A/ _/ @4 W3 C l - (setq wid (verify_d "wid" value wid))" |" T: ?) Q" z7 ^* V# B4 W% z
- )
9 V, W- T" o4 |' L% N, j2 c - (defun ver_xline_x1 (value / temp)
. R% ~' h S! D8 ~ - (setq temp xline_x1)/ _) `; U5 e& a9 l0 s1 e$ y: K
- (setq xline_x1 (verify_xline "xline_x1" value xline_x1))9 c/ ~7 J% i" _4 N$ e) i6 h) z1 x
- (if (/= temp xline_x1)
6 C4 z0 K# X' A - (progn (modify_xline 0) (set_tile_dirv) )2 l# W+ _& z6 N+ ?0 T5 a3 `
- )* h; y4 T A( ?& b, x N1 n; G" j# t
- )
9 N9 m: z% j0 f1 |8 |# _ - (defun ver_xline_y1 (value / temp)7 [6 ]4 k+ f I- G; G
- (setq temp xline_y1)
2 s7 R7 A2 Y2 c" U7 e d& H- a6 K0 f - (setq xline_y1 (verify_xline "xline_y1" value xline_y1))7 M. E% }0 q0 g# h
- (if (/= temp xline_y1)
k% K- I6 I8 u - (progn (modify_xline 0) (set_tile_dirv) )( _4 ] m4 u6 U1 @
- )
4 ^/ R- J" K; @& H0 H, ` - )$ u f1 v, L f+ A
- (defun ver_xline_z1 (value / temp)2 O) z9 B, l+ A9 L0 R
- (setq temp xline_z1)8 S# \) E, Z' s8 `" s
- (setq xline_z1 (verify_xline "xline_z1" value xline_z1))
7 l' B; R& G' s. l - (if (/= temp xline_z1)
) x/ v1 P; L+ V F9 x - (progn (modify_xline 0) (set_tile_dirv) )) i, l" B" @" B. E! p
- )4 z( r$ _: l3 ?/ Z" Y$ A
- )' n( R: D( S& ]1 z9 e0 f1 r
- (defun ver_xline_x2 (value / temp)
~" B7 T* ^# L - (setq temp xline_x2): M7 L6 [& x) r
- (setq xline_x2 (verify_xline "xline_x2" value xline_x2))
! v" V9 j+ t) o+ T - (if (/= temp xline_x2)( z3 `) m) z7 L; R" V8 _8 D9 Q
- (progn (modify_xline 0) (set_tile_dirv))7 }$ p7 ^9 z6 t0 r0 H
- )5 ^- T5 v7 b2 f9 t9 m; Q
- )
) P2 O; D/ Y4 ?! V5 ~ - (defun ver_xline_y2 (value / temp)4 L4 e) u J9 o. m
- (setq temp xline_y2)
* f6 J, {+ M& Z. V T$ S - (setq xline_y2 (verify_xline "xline_y2" value xline_y2))
8 j; i7 t, ~4 x# I3 ? - (if (/= temp xline_y2) w3 ]; b9 @" G+ n' o8 v
- (progn (modify_xline 0) (set_tile_dirv) ): E2 R% r4 o0 Q0 F Q
- )
' E. V+ ]3 N6 g" L - )
( q z9 s2 p4 v, y& t; Y$ |; |! o - (defun ver_xline_z2 (value / temp)
0 I2 n$ V+ l" ~+ { - (setq temp xline_z2)
, ?# r& p1 X! {1 }) u - (setq xline_z2 (verify_xline "xline_z2" value xline_z2))4 K3 e4 N; t* M, r8 f
- (if (/= temp xline_z2)
' d1 s: E. |1 ^4 }8 ? - (progn (modify_xline 0) (set_tile_dirv) )6 D' g7 A9 G! b" ?, m# z7 E9 Z' ^
- )2 `7 m8 y) J* |$ m$ e0 @
- )
; f; f, _& u$ c- _: p3 }1 G: h - ;;9 f0 X* r, @7 \1 y/ C5 n4 G6 g
- ;; Functions that verify tile values for angles' G: b4 t1 Z" b/ B% s
- ;;0 ~! _( y% `7 p$ }9 [ }# o+ M$ w. l4 u2 n
- (defun ver_ang1 (value); ^3 f% k5 P" P
- (if (setq st_ang (verify_a "st_ang" value st_ang)); l9 \# o0 q9 c- @0 P) |
- (calc)
3 O9 U- o& ]% _) c1 @" r+ t, d - )
% O- R; A* J" @: E9 d K! x& Y - )
' N6 H6 E) I$ b& C9 ~ - (defun ver_ang2 (value)& ~6 d m9 {- b
- (if (setq end_ang (verify_a "end_ang" value end_ang))
& M* k9 o& W( I( G* y$ T R8 n - (calc)
5 \% A$ [. l* H* Z6 A - )
" p1 U4 A( J2 L) o. H - )
@1 `1 t, B9 }1 Z( [7 c, o' H - ;;8 @/ ]* u0 x2 B; @! m5 j5 @- U3 F
- ;; Verify tile value for ellipse end angle. Handled slightly
7 `" q7 z* ^( \' c - ;; differently than the other angles.. s( X1 `$ t6 W: O b; e9 \6 q
- ;;; }7 O0 z, `! A% d/ I
- (defun ver_eang (value)
$ J3 D) r6 v" l5 M5 w - (setq end_eang (verify_ae "end_eang" value end_eang))* J8 x6 L; A( v( t: ~5 p
- )% d- P0 r$ P1 L/ T" M9 n. f
- (defun ver_rot (value)4 P& j! S. V3 A' ], E7 i( b, [1 u9 S% `
- (setq rot (verify_a "rot" value rot))+ r4 Q6 [$ j" X8 D& \
- )
) H% G8 t, I- o8 Z9 A6 ?$ T* ~/ X - (defun ver_obl (value)# e9 h3 |8 g& q
- (setq obl (verify_a "obl" value obl))4 }# o4 n# `$ U& v5 z) ^
- )
+ j+ a7 U+ X2 W5 ~ - ;;
# B# o+ M- [; I# S - ;; Function that verifies attribute tag field for null string,& V% b% V' c9 W5 }
- ;; or a string that contains one or more spaces. Tile value
. S# p* T4 }& B& b! q - ;; is also converted to upper-case as well.
' b) I. D& o3 v0 o9 t. m - ;;
* Z1 m9 p% @4 U9 v - ;;
& b6 t: S% ^% ?- C3 B - (defun ver_tag ( / tval)/ f( D* S! j" w# i$ y( M0 d
- (setq tagval (get_tile "tag"))
' r" q3 E! f+ {3 X h - (set_tile "error" "")
- P1 \! W0 F, ~$ i* `# ] - (cond
; V/ i+ {/ \' d7 z - ( (or (eq "" (setq tval (strcase (ai_strtrim tagval))))
* ]8 F% z, q- r& |% u - (wcmatch tval "* *"))
7 k2 A) n7 p$ ?- f1 Y% e0 i; | - (set_tile "error" "Invalid attribute tag.")
7 |! W* G8 T3 l2 W2 ^% W3 _' i8 ^ - (mode_tile "tag" 2)
5 Z$ p6 L7 C7 b - (mode_tile "tag" 3))6 M) o* |3 ~3 G0 v: _7 b0 i' u
- (t (set_tile "error" "")
- Q8 A' J6 W( @5 \( @3 f0 a5 m' j - (set_tile "tag" tval)! c1 V9 {& H$ C& t6 x% L- E
- (setq attag tval)))6 ~# L7 q) P1 Z# C' ?6 A
- )
4 c* p. N7 \, ]) S - ;;
* b& S' }- f* r8 x8 f - ;; Calculation functions
& V! N0 G C; }7 }5 x - ;;
2 B) B; F- D0 ^1 s% W - (defun calc ()( X- P" r* x ]3 F5 ^% F
- (if (= etype "LINE") (line_calc))0 P- ^% y8 Z; ^0 I" i2 g8 k
- (if (= etype "ARC") (arc_calc))+ _( z; e4 S& X
- (if (= etype "CIRCLE") (cir_calc))
- E, o K7 y! F/ D& `/ O& B6 _ - )
2 G5 ?7 [, q" G$ ~' Q9 Q - ;;
/ F+ y% z/ E: [ { - ;; Calculation functions for lines, arcs, and circles$ T( u1 B* }$ T/ x& h1 U0 J. K
- ;;! g2 ~' F6 p1 _3 P. b4 ^
- (defun line_calc ()) R! ?6 n- H+ ~( A$ r6 a2 s$ m& t ^
- (setq stpt (list x1 y1 z1))
" i& ^4 d6 B* j, b8 {9 d0 {% Z - (setq endpt (list x2 y2 z2))
K7 ]( R8 a; r( z: \4 c - (set_tile "delta_x" (rtos (- x2 x1)))( T* c' Z; q: `6 e( ~
- (set_tile "delta_y" (rtos (- y2 y1)))8 d' ?2 i, U7 m1 S! O
- (set_tile "delta_z" (rtos (- z2 z1)))
q( i9 n b$ q! [& e - (set_tile "l_length" (rtos (distance stpt endpt)))9 N9 Z5 W' ^! C& v' i+ F; u
- (set_tile "l_angle" (angtos (angle stpt endpt))), T' D& k; W# l# M7 v0 R
- )# M0 c5 D$ i! L T; C8 @) h
- ' Z N/ ], h0 e
- (defun cir_calc ( / area units)
& X- G- D% x) @' F; z" |# Z- p, B) R+ c - (setq radtest radius)
% X. W" a) Q0 A6 g6 F - (set_tile "Dia" (rtos (* 2 radius)))
. V+ g/ y8 | _3 p6 r - (set_tile "Circum" (rtos (* 2 pi radius)))
/ d; F" X% v+ v! x1 T ^" C; r - (setq area (* pi (* radius radius))). c6 y* @" j1 b8 `1 e1 f [/ C
- (setq units (getvar "LUNITS"))3 S8 Z3 I' q, c) x0 G
- (if (or (= units 3) (= units 4)) q" _5 s m6 R* J! `: N7 k' j
- (progn
2 D5 H/ M1 x' e3 ?) E" a - (setq area (/ area 144.0))
$ T* Q% J+ ]' ]1 A0 ~: w# q - (set_tile "Area" (strcat (rtos area 2) " square ft"))
+ Q+ m2 W& x7 h0 Y6 n - )1 r* k) [; p N' J7 B8 X" m. U& r
- (set_tile "Area" (rtos area))
4 s' M! o8 h0 ]; p: ? - )- A; ~8 A3 [+ p; |1 e
- )
# F+ j) l3 b$ `2 e# t8 @' g5 x& { - 6 H. m" p6 t1 k+ @' s
- (defun arc_calc ()& [- Y7 K) T! V$ N0 J( {
- (setq totang (- end_ang st_ang))
( A) h+ U- O) ]2 e- N0 d: k$ B - (while (< totang 0)
. L% J; ^2 p% R3 _% f2 `& u - (setq totang (+ totang (* 2 pi)))
* L% |& B: u% @/ D! R. V - )& C+ F: f- I4 g# u+ M3 K/ W, A- `+ u+ L
- (while (> totang (* 2 pi))) D, N" i2 F7 ~, M# z5 T' \. w
- (setq totang (- totang (* 2 pi)))
j! M+ s* V" g1 ^ - )
4 [- |# t2 w( y4 d - (set_tile "tot_angle" (angtos totang))1 h6 {2 H: e1 i! L4 S( ^. Q
- (setq arclen (* (* 2 pi radius) (/ totang (* 2 pi))))
2 j# c' j+ j- b' _ - (set_tile "arclen" (rtos arclen))5 V$ p! F8 l5 D& g; o
- )
. G" f9 Q, T+ _# _- u, [ - ;;& h# f; N; c2 [+ P0 q: n
- ;; Calculate the major radius, minor radius, major axis direction.
: V4 E; r/ q, {8 E - ;; Get radius ratio. Convert Start, end parameters to start and end
7 ^6 h1 b* X# z - ;; angles. Save Major Radius value in "old_majrad" in case the user& Q0 I+ h4 h) O- C" m
- ;; chooses to input a new Major Radius value later. It's needed to
1 I" t3 b( c p, U) D - ;; calculate a new Major Axis Vector value.7 w* p. Z" X- c0 g; T3 V
- ;;4 r) M4 K- W6 P; L* q
- (defun ell_calc ()# t! A! F' h! @: J3 U
- ;; Get major radius from the major axis vector.1 R& q% E3 P9 s9 U7 s! K) ?
- (setq majaxis (cdr (assoc 11 elist)))
/ _6 X$ M; `0 _+ e; _8 W& `; O - (setq xx (car majaxis))
, w8 F* y7 t7 k8 { - (setq yy (cadr majaxis))# t0 [! ^& ?. s. G
- (setq zz (caddr majaxis))
& T3 z# i. `; w - (setq majrad (sqrt (+ (* xx xx) (* yy yy) (* zz zz) )))
7 u* F8 S# z) m1 m - (set_tile "majrad" (ai_rtos majrad))$ `& y1 v, [/ C1 U) ^) S6 B) O
- (setq old_majrad majrad)' v' \4 ]9 n* F1 c; x
- ;; Get radius ratio! Q N1 h4 o. j1 _/ @% V2 O
- (setq rrat (cdr (assoc 40 elist)))1 j, ^" L [% ?1 L
- (set_tile "rratio" (rtos rrat))( D+ S# y& M+ w$ n
- ;; Calculate minor radius
2 t- T, C* v7 O0 X6 Q6 q - (setq minrad (* majrad rrat))2 R' Y$ L8 f: d6 Q- E2 x1 l4 F
- (set_tile "minrad" (ai_rtos minrad))
4 D5 g3 U- O8 o- `/ c, ? - ;; display major axis vector
) r7 b# ~4 B2 p/ u - (set_tile "Majraddirx" (rtos xx))* y2 U* I- z' Q
- (set_tile "Majraddiry" (rtos yy))% }/ Z% B* @1 Z- r% o9 w8 ~
- (set_tile "Majraddirz" (rtos zz))+ }: R. j# m: |) ], h" D
- 5 G" O0 D$ m1 s* Y
- ;; Convert start parm to start angle7 B; @5 ^3 C' |0 s
- (setq stparm (cdr (assoc 41 elist)))
3 m: S9 H& z7 ~+ z4 } - (setq vecx (cos stparm))
" p- S5 y) d/ p( [6 C9 U# E - (setq vecy (sin stparm))% H% i) c% [( S- l
- (setq st_ang (atan (* rrat vecy) vecx))) Z, ]8 O+ K* \
- (setq tempst_ang (ai_angtos st_ang))
9 o: f2 O8 \! }/ B - (set_tile "st_ang" tempst_ang)
5 T0 U: A2 x4 q2 n/ Z" o - ;; Convert end parm to end angle. If end angle evaluates to 0. q, W3 T! t. W$ p) P2 F
- ;; degrees then display it as 360 degrees.. K B9 V0 }" Q5 J5 u; W6 L
- (setq endparm (cdr (assoc 42 elist)))# c+ k5 {* t, Y2 L5 a9 D, O
- (setq evecx (cos endparm))5 t9 h- p4 c, Q8 M6 v
- (setq evecy (sin endparm))) M2 V) W- G m6 u1 ~
- (setq end_eang (atan (* rrat evecy) evecx))
( C3 b4 ]6 O/ o/ T' k - (setq tempend_eang (ai_angtos end_eang))
2 R1 I" W( V6 }2 z; ^ - (if (= tempend_eang "0")) S: _" g# \5 T+ _
- (set_tile "end_eang" "360")& _# N' q! g; v; n
- (set_tile "end_eang" tempend_eang)
& r8 _' Q$ B+ u$ ? - )4 O8 H# j" T# z' x$ O& c. x* t/ z
- ;; Get area of the ellipse.
% b, v. f* J5 t6 c! ^ - (ell_calc_area)
0 f: o" j* _3 I1 A4 \% v/ O - )
& D' d! ]* Q' v( G: } - ;; Calculate area of ellipse. If it is an arc then# A' @+ a m7 ^
- ;; grey out area display.
6 q8 K$ [8 ?9 n ^# Q - ;;" ^2 |% X5 c) j3 `' s9 u
- (defun ell_calc_area ( / area units) ]2 |" F/ F. @; }, G/ @
- (if (and (= tempst_ang "0") (= tempend_eang "0"))& x9 E6 W1 P- n6 J) ]/ V( J Q
- (progn
, J4 h( U+ }$ C$ s/ n - (setq area (* pi majrad minrad))
2 X( O8 _) W% b* I. @3 ]. X - (setq units (getvar "LUNITS"))
7 p1 S6 K. @% x5 x* o) s; h - (if (or (= units 3) (= units 4)). N7 |' F; Y Z# V( S
- (progn/ r, x3 h) U% D2 t1 a( f" B- z8 ^
- (setq area (/ area 144.0))3 c& q f! R+ ` P! a
- (set_tile "Area" (strcat (rtos area 2)" square ft"))( J9 a& `- Z% Q* F" s( F, R0 `- ^
- )
- f3 W" x3 v! m" Y+ x& B5 N4 X - (set_tile "Area" (rtos area))$ [/ M$ [$ K; s" L: t
- ); N- s! B, U; \5 r$ N' \
- )' P9 @# t, C, C K0 [& B0 ]& Z
- (mode_tile "Area_text" 1)
- V8 G8 f. a8 W& n) I - )
1 B( l" _9 F S' x7 f# ^ - )1 Z" J# P5 l; t
- ;;
8 U) Z! L8 L5 K. W - ;; Calculate new values for ELLIPSE
" w+ }4 c r- H" z- ~ - ;; Minor Radius, Area
+ Y2 v! o$ P$ H2 Z0 X - ;;
6 U2 Q' U, A2 l; N0 h `# i - (defun ell_calc_newval (ell_tile)
2 p$ h# i9 ?& w$ r( ] - (if (= ell_tile "majrad")% Q U( a" K9 l# n
- (progn
: W9 X, t8 ~5 E- C* g - (setq rrat (/ minrad majrad))+ g G% B4 c+ Z/ ^. [6 @# D; Z
- (set_tile "rratio" (rtos rrat))9 U8 ?. o+ w3 B
- (ell_calc_area)
& a8 A+ |5 e) i* n9 r K; _- K& G - )7 p' {0 ^4 k) b6 C4 h) e
- )
# i# D) x) H$ R - (if (= ell_tile "minrad")/ \% u3 A9 k& J+ S+ k8 _
- (progn) ]3 {( j9 _( z/ Y6 t3 j
- (setq rrat (/ minrad majrad))
5 H- ]/ r0 F( Q& U" J9 \9 | - (set_tile "rratio" (rtos rrat))
& n6 Q% y. t# v3 H3 q - (ell_calc_area)
% f6 ?, r8 k3 t, F+ H" w6 i - )
; Q! r% k5 C* U7 } - )
5 J* \0 a* X8 g7 E- Z. D; A - )
7 R! t" R. i! v( f, k- Z7 T R - % X0 ^7 R: s5 G
- (defun set_dimen_props (/ loop a stl txstyname)
7 B2 p% [' E4 d( L. ]; y0 \( y
+ K. {( l' g0 e. R4 L- |, S) ^- (setq stname (cdr (assoc 3 elist)) ; get style name
1 n, d# i/ g2 s5 @7 T - stl (tblnext "DIMSTYLE" T)
* J, C/ Q8 Y* f4 A1 \& ]2 w( z - stlist nil), p4 A" k2 `8 u6 M, S
- ;; Get all style names and list them in alphabetical order( _. C6 { Y# E$ M o; e4 ]: q
- (while stl3 R' ^7 r8 j4 z" ]/ K# Y5 j! l& w
- (setq sname (cdr (assoc 2 stl)))9 @0 L( Q5 u* ~9 K1 E& c9 J2 p
- (if (/= (logand 16 (cdr (assoc 70 stl))) 16)
: t7 j9 v1 E' D4 Y6 R7 r& | - (setq stlist (cons sname stlist)))
4 g% ?1 Q R" ], t - (setq stl (tblnext "DIMSTYLE")))
5 I3 ~ ]3 s1 @' K" D# v4 \5 L
& S7 A, ^; Q z, g& f2 i$ w, N* e- (setq len (length stlist)7 `4 q, f5 }) l3 | c- f) p
- loop 0
8 ?/ s3 l. C9 V T4 C s - dimsty stname( B' s- m, |' x7 M- }! c% X
- )
' |/ E2 Y3 k: [( M. B$ Q
6 G3 F, e8 {4 u. Q- ;; alphabetize style list, depending on maxsort& I- d9 i( a% m' u! V/ u4 i; j8 ]
- (if (>= (getvar "maxsort") len)/ X2 j0 @ F! L1 o- |7 V, B
- (setq stlist (acad_strlsort stlist))
* U% ]! B) h0 y' W& t - (setq stlist (reverse stlist)))& u0 v6 O% w% o: C6 p2 B
- ; F% U$ B! I- P% K# n# d
- ; *UNNAMED style (dimsty = nil at this point) is replaced with+ B0 E6 a/ X# Q2 E2 }
- ; the current style. After R13, we require dimensiosn to have a
9 s# o, a( D( @$ n3 D; y0 s - ; dimstyle, so we plug any holes where we find them., h6 J: Z2 Q7 ^
- (if (null dimsty)) B x5 e8 e* ~; x' e: b: ?
- (setq dimsty (getvar "dimstyle"))
4 ~) G7 X9 j1 z, v! S! I: Z - ) b! O- x( r8 r1 {
- ; Show the styles in combo box
, `) u$ n( Z8 k. q+ ] - (start_list "mod_style" 2)
" b0 U" s" J( y& w: n# W e - (while (< loop len)
2 j8 S, b1 p5 b( [0 C5 Q - (add_list (nth loop stlist))' o1 q2 m! |- ]1 ?8 m* t! U
- (setq loop (1+ loop))
7 h9 E$ h. E5 U) M+ b3 O* |5 m1 n - )
* ~) F' G, D0 J3 Z# s
1 o* I1 f+ `3 R- g- (end_list)
5 |, [$ e5 ?6 d4 N
+ A- s5 ], g* |+ g# a- ; Hilight the style name of the selected entity
, Z" \" B$ x3 x* Y1 z: p - (while (and (< 0 loop) (/= dimsty (nth loop stlist)))
, T9 c+ _. s/ O - (setq loop (1- loop))
& J0 y' y9 n2 R3 S9 z/ N! c - )/ z% g, O8 I* v$ k4 k* F9 Z' v
- (set_tile "mod_style" (itoa loop))& R: w0 F$ q3 u H1 e
8 p' s9 e" n4 m0 Y2 }$ i. M4 D- ; The following is the list dimvars. It must be sorted in the same1 v# F: S# S# s+ l% R) ^5 {0 f* y1 X
- ; order as the resfub returned from DDIM (ADS module).
5 z$ e0 {: P# R L9 P - - {+ Y U8 H& g6 j# c
- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"1 e, Y) u' D5 f+ d4 F9 m! g
- "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"
3 L- K9 ?$ X) v5 ` - "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"# j4 P$ Q3 Q9 O( Z
- "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
U& E9 u5 n; L5 S3 W% p - "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"/ Y6 a0 Y4 P! d; v1 |& G
- "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"
2 A' A7 W5 r1 R- O6 n - "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"" \7 |% a7 u- K9 K/ [: u
- "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix" K; |" A, J4 W; u9 {1 b' m
- "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"
0 R8 X) i% w4 a" t - "dimdec" "dimtdec" "dimaltu" "dimalttd"% }" y7 i9 U" O. z \
- "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj": o5 L- G; ^! l" x( X1 ~
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"! M: R2 Q* B4 P1 t$ [
- "dimtxsty"
" N3 U* J8 e: m& K6 ]0 V5 Q; N. T - ))/ I, w# d- b, A* d: S
- (progn1 j! j+ e3 _- \" h9 t' a
- (setq sv_dvlist (ddimen_getostate dimsty)1 F8 B4 O, E V& X0 @
- txstyname (assoc 340 sv_dvlist)$ _6 y. R8 } L3 t
- sv_dvlist (subst (cons 340 (tblobjname "STYLE" (cdr txstyname)))
& t2 T7 O. [; X$ J/ J' ]: Q - txstyname sv_dvlist)
" u8 }4 u- u5 u1 ~- s4 ^" y1 x - dimlist sv_dvlist; N2 `$ j" Z) H! r0 E; ^$ `
- )
1 Z7 \% ]; n% Z - )
: A. W% b9 W. I0 W: M- \& P- z8 {& }: | - (if (= dimtype "DDLEADER")
; `( G( w! n# @ - (mode_tile "mod_format" 1)
7 Z, p2 R* y- v3 Y/ [# L - )1 N" ?, e5 z8 b4 W3 J& W# {
- (action_tile "mod_style" "(setq dimsty (ddimen_style))")
0 |+ j3 M& X0 q! ^" C: c; _9 ? - (action_tile "mod_text" "(done_dialog 4)")* B- B* b2 [$ q
- (action_tile "mod_geom" "(setq dimlist (ddimen_dlg dimtype 11 dimsty dimlist))")
# q. j. i1 W4 F' X - (action_tile "mod_format" "(setq dimlist (ddimen_dlg dimtype 12 dimsty dimlist))")- \4 R; p* Q6 q5 p
- (action_tile "mod_annot" "(setq dimlist (ddimen_dlg dimtype 13 dimsty dimlist))")
! @6 R5 G3 g* c4 ?/ V0 L% h1 E - (action_tile "accept" "(done_dialog 1)")
' R; Z, r# r* f) D' p( X; ^1 q% r - )
# J7 X' s6 @$ m' q. u - ;;! {6 @1 H" x$ k
- ;; Get dimvars that have been restored.- Z( T$ z! @$ }' j6 k2 _
- ;;: E% J* r* [. ~8 E/ a$ ?
- (defun ddimen_getvars (/ elm dvlist dv i)7 E( L$ d! w8 Q! Z/ C: e* W
- (setq i 3- \9 J! R( Y* ?- v2 U
- dvlist (list (cons 0 "DIMSTYLE")
+ t/ d1 b2 e+ O! W. Q - (cons 2 (getvar "dimstyle")) (cons 70 0))5 U' M' M2 f1 D' Y. B5 a
- )7 J* S- {0 d) Q1 ]) Q; z
- (while (setq dv (nth i dimtbl))
L, K" J' X3 {2 y. ?% ?' N' w* Z - (setq elm (getvar dv)
- A7 C+ W5 S' O% Q - dvlist (append dvlist (list (cons dv elm)))
R2 N ?; S, o - i (1+ i)
% b7 H" f. E. Z9 c; y - )8 n" N. i; E( I" p2 o& O$ N
- )
$ g. r+ T0 M& ?* x% U - dvlist# ]. N7 }6 V4 J* @4 k
- )6 s7 O! A3 h* x t- V5 [
" w! @" {2 Y3 N" u+ @) G# m- ;;, b& R2 ^$ X* h8 p
- ;; Get the original states of dimvars. This is for DIMENSION entities.
/ a4 X7 D! L: N- t: @ o - ;;
$ m4 W# l& {9 t3 S0 X6 m2 L - (defun ddimen_getostate (dimsty / dvlist elm i dvvars)6 [1 v9 z* R% f2 I, v% J& |
- (setq dvlist (tblnext "dimstyle" T) ; Get a skelton list8 ]* u5 h/ ]8 x3 _. ?$ y
- dvvars (ddimen_getvars) ; Get dimvars for that entity$ J& D' B( N/ O
- i 1
8 C+ v8 S! i# Y - )
, A; `5 \6 S2 h) j
0 ?- ^( s$ K5 d B) b0 Y- ; Create a list that contains values of the selected entity.
0 ?6 N" z) A* s( K! X7 ?
! y2 c: d1 C" b& r/ E- (while (setq elm (nth i dvlist))
' ?/ y% f5 w2 P8 u - (setq dvlist (subst (cons (car elm) (cdr (nth i dvvars))) elm dvlist)$ W& z9 u- K5 c5 |; O
- i (1+ i)
; o4 }5 O: ^* C; ?" l( Q - )
" a" ]. @- d, x" L2 O. P - )6 b8 \1 h" L% u0 t
- dvlist
# d7 b' c y5 k _" |# e0 L - )! e3 M! Q \$ Q" O/ A' d
- 4 v: I; C1 Q% p2 @% J
- ;;
3 Z" D5 P5 U1 V1 b& o) i* B - ;; Restores dimvars of the selected enity.
% x7 |% j' k( s; w' p( L# g+ s - ;;7 n& w4 l+ M5 r$ o* [
- (defun ddimen_dimsty_restore(/ dimtbl dimsvcurset en)
( W2 A5 z2 l8 _4 U* n& ]. R - (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"
9 Z3 D+ C6 x1 \1 S6 e; c - "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"4 F1 p0 s+ [/ r
- "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"+ E7 ]. t$ e X9 v1 l+ @
- "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
1 Y: s! x" Q% `. u7 T - "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"
1 z1 @- c4 b" N' B7 p4 _' u - "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"
$ t! U; W* U1 W: [9 ]1 M+ s - "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"# U0 F8 W) s/ e7 G* i% M
- "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"
$ \8 v- G& P E, d - "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"0 A3 C6 B6 E( y* e- C' y6 [" n
- "dimdec" "dimtdec" "dimaltu" "dimalttd"
+ e* y4 ?# i$ T* I' z% D; t - "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"
. ]: h6 ~1 P7 M4 h% I5 X - "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt" a- d4 h/ x& N( d( y. Q8 z
- "dimtxsty"# P& s. C: |% F5 ?3 s' u+ X" ]
- ))$ q. t2 {* V% |
- (setq dimsvcurset (ddimen_getvars)) ; Save current variable settings
; U, W8 z! \7 C$ J' q - (progn$ Q' c7 w% f1 K# [7 ~9 @
- (setq en (cdr (assoc -1 elist)))0 l2 O, }* D: J9 r- n
- (command "_.dimstyle" "" "" en)6 D! ] y% E7 p7 y0 U3 I) z
- )
+ x) A3 k: P+ R* \% u5 I- z0 v - dimsvcurset
; f' y% b) c# C$ |" f. L" z - )
) u9 q. x: [6 p& h; V. H; Z - ;;
" U3 b* s; l1 F. w) u( f - ;; Modify Leader: S0 K1 m5 l& d2 e" t8 b$ P: f
- ;;
" ~% R8 C$ f8 k0 r1 o - (defun ddleader (/ dtypebit blkname bename sublist a stname n dimtbl+ m0 e7 B' e5 I' S: l) ~+ K! O
- dimsty dimlist dimtext svtext dimovr sv_dvlist stlist+ X" T x5 q5 M# X, w3 O2 U
- dimtype dimsvcurset)
, Q: o: P o+ [* H% ? y - (setq dimtype "DDLEADER"8 n7 ^5 q5 i! k1 U- y2 @1 N
- dimsvcurset (ddimen_dimsty_restore) g& `$ E! V) A/ r4 R$ S5 k8 `
- )
) n9 [7 U0 s {5 T z7 F- | - (if (not (new_dialog "ddleader" dcl_id)) (exit))$ P9 c) b6 L5 V ]" p" H
- ;; Set initial tile values
8 c! D! E: z- f% M$ \ - (set_tile_props)9 v2 D T8 J8 c2 K/ D
- (set_dimen_props)$ M# m% x# }3 R4 k8 {
- (set_tile_handle), E$ I3 p6 t) m& i: @' s$ w
- ;; Define action for tiles5 H* Z; k* ~4 v, w6 ?1 ~
- (set_action_tiles)) E5 n) W7 Q. C3 i
- (mode_tile "mod_text" 1)
1 H) W6 ~" {3 C+ f5 u6 R7 V - # b- ]4 M9 e: s, a+ M8 l k
- (action_tile "mod_style" "(setq dimsty (ddimen_style))") j" o: L: ^# V- \
- (action_tile "accept" "(setq leadtype (get_tile \"s-s\"))(setq arrow (get_tile \"arrow\"))(done_dialog 1)")6 ~% `3 s# p8 q1 m( b
- ;; Get ARROW and TYPE.) J3 y Y! @& h. w+ m
- (if (= 1 (logand (cdr (assoc '71 elist)))) (set_tile "arrow" "1"))
0 }: U, t* r4 ?0 i1 y' \- h - (if (= 1 (logand (cdr (assoc '72 elist))))1 D: N. K4 l' J M3 C a8 G! x
- (set_tile "s-s" "spline")
& T9 ~. C0 o0 S$ z - (set_tile "s-s" "straight")# J4 M* E7 ^. D
- )
$ w! H3 S; e# ^# R - ;; Start the dialogue.
$ F) G" ~6 v; q7 B: Y - (setq dialog-state (start_dialog))
/ T: p7 u6 E4 W3 f+ O6 W - (if (= dialog-state 1)
m; W% p5 v9 r/ l! w. y7 s - (progn
3 v! @7 U! o- h8 g/ }" R - ;; update the style
+ K C9 P1 L9 ]5 [ - (if (/= dimsty stname)( t% C3 n Z4 G' R
- (progn
' U. a _8 [, i# x: m* ~9 I3 Z - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case* P& Z9 W: v( E9 o/ L( d
- ; doesn't have it.
( l* F+ s' X3 K! } ^- u - (if (null (assoc 3 elist))
5 h, N" _( A8 h; f% I" W$ ? - (setq elist (append elist (list (cons 3 dimsty))))
: ?" S4 E5 A" Q8 _% I+ v6 B - ; else just replace it.
$ t2 L" ^3 D/ W0 J - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist)). _% L: x5 R& s5 W! `# _9 ^
- )
) c' |4 f F# u3 Z( X1 F' G - ; refresh sv_dvlist with new dimstyle.
6 t) F0 p' m& N* e2 g - (setq sv_dvlist (tblsearch "dimstyle" dimsty))8 {; ?2 `3 r" ]5 C' A T! n* v5 s
- )
# b4 M1 C5 P" ^, j- Y$ } - )/ z0 j5 p4 Y3 z0 _( w6 z
- (if (not (null dimlist)) ; attempted to change dimvars
" j! M y/ L6 T2 X5 Z; ~ - (ddimen_complist sv_dvlist dimlist dimtbl)1 W( V4 N7 u$ p( |8 Z
- )
' i9 \% {5 n3 c* {( \ - ;; update for ARROW.) c: L3 s: o& U, O# f7 F
- (if (= "1" arrow)
5 `4 O$ h* k: x! A4 a - (setq elist (subst (cons 71 (logior 1 (cdr (assoc 71 elist)))) (assoc 71 elist) elist))% `& \) V5 F: e& \; l5 t. X- D" v
- (setq elist (subst (cons 71 (logand (~ 1) (cdr (assoc 71 elist)))) (assoc 71 elist) elist))- s9 Y& S" t# |
- ), F1 B9 G. W1 w+ m- B, Q
- ;; update the TYPE. V. J7 ]- _7 H$ l1 e6 ]
- (if (= "spline" leadtype)
8 s# {5 L0 U- q# y - (setq elist (subst (cons 72 (logior 1 (cdr (assoc 72 elist)))) (assoc 72 elist) elist))* k( P% P: c) q B
- (setq elist (subst (cons 72 (logand (~ 1) (cdr (assoc 72 elist)))) (assoc 72 elist) elist))
6 D3 g9 i. \% t4 f: z+ q4 Q - )+ B0 d/ ~' A& O3 \$ W7 O: E9 O9 M0 s
- (modify_prop_geom)4 A3 r0 n/ I" `8 |
- ;; update the Color
0 f. o8 R$ M7 v9 F - (setq elist (subst (cons 77 ecolor) (assoc 77 elist) elist))
& n/ T* g$ z/ F& v) q - (entmod elist)
* J7 ]' i3 P% T/ x. K. v# N8 x1 q' J - )
7 k6 J9 Q0 R' a; | - )
. I: ?$ h3 X1 U3 ?$ z - (ddimen_setvars dimsvcurset) ; Prepare to exit
2 {5 V- a$ W- o; C7 n- R - )
+ D- l: C0 v, N9 f4 [1 D
' S/ r x+ `+ ?2 o Y6 J1 \- ;;5 G5 j0 E9 P" A7 Q; M5 D. x" m
- ;; Get dimvars of a dimstyle with overrides." f: r( K8 |, `1 ^ z9 D+ |5 ^) H
- ;;
9 e! {2 |9 ~: c5 o7 ^% B
9 \$ |; ?& A. L. b0 j5 f7 d- (defun ddimen_getdimvars (dimsty / dimovr dvlist elm i)3 F3 N* n' } w2 {/ r4 ~
( N1 o( k' P/ v% |( X- ;; Get override information for the specified entity.
; L& f& ]8 k! L: U+ h - ;; Leader/Tolerance cannot be restored by DIMSTYLE command, so we" | p& p2 M" P8 c
- ;; must obtain override information through this tedious operation.' P8 Z. Z% R( N5 _0 }. T$ u1 O9 ^
- (setq dimovr (car (cdr (assoc -3 (entget (cdr (assoc -1 elist)) (list "*")))))
9 e) l4 i' d: y - dvlist (tblsearch "dimstyle" dimsty)
3 G4 h L; a5 u# I1 N - i 2
+ x Y7 z9 c- g - )3 @% w5 p) R v1 q, P) D
[5 j. g0 `: w3 v- ; Update the list with overrides if overrides exist.
% Z2 K4 |1 Z- s( S- k2 p/ q: G
& b6 h; f: K6 I, q+ q. ]! R! `0 A- (if (and dimovr (= "DSTYLE" (cdr (nth 1 dimovr))))# I8 T+ g, @( _; i9 M3 N
- (progn9 d& {, V. A. S4 d2 X* s- N
- (while (setq elm (cdr (nth i dimovr)))
* k! g, P! B0 E - (progn- F, f2 u! W% O
- (if (or (= elm "{") (= elm "}"))
. E4 G$ }) I9 C5 y- a2 F# ] | - (setq i (1+ i))2 O; k# M! s4 t! h8 V3 M) f
- (progn
5 }" [! E/ q1 N/ a& K3 r- B/ p# E- L - (if (or (and (< 180 elm)' {( ?* e3 b6 j. p4 v1 P
- (< elm 190)
+ D/ m( b+ x+ q - )) e. F3 o- P4 A5 v
- (and (< 80 elm)
" U+ O( R, i) M& p$ b - (< elm 90)# r% @( T2 ~$ K7 ~/ j4 V& X$ H
- )9 X7 z$ Q9 L+ D6 \$ G
- )
# f: C5 A3 C9 p3 i D - (setq elm (- elm 10)), ^% @: [+ Z; E$ G- y. Y/ p1 z
- )
0 R g1 W" B' A7 S) v+ F: k - (setq i (1+ i)4 D; ` t* H, U) e" g% h7 E
- elm (cons elm (cdr (nth i dimovr)))
* F% P+ h- z- b; ?4 O: u, x - dvlist (subst elm (assoc (car elm) dvlist) dvlist)5 j8 ~' l" G& M* C- Q
- i (1+ i)
8 ^5 ]$ H. g6 M# B y3 R& f# v - )5 H3 E$ |. K+ @
- ) _7 l$ a' { v" S) @% t" J
- )
+ k: i Y/ z+ ?8 L$ i3 ~' B - )
$ O$ L7 j* h) Z) E; Y - ) s3 a4 d/ p; k. m
- )
* |; o6 J) X \/ e1 `7 g# u - )- K/ [2 w2 y W9 X+ V! M
- dvlist& a) Y! b1 a1 s2 x, M% @ |
- )4 S4 I+ x( P# ]( m4 e
, O- a" h' O+ ^" W& a2 P6 B& M% ^- ;;( Y* Z1 [/ E# D% `
- ;; Modify POINT. Q: M$ L& S0 s, P' c5 ?+ G
- ;;
! I; C$ a* o1 l7 X - (defun modify_point ()
& w. o0 h; y+ [" G - (modify_properties)
8 g3 N" M6 H9 x6 D( o" @ - (setq pt1 (list x1 y1 z1))
% z) V8 M* @/ b1 U - (tempmod pt1 10 0)1 X$ l# | R9 B
- (entmod elist)
- ^7 C0 W0 Q4 M/ q$ a - )$ h; W2 I& ~" t; m( o
! T4 K# n+ J& w2 }% t/ @- (defun ddpoint ()
- R* m" s/ b$ n' E& M - (if (not (new_dialog "ddpoint" dcl_id)) (exit))
; [9 z0 r K; { - ;; Set initial tile values
% Q0 g9 |# X% B3 J5 | - (set_tile_props)
4 c3 ~4 _5 F3 `& [2 _5 ~" i5 X - (set_tile_handle)
$ Y; F/ d+ x4 o% W C- @ - (set_tile_pt1 0)% ? N w3 @) V
- ;; Define action for tiles7 v, t6 e" b q7 {
- (set_action_tiles)
M! ?, O/ t3 _8 r, ?8 A - (setq dialog-state (start_dialog))# g J# V, v0 W7 r- V
- (if (= dialog-state 0)$ _' M. I# d5 a- K- D* O
- (reset)4 u+ u" M ^6 M- d, J% [
- )" K, v2 E) `) m" \
- (if (= dialog-state 3)& I% X6 s4 H- g0 ]( ?$ ~& u+ m* s
- (progn$ ]: r, W" ~( Z7 v1 l- G
- (modify_point)
1 T d; s, U' M - (setq pt1 (getpoint (list x1 y1 z1) "\nPoint: "))- B. \$ E7 e/ d. A' l, k
- (ver_pt1 0)
; L6 o- q) ~: {+ ` - (ddpoint) K: X) C2 c- e
- )+ P! j, v' n* ]+ g$ |
- ), P m$ X+ D) k5 u0 o+ ?
- (if (= dialog-state 1)
* w" \( [4 }% ?! Z7 q& N - (modify_point)
: U' D% Y5 a+ i u - )( g: w$ A8 A8 _9 K4 T; J
- )
' z% k* w8 f7 a - ;;1 ?9 W- t7 m/ w1 s
- ;; Modify LINE+ M$ L/ O' @* d5 l( Y1 l
- ;;4 y- u! V" W u- F& x
- (defun modify_line ()$ _: w7 P% u( x& [
- (modify_properties)
0 _' @! E6 B" `4 M1 M. l - (setq pt1 (list x1 y1 z1))
% a2 f# f; O0 G, X: f9 u: { - (setq pt2 (list x2 y2 z2))
$ V; I; P5 w+ } - (tempmod pt1 10 0)5 S/ O3 r/ o7 j( c7 q
- (tempmod pt2 11 0)9 P% {/ M" \; }5 X8 G9 i) P+ J% k
- (entmod elist)
: j4 {5 j, B' }% R& K, \4 b+ T - )
2 |# Y, f8 O. y9 W/ \* q - (defun ddline ()( j" s- @# f0 l6 e. Y2 f( D9 c, X) O
- (if (not (new_dialog "ddline" dcl_id)) (exit))
+ H. G5 Q) L) B' T0 ~+ E z - ;; Set initial tile values4 s. ^1 w9 B& D) L
- (set_tile_props)
* I6 b/ Z; u6 n# B3 ? - (set_tile_handle)/ ~) |; \" _ ~1 @2 }" Q
- (set_tile_pt1 0)
/ S- {: W/ K8 z- L) J7 F& { - (set_tile_pt2 0)
: ?; m$ E- E1 B% ^ - (line_calc)" v, S- r$ L* c- a4 Q4 m, Y O
- ;; Define action for tiles" U6 [5 l) h2 R* u9 G7 s
- (set_action_tiles)
' }! c+ q% {$ S+ N - (setq dialog-state (start_dialog))
2 X w# n9 f1 |; Z0 {1 M" T - (if (= dialog-state 0)
: S6 H# k. t: U" r - (reset)
. u0 t6 D! ]: Q" I; A - )
: T. e) h2 l; v5 T+ } - (if (= dialog-state 3)
. R9 H' F' e# q6 h; T* l7 l/ k$ f7 O2 S - (progn
! t$ }2 v+ k* a: k - (modify_line)
# o+ h& k$ q5 [: ~2 t& H6 I - (setq pt1 (getpoint (list x2 y2 z2) "\nFrom point: "))
3 Q5 r0 a' k: q* O - (ver_pt1 0)" j% ~2 O, P4 B- y8 j
- (ddline)
- q# c ?$ }8 |5 l' ] - )- R, D, Z9 S$ x$ ?2 s* n, @
- )' W! g+ |' E) d/ a1 A" n
- (if (= dialog-state 4)
6 c& e, Q7 m, R; F2 l - (progn
+ a( k4 M$ P" _" ?+ |. m - (modify_line)( A! H: N/ c4 h w _& I3 C
- (setq pt2 (getpoint (list x1 y1 z1) "\nTo point: "))
2 V/ [; G3 f/ K# \( K- e W - (ver_pt2 0)7 ?* w% c# c3 S; F
- (ddline)
# y6 e$ S8 m. j+ f0 v* C9 t' p - )# E; }8 Q. M: O) i! X1 N: {4 g2 V% o
- )
8 Y( e* F" a3 ] - (if (= dialog-state 1)
9 @. b- z; L) ^ - (modify_line)" h7 ]2 r0 ?3 o- Y; p1 w% [
- )
0 Q8 f* u& P$ o$ V* q1 E. w - )0 m. J+ y$ x* H" Y# H2 V
- ;;# ^2 l% \4 u; W) L- a+ O" N
- ;; Modify MLine
$ S& F$ x" V/ V& b' b2 \: r - ;;6 w9 g& ~* w* D0 H# x2 Z
- (defun modify_mline ()0 g# W( D! X: g7 o$ u
- (modify_properties)
$ w# }- P2 ~. z' ?' C9 O1 ] - (entmod elist)
0 W# _4 `( i4 f! w( _3 E1 z+ a% j - )+ G5 X1 ~' U4 J* }8 ~' j
- (defun ddmline ()
9 t2 }; P6 a$ i) H1 t - (if (not (new_dialog "ddmline" dcl_id)) (exit))- g: W# E8 Y$ ?9 m; r; t
- ;; Set initial tile values% B5 y E3 i, E' Z
- (set_tile_props)9 _# C8 A+ C& G; \& a: V: F
- (set_tile_handle)
5 v2 b8 d1 M4 t. f+ o - ;; Set mline style text field.' h% s5 p7 N# I$ p5 ~- X$ j" y; L+ M
- (set_tile "ml_style" (cdr (assoc '2 elist)))- T" R$ k, |8 P9 L( A
* q5 J( E3 F# F+ G- ;; Define action for tiles: u4 A& [8 S0 `
- (set_action_tiles)' S; O @! a F H9 o, @
- (action_tile "ml_edit" "(done_dialog 3)")
9 s; M9 h7 W) t; {# p' n$ A$ d# f, W - (setq dialog-state (start_dialog))
% e% U5 K% F3 a6 ?# m - ;; Dialog cancelled, reset to original values.
9 @1 } k) m6 D% L% D/ p - (if (= dialog-state 0)# B5 s8 [: o, i% S1 y
- (reset)9 Z* _ P/ f) Y: Z5 M
- )3 H7 ?5 q( s8 `; t2 E+ T0 R6 }
- ;; Dialog OKed, update the mline.
6 x1 O! a$ l9 O n - (if (= dialog-state 1)% D1 f/ z0 ] p* \* o& U# x8 {2 Z) L
- (modify_mline)
0 D! c r; q" R: `0 w& K; _- ~5 g - )& j# p6 l9 p( m7 O- q# ?; | g
- ;; Edit Mline, call MLEDIT./ n/ k3 ]) \2 V7 u+ t* C; L
- (if (= dialog-state 3)) J5 G4 P& F0 X0 w; L8 g8 j! Y2 d. E
- (progn7 w, z* G m& r3 q5 {4 S
- (modify_mline)
0 I0 F4 J; ^7 h! Z' f4 S! C - (command "_mledit")
* m# I' l7 m& l/ m - (ddmline)7 j8 \7 j! X b( [. T, K$ I/ p
- )+ O( m3 A* k$ X( d0 m) v
- )
- K7 E/ {/ s# z( h - ): ? M' c# O7 V$ S$ u" |
- ;;' M. G8 m, P( N8 o7 }
- ;; Modify Xline
T) S- [, s2 X - ;;* P6 c9 A1 H% e: J* P
- (defun modify_xline (flag)
; f w4 i' \6 N% y" U - (modify_prop_geom)
6 x, _: ~3 a4 P - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))
. G8 x1 d P0 R) P, i) ~2 y! E U9 g - (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))
4 i' [" Z& P4 f2 T! J) S& S& p - ;; Update the Root point.
8 `5 d/ N1 Q1 g) v0 ?+ k0 D - (setq elist (subst (cons 10 (trans xline_pt1 1 0))* J: ^3 b3 \4 o
- (assoc 10 elist)
( W* ~9 f$ C/ l - elist4 S' g5 d+ |' i% q
- )8 Y$ Z j. }4 h( y% D
- )
- O: v% ]; Q* T! E8 J) g - ;;4 j1 s+ \! i- C7 y9 m2 f" M4 z
- ;; Calculate new Direction Vector WCS
- D$ o$ m, b9 J/ L- T4 M - ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))% D& J+ r6 z( [* P
6 _' A7 M! }4 C4 ~: w5 t- (setq temp_dir (trans xline_pt2 1 0))
- C3 e" e4 o: G) x: P - (setq temp_dir_x (car temp_dir))3 D! G: f' S T* m
- (setq temp_dir_y (cadr temp_dir))$ m$ z5 K% Y, f' t" `* w* X
- (setq temp_dir_z (caddr temp_dir))
: `8 T2 F/ A0 `. Z# z9 k9 a - ) o2 {" D0 I6 k, C
- (setq temp_xline_pt1 (trans xline_pt1 1 0))% u& \: E0 a: f/ ?, j9 I
- (setq temp_xline_x1 (car temp_xline_pt1))
' S' r% j% u4 F8 E# M+ U* _ - (setq temp_xline_y1 (cadr temp_xline_pt1))
2 N+ z' q6 N4 A: H3 e" E. R - (setq temp_xline_z1 (caddr temp_xline_pt1))7 Z2 n9 z4 d$ R" R. E
! i2 o8 E' `6 ?4 P0 a5 v C4 ?- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)0 D3 @/ b4 j2 O
- (expt (- temp_dir_y temp_xline_y1) 2)$ J* p+ S* l( C& V
- (expt (- temp_dir_z temp_xline_z1) 2)6 v5 c7 }* ~5 P/ f7 O) _ V- z
- )))7 y) P# R8 |; t
- (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))& N# Y. F. O3 I$ |
- (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))& E. F4 ^" V. Z
- (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))9 E6 M$ X: z$ S9 T2 d! Y* W
- (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))7 f4 |- Z. C/ s$ v
- (assoc 11 elist) I6 w% k, W8 z2 W, K
- elist
$ n- O0 ]' A7 X# ` - )0 f! J2 v+ W, X: \1 Z' ~" k/ H
- )
# `! |' u0 E; G- T - (if (= 1 flag)% H6 k+ Q: D6 [
- (entmod elist)3 i6 K4 }$ V( g( {( h
- )+ i% d+ K) h& z
- )3 o, @$ V! {! ?' ^
- ) P! q, F9 i% r. c# T
- (defun ddxline ()
* q3 }$ c- `+ w - (if (= etype "XLINE") ^# ~! k' O; F8 b4 q8 p3 m
- (if (not (new_dialog "ddxline" dcl_id)) (exit))2 C, ?5 l6 ^ ^/ h0 s
- (if (not (new_dialog "ddray" dcl_id)) (exit)). n5 d6 F- z$ U+ C2 X
- )% F# h3 F' }" s2 J3 v& @
- ;; Set initial tile values7 o w7 s2 r4 y0 n3 q; g2 r
- (set_tile_props)
) M; Y& S. h" W$ H) z3 Y - (set_tile_handle)7 y3 y0 e% D, @$ j4 u7 _( W8 F e
- (set_tile_xline_pt1)
6 @6 V& g- N6 F1 n - ;; Convert to UCS and post Direction vector.. U. y9 y) ^' ?
- (set_tile_dirv)
! d( `2 }, Z5 B$ c0 M$ x - ;; Calculate second point by adding Root Point + Direction Vector.8 O" O( K* j! x. a& o5 J. ~
- (set_tile_xline_pt2): z O8 N j* F6 B+ t1 |) M
- ;; Define action for tiles
0 i' I5 |! a6 ^% m. } - (set_action_tiles)
5 k! G) l8 @* ]! U$ v" z: \ - (setq dialog-state (start_dialog))
; N- Y0 A: i+ p7 b6 i - (if (= dialog-state 0)1 n3 y2 q" h2 q- C$ W* i
- (reset)
% r' I9 i. d9 C" u7 m$ P" i/ K - )# U1 O3 P# X3 G! Q. ~- ]! C
- (if (= dialog-state 3), b3 G0 P. D3 o
- (progn
+ }' B$ z9 N: r6 v+ l" V5 o - (modify_xline 1)
5 M% o& D- K& Q7 {5 t+ _' V2 U9 I - (while (equal xline_pt2
" o& E7 C# l0 _: A' b - (setq xline_pt1 (getpoint xline_pt2 "\nRoot point: ")) 0.000001) J2 M' q) R. U
- (princ "The Root point cannot equal the Second point.")
% h5 A' {5 n" S+ v) o* r2 C - )6 f' H) q+ J! U: r6 W3 j# Q
- (ver_xline_pt1)! \% S9 P5 j ]
- (ver_xline_pt2): P" }3 \& E. w' x/ Z9 M. ^* n
- (princ)3 R0 Z5 s) J' Z
- (ddxline)
. M5 Q7 a5 `2 J; g! E9 R - )! |% Q- e2 y4 Z/ Y# n/ P
- )
. ]- v8 m* `5 a - (if (= dialog-state 4)
8 g# g8 q6 Y: M" @* c$ ~9 \ - (progn7 D) H- \% J2 A
- (modify_xline 1)
1 C" H! k1 V# N! A9 Z - (while (equal xline_pt1# H) e; [4 E& n; t7 Z
- (setq xline_pt2 (getpoint xline_pt1 "\nSecond point: ")) 0.000001)% A, s% f# k( g) O; g: ~" ?
- (princ "The Second point cannot equal the Root point."). M7 \- E6 F3 ^- l2 n* T/ ]$ W
- )
" T/ E. K9 F q# M" V0 C: z - (ver_xline_pt2)
+ U0 u& u$ n: Y, C3 M - (princ)- a: c: _3 H$ r2 s& D0 N: `
- (ddxline)' v$ M j2 b0 k: O7 V% W
- )
1 ]. W! ? y z( b. @+ u - )
5 N ]! t& O1 M - (if (= dialog-state 1)# c4 ]9 r/ P7 L) F3 ?" O
- (modify_xline 1)/ _+ S/ g& ]! Y; U) R
- )5 {5 Y/ s' T4 k/ e7 Y& @! g
- )
1 r+ E* c2 f$ H7 d! u$ F2 o - ;;
5 `! Z" b8 f( g" e1 F/ ^ - ;; Modify ELLIPSE4 f4 b7 S+ Q; r+ y
- ;;, Z, [. d7 N& F# Y: k2 I
- (defun modify_ellipse ()
: A2 t# B: Q# G& o# I4 z - (modify_prop_geom)
, Z: v) w2 N2 }0 j q/ J- s - ;; Update Ellipse Center Point value.. }2 j; d9 f! i* L% w/ F
- (setq pt1 (list x1 y1 z1))
0 o# `- C& a/ z7 K$ M - (tempmod pt1 10 1)
1 R4 _% b* ]# x - ;; Update Start Parameter value.
( a* F% A8 Q5 c, d4 V) m - (setq y_val (sin st_ang)) @' _* B3 C7 T& p
- (setq x_val (* rrat (cos st_ang)))4 y( e/ p/ \; X5 X! B% J
- (setq stparm (atan y_val x_val))- @( G0 A* Y7 t) x/ {3 O H+ h) y
- (setq elist (subst (cons 41 stparm) (assoc 41 elist) elist ))
$ d( D& a" q! r4 o# p - ;; Update End Parameter value. Normalize it, if it's less than
8 a J$ Z6 m! [8 v2 C+ @ - ;; the start parameter.
7 W' R0 V' h0 R* P6 [! g - (setq y_eval (sin end_eang))
0 @$ o' G% ?, t( L4 d6 b - (setq x_eval (* rrat (cos end_eang)))5 i& U& n# p) [ K! G( K
- (setq endparm (atan y_eval x_eval))
6 O' _( B7 f @% T r - (setq diffparm (- endparm stparm))
7 L$ s5 c1 s" Q n9 }& D9 a - ;; Epsilon of 1.0e-6 radians for checking a zero length arc.' d$ W- J/ J! N- U! A, Q
- ;; Since zero length arcs are not allowed - construct the full# `4 B! o6 P8 c1 ^' S
- ;; ellipse in this case.
# N) N& M( _) p9 b, D$ a. H - (if (<= (* diffparm diffparm) 1.0e-12)7 l+ l. ^' k+ S1 W
- (setq endparm (+ stparm (* 2 pi)))
3 w+ _( L3 [ L3 O - )2 S. Z B% m- V- z3 I" Q" T
- (if (<= endparm stparm)
6 B5 ]0 C6 f; S( `$ u9 X* ~6 n - (setq endparm (+ endparm (* 2 pi)))
0 B8 ]3 K' B" B - )
6 j' p! _" M4 \# o2 H - (setq elist (subst (cons 42 endparm) (assoc 42 elist) elist ))
* F2 [/ B: g5 C; i$ z0 N5 g - ;; Calculate the Major Axis Vector by first calculating2 _3 i! m$ z7 P( Z. y6 t
- ;; a unit vector using the old Major Radius value. Then+ I7 z- q) N2 S- {' X0 y
- ;; Multiplying that by the (possibly) new Major Radius
, C* t, h1 F$ d' V* x# r1 A4 W - ;; value to get the new Major Axis Vector value.
1 Z8 s% ?, O0 t9 _" ~9 O - (setq unitxx (/ xx old_majrad))( K d- D N( k4 {7 k; g' |
- (setq unityy (/ yy old_majrad))
- \4 d2 r. ]6 N, H+ {0 F& | - (setq unitzz (/ zz old_majrad))
' L7 g- C& {0 D8 q - (setq newvecxx (* unitxx majrad))
4 P- }) }2 Q# [ - (setq newvecyy (* unityy majrad))! r j$ w' q0 R' K$ k8 U
- (setq newveczz (* unitzz majrad))# [7 ]) H) A$ r4 V% u( ?6 W5 N' v
- (setq newmajaxis (list newvecxx newvecyy newveczz))5 A# ~5 k0 W( J* h4 i& D
- ;; Update Major Axis Vector value/ `/ G0 }6 K0 O. U& E2 H! R; u, y
- (setq elist (subst (cons 11 newmajaxis) (assoc 11 elist) elist ))
# P8 k) d! B. p9 ]; E$ D; S2 F - ;; Update Radius Ratio value
4 k( g5 e8 M0 v1 G R7 ] - (setq elist (subst (cons 40 rrat) (assoc 40 elist) elist ))* a T; Q/ Y; N' Y) b$ H& [
- (entmod elist)
! e8 U* u; b& U7 x3 u' h3 a7 ?. u: h - )
' o* R: ^ V4 b S - 9 Q/ k" a1 O2 h# \8 q' b
- (defun ddellipse ()
- y* f1 O: w: r0 E9 O - (if (not (new_dialog "ddellipse" dcl_id)) (exit))5 Z1 z" T: G; |, f. }& I, ?3 V
- ;; Set initial tile values: f) g- u! E9 g. z0 M, c
- (set_tile_props)
) V# c- B4 M5 x - (set_tile_handle)' _3 W* s' B) {( V1 u) T
- (set_tile_pt1 1)% R; t, q d5 Q* s5 @
- (ell_calc)
/ |1 l' K, v3 w7 i v6 `) J - ;; Define action for tiles
* ~$ D; ?& z! r# { - (set_action_tiles)- m9 N5 [8 p1 F* s" T
- (setq dialog-state (start_dialog))
9 F0 R9 x" | b" @% ?/ T - (if (= dialog-state 0)
5 ]+ L- N, ?1 d0 a - (reset)
' |3 ^5 f9 A5 q$ s* S9 e8 | - )
B5 F* Y, K; [, \ - (if (= dialog-state 1)
% x# p) V) q+ S1 g. I. k8 g - (modify_ellipse)
) f9 h$ z4 h# K1 G# A- L& X A - )
3 |! N$ v2 W8 d0 m, s - (if (= dialog-state 3)) d; f1 a; M4 a! C
- (progn
2 O( ?' k) j9 s k - (modify_ellipse)
9 E9 `- W6 w7 O* T - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
5 p" \' x- V8 D, ~ V - (ver_pt1 1)
( w9 X, N! s; T# @ - (ddellipse)
0 ]5 x! Y7 D0 M% r, p, V - )
, y4 I9 w; \4 R% j8 L9 u- |, f - )' d* U0 m- Z5 t4 e
- )4 v' l/ k9 c! o& g5 A) W2 o& x
- ;;* `- t0 c: a* g7 ?1 A+ h
- ;; Modify REGION
7 r T& S4 U, R Z) P; Z6 B - ;;7 ?- [6 Q6 m0 g6 ?+ a( L
- (defun modify_region ()0 K, ]1 h! F4 b! J" U& I
- (modify_prop_geom)
4 V2 V" ?+ m7 z- G - (entmod elist)
8 k: f" u* r3 J - )9 y$ N4 ]: U1 o5 S3 Y/ L7 T4 M
- $ P* i0 Z8 z: [" P3 b, ^
- (defun ddregion ()% Q, ?% B) ]" j1 @4 t- ]5 i
- (if (not (new_dialog "ddregion" dcl_id)) (exit))
6 b# w& ]! |0 `/ O( a; t; U& h8 O - ;; Set initial tile values
3 ^3 n. d: D) i# N/ b( K* Z" J - (set_tile_props)
[+ j; ` R, [4 }) k - (set_tile_handle)4 M( M/ w/ d- V$ y" N. q
- ;; Define action for tiles
* E. m! l5 B8 K& j' F. [+ G" k& ~6 S8 j - (set_action_tiles)
2 l3 x; ^# e8 A - (setq dialog-state (start_dialog))
- N2 C1 d# E8 A( T5 ~4 Y7 n# A, k - (if (= dialog-state 0)
3 w" F1 F( I" {; e; Y - (reset). T9 F% o' Z2 P+ n& A A) }
- )
2 M3 E( i% f/ @2 t; B# O1 A+ B - (if (= dialog-state 1)
5 r6 c2 u7 p5 ^* T - (modify_region)5 o% Y/ D( S1 U; M$ P
- ) e2 a9 S: E$ S) n
- )" ^# }; H0 U" H7 v8 B4 g% ]. Z' f* T9 B
- ;;* q9 X7 W( h5 }: `
- ;; Modify 3DSOLID
* }1 q" y, y( t9 y, J - ;;
3 s" c3 D( u8 g/ ~% v( c - (defun modify_3dsolid ()
# M n5 Q4 v& m: K+ A - (modify_prop_geom)
, X7 W" E8 D0 ?( s# r9 U - (entmod elist)7 o- S1 s) o. D& R
- )
. P2 s% x) g& u* S& I. e. o
: |& P+ H$ R) h1 W0 u0 g. f- (defun dd3dsolid ()/ d; B, h" R7 t
- (if (not (new_dialog "dd3dsolid" dcl_id)) (exit))7 h# }* A1 \% ]
- ;; Set initial tile values
% o% c6 J3 ? i5 m - (set_tile_props)
5 |' X% G4 j" J9 F$ ?4 E# } - (set_tile_handle)# M1 p' ^1 T3 ?0 P
- ;; Define action for tiles
* T7 {2 F3 ]+ B. {# m A( X9 u8 w - (set_action_tiles)
/ d! s+ @7 N' K. U1 i" \ - (setq dialog-state (start_dialog))& O5 H s' m9 W) W: w
- (if (= dialog-state 0)) d1 J* L7 M2 q* p+ L
- (reset)
2 l, o1 Q: E' U5 c+ A - )1 a1 m8 P$ q2 k( c2 v* [, `. ^# a
- (if (= dialog-state 1)
& x! a+ N7 M1 Y* O7 }7 } - (modify_3dsolid)" m! p) g1 K( B
- )
: k' a( C. e. l1 t - )- C# K; f9 ~+ \1 z+ I6 l' T# i& D
- ;;+ u3 \! e# ^! ]0 O/ Y
- ;; Modify AcDbHatch
9 b$ ?9 I( g- [( Z2 R H - ;;
5 `9 Q' v U1 ^& g* x2 d; Z - (defun modify_hatch ()& i( z2 e9 r1 q0 ]1 Y3 L+ j; P4 Z
- (modify_prop_geom)% _- T% R) Y6 X8 ^! S
- (entmod elist): C- ?! L/ i+ s* L1 p, R1 ~
- )6 k' N: E( W2 U3 `9 C1 Z+ E
- / B9 U( n5 x$ J- ^
- (defun ddnewhatch ()
. b6 i$ I9 n0 }0 v - (if (equal hatch-elist nil)3 ?0 M2 p8 R6 N9 w
- (setq hatch-elist old-elist)
. I& Y' ^7 ]6 D. I8 B - )
1 G( O" n, M* q9 m" ], X5 z& B
: i. c) n. M$ [8 Z- (if (not (new_dialog "ddnewhatch" dcl_id)) (exit))8 ?& E6 Y* o" ?& f6 g' r+ R/ F
- , h, x4 M; i4 y1 ^1 l1 @7 y% w
- ;; disable the thickness tile
4 c6 q) s5 ~& I- K3 s9 p/ w - (mode_tile "eb_thickness" 1)6 N3 s. }2 R' ~4 G, \: F4 A
- (mode_tile "e_thickness" 1)
% X3 T# I% M& c2 N1 R- Y; c - + @( U" a( x& M! n* _8 X5 T" D3 ~
- (setq help_entry "modify_associative_hatch_dialog")8 Y+ j( ]- s" U" U$ f) @
- (set_tile_props)
3 R/ t6 k( k& p* \ - (set_tile_handle)
: {) e! C- |8 T$ N' [. w2 Q6 | - / n4 y( e9 E+ Y4 i
- ;; Define action for tiles
* b3 M/ [ H7 F$ Q. F - (set_action_tiles)% V; D' |1 n5 i, f
- (action_tile "b_hatch" "(done_dialog 2)")* l1 W! F" _! R: [% y! W
- (setq dialog-state (start_dialog))% [3 O) c: h( C, z
- (cond, W' @. f" {7 s& Z' ~
- ( (eq dialog-state 0)
1 e+ s5 E$ F) p9 F - (setq old-elist hatch-elist)# o l8 g- O! I% x6 V/ W. m1 l2 q
- (setq hatch-elist nil)
" J% e- I- m1 d, t4 ~) z. f - (if (= (checkforlockedlayer ename) nil)) \+ S. E- Z& M
- (reset)" N" }2 T+ g. I4 w1 ?9 e- N! C
- (progn ;;; special handling for locked layer reset* n& c. _( N) j w$ L$ Y
- ;; unlock the layer9 U2 F1 Y4 M, H% k' K
- (setq layername (cdr (assoc 8 (cdr (entget ename)))))
' e% ~! @& }! c: [2 t - (command "_.-LAYER" "_Unlock" layername "")
8 b! t% @" [1 l2 {% U7 k- T% i - ;; reset modifiction
9 D* N G. F: X* R( B+ _ E% |* x" E - (reset)* ?, O0 y' ^' @
- ;; lock the layer again
1 l- s# p6 V, Q; W8 W O - (command "_.-LAYER" "_Lock" layername "")# _! o; |* d& v# k
- )
+ P: S: X# o q9 p% F( p9 V7 |; h - )" S9 @% f' \& Q5 B' C9 \& c$ T
- nil ;;; makes (ddnewhatch) return nil for Cancel7 u+ B6 P$ ] b8 t
- )" W, x0 k; P! K
- ( (eq dialog-state 1)6 O" T) l$ l" A F8 a! F- m
- (setq hatch-elist nil)/ x( @3 C/ _7 l1 ^) a' @5 R
- (modify_hatch)- a2 Y% M; P3 W# g7 m$ \
- T ;;; makes (ddnewhatch) return T for Ok2 b _. d) |% ^
- )
1 u# i) T! a) F/ B& z7 k) I9 p - ( (eq dialog-state 2): ?) I1 x$ d% @
# Y+ a Q ?" t- (if (= (cdr (assoc 70 (tblsearch "LAYER" elayer)))+ m. i; Z$ H D' D X
- 4
' W7 d" @/ V; J( x, V, w- G - )
- D6 [$ P" d, [0 W5 C' S2 @. L - ;;; new selected layer is on a locked layer
Q9 M' X9 `7 ]+ I( f - ;;; we can simply modify the hatch properties
$ l) v/ I) H1 X: k( l - (modify_hatch)9 p$ c* o3 J; V( z& s3 l
- (progn7 Q* ?0 t# Q$ d) y' k" ^: z1 ]
- (if (= (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 (cdr elist))))))
9 ?5 j# X% i9 C$ y" Q/ \ - 4
" M {- X i0 M) g/ Z. u - )
4 L' K4 L/ _0 Z8 |3 W - ;;; We changed the layer previously and now the hatch lies on a locked layer.2 B7 _3 S6 V! k3 Q; a) w6 Q" O
- ;;; We have to unlock the layer forethat we can update the hatch properties.
6 C! n- s5 z! d: K4 f9 F - ;;; If we don't do that (entmod) fails to update to the new layer.
& u1 w; c6 y( l4 ~ - (progn7 l- ^4 o$ y& O+ P( y2 {$ {8 i
- (setq layername (cdr (assoc 8 (cdr elist))))6 C; E6 L5 n; g$ C9 s2 u+ h
- (command "_.-LAYER" "_Unlock" layername "") ;;; unlock the layer5 A; o3 j. O5 b; W, l& @ p: q
- (modify_hatch) ;;; update the properties
! c/ a0 E, h% V @* A( X+ {& Y - (command "_.-LAYER" "_Lock" layername "") ;;; lock the layer again3 x9 [8 a0 s8 c5 d+ ?( Q% O
- )
8 r' o9 g9 v6 u* d; y - ;;; All other cases we simply update the properties
, H! Y, l5 j4 ^; x - (modify_hatch)7 S& w6 K6 A5 `! f4 A+ c' G
- )
/ e& y6 `& ~7 R, X. Q2 m - )4 v, O' \9 j3 O/ a& S+ m5 s% d7 J! `
- ) 5 X x4 D) X# P% ^$ R& _
- (if (= (checkforlockedlayer ename) nil)
1 @; c' H ~' } - (command "_hatchedit" ename)
: P: L" e5 o/ n4 D$ u - (alert ;|MSG111|;"The hatch object is on a locked layer.")( v, b7 b$ a. F1 a
- )3 Y0 A7 O# w9 k4 L" ~8 {
- (ddmodify ename)
' R- X% T: U$ I# n3 j - )& {. \7 u( [) @5 s
- )
! _4 N( f4 d* a - )* D, ~$ |% `+ a1 B9 P& E, t
- ;;
$ q- u: J* `4 m5 u - ;; Modify BODY
5 N4 Z8 y- U% i7 W/ b" n! ` f% _ - ;;7 a: f% r3 n: L9 j5 K Y; S
- (defun modify_body ()) `" b; S' l! \# _, g
- (modify_prop_geom)* j. A4 {8 J2 Z" C" x& }5 l
- (entmod elist)
: a; t1 I# y' l4 z - )
# t- q% ~% V7 @% K0 L# s - ; V- X" M) ]2 O6 i1 ~; r9 H
- (defun ddbody ()% b5 q4 v( R. P+ U% J. W( l
- (if (not (new_dialog "ddbody" dcl_id)) (exit))
5 T8 E) M# f8 o3 G& J5 n+ C - ;; Set initial tile values8 j5 g$ a. Z% B) e
- (set_tile_props): t$ G6 h4 z" D" ?4 m
- (set_tile_handle)( q% `9 O: m/ ]( o! K: [7 S
- ;; Define action for tiles
# X- X4 c; x6 C4 i - (set_action_tiles)
; }* p( a n) L) N1 m* ^3 b# |0 K - (setq dialog-state (start_dialog))
9 M. A6 f. ?7 k) n- ~ - (if (= dialog-state 0), P& ~& P3 q( i: e' e( t: l7 [/ n
- (reset)
* n4 K- F6 G0 H! Z9 | - )
# W$ H" t8 V9 R3 x, Z - (if (= dialog-state 1)
. E! u' M: P# T" G% i9 N8 X2 m! v: `% [ - (modify_body)6 V7 A5 F. x( P @
- )( b+ K o. w: b
- )
; O" s9 s/ @9 } - ;;1 F5 l; W! v! I7 Q
- ;; Modify CIRCLE
+ M" [/ U' F8 x0 W. X - ;;, x& n N9 m! [4 A4 | v$ k
- (defun modify_circle ()
. s7 w4 n, ^, v$ F2 o - (modify_properties)5 }. o8 g" p0 q4 C9 e- L3 o
- (setq pt1 (list x1 y1 z1)), C+ {3 a- s4 h4 D; `; K. o A3 ^6 r
- (tempmod pt1 10 1)
" [9 x3 S" }% p& |% Q" f9 x) k - (tempmod radius 40 nil)7 T& l) c) [) T. b2 S0 `8 G" ]
- (entmod elist)
# {4 O, N7 h* j/ Q - ); g+ r3 H1 d8 ]
- 6 O* C; d/ a! u6 `4 q3 t; v
- (defun ddcircle ()
4 @5 E2 L% h5 }- d% W - (if (not (new_dialog "ddcircle" dcl_id)) (exit))
! S$ L4 r( v7 u! U - ;; Set initial tile values
3 J# b* O/ Q) q+ C7 F1 k: i - (set_tile_props)
4 D. S$ s$ o$ s: ? T - (set_tile_handle)' {2 [" n% J; z" R Z8 O
- (set_tile_pt1 1)
: ^/ S# h( ]- X6 a5 c4 E - (set_tile_rad)
; k r+ \9 y8 H- j - (cir_calc)
5 H' D# u3 b$ K$ A; b, }0 z - ;; Define action for tiles" h+ X3 r* [; Z' h# }2 C6 W
- (set_action_tiles)
) p8 K) T* d- \' k; r9 T T - (set_tile_pt1 1)
! J0 ~3 v* V1 I; c( Q% v8 x - (setq dialog-state (start_dialog))0 P w9 f2 B3 t6 B9 m- O
- (if (= dialog-state 0)! n* E7 P7 c$ D% C$ ~! v5 F7 W3 c" H
- (reset)
. S0 { x. n( m) U0 w - )
% f+ k+ j- L: W* J - (if (= dialog-state 1)
* o8 _. X6 X+ H - (modify_circle)
" W# \! |; r1 Q v/ k - )
, t P7 l: i# R. l0 r - (if (= dialog-state 3)
( B' l/ F0 |/ H - (progn
3 ]3 B. W, f B7 a! y" n( [/ O - (modify_circle)0 f4 W! a9 G5 z8 z4 \( E( s
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
& @; _* `* L7 K8 Q* B9 c - (ver_pt1 1)5 ?8 ?+ J' c; _1 Y# q4 h8 @
- (ddcircle)' h& V) o! j* U$ h0 E, n0 ]! y
- )+ R: s/ {7 s* W' Y* t }
- ): B4 ]# W4 N4 x" d7 E
- )* O- F P; o5 j7 I
- ;;
( K9 A! V' b" g& [ - ;; Modify ARC
- T: {" ~0 m* Z- r# p6 b; z* P* f - ;;+ {& E& c9 Q6 V9 _& l% k9 F/ C
- (defun modify_arc ()
o2 f3 n+ X* o0 z$ t D- T( q8 ~ F - (modify_properties)
% R. k& R5 p* m3 c - (setq pt1 (list x1 y1 z1))5 v- p$ u5 d6 `8 G
- (tempmod pt1 10 1)* i4 h9 h& j C7 G
- (tempmod radius 40 nil)
7 Y! d# @! `2 U4 t - (tempmod st_ang 50 nil)
. t- O( L& w9 a; I - (tempmod end_ang 51 nil)
5 N/ H3 t$ A+ C0 g) c! c - (entmod elist)" i) y% j: d. o* w
- )
( m0 O+ ^. i+ X* @3 c - (defun ddarc ()" M1 o- e0 F( {9 X. m
- (if (not (new_dialog "ddarc" dcl_id)) (exit))& c2 i0 i* r/ L' e( l8 i
- ;; Set initial tile values
" ?2 H0 U% s5 u* l8 [+ P3 z* B) q - (set_tile_props)
+ O' l( l8 @! j. `2 y - (set_tile_handle)/ y! p" x( j. V" m$ |9 q
- (set_tile_pt1 1); I/ A* h- d5 N1 Y0 P q3 \/ X( l
- (set_tile_rad), u" z4 e( e! ^9 D& G$ J
- (set_tile_stang) {1 Q7 L/ r, l, \2 {
- (set_tile_endang); ]: |$ Q% f3 X
- (arc_calc)
; m, c0 Q8 v/ V/ k, i* h' k - ;; Define action for tiles
" {) I' }5 p% e7 n - (set_action_tiles)
% w! \/ t1 u4 m" B9 R - (setq dialog-state (start_dialog))! S8 a0 t: M: s+ \
- (if (= dialog-state 0)
# M. D, `& S# U& ^" O - (reset)2 s- Y& H' i# Z
- )7 `8 ~! A3 f6 }0 s. v1 |
- (if (= dialog-state 1). ?: x& ^9 c" ^. V9 l) I4 X- j5 H7 M
- (modify_arc)
7 A9 t8 Y9 X7 E1 W - )1 ~/ ~/ C* Z: s) d6 u3 V
- (if (= dialog-state 3)
6 b8 Z# G* l. ?0 j0 y9 L& w6 f - (progn
0 q0 N4 {! G! R. ? - (modify_arc)6 ]7 ]$ S0 c6 K3 _4 E; B S
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
2 I z- S$ @% f, V! v, a - (ver_pt1 1)7 u8 P0 S% l8 O! V
- (ddarc)
) R4 g! G) {5 |" \" Z& m6 O' t8 M - )
. ]. B. @) B% l! W. f9 ~* u - )- _+ A4 Y n8 b ~+ n/ v
- )5 H+ @& d4 e4 C5 |/ E+ Y Z' N
- ;;- W' I* N9 I+ e
- ;; Modify SOLID or TRACE0 o8 S/ t- W, `% {
- ;; Note the Z value of the object is determined by the Z value of the fourth$ A- t! J! W# V& X6 b( i; ?3 U6 S" T
- ;; point - code 13. Changing the point values of a solid or trace from a UCS4 W, P4 T# x' g" G& Z! R
- ;; that is nonplanar to the UCS the object was created may confuse the user.
* I. R$ |8 ~9 T c6 T- }0 {7 G! I - (defun modify_solid (), q9 r+ T# W% L& r3 q( C" }9 X2 E
- (modify_properties)% ^ C! i/ _2 I5 O
- (setq pt1 (list x1 y1 z4))
( L4 w+ Z& c3 E, ] - (setq pt2 (list x2 y2 z4))- [% u+ [2 L: T' p+ z( C! q @
- (setq pt3 (list x3 y3 z4)) h% |' n7 h- `8 V4 T- h; u
- (setq pt4 (list x4 y4 z4))! m2 r% p0 I& L& n6 w% z
- (tempmod pt1 10 1)! V* Y7 L3 s8 K; k- g% f
- (tempmod pt2 11 1)
( A4 @3 n, u) X- Z - (tempmod pt3 12 1)4 B% y, A6 d* [6 }: @* I
- (tempmod pt4 13 1)
/ O" _1 X/ E# e) w" T - (entmod elist)
* J- ]3 R5 F+ V8 H - )
# ]0 w- Z$ d, p8 {9 p+ }
; `0 Q+ V; y) R4 U7 z0 x- (defun ddsolid ()% ]: O/ m. l) P, p7 V5 r
- (if (= etype "SOLID")
+ i, I0 D2 t9 y% P3 X$ n8 E - (if (not (new_dialog "ddsolid" dcl_id)) (exit))
. L* y+ [7 W# Z - (if (not (new_dialog "ddtrace" dcl_id)) (exit))3 ?% P, d5 _- b0 K7 J, ?9 l8 R% r
- )
) M) ^8 S( T+ K4 y3 ~ - ;; Set initial tile values
: w4 f8 n2 e6 n# C - (set_tile_props)
4 e! q! j6 k: B' x - (set_tile_handle) j' C" M6 ^' t3 p; P
- (set_tile_pt1 1)
9 F* u- \" _! }& i F/ J - (set_tile_pt2 1)* ?0 l, H- e; O0 v! J) `% z O6 d6 F
- (set_tile_pt3 1)
$ e& {5 Y8 P1 [* `9 M: {- v - (set_tile_pt4 1)4 c1 [* F k! x1 x, O' y* U
- ;; Define action for tiles& k' s$ C& J" Y- k% r
- (set_action_tiles)
9 a# ]4 D; Q, p - (setq dialog-state (start_dialog))
; A5 L$ b: E6 n3 s5 P9 j* P/ }8 p$ h - (if (= dialog-state 0)* m# c4 E) ^1 x4 U
- (reset)+ n) F: _, h7 X9 C% j
- )
9 ^( E# j$ T/ N* ]9 @. s) m0 V - (if (= dialog-state 1)! t* K' `( _ B: Z, @5 [+ B" b
- (modify_solid)2 l9 F5 l* E% p& T9 w
- )
0 w& s+ p! w$ K* F - (if (= dialog-state 3)9 i$ h1 L* o! T+ }9 S" h% s; i
- (progn
2 c4 k0 \! ?( S ]! I: b7 a) U# a - (modify_solid)" A X6 w7 K y, H2 l" F
- (setq pt1 (getpoint (list x1 y1 z1) "\nFirst point: "))9 I8 s7 Y1 R& E% b
- (ver_pt1 1), Z/ K, b/ s$ `+ Q# L8 H
- (ddsolid)
' o$ K4 U, t. f) k - )# A" d) V# q8 g
- ) j0 Z/ k% I. H% O' t
- (if (= dialog-state 4)
) I: `% h5 c) r7 ]* A! e - (progn! S' K# v0 o J. Z' l. _; o- E J
- (modify_solid)6 p; x4 h5 X- ]5 I8 N2 F
- (entmod elist)
& A8 I# G$ d3 M. [ - (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))6 V+ U" \' Q& ^
- (ver_pt2 1)
# m6 G- P6 g7 k. M0 v: J2 v - (ddsolid)
' [+ C) Y$ V5 K$ d8 w2 J- k2 j5 Y `( F! i - )
6 @: ?7 C8 g0 J4 a! g; N - )
& g1 [! p5 G" v0 g! y9 ?/ Q - (if (= dialog-state 5)
7 }0 A% h& @$ |( i. ^8 C& {7 g8 @ - (progn8 M3 U1 y3 h4 @) G# L6 C) L8 ?
- (modify_solid)& W9 W1 g6 K8 R0 r9 p) m9 y6 P( C
- (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))2 r& X" @- t- e9 k% R# E" S) T4 E; z
- (ver_pt3 1)+ k% `' H. Y% x$ a6 D( @
- (ddsolid)
: U& Z; L& c8 [, x4 g - )4 q+ X ]% ]1 y
- )" F4 O. Q! b' q, t6 a: d1 Q
- (if (= dialog-state 6), z3 f" Q r' \
- (progn
( h) u' Y( z# r- t5 w3 _. g - (modify_solid)
' A$ {9 J. [" g9 j. k1 l - (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))$ u* E% C1 r Y7 S8 [
- (ver_pt4 1)- \, \$ j U/ |- b( O/ i
- (ddsolid) ?% S2 W# ]" J& u; ]
- ), [- z, b' w3 b3 n- U/ i
- )( ?0 P9 v% U8 g( P0 W9 J7 `, l
- )
6 `8 c% w( w B1 u; X/ ~ - ;;
6 A ~& }& |4 `/ R - ;; Modify 3DFACE2 b3 R# `" A7 v, [# c
- ;;: {9 n; P" f/ f8 V" \" t
- ;; Check visibility of edges6 f$ D, l( ]' k( W/ m5 h3 f
- ;;/ R' z0 t+ }- X1 r4 T/ v: a
- (defun edgetest (/ bit1 bit2 bit3 bit4)
. ~- {3 g) N& Z: E( m2 D5 Y6 } - (if (= edge1 "1") (setq bit1 0) (setq bit1 1))( b. q( R) a/ D4 N
- (if (= edge2 "1") (setq bit2 0) (setq bit2 2))6 \2 V" p. b5 X
- (if (= edge3 "1") (setq bit3 0) (setq bit3 4))
5 l. ^3 z; M8 Z7 {- M; c - (if (= edge4 "1") (setq bit4 0) (setq bit4 8))
/ N4 x8 |9 F; u6 C V - (+ bit1 bit2 bit3 bit4)
& w Q9 t2 k" |: M& I - )- \0 l$ M+ a: x: h8 Q$ ?
- $ B6 w" b; v! R7 l+ [" V6 e
- (defun modify_3dface ()6 ]) T' ?8 x0 y8 B
- (modify_properties)9 D4 n! A( I2 s7 a; n: ]$ v- A
- (setq pt1 (list x1 y1 z1))
/ m6 E" @) c9 I/ N - (setq pt2 (list x2 y2 z2))
P6 Q2 X! ?( { - (setq pt3 (list x3 y3 z3))8 V& h2 X0 `9 L/ E+ k* V, t
- (setq pt4 (list x4 y4 z4))6 }+ Z; Y) A6 S6 X. q
- (tempmod pt1 10 0)
3 K* W3 ?& }) ?7 l - (tempmod pt2 11 0)
! {+ K' b& m4 V, k - (tempmod pt3 12 0)* a; n1 j1 E, u! i k& Y/ a8 w
- (tempmod pt4 13 0)# O+ l, g7 W# f% ^
- (tempmod (edgetest) 70 nil) i5 y6 g! C. t5 ?$ ^
- (entmod elist), A, x4 }) a8 e% [! u2 a8 f9 a0 ?
- )4 F* v, u6 |2 T
& {6 O; d. I! D- (defun dd3dface ()
* I. k5 i9 |( W' E$ _) g9 l3 L' f& i - (if (not (new_dialog "dd3dface" dcl_id)) (exit))) q8 \/ d. j, U
- (set_tile_props)( Z) d$ D0 ~& v% {& v+ U2 U
- (set_tile_handle)
' d4 x4 z% k% C7 B- b3 } - (set_tile_pt1 0)
* \- E" f8 E* o" C8 a - (set_tile_pt2 0)# D/ t F0 X5 d8 E) ^
- (set_tile_pt3 0)2 N" R# a+ h1 @2 J# q$ o
- (set_tile_pt4 0), ]" T, y+ o8 w7 D. v+ E2 R( I6 X
- (set_tile_edges)
2 ^8 l t8 M. V0 I9 M - ;; Define action for tiles
+ o+ J& K0 V% `& n; K - (set_action_tiles)/ k" l6 k! A2 A" U, r4 J6 O
- (setq dialog-state (start_dialog))
5 E1 h* Z8 |1 g! m4 z - (if (= dialog-state 0)" ]5 r9 ?) \4 S" c1 v d" p
- (reset)! R0 c; P `% T% ?& d& b8 d
- )
* N: _2 X: |5 v$ h1 M - (if (= dialog-state 1)
* D7 c8 b8 {6 H J a7 O - (modify_3dface)
; _- m6 L! m- } - )& B" s! L- g) h
- (if (= dialog-state 3)9 ^7 }# [) b4 C9 j! ~
- (progn
3 W' W5 Y) C! R2 A: T3 F! U( z - (modify_3dface)& ]2 D \& a; H; A' F3 J9 g7 v& `
- (setq pt1 (getpoint (list x1 y1 z1) "\nFirst pt: "))* w2 ]+ L0 J" Y% N* W6 g+ y7 H- s- h" S
- (ver_pt1 0)
8 k# F( X8 S3 Q. ?9 I5 N$ j/ F - (dd3dface)
$ B% e/ f7 R& i) h - )1 r! P& e) `% @% b
- )) h7 {( ?7 E/ v: h% c4 N& s
- (if (= dialog-state 4)
5 y" X6 T+ D$ | @1 q - (progn2 f- q) f% }3 U+ ?/ s0 q* C
- (modify_3dface)5 X3 h/ y4 l2 R
- (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
+ `) _8 ` L. P9 s$ t( j8 p$ G. T - (ver_pt2 0)" Q; Z+ `2 }0 u' I/ n, O
- (dd3dface)
" M5 ]1 G' A& s( E0 a Z/ e - )
+ L0 Q; a; w: c$ d- Q, A3 v0 D - )
- D" a0 F# H7 S: y: k: _% X - (if (= dialog-state 5)" ~9 h ^7 N: V" j
- (progn- i8 q7 [3 V5 I# Z! |( S
- (modify_3dface)/ y. A; P- g/ q" B+ S7 X8 [
- (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))
( j! Y9 `6 _9 d! k9 k2 g - (ver_pt3 0)
4 o3 v9 J+ M( Q8 ~# U$ a) \ - (dd3dface)# G% `/ W6 U" _. f; b) @
- )4 n2 r; @: B5 @/ I6 w% j
- )- \0 |1 I+ ~- w: Q/ n
- (if (= dialog-state 6)
% x2 o! s3 ?6 I0 [% u4 e - (progn# y0 g& {& j0 C) x& L$ |
- (modify_3dface)
7 i3 J7 P2 F5 n! d* @ - (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))
) j$ r. |4 g+ f. L3 _# e - (ver_pt4 0)7 ^; g! @/ @) X1 U0 o
- (dd3dface)
3 M6 V# ]# L' U( w - ): f# u3 [0 j0 a. b/ g- L
- )
& `9 o2 x/ E2 C. [& _/ n - )
9 \0 x# Y' E& D) j - 6 e: u3 a9 f @9 Q+ p Q
- ;;
E$ ?4 j8 f ] - ;; Image functions
% p$ A6 t+ b- n7 y - ;;
+ P$ P8 l, a+ Q2 }( t) h" N9 w4 {8 V - (defun image_scale (/ upixel en n userscale temp)9 c+ q2 ?6 ^5 G/ M u% \
- ;; Calculate the size of an image pixel in AutoCAD units, b7 y0 z& D6 H ]7 t) X
- (setq upixel (distance '(0 0 0) (cdr (assoc 11 elist))))
/ S# X$ c% t2 Z; h) s - 7 v7 U9 d( T0 p. C6 c, `6 C
- ;; Retrieve the user scale
' q; B# w1 Y1 r7 ]6 u" L: f - (setq en (dictsearch (namedobjdict) "ACAD_IMAGE_VARS"))
$ o- W; `& N" V! J* ]* u
6 \* E0 L. \$ H, A5 c) f- ;; Next, extract the image units and pixel resolution3 c4 @3 z4 H: O2 }' \: R
- (if (or (= 0 (cdr (assoc 281 image:olist))) (= 0 (cdr (assoc 72 en))))2 d/ P% e0 y6 S0 U. \& ~! {1 K0 a
- (setq image:scale (* (cadr (assoc 13 elist)) upixel))
: O% W# i" P( G$ [* ^, I; F# y7 j- d! \ - (progn+ y z# o0 t1 a' q/ A: l% o A
- ;; Convert the user scale to the proper word7 X; v; R) g7 n# d8 Y- Z
- (setq n (cdr (assoc 72 en)))2 x% D3 P/ q! J5 f, L
- (setq temp (getvar "LUNITS"))
) `/ v1 p. [; ]5 [' m - (if (and (/= n 0) (or (= temp 3) (= temp 4))) (setq n 5))
2 w9 }2 M0 J1 x# I( C) q0 @ - (if (= n 1) (setq userscale "Millimeter"))+ ^4 D$ ~3 w7 b( F- |* f
- (if (= n 2) (setq userscale "Centimeter"))& a: @; x2 }8 T% W: k+ i1 D
- (if (= n 3) (setq userscale "Meter"))
" _8 A0 S- ^' }, i9 l$ D% l5 b' _ - (if (= n 4) (setq userscale "Kilometer"))
6 V8 x& c/ ?0 z - (if (= n 5) (setq userscale "Inch"))
% p7 T* l4 I" |* p+ z d: S5 y - (if (= n 6) (setq userscale "Foot"))4 @7 R G' e2 k5 b
- (if (= n 7) (setq userscale "Yard"))
$ _1 J6 p* j+ T9 Y) I! h - (if (= n 8) (setq userscale "Mile"))
. q' _( n7 }3 I* D! y& ]" u% a - (setq image:scale (/ upixel (cvunit 1 "Millimeter" userscale) (cadr (assoc 11 image:olist))))
& E5 R$ r, r6 Q Z9 _" c; L8 I$ z - )2 a3 L! v. Q4 |1 k: z* E6 P
- )+ n' X% q+ Y R, s% N
- )
2 U9 e" X) X4 ^9 X, D3 v" L - . I) }4 e1 i2 o) X: `
- ;;
" y0 r- K7 \* l2 ~& t6 T# i - ;; Scale factors for block insertions5 S- x3 B1 b" h# `7 d/ T9 Q/ H
- ;;: \0 v f( ?3 e# A* A* h% A9 w( M
- (defun image_set_tile_scale (/ temp)5 H6 a0 I8 g5 q; x# T
- (setq temp (getvar "LUNITS"))
' B! B7 V3 Q/ p* A* H8 F3 u - (setvar "LUNITS" 2)5 y! U$ R1 {: E0 A2 S' D0 x
- (set_tile "xscale" (ai_rtos (* image:scale image:mult)))
( T) P: S5 L8 y. ^7 E# m - (set_tile "wid" (ai_rtos (* image:width image:mult)))
& T7 v' n! k7 X! p! s5 S# Y# h, K) D" { - (set_tile "hght" (ai_rtos (* image:height image:mult)))
" I; O! C$ F9 m2 h4 f - (setvar "LUNITS" temp)3 u; O. [5 c \: O: @/ a
- ). o3 C6 u4 r M3 C' @1 V. a. D
- ; a$ Q! t; ]) e- O( l8 o
- ;;+ l! t9 [. A* {- I) F
- ;; Set the scale, width and height values appropriately.
3 ]2 e: e+ Q, n: K/ t" | - ;;/ d& M. Y# ~+ K9 R) I
- (defun image_update (field value / orig_value new_value mult)
" B0 V/ g# q3 x" N - (if (= field "xscale")) W6 F$ _3 W- _9 o
- (setq orig_value image:scale)
2 E t9 Q5 d- i: a1 J$ y* S8 w, h - )
& X# W- U' M* Y/ u% P! j& i - (if (= field "wid")7 q* r' n) Y' ~" Z: r, m
- (setq orig_value image:width). y8 o2 j1 ^, I7 Q" J& ^& M
- )' F/ [1 A# N' h% \0 Q; c1 a
- (if (= field "hght")
" a4 K# j! @, @+ { A - (setq orig_value image:height)
9 B0 C* ~ V2 M - )
1 c2 O3 J# d: e* ]1 P - (setq new_value (verify_d field value (* image:mult orig_value)))
- w* {3 _& U& ^- e n1 h - (if (/= new_value old_value)% L; x) [* U: j
- ;; Make sure the user has entered a sufficiently large value5 y/ Q2 F0 Z. U7 J" k
- (if new_value2 f5 G$ `2 e7 ^* R ^) n
- (progn
( T1 q6 |4 J" l8 ?% O - (if (< new_value 1e-8)! z p% j& s( M1 a Z/ v
- (setq mult image:mult)/ M0 @: j+ \( x% C* R# E
- (setq mult (/ new_value orig_value))) k0 Q3 G* i) X( E
- )! s0 W$ n) O+ _9 V7 U
- (setq image:mult mult)- c6 d4 p* M8 b# `
- (image_set_tile_scale)' @+ t z$ j& g! I* W; v
- )) ^9 ~4 r& @9 k5 q
- )6 t0 u: U! w; M0 E' F) I' d
- )2 r3 T6 `7 r' W' u
- )
; H( P/ R' m: k3 A1 Q - $ `3 e/ ~1 i" ?* j" X2 D$ [
- (defun image_disp_opt (bit)
; _ R+ D/ L' N/ l( C* k - (setq image:options (Boole 6 image:options bit))
/ \! ?1 P% x9 v) k/ _: Q - )
, j* H, q' T5 `! }
- c( y- g1 _: n- (defun image_modify ()
o# e$ M# H" m - (modify_properties)
1 p" L2 g) g. d- G" B - (setq pt1 (list x1 y1 z1))( p, H7 |1 ?7 z! C2 o: _
- (tempmod pt1 10 0)
9 {0 T$ E; ^8 B4 H, l# E6 E - (entmod elist)
7 g% l9 {1 S; @% Q+ }5 _0 B' Q - )6 [) g- I: t0 G
- ) n6 n! V. Q( a/ V0 y$ {
- (defun image_clean_variables ()/ Y2 D2 T+ b! v) H; y4 F
- ;; Clean up global variables used here0 U; ?3 t2 E* `1 M) W7 F8 b: y
- (setq image:scale nil)0 H5 Y! i" ~$ h( c$ D
- (setq image:angle nil)
# b5 Z) @$ X& [- I( r. X R - (setq image:width nil)1 S5 a* E8 P' u1 c% M
- (setq image:height nil)8 Z) W3 f" s" O: O3 n/ k# L
- (setq image:options nil)$ h m: F" c1 f8 S; e
- (setq image:oname nil)) I6 w' H5 C- I" C# t1 K b& @
- (setq image:olist nil), b" W& m" R( l/ o) ^
- (setq image:mult nil)
! D' `- J+ n) |" o! d, o - (setq st_ang nil) m _$ R. f+ E4 A; Z+ n
- )
+ t! m, [. Q9 x( x/ \, X6 q - 7 ^/ p, s- d$ n# K$ r5 w
- (defun image_scale_vector (v1 value)( F1 E' g P$ g7 D5 N' j: d6 i
- (list (* (car v1) value) (* (cadr v1) value) (* (last v1) value))' f1 E7 g3 W8 H/ a
- ) R0 B" J- ]) L: d H& k( t
- 1 }0 |4 T: T, k4 S5 A
- (defun image_cross_product (v1 v2 / vx vy vz)- V+ w/ a J# |6 R2 ~/ M( e
- (setq vx (- (* (cadr v1) (last v2)) (* (cadr v2) (last v1))))5 t- v; U) `/ W" \0 \) \+ b
- (setq vy (- (* (car v2) (last v1)) (* (car v1) (last v2))))
+ i2 L# R6 T) f4 W+ ^ - (setq vz (- (* (car v1) (cadr v2)) (* (car v2) (cadr v1))))
0 w4 |6 q- z1 z- C' } - (list vx vy vz)- {) M* O/ y0 `9 l7 Y: [" X
- )% I. ~1 f' G! n0 U1 o
- $ u u7 n6 f# S [
- (defun image_dot_product (v1 v2)
8 j: ?+ ^: _' [: j; t8 M - (+ (* (car v1) (car v2)) (* (cadr v1) (cadr v2)) (* (last v1) (last v2)))
! v1 k/ c# z$ U/ o+ b. I. _ - )' E: a5 Z; ^' D5 h$ j# b0 [
1 b& z" w% W6 D# f7 o* b- (defun image_add_vector (v1 v2)9 o, @" p; \$ D: I' P
- (list (+ (car v1) (car v2)) (+ (cadr v1) (cadr v2)) (+ (last v1) (last v2)))/ ^) `: p3 W# m w7 \$ v
- )
+ x( N9 S7 s/ M9 M - 8 w' g- Q5 k: g* X
- (defun image_subtract_vector (v1 v2)
/ ?" _9 K M$ Y1 ~) D: L* u - (list (- (car v1) (car v2)) (- (cadr v1) (cadr v2)) (- (last v1) (last v2)))
- G9 i/ i: r* b/ g; h - )5 }2 j+ z, ^6 T5 ?
, U6 X) [( v" Y" }$ x5 T+ ]- (defun image_normalize_vector (v1)/ L* {# u& r+ f& n3 r
- (image_scale_vector v1 (/ 1. (sqrt (image_dot_product v1 v1))))0 n2 ?; f; \' u: O& S* Z- Q
- )& o! J( I! X& X. k$ e
& d) V4 C! t' ` E& u8 z0 f8 I" ?! _8 x- (defun image_rotate_vector (vector angle axis / along_axis axis_x_in_rot_plane axis_y_in_rot_plane in_rot_plane)2 i% \; c+ W. G" l! A1 @# e7 S+ Y
- ;; Normalize the axis
4 D0 W$ F* n) N# u; E* b" i' L - (setq axis (image_normalize_vector axis))0 s# l9 J9 c, C! ]. J
- (setq along_axis (image_scale_vector axis (image_dot_product vector axis)))* L7 A$ m+ Z0 {. G$ C \5 O( D1 x" U
- (setq axis_x_in_rot_plane (image_subtract_vector vector along_axis))
2 P9 c# Y4 J8 s' P - (setq axis_y_in_rot_plane (image_cross_product axis axis_x_in_rot_plane))3 U, E1 T/ G# ?
- (setq in_rot_plane
% [9 x, L. Z3 ]0 D, v' r - (image_add_vector+ p9 e/ K; E1 r( @' m! Y9 O
- (image_scale_vector axis_x_in_rot_plane (cos angle))3 H" U: P8 T$ m! Z
- (image_scale_vector axis_y_in_rot_plane (sin angle))7 ~3 M2 r/ \1 E, o
- )
- n2 p. @: \) ^6 L0 N' |- Q9 G - )% l( C* l, q( N" s
- (image_add_vector along_axis in_rot_plane)2 j' }& p& F; D& T" J. o' I; W
- )
; G6 O- A$ P& i0 y* m0 |$ B3 Z
, N" m2 A8 [3 b- ;;
# T* ` H/ Z, O# l) _ - ;; Calculate current rotation angle if appropriate.7 d3 ^8 r# c3 k d- y: H
- ;; If not, grey out the rotation field.
" k1 r l+ s2 `. @* p4 \2 e/ v4 U# I, q - ;;
0 G7 ]: \5 E; I - (defun image_rotation (/ normal rlength zlength sqrt_tolerance)
( a% T, H* @3 E0 _9 W. h - ;; Determine if image normal is codirectional with3 K7 C8 l2 W% E0 z0 l, x/ ?2 w
- ;; the current UCS Z-vector.
. F* n( K$ p$ {/ M C( W - ;;
% D4 F6 C7 z2 z - (setq normal (trans (image_normalize_vector (image_cross_product (cdr (assoc 11 elist)) (cdr (assoc 12 elist)))) 0 1 1))
' p% V! k7 l6 @1 U7 { - (setq rlength (+ (* (car normal) (car normal)) (* (cadr normal) (cadr normal))))
5 Z1 y0 b$ L& x3 f& V - (setq zlength (* (last normal) (last normal)))
+ g1 B$ i! T6 ~: @+ I; I7 j - ;; Note that the value .0001 in the radians is approximately 0.0057 degrees.6 b& n _1 P# ], Y
- ;;) {9 h/ {/ n+ [/ f7 b' B( y
- ;; cos(.0001)^2 t6 H& r3 w3 A# X
- ;; Tolerance = --------------0 Z7 o+ {; a0 y; D- V. ]* k
- ;; sin(.0001)^2% J! N, z: v; @+ \2 T+ J
- ;;+ F" T( P! C8 e
- (setq sqrt_tolerance (/ (cos 0.0001) (sin 0.0001)))
' l, x! C) P- w7 H4 w - (if (and (< (* rlength sqrt_tolerance sqrt_tolerance) zlength) (> (last normal) 0)); a/ r) F2 D+ f" [0 `2 |7 e
- (setq image:angle (angle '(0 0 0) (trans (cdr (assoc 11 elist)) 0 1 1)))) t4 T! g3 W0 M" w4 M1 l* e
- (progn# H( P& p+ Y' z% t( _& k
- (mode_tile "st_ang" 1) O: ]: S6 r( v% @
- (setq image:angle 0): R& [ w9 L) ]( P0 V) |9 ]: I. G
- )
& p" y+ k" b2 o3 n" x - )
( l. B* k( ~6 @; ~6 m/ N - )
* K1 f5 `" c" }, n$ {, F- b
9 O B& V5 C. B& ^$ Y( N0 G- ;;
0 C: `7 v/ [: H; M7 s! y+ p - ;; Modify Image
( x( S# h4 W. `& a) N - ;;3 ]& F& S4 g" x3 A
- (defun modify_image (/ u_vector v_vector z_vector)
" [' d/ n+ Z! b6 `7 B2 j" @% t, J9 t: K/ q - (modify_properties)) w1 Q, h# G) U' l. m2 \
- (setq pt1 (list x1 y1 z1))
! s& |; T6 [, ~' l, Q - (tempmod pt1 10 0), S. e8 ^. H$ @) R& A
- ;; Make display option changes to image' k+ I! a3 Y6 a
- (emod image:options 70)
; D( B! d" H' g+ w - ;; Get the u and v vectors
|9 Z% E) @) u9 _: o8 R - (setq u_vector (cdr (assoc 11 elist)))3 J& n& k8 y# L0 O4 V6 K _
- (setq v_vector (cdr (assoc 12 elist)))$ Y4 X7 e- [' L5 J! H1 @, d
- # n9 Y/ _/ C$ q& @2 a
- ;; Make scale changes to the vectors
$ s+ P& ?7 D" m5 `4 o3 n6 |4 G* K - (if (/= image:mult 1)
- Y4 S( \& B) |' z - (progn7 q; }7 V0 V4 ?" A8 @' J
- (setq u_vector (image_scale_vector u_vector image:mult))
, x( T8 T0 G% @! z) s& q6 _ - (setq v_vector (image_scale_vector v_vector image:mult))
$ p N6 c6 m* U9 v - ): j) P% k- k9 Q5 H
- )+ j& y7 c# k/ n$ D. [
- ;; Rotate the vectors/ o t1 C" M7 c0 @. l7 i
- (setq st_ang (- st_ang image:angle))' I$ v3 Q D" A( d8 P' \: e
- (if (/= st_ang 0)/ m% g% B" |) T& H
- (progn
, M6 x% P2 D& N$ ^ - (setq z_vector
* N4 ]2 a) A5 X1 T5 T - (image_cross_product
: y) F5 {) p/ z5 Q, L- S - (image_normalize_vector u_vector)
( U5 r& B: M( f. E - (image_normalize_vector v_vector)$ ?& l0 d5 ~- S
- )
7 Z1 h7 _; K6 W- _8 B - )
. r# w% h% x! r) T8 Q - (setq u_vector (image_rotate_vector u_vector st_ang z_vector))! [4 [5 v9 p9 B# m' N% z: u4 m
- (setq v_vector (image_rotate_vector v_vector st_ang z_vector))
; U1 o# H$ v' g( g7 t - )
3 Q, X, n. b s/ j: Z) U; X - )2 S" V3 r" ]7 W4 S, p
- (emod u_vector 11)
L9 w& W* W, `( I1 _+ G# p- y' x2 c - (emod v_vector 12)
4 F, R& t% b: \/ ` - (entmod elist)7 j; E4 g1 g7 r8 e' t
- )
B. o6 V \: l9 j
; s& Z* q6 [6 S2 M# j7 H- ;;' D& }# g; A) `
- ;; Run imageadjust on given entity, working around possible+ Q. h0 K# Z, `4 w. }+ y3 \
- ;; re-entrancy problems
5 R% W& Y0 c. q" t K: L - ;;
- F) c( ~* [: z" d; w- T - (defun image_adjust (ename)
8 Y7 O; P3 F( L1 T9 a - (verify_arxapp_loaded "ism.arx") ;; make sure it's loaded...2 L3 a% u+ e3 K. J/ s2 {6 L6 p* O
- (imageadjust ename)4 I4 \8 x- A6 `# F9 Q. I# o- y2 e
- )
6 K7 c% a9 P [ `) g' f
8 E, M2 t, N& }0 d1 K- (defun ddimage ()0 ^8 P1 T" `2 w0 }
- (if (not (new_dialog "ddimage" dcl_id)) (exit))+ d8 [6 J, f1 D* p& k* d# K& i
, X# {+ ?' O4 N7 F6 N7 U- ;; Grey out the thickness field.7 q! g/ n$ Y2 C7 E
- (mode_tile "b_thickness" 1)% O: ^* G; s4 h- o/ G1 a
- (mode_tile "eb_thickness" 1), a# q' D# x% n, l& |3 o
- " e3 J9 Z( h! P$ {* e; |0 L
- ;; Get the associated def object." W: _2 M) `' `0 M# D `
- (setq image:oname (cdr (assoc 340 elist)))! F! m r3 \! Z! x/ \
- (setq image:olist (entget image:oname))
/ w2 K% n) Y4 E1 k o3 L1 R - 5 q9 @( a4 ~6 D7 B+ V6 i
- ;; Set initial tile values: c R+ c- \$ k6 v: j
- (set_tile_props)7 N$ }2 p# |& f- D' F2 b, {
- (set_tile_handle)
8 ?9 W0 d( f' Z1 d - (set_tile_pt1 0)
/ q8 i1 A5 O/ d: E. S7 e - (setq image:scale (image_scale))& ?: m" X- Y0 D; T
- (setq st_ang (image_rotation)): X4 m6 n- J z; a; w+ m. }
- (setq image:width (* (distance '(0 0 0) (cdr (assoc 11 elist))) (cadr (assoc 13 elist))))# p# A. r! T2 g# v$ g- T1 O1 L
- (setq image:height (* (distance '(0 0 0) (cdr (assoc 12 elist))) (caddr (assoc 13 elist))))
# S ~( }# r* C5 l- M; _8 G - (setq image:options (cdr (assoc 70 elist)))
- \# b |5 v! X2 x \7 b. p - 6 U" T4 N" w$ ]
- ;; Record the last multiplier for use in image_update function/ j, M" }# r6 v0 H) l% X
- (setq image:mult 1)
9 b6 t- j! ]2 h6 E9 M L8 U - " X8 A/ a6 ^& S( }! i
- ;; Retrieve the image name; C6 J1 M" ^* w5 s
- (setq fn (reverse (dictsearch (namedobjdict) "ACAD_IMAGE_DICT")))& r/ t8 l+ _9 s* X1 d2 w
- (setq flag 0)9 S; O- Y$ x+ j e' k: I% o
- (foreach n fn1 }3 E8 n9 a ]3 X
- (if (= flag 1)" d( R+ I. {* B/ f8 M
- (progn( |/ k- U: t% ?/ L
- ;; Display the image name4 T4 z) a! M" J2 Y; M. G% O
- (set_tile "image_name" (cdr n))
- k+ l. c2 r3 k: a% K* F - (setq flag 2)
8 t3 v- L6 A1 w. D# H) R7 a* f' g - )
$ g& R/ H0 a$ s% S - )
( G6 P- Q7 }$ g, k5 `& |+ | - (if (= flag 0): s2 h& b# G2 Q, M" D2 h3 k
- (if (equal (cdr n) image:oname) (setq flag 1))! J' n1 H+ N$ ?2 S
- )8 x0 J2 T. C5 D
- )
8 L) ^; D0 N) D8 D - / K1 ], d% F# D5 O) g/ [) f3 D
- (set_tile "image_path" (cdr (assoc 1 image:olist)))0 r2 a& b0 Y9 V' Z1 D9 S* y" I
- (set_tile "st_ang" (ai_angtos image:angle))
/ n, ^* T- I! V k$ { - (image_set_tile_scale)& X: D; U% J4 F& H% K
( `: _7 y! N* [& G% g. w- ;; Check the appropriate boxes7 X- y* l/ Q1 k7 V [, c3 X+ i" s
- (if (/= (Boole 1 image:options 1) 0) (set_tile "image_show" "1"))
; R5 K# K7 C1 z! D - (if (/= (Boole 1 image:options 2) 0) (set_tile "image_non_ortho" "1"))
; F4 g5 E: e4 A7 Z& g" j* {4 o/ F9 G# G - (if (/= (Boole 1 image:options 4) 0) (set_tile "image_clipped" "1"))
4 h/ G7 o2 F8 q. g. x - (if (/= (Boole 1 image:options 8) 0) (set_tile "image_transparency" "1")), M, }9 @/ s4 Q
- . J5 k3 X- a* U" f6 Q4 L
- ;; Define action for tiles2 E, c! P$ {: s1 m$ u0 u
- (set_action_tiles)
$ I w: n4 ]% m: H0 ? Z9 M - (action_tile "xscale" "(image_update \"xscale\" $value)")" [) ?+ a* m1 _- w) B* _
- (action_tile "st_ang" "(ver_ang1 $value)")
$ q& `' G0 x$ E/ }( G - (action_tile "wid" "(image_update \"wid\" $value)")
0 |+ _ Y0 t1 r5 | - (action_tile "hght" "(image_update \"hght\" $value)")) a7 e- `( D$ ]3 y+ W
- (action_tile "image_show" "(image_disp_opt 1)")
% @5 B f- v1 b- o) y6 W2 Z- u, n* v - (action_tile "image_non_ortho" "(image_disp_opt 2)")
5 `# n6 }$ K& {7 P. ] - (action_tile "image_clipped" "(image_disp_opt 4)")' {6 \( s0 B) R- O
- (action_tile "image_transparency" "(image_disp_opt 8)")/ W5 i8 G+ p- [9 b: d+ x3 `. x. i
- (action_tile "image_adjust" "(done_dialog 4)")# g- t9 }) l6 j
- 4 G& n3 L& J. N! k. R; U9 w O
- (setq dialog-state (start_dialog))' y/ P/ y- }7 x% L' v5 C7 l7 _% g
- (if (= dialog-state 0)
+ a# g+ i. A1 E: }6 @ - (progn
4 b* {1 W5 c: S" D$ X, Y# Y - (reset)+ U# j9 Q& S% J( t' g p& M
- (image_clean_variables)
* |& `. V: ~2 [$ m, D& u1 C& w6 B - )
7 Z- X' f3 X+ N x/ z - )( o& K3 t8 U( r; k8 p( [
- (if (= dialog-state 1)2 w% o' m* q9 f' Q+ t' Z. h+ x# u& {( |
- (progn
2 @$ q f- U7 k& |- N: B; @) ^ - (modify_image)* G- I9 d+ B+ h" s$ b
- (image_clean_variables)
" L" K! }& n5 J( {7 R - ). f- w" e0 e1 L. m; m6 h. P, W
- )
8 B& Z+ Q" e6 s+ \# k - (if (= dialog-state 3)
5 A; f5 m7 d& {* @( p - (progn3 K) w# H2 a8 B- a4 U8 w! Z
- (modify_image)* v; m3 x6 V4 M2 D2 [3 v
- (image_clean_variables)
( |! Z. ~9 k" E - (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
( @% {, }2 ~& G! \) K! I( K; M4 r - (ver_pt1 0), S; K! L5 l9 z7 x1 r% z* x' w
- (ddimage)3 \8 `, Z, ~# w: N, \
- )3 ?+ n: c& c( a* C [4 k
- )- T ]8 j6 J [1 b; S
- (if (= dialog-state 4): i/ V5 N+ u7 c' I3 Q
- (progn4 s. i5 P+ v6 \8 w
- (modify_image); A2 N! T9 [) j g7 z
- (image_adjust ename)% Y3 i, p+ Q& T7 E
- (setq elist (entget ename))
; P- d# ^$ j1 y0 Y9 j - (ddimage)
2 c, }. m. e' B9 d - )' B7 n) e3 v. M% m/ L
- )
# Y# m. q2 \5 u6 e# C - )
' m" p- ]" F* |& I+ u% T - 1 K1 L$ x7 z5 L
- ;;
% q0 R% g6 l. {" X6 W7 z. M0 E - ;; Modify BLOCK (and its Attributes, if any)* j$ o8 V" b* O2 {/ o1 e h
- ;;
- L/ p% i4 ^1 u, V3 S8 X3 W - (defun modify_block ( / el en2 p1 p2 oldp1 oldp2 new_hgt old_hgt attr
( m2 E' T1 i7 P6 x, Q/ Z - new_wid old_wid old_rot scaling old_scale% }2 y. d* _7 i b! J
- xdelta ydelta zdelta xbase ybase zbase ipos)
; j% A; Y5 J5 h" q: K# _0 p/ d - (modify_properties)+ t: C2 [0 N/ v8 ?7 s' ]
. p1 {5 ^) u+ |0 j- ;; First, translate and scale the Attributes, if there are any.- S7 A' Q1 _; \: [5 {+ m( m
- (setq old_rot (cdr (assoc 50 elist))7 h9 Q8 G, P* _4 E% U# i
- old_scale (list (cdr (assoc 41 elist))7 y& }/ v' L* o8 }
- (cdr (assoc 42 elist))& C( K& A3 b( I9 c; H* }* C. N$ U
- (cdr (assoc 43 elist))1 J, i- _& L. `' u% _
- )
' T1 z) k1 k4 w' \5 w# G* J- F, v - scaling (or (/= xscale (car old_scale))
" O3 s5 c8 V( U G - (/= yscale (cadr old_scale))' J8 Q# X2 ]2 O0 d
- (/= zscale (caddr old_scale))
7 a5 X& P, q! W/ P1 L - )! v4 t! o8 ~' j% U4 D
- attr nil ; No Attributes modified yet
4 J3 e! w! {, Q - ); G$ }" V& w! D8 b1 g, x
- (if scaling
5 i9 V4 U7 i7 Q! p3 d. j3 o1 ? - (progn
. }/ e/ u5 K8 n& t - (setq xdelta (/ xscale (car old_scale))( D$ E$ y2 C+ P Q( d' S
- ydelta (/ yscale (cadr old_scale))
4 ?" U" B" R# N3 x - zdelta (/ zscale (caddr old_scale))
+ h) D/ X Z% n9 i9 s2 f0 U5 [ - ipos (cdr (assoc 10 elist))" ^/ P8 I, [/ A0 ?* e7 P
- xbase (car ipos)& w1 v+ q' I0 f K" y3 E# H
- ybase (cadr ipos)4 J L9 B) s) g' @. Y0 n
- zbase (caddr ipos)/ \+ |1 I# O3 }2 p2 T1 d
- en2 (entnext ename) ; First Attribute
- s2 D+ c% n* b) V) h+ G - )
' C2 D$ H+ b+ u/ r \- F6 O) `4 P
* @$ X) G8 E, D8 l ` D+ p- ; If the Block is rotated, temporarily un-rotate it, along; L* Q$ {* c' y4 e6 y- n
- ; with all its Attributes, so the scaling/translation of the: T+ A0 t+ }! Q4 N+ t6 U D
- ; Attributes won't have to take the Block rotation into account.
9 b4 k, A* y# y) n9 u" _ - (if (/= old_rot 0.0)7 y4 E+ R4 }5 Q6 p T' H
- (progn
/ V0 W2 ]4 }' k& c) V' X - (command "_rotate" ename "" pt1 (ai_angtos (- old_rot)))
, S: y: d8 _ B; V+ ~ - (setq old_rot 0.0
$ A) \. N: c! ?- N# b8 y$ j - elist (subst (cons 50 0.0) (assoc 50 elist) elist), W( I% L) I0 r- Y* @% u+ @
- )5 M+ b/ m1 F/ U% n1 L# \9 @
- )
& F; H9 Q1 ?5 a$ n" ~& U - )
1 N7 l2 d+ |$ J2 Z! ~" Z - : F H3 s j5 v% ?! Q
- (while en2
) t! B. n; V- A, A J+ v4 M9 Q8 l - (setq el (entget en2))
: V' [" V8 @! N& g, r( k - (if (= (cdr (assoc 0 el)) "ATTRIB")
% w+ n. O A5 Y8 k4 I - (progn
+ w" d8 P; G' F: \ - (setq old_hgt (cdr (assoc 40 el)) ; Height2 a: M* c8 q" S( y% ~
- old_wid (cdr (assoc 41 el)) ; Width-factor: L a& v7 o: b2 S M5 A C2 s7 R
- oldp1 (cdr (assoc 10 el)) ; Generation start point
1 B6 Z: r8 J+ e! g - oldp2 (cdr (assoc 11 el)) ; Optional alignment pt* u7 D0 g' c) ?* e: V
- ha (cdr (assoc 72 el)) ; Horizontal alignment
3 v4 B, M1 L' l/ o5 w' z9 r" F/ W - va (cdr (assoc 74 el)) ; Vertical alignment
' X3 s" ?# ]7 o; D. r - R: o( b; I; s0 S1 w+ x! z2 d
- ; Translate gen. start point$ ]' ^8 ~5 m9 F' B& G/ U$ O
- p1 (list (+ xbase (* xdelta (- (car oldp1) xbase)))
G: j. x7 l G, P0 D - (+ ybase (* ydelta (- (cadr oldp1) ybase)))
1 |4 s. S1 S4 b& f2 @( g, N) s5 [ - (+ zbase (* zdelta (- (caddr oldp1) zbase)))9 M9 K& t" K; f8 I" v& @
- )2 H+ e4 o6 R( n0 H+ r
- el (subst (cons 10 p1) (assoc 10 el) el)' R. T3 x- m+ o- h
- )) P$ W5 Y- b. k1 G6 a& a
0 ~6 A7 t# Q- I0 `+ b5 H- ; Translate alignment pt similarly, if present and applicable
7 s" G0 g7 N# j, g. Q* D8 X! c - (if (and oldp2 (or (/= ha 0)0 M$ @# Q4 |7 F i! w/ n
- (/= va 0)0 i' e2 Q4 k! ^/ A5 A+ q* @& y9 W
- )
- B! O4 {: J! }- ^1 g - )
O1 Z: d2 K$ o9 \) k - (setq p2 (list (+ xbase (* xdelta (- (car oldp2) xbase)))
% Y0 D6 D" }+ M7 s0 Y - (+ ybase (* ydelta (- (cadr oldp2) ybase)))# I) f$ ~/ R, U* W7 c7 } ?& a; s
- (+ zbase (* zdelta (- (caddr oldp2) zbase)))( q# \/ N9 ~. y( r) O- A$ ]
- ), W" A# q# G0 F7 D3 p; Q% a7 ]
- el (subst (cons 11 p2) (assoc 11 el) el)
& D l" M$ G/ s2 J - )
1 w; A1 s& k7 @ x - )
* K7 e# X& Y, e4 [3 F* g2 ~" g - + z* d) E0 I. f Q
- ; Each Attribute's height and width-factor were computed A2 H. [8 Y3 U' K; q
- ; based on the Block's scale factors. Adjust them now,
9 Q5 \! t4 x" O3 p6 e/ t1 O - ; by first reducing to values for 1x1 scale...0 X9 ?* I0 S8 u4 x
- (setq new_hgt (/ old_hgt (cadr old_scale))
) }9 g* g1 Z) t o& X @" i - new_wid (/ old_wid (/ (car old_scale) (cadr old_scale)))& t1 Z3 w' v) M$ M* r- g" h
- )$ B! z0 L# `. K( @* ~
- ; ...and then rescaling.8 L2 X& Y, @$ I+ L- e. s
- (setq new_hgt (* new_hgt yscale)
6 V) [& O7 w, ^: x+ u) _3 m, H: [8 F - new_wid (* new_wid (/ xscale yscale))
7 F. I/ E! Z9 w' o0 @1 P - )
* A' b M M5 ]/ x4 Q" D - (if (/= new_hgt old_hgt)
6 O# S; V9 o: X - (setq el (subst (cons 40 new_hgt) (assoc 40 el) el))
( p" q: Y3 Y: ?+ S2 G - )) h" m+ q4 y1 l4 i, r7 _
- (if (/= new_wid old_wid)* y: a* F( e! S4 M
- (setq el (subst (cons 41 new_wid) (assoc 41 el) el))
" q- l+ Y0 O0 h4 {4 @% h - )
- f6 n% m7 d3 q/ a& m% X - (entmod el)
! z+ i7 e+ e/ @" H# e - (setq attr T ; At least one Attribute modified" H9 ~5 L( w. }) s/ }9 ?
- en2 (entnext en2) ; Next Attribute
; {7 |) S9 `- o - )4 [7 @. P2 Z+ }$ @' q. {8 s
- )
$ |5 c2 C u) T8 {) B5 b - (setq en2 nil) ; No more attributes
: Z% Z6 u2 x' U" t8 C& r7 w - ) d2 W. m& a6 b9 i7 x
- )
% u2 g. Z$ N. |3 H& |; b - )- {3 N0 X8 I/ e3 f/ n' J
- )
6 t2 R3 N6 ?, c; n+ \ - 1 l% s: i/ R" T; T A/ A
- (setq pt1 (list x1 y1 z1))
2 W2 E2 ]4 g, c" b1 e - (tempmod xscale 41 nil)/ _* N$ t5 b4 y6 {7 w" f4 @" d$ Y3 _' V
- (tempmod yscale 42 nil)
, _$ H* b- R4 V5 g- ?% l: ~ - (tempmod zscale 43 nil)* r! p, Y1 @) B% n. e6 b
- (tempmod col-sp 44 nil)9 q% Y( w) ]2 M( b5 T9 C$ S4 _
- (tempmod row-sp 45 nil)( A' L: i0 S; {9 x6 L
- (tempmod columns 70 nil)6 a5 q+ }/ b0 \2 G; a
- (tempmod rows 71 nil)
- i4 T6 p7 C2 n1 G - (if (= xclipmode nil), y$ N3 ^/ x, n; |/ K1 I: J
- (entmod elist)
2 i3 Y {( b+ _* B& j - (setq xclipmode nil)
6 ?- F7 o, G. o# f0 z# S; H - )
6 R: A& g4 d- E- S4 e8 o - (move_pt1 1)
" P1 ]5 B2 w0 e/ |1 K! B k& P6 @ - # t5 p% H7 E4 ~) \4 R
- ;; Now do the rotation with the ROTATE command.# { ~3 s& n) y! u. d9 A) _$ w7 c0 o
- (if (/= old_rot rot)
: B+ \7 G) ?5 ^/ _ - (command "_rotate" ename "" pt1 (ai_angtos (- rot old_rot)))
2 i3 m, }/ |5 X" E3 L* z - (if attr ; Else, if attributes were modified,
4 Y# ]; ^6 z$ H3 r; h- i& N - (entupd ename) ; just regen to force attrib display
" J. b4 |' j8 f- k/ ? - )
/ I8 Q2 C( c/ { - )
/ v' {4 X3 X5 [7 o - (setq elist (entget ename))
& t F: _* I e) M - )
6 n7 Q h5 X/ Y7 n - (defun ddblock (/ temp temp_xclip newhatch blkname blklist blktype program xrefpath)# _- s2 t1 @. `7 w! P: e
- (setq newhatch 0)
, S: R _% ^- W) D. ~8 G - (setq blkname (cdr (assoc 2 elist)))* L( e4 b1 ~) x C, e
- (setq blklist (tblsearch "block" blkname))
4 R, ^7 N6 i( a& x" J - (setq blktype (cdr (assoc 70 blklist)))
: B1 G7 T4 z5 x- u - (setq xcliponoff 0)0 d/ g& U% `0 `% O
- (if (or (= blktype 0)(= blktype 36)); p/ z9 O" E' P; u: w0 r0 r* k+ N" F; s
- (progn/ l! i7 `; o$ l' m6 L
- (setq xcliponoff (xclipon elist))
3 E2 n+ F1 k1 G# \ - (setq temp_xclip xcliponoff)! p7 \5 n0 A! J$ H8 M/ R9 k
- )
. `) g1 m0 B8 F1 u5 k3 \ - )
( O) z' {1 d5 o+ y - (if (= (logand blktype 4) 4)
b# d! k" W; q' i1 z5 y0 @ - (progn
) b5 R5 _, j, _7 D8 J5 M# x - (setq xrefpath (cdr (assoc 1 blklist)))4 u* o' p$ r( i+ k8 W& G
- (setq help_entry "modify_External_Reference_dialog")2 q# Z% D' Y6 y* S7 N* D
- (if (not (new_dialog "ddxref" dcl_id)) (exit))6 P) ^8 f5 e" m+ E, i N
- (set_tile "Bl_name" blkname)) G, ^4 t; e! B2 ?* a: L
- (set_tile "path" xrefpath)
5 N' [4 E7 f+ I# s- ]; D - )
- }6 e$ i0 @0 g - (progn! I, V1 @( ]! c) g, B
- ;; Get program name for use as Xdata app name, S- [8 e5 O5 k7 E, [& o9 j5 K
- (if (not (setq program (getvar "program")))5 P4 z; h) x+ @& W8 E
- (setq program "acad"); A$ t! V# X3 s1 ~
- )3 y0 j8 h. ]1 u% V' S6 `* [
- (if (and (setq temp (assoc -3 (entget ename (list program))))
+ ^6 w! _' z' y. V% q) s - (= (cdr (assoc 1000 (cdadr temp))) "HATCH")
) J- d+ b+ O3 s0 }9 k# n - (assoc 1005 (cdadr temp))
8 T2 l% g0 v$ [3 E; ~0 q4 E) M - )$ S6 m J7 f+ d2 h( c
- (progn% E, H, [0 H& v1 M( o
- (setq newhatch 1)- `1 h0 t& H1 f9 U
- (setq help_entry "modify_Hatch_dialog")
9 O S8 N: e' P: t. D( w - ;;; convert the object into a new hatch
# T; ?7 u$ k: B4 ^( k- j# K - (ai_undo_on) ;; enable undo
3 d/ e4 m$ F$ z5 y! L7 E1 f - (COMMAND "_.UNDO" "_Mark")+ S1 ~; G$ k/ n9 i# W" Q7 }, }
- (COMMAND "_.CONVERT" "_Hatch" "_Select" (cdr (assoc -1 elist)) "")
" S) u& c3 J! ~/ k - ;;; suppress nasty message from convert command
- b: l6 a7 g1 D; Y - (princ "\r \r")( B, O# K' g3 h$ ?) ?, y
- (setq elist (entget (setq ename (cdr (assoc -1 elist)))))/ e: L; @8 D6 e/ X+ ?) R% h
- (setq old-elist elist)
% P* H$ O4 i j- S( s! d I - ;;; If we have cancelled ddmodify7 D) h2 G# d3 ?) f* ?! h
- (if (not (ddnewhatch)) ;;; (ddnewhatch) returns nil for Cancel or T for Ok
( W0 p6 U3 H( k# ~$ p5 p - (command "_.UNDO" "_Back")
* u/ c: D9 H) F6 r! u! M - ) H0 g- |4 k3 b
- (ai_undo_off) ;; restore undo state
% ^ D) R4 ` [: k& p9 H8 g _ - )
4 r' M" H% {( g2 o3 S2 I - (progn2 R) t! V5 v: `. w8 o# Y4 d1 L$ C* s8 K; f
- (if (not (new_dialog "ddblock" dcl_id)) (exit))8 i2 `- _9 `1 a2 u
- (if ( = "*" (substr blkname 1 1))1 @6 s) K' Z! E( q
- (set_tile "Bl_name" (strcat blkname " - Anonymous block"))
8 b c' C' ]- g; l) Z - (set_tile "Bl_name" blkname)( i6 S" ~9 U) r
- )
- ? `1 W7 W: h# y t - (setq help_entry "modify_Block_Insertion_dialog")
: Z$ Z2 O1 }4 b3 q+ N) A u& x - )
) _" O9 w y% G* B( L4 W - ). X, B; J) `2 z
- )1 W S+ m3 N: L0 H3 e1 B! v6 V7 _
- )
& `. l3 @1 i, x) u0 p, Z4 B- y - (if (= newhatch 0)8 P+ ]' w& M. U0 k' Q5 B& [. X2 s
- (progn$ h7 G6 K% b2 B0 T8 { C H
- (set_tile_props)
- |2 D4 S% U" t- K( V6 M - (set_tile_handle)$ P) f$ n2 Z( U* J
- (set_tile_pt1 1), p2 Z0 i. n$ c. e; P
- (set_tile_rot)
; l: q7 i+ y/ ?) L9 V+ d% _ m: [4 B! l - (set_tile_scale)9 @- r" ]% D9 M3 p8 q- ^
- (set_tile_rc)+ e" H. L8 I0 h& j, N/ h8 n- T" n
- (if (= (logand blktype 1) 1)' |. R3 W9 d# u9 \ L
- (progn
$ j* M3 d* `# [2 f: c - (mode_tile "xscale" 1)
# F- P5 [9 y5 U f t/ o; ?7 c - (mode_tile "yscale" 1)
# ~/ q% v2 X/ R7 {8 v- h! W - (mode_tile "zscale" 1)
9 E5 v1 t3 n" r* g; i - (mode_tile "rot" 1)
5 m$ F t7 x3 U - (mode_tile "columns" 1)5 @& @: g [, T
- (mode_tile "rows" 1)1 F' n" |6 L* j. S& s, Y( h+ k+ u8 {
- (mode_tile "col_sp" 1)
3 G$ E4 F$ K; [) H - (mode_tile "row_sp" 1)# d* K& F. O4 p. `& h4 w; u
- )/ l; \0 I) Q8 m) A6 c
- )# M3 B: L& T1 }. g f& O7 b# M
- ;; Define action for tiles
* g+ \2 z X1 b - (set_action_tiles)$ k' }0 g1 s# |* Y' E: R. g9 g
- (setq dialog-state (start_dialog))( ~' t# d1 g, o: R1 K
- (cond2 H+ L8 r c0 W _( W" C4 [7 |
- ( (eq dialog-state 0)
* P y4 L) ]0 I - (setq pt1 (trans (cdr (assoc 10 old-elist)) ename 1))* B9 i& J: X; ?6 M( X2 H
- (move_pt1 1)
7 ^* j( ]) L6 I/ K- E - (reset))/ k- i, F5 F$ b! M3 a R
- ( (eq dialog-state 1)# Z. f0 _' l G$ z- b! c
- (if (and (/= temp_xclip xcliponoff) (or (= blktype 0)(= blktype 36)))# h- }9 C9 g% ?, X) x- Q
- (xclip)
& F6 ~7 V" S4 S% j! E ?4 x, j - )
* l6 J/ l9 o2 u O4 q - (modify_block))0 X P3 X; r8 a# q: a+ S1 h
- ( (eq dialog-state 3)
9 _3 [ H5 p% ?2 _) x& j' G - (modify_block)8 E* c8 Z( D6 f$ t
- (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))+ x. i" D |' r$ q) ^ M
- (move_pt1 1)
7 ]3 p9 ^' J$ z9 T$ Z% i C6 A f5 a - (ddblock))
& A5 G5 F( r+ I! s) N4 r8 F4 | - ( (eq dialog-state 4)
0 M: b( ?5 L& ^% W - (modify_block)
0 A: k0 a; C) M; c- y1 c - ;; Get current handle.
8 h ]' a ]3 q8 {3 S - (setq hand (cdr (assoc 5 elist)))0 b& ]7 L# E m
- (command "_hatchedit" ename)
% d! P g8 { t) g$ T - ;; If OK in hatchedit, a *new* entity is created and the old one
0 h, I$ |4 r7 J9 g/ N" f0 V( D( x - ;; is deleted. So if the old one exists, it must have been a0 v2 E* j( a+ u# W* M
- ;; so rest the entity.1 m9 p9 c5 `& A6 s9 O4 N$ U3 o( f
- (if (entget (handent hand)) (reset))
- r% l' `3 c# L' W# R - )# l; k: n; S4 D) p
- )- `8 r; o, n1 g1 x8 @: \
- )
3 {5 r. W9 ~5 n) ^5 ]2 G5 x - )
1 \' `1 i4 m7 f% R - )
8 J; L' q, r& q8 g4 O; X; N/ S" p# W - ;;
; J- P. z% z4 h. F: P - ;; Modify SHAPE8 r4 T/ `5 A3 c; a K7 I3 A5 L
- ;;
2 X% h$ B4 o, C1 M$ x - (defun modify_shape ()
8 x2 }. a8 D! a) D% P, ~. ? - (modify_properties)
6 Q8 x# z8 ]9 q- w5 z# O" S - (setq pt1 (list x1 y1 z1))
* l e, ?7 z7 x2 R; w - (tempmod pt1 10 1). E5 K) X8 ^1 Q% @0 M0 r
- (tempmod hght 40 nil)' [( i; @/ [! o
- (tempmod wid 41 nil)5 f' n# }3 }) I& c
- (tempmod rot 50 nil)
6 x b2 X) @1 c( }. h& n - (tempmod obl 51 nil)
1 k: G g: y0 t, A8 t! x3 d! I - (entmod elist)# O3 w) E( |# S L! {8 y5 H
- )3 ]4 a# b# Z4 H2 w
- M1 A" q( R9 X* m- (defun ddshape ()
$ K1 R |( m& R# l - (if (not (new_dialog "ddshape" dcl_id)) (exit)); f, B% `$ l5 v8 k- K( _+ ]
- (set_tile_props)
0 R- P* L$ E: _. i; q; E - (set_tile_handle)
& Z7 |; I0 y' q; f - (set_tile_pt1 1)4 s; V2 J+ d0 r: w
- (set_tile_rot)% r+ k) Z& e0 @4 r6 B. a7 P* N
- (set_tile_hght)8 I; [( Y' t3 l/ H; Z
- (set_tile_wid)% X# X+ [6 Y, K+ u: ~* m# \
- (set_tile_obl)
' _. V G. \+ w0 u0 O1 ~ - (set_tile "sh_name" (cdr (assoc 2 elist)))& ]# I- I/ X- q5 C4 l4 y. e
- ;; Define action for tiles
8 B. Z/ P8 v- K W4 b - (set_action_tiles)
; G V: r: X1 w- X, C- i) _ - (setq dialog-state (start_dialog))/ p9 ~5 {! B5 \" w7 c) F
- (if (= dialog-state 0)
& f/ n5 X6 t* |& R - (reset)* `' |7 B Z7 A) [9 S: u
- )
8 ^6 q9 N7 E& x - (if (= dialog-state 1)# k4 |( y% U. h0 j# }
- (modify_shape)) C" D2 ^ D, D5 H, f
- )
+ o! A' v) G& b - (if (= dialog-state 3)
" V; @) l& o: p: [ - (progn
# K5 A) U+ x- |, } - (modify_shape)
" `4 d, d" t9 d7 F u, I. j - (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))( f8 q' [4 Y; s/ n# x6 X3 g
- (ver_pt1 1)/ z( g( ~9 t; v# W* A$ @( l
- (ddshape)* E5 ]' I/ _& R* }) D4 j
- )0 f' b8 b+ {4 G- g" l: }
- )
* T/ n/ B; l4 t N$ U - )
4 v/ ? R# C! e l - ;;0 ^% U1 ^+ u' p3 x; p- ~% ~ a! {
- ;; Modify TEXT or ATTDEF$ }, g$ A* Y4 h: Y+ ~# y
- ;;& O8 M; } M8 Z
- ;; Set bit code for upside-down and backwards setting/ t, N% Y$ T" x* O3 D: B
- ;;
# P/ b, X& t, v1 H4 F - (defun code_71 ()0 U% N- n$ M2 X8 i6 ^9 n
- (cond ((and (= bkwd "0") (= upsd "0")) 0) d; e0 T9 K# \# J4 M4 h, f
- ((and (= bkwd "1") (= upsd "0")) 2)! ? F* L& t3 u5 [
- ((and (= bkwd "0") (= upsd "1")) 4)
5 O/ f3 s" {, J3 B, V - ((and (= bkwd "1") (= upsd "1")) 6)5 X! ^" w' [9 ~; h" g
- )
$ }7 H& Y* ~4 n7 b- _ - )4 R! \+ @; i$ u+ M2 H2 r
- ;;
3 J( |/ U9 D" Q# Q - ;; Style action. Reset widget values to style defaults
6 S$ X: [6 b! d! s& s V - ;;
5 r/ I3 p4 O# F# ?* m: O - (defun style_act (index / style-list)
* k3 c ?; h5 b* J' K1 K; t4 Q - (setq style-idx (atoi index))2 A9 n6 y* w+ c( H
- (setq tstyle (nth style-idx slist))$ h$ u Q& I- O# [+ M; l
- (setq style-idx (itoa style-idx))+ C5 Q, R, U7 k' a
- (set_tile "style" style-idx)
. m# i$ i; v' [# S' D - (setq style-list (tblsearch "style" tstyle))
! H+ U" K' @# I: Z( l - (setq shght (cdr (assoc 40 style-list)))
% y0 m$ H4 x" D; ~4 c8 ^6 Q* \6 ^ - (if (/= shght 0)
) k- @$ p, x, l; S' R - (progn, ~5 r% g1 t7 c; V/ ~' m" B" }. U
- (setq hght shght)
, ~& _" x9 H4 O. { - (set_tile "hght" (ai_rtos hght))
$ x. [: n7 ^& |2 | - )
, h! O9 C' y6 f' ~5 s - )* ]$ P! K; R$ Q+ F! m. x
- (setq wid (cdr (assoc 41 style-list)))% j* k7 a' B. C$ ^
- (set_tile "wid" (ai_rtos wid))
% H( J5 B9 F1 h" e" I - (setq obl (cdr (assoc 50 style-list)))4 R$ O$ ~, ~" g9 t3 o {
- (set_tile "obl" (ai_angtos obl))
. Z6 J9 m) H, |2 K7 b+ ] - (setq bk-up (cdr (assoc 71 style-list)))
" y6 M/ u5 N, h8 ~ G - (if (= (logand bk-up 2) 2)( ^, b1 v8 ]2 a' V
- (set_tile "bkwd" (itoa (setq bkwd 1)))' R& U! u# f) @/ \9 [! W
- (set_tile "bkwd" (itoa (setq bkwd 0)))
* Q, O7 k1 n" B - ); |# ~! {0 b2 M! h, I4 q: M
- (if (= (logand bk-up 4) 4)
8 W/ D3 q& P& r) N1 P/ U7 o' k# w5 B - (set_tile "upsd" (itoa (setq upsd 1))). P% J8 N+ b4 Z# J
- (set_tile "upsd" (itoa (setq upsd 0)))
/ C; K& B0 O# u% m4 `8 c: n9 o - ) s0 n4 @1 K% e1 k8 D
- )* {7 b1 e, c4 s9 }. [
- ;;
( m. g, a4 [3 n% K - ;; Justification action. Set vertical and horizontal alignment variables,
4 a7 R" ~/ o+ H5 k2 V: i - ;; grey out rotation and height if alignment = "aligned", grey out rotation
" Z5 F# c) @8 H: A - ;; if alignment = "fit".5 H( N) z8 _ T/ c
- ;;
& `# s; @/ u# {2 f - (defun jlist_act (index / templist)
2 O$ M( @0 a6 d% b; D9 H. `0 G; \, ?) ] - (setq just-idx (atoi index))
, A; T( y0 k e \, a: d' R u- a - (cond3 S. [- d; y1 d
- ((= just-idx 0) (setq va 0 ha 0))' o& g- ?* k. [, u2 e- Y5 W3 F
- ((= just-idx 1) (setq va 0 ha 1))
( E/ O/ O1 h9 O X, o - ((= just-idx 2) (setq va 0 ha 2))
3 |: E4 ~6 V$ n) j# w2 t Y - ((= just-idx 3) (setq va 0 ha 3))
, R [- ]2 J1 ]1 ]: Y - ((= just-idx 4) (setq va 0 ha 4))
$ c# m7 y1 _' N4 Q. W [0 x - ((= just-idx 5) (setq va 0 ha 5))
1 t9 f7 W: n7 @+ }! Q: u& n- n - ((= just-idx 6) (setq va 3 ha 0)), h- i5 d) ]$ J
- ((= just-idx 7) (setq va 3 ha 1))
6 z6 J9 H* J! A) R) x) q( ^ - ((= just-idx 8) (setq va 3 ha 2))
* Y) S0 J$ |9 t# {8 a - ((= just-idx 9) (setq va 2 ha 0))
# ^) l3 t' F. [0 c" t4 @ - ((= just-idx 10) (setq va 2 ha 1))* [& y# t; m9 @" o g0 x
- ((= just-idx 11) (setq va 2 ha 2))
0 p/ D' p% d2 K. k# L. U2 n - ((= just-idx 12) (setq va 1 ha 0))1 q1 X/ o; k/ x5 h! S+ d& I
- ((= just-idx 13) (setq va 1 ha 1))
' X+ X$ b" y( T4 j) S3 ]7 ` - ((= just-idx 14) (setq va 1 ha 2))) z% t% l% W9 A. J( H5 W; h7 y
- )
. T$ W6 }% L& r - (if (or (= ha 3) (= ha 5)) ; If Aligned or Fit text5 H# [3 }6 q4 J& f. P" a5 f- s
- (mode_tile "rot" 1)0 g: n- q5 K8 E7 N. `6 S$ D9 ]" m4 G/ H
- (mode_tile "rot" 0)& Q: u, g, C4 K/ D) g) s' p
- )
$ f& G; B" V' D - (if (= ha 3) ; If Aligned text- }/ F7 K7 V/ r2 j$ ]
- (mode_tile "hght" 1) b* v# e+ N" w' B: G
- (mode_tile "hght" 0)% P3 a: h9 v2 _# {/ E* l! N4 p
- ) n3 D' [4 k9 ]( I% e" a/ f8 A2 ~
- (if (= ha 5) ; If Fit text: [( b0 [0 a/ d
- (mode_tile "wid" 1)) m/ \+ f. }! C- {# j
- (mode_tile "wid" 0)
8 V) l: N- f( v1 Y" v: k - )
- a: C/ ~; V, Z; r- A+ N - ;; Reset rotation and height if changing from aligned.
6 e. Y! ^7 K' c; D' T* K - (if (and (= ha-prev 3) (/= ha 3))! J" y: a9 ]+ n
- (progn' ^0 g1 J+ F+ y$ X4 B, {( }
- (set_tile "rot" (ai_angtos (setq rot 0.0)))1 L& k g3 q4 i5 d
- (set_tile "hght" (ai_rtos (setq hght 1.0)))
) |) H# {7 [1 ]. }1 r+ _; X; F* { - )/ f. `8 M$ I2 t
- )4 T% t1 P. b2 V/ o& O$ K; `# @
- 0 N; y. O& Q3 H% ?
- ;; Reset rotation and width if changing from fit.
' N5 v- s4 o6 R6 D y/ J3 g" v - (if (and (= ha-prev 5) (/= ha 5))
2 ?3 E* J2 l! \3 p' s - (progn
5 N( z8 {4 u2 G( H5 J7 Z - (set_tile "rot" (ai_angtos (setq rot 0.0)))1 |! n( b9 K9 U' Q9 e
- (set_tile "wid" (ai_rtos (setq wid 1.0)))& U: \, ^8 Q- u. I" V& n
- ); }. h5 r2 v- u- \, D3 i
- )
9 F1 T& Z" f+ K: A
7 m! I( Y% a/ z7 b) z9 F H* N, v- (setq ha-prev ha) ; update ha-prev for next time2 m2 @! u' D0 B- k; y. I* V
- (setq just-idx (itoa just-idx))
: `4 E5 ^! n/ l0 Y( j/ j - )
5 ~, X, B' x8 `9 h7 {, y9 f - ;;8 A: ~/ T3 M6 K1 a
- ;; Set intitial alignment setting based on vertical and horizontal alignment
" z) C t# K& Q6 {6 p - ;; bit codes.
) R" Q) Q! H4 r2 v" U - ;;5 j4 j$ j2 y" A2 X- Q
- (defun set_just_idx ()
: A0 x; ^! }; p+ u* X" h% h - (cond
p$ v+ O4 Z. y+ y4 A4 p# d0 W - ((= ha 0) ; Horiz alignment = Left# `& O$ j/ d. c$ i. C' E1 P) z
- (cond
* G2 Z$ o# W. ~8 A - ((= va 0) (setq just-idx "0"))
1 u" w1 P' F3 w - ((= va 1) (setq just-idx "12"))
2 X) c. e# D/ P% O - ((= va 2) (setq just-idx "9"))4 z; E) C* A3 D& k, n' J1 \
- ((= va 3) (setq just-idx "6"))0 P4 D4 e& e& e5 `( D
- )2 T2 u5 u5 m# R$ {, h
- )
5 o: w8 F/ a. n6 ?- c2 v! Z - ((= ha 1) ; Horiz alignment = Center# L& q7 ?; \: {- s" A) Q5 R+ ?2 |
- (cond+ n! L3 E3 H) K9 X0 g
- ((= va 0) (setq just-idx "1"))
7 W) ^0 W" N( i! ^ - ((= va 1) (setq just-idx "13"))" [+ C' G& L, d" d
- ((= va 2) (setq just-idx "10"))
# y) V7 y3 z: G8 v; n - ((= va 3) (setq just-idx "7"))
9 _6 Z; W& p ]0 p - )
. Y3 |- U: K) ^3 k, G - )
$ \0 v- N7 q) j- `0 e - ((= ha 2) ; Horiz alignment = Right
6 |' Q. Y$ T) T8 F- v/ u - (cond3 {* c; |5 K" `; z4 A% u
- ((= va 0) (setq just-idx "2"))3 [- `3 t1 x/ I5 Y- I
- ((= va 1) (setq just-idx "14"))
2 d# a' s8 K8 F8 _1 t! S, l - ((= va 2) (setq just-idx "11"))
$ S7 W; }. m- H+ i - ((= va 3) (setq just-idx "8"))
2 _+ h, ~. m; A. } X6 G3 y - )+ X: i- v2 U; `
- )
: e# I) A: ~5 R1 @ - ((= ha 3) (setq just-idx "3")) ; Aligned
$ z$ _, F" _% g& R& c8 M: p) a - ((= ha 4) (setq just-idx "4")) ; Middle
8 [9 b: Z% V# I - ((= ha 5) (setq just-idx "5")) ; Fit
( G k6 M! e0 R - (T (setq just-idx "0"))
$ e; D2 ~& X" v# r - )
" c. D2 t# d* ~% X: {* \/ c8 h - just-idx: Z: {9 d2 f# u% k: c; g% k
- ) E# E+ C6 d0 ?; U
- 6 \, O2 u) } F+ O, |
- (defun modify_text ()
2 K* V2 |+ K4 @( [: U - ;; insertion point
: l6 {) d- V& \. }, u - (setq showpt (list x1 y1 z1))
7 {# W& Q" C4 [+ l7 V0 ^. T - (setq bit-10 (trans showpt 1 ename))' D6 h% l' L! w- z [
- ;; alignment point' [9 ]- q# s& Y+ O7 R% A$ V
- ;; for 'Aligned' or 'Fit', alignment point must be different% w4 B! v( a1 t h: p Z! B; j4 Y
- ;; for all others, use insertion point
1 X1 Q' `2 z1 T. M - ;; (ACAD will recompute insertion point)1 t. E8 E7 _$ Y' _( G2 Q' A
- (if (or (= ha 3) (= ha 5))! P4 f! c C5 j9 h$ D( b
- (progn" g# t2 O4 D+ m! e. t0 `
- ;; if no alignment point, fabricate one4 I6 S, H" Q2 O5 A
- (if (not alipt)
2 X( X d+ b) `" J0 N" i - ;; add text width to insertion point7 x4 n% W$ C. m) g
- (setq alipt1 o0 ~; r: ] n2 ~4 ^6 }0 ^
- (list (+ (car showpt) (car (cadr (textbox elist)))), O( a# E/ J! F! g& S8 C; S! T
- (cadr showpt)! s, m& p; b( d. w( D
- (caddr showpt)# k" h4 G; k: t& l# J8 V B
- )
6 z$ g. s" w- q \# D - )* D G; z0 o( S4 m
- )% I+ U0 q" C% s# k( ?/ M8 {
- (setq bit-11 (trans alipt 1 ename))! S. e# i- P- a0 y- K1 ^5 ]
- )( p; ^0 q* _2 U4 B5 X( o( E
- (setq bit-11 bit-10)
: y. `/ H) ?' N l% q - )1 T' I4 b# T4 l z0 s- ]
- (modify_properties)1 F1 ?. D/ O" m' ?1 E' J! R
- (tempmod tstyle 7 nil)4 I: ?+ C4 m2 m- b8 O( J5 @ W3 i
- (tempmod bit-10 10 nil)
# {# y0 H* F- e" N. z - (tempmod bit-11 11 nil)
& ]8 [% @* i, ]2 Q1 X( g% F! i7 t h - (tempmod text 1 nil)/ p- f: {/ C8 J) y* G* @
- (tempmod hght 40 nil)
" \2 L8 d9 o: r2 V$ }* `3 a% W - (tempmod wid 41 nil) K4 C2 {4 f5 h8 H2 v% g
- (tempmod rot 50 nil)1 y- q8 B' r q. C( Q2 Y; {1 Z0 X5 d
- (tempmod obl 51 nil)
& }. L% ]3 ~2 x - (setq bk-up (+ (* bkwd 2) (* upsd 4)))7 R" @$ S) X0 P% Z$ ]
- (tempmod bk-up 71 nil)
* |4 I" k' [/ K: _ - (tempmod ha 72 nil)
1 h. P, H" C7 l9 A - ;; Attdefs use 74, text 73) M* p$ ^9 i2 c$ Z; G" U0 ~ }' r
- (if (= etype "ATTDEF")2 R. J: }) D/ l, ~
- (progn$ P" g; w+ B. B* r$ g
- (tempmod attag 2 nil); N. \# ~. `) a/ y
- (tempmod atprompt 3 nil)
4 l: e1 u' S% i - (setq icvp (+ inv (* 2 con) (* 4 vfy) (* 8 pre))) S" r+ N$ O" R) o6 s
- (tempmod icvp 70 nil)- A2 n5 `, s8 S( ~) |9 _
- (tempmod va 74 nil)
9 d f& {2 G6 F8 Y! O7 B) [ - )" `; q+ g; R9 I# w
- (tempmod va 73 nil)
" D3 L3 W8 o. k4 { ~7 x - )/ G- k+ g6 S+ t
- (entmod elist)
4 X: j: D9 r' N# J9 H6 b- [ - )5 O% f2 M4 l# u
- 6 ?# t+ R1 T2 P) U; W. ~
- (defun ddtext (/ 2ndpt slist i)/ X8 n8 C; R1 d Z S
- (if (= etype "TEXT")+ h' i C7 O1 [
- (if (not (new_dialog "ddtext" dcl_id)) (exit))
; s0 ^5 H+ p( R - (if (not (new_dialog "ddattdef" dcl_id)) (exit))
) o7 K1 B. Q( U# M% A - )
9 |0 R+ n; ]; d9 R, T - (set_tile_props); }6 I; r7 s8 ` _
- (set_tile_handle)7 C( _: M' C# h' S. V
- (set_tile_text)& _$ D( W; ?1 M9 B7 J8 @: h1 w
- (set_tile_tag) E! N: v. V T& G9 u" U
- (set_tile_prompt)% c* h$ \1 q# P$ P) i( G
- (set_tile_hght)
# F7 B; O- Q7 f+ @ - (set_tile_wid)
. z: a. i; h7 J/ w/ F - (set_tile_rot)+ z1 A2 M& E3 F% s) C
- (set_tile_obl)
8 K: _6 G9 ?& N! T& G* z - (set_tile_bk-up)
0 o$ [3 r2 ~& ? - (set_tile_icvp)
1 X& _+ a' d" p" b6 {: w8 F - (set_tile_style)( @. J; S- U' `5 {, B
- (set_tile_just)7 G3 P6 e) K" A# @
- (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))
$ z" b$ K/ f/ g+ r - (if (not (assoc 11 elist)) u5 s! T& H! F
- (progn (setq pt2 pt1)2 N/ ^4 K) f( p l
- (setq elist (cons (cons '11 (cdr (assoc 10 elist))) elist ))
2 m3 g3 B/ q+ Y5 g( c. H% @2 x T - )2 d* Z5 \# M1 V5 Z
- ;;(trans '(0.0 0.0 0.0) ename 1))
& N5 \7 Z$ u0 d% p' a0 R/ Q - (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))/ K5 V+ @2 w& K
- )
& ~6 ~' R2 j) ]% Z$ L1 E - (if (or (and (= ha 0) (= va 0))
6 }* ~7 x& j" {! S8 [" y9 g _! S - (= ha 3)
# {! `& U; o8 t) R. [ - (= ha 5)* u ?, d: @# `( W7 i) k
- )
1 y! Y: W V6 m7 N' | - (setq showpt pt1)" \; W+ J; h1 ]- P
- (setq showpt pt2)0 w& `: j" F4 {' @/ h3 ~! c
- )4 E% e& Y# R. h
- (if (or (= ha 3) (= ha 5))
0 W4 P% F( R9 @1 p, y) [+ { - (setq alipt pt2)" Q8 _' k1 x% @3 y/ ]
- (setq alipt nil)
. m8 a7 I# t8 K - )
' d* M+ s* \' r3 C. N6 Z - 4 h3 W2 l, @6 h7 n% I
- (set_tile "x1_pt" (ai_rtos (setq x1 (car showpt)))); Y2 y2 P: m2 D1 L7 `; S& r" }0 w
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr showpt))))4 E- r2 `3 P, f6 u5 L( Q, e2 T
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr showpt))))
1 H8 _( l. s! A/ W
; N. J, x6 E" e) I, B5 R- ;; Define action for tiles
( {! Z8 I5 ~) J4 w) J - (set_action_tiles)
" p, o% |1 p- C8 @. K - ;; Set focus initially to the text edit box.. e# v" X3 ~ b2 o# Q
- (if (not i) (progn (mode_tile "t_string" 2)(setq i 1)))
4 Q1 _ O* @: i/ T7 p - (setq dialog-state (start_dialog))
7 e. Y3 @( D2 h8 f( N - (if (= dialog-state 0)8 W+ [* g( d! O) v" p4 ]/ O' q5 q% p c
- (reset)
5 J7 a7 u0 l! L" A) d4 |3 `: S3 y1 m: u1 i( d - )2 F8 G" y. k; R' V9 R+ v9 C i
- (if (= dialog-state 1)
, O7 C& Z$ i* B. J3 q" N9 p; w- s - (modify_text)
/ M) n. Y" k- u, m: ~0 h - )( s+ l) I) s3 F
- (if (= dialog-state 3)
! |) \8 V" c* D; ` - (progn0 o9 r5 M0 z9 V* q) r4 H
- (modify_text)
3 g" _' O# v" K - (if (or (= ha 3) (= ha 5))( }5 F6 T' [* I$ J7 q) ^
- (progn
4 d/ P- y$ ~4 q$ H8 O1 j - (setq showpt (getpoint (list x1 y1 z1) "\nFirst point: "))
% s) N* B7 H* u0 {1 r( @ - (if (not showpt)
& `; ? G0 g1 K& L1 X* A. o/ x5 O3 ~$ r) L - (setq showpt (list x1 y1 z1))5 C; O7 o- q$ |" U) Q R- b
- )
" D/ K- E6 Q$ ^, [$ ]" ~5 _ D - (setq 2ndpt (getpoint showpt "\nSecond point: "))
5 P- r' V4 H$ W - (if 2ndpt
/ m8 U- a' m, z$ F9 T6 } - (progn
# q- a0 m3 Y$ w/ _ - (setq alipt 2ndpt)7 t! {4 ~2 @( s8 J2 {: k
- (tempmod showpt 10 1)
$ Q9 Y0 U: }5 ]) j. A - (tempmod alipt 11 1)2 b5 ~& f" g* H' R
- (entmod elist)* w# X* L$ C1 T1 c4 |
- ), c8 O; b) w6 T% ^
- )
& c6 E% b6 X, h$ f- I4 w m( j - (setq elist (entget ename))2 e1 f' O+ I' Q: ~3 {) O$ c
- ) z; F L% H: C5 q
- (progn& q9 `3 H7 d; C$ W+ J/ N7 }! \
- (setq showpt (getpoint (list x1 y1 z1) "\nInsertion point: ")). s- J# U3 y/ X" i* R/ e
- (if showpt
- H& K% e# D" v$ n5 [ - (progn
4 N6 ^( a- @0 H2 Q4 P7 F# u- ?# l - (if (and (= ha 0) (= va 0))
0 ^/ L# \" h& l - (tempmod showpt 10 1)
/ @; y( t2 R$ [! J( Q/ g - (tempmod showpt 11 1)* W0 H6 c1 W9 b8 e2 ]# e2 v6 J) Z
- )5 f( j- P+ }6 M# |8 Y% u+ c( }3 w
- (entmod elist)% |+ o8 A6 A6 Y$ h: q2 S
- )
$ v6 ^* q7 L6 L. g$ Y - (setq showpt (list x1 y1 z1))9 L/ `3 C; L/ a# z: ^
- )
/ _$ O/ p8 l- z, e - )6 f* o, N) ^0 X% E
- )
; {1 G+ v) I% F - (ddtext)
# f; P: x. Q Q7 l - )* \( B M6 X; y
- )# D: o+ |* l: l1 G
- ), V* w; M. W Y1 B. G, u% a
- h* ?5 a$ Y9 }* D0 ^
- ;;
R: m; \5 K/ h. u& v( q - ;; Modify MTEXT; F+ o& a6 O! S) D8 n/ K
- ;; ]* Q) K e) q9 y% B0 @* E6 Y
- (defun modify_mtext ()
7 T) F) E% X% R - (modify_properties)
U! e0 d/ R6 W3 @0 c - (setq pt1 (list x1 y1 z1))/ ]! E9 U7 h- z$ g2 g. c
- (tempmod pt1 10 0)
* |8 M8 C' E6 W0 m - (tempmod text 1 nil)
' l/ g& d3 \+ [5 } - (tempmod tstyle 7 nil)
. }, p! Q+ a8 Y6 s! e - (tempmod just-idx 71 nil)
7 V# ~ H4 q& ]' g - (cond5 Y' J- {7 Y4 {1 ?- b; ]! o/ K H
- ((= dir-idx 0) (setq dir-idx 1))! U3 T5 [; T. b; e! U+ A
- ((= dir-idx 1) (setq dir-idx 3))
5 b. n3 }) [" @! R* y - ((= dir-idx 2) (setq dir-idx 5))$ e7 {% a! n7 Y+ J% v6 _
- (T (setq dir-idx 1))1 O% V& C: s' x6 p* j; [6 Y; V
- )9 G: G A, L8 u- W" K
- (tempmod dir-idx 72 nil)
- B+ W' Z/ s* I& t$ M+ Q7 [1 r - (tempmod hght 40 nil)
9 |3 `" H/ s7 v" j+ K1 Z8 E - (tempmod wid 41 nil)
, j* @3 ~$ R4 c, Z2 E0 x- ? - (tempmod rot 50 nil)
\9 R `% _. k# C {3 z - (entmod elist)
7 I4 f( o j: U# |. e" `0 c# T& R. X - )/ H. ^* y+ i9 \) M: F, B
: K6 a5 }7 |' I) S: Y- ;; Set MText text style% [1 x) w% m" @/ w) a% e) J5 B
- (defun MText_style (index / style-list)5 f; V' W" S, l/ V m9 i; H" g
- (setq style-idx (atoi index))
D4 Q8 b, |1 N; v" q8 ^0 a - (setq tstyle (nth style-idx slist))% {/ W" E* U- ~: @% D* ^3 F
- (setq style-idx (itoa style-idx)). p5 E4 Z' f6 s+ c1 k0 w
- (set_tile "style" style-idx)
! f8 w9 R1 z: c* ]: _ - (setq style-list (tblsearch "style" tstyle))
4 |8 s9 j+ o, ]1 }2 z7 A, R7 D - (setq shght (cdr (assoc 40 style-list)))
. S/ z. V6 z; \4 M; {+ i& x - (if (/= shght 0)
$ g- x' P7 G# I" {. A# F - (progn
5 B j0 y- Y( Z2 e$ I2 ~/ E) Z - (setq hght shght)
/ D" T6 o* ~5 A5 U# H R - (set_tile "hght" (ai_rtos hght))
C9 k6 G. h" U1 t - )
7 u5 T' O4 T6 O; w& i - )+ a+ R; n7 z0 ?& t1 R! h: o
- )6 j' r, v2 t; G6 I/ s: ?# q
- 0 W) A, ^$ R+ ? h
- ;; Run DDEDIT on given entity, working around possible re-entrancy
" N2 \2 n7 ?# F9 s& T8 @ - ;; problems with MTEXTED5 C& O* ]1 I. H9 `0 a8 |
- (defun safe_ddedit (ename / orgMTextEd work)
' D9 \1 q$ y' A5 ^- b( ^ - (setq orgMTextEd (getvar "MTEXTED"))
) H' u5 _ H% u8 m, R8 @$ k - (setq work orgMTextEd)3 G6 `% k$ [7 t" N. F1 P8 ?
- (if (= ":" (substr work 1 1)): W8 g0 B: Z! q7 m
- (progn
3 e- O7 g+ u7 r; i" M - (while (and (< 0 (strlen work)) (/= "#" (substr work 1 1)))
' c; o! @: D9 ~/ F - (setq work (substr work 2))
' f( \3 K- ^; l; O5 R$ x - )( U0 T8 Y) `, F- M- ^/ t( K
- (if (= "#" (substr work 1 1))
& n; k: W- s' i - (setq work (substr work 2))
]3 b: s8 ~; m: L, i/ U. l - )
* Z, B# b7 T/ D6 o' l) G( W - (setvar "MTEXTED" work)
m, s# i# {/ Q! }' I& b - )
: E( d& a: t5 A9 V6 Q2 d - )
% `- y4 [3 A' o - (verify_arxapp_loaded "acmted.arx") ;; make sure it's loaded...
; K1 @/ v/ @6 A9 \+ u1 k. O3 C! \ - (command "_DDEDIT" ename ""); d3 Y# e; U- K
- (setvar "MTEXTED" orgMTextEd)
5 k" k) x2 k7 ]4 y8 i, x - )
. Z5 A3 x Z! K3 ^3 ?- s6 J - $ z* e$ i, l* S; @
- ;; Verify MText object width9 C9 t2 \& O% z6 ]+ B0 y2 H
- (defun ver_MtextWidth (value)
$ i. J ]3 ]7 F# A0 l2 J ] - (setq value (distof value))
% N8 h2 ~8 n5 r: n& O - (set_tile "MTextWidth" (ai_rtos value))8 ~3 h" O8 u, \
- (set_tile "error" "")
$ q* J2 t; }4 ]9 _ @- Z - (if (< value 0.0)2 T) ^: l, x6 K" b7 k& S( c
- (set_tile "error" "Value must be zero or positive.")8 X6 R. x" [0 ~9 E; C+ g2 _% r c8 ?
- (setq wid value)
0 n8 J, i$ y2 ] - )
9 q( R. I% v3 H+ C: { - )& W" I# d! i2 D) V
& r6 _% w* m A2 {; i+ V, L- (defun ddmtext ( / gc3)
9 I3 ]$ U" j+ I9 O. N% {) T, g, i - ;; Get dialog
$ i6 Z# K+ E5 T. n! Y$ k8 L a2 p3 d - (if (not (new_dialog "ddmtext" dcl_id)) (exit))
0 g% E' P4 ]# |7 P
( J) }7 L5 T: n7 N+ k+ e, ~2 Q' Z- ;; Load list boxes- [/ w6 |: C. F6 R6 g+ \
- (start_list "MTextJustify")6 _& ~1 _% B8 X* S
- (mapcar 'add_list '(
& Q5 j. T+ [/ C0 { - "Top Left"+ M- Q- ~6 m6 G$ ]& A, I( X
- "Top Center"& v+ H$ M2 Y& J9 K5 Z* g! F
- "Top Right"
8 M0 o- m, A4 P; u - "Middle Left"( N+ q, h2 O/ e
- "Middle Center", E3 B/ T0 j$ _/ E% y6 A
- "Middle Right"
: C& T) W/ p8 I2 z" A4 ~3 m; g" [ - "Bottom Left"4 Z$ p' I' v$ H$ i" Z/ ]% \; }% v
- "Bottom Center"
' Q- q( u6 Z1 e/ m. r9 Q' |$ {$ @ - "Bottom Right"; b- L/ m3 T# F
- )8 }! ?/ l2 _) N8 F o
- )
2 i/ S @! L" B( A' e2 s$ @ - (end_list)
% c5 ?9 [# x! W! W: J6 J: K. E/ J - 4 H1 s" ]( e f9 C7 H9 E
- (start_list "MTextDirection") X" \' [. A5 {9 t2 t
- (mapcar 'add_list '(( u6 B& y# n. T. ?
- "Horizontal"
2 \3 J% l+ L% o - "Vertical"* A7 v$ {3 d( G* Q: V. B: A( ~& A
- "By Style"" v: V) I5 M3 m( s0 D
- )
q/ F& |2 @) @" z# V2 z - )& d9 _ G4 @4 R# w( H9 U6 T# |/ D
- (end_list)2 [6 z' L% u2 x3 a$ d
- 4 B" A a3 q6 [5 i8 ~
- ;; Set initial tile values7 d6 k+ |# C, H' l
- (set_tile_props)7 m Y8 _" |! s4 n- B a1 A( E
- (set_tile_handle)* ]2 R- _, W( X5 P' _( S: G& G( p; b
- (set_tile_pt1 0)
. E' `2 @8 a7 p - (set_tile_style)
6 b( w, M; ?/ _6 [; | - (setq just-idx (cdr (assoc 71 elist)))
+ X! S3 l7 w) e/ j - (set_tile "MTextJustify" (itoa (1- just-idx)))
& k6 B9 v: s; E* P1 x1 A - (setq dir-idx (cdr (assoc 72 elist)))
) j) ]& A; w' A - (cond1 o. a; g3 k7 D0 k
- ((= dir-idx 1) (setq dir-idx 0))
9 r$ U" U. [; y b$ L - ((= dir-idx 2) (setq dir-idx 0))
9 c# `4 T6 J7 X- _. N: g - ((= dir-idx 3) (setq dir-idx 1))
! L+ s" n! }2 v( c - ((= dir-idx 4) (setq dir-idx 1))
* g( K: y) a7 b. y( y - ((= dir-idx 5) (setq dir-idx 2))
6 t) f& K1 a; h3 m& }7 a - (T (setq dir-idx 0))
; ~+ X% J% a" L% D6 O, ]6 e - )6 D3 d2 f" i/ P: Z+ t
- (set_tile "MTextDirection" (itoa dir-idx))0 b F$ z* J; o) {! Z0 Y
- (set_tile "MTextWidth" (ai_rtos (setq wid (cdr (assoc 41 elist)))))& K1 D" u% H+ o$ n; R( M
- (set_tile_hght)
$ Z; `# _, I) \, @0 ?% p" b! x - (set_tile_rot)
. L* f% H3 [3 i9 | h) V: h - 6 ]+ Z8 s2 D; ]8 x- \" x. Z
- ;; Set edit box, disable if too long
' i$ m" `3 m4 A% }2 f# ?1 H - (setq gc3 (cdr (assoc 3 elist))
* i) @$ U, i. ], l - text (cdr (assoc 1 elist)))
' X$ U9 Y0 i/ ~3 V2 h - (if gc3
, _* h. C7 v' r% x - (progn ;; Text is over 250 chars, disable edit tile
% \( u$ G, N" W1 X- H% v - (set_tile "t_string" (strcat (substr gc3 1 25) " ..."))" F6 U0 Y7 A1 \3 |
- (mode_tile "t_string" 1)
7 j6 I3 T% I2 y0 V5 C* l* B - )# @8 w1 [+ C! ]; X. k% o4 I# V4 W. D
- (if (> (strlen text) 80)- g8 o" o7 @! a8 h8 N4 @7 `
- (progn ;; Still too big
3 B {" h9 j7 {/ B$ h - (set_tile "t_string" (strcat (substr text 1 25) " ..."))
# w. k4 ^1 \& D! c( T! _ - (mode_tile "t_string" 1)7 I( y4 {5 I q% D
- )" p- y# ~" w6 w0 g3 o* j: }
- (set_tile "t_string" text)
5 ~* R8 Z: P/ t- B% A/ h- \: W - )
) y1 Q' y G( H8 l4 | - ). l5 w8 r$ S( I$ a& A- \( m
- " V: p0 e" K3 T
- ;; Define action for tiles
/ ^" X5 n. w( n, B9 ^ - (set_action_tiles)! a2 F2 J. h% S, l1 a" k6 c. x$ ]
- (action_tile "style" "(MText_style $value)")2 c0 @3 |; s8 A, }1 B; M
- (action_tile "MTextWidth" "(ver_MtextWidth $value)")$ t9 g3 {& t4 @5 M. t
- (action_tile "MTextEdit" "(done_dialog 4)")
( x# }: T6 m# ~ m) j+ L+ w# J - (action_tile "MTextJustify" "(setq just-idx (1+ (atoi $value)))")( R" K4 ?* {. w. v
- (action_tile "MTextDirection" "(setq dir-idx (atoi $value))")
) w6 K2 X% Z6 V9 z, e, j
5 h) T4 H2 c# w1 _. V- ;; Set initial focus to text edit box.
2 R! o' O- @; \& Q7 p6 W" z: K - (mode_tile "t_string" 2)+ Y, Z# F. n+ c/ Q, ^& d9 w7 E
* ^; B4 t4 D& E$ @; g3 b) N- ;; Run the dialog
3 r% B6 n- J1 F! v. s - (setq dialog-state (start_dialog))2 m7 H( p( y' ~0 S% G- [% Z" [
- (cond
5 b6 {) l2 y+ j: ~3 @, b$ V - ;; Cancelled - restore saved data
3 b# n9 _, H! Y" B! w - ((= dialog-state 0) (reset))) H( X" b. K; M( r x
- ;; OK - save new data+ q# g ~2 l( m' a1 c
- ((= dialog-state 1) (modify_mtext))2 R) m# \9 W' W( r7 ?
- ;; Pick new insertion point; [; J" f. R' i) }
- ((= dialog-state 3): F+ D1 M) W" Q# c
- (modify_mtext)
% i- _1 L/ b, c/ N8 [3 k# o - (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
0 H5 T3 v" y5 Y k4 I8 I2 V1 m - (ver_pt1 0)
: \( F( _7 K9 W& e, D0 i' m - (ddmtext)
3 f8 [5 M- K% a - )" ?! ]( [1 N7 \* [2 g
- ;; Run full editor% G K$ N2 Y$ R) ]0 Z
- ((= dialog-state 4)1 a5 H' h7 A4 G: x, l
- (modify_mtext)
& X+ l) W1 \' |8 j* S) a: ]8 g8 E' g - (safe_ddedit ename)
4 l# h5 I8 G( R - (setq elist (entget ename))2 p$ N3 U! c) W/ Y- X
- (ddmtext)
8 C# v N% L( V3 [5 x& @7 Q - )$ M' r2 |% g: y* n6 K: Q
- (T nil)/ {; m+ f' M: v
- )
& z3 ?7 v5 \( ]' C) f: B9 B- J% O; H - )0 V4 D' V' j" A0 F& Z' x, h
- ; K$ u: j4 s2 u
- ;;
8 `- C& C8 y. w. N% s( B P9 \ - ;; Modify VIEWPORT
9 V4 \* t; s5 _3 f( N! s - ;;* u* c+ I# m# R6 l+ T& G9 C/ v4 F* W+ C
3 q0 N2 ?$ `5 k" u) R5 O- (defun ddvport ()
" O! U1 B6 h: D. |4 m* v+ [ - (if (not (new_dialog "ddvport" dcl_id)) (exit))
& ]3 f, D: L7 ` - (set_tile_props)8 a: f3 w5 [9 |1 x) M e
- (set_tile_handle)
9 L* \, O7 {, q+ u) H6 o - (setq vpt (cdr (assoc 10 elist)))
1 c( H% {2 C7 A5 z) _ - (set_tile "xtext" (rtos (setq x1 (car vpt))))0 f- y$ |( ^; N a- f
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
; b1 q/ z$ l2 x+ c* [( d - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))4 O$ F9 ~& h* T: H
- (setq wid (cdr (assoc 40 elist)))* y& R l; p# f) s/ }. _3 w) n; s
- (set_tile "wid" (rtos wid))
1 {8 q+ J- N! E# m. G3 ~ - (setq hght (cdr (assoc 41 elist)))
: A' h1 n) G" `+ o - (set_tile "hght" (rtos hght))- Q/ G0 D ~, _: A/ \
- (setq vpid (cdr (assoc 69 elist)))) d1 `1 K* j1 r
- (set_tile "vpid" (itoa vpid))
& p2 V2 U4 P& K; k6 o - (setq on-off (cdr (assoc 68 elist)))9 G0 M8 j' p9 H/ c9 k
- (cond
8 g; d/ Z( S& D; H7 e - ((= on-off 0) (set_tile "on-off" "OFF"))
) T- s b/ B+ Y$ D - ((> on-off 0) (set_tile "on-off" "ON and Active"))2 s; E9 v9 U/ Z: ^0 d$ k& V
- (T (set_tile "on-off" "ON and Inactive"))
; [( P2 A- }& ~( ~! ^ - )
0 V, v9 }) e7 X# U" X9 \* s1 Q; t
2 a% r( `9 @, [/ r- e9 K% Y) |) C' o- ;; Define action for tiles/ g: A9 ?" Z7 w6 C7 Y# R
- (set_action_tiles)
! t/ m1 b ^/ k6 }/ l- ?4 \& M% d - 6 c3 l) a* }7 L9 H. @, p
- (setq dialog-state (start_dialog)); b4 R* A! {/ r
- (if (= dialog-state 0)
+ Q. C% p- z: U+ g& s! h* | - (reset)
9 ~8 `; W7 D" v$ y - )
& N8 ~* t: F# x/ i! E) q. { - (if (= dialog-state 1)6 a8 H5 ~7 Z3 Q# e, ^
- (progn
$ y, O7 k! ~; ?! q$ t& E \ - (if (= ecolor 0) (setq ecolor "BYBLOCK"))
' M* ~ F3 `8 M5 D( ? - (if (= ecolor 256) (setq ecolor "BYLAYER"))
# J$ y0 q9 @# A9 }+ R0 Q. U - (command "_.chprop" ename ""2 i# n1 l# i/ N9 g* G
- "_la" elayer; D% O; z6 H/ q, r
- "_c" ecolor ""
5 ~$ G5 {8 |0 ~) L7 ~. { - )- t& @" U6 j( J& A5 o$ I& n
- )0 {7 m1 C9 o& y( Q+ C
- )* U$ W3 k" U! T9 n f! c' q: K; ]( k+ c
- ); F* E6 v8 V0 x3 S l! y4 e; H
- ;;
: n1 m% {' X: O/ @8 S0 \ - ;; Modify POLYLINE" c: ~( f X( P0 t' C
- ;;
+ F3 x! o8 N# N9 P8 v/ U. i - (defun modify_polyline ()5 E4 Y4 a# x! S
- (modify_properties)0 R8 |: q6 m+ G) { s
- (if (= ltgen "1")' o3 i$ r' ~1 W! O* T
- (if (/= (logand bit70 128) 128)
. X8 ^+ e5 ?% x: a% ^# B% z - (setq bit70 (+ bit70 128))0 g# t4 d5 Q# M* J6 P d
- )
9 x" i: a: k/ J0 B0 \$ d% D - )
/ Z( ~: \, `3 W6 \$ N - (if (= ltgen "0"); R0 |+ ?! r# ]. a* n
- (if (= (logand bit70 128) 128)
1 q8 \5 F: z. \% x6 [' U4 j5 r - (setq bit70 (- bit70 128))3 L2 x% b' [+ j& P1 [ G
- )
7 q' Z4 L7 {: c - )! u$ m' G/ a5 |4 N3 @
- (setq elist (subst (cons 70 bit70) (assoc 70 elist) elist))9 c. G z7 w8 x4 B' X
- (entmod elist)
9 i: q2 X' j) g7 C0 } - ;; Added to take care of updating Vertex information for color
# ~4 g, g1 g+ H# {. R( a: c- s! H, i0 d - ;; and linetype.+ s! P! B' ?( F9 D9 s5 z) l0 U9 L
- (setq save-ename ename save-elist elist)( i% _5 |8 A/ O" v; y" c9 y3 y
- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
* k% y3 f8 O- i5 h& S, P - (progn
/ D- A4 C7 Y1 U - (emod ecolor 62)* P& b" |2 } ~- l, y5 C
- (emod eltype 6)) n& }( {7 I t- u9 G, e
- (emod eltscale 48)2 \4 M+ h* j5 ?8 E6 \% c: n
- (entmod elist)
, w- `9 i7 q' ^4 { - )
+ Z4 [9 b3 n5 p - (progn/ e$ x- w- H8 z) V/ A" G8 C
- (setq ename (entnext save-ename))5 {8 _7 Y9 Q, j5 K. X- c
- (setq elist (entget ename))
% r; }6 x* b+ d - ; G, M* N7 R) Q m; B# k" ?
- (while (not (= (cdr (assoc 0 elist)) "SEQEND"))
8 H. i y ~% m+ @6 ~ - (emod ecolor 62)
* V9 K/ _ w# R. d6 Q6 A - (emod eltype 6)
. U M9 V/ P+ M8 O$ P - (emod eltscale 48)
9 M- C% V9 h2 f! ?+ E - (entmod elist)% I/ M0 h6 f) U8 k4 h- Q5 `
- (setq ename (entnext ename))9 r$ ~$ v6 p' z' d5 O' h
- (setq elist (entget ename))
! J- \: d+ @- ^, x" l - )& k! m: `2 G* \9 A% G; s8 u. W
- )
# h- k6 v# @. Y K& ?7 A5 X - ), N3 s! Z+ J% r& S# n; W
- ;; Update the SEQEND: W7 ], Y( q% c i( w
- (if (= (cdr (assoc 0 elist)) "SEQEND"); Y, D* _) o3 |* G. n7 r
- (progn
7 f. U- {& J( `. h - (emod ecolor 62)
: ~* r- |- g* M9 W7 d! f - (emod eltype 6)
0 K; F8 ?0 V/ w; @0 [ - (emod eltscale 48)
7 K1 K Z9 k2 ^/ a# |3 B - (entmod elist)) m3 |9 r5 l# f D. v7 ^1 R
- )
8 H/ m! R; A7 f9 U/ b! ]8 H - )
) _% Y' S5 `& i! l2 s, a0 ?) Y - ;; Go back to header.0 A8 u U' V( R5 T1 v( x) Q/ ~1 B
- (setq ename save-ename elist save-elist)
5 e! n( R; [2 N( J
, G5 I7 ?8 G @/ y! a5 e- (entupd ename)& G! K3 d7 l3 [9 b2 a. \
- )6 R6 u8 \" j5 P% M( m3 u6 n
+ N7 Z5 H8 M4 q5 P- ;; Increment vertex. Set tile values to next vertex
0 ^" \1 m/ v8 s3 d - ;;
E7 w& w; T8 [ - (defun next_vertex ()
# Z2 d$ [5 o) p( u5 i - (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")+ L* |, k) c3 N5 C$ i
- (progn, C/ ~0 Y* }; b" u2 [+ {0 h
- ;; If the counter reaches the number of vertices,$ J; Q; c* j1 r
- ;; roll it over to zero again.$ V/ m: _0 r- U, F3 D( b0 { L) f
- (if (= ctr (cdr (assoc 90 vlist)))+ \. P* I" Z* t9 t5 ?
- (setq ctr 0)2 V+ r/ B7 _* g0 n
- )
' Q* h. k: K" y8 u) G2 T - (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))
: f, J9 K; B' {; l5 ]$ ] - (set_tile_vpt pointype)1 p2 U7 R4 r/ u" f% ^# K
- )
/ {. G P0 k7 k4 p3 L - (progn {8 n6 M2 B+ G( j9 \ t3 [
- (setq vname (entnext vname))5 j7 Q4 M2 x$ j+ F9 J) x, H
- (setq vlist (entget vname))3 C; {7 K. s. [. P: P6 E2 ~
- (if (= (cdr (assoc 0 vlist)) "VERTEX")4 I: F' r# v. t6 L
- (progn$ S9 O, M* j: _2 x5 b) P, u
- (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))
1 }: g1 S$ J. r- I) r F3 a - (set_tile_vpt pointype): ?/ J3 s6 n! k; V
- )
" }2 W$ z9 L2 h- |. |8 H - (progn# \8 a- ~1 |- {% k$ C
- (setq vname (entnext ename))6 w( M7 q/ W. J/ `- |
- (setq vlist (entget vname))
! I- }2 _6 a) \1 [; b( N- S6 ~ - (set_tile_vpt pointype)7 o7 d4 @% |: t6 E+ D/ o
- (set_tile "ctr" (itoa (setq ctr 1)))
x1 |- \7 R9 S4 g& R9 w - )
6 R5 u# d8 S, [: @ - )
9 H0 \# n0 t& o3 F* A. l - )
) Q0 B2 }( Q- E6 I6 J( n - )
8 U5 w) }5 u' g8 o, Y$ `& m" z, e - )3 P( t( w, Q% \; [' F
- " v3 H8 ~( T5 A0 ?* E# P
- (defun ddpline (/ oldecho)
3 a, q3 |" d6 v, S( B, \ - (if (not (new_dialog "ddpline" dcl_id)) (exit))
0 v: e- i9 v4 O$ K7 O5 Y - (set_tile_props)
3 L3 g( u5 ~/ u* X, O' F - (set_tile_handle)( M* T& x, s' `0 R# ~3 d- |1 N1 t2 j
- (setq bit70 (cdr (assoc 70 elist)))
: b' ]$ H; q, x g - (setq bit75 (cdr (assoc 75 elist)))1 D" m c0 J- _; E
- (cond
, N- s' z* R- t/ ?# m' O1 G, t# M - ((= (logand bit70 8) 8) ; 3DPOLY
/ N5 W. n; W: _ - (set_tile "ptype" (setq pltype "3D polyline"))
' g, x1 | l/ e$ c, ?! |- i - (setq pointype 0) ; WCS or ECS point values5 a- `- l! n9 S# _ K% [
- (mode_tile "fit" 1)# F! H0 R' R6 z- R7 b
- (mode_tile "mesh" 1)
% H- E% S7 {2 `& W6 z - (mode_tile "bezier" 1)6 h: L9 l" H% L a3 o& G
- (mode_tile "ltgen" 1) b2 M9 I9 I) i
- (set_tile "none" "1")- k: q9 Z6 a; V4 ?) c( |
- (set_tile_closed)% u0 {) B* ?' ?( W, F; S' q0 ^
- (set_tile_fitsmooth)
5 O6 T3 S4 J( `# \7 W - )8 n, K, ~ \1 h J+ G6 x5 P2 \* y
- ((= (logand bit70 16) 16) ; 3DMESH3 q2 f9 i' V* d B1 i5 Q0 U5 R
- (set_tile "ptype" (setq pltype "3D mesh"))
# B0 q7 }0 ~) H v1 N - (setq pointype 0)
" x8 ^7 h0 o' r - (mode_tile "pline" 1)
6 L2 x* Q' A' K7 @ - (mode_tile "fit" 1)% ]: w' k% C% r& V/ h
- (mode_tile "ltgen" 1)2 z8 L; d9 C( V. N- u' G7 {, H; o
- (setq m (1- (cdr (assoc 71 elist))))
% F9 Q9 y% }- L( _5 F t, V - (setq n (1-(cdr (assoc 72 elist))))4 @- O: ]& |9 g% A T3 b/ l
- (setq u (1- (cdr (assoc 73 elist))))
0 [+ K+ K$ N0 K - (if (< u 0) (setq u 0))
, h, Y+ i7 O% Z% R - (setq v (1- (cdr (assoc 74 elist))))% ?7 E+ U% d. `! [ _ ^
- (if (< v 0) (setq v 0))9 d& ~' L8 R" s: l1 ?' a0 _
- (set_tile "m" (itoa m))' \4 D; d2 `" R) e
- (set_tile "n" (itoa n))
1 g. |3 d2 f) V$ y1 U* t' C - (set_tile "u" (itoa u)). f, i6 B# i' T5 j
- (set_tile "v" (itoa v))
7 x; g( o0 P0 w/ y* Z - (set_tile_closed)5 d7 |: U7 l0 H+ V; j( ~* d% P
- (set_tile_fitsmooth)3 m6 v9 n- }$ D6 T% o
- )
8 ]) z+ Y7 l$ x9 w- \ - ((= (logand bit70 64) 64) ; POLYFACE MESH0 |8 q1 ?3 P' k6 V5 @& B5 h! ]
- (set_tile "ptype" (setq pltype "Polyface mesh"))
$ b: V7 n( O8 J4 v' E, Z9 l - (setq pointype 0)
+ E, |7 b3 n' [+ J: W! s4 {/ Z. G& F - (mode_tile "f-s" 1)
' [. R% z. m. A+ ^ - (mode_tile "mesh" 1)
' M: ? f2 d4 H! ^/ s0 J# b. o: Z - (mode_tile "pline" 1): g. h6 y! Q5 v9 G2 S- ]
- )" i# _# I# z: X: i/ p6 z, l" |2 _
- (T ; 2D POLYLINE" r; e4 n2 }0 X+ T' K' K
- (set_tile "ptype" (setq pltype "2D polyline"))
* ~1 @; g5 @7 k! L: F - (setq pointype 1)
# b* h/ U2 S& S6 v3 F2 w& l# F - (mode_tile "bezier" 1)( l! z: A4 I" c: G8 [* s
- (mode_tile "mesh" 1)
) a2 N/ |9 G+ m. O& {6 T - (if (= (logand bit70 128) 128)
& c9 s8 i- u4 o5 ]4 B+ N - (set_tile "ltgen" (setq ltgen "1"))
$ l! w+ j U! x2 S* ^$ Q - )0 `2 e" `0 e9 A, `5 J1 { x& {
- (set_tile_closed)
+ ^. }+ y3 h4 ` - (set_tile_fitsmooth)8 T1 S* N+ T, c4 e o
- )
* O9 V/ w6 `3 p+ m& |/ J - )% K: G! B' o5 M2 F8 k7 p
- 6 e- X1 ~, a8 y {: ~8 g
- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
* T6 U' i% g& G3 T, i - (progn
' m5 ]( j d8 K }! N - (if (not next) (setq vname ename))
: T" b0 A% {7 s - (setq next T)" _4 g& @$ \3 F# I; s7 Y- |7 w
- (set_tile "ctr" (itoa (setq ctr 1)))
6 t0 f/ h+ U n# b0 Q - (setq vlist (entget ename))
1 t& e! u. @% i$ X2 D; V - )' t8 Y; H2 ]8 S% C
- (progn0 F( `( ?+ n9 ]1 W8 t0 r5 [1 A
- (if (not next) (setq vname (entnext ename))); A/ _2 t' N9 M8 r0 @8 G$ I
- (setq next T)
/ D2 E% u3 h7 j' I r4 w5 } - (set_tile "ctr" (itoa (setq ctr 1)))
0 c( o3 P6 a! W3 D - (setq vlist (entget vname))
2 p# z9 Y p; R$ W - )' @* X9 H/ v' e' a7 `$ k* B
- ): {* z Q0 \+ X- i7 K
- (set_tile_vpt pointype); N5 ^ w6 Y& [. x
- ;; Define action for tiles [4 x1 M$ T m
- (set_action_tiles)! l3 y: [7 e3 T) f
- (setq dialog-state (start_dialog))
, }( p: l1 f: f9 L
/ `, F4 h9 d$ l. E. i/ Q1 c- (if (= dialog-state 0): c- E) `- A/ D; [ \
- (reset). `+ z& K& Y% v z
- )
+ F Q' e. J- q. I, y4 g - (if (= dialog-state 1): ?' N6 J8 V. m7 q$ R' l3 U; R' V
- (progn. }6 w0 |* o+ y; y
- (modify_polyline)- u7 q* n3 l) H3 b( W- S: B
- (if (or (= pltype "2D polyline")
; f$ @. G# z' s' {3 c) u- K - (= pltype "3D polyline")
7 Q5 o9 v& b5 Q* A: e/ e6 U) _& r - )# A$ w! C) E6 X* L7 y
- (progn
, K$ k _# P8 N. O - (command "_.pedit" ename)
$ S4 C- S+ _3 \: v4 G3 P9 c% I6 q7 v% W - (if (= spltype 0) (command "_d"))/ J* a$ ]7 K4 J0 @7 z
- (if (= spltype 1) (command "_f"))
7 e1 \6 D" H; V0 I - (if (or (= spltype 5)5 [, c+ ^9 j# X( E3 A& z5 E
- (= spltype 6)& @9 V" a, y& e6 V# D
- )3 W7 A; @2 _* \7 Y6 X+ U
- (progn: e5 b9 N: S1 s2 h
- (setvar "splinetype" spltype)
! x% s3 Y: k4 z8 ^ - (command "_s")3 w0 I/ p/ e% d+ _# p3 a5 A
- )2 F2 m2 p( ]2 \- R, l
- )( |; t- V! Y6 m
- (if (= closed "0")
8 u( X S8 r3 \+ b - (command "_o")
g3 G+ I1 I- B, f - (command "_c")
$ V6 L5 C5 F: h/ ^, l - )2 V# C, _9 d8 r! r+ ]
- (command "")
% ]: A: n s% D0 ] Z - ) |8 w5 c5 m a$ L" R V. N
- (if (= spltype 0)8 K. x' `: Q3 P' j- x4 v! Q0 c9 r
- (progn
) r- ]/ r } z. f4 ]( E% T: c% n - (setq oldecho (getvar "cmdecho"))3 j0 c9 X- i, G4 `
- (command "_cmdecho" 0)* u. t; v5 v2 U% v) y
- (command "_convertpoly" "_light" ename "")
: T7 g7 K) r6 B4 `$ R K3 d - (command "_cmdecho" oldecho)! R1 R+ _9 d. v
- )4 }# [- n% b# Q6 i0 J
- )% k6 y, D& B0 k+ W7 L% n. I' B
- )% F) k4 h$ ^% y V- s
- )5 s' W% b4 V; x# X
- (if (= pltype "3D mesh")
8 z6 ]4 Z3 V, ? s, c! w4 G - (progn
# o& Q1 `: y& }& t - (command "_.pedit" ename)8 ? K% I5 v- r7 } F0 n
- (if (= spltype 0) (command "_d"))( v, V( W: t( f# S1 D
- (if (or (= spltype 5)! A& y( v$ {$ }' N- r" I
- (= spltype 6)
8 W1 x8 K+ ~. f- i7 @1 ` - (= spltype 8)
$ u7 ?5 G: I8 R3 W/ I' a - )- U9 @& D; }. F) S5 G
- (progn
- t, f8 C! V! t3 Z# }& \ - (setvar "surftype" spltype)
- O" T+ \0 b3 n* w6 d8 w - (setvar "surfu" u)
, E# d' W( X0 H; j9 {2 g7 r - (setvar "surfv" v)
$ t% L0 a- s& [( N - (command "_s"): _+ n9 S0 Y0 F2 q1 ^6 R
- )
! L, d7 Z& m' K1 E4 X - )
/ l. @. p/ [$ X5 }2 J# Z1 d/ r - (if (/= closedm old-closedm)
9 u8 s# i7 O1 ?! ` - (command "_m")
+ Z1 O+ h4 o2 ^. {5 | - )
D7 V7 q' s" L, W% ^5 {) @9 b - (if (/= closedn old-closedn)
4 i% ?# l) z; F/ |* N7 _* J - (command "_n")1 V( ]0 c P& k" V, x* x! {
- )$ B1 N" o, [- \
- (command "")
' ~" _0 j! Y# M5 P) n - )' U' s1 y" O% `. Q! n" R# V* J
- )
8 c2 l! a6 s1 U$ f/ l - )
% ~7 r' n: w" p) ?7 a) i' E - )$ o( S7 _$ t2 ~2 x/ H; i& j
- )
5 D, ]5 n* m) b/ Y6 b+ F% ?$ Y - ;;
- h; |; W) _/ P - ;; All the spline data is contained in a single elist. We must do some7 N3 ^# l5 Q+ l {: K- U3 }
- ;; tricky list processing to loop through the elist in order to display. B e" ~/ Z- m0 i: H4 n( [2 Y( O
- ;; all of the control points.8 R2 f0 ~9 W" V9 c
- ;;4 k- n& B) D/ U) g' B- x
- ;; The structure of the elist is different for rational and non-rational: d* W+ s5 y6 i! K5 T9 m& M8 C
- ;; splines. Therefore, we check the rational spline flag.) `$ I) |. u7 v" ~) d" K
- ;;* a( k: Y' Z! b' A$ F
- (defun next_cntl_pt ()
& ~$ W+ o3 i3 j3 `) S+ C: h$ B - (setq elem-no 0) ;; elem-no = element counter+ J7 u$ ^$ z/ ~
- (if (= first-10-time 1) ;; If first time, find location of first
3 W& |# {; [; O. J* W) G5 h - (foreach list_item elist ;; cntl point element in elist
" b. H; n, w' [: G - (progn
6 ~0 c, W$ n$ E! ]1 u9 U - (setq elem-no (+ 1 elem-no))
$ U8 _3 F3 l; p) E( T( d - (if (= (car list_item) 10)4 ]( ~6 x/ }/ ^; C
- (progn
" b# G( l8 H" A/ U3 N7 y: P' b - (if (= first-10-time 1)
y. m+ U% ^. R3 s) p) w - (progn
5 ~ o& k, v; Q5 R' y9 e - (setq first-10-rec (- elem-no 1))! C% x, M7 h9 Q% m
- (setq first-10-time 0)
$ G4 ^* R6 k1 ?% K - (if (= rational_spl_flag 1) ;; if rational
: S* g7 G$ ]* R. E; `$ @ - (setq cur-10-rec (+ elem-no 1))
! G G+ X8 k0 [1 A2 R - (setq cur-10-rec elem-no)8 L/ O) B9 x; L' Z! p
- )5 i' d1 K$ d) s' N9 }$ T P
- )
4 U# w2 R* f4 D1 M* w4 z - )2 X$ H+ \6 s8 i
- )
7 V9 g# e {8 q5 R5 y( f. L - )
; T! J3 o' ~) ^) l - )
% |6 x, v7 F# w, J j3 O1 | - )$ ?6 R1 V) y) v& C0 o6 R
- )
0 W# @0 W4 Z$ o: x" C9 s: F - ;; Now we know the location of the first "10" record; it's stored/ @0 y% L' _7 S+ f7 r
- ;; in first-10-rec. The first 10 record was already displayed when2 ?, \' t: A5 M1 g9 q$ A% T
- ;; the dialog first came up so let's display the second one when3 Z5 u' V( T# T# S) j
- ;; the user presses the "next" button (the first time through).
2 H5 o' Q4 {6 M: a; f& S' }. p - ;;' B( _; l- A! Q# R5 E u
- (setq temprec (nth cur-10-rec elist))
. x+ |6 N6 g! k2 Q: m4 P v - ;;9 w2 F! C6 b- y
- (if (= (car temprec) 10) ;; if 10 record! a2 F4 a% P, u; A
- (progn
9 `% k0 [% x3 R" ] - (if (= rational_spl_flag 1) ;; if rational spline
% F& T2 s7 K+ A( K" s; z - (progn
8 N+ y. A4 W7 U! [" b, \ - (setq tempweight (nth (+ cur-10-rec 1) elist))
" K% |6 F/ L0 O3 ?: {0 D, _# @ - (setq cur-10-rec (+ 2 cur-10-rec))
) s, j& F3 H& Z# Q- e - )2 y6 D) V, [/ j) J* h& I3 t( a, v1 ~
- (progn ;; else- q( c# j6 e0 D5 R0 l
- (setq cur-10-rec (+ 1 cur-10-rec))! d9 Q% B5 ~' s. M# y/ _
- )
: m2 i; ^1 r' G$ C) ?( |5 b$ B - )1 Q: _+ g* q$ h& w
- ) ;; end if rational spline
3 j2 }4 [/ z% n0 G% D' S* }$ W' | - (progn ;; else reset counters
6 ^: V+ h* {6 n! h9 ~8 ?3 q - (setq temprec (nth first-10-rec elist)) ;; get 1st 10 rec( o- u; h( g1 `% N9 k/ v9 d2 n- X
- (setq tempweight (nth (+ first-10-rec 1) elist))
! Q/ a% U, r& E# Q8 H" A/ U$ Y" W - (setq cntl-pt-indicator 0) T( {7 M* @$ M* O
- (if (= rational_spl_flag 1) ;; if rational
$ t* Q7 C- J- ~% A7 u+ |1 ^ - (setq cur-10-rec (+ first-10-rec 2)) ;; point to 2nd 10 rec! {1 Z9 e0 G5 M9 z5 y; @/ x
- (setq cur-10-rec (+ first-10-rec 1)) ;; point to 2nd 10 rec3 H6 h) d: M& E: a. C
- )
# [6 _" |1 @; C7 f/ v* i# S/ B$ r5 D! K - )2 U! T# V9 S( A1 A1 U% e' ~
- ) ;; end if 10 record
3 D/ ]- Y; s b! u1 ~1 G
' \! \+ h$ _/ y% R R# ?- ;; Display cntl point, weight and ctr. Increment ctr.; Z- V* V' o s. B
- (setq cntl-pt (cdr temprec))
, J, e7 {/ x( l! @2 L/ D/ M1 ~ - (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))
1 l/ T j# T( }3 ]. @+ S! n - (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))
/ K8 i" ?$ I" A# ?1 ?! \( n' l. L - (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))3 {" D3 _: ]/ Q+ } y4 M0 n
- (setq cntl-pt-indicator (+ 1 cntl-pt-indicator))
* Y7 Y2 i$ s; A3 W - (set_tile "cntl_ctr" (itoa cntl-pt-indicator))4 j2 I% }( S) J$ M- s
- (if (= rational_spl_flag 1) ;; if rational
0 c" [ P1 e6 \- C ` - (set_tile "weight" (rtos (cdr tempweight))) ;; disp wght
/ l4 f! V/ d6 I0 u( j" m2 [ - (mode_tile "weight_text" 1) ;; disable wght" w& r W+ s, u
- ). I% ^' B/ G- b
- )3 p* b( o X8 ?9 E: N3 l
- ;;6 p) @0 v1 m+ A2 m+ H
- ;; All the spline info is contained in a single elist. We must do some- X, q0 {: I1 P% x. t- [5 ]3 y$ U6 [
- ;; tricky list processing to loop through the elist in order to display; i6 a) I* N1 T+ i( I6 L
- ;; all of the user data points.3 x7 h/ ]2 j, M, N/ e8 a7 H0 k s* b
- ;;+ @: F& j! M1 D( ]6 |4 r1 s1 N$ X
- (defun next_data_pt ()
6 R8 U" K) ^( {' V - (setq elem-no 0) ;; elem-no = element counter
. A& L% v- ]# S+ G5 O0 ? - (if (= first-11-time 1) ;; If first time, find location of first
f( t# a9 |4 v& r" C" S - (foreach list_item elist ;; data point element in elist1 X% T: d. @2 @; k6 i
- (progn/ \: D2 g+ e* b
- (setq elem-no (+ 1 elem-no))
2 N" H7 N, `; g2 t7 H: \- V - (if (= (car list_item) 11)
U) m2 x" Q6 K2 O# j( f+ B, @( Y - (progn7 a& \ N; c: d$ q! J
- (if (= first-11-time 1)2 f9 U4 l' v8 M% E0 H6 d/ N1 n
- (progn2 U$ W2 H8 j- J: w I
- (setq first-11-rec (- elem-no 1))- L% k' ^3 c' v
- (setq cur-11-rec elem-no)/ O% ?9 l' _3 n; n9 j
- (setq first-11-time 0)# }) s- [% @ ?
- )( M+ v% @3 C% ^* `3 s
- ), V; Y2 P @- h& ?
- )
; B8 z& T, Z1 y6 [) |% ^# Z - ): J/ Y) f# O# K+ b6 E. P& x# D
- )
- e# s( s/ U* C, f2 S; B5 a - )0 _4 m5 C- ^5 U4 n
- )/ t$ B2 i5 s- {4 e
- (setq temprec (nth cur-11-rec elist))7 J) ^; g% x _: i
- ;; If it's not a DXF "11" element then we've gone past the last- g/ ~* ~6 S. G+ y, w
- ;; "11" element. Go back to first "11" element. Reset counters.0 E7 E9 @! a, d- H F
- (if (= (car temprec) 11)) m2 v! C: t8 f& o4 ]0 d6 D
- (setq data-pt (cdr temprec)); u4 Z' B! i: }3 v6 e! s$ @/ Y( W
- (progn ;; else
# q6 v4 d3 [1 z& Y# S: P# a - (setq data-pt (cdr (nth first-11-rec elist)))* _) [; B$ O- Z( H7 i
- (setq cur-11-rec first-11-rec)3 p) e- R8 [. F" `3 ~3 v* ?
- (setq data-pt-indicator 0)
/ g) u# y# y: W. t - )! S* d: {" J# [ g, J+ t
- )! q; f2 h: |3 L( ^5 u4 m, u, F
- ;; Display data point and ctr. Increment counters.# g5 X& T3 e1 A2 p8 J
- (set_tile "dxtext" (rtos (setq x1 (car data-pt))))1 F5 I# J* ]* F! E) A2 ^
- (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
* D. p4 c+ S% o, {* Q - (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))& I$ V2 ~2 c, S1 t9 q) l
- (setq data-pt-indicator (+ 1 data-pt-indicator))
0 y' n' t/ z( C' l - (set_tile "data_ctr" (itoa data-pt-indicator))- B: g6 ?! f0 W0 ?( T+ ]( U& E* r
- (setq cur-11-rec (+ 1 cur-11-rec))/ P5 L4 ^4 c6 m: {3 a
- )
. H) M( S; H8 H/ T - ;;6 D( @" G4 y1 V
- ;; Modify SPLINE
0 }$ j, o* K/ t" ?" K. O5 B7 a) U9 p - ;;
+ x; k6 _* n3 k; x) q. a: E% s: H - (defun modify_spline ()0 O& U5 _, K0 A( M( H
- (modify_prop_geom)
/ f6 _% Q U) @9 |% X) r - (entmod elist)
1 E' w- Y! P0 O" Z- q9 X - )
! w* f; a F- Y0 c g4 i- V3 b - : Z/ [1 d: y* }+ ~8 O2 H
- (defun ddspline ()" p2 j$ t- ?% L( T* v. b t
- (if (not (new_dialog "ddspline" dcl_id)) (exit))
, y l& o" D! s$ o7 G9 x - (set_tile_props)- f7 o: E4 b, o8 O
- (set_tile_handle)
- O5 ^7 g7 i9 [4 F1 E - (set_tile_spline_props)
1 F4 a& L" C! J - ;; Display first control point% R, Y1 c: L2 f% `9 R
- (set_tile_cntl_pt)4 I8 Y0 P: q B7 O& M
- ;; Display first data point
. W4 E- c* V4 m* R9 U: _ - (set_tile_data_pt)
; j/ Y* n: D4 z' |5 z - / J# h, Y9 z) f
- ;; Initialize flags to indicate first time through the dialog.4 S: Y j& U; ]3 F. d" J
- ;; For control points and user data points the "next" buttons6 B5 u* w D& p* c6 {3 x9 [" _
- ;; in the dialog call the appropriate functions.
% i$ D' v+ D% N; y - (setq first-10-time 1)
$ h R F1 S1 @8 x% I, T5 t - (setq first-11-time 1): l& \6 w3 v' h: F
- ;; initialize control point number counter
+ F1 n5 i9 Y2 y' P - (setq cntl-pt-indicator 1)
4 z! w: O6 x$ [' E - (setq data-pt-indicator 1)
! ^1 E! O, f. C6 ^7 R - (set_tile "cntl_ctr" (itoa cntl-pt-indicator))
* F \1 W+ a: ~9 `8 v q - (set_tile "data_ctr" (itoa data-pt-indicator)); ^# K% \0 S2 h( x) t
- (set_action_tiles)
6 t( Z, c# l$ n: B3 S - (setq dialog-state (start_dialog))
) \$ h/ v: v8 Z, ?6 w b* [ \ - 2 ^9 @5 p _1 f) H/ L" B% I! A6 G
- (if (= dialog-state 0)
4 s* K( U n* j3 W6 M - (reset)
5 F( t) o& o$ S* z - )# [& \" O! r. ^: o" I% H
- (if (= dialog-state 1)
% B* x0 U9 Z# ^ - (modify_spline)
+ i( w1 m5 Y4 x: V x# X6 A5 C - )
9 J; _0 e& H/ M - )
" W9 X) m2 K) Y/ L. d7 p) Q" g - % f- p5 r1 a- r
- ;;
4 W+ Q/ W/ g5 }5 Z. ^+ Z. w - ;; Modify DIMENSION9 n! f( D0 E8 D5 O( K$ l
- ;;
( `# N4 g9 O2 y& p - (defun ddimen (/ dtypebit blkname bename sublist a stname n dimtbl- _$ L9 O5 b. y, `1 F
- dimsty dimlist dimtext svtext dimovr sv_dvlist stlist
# C! q, s! C; P; x0 _5 F& I) n - dimtype dimsvcurset)1 I) Q9 D- v9 D1 t" N2 r
- (setq dimtype "DDIMEN"
3 T+ |9 q: `/ Q - dimsvcurset (ddimen_dimsty_restore)6 V0 U% r8 M, C* \! d: R; }
- )
1 d( O0 a7 ]$ O. q, A% b - (if (not (new_dialog "ddimen" dcl_id)) (exit))4 v$ g) }$ G2 t; j; A
- (set_tile_props)! }: M# p" ~& L0 R p0 p0 q: ?
- (set_dimen_props)/ w' d4 c! c0 P% v q# X
- (setq dimtext (cdr (assoc 1 elist)))2 a$ h* x. g3 m9 V9 v. j6 Y
- (set_tile "t_string" (if (= "" dimtext) "<>" dimtext))
4 N6 F+ X! R# j- u - (set_tile_handle)
; w7 I8 w" f7 _$ Z- E" Y( v0 z! ?- ? - ;; Define action for tiles/ A; h2 y& e- s8 F+ i% \
- (set_action_tiles); S/ I% ?% \% x G D9 A
9 N. t/ j: ?) a* p* e- ;; Set initial focus to text edit box.. j; b/ q2 E [( M
- (mode_tile "t_string" 2)% R+ ^* F' T: z, \( @% U6 ?
. R( n& \6 H8 U- (setq dialog-state (start_dialog))
0 \" }3 L5 K# ~& F; Q - (if (= dialog-state 0)
% a0 C2 y ?6 p - (if (= ddimmt 1)
& o( h8 s& h' r5 w7 a% _ - (reset)
4 c8 X8 v0 D9 U# Q6 d3 D- } - )
; Q, x2 b+ d( q8 J$ w* v6 y - )
9 d7 M+ A# `9 e8 t - (if (= dialog-state 1)& J6 J' U8 {/ t% g( {
- (progn F. p/ g1 ^* M* U7 d# W; c
- (if (/= dimsty stname)
, |+ n# ?! l/ [4 c4 k - (progn
4 ?. v; \/ _) A4 R - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case9 ?) k: H' P, J
- ; doesn't have it.
& r1 ]2 `! s0 j& o+ ` - (if (null (assoc 3 elist))0 u1 A+ N" d. s: c1 S* j
- (setq elist (append elist (list (cons 3 dimsty))))( C' h- T' z6 x% S
- ; else just replace it.
4 W9 M1 e: w8 P7 j" Z* g1 Z ^ - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
+ N6 j8 x' C) @ - )
8 C' n* H& H" n9 b5 z - ; refresh sv_dvlist with new dimstyle.
/ i5 N0 U0 Q+ Y+ d" V. K/ M0 c7 q - (setq sv_dvlist (tblsearch "dimstyle" dimsty)); A& ?1 C! o% A" ]+ y9 j
- )
8 }. n O' U; q8 A' P1 x - )
0 T+ u5 N l. C* K8 l - (if (not (null dimlist)) ; attempted to change dimvars) t( g- J4 _$ ^5 u3 h% k5 J
- (ddimen_complist sv_dvlist dimlist dimtbl)
) p3 m$ Q, L& ^ - ) v; I* y! Y5 E) b
- ; Modify dimension text
9 H+ A2 |. _, F& X9 ^ - (if (/= dimtext text)
% {* K4 A# F% _7 B& M1 p8 b - (progn* C5 U' P* B3 t$ E
- (setq dimtext (if (= text "<>") "" text))
& l9 S# d& D& a! W6 U5 ?# d9 z - (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))3 I3 u1 b1 p% D! h* X" Y
- ); S6 }! N6 L( i" _' r5 s1 F
- )
# F( N0 L" z& P' a - (modify_properties)
2 _8 \0 ]1 N3 ]1 u, y- a% }( _) ? - (entmod elist)
# Q3 I2 W9 \, f - )
% l" O; ^, I& F& x - )
: X! o f" X9 s: M0 P2 E5 G/ j7 f$ p - (if (= dialog-state 4)
0 ]' K' m0 m) R7 T0 Y - (progn
6 |, _* y# s6 ~4 L |# o! U; ]; V - (setq ddimmt 1)9 D9 \- n/ @0 [% f8 N( C. f3 ~) f m
- (if (/= dimsty stname)( [. t8 x0 O) D2 l1 a9 q
- (progn3 b$ R5 }+ t3 a, t
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case" U2 M/ t; F2 }, s) Z- U% }% F
- ; doesn't have it.
M" E$ l9 z% {( o- f' r, G! H - (if (null (assoc 3 elist))% M2 R# D; I0 _" H4 r
- (setq elist (append elist (list (cons 3 dimsty))))- U3 y0 |: G+ ]! l" t: O
- ; else just replace it.
7 D6 x9 V" l" Q3 M7 z4 ]; h7 h - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
- e7 m5 j" h% W, D - )
$ _0 N9 v/ ^; V5 C - ; refresh sv_dvlist with new dimstyle.. X/ \1 [4 w! A
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
+ e8 Z- [" U: h/ ~! \ M - )
( ^8 d# F8 Q/ Y5 T# m. g - )! h2 y/ P: h! D' h) m
- (if (not (null dimlist)) ; attempted to change dimvars
! Z0 h4 j0 E! ~& v* t: n# ]2 B% D - (ddimen_complist sv_dvlist dimlist dimtbl)
7 E8 x3 u5 A& U+ J: T! Q - )
0 O0 E. f' j' A - ; Modify dimension text
/ k3 [% L7 o1 S& |& V: X - (if (/= dimtext text)
' ~) D i/ A; h. s& O8 o - (progn
% y/ ]1 ?8 z8 m p9 O - (setq dimtext (if (= text "<>") "" text))+ z L2 L% J( F$ E
- (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))7 X p9 e3 [4 F/ e
- )
, Y: ~" C U3 \% X0 B* n% x+ ` - )
$ F/ a; T# U. \' N, L - (modify_properties)! s4 l4 T. V. z w
- (entmod elist)& `+ @) _+ e! @% L9 V9 p h9 [& R- Q
- (safe_ddedit ename)) ^) r$ f* @1 ^ {
- (setq elist (entget ename)) z3 n8 P9 t+ A4 Q" l! N
- (ddimen)1 Z- u; u2 d* _! O p
- )% P; Z! }0 o1 k0 x; }! U
- )( o5 Z% x4 B/ \( h
- (ddimen_setvars dimsvcurset) ; Prepare to exit
' r' M: v! n9 |* S' J7 R& Y# r - ): w- `5 }$ Y- g$ Q G
/ ~ U1 v: q: r/ X9 s- ;;' d) Z: a: Z, S
- ;; Modify TOLERANCE
( |) \# _1 w; n9 { - ;;
; v1 @' S. }2 J9 U) i: Z - (defun ddtolerance (/ a stname n dimtbl, X- K) S& i' M) o
- dimsty dimlist dimovr sv_dvlist stlist dimtype" l7 D) c b+ |- e! T& S8 V9 }4 G% z
- dimsvcurset); m/ D$ u5 }3 T' \
- (setq dimtype "DDTOLERANCE"
- D# }4 E" \. f4 K3 L/ S% W - dimsvcurset (ddimen_dimsty_restore)4 E K; D, n* C% w1 N7 O
- )8 f0 e( Z7 N; p# `8 D; I2 y0 k9 u$ W
- (if (not (new_dialog "ddtolerance" dcl_id)) (exit))
' B l# ?; [4 m* K# Q - (set_tile_props)
% h* u( j6 h. |) X( ^ - (set_dimen_props)
8 B* c+ m- h* a6 z3 Q - (set_tile_handle)
% b3 Q7 o9 v5 t# p) S3 @ - (set_action_tiles)1 s% M1 o( q. C- g# L2 n3 ^
- (setq dialog-state (start_dialog))
/ J. D. Z$ G1 m @1 U9 F - (if (= dialog-state 0)
* e e" }- V) P# Q$ H6 s+ B# j5 H - (if (= ddimmt 1)% U# x: W5 c$ U/ D' O6 d
- (reset)
: N8 Q2 L6 o; d' I; t0 J- @: M - )
/ k7 h- ~" D; S ~3 N X0 A - )
/ y4 }# O1 ~* o/ M! s9 s1 c - (if (= dialog-state 1)" {, K! m+ d; ?! X1 ~
- (progn
+ h3 ?% n) M) ]& N/ @5 {% u - (if (/= dimsty stname)
1 S, G& a1 b3 `& V& Z6 C5 L - (progn! d( z \9 B8 T8 o
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
: ~' j* ^0 F7 j/ |1 N5 ?/ L. ? - ; doesn't have it.$ _ Q) C/ e' y; D* j8 l
- (if (null (assoc 3 elist))
$ a: [$ ]4 v u" R4 I) u n - (setq elist (append elist (list (cons 3 dimsty)))); J2 d4 v4 e8 e$ B5 X7 x
- ; else just replace it.# b" X e4 h4 D7 X
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
* ]* ^5 A9 J. \1 l - )2 R4 D3 {4 I* r' m, I$ }3 ^7 W
- ; refresh sv_dvlist with new dimstyle.
" E6 Z! a1 ?) I7 B - (setq sv_dvlist (tblsearch "dimstyle" dimsty))% W. @4 r: i6 P1 v/ k$ K4 l
- )5 W. Q5 |' U b8 T; t* ^
- )
. i% y& {7 g/ @- U - (if (not (null dimlist)) ; attempted to change dimvars# k4 ]3 v8 Y/ p' }0 M3 W
- (ddimen_complist sv_dvlist dimlist dimtbl). j3 ?# C0 D* X& n) @+ N" d
- )2 \' g* n0 p$ d! L
- (modify_prop_geom)
/ w" X' T" j& q8 O - (entmod elist)
9 k+ }" ~" [+ E8 c9 \6 v; E - )
% `' A. m9 Y4 F, E* L$ { - )6 O4 E5 D$ z) b5 X
- (if (= dialog-state 4)
7 L& L2 T' s4 i$ Z4 } - (progn
+ w, m" E0 ^& _" k - (setq ddimmt 1)3 }* Q" G* y: [# I; S( @# b( \9 u
- (if (/= dimsty stname)7 T: y, `; h( H) N+ i% w
- (progn4 r" l% n: j2 X$ D e* Z
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case/ h5 z3 {+ G/ z' R7 C# L! G8 M
- ; doesn't have it.: X7 `8 T) ~5 {
- (if (null (assoc 3 elist))
+ M9 A7 P/ J! n# W' h. o - (setq elist (append elist (list (cons 3 dimsty))))0 l- D4 |$ n5 W
- ; else just replace it.
, p% t" O5 p$ J2 z P: o - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))3 U9 {/ t! D; ?7 j' c0 \" y
- )3 A* {( \$ y; \+ v, L
- ; refresh sv_dvlist with new dimstyle.1 u0 L2 [, J' ]* P. S* M
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))+ [% M9 w ]: g7 E' h6 T7 l
- )& G6 A5 y- X+ a/ I7 {# \
- )
7 u" V @2 |" q: u3 W2 x/ n - (if (not (null dimlist)) ; attempted to change dimvars
' m9 h; f3 R. C. C' O - (ddimen_complist sv_dvlist dimlist dimtbl)
9 R$ f; [8 @, k - )
/ H! u0 q9 W+ ^/ R. d9 \ - (modify_properties)9 p# A# e* L6 g% x+ r# P- O" u
- (entmod elist); H' e$ Z" B& g1 I$ D
- (safe_ddedit ename)8 L; p9 {3 v0 ^& o3 R1 ^
- (setq elist (entget ename))
' ?, ~6 M* i5 R - (ddtolerance)7 V+ b( Z) _$ E2 q3 }! L: U
- )( e) P3 X! b; L
- )
* W* O+ s4 w4 Z5 G9 @- u7 O - (ddimen_setvars dimsvcurset) ; Prepare to exit
" p8 \4 N# r1 I8 P( C$ F - )& d% t2 [9 c; m B! J0 y
2 Q8 r1 D0 T; A+ a, E, z' C2 V F- ;; W! ?8 N) {& p$ s5 i, D! ~: c
- ;; ddimen_dlg - jump to ADS ddim module: k ~! a5 m% x: ^, j1 L& O
- ;;
4 S6 g0 O) x3 g% m& L - 7 }* N) @) c6 {. [ U
- (defun ddimen_dlg (dimtype tile dimsty dvlist / dimlist)
$ u z0 U. [8 ~. l" B* o
4 U1 D6 x; t! `- K* d/ e- ; Jump to DDIM with overrides if any.
# T: u3 n& _% k - (cond ((= tile 11) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Geometry
% ]! F* e% E* O' | - ((= tile 12) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Format* Q% c2 E; A% C
- ((= tile 13) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Annotation4 w0 `4 S1 K! J
- )- p d* p$ m5 k
- )1 u( K3 t, y5 f* F
+ W( }' d6 R2 x1 a$ o& Y1 f$ I8 e- ;;' L% ?) A4 c3 V4 c! B
- ;; Dimension variables updated are stored as overrides.* z8 ^& C+ w7 U# E( _
- ;;
% s1 ]2 B- d; ~6 m8 M* H/ d - 6 T/ C* {" z6 n' G( q; H9 g/ e% Z7 z
- (defun ddimen_complist (dimolist dimnlist dimtbl / i odvar ndvar
2 c( H [- t8 `8 ]0 `0 R: g, B/ x8 { - dv dime commandIssued), T2 v; R% X, E
- ) Z- M7 ?2 i# M! f( t
- ; Here we skip the following first three items:7 H1 q0 C4 l0 |# H" q$ G' Z
- ; (0 . "DIMSTYLE") (2 . sylename) (70 . 0)
5 Z! f, |2 ^* c: T6 A - ;5 U- q3 a7 E& c: [
- ; The list comparison immediately begins with dimvar.4 M$ v0 y: ` }$ E$ W
- ;5 u% a8 M! h z7 |; ?9 l
- ; dimolist - original states of dimvars
# ~; p5 l% e' E; p0 Q3 _1 _ - ; dimnlist - new dimvar list which is of the resbuf's/ y3 Q1 K- K- ?4 M/ N$ ]4 H8 F
- ; dime - entity name for the dimension
% U j# C( G# @' b n& m - ; odvar - value of dimvar for the dimolist
; W# r* _' w5 c' O1 R9 M: v7 r - ; ndvar - value of dimvar for the dimnlist& G0 F* @# f7 O7 x- K
, t& K* J. m1 i: P5 U- (setq i 3' l! Y; f3 J9 ]5 A9 ^2 R
- dime (cdr (assoc -1 elist))
7 i9 Z i* `0 ?4 j d% i* n - ). Y+ `: P- D9 l1 D# p
- (while (setq odvar (cdr (nth i dimolist)))
6 o) s; N2 G# o( p/ ]' c - (progn( c! {: N. X; k* b; R1 M
- (setq ndvar (cdr (nth i dimnlist)))
+ A8 V6 ]0 {' p' S! h" X+ ` - (setq dv (nth i dimtbl))# F/ C$ Z4 `8 T$ L+ a/ }& B Y
- (if (eq dv "dimtxsty")
6 E2 [ Q1 Y9 `& ` G9 I - (setq odvar (cdr (assoc 2 (entget odvar)))$ b6 Z2 X- w/ `9 J: S0 M
- ndvar (cdr (assoc 2 (entget ndvar)))$ V/ p2 U( i. M; p
- )8 y6 `0 M0 b+ H$ i" g4 [- D6 C7 S/ K: b
- )& T; O1 |! P+ ?' O' [
- 3 q7 B$ f$ v3 e. N z
- ;
' d( p+ l1 E8 Z& K - ; In order for DIMOVERRRIDE to operate correctly with string
& J: O9 o) _) q% h# K- T - ; based dimvars, we must pass "." versus NULL strings.
1 ~" x8 f0 Q4 S/ `3 K/ O - ; In this case ndvar is the new dimvar value the user wishes
2 `1 |! O, ?" H" Y2 w: l2 U& \ - ; to update on selected dimensions.
" X/ {, D. F S6 R2 j - ;
i# R- L# x7 y& [ - (if (/= ndvar odvar)
% m0 N: S, g p; B; D1 M - (if (= 'STR (type ndvar))" \! F1 z6 f0 J
- (if (= ndvar ""): w0 k% \+ S+ {9 R1 m
- (setq ndvar "."))))% a8 d" Y; s `. U, x2 ?( m
- ! ~; j. @+ C& ~/ d, a8 p* a/ o
- (if (/= ndvar odvar)
; t) P+ q7 K$ k8 K9 I+ L1 R- w - (progn
! \" @; ^8 Z- T3 `: Z - (setq dv (strcat "_" dv))
1 w$ L3 ~6 z0 s& A; S3 p - ;% Y% b1 h1 S# h% G1 s/ y6 `
- ; Start the dimoverride command
; C8 m( y% _3 P, x$ w# E - ;
- c) w6 u* h0 ?" {" D - (if (not commandIssued)# H: f8 e) I* L& W
- (progn2 u2 W7 _8 D; B1 L& a
- (command "_.dimoverride"): E3 p2 L# R6 D$ w& t( j; \
- (setq commandIssued "T")
5 p& F$ v% ]9 d" e6 s# V - )! _) I Q" N7 d, @" t
- )' N @, `8 Z$ K$ ^1 K' A$ v" G8 B5 x
- ;, i0 R6 i: t. _' B0 I( Y" J
- ; Issue dim overrides
" h) w" r1 s% B& X6 c6 ], R9 |6 U - ;( v }& }+ r4 ?; a
- (if (and (or (= dv "_dimclrd") (= dv "_dimclrt") (= dv "_dimclre"))
; l. ^" ^2 S3 E - (or (= ndvar 0) (= ndvar 256))) I. w* a; ?7 Q1 L5 `- _! o5 Q
- )
; @$ d! \1 L$ h9 P1 ]$ X2 ] - (progn, z7 k" l% n# C: p; j2 R
- (if (= 0 ndvar) (command dv "BYBLOCK"))
5 |9 [2 f0 r% M# Q5 b& [ - (if (= 256 ndvar) (command dv "BYLAYER")); s( I* b5 [+ K g t
- )0 u7 o( y# f' w, _
- (command dv ndvar)
2 M9 n, X! ~( L! x8 f1 a2 I - )/ `1 c; q( B5 Y4 s7 E) S. R1 l8 ^
- ); y6 n5 ?/ b3 W: @
- )4 ~$ Z, T2 R, T8 }% \) v4 x
- (setq i (1+ i))1 D1 @+ F$ n# n/ u0 [' [
- )
! X( C( I4 i* V7 @ - )
) ?* t1 S# {& ^" S5 f& y4 k+ B - ;' }0 a4 Q* s, `8 m( |
- ; Select Entity and terminate command. n ~# y9 f4 o; v6 x4 L1 |0 z
- ;, H* r' ] d4 f
- (if commandIssued1 v7 Y ^" j" X. I
- (command "" dime "")
& z; U/ T+ t% J) Y+ o* H5 }1 H+ x! B - )5 X) i2 C- t+ Y x$ s
- )2 C2 A/ }/ B$ r- ]. `3 f4 A3 | v
- ( x5 P! {" ^9 s4 L' v
- ;;
! S W) t: a. p/ q, h5 P3 e - ;; Get style name currently selected style name.
. }4 }8 _5 W. ` s+ J/ p - ;;
) p8 R, n; {) l& |/ B - 4 {4 f* [& E+ l, M& ^7 e3 p
- (defun ddimen_style (/ dimsty)
I/ C" C [$ i& N) B; O# j - (setq dimsty (nth (atoi (get_tile "mod_style")) stlist)
: m5 @0 Y* Q5 X9 l1 w, l - dimlist (ddimen_getdimvars dimsty)
$ ?. D( m0 _& F4 f: k$ ^9 f' m - ), G5 p3 f) e$ |
- dimsty3 e' s, @ b5 b) V7 C. X7 B
- )
$ M* V2 P% |4 e: R/ [; O& W
! A" L( P F5 C# k! h- ;;
6 E7 |. b( k6 @ - ;; Set dimvars+ D5 q; ^* J( z
- ;; o) X9 y; _ T7 l/ ^" A
- (defun ddimen_setvars (dimsvcurset / dv i)3 b; i8 Q3 Q: k6 h z
- (setq dv (cdr (nth 1 dimsvcurset)))1 y! E) |! u& X. O0 ~3 N# p
- (command "_.dimstyle" "" dv)
7 r, F6 i2 C" q; Z* y1 {. Z - (setq i 3)
* `2 r1 J" \& g0 v* z) m - (while (setq dv (nth i dimsvcurset))( V m0 K) z& _# s& p- T+ P
- (progn
$ F' p5 I) c* ~ - (setvar (car dv) (cdr dv))
" Z9 \/ U8 h8 A- J5 V: k - (setq i (1+ i))
0 q# J. V6 D: d# D6 E* m6 h8 E - )
* k3 E1 N2 \4 y( J2 o0 V - )0 Z! A q8 e! \ @+ G) M
- ); |9 r6 m9 z/ Z4 v% L7 ^
- ;;
3 J+ g% \3 u( T: F$ U' ^5 k - ;; End-of-dimension: ^0 Z. v0 v) T) y, W' B1 z
- ;; ==================
3 z+ E( N! A! F7 \* v5 |+ |9 z
3 `! T" r6 N+ i" h) j8 T. }( s, ^- ;;
8 t0 m: g7 M! S+ X: O$ k - ;; Sub-dialogues for properties. Common to all object dialogues
U6 l' T& x" y% H$ [! H8 K6 | - ;;
8 d; u! K' r( g/ ~1 E% Y! ^ - ;; This function pops a dialogue box consisting of a list box,image tile, and
( X9 I ]$ z( P5 p4 K/ d - ;; edit box to allow the user to select or type a color number. It returns
) b% T: t8 ^, a$ L - ;; the color number selected.
" m4 X. C: t1 V - (defun getcolor (/ old-idx colorno cname lay_clr)
& O6 s8 P* h. w+ W' M" M8 q1 w - (if (= (get_tile "error") ""). k" x O1 K, u/ A- Z
- (progn2 i8 y, ^2 N& p/ x
- ;; Get the color associated with this object's layer, for use; g& J* B0 y' e( x$ l
- ;; in the color swatch if the user selects color BYLAYER.
3 f, Y/ G. C' B - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))* `$ r) [; c7 E- I
- (if (numberp (setq temp_color (acad_colordlg ecolor T lay_clr)))
+ A% f& O3 b5 t4 N' B - (progn! `7 L) u& c0 v+ F9 @7 K: e7 b0 q
- (setq ecolor temp_color)6 x4 r H1 T# o
- (setcolor) _% {' p' w% C' L: Z, S9 g
- )1 N- r) a3 |6 _) G8 r4 T0 b
- (setq testcolor temp_color)7 `, `+ R* F2 t" e0 t
- )' s& v! W. y H) a* t) f4 y
- )
: H7 U% ?# m# G( t, _1 T - )
4 T) ?3 ^% z; f0 q' |- l0 Y - ecolor2 K$ B2 n! s% Y9 s
- )4 Z2 X2 n `% D
- ;;
7 N4 F) i( U1 M- x - ;; Function to set the color tiles.2 a6 g# B# P0 [1 Q1 c
- (defun setcolor()
5 Q ~3 p4 n9 q - (cond
! G6 x+ f/ [% Y- L# r - ((= 0 ecolor)
: v; q1 g# K/ ~; E6 q/ e4 m - (set_tile "t_color" "BYBLOCK")
. M2 n7 z3 G' h s - (col_tile "show_image" 7 nil) ; show BYBLOCK as white
- C6 S( B. {$ {' v! u5 g+ o, y - )
+ j0 w! N) ~; }/ N o! U - ((= 1 ecolor)
; c- T& B- z5 X2 a- r - (set_tile "t_color" "1 red")
8 j# d4 g! f9 Q/ J, Q) E. B1 N - (col_tile "show_image" 1 nil)1 n- X- \3 s0 h/ W D
- )
: f7 U. }: ]7 t( t- f( `" j - ((= 2 ecolor): J/ i+ {6 P4 R! \% ?3 Q' I
- (set_tile "t_color" "2 yellow")
1 N7 k, R) k, s3 j - (col_tile "show_image" 2 nil)- N1 c( U( O9 @- E
- )
T, V9 I) E* { U- z1 f4 {8 Q - ((= 3 ecolor) u$ f$ y9 c/ V/ f" e- n4 D
- (set_tile "t_color" "3 green")
: h% h& N6 T6 W. h+ ~ - (col_tile "show_image" 3 nil)- m8 ?7 P0 X* {6 e- }7 z Z
- )" t+ g- Y; j/ M% m
- ((= 4 ecolor)
/ E" n z7 G9 u; ~8 I6 h* E( c - (set_tile "t_color" "4 cyan")5 @/ g ?5 C% H5 a% M+ I5 n
- (col_tile "show_image" 4 nil)
- f2 ^9 ~! `, s( U; x - )3 D* D% x0 X. `
- ((= 5 ecolor)
7 u0 F& a& v6 f# k5 |& |2 ^ - (set_tile "t_color" "5 blue")
% L" F8 s. m+ E, t8 g) D0 q - (col_tile "show_image" 5 nil)/ P Y' \& {6 H1 i" J
- )
% |/ y+ ~. x+ h. {% N! L9 G - ((= 6 ecolor) v9 W6 }' l) Y8 s9 V
- (set_tile "t_color" "6 magenta"), M5 \( ^- Q& [1 d. e, C0 O9 ?
- (col_tile "show_image" 6 nil)
- r/ S; L5 @7 u" N) ~5 S/ l. v) O& c - )
2 {; g1 ~1 R% [$ X - ((= 7 ecolor)
0 O! C% @) d& \( _9 s; a8 X3 c. ?/ q - (set_tile "t_color" "7 white")4 k7 Z9 q% v( `$ W8 \+ r6 |
- (col_tile "show_image" 7 nil)7 A( ~4 s' ^8 \, P+ F6 j
- )4 [( n6 ~* l8 g: x
- ((= 256 ecolor)- \! J5 g- J' q) {
- (set_tile "t_color" "BYLAYER")
3 L' J- z& {- B1 g; c% Y+ j - (col_tile "show_image" (bylayer_col) nil): b# E: O0 u4 F3 k! p# A
- )
( H3 K& V1 z; E# ~* P! H - (T/ r. _; u8 G" }# W8 Y* G" T# R
- (set_tile "t_color" (itoa ecolor))5 [1 f+ n- i/ _) c" W
- (col_tile "show_image" ecolor nil)
9 X/ D" [$ O: S - )
2 Z- R4 X! G! E - )+ Y7 k# T% u" k
- )9 C' ?3 I3 [1 t# H+ c. O# }
- ;;5 r" I, D" B+ E2 ~2 {8 _
- ;; This function pops a dialogue box consisting of a list box, image tile, and
, u2 h. n- f: V7 f% F6 } - ;; edit box to allow the user to select or type a linetype. It returns the
7 t* ~1 w- ~ |( K! N - ;; linetype selected.
& P) y5 n7 K5 O7 b, W9 L/ _6 t0 X - ;;
) _* e7 `! e# }0 y5 ]& e z( q - (defun getltype (/ old-idx ltname), s. k7 ~8 R( f
- (if (not lt-idx)) o( U7 g. K! ]8 |
- (progn
1 d" u7 o0 m. @! O$ V& o5 `3 { - (make_lt_lists) ; linetype lists - ltnmlst, mdashlist& ^2 \, I' R9 Y! R
- (cond
' S8 t; V# r ]6 h- K$ }' a ` - ((= eltype "BYLAYER")- `1 ]+ F X8 W! V6 ~
- (setq lt-idx (getindex "BYLAYER" ltnmlst)))
% z3 W2 K8 ?, f" `, z7 F - ((= eltype "BYBLOCK")
! U& S+ W9 d0 m' s Z - (setq lt-idx (getindex "BYBLOCK" ltnmlst))) t1 `' |) p' E% f
- (T (setq lt-idx (getindex eltype ltnmlst))); Z* l% g: z8 }, B/ f7 Q, ?% q9 E$ w
- )
, r, Z/ `+ S9 @2 v - )$ k" c2 N& P4 i8 o9 P
- ); _7 b$ n6 a4 g* b6 |4 Y! d+ P
- - r: y& S" E5 A0 `4 Z
- (if (= (get_tile "error") ""). y5 }5 \% g' ?' \; h
- (progn
4 V0 y) c4 {! O- e$ k - (if (not (new_dialog "setltype" dcl_id)) (exit))8 |$ D( X2 D! r9 I
- (start_list "list_lt")
' j2 o+ k( O! x6 A$ d, U2 t5 Q) F - (mapcar 'add_list ltnmlst) ; initialize list box
* T7 B6 O9 Z3 Y3 n" O1 D - (end_list)
( W- J8 y6 C4 r - (setq old-idx lt-idx)
* N: u( e+ G" b, v - (ltlist_act (itoa lt-idx)), ]) M0 _! H/ l }' ?6 |. H
- ) `, y3 L7 P+ M9 |
- (action_tile "list_lt" "(ltlist_act $value)"); o" n h0 c1 j1 y. T
- (action_tile "edit_lt" "(ltedit_act $value)")
$ M/ p0 o4 f8 }. A - (action_tile "accept" "(test_ok)")4 K8 t2 y1 T" j# n' I
- (action_tile "cancel" "(reset_lt)") p q$ _& ?; x3 t& y( _5 B
- - @$ |5 K- S7 J
- (if (= (start_dialog) 1) ; User pressed OK
, Q9 `+ a& t6 B; b2 d5 s' o' O - (cond, C- y; R5 E5 S5 s3 C% m
- ((= lt-idx 0)
* @2 ?$ H! x3 |6 D - (set_tile "t_ltype" (bylayer_lt))
+ D) g* v/ E6 J) ^2 x% p5 } - "BYLAYER"! P3 O* K, _% T; }: t
- )
7 L+ y. e) G+ Q9 n1 I - ((= lt-idx 1)+ W* z5 l. f( }! _3 D
- (set_tile "t_ltype" "BYBLOCK")
! C* w, @% G7 n/ f1 ?, [3 V - "BYBLOCK"
& o& v# l1 a" j1 x3 p - )
$ h' P& z6 P7 D ]$ H - (T (set_tile "t_ltype" ltname) ltname): T6 r. t! M: W. ?
- )& }, V" E3 u- ?2 v
- eltype2 r7 y5 [; g, P, e& @( R' b
- )4 {. T8 T9 @ Z
- )
) Q$ y3 H- w# A [/ j, F0 `$ _) m - eltype* v! V P4 h, o) i
- )
4 W \8 s) l: M+ B# R - )7 A1 p- e( K, F
- ;;+ |& q" V4 i) L
- ;; Edit box entries end up here( ^+ p+ K; U# V6 @, M$ J2 Y$ z
- (defun ltedit_act (ltvalue)% E& e; Z, T. \$ @" K
- (setq ltvalue (xstrcase ltvalue))3 {4 n4 }7 y1 ~7 Z$ `
- (if (or (= ltvalue "BYLAYER")
7 V) ~' ~6 `$ s5 O& \ - (= ltvalue "BY LAYER")); {5 y" |, @0 w$ p& W
- (setq ltvalue "BYLAYER"). Z1 F2 Y' j+ j5 I8 z
- )
, _# ? ~* q H( h7 r - (if (or (= ltvalue "BYBLOCK")' E1 j2 L3 ?' R/ v# q8 J3 y
- (= ltvalue "BY BLOCK"))
2 o: s) V% W$ { - (setq ltvalue "BYBLOCK")
; X$ j& M \' j* S* T: N) z c - )9 \! k' F0 v! F) D) S
- (if (setq lt-idx (getindex ltvalue ltnmlst))
; Q/ W0 U3 a* P - (progn. S, V9 }2 Z. `
- (set_tile "error" "")$ c( m( v/ N. { V0 a4 e
- (ltlist_act (itoa lt-idx))& t4 S n$ o1 E- Q
- )) ?( s: f, K, q, P+ e; W
- (progn
) f( O0 H' f8 p! t/ K" w! c% F - (set_tile "error" "Invalid linetype.") q1 I2 {3 T" ^ S& u% E
- (setq lt-idx old-idx)
% T# T% E( }% d2 R4 X. C - ;; (mode_tile "edit_lt" 2)
% e6 ^3 Z% @% s; W( F! p) L( z" i - ;; (mode_tile "edit_lt" 3)9 C" z" s V M& m# z
- )
) X5 u$ ?( h& f - )1 H4 X T0 [. o6 F" u8 K
- )3 l2 f: T ?% ^! F2 Z8 e- }
- ;;
1 Z6 H1 d3 u4 ^4 _# O4 S - ;; List selections end up here. Update the list box, edit box, and color
9 D' ^( A$ i8 e! d( g - ;; tile.. ^5 ~) ~* \% B `# d7 M
- ;;3 n, m( ]% m) @* ?; Z( t; u
- (defun ltlist_act (index / dashdata)
7 \) z. n( \+ v# P( X - (set_tile "error" "")
6 K: v) i% D* E - (setq lt-idx (atoi index))6 C- h; _# n, S
- (setq ltname (nth lt-idx ltnmlst))
2 h w4 _- u" o - (setq dashdata (nth lt-idx mdashlist))
4 e! q/ x i0 [* d - (col_tile "show_image" 0 dashdata)8 _9 w- Y. e& f
- (set_tile "list_lt" (itoa lt-idx)). _2 d5 }: k3 a: B/ H+ c7 g3 l
- (set_tile "edit_lt" ltname)% h2 p: d% e5 T3 W% k% g/ W* I
- )
7 Q, s4 f; t) o% }: t8 {" _ - ;;
' \ ~. o/ }8 k% }6 Z+ R$ i% O1 w# I - ;; Reset to original linetype when cancel it selected
, W9 L, |- Z8 x2 I& d - ;;( `9 r" E% p. s+ |4 V& v
- (defun reset_lt ()
# G- X/ w+ [; P$ a( c: N' y; _ C - (setq lt-idx old-idx)
b6 z& m7 s0 T1 T* \5 W# E - (done_dialog 0)
8 E+ M) d( O7 h: H' R0 E8 j - )( @) `+ s+ N* P \4 A
- ;;
/ l; D r0 j/ ~# X+ x. d% }! d! w - ;; This function pops a dialogue box consisting of a list box,image tile, and
# q X( K* `9 l( H - ;; edit box to allow the user to select or type a layer name. It returns the
- P2 E) W7 ~: `& G* T - ;; layer name selected. It also has a button to find the status (On, Off,
' ^) k3 g" B) J$ F# i - ;; Frozen, etc.) of any layer selected.
) e8 G& G& w* ^' V, H - ;;9 m7 Z3 }, }- J6 E9 {0 q
- (defun getlayer (/ old-idx layname on off frozth linetype)
4 g& o1 p. w$ W - ;; Create layer list the first time the layer O+ e- j: [% Q# H/ b! ]& u
- ;; dialogue is called.
7 Q- i" ]+ c) {$ n9 ]/ x# f: T8 r - (if (not lay-idx)9 C2 _, |& }* V0 I" v
- (progn0 o4 a5 D6 k) ~/ C) ?. U6 K
- (make_lay_lists)" @: B& k, e, x4 U/ q
- (setq lay-idx (getindex elayer laynmlst))2 N ^+ p% y0 f
- )/ k+ O6 L# k% J) F! @. m
- )
0 l% X1 w7 ~2 L - 1 _/ n5 ]/ y% T0 y4 ?5 d
- (if (= (get_tile "error") "")# p6 L; @+ @) o$ d1 _: Z# _5 {6 \
- (progn! ~% a5 K7 u0 w3 r& b) X
- (if (not (new_dialog "setlayer" dcl_id)) (exit))- y0 \5 Q6 B* v& A+ g
- (set_tile "cur_layer" (getvar "clayer"))
; L' S Q. F. ^5 i/ I. [0 z5 r - (start_list "list_lay")
8 u5 p! Z4 O( g' z: T% ]4 z - (mapcar 'add_list laynmlst) ; initialize list box; E/ \7 V- O- r8 T
- (end_list): a# z- F+ }! R4 Y3 J' D$ o" [
- (setq old-idx lay-idx)) L+ F8 y, h7 }6 ?1 V0 g, ~
- (laylist_act (itoa lay-idx))/ Q% }% O( W% x! K K
- (action_tile "list_lay" "(laylist_act $value)")" D+ G, z3 a% M1 U8 I, C H
- (action_tile "edit_lay" "(layedit_act $value)")
4 U) H9 M% x% F4 ]3 q9 b - (action_tile "accept" "(test_ok)")+ E7 Y1 G. x8 y* @
- (action_tile "cancel" "(reset_lay)")
4 |# o/ ~: p' t0 e6 B0 ], G - (if (= (start_dialog) 1) ; User pressed OK- K2 B& x. D, L: M6 M
- (progn
- T e+ @: L/ T1 H% X - (set_tile "t_layer" layname)6 S& A' T4 u2 u8 a+ |% U8 T! n: V
- (setq elayer layname)9 ~+ E( ^2 R; S+ X
- ;; If layer equals bylayer reset color tile2 _6 U- c5 m+ ~- ^: T8 L( B3 o
- (if (= ecolor 256)
7 t; U; J, C" j2 Q' p - (col_tile "show_image" (bylayer_col) nil)
7 c/ g7 |, n6 E* V3 R0 x$ L - ) ]. o- @: {) ^$ @- ~
- layname. R- G+ O" U8 G
- )
, n ~: o# i, Y* v$ i9 H0 u - elayer
! d7 X* ^6 _$ |4 P" }* I - )
0 Y, V) |2 Y: E1 R/ y: I1 ? - )
' G! q1 p' J, @ - elayer) W/ q5 A# f* u, j/ {. T: J
- )4 f1 x9 f8 ]4 X, |( x
- )
+ o7 `& o$ |6 Y+ ^6 h' ?! W - ;;/ }) ~: u+ `4 W0 q( \
- ;; Edit box selections end up here. Convert layer entry to upper case. If4 R/ g4 \1 T& I3 h
- ;; layer name is valid, clear error string, call (laylist_act) function.
6 I4 x8 m+ S/ g- P3 S/ o1 }2 Y9 Y - ;; Else print error message.
+ b: y' q1 k$ Z1 W5 a) g - ;;% [, T& G- o, B+ y6 P/ b Y
- (defun layedit_act (layvalue)% ~5 }3 p4 ~1 Z. v! G. G3 b
- (setq layvalue (xstrcase layvalue))1 R7 A6 S% i: j8 W
- (if (setq lay-idx (getindex layvalue laynmlst))0 f, O3 h4 ?+ T3 [6 ~2 _
- (progn# k& D. c9 o- I; q3 V
- (set_tile "error" "")
3 T! |2 |: A' O) ~3 C; s5 d; R - (laylist_act (itoa lay-idx))
' p0 d* E9 p/ h" V* a/ J$ Z+ @6 ~ - )
- x) N2 d* f N8 j% n( h - (progn; q; l" U# i8 ^& L5 U9 R
- (set_tile "error" "Invalid layer name."): d1 D3 r: G9 ?6 K1 D
- ;; (mode_tile "edit_lay" 2)3 z0 E" t% S/ e: X K" X
- ;; (mode_tile "edit_lay" 3)! O6 i& T) r8 m6 w9 ^
- (setq lay-idx old-idx)/ c* G0 y/ O" B8 u
- )% {6 O) N3 l" B7 F! V7 m* K7 A7 n
- )
2 H. T' \1 F4 b! S- |1 W - )
6 h4 g$ m3 a2 g8 u: V* I( E0 ~ - ;; W' |: I8 G- s* u
- ;; List entry selections end up here.
; I f/ d0 t/ v! f - ;;
* h2 C8 M2 I+ Y' A - (defun laylist_act (index / layinfo color dashdata)& o6 F4 z' j" V, E
- ;; Update the list box, edit box, and color tile.5 p+ N6 o* ?( V/ n1 a
- (set_tile "error" "")( g( p5 k; p1 o0 k6 S# F& [/ t, c
- (setq lay-idx (atoi index))" V* b2 G8 Y2 U p
- (setq layname (nth lay-idx laynmlst))
4 j% f9 T3 |# e/ t - (setq layinfo (tblsearch "layer" layname))" {: h2 J% Q+ H2 o
- (setq color (cdr (assoc 62 layinfo)))
5 w/ Y% C; @" D1 R5 g+ L+ ~' o1 f/ P7 ` - (setq color (abs color))
4 e3 @$ _$ G- K! u' f - (setq colname (colorname color))
" F; M. N- y$ u8 ^ - (set_tile "list_lay" (itoa lay-idx))4 J6 E0 E& V3 A/ u( C
- (set_tile "edit_lay" layname)
: _! `5 D \ p6 h9 n& `. G" ^ - )
' T) B' I+ {! ^: I4 B - ;;; A7 z& ~: y v+ ]5 V2 Y% B6 G
- ;; Reset to original layer when cancel is selected.
% I& u* ?4 c( Z" {+ H - ;; Q" |5 W& J, A/ [6 Z# r
- (defun reset_lay ()
P# l- i$ M+ E9 E - (setq lay-idx old-idx)
8 f3 l9 R$ c. h. l - (done_dialog 0)
; ^3 {! B. P, O1 g0 H - ); k: W1 |% D' ~$ L; B
- ;;$ s6 I& L8 o. h: U& k! ^) ]% j
- ;; Checks validity of thickness from edit box.7 F( S' r& S/ U4 r) b! @5 s8 f
- (defun getthickness (value)
# c" _ p6 p6 Q. u - (setq ethickness (verify_d "eb_thickness" value ethickness))' U0 s* b7 u9 ~- G; ?& d
- )
' R- B6 l8 A1 Y0 R - ;;
' t$ s* h- z8 K9 J Y* | - ;; Copy of (getthickness) for ltscale. If more, make this function
g+ U5 _" a9 Q: ^: q. C9 \8 p4 p - ;; generic." t+ t9 l. ~- O1 t' l* K
- (defun getltscale (value)' s; Z& u% W" r0 _
- (setq eltscale (verify_d "eb_ltscale" value eltscale))
* E3 N' U, r5 k& E& i - )0 [- _9 i+ j* K6 m
- ;;* ]* K0 V7 d2 G/ K
- ;; This function makes a list called laynmlst which consists of all the layer; }& ]; U$ ~8 L+ g
- ;; names in the drawing. It also creates a list called longlist which
8 |; A. c5 R! @1 B - ;; consists of strings which contain the layer name, color, linetype, etc.2 P1 i1 g+ c2 f. Z6 S6 p. L+ E5 a
- ;; Longlist is later mapped into the layer listbox. Both are ordered the
4 m; H' `, W1 K8 Z1 A - ;; same.
) l% }. Z; w }# p0 L D - ;;
2 k6 e! n$ ?* x - (defun make_lay_lists (/ layname sortlist name templist layer_number)
2 W2 z) O+ N) n9 M' N- w+ Y - (setq sortlist nil)
. T: r$ u) G5 r% B - (setq templist (tblnext "LAYER" T))/ W; ^0 s U9 l& @# L
- (setq layer_number 1)
" `& D5 y# i$ M2 c1 I+ p - (while templist: m0 A E* ?: H( P! P2 A
- ;; No xref dependent layers, please.2 ]" o$ k* k% u- L& a4 a: i" S4 W
- (if (/= (logand 16 (cdr (assoc 70 templist))) 16)
4 o s' ]2 i* O; N1 T, X4 B - (progn
, g* p4 L0 {* C - (setq name (cdr (assoc 2 templist))) r8 z0 b- Q. J x/ k* Z# m$ k
- (setq sortlist (cons name sortlist))
. ]' ]- ?" d) D: G# R - )
/ [, Y' V/ G9 r5 H - )
( A$ [& p, m% O. v* C - ; Get the next layer.9 N) [) |* Q! F: ~7 Y- `$ T
- (setq templist (tblnext "LAYER"))
' g* ?, m1 {1 r( { L6 T& i7 H2 s - ;; Not dead message...
. x9 b* ` ^+ l5 }; @' W: b1 N - (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))
) z# V0 v, _# L5 u$ v - (set_tile "error" (strcat "Collecting..." (itoa layer_number)))
9 b: I& R& }; \( B/ c - ), M3 W: w5 y0 B \0 ^+ I) M; Y
- (setq layer_number (1+ layer_number))8 @2 G4 {7 ^4 S; m8 H- O
- )
+ j: Z" ~6 ^" O8 Q( o) g. z - (set_tile "error" "")7 K+ A# T& ~' F ?% g% j
- (if (>= (getvar "maxsort") (length sortlist))
* K, s" n& n8 z( V9 k. C3 H2 [9 Q - (progn! c! b" C6 c. |" H% `$ |. |4 `3 ]
- (if (> layer_number 50)
5 w, e5 D4 m$ j* g- d' j - (set_tile "error" "Sorting...")
8 u: Z& ^$ m( ?3 V - )1 ]) I% X {' y) v. j
- (setq sortlist (acad_strlsort sortlist))
7 ~# ^$ a m9 O# Q/ L - )
2 O, z( ^5 P+ ~/ l% D& c& n; H - (setq sortlist (reverse sortlist))! Z3 |" N! L' T0 P7 C9 J
- )6 R3 B8 U8 E2 L
- (set_tile "error" "")5 l5 ]. e. h3 l. ^( v5 }! D& S
- (setq laynmlst sortlist)
& A$ D/ \7 i8 f& f1 E; C% M+ X - )
4 j6 z* _3 T" u- F* g* L1 l - ;;
% t+ q* r5 ?- M& ]6 T - ;; This function makes 2 list - ltnmlst & mdashlist.4 \5 Y. v' K2 B. D7 g# Y
- ;; Ltnmlst is a list of linetype names read from the symbol table. Mdashlist6 O) |0 N3 z. }0 p# j
- ;; is list consisting of lists which define the linetype pattern - numbers6 C8 H7 `, j$ ^5 f2 \, `
- ;; that indicate dots, dashes, and spaces taken from group code 49. The list; a8 l7 E D! l9 Q9 Q) o! M
- ;; corresponds to the order of names in ltnmlst.
5 l' |. x: i N - ;;! e! N! O% h% a" K# F7 e6 y3 T& Q% W
- (defun make_lt_lists (/ ltlist ltname)7 ]3 T5 @3 r" ^2 f4 s9 v
- (setq mdashlist nil)
* X) n- J8 }! y; C# @2 J - (setq sortlist nil)3 Z M+ Z2 f# f! s d
- (setq ltype_number 1)
; e# Q7 x, F, ]' V& j8 I+ R6 E2 u - (setq ltlist (tblnext "LTYPE" T))4 z, C. r8 P5 G- Y; `
- ;;(setq ltname (cdr (assoc 2 ltlist))) J g: r4 M- x, t
- ;;(setq ltnmlst (list ltname))+ u" ^. E7 [2 h, P: O% k
- (while ltlist
% j, @/ W" i$ P% k& P - ;; No xref dependent linetypes, please.$ ^1 }2 d/ v: O
- (if (/= (logand 16 (cdr (assoc 70 ltlist))) 16)& P( F3 ?; G5 e2 \& n1 m. L2 z
- (progn, Y( o, ]3 o( b& o
- (setq ltname (cdr (assoc 2 ltlist)))4 l. @4 T0 N" m2 r1 O1 ~
- (setq sortlist (cons ltname sortlist))
- d5 {. Z: `) X8 [( F' h - )
1 Y8 ~- Q5 K1 e8 Z# e. V/ y8 f - )7 z# o) K& g) I k# G& U: o
- ;; Get the next linetype.4 I1 w2 e) @( R+ n) I
- (setq ltlist (tblnext "LTYPE"))
( D1 b- V! A- z
) q' }7 {# M, @; C3 _- ;; Not dead message...8 J1 s2 f2 w2 i/ \1 B0 O
- (if (= (/ ltype_number 50.0) (fix (/ ltype_number 50.0)))/ G0 s* w3 ^) U; j+ S$ U( ^! }' b
- (set_tile "error" (strcat "Collecting..." (itoa ltype_number)))
/ [$ Z: d C8 B! Z* T - )8 |/ J/ a( e, d ]
- (setq ltype_number (1+ ltype_number))0 x l& t& C, d4 @% E2 ?+ |/ e
- * M, m' _' E$ w1 @8 y4 `
- )
9 A& B2 J' |3 C* G G+ c! B
) g4 R+ ?% A. k4 @6 S- ;; Remove Collecting message./ Q, p0 a& g- `* [6 c& m
- (set_tile "error" "")
2 a2 |. O/ L, [! S( p" E( Y' h - 6 w5 O1 j. |! u" u& Y1 T1 a5 W
- ;; Sort based on maxsort.
- p' r% i. j# O0 n/ J8 L2 J. S - (if (>= (getvar "maxsort") (length sortlist))+ K6 s1 M! I5 f" N) A5 Y6 k
- (progn
8 h; R: r/ K( z0 O5 v - (if (> ltype_number 50)
w7 D2 T6 W& l1 y) ~" e - (set_tile "error" "Sorting...")) E2 P# k: b' O$ p3 k$ \+ Q
- )4 ~) I9 J. T" p8 C( ~: p0 c
- (setq sortlist (acad_strlsort sortlist))
w3 z3 X/ \ q - )
0 {% k! b% W& m6 d3 Q - (setq sortlist (reverse sortlist))
+ Q( v: j7 ^; e2 L+ k4 k - ). U, n z7 d8 u4 G6 ^ @# Q
- (set_tile "error" "")
E# ?/ `, M- k - (setq ltnmlst sortlist)% J7 L( U+ _& I* s9 T; z4 e
" \2 [5 o' U( }9 I2 O" \; h L2 t- (foreach ltname ltnmlst
& b0 [* f: s: v, ~; @ - (setq ltlist (tblsearch "LTYPE" ltname))( P4 j+ q' v u4 X! D( A4 Y4 a, | Y
- (if (= ltname "CONTINUOUS")# ] {( ^' s% j
- (setq mdashlist (append mdashlist (list "CONT")))
, B: w1 y2 |& {! i( Q9 D# i' L - (setq mdashlist0 c0 E: a! d: |& G& m1 [( l
- (append mdashlist (list (add_mdash ltlist)))
# W8 D) ~$ v& i5 D n: J; M - )
! N3 Z- E5 A3 P8 y5 J - ); x! {+ ]# \) A0 `$ }
- )
; p. H& t6 Y) w( W - (setq ltnmlst (cons "BYBLOCK" ltnmlst))5 K3 w" d" C+ X/ Y
- (setq mdashlist (cons nil mdashlist))
6 T: G0 \0 B; u8 e b, z - (setq ltnmlst (cons "BYLAYER" ltnmlst)) ~/ @7 e0 B7 }6 C/ l P3 Q3 [ V8 }
- (setq mdashlist (cons nil mdashlist))) `2 O; N8 x* O+ G; u1 b4 R5 U
- )
/ y) v, D+ W0 \7 }8 h" ~1 z - ;;3 z/ f0 |' N, \7 N- |$ R. H
- ;; Get all the group code 49 values for a linetype and put them in a list
2 N u* y5 C9 ? - ;; (pen-up, pen-down info).
, i5 u9 J1 \# {, ^$ G* `6 f - ;;
" \; k, u, B% J/ P - (defun add_mdash (ltlist1 / dashlist assoclist dashsize)+ C8 H7 u* [! a X+ P/ H
- (setq dashlist nil) m& M/ W: \- W1 Y( y( f7 }- \
- (while (setq assoclist (car ltlist1))- V9 T" ?6 j3 w) N: X) I
- (if (= (car assoclist) 49)
* d6 k+ t( m0 H5 E o - (progn8 r. `% n7 z% ~% O( e/ S
- (setq dashsize (cdr assoclist))( Q: K) o/ e( ~0 ~ s* J. R) |1 n
- (setq dashlist (cons dashsize dashlist))/ E% v, V4 W. O" g/ M2 Y! Y3 Y: z
- )
8 W1 {, V! R" ~0 m# G- g) ^, \' e - )
& }1 W2 i! v8 w7 Y$ u+ w - (setq ltlist1 (cdr ltlist1))
' u/ ~0 j% G4 S% [( O6 \+ f - )
" _/ v3 }& p# {$ O9 F# V$ C - (setq dashlist (reverse dashlist))- K2 O1 B z7 m6 V/ e2 M7 M
- )
" Y7 x# D7 d4 S* h2 W3 v - ;;
0 c6 t7 G" y. l0 {2 c - ;; Color a tile, draw linetype, and draw a border around it# L5 t" K! J; @9 g. Y
- ;;
0 C2 r; E. h3 X$ r h, j7 Q - (defun col_tile (tile color patlist / x y)
, U- D* f# `4 _3 [ - (setq x (dimx_tile tile))
( }( \( n7 W9 ^+ R4 p - (setq y (dimy_tile tile))
# D9 y0 H. m, M7 @* j - (start_image tile)) M8 q- N* V" T. I( {: t
- (fill_image 0 0 x y color)' H! M* X: O. P; z9 I1 j" m) O
- (if (= color 7)( \: R. M, W# I( g2 n
- (progn. n# Z% p# Z- Y" q
- (if patlist (drawpattern x (/ y 2) patlist 0))
9 l2 Q( o; i# t! Q* i - (tile_rect 0 0 x y 0)
! F: k+ `- x5 m5 \: B( p - )" f2 Z# k' p+ u: h" j
- (progn# O! Z4 w) Q6 H
- (if patlist (drawpattern x (/ y 2) patlist 7))
2 {, n3 j8 z# T8 i0 [$ ~- ~ - (tile_rect 0 0 x y 7)
/ ^5 y Z. Y3 \" L4 I; B; u - ): I6 h6 V) z7 G8 f
- )0 I6 G( ~% {7 t, j
- (end_image)+ ~ n) R9 @6 S8 x8 u* e e: \
- )! M5 g4 B$ g1 ~
- ;;7 p4 Q. p# f- B k9 x4 d. e% F
- ;; Draw a border around a tile9 Q; z1 z5 T+ `2 h5 U/ F- _. l' r
- ;;
. a% B% E9 w, @) c( i - (defun tile_rect (x1 y1 x2 y2 color). ~7 U! Q$ i3 v! ]. k; [- g- U
- (setq x2 (- x2 1))
8 t% F# }( y% F$ H4 ~" E/ j - (setq y2 (- y2 1))' n$ p W' n3 S4 `$ S
- (vector_image x1 y1 x2 y1 color)
- y w- h: u; x( h( u. x - (vector_image x2 y1 x2 y2 color)6 r. p' @: C: N4 }4 t
- (vector_image x2 y2 x1 y2 color)
+ @/ O8 C$ Q/ G9 e - (vector_image x1 y2 x1 y1 color): V7 X2 f. c2 {5 R8 Y, T# n
- )& o/ ^& i' \; ]/ ~* [+ f9 F) d: F
- ;;; ^4 O$ r1 _% V0 j$ {* Y
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
+ r) h/ B( `) X3 c" L2 l: i. W - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
: Z+ \8 Y4 W. i6 l c/ W4 Y8 f - ;; list of numbers that define the linetype, and color is the color of the- o, j' ]5 |9 w/ Z* N$ b, `; B
- ;; tile.
/ p0 }7 r& a6 @% g - ;;0 T N8 y1 E; n( L% C% H
- (defun drawpattern (boxlength y2 pattern color / x1 x2* T" ?& J& ^& ]0 g
- patlist dash)
2 u4 J. l* o* G1 l0 C! y - (setq x1 0 x2 0)
- u* T' _- r- O4 C! G0 s - (setq patlist pattern)% h7 P2 Z' v/ z$ n7 E
- (setq fx 30)0 F% K: t7 w9 | h9 y1 A/ b0 p7 N) N* d
- (if (= patlist "CONT") { s2 p/ \& M4 K) r* M* I
- (progn (setq dash boxlength): K4 B( Q m" R% G
- (vi)
4 N" x# Y M6 h1 q. q- _) h - (setq x1 boxlength). x1 L3 W5 q6 {
- ); {8 [- Y0 l1 L* h% o7 A% Q
- (foreach dash patlist
T- [. ~' v7 t - (if (> (abs dash) 2.5)
: U) R4 i$ r* s: a - (setq fx 2)' R" f0 F1 g. M$ h6 _
- )' i G0 U/ e$ [9 d
- )
) e: Y/ ^8 ~" b6 B6 z - )6 ?2 |5 ?9 O) J( Q' H9 H
- (while (< x1 boxlength)' A- ^0 ?! z: y# s
- (if (setq dash (car patlist))
4 O- l6 }) b: f0 w - (progn
$ A- `( Y9 t% w' X% F4 o - (setq dash (fix (* fx dash)))" O5 h- b9 w7 B7 L( r- N+ ]! T7 ?
- (cond
# b4 L: T6 \& H! M; d9 o0 ` - ((= dash 0) (setq dash 1) (vi))4 }+ H" p' N. x8 j5 U8 m( V, F
- ((> dash 0) (vi))
: d' X* g# g$ e2 O, U# d - (T
9 W& p* L: `4 y$ i. ?1 h - (if (< (abs dash) 2)+ |0 z* I, |0 O- B
- (setq dash 2) o- O# C4 v! l" E1 c' V
- ): J+ B+ X! Y3 B) I0 r
- (setq x2 (+ x2 (abs dash)))! H# w) l+ f) f8 U) g
- )# b t2 E: g3 D1 @ n
- )
4 l( R0 _0 v$ @. y - (setq patlist (cdr patlist))8 c" B* B# W$ l( G3 u
- (setq x1 x2)
1 X6 J9 V9 n' L- j. n - )" Z4 ]$ h8 F' A+ l* P s, W' s
- (setq patlist pattern). G- Z# N; L, H+ N5 q: m; r
- ), q+ W$ h* ]' i( t
- ). w! w8 L5 I. N$ r. x
- )
; _8 W9 k |" O0 y8 j/ C& e - ;;
$ j. v7 n; A4 `* E+ I - ;; Determain state of xclip! T$ ?+ Q* u5 L7 F( d# X
- ;; Returns the group 71 value of the spacial filter dictionary.
4 x) |% d4 l* \% R9 e/ d - ;; If the entity doesn't have a spacial filter dictionary, this
$ f* P- T/ e6 b- ?9 r! n& b: Z - ;; returns 0. If it does it will return 0 or 1 depending on the0 f& g9 w, t" m
- ;; current setting of the state of the clipping visibility.
9 b; C0 a! X' h1 A* v- Y - ;;
- f/ b1 X9 K. V' H q5 ` - (defun xclipon(elist)/ e+ T6 Z, B7 d/ L9 Q$ E, m* p
- (setq hasclip T)
5 f. G1 a$ [7 [1 ?* s( h) g* r - (if (/= (assoc 360 elist) nil)
5 D$ b1 s5 J0 Y' N' T+ o/ | - (progn
6 \* r" H# q: M% _2 \ - (setq tmp (entget(cdr(assoc 360 elist))))0 l+ x2 z! v/ ~6 z
- (if (/= nil (assoc 360 tmp))
$ C' ]3 a+ l1 ?7 v8 D - (progn
7 \' l4 Z+ b; @5 f) l& [' `; @ - (setq tmp (entget(cdr(assoc 360 tmp))))
, _$ G! i3 p; ^8 F6 s% ~# n/ M( r - (if (/= nil (assoc 360 tmp))9 ^% m* ?; x. T- u8 N
- (progn
3 [& K0 c) x* K" g, V) c - (setq tmp (entget(cdr(assoc 360 tmp))))" M2 q, Q% v# h! e T% x8 [% i( p1 g' e
- (if (/= nil (assoc 71 tmp))- O2 P6 B; k) g+ y( u& i4 M
- (cdr(assoc 71 tmp))+ J8 `( p$ O: k: `# u, R* ^1 J
- (progn
$ H( u# T6 K7 C1 E5 }3 L* {5 @ - (setq hasclip nil)
1 e3 Q$ `; L& A: o% o - (eval 0)3 m8 D% k2 J# B
- )
6 R. p4 }; s5 I/ J - )
" B0 m y" R) K8 w4 o - )
, v3 U* w" ^7 t7 K0 l - (progn 3 @, d% Q% c6 p6 K3 F% C
- (setq hasclip nil)
9 i! d. d! ^+ g& u - (eval 0)
! o7 J7 d6 y: r6 v. d; Z! X - )
6 S8 X; S0 ` ^7 S - )
# y- b. K$ V# m8 B$ Z& @; t - )
1 z0 \6 Y. C# B& `' l5 v - (progn 8 S M! h4 M1 a7 h, C
- (setq hasclip nil)" Q u1 |/ B$ p. Y4 X0 V( i
- (eval 0)
7 B8 F% L# ?) Q; V, M1 N4 Z - )( H$ ^9 T e7 t7 l A. Y$ Y3 U
- )
1 T3 A$ n! W/ w0 o0 R5 K I! K2 x8 l% l - )$ G" d) u. U7 L' ^6 J( F1 |8 |1 M
- (progn 5 ^* W5 P: q0 ]' l4 e
- (setq hasclip nil)1 s% y5 S o6 Y: s
- (eval 0)+ `3 R1 H3 C$ n+ J) h1 C) W
- )0 u. D( k8 n$ [
- )
# u0 I( @" y" p9 h. { - )4 h3 a7 x: p2 [! s2 Q) z! d
- ;;' G! `5 W, y& T
- ;; Draw a dash or dot in image tile b1 T0 ~5 e5 s4 r
- ;;
1 d2 }7 T8 P& {7 ^# J9 j9 K. } - (defun vi ()
1 T1 @6 r1 a/ h/ V* K" o - (setq x2 (+ x2 dash))
( p* |0 y/ U) {$ M - (vector_image x1 y2 x2 y2 color)
6 L7 L$ W, }& Q5 T" F# ] - )
8 w5 {- i: p9 [- Z0 J/ l - ;;
5 m, M: H8 f0 h! t1 _: S - ;; If an item is a member of the list, then return its index number, else
! D. Z9 N: Z$ M& G9 o( @ - ;; return nil.
% F- B. @ n; ] - ;;
" Z: w0 G+ e( } z5 _$ { - (defun getindex (item itemlist / m n)7 K; W( t, ?4 `" U
- (setq n (length itemlist))
/ `$ y. N! R2 Z: z: V+ }# P, A9 I - (if (> (setq m (length (member item itemlist))) 0)
$ r. B2 `8 u/ a2 [/ N% e* @ - (- n m)
: |! e% u' J* K w( r" C - nil
- j( \% s1 S# v/ Q% g9 i) d* Z - )
* d% B4 ?+ u: D3 ^+ s - )! i4 N/ H; Y3 t6 D) B7 d
- ;;
d7 R7 N) ] \ - ;; This function is called if the linetype is set "BYLAYER". It finds the
# p. X3 L/ [" m0 } v# Y y: f9 R - ;; ltype of the layer so it can be displayed beside the linetype button.
8 q/ u* |; X" N* t) u% a$ A - ;;
" J; g1 F: _5 }+ `+ |, o6 M0 q: Q - (defun bylayer_lt (/ layname layinfo ltype)/ I# {- s- {: [: h9 K
- (if lay-idx
7 e% W6 m5 |/ A, K, V - (progn
4 r3 L$ `* Z( p - (setq layname (nth lay-idx laynmlst)): ?7 S/ v5 @- R6 {! r
- (setq layinfo (tblsearch "layer" layname))) ]1 u/ R: x/ `8 P& D6 R
- (setq ltype (cdr (assoc 6 layinfo)))* P9 X% K: J$ L& _/ \$ ?* U
- "BYLAYER"8 K5 z j( F+ O7 s9 q
- ), |% w6 k8 c: ]/ l! g) g
- "BYLAYER"0 z2 D, E& ?2 V% g- |
- )2 {: ]1 f$ u/ y' c
- )1 ]7 f* H% s" }0 H& p
- ;;
, |7 Y n9 I6 S7 _, I) R- W - ;; This function is called if the color is set "BYLAYER". It finds the color/ l* n5 k4 z# I. K* X9 ?. R+ w- k8 [/ O
- ;; of the layer so it can be displayed beside the color button.6 n, r5 `7 ^/ ^' O0 s
- ;;' I. h* B" D) i. o# Y
- (defun bylayer_col (/ layname layinfo color)
1 n' T9 U# G' Q - (setq layinfo (tblsearch "layer" elayer))) U2 ?' p6 P, J; ?2 m
- (setq color (abs (cdr (assoc 62 layinfo))))9 A3 A* x- C; G) ^; l2 E- j- d
- )
5 O1 M) R! o* V - ;; O" L7 k2 t' X) {+ q
- ;; Used to set the color name in layer subdialogue.' N" Q, f6 p, j; p ^+ e4 a
- ;;6 D6 D n( E$ Q& h# [1 k g _: w1 }
- (defun colorname (colnum / cn)
1 v: k' b, c2 }1 j# \6 s - (setq cn (abs colnum))
( y# _! A& G) z- x1 v - (cond ((= cn 1) "red")
" X8 ] N+ w: U; w: ]* ` - ((= cn 2) "yellow")# `7 n) @8 P4 ?- S4 U W3 {& s
- ((= cn 3) "green")
6 V, h* n" x6 x; E/ N - ((= cn 4) "cyan")! g* Y( T" N* O7 J, }2 ^
- ((= cn 5) "blue")+ b# M5 j! R; p- U/ u
- ((= cn 6) "magenta")
0 A' `2 c* x+ e1 }+ K6 j - ((= cn 7) "white")( a; E Y. p( o4 S5 E
- (T (itoa cn))0 q6 n% I8 q0 \
- )- X: x* k8 |" [6 ^/ s3 Y$ @
- )
1 j9 A- \3 v# I$ i1 j- V4 M& r! o - ;;
9 }7 _$ o9 T2 F D2 Q - ;; If their is no error message, then close the dialogue.
8 a5 e, O& ^, t9 D - ;;2 |, G/ C( ?4 `' {0 e
- (defun dismiss_dialog (action)
* O; K: B7 E% B, u - (if (= action 0)
9 F/ k1 l3 B# b - (done_dialog 0)) M9 O% P2 M; ]
- (if (= (get_tile "error") "")
" f% I# d% X3 w4 q - (done_dialog action)6 V5 J* y! v' T5 h
- )
! H4 o" Q! V/ w, b: T - )
( P' v! O; Q/ A2 I4 X9 n, c) H - )
$ T1 c( X' u2 P- j# [9 g4 o" n - % K( [0 S! L% o& `2 r% g
- (defun test_ok ()# e" B: B- z1 o4 j8 O) @
- (if (= (get_tile "error") "")( d E( Y+ H$ \6 d' j
- (done_dialog 1)
6 y5 c+ q' O9 g - )
9 t0 K- b' g! e! Z- M0 x3 Q - )+ A" \- z/ f$ k# J
2 h# U3 v2 |2 d- (defun cancel ()' E) B5 y+ }$ ^: w3 ~* M
- (done_dialog 0)) U8 f" b) {2 {0 F" _
- )
N2 p3 t% Y N; b/ u - % c/ x/ b3 O# g' h ~
- ;;; =======================================================================
( D- i6 C0 z3 `9 }" J$ s - ;;; SETUP layer and linetype lists for application, and initialize all
# n& O2 Y8 R- v' d* Z4 {# i - ;;; program variables.
' y# R4 P% j( k+ g5 w
% [5 A% e$ D* [2 R- f- (setq elist (entget ename)+ Y0 V1 t/ B" P. p3 [4 h
- old-elist elist
" x8 e1 k* D& o( q0 C. c - modlist elist1 X( T+ s4 c$ L4 Y7 y/ V. |+ U
- etype (strcase (cdr (assoc 0 elist)))0 r" s1 G+ \/ `# }7 H" }
- ecolor (cdr (assoc 62 elist))' N& y. |* _& M
- elayer (cdr (assoc 8 elist))4 l& ~4 `8 q( y$ e% U" i
- eltscale (cdr (assoc 48 elist))
$ _+ g. @1 M. Z, ?9 u - ethickness (cdr (assoc 39 elist))
5 y7 t4 o( }% T' N$ e- |' ? - eltype (cdr (assoc 6 elist))% C2 X: Q, p( x4 P
- ); s) p+ u/ x, u/ L4 V. b1 N4 S
- (if (= (assoc 210 elist) nil)% i% Y7 r- J c8 S
- (setq extru (list 0.0 0.0 1.0))
" @4 w4 F# D V$ K1 n7 P - (setq extru (cdr (assoc 210 elist)))6 `9 R" u3 x( g, t/ f
- )
/ L* |. A' O% q' h9 g- P - + P( U( [, d h: | b1 u7 [4 b6 a
- (if (not ecolor) (setq ecolor 256))/ }7 H' ~* u' Q; ]. D2 O4 y
- (if (not eltype) (setq eltype "BYLAYER"))" r5 C: [2 q# G- O+ w! l
- (if (not ethickness) (setq ethickness 0))
8 f+ S+ T W: s: ` - (if (not eltscale) (setq eltscale 1))% M; \" j. ?. I3 k X: o+ m
- ) ; end ddmodify_init2 N4 ]1 O) \; s' H$ {( u
' b9 J7 X& ?5 \! w& p& V- ;;; --------------------------------------------------------------------------0 v! I4 p. Y1 v
- ;;; Function: DDMODIFY_SELECT
+ |" m! `& p- W - ;;;8 v( W3 V7 K+ s; q
- ;;; Object aquisition function.
8 ^& e3 ^8 {" h1 ~, @+ y' R6 M - ;;;
" q1 w( x! K+ ` - ;;; (ddmodify_select)8 _' n& E, \ i1 E
- ;;;
4 \0 _4 N$ ]7 p - ;;; Obtains object to be modified, in one of three ways:
7 ~! y$ w! G8 I# w$ R - ;;;2 `! O; T% Q8 K1 s- G
- ;;; 1 - Autoselected.4 B! t! E3 ]% @& K3 s
- ;;; 2 - Prompted for.
8 ^8 G5 G4 n/ d" C5 U - ;;; 3 - Passed as an argument in a call to (ddmodify <ename> ), x6 Q8 r4 d0 m4 F& i v; Z# H( A
- ;;;% t3 [0 O# p9 y5 T2 w
- ;;; The (ddmodify_select) function also sets the value of the* o) s5 V, z* H# I
- ;;; global symbol AI_SELTYPE to one of the above three values to2 I6 v/ u: s0 F: b4 v' C
- ;;; indicate the method thru which the object was aquired.
4 w, D# n# z1 G: A. z) S - ;;;
3 o* e8 m% S4 y i0 Q& c5 L L - ;;; This value can be useful to applications that want to RESTORE g8 J- m, P4 a. A# R/ C
- ;;; an object that was autoselected to its previous selected state
7 x5 g2 Q# x& { t# W z) K6 P+ ` - ;;; when they terminate, although there doesn't appear to be any( Z; }1 L/ ]* [6 u. f/ `9 ^+ o
- ;;; way to do this right now.
& z8 |: ^& ~# g( I/ f+ M - , i/ w8 u% E" h: R* Z- U" w
- (defun ddmodify_select ()
# M: J+ U! ~) U' D! S9 G6 N - (cond: j |- |; G! I) A4 b" I' [* N! o4 v
- ( ename ; (ddmodify) was called0 g3 a6 h5 y/ Z5 H5 X6 s% H( q n* p- \
- (cond ; with an <ename> argument
+ _" M" m5 X' a9 E5 p - ( (entget ename) ; If object is non-deleted
& |1 n6 L! L, v% X- j: M - (setq ai_seltype 3) ; then return its ename.
y" ^* `9 j+ P: {" y6 ] - (ai_return ename))))
3 N# r3 E. H: k. |. N - / _# s- J0 I0 N! X* O
- ;; return auto-selected , see ai_utils.lsp, T; U2 u+ [0 U) l; B
- ( (ai_autossget1 "\nSelect one object to modify: "))
2 I: k; f; n/ n* H E - 6 A- p+ f6 M( h( j
- (t (princ "\nNothing selected.")6 [$ r7 C; J' }$ \2 Z
- (ai_return nil))
* }( X9 T$ O, C k - )9 e" @* e0 O1 ^. d- [. \% J
- )" z' ~$ |! z0 m# l
- . R! o! k$ }% s& G' X
- ;;; ============= Command line interface function =======================
A: K& q. d3 A8 @9 a v
2 K( ~) [ R) m, _/ _6 R- (defun C:MMO (). t7 c6 V' l. n! ]& P
- (ddmodify nil)0 X# Y/ @, r7 F5 g% u( _
- (princ); N7 n' c# a7 `% c/ g( n: _) [, X- R
- )
# z: F, V T3 i
9 B: h& }9 Y& p0 w, h# o- ;;; ================== (ddmodify) - Main program ========================& d' V5 J! ]+ n
- ;;;: M) T, B/ O: j% `* F1 T, G
- ;;; (ddmodify <ename> )
! p1 P1 E% [" ?+ C4 S* O% J6 b5 R - ;;;
/ }: `) F6 V7 ?6 D - ;;; Main program function, callable as a subroutine.
: w7 k& r S, I2 L1 ~/ S7 L - ;;;
# k# O1 `# a( e - ;;; <ename> = object name of the object to modify." J5 D3 g- E! X1 O, U8 N$ X; t
- ;;;
$ B; m! q1 y, H2 W6 T - ;;; If <ename> is nil, then user is prompted to select
0 ^, X- s; ?+ Y: O4 `8 N - ;;; the object interactively.
5 i% ~/ Z: _5 Q R# v6 V - ;;;" a+ ^# O2 ]. H1 F
- ;;; Before (ddmodify) can be called as a subroutine, it must( n4 p& j3 ~5 q5 ]. q5 L h
- ;;; be loaded first. It is up to the calling application to
# s8 ?) A0 m! Y3 q7 g! i2 G - ;;; first determine this, and load it if necessary.
& P( | [" ^; \7 Q
7 T6 \ ]6 C+ j* N: M- 5 K$ E6 ^ e7 Y/ r' }& z2 I( ^
- (defun ddmodify (ename /
9 v2 B4 z2 U( o0 q; v( } - 2ndpt ell_calc_area move_pt1 templist
3 P+ `& r2 K- R" T - add_mdash ell_tile n tempmod& q, \0 k% x9 O& X }: t/ q) K
- alipt eltscale name tempst_ang+ f( ]) C- a* E! N& @0 _
- ang eltype newpoint test_ok
2 `' c& ?% _6 \ - arc_calc emod next text O4 Z' }5 a i/ b
- arclen end_ang next_vertex th-value3 X5 U- q! M% L
- assoclist endpt obl tile. ^/ [, K, n$ x! i7 ~
- atprompt errchk off tile_rect& Y6 z! B2 M7 U; H# ], h5 ^
- attag ethickness old_majrad tilemode- q: a+ y z6 R4 u" ]
- attprompt etype old-closed totang( K( w# y* C2 o1 X8 S
- bit extru old-closedm tstyle
0 Y1 D1 j; X, ^9 M" ^" K - bit1 fchk old-closedn u$ M# a2 w3 o2 ]) }( c. A
- bit-10 first-10-rec old-elist undo_init( s3 `, `8 B O- G( @ ^; C
- bit-11 first-10-time olderr upsd
W3 g4 N, G7 j9 I' a - bit2 first-11-rec old-fit v4 l1 {/ K6 v M, Z8 L
- bit3 first-11-time old-idx va6 `. C' H* ~& C' Q0 u5 ]8 p2 {
- bit4 fit oldlist value
5 N* x3 g/ c# p - bit70 frozth old-spltype ver_4
3 V' ^/ A7 A( Y, D/ H - bit-70 f-vis old-u ver_ang15 ` u- I4 [, ?( i1 f
- bit75 fx old-v ver_ang2# s" M# D6 l# K* A! R
- bk-up get_color on ver_col; H: ?6 ]: [3 |* Z7 {4 N- A
- bkwd getcolor onoff ver_colsp
+ c7 X! `* P! r - boxlength getindex on-off ver_eangle
6 S6 |1 A; I8 H% v - bylayer_col getlayer patlist ver_hght7 E8 t2 Y$ d, N# L7 N, l( N
- bylayer_lt getltype pattern ver_majrad0 e) N- d% L0 j5 c& O0 s
- calc getthickness pltype ver_obl
% N* f" C5 o" k0 C$ K9 g - cancel globals polytype ver_pt1
6 ]; P- @' `9 h: {1 T8 [" q - cir_calc ha pre ver_pt2/ e" p. A1 w4 [! [
- closed ha-prev proplist ver_pt3
) _% Y6 s* z& G& [2 } - closedm help_entry pt ver_pt4
; w6 l* E# @4 t - closedn hght pt1 ver_rad
. d) m5 `$ q4 }8 b8 N - cmd icvp pt1_eq_pt2 ver_rot) S; ]$ I4 k$ `( k: ]
- cn image_add_vector pt2 ver_row
% e! d2 j/ v; H- g# \) x - cname image_clean_variables pt3 ver_rowsp. C* x0 b. q) f+ y$ j
- cntl-pt-indicator image_cross_product pt4 ver_tag
3 ]3 \" Z1 d6 P, T+ {- o - code_71 image_disp_opt ptype ver_u
* L. ]( Q( @! z/ N) \( a* f+ J - col_tile image_dot_product radius ver_v- W. C$ u" p6 K$ y/ s
- col-idx image_normalize_vector rational_spl_flag ver_wid) i& d1 _' Y5 Z3 u( ^
- colname image_rotate_vector reset ver_x1
4 Z. p4 {$ x6 l+ }8 u - colnmlst image_scale reset_flag ver_x2) O0 w f$ ~! Y. T4 p7 q
- colnolst image_scale_vector reset_lay ver_x3/ o" @* @9 G+ e2 T" A
- colnum image_update reset_lt ver_x4
; o9 n/ u4 T3 q+ N# P; X/ k - color index reset_uv ver_xline_pt1! z# Y. N: v, J4 y- _+ x
- colorname inv rot ver_xline_pt25 ?4 E0 L0 D$ Y$ {7 o) z5 h
- colorno item rows ver_xline_x1% l5 A. M9 |: M
- col-sp item1 row-sp ver_xline_x2
3 r+ B1 a6 Q! R8 W# |/ v - columns item2 rrat ver_xline_y1, p( G5 R: w5 k& s! b) W0 f
- con itemlist s ver_xline_y2% T3 `2 p& n _& i' Y( z1 y
- coord jlist set_action_tiles ver_xline_z1
9 g2 q# B# c, Y - ctr jlist_act set_just_idx ver_xline_z2: U) A' W3 J# C3 ]& M/ H: G- h
- cur-10-rec just-idx set_tile_bk-up ver_xscl- g0 I0 }2 h/ K& S
- cur-11-rec layedit_act set_tile_cntl_pt ver_y1
7 t( x, s% g" {( {. f& M0 g4 S3 p - cvpname lay-idx set_tile_data_pt ver_y2
- Y; Z! L' p- e; e$ r - dash layinfo set_tile_dirv ver_y3
% F' p) ]+ g# u" Y$ z - dashdata laylist set_tile_edges ver_y4
5 p" f0 C: I$ }/ @# ~/ F - dashlist laylist_act set_tile_endang ver_yscl
. B" Q* i: j c4 h( K( y! H - dashsize layname set_tile_hght ver_z1
5 k( g! r' S8 F6 f/ h - data-pt-indicator laynmlst set_tile_icvp ver_z26 L8 F* b/ l- T' z7 h' H# }8 e
- dcl_id layvalue set_tile_just ver_z3
+ e6 R9 f- p8 B" C/ e% p - dd3dface line_calc set_tile_obl ver_zscl
' z1 y2 [+ ^+ I6 k - dd3dsolid linetype set_tile_prompt verify_a0 e b+ R: u H. y5 g5 i/ S4 [
- ddarc list1 set_tile_props verify_d
/ c) x" `# A( p" Y; D! ?- k( b - ddblock longlist set_tile_pt1 verify_i
4 v9 E, a7 Y3 L a - ddbody ltabstr set_tile_pt2 verify_xline
/ M. V+ \- e& K! B' x% [ - ddcircle ltedit_act set_tile_pt3 vfy9 }) H. g! I" S
- ddellipse ltidx set_tile_pt4 vi
$ J" E5 A4 b, c - ddgetprompt lt-idx set_tile_rad vlist- o% E; S5 h" i6 s/ ?* S T
- ddgettext ltlist set_tile_rc vname
+ {8 d. @& F0 d: y& ?5 { - ddimage ltlist_act set_tile_rot vpf
4 w" ?6 [, r" k! I" i" F/ y - ddimen ltlist1 set_tile_scale vpid T# ^7 h7 D! T7 z- L
- ddleader ltname set_tile_spline_props vpldata# S$ B+ O6 H" Z. p3 R3 F
- ddline ltnmlst set_tile_stang vpn
8 f$ y8 ?5 S9 z - ddlist ltvalue set_tile_style vpt
" j. y' h) b5 V# C - ddmline ltype set_tile_tag which_tiles
+ B3 f( `2 g: O" d; A - ddmodify_err m set_tile_text wid, `2 a& J4 a" z
- ddmtext majrad set_tile_vpt x
) s/ \$ e; L- q2 f& W5 x - ddpline make_lay_lists set_tile_wid x16 i l- U& @( f/ v7 Y$ F
- ddpoint make_lt_lists set_tile_xline_pt1 x27 r2 x% E' g4 F: W! U8 A2 ]
- ddray mdashlist set_tile_xline_pt2 x3
0 a/ e! x: Q: A; w - ddregion minrad setcolor x4
: C+ X. _9 [) R; w9 N) O* E - ddshape modify_3dface shght xdlist
* p/ y0 n ?% G; X& v4 A0 B0 D4 u2 m - ddsolid modify_3dsolid showpt xline_pt1
& {/ a( R7 d7 L& ]$ w0 N' X. ` - ddspline modify_arc size xline_pt2
! m1 q; H/ N8 l - ddtext modify_block slist xline_x1
/ O( I0 o! r$ \4 ? - ddvport modify_body sname xline_x2
6 B) o/ @8 a4 {( H7 p- R - ddxline modify_circle sortlist xline_y1
* v' s$ j% l8 b# Y2 e3 O& @ - denom modify_ellipse spltype xline_y2. C. Z& c6 H, b
- dialog-state modify_image ss xline_z14 l& K" _* j1 W5 a
- dir_pt modify_line st_ang xline_z21 s; t& |, Z) B1 |
- dir_ptx modify_mline stpt xscale
/ ]* E8 O( R* g2 ?; s% o& N - dir_pty modify_mtext style_act xx
) O1 T( [8 q/ N. I* g* u9 i - dir_ptz modify_point style-idx y% E/ U' j8 s7 f+ D; E# s8 v9 d
- dismiss_dialog modify_polyline style-list y19 w% N" D/ X) | H# q/ V
- drawpattern modify_prop_geom tagval y2- T x4 {$ \: ?( D
- echo modify_properties temp y3
9 ^9 f$ l' K) y9 Q - ecolor modify_ray temp_color y43 [) n$ L7 @) ?
- edge1 modify_region temp_dir_x yscale0 K" b% N* {- D1 y' D; V
- edge2 modify_shape temp_dir_y yy4 |) O8 ` Z& a- g! S
- edge3 modify_solid temp_dir_z z17 L% G7 n: {/ ^9 J7 _
- edge4 modify_spline temp_xline_pt1 z2
" I! B* W6 a$ ^# y6 `7 p5 | - edgetest modify_text temp_xline_x1 z3* K% {8 p4 l6 X- P( R/ j
- elayer modify_vport temp_xline_y1 z4 A/ |& O& l5 R
- elist modify_xline temp_xline_z1 zscale2 w% a: X0 n' X2 O6 i x
- ell_calc modlist tempend_eang zz4 w5 g+ x/ O' Q {
- dir-idx safe_ddedit ver_MtextWidth xcliponoff' w1 e* ^( [- s. z
- MText_style
7 P( ?/ C9 z/ Y- J- _- M- c - )
. a; P3 s. y: X5 [
: i2 R% c% K1 b0 ?- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho6 A8 _( j* `8 w- }7 }$ P. q {& F
- old_error *error* ; save current error function7 g, C, M* v% s( p: @* c
- *error* ai_error ; new error function5 N: a9 U' x( M7 ?" g6 O! O. |2 }
- )
* }" q" G: `7 B0 O( |8 | { - - f' _1 G! j |" P( {% m- O- x
- (setq old_pickstyle (getvar "PICKSTYLE")) ; save old pickstyle. e! d9 |2 N5 N" {
- (setq new_pickstyle (logand old_pickstyle (~ 1))) ; turn off group selection F' H9 X" x& ^ z. Y
- (setvar "pickstyle" new_pickstyle) ; bit and set to new value. \7 F) P1 R. V9 m: u
- ( N. w2 R2 V9 E& m) i2 `
- (setvar "cmdecho" (cond ( (or (not *debug*) (zerop *debug*)) 0)
" O% D) `& Q8 K+ ^4 S - (t 1)))
+ Q3 G/ x7 x7 J4 Q! A& m7 ` - (cond7 q+ s, G, F5 J* T+ L
- ( (not (ai_notrans))) ; Not transparent?: S9 j8 D! ]; z- }; J
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?% c! u# u \( p7 R+ ^+ O. {
- ( (not (setq dcl_id (ai_dcl "ddmodify")))) ; is .DLG file loaded?
- _8 L3 j" A0 m! @9 \ - ( (not (setq ename (ddmodify_select)))) ; object to modify?4 @& W: q8 e4 |- o! s
- h: D/ }# E' t7 n* w
- (t (ai_undo_push)9 L9 c# J6 L: D6 h! c
- (ddmodify_init) ; everything okay, proceed.
! k Q0 e, p7 v9 `4 k6 h - (cond: j2 M* w8 ]# C/ T( a; B
- ((= etype "LEADER")9 d& K, ]( q$ u6 i9 ~
- (setq help_entry "modify_Leader_dialog")
# R3 [: \. Q8 _( e - (ddleader)# j- h/ G, P$ A" l$ H2 u9 r
- )1 i% W( I' t/ O r8 {/ L5 Z4 M
- ((= etype "ARC")
5 x' H7 U/ y# }* z% h N9 b - (setq help_entry "modify_Arc_dialog")" v; d5 L9 L1 m5 I& t7 I' M
- (ddarc)
' r, n9 s( E2 K1 b- g6 Y - )4 c4 r1 ^' P9 h
- ((= etype "ATTDEF")0 P" Q0 ^- z; |
- (setq help_entry "modify_Attribute_Definition_dialog")
* t! r+ D7 i( n5 t1 V( O - (ddtext)
! q. k% c( K' e4 B2 o - )
# ^8 { P+ f& E - ((= etype "CIRCLE")( R9 c r; g" A9 A5 n
- (setq help_entry "modify_Circle_dialog")
8 ^8 [% C0 v0 b - (ddcircle)
+ C3 }' a- t2 j1 t - )7 Z, z+ e9 |% A; u( y8 z
- ((= etype "ELLIPSE")7 [, i. y/ X( P( ?: L% L* N! d% k
- (setq help_entry "modify_Ellipse_dialog")
1 T; @% K& E. T, z" x3 `/ K - (ddellipse)
7 k) U5 D$ H" v% i) O2 Z - )5 F+ {: ?" d' I7 s. W E
- ((= etype "3DSOLID")2 V2 F9 P [; T( q) F
- (setq help_entry "modify_3d_Solid_dialog")
' o; \* ]1 g( ~/ [ Z3 G - (dd3dsolid)
$ u0 ^% R& R$ O! R - )7 i \/ U# h, K4 u+ Y& C
- ((= etype "BODY")
$ V3 J `* w/ [. h8 n, D - (setq help_entry "modify_Body_dialog")
. l2 C* h$ ^6 X; h) j - (ddbody)4 h: l" S$ y6 s7 B* K8 S% |
- )& r q; I# _( m& A7 H1 {) e
- ((= etype "REGION")* N% F5 m8 ?5 r& f
- (setq help_entry "modify_Region_dialog")
9 h8 H' c& ]+ _; h3 G8 v - (ddregion)7 T) e/ }% E: _/ v' |! u
- )' ]' r, W7 v, t
- ((= etype "HATCH")
% H: F8 ]1 h/ ]" T - (setq help_entry "modify_Hatch_dialog")' b; e) a8 |7 {8 e( D
- (ddnewhatch)+ ]& h$ d, D- w3 c
- )$ S# ^+ q9 H. z- y/ Z! \' I
- ((= etype "SPLINE")
- Q# s- }+ E1 h5 u/ H* V - (setq help_entry "modify_Spline_dialog")% ]8 f4 d! _. S+ U1 D4 U C" @' f
- (ddspline)8 z/ N- m( e& I7 f9 r" W
- )
& @5 Z5 ]8 G0 a - ((= etype "INSERT") ; see ddblock for help_entry# `' v( g" i/ x* k7 m$ V9 X# a/ p% X
- (ddblock)* Q# y/ W% }' ^0 Y2 F/ p* C
- )
( P$ t$ |; M8 M: x - ((= etype "LINE")
- x m0 P g% m - (setq help_entry "modify_Line_dialog")
8 s; y; j: b+ k - (ddline)
/ [7 x; x7 \: D* m% l - ); \3 L8 v% x$ ]1 R- K8 `8 ]
- ((= etype "MLINE")# {3 q' R. M9 ~$ ^! c4 @
- (setq help_entry "modify_multiLine_dialog")' C+ M" t6 x1 E. C4 B% r5 M
- (ddmline)
2 d3 c: p+ b p - )
2 D- o% `. ?- J: B - ((= etype "RAY")
) O- y, p/ i( H - (setq help_entry "modify_Ray_dialog")
, O3 w8 a; b8 g) _ - (ddxline)
' R, R. |" i: K& H: { - )
, r H$ g, F( t% s3 Y - ((= etype "XLINE")
4 z- K& q3 k5 f8 { - (setq help_entry "modify_Xline_dialog") K( u) ?* g O& k9 p4 Y
- (ddxline)
6 K! o2 L9 I* h5 |' K6 i - ). y1 l0 O2 C2 Q# h
- ((= etype "POINT")
; |; P) f1 q6 i3 f' Z4 b - (setq help_entry "modify_Point_dialog"), N. u& r5 z, ?$ x% m$ C0 O
- (ddpoint)" q; g4 |: \6 G" e+ ^6 i& a* D
- )% W; l3 @" {/ [; W9 l
- ((or (= etype "POLYLINE") (= etype "LWPOLYLINE"))
+ A, s! j- R, N; D2 p- ` - (setq help_entry "modify_Polyline_dialog")
7 X9 Q% b3 d* N# W* v& r - ;; If a 2D pline, check to see if it is planar to the current4 f( X! |0 ]. [
- ;; UCS, reject if not. To see if the pline is parallel,
% |+ |# v ^$ Y- ?" t - ;; the 210 group (WCS) is added to the current UCS origin (WCS)' c4 I1 G9 q' j7 p% }
- ;; and then converted to the current UCS and checked to see if
x; Z3 O6 m5 u2 s; L - ;; it is equal to (0,0,1).8 B' E) W7 m0 O% Z
: K- U1 W; |" b; f, T/ ]* `- ;; Incase the 210 is default and not in the dxf list.
) z+ I3 o( O) R0 w6 D! j+ t5 d - (if (= (assoc 210 (entget ename)) nil)# Y. ]( r& \4 P
- (ddpline)
# f [3 V3 ~: J' _- r - (progn
- D/ p0 _2 ~4 {) ^. d - (if (and (zerop (logand 120 (cdr (assoc 70 (entget ename))))), V& ]6 ]$ w! |& K! L! r8 n
- (not (equal '(0.0 0.0 1.0)
4 _* H1 i: V: v* z - (trans (mapcar '+) T* _& ^# p0 I4 P* o$ t
- (cdr (assoc 210 (entget ename)))
8 E6 y0 k2 b1 Y: q3 I - (trans '(0.0 0.0 0.0) 1 0)
2 Y8 E# ~. R7 b* o& E. [' Y - )
, ?& y5 W$ z: a; z" Y. k - 0 1
/ d- [+ M/ l9 F- y, ~% H - )& s" G7 r. g& u& k
- 0.0000000001 ; fuzz
- ~% t& m2 Q% @8 z4 c1 w9 b: z - )
3 C( ]6 G9 k* B. z8 ~ - )# H! c# a* m6 X- f7 h
- )
! d+ H# l4 f9 ^6 e3 [ - (princ "\nThe 2D Polyline is not parallel to the current UCS.")" G; h3 W. k+ c; Z+ F
- (ddpline)7 n5 F0 D5 }* i
- )
$ l7 x% B" B8 E - )
* x( I0 b% V2 l0 G, Y& g. ` - ): ]8 o4 t6 J5 ]
- )
' O/ a) s0 N' `9 n) a" H - 8 X5 J3 r9 j: k# C0 M6 V; a" r/ I
- ((= etype "SHAPE")4 B4 X& h( E: W2 _ C+ Z' u
- (setq help_entry "modify_Shape_dialog")
7 u" I6 C5 u+ ?( V o( K" k# A+ Q3 N - (ddshape) o5 F) V) ]: z: f: D
- )* H- ^/ U7 n; b* M
- ((= etype "SOLID")
) r- Y5 A& ~8 ?$ g7 v' X/ d - (setq help_entry "modify_Solid_dialog")* }; _/ U' f. N
- (ddsolid)
+ a( o! z4 A5 d2 T. V - )
. d* [& U/ M! c) N! W# S - ((= etype "TEXT")' G1 `4 H5 D7 j! w1 K2 \ C1 h. u
- (setq help_entry "modify_Text_dialog")
; |7 g1 @# ]$ F; B - (ddtext)
( S8 {+ k; A" w2 K3 P) D - )) f4 y; R; A" `7 d2 j* C$ o
- ((= etype "MTEXT")7 g! }. E# z: T7 j- |
- (setq help_entry "modify_MText_dialog")
0 R$ C M9 H4 t7 a - (ddmtext)- Y" d2 O+ |7 a2 k
- )" ?9 d% N _4 |5 D
- ((= etype "TRACE"). x" j# u" Q/ M
- (setq help_entry "modify_Trace_dialog")# E$ `8 a: K0 b. l8 e O- d( L4 L* ]
- (ddsolid)
8 U" a+ K$ J- H% V7 h6 j - )4 ?& I& @4 G1 k2 h0 R" \0 P1 Y) z4 A
- ((= etype "VIEWPORT")9 d l# R: G3 B% E" v
- (setq help_entry "modify_Viewport_dialog"), c- `$ t, R% t+ {; g
- (ddvport)+ @; Y+ V0 t+ J* P1 r3 i
- )
+ K8 {% ~0 g: E* M1 H+ ^9 H - ((= etype "IMAGE")& B- p! R8 A# X1 J' A& g
- (setq help_entry "modify_Image_dialog")
# t; R6 v7 ]3 V - (ddimage)
0 R8 [7 a, n, {" w - )
: B2 S( s5 U2 @' T# b z4 \9 } - ((= etype "3DFACE")
4 k& a) }4 n6 [& p1 \9 \0 f - (setq help_entry "modify_3D_Face_dialog")" V Y" h: K- \( S b
- (dd3dface) K5 V4 N9 ~8 V; ] T4 Y$ N
- )2 l- I8 n8 F/ [/ n
- ((= etype "DIMENSION")( e1 I# a' @+ H* [
- (setq help_entry "modify_Dimension_dialog")
8 G( Q; E! d k% ^6 o+ N& w- J9 G - (ddimen)& s, _/ j6 P- @1 ^* b1 f1 e
- )) x! J: P+ z9 D Z8 H9 s7 A
- ((= etype "TOLERANCE")
4 p: |, y- F% |6 v+ f - (setq help_entry "modify_Tolerance_dialog")
" [ z0 V) W5 A" s) J' o: ? - (ddtolerance), \/ }3 S) P1 ^: d+ f
- )
6 m$ g) i7 {- N# s( |2 v2 [ - ;; Fall-through condition changed by MCAD for MDT 1.1 release.
9 J" u6 I/ ?$ U5 O2 B" b; } - ;; This allows DDMODIFY to work on any custom object or any new object type
7 w7 g' F& _, E7 P* ^ - ;; that isn't specifically handled above by calling the more generic DDCHPROP.2 g5 b/ ^8 M2 k, Z5 ^- r
- (t" R; x# F. M- J$ h
- (if (and (not ddchprop) (not (load "ddchprop" nil)))
% S0 z. V5 z3 N, T7 X - (princ (strcat "No dialog support for object type: " etype ".")))
* M) V: }( D' N6 v' F$ x( Y - (progn7 R& S0 [, @. d; N. T0 N
- (setq tempss (ssadd ename))
- F' S. t- N. n( q( y+ @ - (ddchprop tempss)
: d; u, Z3 O' \7 z( y2 f - (setq tempss nil)- e8 w0 u7 |. t
- )
8 s9 e8 j9 z8 \+ n - )) ?( C8 |) C- {& ]; K$ m8 @
- )
2 x0 |) t& p& d; y3 V - ;; Previous fall-through condition.7 _/ U# c! m4 G [
- ;; (t (princ (strcat "No dialog support for object type: "" t3 I3 v3 l- u; b3 S! s* r
- ;; etype "."- Y6 V0 q! W# W0 V6 @' z) G' {' \
- ;; )
4 A5 N/ b% B& U) T) f+ P5 ] - ;; )0 g" x7 k2 a$ Y- _1 [7 w
- ;; )
* [, p" L( m7 d# C# r ]! i6 ~6 L - ;; )
* B& O% a* m W1 n0 x' A" C5 s - (ai_undo_pop)7 M7 |# ^" ?( a! \
- )
& [( j3 l" j: Y _ - ), Q- y8 {$ a) S4 X. s! G
6 F5 P3 D) E7 q, {5 W- (if (eq new_pickstyle (getvar "PICKSTYLE")) ; if user didn't change pickstyle/ F$ M j' g3 f. k) Z
- (setvar "PICKSTYLE" old_pickstyle) ; transparently then set it back- l9 P q% ?7 F+ F6 ^
- ) ; to what we started with
* o& u2 I0 p2 f; z - - ^/ s1 w& n8 S: ^6 D
- (setq *error* old_error)
, {5 \5 t8 b, k8 l: g - (setvar "cmdecho" old_cmd)
0 s" F$ {- v% r) u+ E( k - (if (not reset_flag) ; if object was modified, then2 C6 X& m$ b3 b- l4 l/ k. K
- (ai_return ename) ; return it's ename to caller, q6 X2 l; s- h) x
- )
+ ~' }3 o, O" m/ G! W+ [ - )
4 ~( {* f7 A* E3 Z
, z- V* J0 ?# o3 {5 N- (defun checkForLockedLayer (ename)9 N* ?8 c! z2 H3 Q6 s3 n( f9 m; F
- (setq layername (cdr (assoc 8 (cdr (entget ename)))))
) M) W3 ?9 v, h! ]9 h - (setq layerflag (cdr (assoc 70 (tblsearch "LAYER" layername))))/ p' ^6 E4 ^ Q& f: e) U/ H. A1 I
- (if (= layerflag 4). [6 R( L% X9 I3 q/ t9 _
- T6 f4 V! x0 e; P5 i5 e
- nil8 K5 C6 B+ ^5 Y$ W; r- |/ M" Y
- )
! M9 {$ P$ r( T" i: z - ). C$ k1 F$ w1 `/ [
7 [+ T6 e$ \4 `: N* b2 o' w8 |- (princ " DDMODIFY loaded. ")- V/ x9 Y* v3 n/ O
- (princ)- u/ Y5 R* i2 k& d D* P2 }
- ;;;???;;;---------------------------------------------------------------------------------------
4 V5 Z0 C) d# R4 b: b( e - / C& z2 E+ [# U- a
- ; Next available MSG number is 8
" [$ o! K, ]1 y% p% F4 j - ; MODULE_ID DDUCSP_LSP_
7 T% S8 O2 V5 N4 \& B5 t/ X - ;;;
# }2 f8 F& O, {- s0 I2 j5 E9 y - ;;; dducsp.lsp. C1 R% P! r2 ]4 v# h
- ;;;
) i3 A/ B9 e) u/ X4 S# E. J- A# b5 ` - ;;; Copyright 1992, 1994, 1996 by Autodesk, Inc.
+ z+ r9 s; j+ M7 w" X- K g - ;;;
( x9 l5 |7 d2 @5 J. ^ - ;;; Permission to use, copy, modify, and distribute this software
$ F+ D/ F6 @4 R( y5 l$ w - ;;; for any purpose and without fee is hereby granted, provided
1 | o' j6 m3 H - ;;; that the above copyright notice appears in all copies and
" s8 I6 `* c# ?. ~: j - ;;; that both that copyright notice and the limited warranty and
' D; E, q2 x) `0 i; G% {) n$ z+ H; F5 ? - ;;; restricted rights notice below appear in all supporting
3 r" B' y: K. @. |) w2 o, I - ;;; documentation.
6 g( }4 H+ I5 z' Y - ;;;
; o- l1 @ H/ s# w" ~2 Y: A% A - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.! n+ L9 c4 n k5 _6 B. i
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
+ Q* d( V, V$ E+ g0 ]4 M - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
6 a4 x% s) c* U$ \ - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE. I4 M% ~% ~- B6 X' j
- ;;; UNINTERRUPTED OR ERROR FREE.
% ^& |+ D- I7 g' { - ;;;
5 v, }# ^, s7 B6 j - ;;; Use, duplication, or disclosure by the U.S. Government is subject to" s" ?6 Z1 s% V- v
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer$ S7 H1 S% M( r+ ^
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) ' H. E/ v/ p: G% t- \0 J! w: _$ W
- ;;; (Rights in Technical Data and Computer Software), as applicable.
8 W+ G+ Y- P. Z# i8 k% @ - ;;;% W7 m B J; `- P
- ;;;. t8 o% ~; r" M8 b4 S t; t
- ;;; C:DDUCSP - User Coordinate System presets dialogue.7 q4 Q# Z8 G! _6 h: J
- ;;; $ R ]/ u. G. j5 E2 P- s- q
- ;;; Uses DDUCSP.DCL for the dialogue definition. The
. K3 R8 J( ~% ^- |/ } - ;;; slide images are in ACAD.SLB.. Q9 U3 n+ X0 G0 j5 \8 A6 t/ F" d
- ;;;
6 _9 P! A" A) ? - ;;; ===========================================================================3 d' @( D! s$ K; W
- ;;; ===================== load-time error checking ============================
( b/ \4 k8 |/ k - ;;;! @* Q: _* m% T& ~9 i
7 h" N$ A9 K* q4 f; R* ?- (defun ai_abort (app msg)' J$ b7 L) o5 B) z B" ` `
- (defun *error* (s)
% H; B( s5 a! T3 x7 a" _' g7 _+ s# R - (if old_error (setq *error* old_error))4 \+ j' A4 @8 h! K/ c( t% x I* @9 t
- (princ)
" k2 U* u: U5 H4 Y1 D7 j1 j - )
+ p, J2 p |) R/ |% l5 a - (if msg
* x7 ?5 }) Q7 \ - (alert (strcat " Application error: "
( v' i+ P& F2 t) P% s1 @. V - app) u6 f; t6 @, ]) X6 Y4 Z8 p F/ i$ ^8 e
- " \n\n "
+ s C) j: m. d* Z$ X - msg
! F3 R4 X4 S, w6 m4 o - " \n"
1 ]2 I/ _2 A& c0 E! V7 o+ Q& Q+ G - )
; V2 e I5 K# M9 f6 @. W3 v: [ - )
$ k& J0 F, w+ S; @8 l, B - )
3 r+ M) ~. y: |# k; u9 z1 A - (exit)4 w3 K4 R8 u8 i L; ~
- )" W/ r) f$ X7 \/ w. N
$ w: b; k3 Q R" D9 l- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,, a" L, C2 s: r+ `$ ^/ j
- ;;; and then try to load it.
% [, d6 T2 o! ?* ~* e9 a3 J - ;;;8 \5 J/ ^: a& `: Y& W# N
- ;;; If it can't be found or it can't be loaded, then abort the
, I# ]! o- I) ?. w* f! U - ;;; loading of this file immediately, preserving the (autoload)% {, z6 G( { \3 d" p- j
- ;;; stub function.
% b* i$ y, n4 a/ C7 r# m. e
5 _$ Z: R" v+ E( R1 s8 b- (cond
- { r! \6 {* R& a! q) c0 t. r - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
4 t0 q5 b9 x3 Y- \- ?2 L# l# g - $ \* O- F( c. r& f. T
- ( (not (findfile "ai_utils.lsp")) ; find it$ V; L9 ~6 h" } r
- (ai_abort "DDUCSP"
3 m9 x- o; g# q0 J9 d" z5 O - (strcat "Can't locate file AI_UTILS.LSP."( @# B9 E- a: @- Z
- "\n Check support directory.")))
1 I( F% E/ C2 |: I& T
6 o9 y0 y6 e4 O, v* N- ( (eq "failed" (load "ai_utils" "failed")) ; load it; _. ]4 L' d7 e5 k8 s% ~
- (ai_abort "DDUCSP" "Can't load file AI_UTILS.LSP"))# e, i: l1 E5 d p+ a0 b! ~ Y
- )
/ @4 ~( I/ X7 P# g% a2 S- { - : t/ a; V% k! ]! P0 t% x+ l+ x& V
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP' S; e5 M1 ~& e2 c4 U* D
- (ai_abort "DDUCSP" nil) ; a Nil <msg> supresses
R1 }; O! ?9 ?/ S - ) ; ai_abort's alert box dialog.
& a! O! A" j* w! h - : Z' w% @* }8 o) N- ]
- ;;; ==================== end load-time operations ===========================* t3 F6 b. b6 {
- 7 Z+ Y% R' \5 e* [+ i6 s
- (defun ai_ucsp_start ( / program)/ V6 i$ Q* ^! m
- ;; Get program name
8 @7 d* O1 u# I/ _, c' t6 U - (if (not (setq program (getvar "program"))). c. s# j$ ^& M) `+ V
- (setq program "acad")
+ ^ p% \) [! A3 ~ - )
. l, H& A! Y$ u' R; o3 q - (foreach v0 '("world" "left" "cview" "top" "front"
- }5 p* v& n3 k - "bottom" "back" "right" "prev"), U! N( h7 W3 @+ V' L
- (start_image (strcat "ucsp_" v0))6 W; x9 v2 s6 P
- (slide_image- y7 N9 A* Q) [9 A1 }) U
- 0 0/ x% ^7 }# i) ]
- (- (dimx_tile (strcat "ucsp_" v0)) 1) (- (dimy_tile (strcat "ucsp_" v0)) 1)
$ E5 ?8 A4 M9 y* o. q - (strcat program "(u-" v0 ")")
$ u& p Y0 _& N6 a - )
. x" |+ @% R5 @% o! m" S* i& k; J - (end_image)* I* P* E9 N. U. u6 B
- )& C- H2 u- p8 e
- )0 ]! z3 L% R- J+ w9 |
- ; M' @6 A, C. F
- (defun ai_ucsp_set ()9 C) D. U2 @9 W
- (if ai_ucsp_sv
4 t) \3 ]4 L1 o/ ]6 M$ ]. ]5 ~$ i0 }) J - (command "_.UCS" "_V")
0 n1 F' Y: \9 O - (if ai_ucsp_prevs
& m# {( P; Q7 I# L - (command "_.UCS" "_P")/ @/ y! N" O3 r' f
- (if ai_ucsp_chg
/ W: b6 f8 a _; Y0 b - (progn
4 c2 g+ o3 ~* J, A - (if (/= ai_ucsp_a "*")
( B* _: ~( {1 ~" x7 | - (setvar "LASTPOINT" (trans (getvar "UCSORG") 0 1))
. k# O/ e! s* p3 U4 J4 f3 T - )
+ K; B' v: C! i+ g1 t - (if (< ai_ucsp_pick 6)8 T" z" F |/ {
- (setq ai_ucsp_set0 "@")
5 }3 \& `' t% d5 R8 B - (setq ai_ucsp_set0 "*0,0,0" ai_ucsp_a "*")# I- }9 K0 X! `0 M
- )
5 ?9 P: w, R9 z* @ - (cond ((= ai_ucsp_pick 0)! x( r% D, p) h
- (setq ai_ucsp_set1 "0,-1,0"1 {- c0 x \; t* |: l$ {, b7 |
- ai_ucsp_set2 "0,0,1"
+ d2 ]$ y; r" X* X2 H - )% j" D. x" T: E) b3 z' p1 r* g, a
- )1 {3 [# Q, X- N: U6 {
- ((= ai_ucsp_pick 2)
/ f2 f" C7 @# |1 G - (setq ai_ucsp_set1 "1,0,0"
" `# X9 H" s, r7 f0 d - ai_ucsp_set2 "0,0,1"% M( f( q, R/ U2 g6 l
- )1 n# n# p2 |& E: X
- )8 B% L! @: |" c+ e T8 r/ q
- ((= ai_ucsp_pick 3)# s$ ]* H [5 W& Q O
- (setq ai_ucsp_set1 "1,0,0"
8 C$ ~; f& g9 w% O: E" l - ai_ucsp_set2 "0,-1,0"0 q7 ~; s) b, ^7 r* L4 L
- )
4 ~6 u. O5 M! i' T5 \/ e! t j E - )
3 k9 R" l H7 ?$ T - ((= ai_ucsp_pick 4)5 n8 R) H* S( z+ {1 ~4 Z; U
- (setq ai_ucsp_set1 "-1,0,0"7 ?! B: A1 {2 k) j% d" P- ?
- ai_ucsp_set2 "0,0,1". a( H) V1 q4 N: s
- )
4 O8 j/ P* G2 P7 E - )
$ A9 l% G" p& x5 a" I - ((= ai_ucsp_pick 5)
. w Q4 K; D" M) u - (setq ai_ucsp_set1 "0,1,0"
8 u" @. X$ F/ ?+ Y* l( H8 G2 @ - ai_ucsp_set2 "0,0,1"
" E) a6 {, z4 ^+ H - )% D7 i- M( x. [6 z+ k
- )
: M6 |' k3 y' W4 V - (T6 {+ c6 M4 z, [
- (setq ai_ucsp_set1 "1,0,0"3 c6 ^7 V- N; l+ Z. @# c
- ai_ucsp_set2 "0,1,0"3 L# ?6 W$ r) k. h+ b! p
- )5 K* b" `4 N: ^! g( g1 F7 J5 O% v- `
- )
' h+ O" X3 u! ~5 _ - )
. X, I8 A, Q. d. @* L0 } - (command "_.UCS" "_3P" ai_ucsp_set0 1 v0 h; P+ H B' f, R
- (strcat ai_ucsp_a ai_ucsp_set1) 5 g. t Q2 U' |) ~. Y8 u
- (strcat ai_ucsp_a ai_ucsp_set2)
+ s- d/ o( Z* \* r# ^: s' ^+ ]$ l - )
5 Z. h+ E, T$ x# u: o5 s - )6 g ~( ~" T* L1 d$ |
- )
' x. ]; P7 d! J$ V+ }( A* \4 _ - )3 t$ j# E* U* G$ Q
- )
, L. c/ h5 i( ~1 E1 K - )
8 G( ^, G( o" T+ l# d; v e; e - % r; R8 P% e6 }! x7 s7 v
- (defun ai_ucsp_p (val currtile)1 R) F* |. N; r; V; t
- (mode_tile ai_ucsp_currtile 4)
5 S* e' H6 m+ W5 T; S. S" M+ r - (setq ai_ucsp_pick val! U+ `( p9 U Z: v0 n/ Q$ l
- ai_ucsp_sv nil
& d! K# }4 ^5 { - ai_ucsp_currtile currtile& @4 d6 y6 l7 \. N; N, J2 Q
- ), c% R& |/ Z. C
- (if (/= val 1)
. k _9 O1 q; m' |* E - (setq ai_ucsp_chg T)1 g, K4 Q" }, \; f
- ); E' K; i! _" v1 p& d! ]
- (mode_tile ai_ucsp_currtile 4)
[# l( |+ T, W) ^ - )
; A. ?. t/ H; S - # t1 a7 o2 t; v8 K' k6 W! b+ O
- (defun ai_ucsp_swcs ()3 W; o# c$ z# N( }2 J
- (mode_tile ai_ucsp_currtile 4)
* [7 t; d8 C. y! U* ^7 X- s$ l - (set_tile "ucsp_a_wcs" "1")
$ v* E7 _# t9 e! G' ] - (setq ai_ucsp_pick 6
2 i5 M+ ~: l& C9 B# P+ I - ai_ucsp_sv nil
% h- z7 a# e6 D - ai_ucsp_currtile "ucsp_world"5 S; U; G3 n' [% _7 Z
- )0 T- E2 _: A6 Q' E) S% A
- (if (/= 1 (getvar "WORLDUCS"))( L0 N! p, R: ]
- (setq ai_ucsp_chg T)0 g# [, m; s6 Z/ |- y; ~/ Z
- (setq ai_ucsp_chg nil)
+ ^7 b8 J+ l; p1 A' p) g - )/ G- z `0 t- j& i7 a* f+ G
- (mode_tile ai_ucsp_currtile 4)9 K6 _1 Z7 i4 u$ S) ?
- )+ Y7 g d5 w' i4 p
- 8 B% q* J4 C, G3 j- I$ X. W, C
- (defun ai_ucsp_cview (): B# {- W) S" p2 B$ I6 |
- (mode_tile ai_ucsp_currtile 4)5 A4 z# _7 H% M( e3 f; K5 m
- (setq ai_ucsp_sv T
% A5 U! d# A1 l0 [( Z - ai_ucsp_chg nil
0 `! w# u* R1 `3 f+ {) t V1 G - ai_ucsp_currtile "ucsp_cview". U* [5 E- S: \: D
- )
6 |/ {! @* r8 `" q - (set_tile "ucsp_a_wcs" "1")3 b- t. }; u. i9 W5 z: ^
- (mode_tile ai_ucsp_currtile 4)
8 p" y( C( l$ i# V' E! W5 s. i - )
- T6 `; P( Y$ S. x9 P
: u0 k& a8 b G8 K ^9 @& p5 M' v A- (defun ai_ucsp_rucs (typ)
# N) W* H, X# {3 @ - (setq ai_ucsp_a typ) H" b& M5 R3 U. r3 e
- (mode_tile ai_ucsp_currtile 2)
2 ^. B3 b5 O ~# @0 B: v3 g - ), c+ G0 ^/ D) }
- / f. v+ M( m# ]1 x
- (defun ai_ucsp_prev ()
( E# H' Q6 J6 | x - (mode_tile ai_ucsp_currtile 4); S0 |, K# W; A5 d7 g% l
- (setq ai_ucsp_prevs T: ^2 l0 ]$ J# A! d
- ai_ucsp_currtile "ucsp_prev"; f; D+ B* _' a- x$ _
- )
7 o' T7 n8 B$ O8 j, } - (mode_tile ai_ucsp_currtile 4)! a! U3 f3 R j; o* V3 `$ W3 }8 D
- )
" U& T& V% P: V% Z9 ^& G$ K, ?
7 I% U8 e+ L. F0 _4 V6 f* S- (defun ai_ucsp_main ( / ai_ucsp_pick ai_ucsp_sv globals)5 k6 [5 Z2 G2 F5 [0 r1 q6 G g4 q8 I/ ~
- (if (not (new_dialog "dducsp" dcl_id))
# U, ^ ~8 k3 `" H( @7 [# e - (exit)
# n7 g8 ?, ]1 ?9 ?# U* U - )
- X( u' F9 m; B2 \! H6 G1 u
1 s( T! t* {$ Z0 f) q" q. h- (ai_ucsp_start) v. v+ I9 Z8 d! x* w) y& A: }
- (setq ai_ucsp_a "@"
2 a( L D8 H9 `3 }6 a - ai_ucsp_pick 2
1 W) c3 U7 i: s h) L* c$ w - ai_ucsp_currtile "ucsp_top"
% F) b9 ^1 v4 q* X - )
o4 p! _4 h/ q* s1 P& p1 g% }' d - (if (= 1 (getvar "WORLDUCS")), m& n9 L7 t3 S$ ?/ X. B# l! F5 _
- (progn' w$ }$ s: p8 S& y+ l
- (set_tile "ucsp_a_wcs" "1")
3 {- A4 e( r% A2 ^3 D. {# _ - (setq ai_ucsp_currtile "ucsp_world")& j1 I7 S* c5 ^4 Z
- )
) b1 L/ u4 r* c- d! e - (set_tile "ucsp_r_ucs" "1")* ?9 I, y+ E2 A9 ]! w
- )
1 z% {9 S; Z( C9 a V, a - (mode_tile ai_ucsp_currtile 2)
4 U1 A3 t$ K1 ^4 p$ Q. }" r - (mode_tile ai_ucsp_currtile 4) r: v3 V, _' r0 [- Q8 O
- (action_tile "ucsp_world" "(ai_ucsp_swcs)")
+ h5 R9 W B. ] - (action_tile "ucsp_cview" "(ai_ucsp_cview)")3 Y# \' X" \ i+ w
- (action_tile "ucsp_left" "(ai_ucsp_p 0 $key)")
* k% f: _) p. J6 {7 { - (action_tile "ucsp_top" "(ai_ucsp_p 1 $key)"): u' j) G" N* h0 _# a; o
- (action_tile "ucsp_front" "(ai_ucsp_p 2 $key)")( \* B6 p9 }. e7 M: ?2 v5 [
- (action_tile "ucsp_bottom" "(ai_ucsp_p 3 $key)")
; l3 A% u$ s: l8 w' K - (action_tile "ucsp_back" "(ai_ucsp_p 4 $key)")
% x3 X( f. c, Y, C% ]1 ~; ~ - (action_tile "ucsp_right" "(ai_ucsp_p 5 $key)")* G! s; F$ J" r6 r1 _
- (action_tile "ucsp_prev" "(ai_ucsp_prev)")
' O7 V s+ v9 g! D0 T - (action_tile "ucsp_r_ucs" "(ai_ucsp_rucs \"@\")")
3 k2 R& k: T9 {; u+ H1 i - (action_tile "ucsp_a_wcs" "(ai_ucsp_rucs \"*\")")
/ n6 z' y, f% `; H" | - (action_tile "accept" "(done_dialog 1)")
; ^: A" ?% S$ o! b6 k# U3 e+ p - (action_tile "cancel" "(done_dialog 0)")0 q" P3 I) S. E3 S" a# l- a
- (action_tile "help" "(help \"\" \"DDUCSP\")")
8 S" t) E, m2 \2 g# S+ Y8 p+ ] - (if (= (start_dialog) 1)* l4 K3 T" u1 h- C8 Z
- (ai_ucsp_set)
8 \' N: o, R' |9 i0 K9 ` - )
, z8 S' }0 s, W( s+ {1 { - )
3 |8 ]; d( h& }- G+ d - 0 P$ x# V+ h, f9 @0 U2 _- F s
- (defun c:UUS ( / app dcl_id old_cmd old_osmode ai_ucsp_prevs 9 c" \: B- m0 b+ e. _" Q. ~
- ai_ucsp_sw undo_init)9 u! M9 \& T* g( H3 s
' h( f8 E5 V* A7 Y- ;; Set up error function.- w. c$ a2 Z: g1 W3 _# W$ N
- (setq old_cmd (getvar "CMDECHO") ; save current setting of cmdecho
6 M+ t& Z) [& [9 V9 V - old_error *error* ; save current error function
: `$ T. u; @. K$ ^. X7 S; b - *error* ai_error ; new error function% ^0 [1 n+ c/ r; a9 d2 P" C5 p5 h
- old_osmode (getvar "OSMODE") ; disable OSNAP for duration
4 [" c2 v0 `+ K: v( U+ Q% S. a) e - )
: m* A4 k" s# ]% C5 j
8 D, ^" }" |& x: `. T- (setvar "CMDECHO" 0)$ j3 ^; R) M6 @
- 2 X! i1 k8 c$ o0 |, V( w
- (cond7 v$ ^3 s5 l" c: `3 e( \0 I* a
- ( (not (ai_notrans))) ; transparent not OK! J& p. O C- K9 H% j% D; u
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?$ D# y: ?4 \6 G+ t
- ( (not (setq dcl_id (ai_dcl "dducsp")))) ; is .DCL file loaded?
% o R H" Y- h" E* B5 u - (T (ai_undo_push)
h# j6 f B$ ?# p" K) t - (setvar "OSMODE" 0)
+ a" d% P3 ^2 g3 ?3 d - (ai_ucsp_main)6 b& H2 t/ y; _( J$ h, C
- (setvar "OSMODE" old_osmode); _- V0 X1 s" v% _. _
- (ai_undo_pop)4 d, | e( O* |
- )& B' J; K; T }" Q% ]
- )3 ?! w0 d; h/ I# P" p
9 t W" b- c! r8 O- (setq *error* old_error)
5 E4 N& |' ?! N# I: o4 Y1 M - (setvar "cmdecho" old_cmd)$ B5 f3 J2 q0 Z7 H
2 L" b! K' n! K5 W3 G) d4 G- (princ)" |5 x* j2 x" }0 V, d M: m0 s
- )% {* M$ l5 x1 k; e [( g4 v
+ E% U# D$ C% M$ x0 r, w- (princ " DDUCSP loaded. ")$ j4 q% Q7 y8 a' Z
- (princ)
& J2 y8 Z; ^# R$ t3 r' W - ' A3 {, C8 @, o1 B% S$ } f, k) Y
- ;;;???;;;---------------------------------------------------------------------------------------
6 b* }: M3 }, {5 N( p
' C7 A# V# U9 I1 S% }' S% q2 {- ;;;----------------------------------------------------------------------------
, o ?$ `0 u' u - ;;;
, m+ Z9 v& I4 }/ z- N - ;;; EXCHPROP.LSP , E9 e! ]5 ~' V$ t( j
- ;;; Polyline and text modification capabilities added by 9 H7 I- G& L% e- _, c* z
- ;;; Randy Kintzley . N& t, G0 l4 m( {
- ;;; 5 l: I# o. J! z! ^$ Q$ r# }' }- W( n1 ^! K
- ;;; Copyright (C) 1997 by Autodesk, Inc.8 |0 ]+ a% t9 w* [! r, _: z9 E7 {
- ;;;0 u6 {) L0 w. ?
- ;;; Permission to use, copy, modify, and distribute this software* u7 s% l0 N0 A* Q. J3 r
- ;;; for any purpose and without fee is hereby granted, provided7 z# N* L- t. x0 \" D' w
- ;;; that the above copyright notice appears in all copies and, o, i3 B2 h' E: b6 O" A7 t
- ;;; that both that copyright notice and the limited warranty and
. Q+ E$ ]: [1 ^" l2 c v7 }- _; C: V - ;;; restricted rights notice below appear in all supporting
2 D4 j1 b( x$ a- e- ~4 B - ;;; documentation.
# w7 p0 p7 N$ f& q: m+ y$ h' L6 d - ;;;
/ w, W6 Y/ _. L: X- Q2 p8 Y5 N5 U - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
$ F7 B6 x/ n2 B# i. h. m - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF4 t; d# e" i D1 f
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
. l* l8 b+ I. v/ k4 J& g - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE* `- S3 w+ F* ?: t4 W9 r- T- t
- ;;; UNINTERRUPTED OR ERROR FREE.- Q9 G) G- L' F- z2 |) b- i$ S
- ;;;
# M1 L7 k; n5 A! j* j t - ;;; Use, duplication, or disclosure by the U.S. Government is subject to
, Z2 r: Y5 z+ e' X - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer" h7 g+ ?8 x* z- u# S5 {
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
. G( J( j5 R" O0 V3 e6 m* l - ;;; (Rights in Technical Data and Computer Software), as applicable.
, U) [+ T, x' P" ] - ;;;: e. r1 A- b. W
- ;;;.
5 Z1 Y3 Y% p; G' m - ;;; 28 February 1997
, A9 }( o5 U8 I - ;;;5 h9 h( C" r- b3 [9 C
- ;;;5 Z6 j; j% J* T
- ;;;----------------------------------------------------------------------------
8 @) S1 `8 F6 {; z! A - ;;; DESCRIPTION3 R1 R1 s+ j5 e' P1 ~& F
- ;;;----------------------------------------------------------------------------
% N! }9 A; D- U( R, c6 _3 L; f - ;;; C:EXCHPROP is an extended or enhanced version of ddchprop. This
2 d/ {* ~; z+ o8 ~( w# b9 v - ;;; command gives the user the abilitie to change several characteristics 7 _3 u; v/ ?* [. W# ~
- ;;; of selected polyline and text objects.
$ p8 s' P% h- B, x- o - ;;; The style and height of selectected text objects can be modified
; Q, F( Q4 Q1 f( ` - ;;; (including text, mtext and attribute definitions) as well as, width and : H, G- g7 }/ C1 o% m; I
- ;;; elevation characteristics of selected polylines (includes lightweight and
( Z8 Z' B" i% n! S+ C3 Y& j ~ - ;;; traditional polylines.)
6 x) i2 d) a, O. _5 D - ;;;----------------------------------------------------------------------------) ^9 z+ q' @7 q$ G3 u9 W
- ;;;----------------------------------------------------------------------------' _6 G) m& B& h
- ;;; Prefixes in command and keyword strings:
7 k# m" v e; l7 [# T - ;;; "." specifies the built-in AutoCAD command in case it has been: Q! ]% U1 V! n- {" a7 h/ N8 p
- ;;; redefined./ c; H2 K ?' M3 s5 Q
- ;;; "_" denotes an AutoCAD command or keyword in the native language% y* o. A# I# L2 ^5 p P2 }. w* d
- ;;; version, English.5 I6 M7 P9 V* e, g
- ;;;----------------------------------------------------------------------------4 `) d' {2 Q3 m- A; W9 ^4 B6 w' Q
- ;;;
- |6 K$ }9 H$ u' i3 i" O h - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/ v, {* O: a+ U
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1 _8 D5 O. B* G! Z( b
- ;Functions created as result of loading file: exchprop.lsp3 x- }7 c. Q* f* c2 {. N* t
- ; DDCHPROP2
7 H g- h3 m4 J* w) Z' d: v: X - ; DDCHPROP2_INIT7 k0 Z0 x2 G* |9 M
- ; DDCHPROP2_SELECT
$ r4 e( m. z' U* K - ;8 Q6 g" g2 {4 P/ _
- ;Variables created as result of loading file: exchprop.lsp% C" ^/ _1 M s
- ; OLD_ALLOC) ]& c4 l# P" f6 s/ L2 C
- ;2 W1 c$ o n0 ]
- ;Functions created as a result of executing the commands in: exchprop.lsp
0 L0 M) B* I0 [( t - ;
9 `, O! R5 v+ M& ]8 Z4 J: O# H0 b) v - ;Variables created as a result of executing the commands in: exchprop.lsp7 B2 j; e0 ^( ^! p# Y
- ; AI_SELTYPE
3 C" f$ T5 V$ {9 l+ }: e - ; BONUS_ALIVE7 }+ U+ g1 s) t$ B& T$ L
- ; BONUS_OLD_ERROR
1 m$ g" E/ M( d) D. X; G - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
/ b! [$ j2 _* h& o6 c' u - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0 l9 h0 x* O" p( Q4 |$ S
8 O' \) W, }- S, P- ;;;1 a/ B p, u6 N# w
- ;;; Avoid (gc)s on load to improve load time.( P3 ~1 l& m0 Y s
- ;;;2 M# f7 ]& n' k; _8 V
- (defun do_alloc (/ old_allod new_alloc)
4 R1 z! Q6 I: T l5 k - (setq old_alloc (alloc 2000) new_alloc (alloc 2000)), I" j6 J% k( ]
- (expand (1+ (/ 4750 new_alloc)))" X' z* z, q( A3 t' p
- (alloc old_alloc)
% a( z! f( \9 \3 ~ - );defun
2 q5 C5 E4 P; s - ) U* |, ~7 T; H9 W1 k
- ;runs at load time - rk
# b/ x5 k3 _8 L9 x5 d$ Q - (do_alloc)
/ L/ h; H" e: m6 I& G' d5 [5 ? - (setq do_alloc nil)
6 e1 n. |6 X4 x* l9 m. Q" v - ;;;
6 l* r% E8 N0 T/ J - ;;; ===========================================================================' K; ~' y* e6 ~" U4 f
- ;;; ===================== load-time error checking ============================
9 u9 r4 @ k5 x- W - ;;;
% n7 L# Z( Z8 h5 p- I
6 x) N2 b4 k& N- (defun ai_abort (app msg) % c) e2 D. [/ u' |7 j% `3 F1 T0 U
- (defun *error* (s)5 o1 [2 q% v- M' X/ y+ h
- (if old_error (setq *error* old_error))
. _: F1 z# t5 V; {* K u/ i - (princ)
5 k& Q+ r: @! E Z9 n - );defun% c* |; w7 [! s. o: ?: k
- (if msg
$ D' Q( ~# S7 U: T# Q - (alert (strcat " Application error: "% N" z8 w/ V: x, ]8 @% ?: b
- app8 T7 p3 X+ _) B9 J3 a' o" _2 k) I/ K3 l
- " \n\n "# [5 e- Q* g, q* L: ]: {8 W. i
- msg, H, B0 X0 K; k$ H1 ]* z8 R
- " \n"7 _, [6 e% g2 A0 U
- )
% L- r2 I" D! U* I$ K - );alert5 y0 }9 q* A. C% o9 f* n$ c
- );if
( n/ H7 [8 l" Z5 j3 m* p% L3 s9 @ - ;(*error* msg)8 H9 ^# c" V4 e
- (exit)
7 H# [, G/ q, e; N$ Z - );defun ai_abort7 U- ~7 b# s( W- E6 a1 B( ~
- O' ] }, d# k- ;runs at load time - rk" Y0 k3 z6 Y+ w4 H' B
- ;(if (and *error* ;added the if wrapper around this - rk.
% i! G; e/ u1 _, b* U+ u5 } - ; (not old_error)
i+ w& o. y% ] - ; );and 0 k4 G6 G, \6 E% B
- ; (setq old_error *error*);setq
% V3 m! g! B- f - ;);if
2 J& s/ M! _5 |, X - 7 E' p. s9 @7 I& u
7 [$ l" H& E+ T+ l `4 j* h. l3 r- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,) ~2 V/ C% M( B, b$ v# U$ f. ]
- ;;; and then try to load it.+ \4 }+ M A* P
- ;;;
1 w6 O- W( \9 h* r2 L9 I; ]6 X J( D - ;;; If it can't be found or it can't be loaded, then abort the
# V( K3 ]( E) B+ b. d1 G, g - ;;; loading of this file immediately, preserving the (autoload)* N; R! W. }$ t; p% t0 `
- ;;; stub function.! r2 s* ^! E/ Q8 B
$ @- ^/ P6 k" k( }: r! _- ;runs at load time - rk.% b/ h% w' n5 J7 [8 d
- (cond' u8 N6 w; v% g: h* l
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.: @3 @5 b7 [: ]/ i
- ( (not (findfile "ai_utils.lsp")) ; find it
! E, r% B. h K' {" Z) J$ F* j - (ai_abort "EXCHPROP", X; o* ^. I6 A9 T" J. r, X. H
- (strcat "Can't locate file AI_UTILS.LSP."9 Z1 P! b* M3 R3 I5 H* M
- "\n Check support directory.")4 s9 E& |$ c/ F9 Y% N6 b# c
- );ai_abort8 K+ E5 T7 s$ N$ J
- )
# K' R: }6 Y' K( W, ] - ( (eq "failed" (load "ai_utils" "failed")) ; load it
! y9 k9 `* E1 Y6 ` - (ai_abort "EXCHPROP" "Can't load file AI_UTILS.LSP")
) v: {& J' N7 a! x - )2 X8 D* p8 w% T, M7 r
- );cond close
% x6 x5 g6 M8 O7 d$ E3 f
! \5 I0 _+ v% Q9 h- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP! T4 x% H" o5 p# G- o3 c0 t: j( K
- (ai_abort "EXCHPROP" nil) ; a Nil <msg> supresses
9 f- ?, l; [4 c6 {; b - );if ; ai_abort's alert box dialog.# R$ S# a* E6 J
- & Y; r+ [& _$ r
- ;;; ==================== end load-time operations ===========================) V5 ]1 k; }8 y' p# [0 Q( P) e5 g
- 2 N& y: q& ~+ o1 M ?! v0 Z
- ;;; Initialize program subroutines and variables.
1 j. T/ X2 T2 g/ Q, ?
" s3 P7 \+ p9 t7 |) K- (defun ddchprop2_init()
& s5 F# B' h% |) [: q7 x
( O' ?' n6 {# V6 ^" W
- s* |7 |' z' D2 k3 W4 K& z- * z K2 B1 }) o0 V- X% A
- ;;
; Z, P3 M0 ]. ] m' W - ;; Define buttons and set values in CHPROP dialogue box
1 f* g! |9 J5 m' z @+ j7 S! N - ;;
' H( n6 I' a0 n5 J5 x2 n - (defun call_chp2 (/ cmdact p1 p2)+ C L1 ]+ Q1 C4 r8 f
- 6 B2 k) C- e" m; O8 Y
- (if (not (new_dialog "ch_prop" dcl_id)) . s ?# w: X# C2 s1 E- U: r4 L+ ^
- (exit)
5 e3 A; a2 Q% J) f# j8 s+ N: Y& N - )8 |, q* m8 v2 d! _: ?. B
- + R4 K% R8 k8 Y
- (set_tile "error" "")
$ q5 `% G9 `2 h) L - ;; Set initial dialogue tile values o0 _: d" ^) p- Q
- (set_col_tile)
, }- c8 H: ^, T6 ?! f: P: L4 } - (set_tile "t_layer" elayer) F2 v$ M- I( M$ E
" F1 T: C u/ X7 n- (cond
+ }, M; n! n: q0 k) Z6 ~% f - ((= lt-idx nil)2 G* v6 V. B- [7 J1 M
- (set_tile "t_ltype" "Varies")2 c2 J0 D( I" W6 T0 }* Q( g
- )7 L- x6 p1 \. P
- ((= lt-idx 0) ; set tile "By layer & layer linetype"' M- v+ M' P5 x1 D( O
- (set_tile "t_ltype" (bylayer_lt))% {. F2 K5 U/ _
- )
0 P2 [! Q# t, Q4 f" \+ k. d - (T
- D' I2 S6 h3 Z+ O( Y1 w$ N - (set_tile "t_ltype" (nth lt-idx ltnmlst))6 x1 r9 P& U6 i. o% ~. |6 B' O
- )1 ?! M3 f) q* e
- )* f! @* _$ F7 K3 l
- 0 W% U% |; v2 ?- ^
- (if (or (= ethickness nil)
' l: `2 s8 l1 p7 C' \) Z& s9 W - (= ethickness "")9 h; O4 z1 u% B5 n7 Z R9 k
- (= ethickness "Varies") ) b" A3 o6 X' W# p7 T
- );or& O- X7 u% D* r" w8 Q, I
- (set_tile "eb_thickness" "")
N) C, M1 H0 ^, @. K0 l - (set_tile "eb_thickness" (ai_rtos ethickness))
2 w/ N. f/ e y - );if
" l2 e2 w, A9 }: H4 D: T( ~9 n - (if (or (= eltscale nil)
% ^ N4 Q( h/ }' S+ ~* |: g - (= eltscale "")
' ?0 @- ?; o( u1 D. i( C - (= eltscale "Varies"). W, ^3 ]( A1 {0 K+ t
-
* O& T# r2 s' H2 q, j [6 _0 c - )
2 K# K$ o/ n* d n" A( m - (set_tile "eb_ltscale" "")& a8 Y3 [; N& p) M" r
- (set_tile "eb_ltscale" (ai_rtos eltscale))% ?0 ~# |' U' i) L" q! v
- )1 T& n( }$ N# M2 W4 H9 U
- (if
7 n" A& {/ y2 _6 J/ ^" G+ h. ~ - (numberp ewidth)5 y3 p$ b. S3 D6 t: r& x; z
- (set_tile "poly_wid" (ai_rtos ewidth))) Q) b# T9 A, j* F* @. J* a/ Z
- (set_tile "poly_wid" ewidth)
1 V6 H% T7 U6 ~1 k+ L/ v9 l: s - ): b1 {4 v- v$ }- c0 s" E: N( M
- (if
( e& g5 i- {+ c) i- ~, B - (numberp eelevation)
6 c2 T2 E- E$ n0 D - (set_tile "poly_elev" (ai_rtos eelevation))3 V6 X) o# `2 _1 g$ T! f: G
- (set_tile "poly_elev" eelevation)( z& k, a5 @( Q+ p
- )
; p& ~ o' t& c$ Z7 b - (if
( q- E& ?6 w& u& i4 U - (numberp eheight)
/ J8 [4 X9 a- G# Z g - (set_tile "text_hgt" (ai_rtos eheight))5 ? k i' k& n' d" p( s+ [
- (set_tile "text_hgt" eheight)0 d" y! |& J# {& ~* P- Z
- )
) g8 ]/ I8 a1 u% i - (if (not estyle)4 K0 A2 p& v P+ Q& V
- (setq estyle "")% U5 s: I+ i x! R+ \# B
- );if 9 ^/ c; @* ^! b' g
- (setq hair_style_list (tnlist '("style" 16)));setq" H9 ]& F. {9 i& K J" b, i4 z5 |
- (if (not (member estyle hair_style_list))3 \. W( C4 ~; I$ f' H
- (setq hair_style_list (append hair_style_list (list estyle)));setq
9 ~* o! b H! I! x - );if 0 g5 h* _+ h& P6 y* }$ W. M3 R
- / H1 j) z. Y7 j# h: J) H' @6 ^
- (setq hair_style_list (acad_strlsort hair_style_list));setq- Z& ~ C, G; E$ B4 |
- (mpoplst "text_style" hair_style_list)
1 j' Q8 I+ J0 B. S0 Z1 | - (set_tile "text_style"
a% X, n6 H; C - (itoa (position estyle hair_style_list))
7 f) f! }( |5 {8 Q - );set_tile % v' t6 z3 g( t+ M2 H
$ R6 o' F" t4 I8 |+ q- B- o7 y- ;; Disable tiles if need be... ;@RK$ ?6 J3 Y* }, ^5 z
- (setq a 0)! X% s$ ?7 ^8 g6 O2 j9 l1 b) e& F
- (while ( < a (sslength ss))0 p2 ]4 U O& X4 T4 Y4 s
- (setq which_tiles
' T5 ?/ R) @0 d" T* z% v& ` - (ai_common_state (cdr (assoc '0 (entget (ssname ss a))))))
3 B' F$ ^* U& I4 M - 5 q, y% s6 j* w; C
- ;; If all fields are enabled, don't bother checking anymore.
8 v* n3 ~( z. x# r - (if (/= which_tiles (logior 1 2 4 8 16))
7 |$ j2 A4 r }$ T4 f! h4 X3 F - (setq a (1+ a))
. ]: o, O% q$ y8 p2 A" r M7 ^4 ` - (setq a (sslength ss))( h; k9 r5 l$ c
- )( P3 T+ X b+ r: i8 _+ e
- )
0 ]2 v3 N8 @. `2 ` g. O7 n - ;; Layer Button and Text Field
1 U. g1 v9 r. a: r* [2 t
, \- q+ D! j" E- D2 v- (if (/= 1 (logand 1 which_tiles)) ?# b; ~" z6 P7 U
- (progn# B# L/ j; n2 h) f9 {, K& _$ O
- (mode_tile "t_layer" 1)
* A) T' q, I* y% n/ y - (mode_tile "b_name" 1)
H8 s) I" _% Y- i- {/ p |" M$ a - )5 a/ r* [- @& h
- )
# V4 k2 r/ o j- z9 V& O r) K - 1 ]( I m6 F* P+ ^
- ;; Color Button and Text Field
; t" d! L0 _. U) \: L - (if (/= 2 (logand 2 which_tiles))
. K5 n4 L7 h4 y7 J. m" f" U% ? - (progn2 \* w+ H( _4 |" Z2 u
- (mode_tile "t_color" 1)
W. @8 G- u: Q - (mode_tile "b_color" 1)
3 R- B) Q# Z! `4 _9 F - (mode_tile "show_image" 1)1 v% }+ w) F: r
- )
; v! G8 O7 v W# I' @ - )
4 `# u% S0 U( Q) e8 u - ;; Linetype Button and Text Field
. j1 J) p! n; a @ - (if (/= 4 (logand 4 which_tiles))
/ w6 v. X8 E0 e3 \: k - (progn
/ @" F( I. `2 c5 Z - (mode_tile "t_ltype" 1)8 P4 t( v$ Z1 N- V, q
- (mode_tile "b_line" 1)# k; p& r% \' p% L; Q V
- )
- o7 I; a2 H% G) G) M - )
, e5 _/ a4 X2 P" f - ;; Linetype Scale Edit Field
+ _) W0 x8 Y0 d& R4 p: K% j$ ~ - (if (/= 8 (logand 8 which_tiles))
. B0 Z; |0 L: T, {% O0 w# D" H1 _ - (progn
/ S1 _- {* e* X7 k+ f+ @ - (mode_tile "eb_ltscale" 1)/ x3 y* k# ]0 M* P* U
- )/ H, a% I$ Y; O6 Q
- )
; h; U! Q3 W* z- R; M7 @3 E - ;; Thickness Edit Field.
6 X8 s, C) f* K; c - (if (/= 16 (logand 16 which_tiles))) Y$ g: q/ D2 ^" h: o1 p
- (progn i1 l/ F v0 i0 B* U7 u6 |
- (mode_tile "eb_thickness" 1)
; u- B) b, ?# } - )2 N, T; v9 ^* L3 P
- )
# |, Z7 ^$ R0 n$ R
. C9 }( ]$ G' U" J) d, H: k- ;; Polyline box and tiles @rk 10:05 AM 1/30/97# H% `4 d- N: c: _9 H/ m
- (if (not (= 2 (logand 2 eflag)))! o& U, \+ H( N6 K
- (progn E( U& q; k' N5 x
- (mode_tile "text_hgt" 1)
+ d* ?) W. I3 h- h/ t2 a' s - (mode_tile "text_style" 1)
b/ I0 W2 @' Q8 N" C0 D- K - );progn+ f+ @4 |& J# x$ h1 n
- );if; x" p: d$ B/ i: W- ]: `2 y( C
- (if (not (= 1 (logand 1 eflag)))) V, v$ R# A, q7 G6 e+ k# g
- (progn ) e" u; l `( q- b
- (mode_tile "poly_wid" 1)
( s3 g" M6 t3 ]- O) o; f6 [ - (mode_tile "poly_elev" 1)
/ ?# k* m- F' y( o# A - );progn then disable polyline fields& a. J6 U* Q2 `$ K* a
- );if
4 O7 x; r& z/ ~) Y. W# J - " u( A+ O: |- X. T8 K- `) [
- ;; Define action for tiles9 q t& E V2 u! L
- (action_tile "b_color" "(setq ecolor (getcolor))")
1 P9 A9 f; i2 b - (action_tile "show_image" "(setq ecolor (getcolor))")! }* w0 Q+ l( y2 M6 y8 G0 I
- (action_tile "b_name" "(setq elayer (getlayer))")
) [5 Y8 o1 m5 x+ J - (action_tile "b_line" "(setq eltype (getltype))")
8 [- [4 {9 r; m2 |8 r - (action_tile "eb_ltscale" "(getscale $value)")
1 e' C! [# o2 `: x - (action_tile "eb_thickness" "(getthickness $value)")
+ F# T: V) {3 G% }$ K - (action_tile "poly_wid" "(getwidth $value)")+ Z# G4 o Y: H1 _ [* g4 Q
- (action_tile "poly_elev" "(getelevation $value)")1 Y( P+ N+ E, I2 Q0 Y5 d
- (action_tile "text_hgt" "(getheight $value)")
2 f' C( J$ x' J9 I9 }' |% @; @ - (action_tile "text_style" "(getstyle $value hair_style_list)") & k2 r. ?4 V2 u* t2 W2 V/ |: z
- (action_tile "help" "(help \"AC_BONUS.HLP\" \"EXCHPROP\")")7 g5 R* Q6 p6 [) C! z6 o
- (action_tile "accept" "(test-main-ok)"). K! ]6 W! ^! Z/ q/ i
}, }0 w) w* |% |+ O9 e* p- (if (= (start_dialog) 1)0 h! o/ @* z* Z* q$ @! n- H8 @. w
- (progn
k0 @2 j3 c5 Q$ a1 Q - ; Update special properties for polyline and text selection-sets.& r- V3 {/ z- l6 F
- % S- g$ A2 v1 g3 H
- (if (and (= 1 (logand 1 eflag)) ; polylines rk chprop% w9 E9 X2 M+ B( d* s
- (or ewidth
3 C+ I; j8 |8 S5 n# ^* D - eelevation4 {' O" }2 e. v9 w7 R. f
- );or
3 w2 H& i: e4 \, U* _6 E - );and7 Z8 _9 n1 r8 d7 B" L5 q' K
- (progn
* M, w! ?( k; i' ?- @ - (setq ss-index 0 , {8 B! M( l1 O9 [
- ss-length (sslength poly_ss)
% s% e1 K; _& U - );setq' R) t& t6 N l( }: J. M2 E
- (while (< ss-index ss-length)! L7 }( p: X* ]
- (setq ename (ssname poly_ss ss-index)
' n; X7 F$ s/ p. I8 { - elist (entget ename)
2 e8 b9 i0 m6 s% S6 y - );setq. i( X- F- N6 o C3 ~+ N1 p, x# [
- (ucs_2_ent (cdr (assoc 210 elist)));this function lives in ac_bonus.lsp
' b9 s$ j$ |- E3 U/ E) R/ O$ w7 V6 I - (if ewidth B( P2 o N' \6 K
- (command "_.pedit" ename "_W" ewidth "_x")* s6 p. i* n' ]0 R/ L
- );if ) x2 N) @5 ?, [
- (if eelevation
/ f$ W! p; y6 E - (progn* T0 w0 D2 z# A+ Y5 Y4 Z, b- `
- (setq p2 (list 0.0 0.0 eelevation));setq. B9 C4 R! z; U$ c- G* ]
- (if (equal (cdr (assoc 0 elist)) "POLYLINE")
* |7 [. L1 _ g5 |. n - (setq p1 (list 0.0 0.0
0 ^2 u8 ]$ ^4 E( x - (caddr (cdr (assoc 10 elist)))
+ e4 R; l3 k {8 r0 r - );list/ ~# u! I q2 b6 G
- );setq h* |& b% \9 V
- (progn
. ^9 M5 q7 v0 V, h8 O- @ - (if (assoc 38 elist), D6 b( X( Q8 i& m
- (setq p1 (list 0.0 0.09 L( n& ^6 v2 y$ J- ]
- (cdr (assoc 38 elist))1 ^# a3 ]1 i4 V1 I; T8 g$ ~
- );list
, [9 d8 N% c4 j! d& a- i - );setq
1 O, [+ n' K3 h/ d& m9 V8 @ - (setq p1 '(0.0 0.0 0.0))
$ A# x3 C8 Z9 t- I8 J1 I- t* I r4 V - );if0 |+ e8 M2 O" J: r9 \
- );progn
. K( S* C& T; g# n - );if
8 a4 C1 |, _' m5 X5 B) ^ - (command "_.move" ename "" p1 p2)$ @4 K, c0 p# c2 A
- );progn then change the elevation of the polyline. ^; s9 L) ~8 J: H1 \3 i$ L9 y' B
- );if! E2 G& x9 D; a: Q f
- (command "_.ucs" "_p")9 o) w! I+ K6 t9 r2 ~5 {! k) @; B- `
- (setq ss-index (1+ ss-index))
$ I, p/ X- o- |" g/ D+ X - );while
: R6 X3 S1 Z& o/ P* o - );progn then polylines are in the selset
4 K, |4 q, }/ S C - );if
6 |9 k% {" t& v8 |, {0 z - (if (and (= 2 (logand 2 eflag)) ; text
+ P0 V5 r8 B* B- N, ^/ n# R! g, R" D! U - (or eheight $ ~8 u" U/ Y4 Q, G
- estyle
% V3 m4 j' Q. P- ^1 }+ J - );or
) _8 A w) O& I- z8 R; @( T - );and# R$ U2 g& d- \. m& Z3 C; ?
- (progn
- Z; k* P# w# S1 H - (setq ss-index 0 ss-length (sslength txt_ss))
" x: {( e- h$ N( X - (while
$ a7 z. F- F7 `6 c - (< ss-index ss-length)
. v, x9 w( h3 j% w* K" z - (setq elist (entget (setq ename (ssname txt_ss ss-index))))9 b4 h5 R. j% K8 m
- (if (numberp eheight)
. p" ?, Y- J r- e1 _; R - (setq elist (subst (cons 40 eheight)
+ O: x) R9 `4 l" B/ o$ B1 { - (assoc 40 elist)
+ R5 \4 E% l5 x' w* e - elist, U" O( ], O) Y7 {, T' X
- );subst
% p' {9 h& j6 r- C - );setq) L# Q! ]& h# \ I! {" h
- );if
2 B* \: x- z: E - (if (and estyle ;(not (equal estyle ""))
2 X5 |; R) F [! I8 y - (not (equal estyle (cdr (assoc 7 elist))))
R* P2 ^4 c+ k$ E0 | - );and
, ^) I( g; ^$ B& W! x4 g* E, G; L - (progn % D5 B0 l) U b& Y& V/ S
- ;rk. This needs to be implemented as per mtext font issue in ; ddchprop_notes.txt
" p, U9 C2 ]5 i! t/ Z - ;(if (equal "MTEXT" (cdr (assoc 0 elist)))- @1 E# X' [* u* q/ g# J( U
- ; (setq elist (fix_mtext_fonts estyle / n+ i& @! ?; E0 a# G3 ~$ ]" F
- ; elist' `0 r$ i4 _& J$ i& q1 g/ q
- ; )
" M! y( `. \/ j; u# _ - ; );setq then
- p+ |. r$ B% P1 W. y' l# k, k - (setq elist (subst (cons 7 estyle)3 I0 b6 U: P- V' U6 t) o* G
- (assoc 7 elist)$ u+ [$ G& h5 u" E! N
- elist
) h' j2 S! J u - );subst
: i% M- D, w' G2 u8 d - );setq else
/ A5 s# J; a8 o7 w1 K - ;);if
% p; J9 [) E G* v: k8 Z" J - );progn6 d% J7 c. {, j2 P A5 m
- );if
% l1 ~4 E5 v& V- T0 }4 T/ \5 W - (entmod elist)" r4 h7 w; p3 M1 @& b7 r# a; [
- (setq ss-index (1+ ss-index))
/ L8 e& z" ^5 m0 F9 A/ F+ E; a - );while9 ^- ?# z n. ^2 ^3 n
- );progn then5 s/ \- t, e+ S
- );if
( h6 d/ n$ ^8 `9 G3 _ - + z1 O" [& P2 @7 Q2 ~3 }- }1 |& o
- (setq cmdact (getvar "cmdactive"))
$ n+ F5 p) ], ^ - (command "_.chprop" ss "")
5 O% A$ v3 H$ K" y' w8 }; k - (if (/= cmdact (getvar "cmdactive")) ; Is CHPROP actually running?1 R( i0 G1 Z+ k& X' i
- (progn
# i# W6 ~$ k# L; _ - (if ecolor
! ^ q0 w- D3 Q. x - (progn
6 k$ i5 D. q3 Q1 {: b - (if (= 0 ecolor) (setq ecolor ;|MSG0|;"BYBLOCK")), F9 Q2 a1 \; x- {6 d) V- Y# T+ A
- (if (= 256 ecolor) (setq ecolor ;|MSG0|;"BYLAYER"))1 P+ k& `% K1 Y+ z0 F% |
- (command "_c" ecolor)
4 w! Y5 A* L: o$ M- o - );progn then
$ x3 G* x, G1 t - )
, z! f& }0 \0 T4 y3 J& J/ Y- i - (if (and lt-idx
, M: n/ z- m1 e8 y - (/= eltype ;|MSG0|;"Varies")
6 e' G D& O' I+ \3 t4 ] - )
: _( G# F. P! Y: b1 I - (command "_lt" eltype)7 a0 {' Z# x* ?1 q
- )
$ Y0 g! ^+ E2 M8 k' U- ~% m - (if (and lay-idx
+ F) e- W. ~) y K3 x+ D - (/= elayer ;|MSG0|;"Varies"). ?/ Y) M& z7 j' \, w
- )
2 k: N# o8 }2 k6 v& `' |' r - (command "_la" elayer)! S$ u: Y1 A3 V8 W4 Y: {3 Q, f
- )
, p- z9 L9 K1 X' O5 G$ s. Z - (if (and ethickness . m, T3 e( h$ \6 {8 w
- (/= ethickness "")
9 L6 O- n# u- `6 A, Q1 Y$ @" B1 W5 N - (/= ethickness "Varies")
: C6 p$ B6 y: ^( f# { - )
8 |( d( G' h* V) t3 J( |' v* V - (command "_t" ethickness)% |- ] G- I! ^# Q. z
- )$ T7 d1 w5 m& |. {6 t$ @$ v
- (if (and eltscale (/= eltscale "")); C S0 F5 I6 v$ ]
- (command "_lts" eltscale)
% D, O% _1 H4 Y - );if
) ^; G6 x' q R. c - (command "")
& ~( @/ T/ _+ s6 L2 z+ { - )
7 j g A. S, V3 }/ ^ - (princ "\nProperties unchanged") ; CHPROP didn't like our SS set$ ]1 F2 H8 G) y; M
- )
; v# j7 o' H! O! \" t+ e
$ T2 F' B7 k9 O5 o- );progn then OK was picked in the dialog.
& _ Q3 t6 l4 t/ a& d3 \ - ; ?" S) s2 ~: b2 N: L N- P# v, g
- ;; Fred GERBER - 25-AUG-94
1 o* z# h4 Q( G9 f0 E0 F: E - ;; Don't print the "Properties unchanged" message when the user cancels
) d! }/ s8 A" z1 m( P+ B - ;; the dialog because he knows that already (otherwise he would have9 ~* [, E* h9 r
- ;; hit the "OK" button). Display the message only if CHPROP fails for1 Q2 x% K1 v9 M# b1 l5 {
- ;; some reason, because it is not the expected behavior of the command.' s. Q1 X) a# _1 t$ o, x
- ;;
/ T& _* L- s, ~7 i - ;; (princ ;|DDCHPROP2_LSP_8|;"\nProperties unchanged")
2 @5 N9 u( T7 n - );if3 L K$ V d- O' o3 h6 Z
- (princ)
3 t! n) m6 o3 X - );defun call_chp2
# m, A) C! r9 a: c [/ x2 x - ;;5 ]" ^* X3 [ r7 C" n" ]
- ;; Function to set the Color text tile and swab to the current color value.
, H1 c9 O/ |4 ?" R' S" p% X1 R - ;;8 q O" A) {. B2 i* \! }
- (defun set_col_tile()& d J3 H) d/ }
- (cond) X, q3 A& L. f
- ((= ecolor nil)
" Z' j. I6 ^# _& C8 \ - (set_tile "t_color" "Varies")* D1 M+ j, n j+ h( k, U! [
- (col_tile "show_image" 0 nil)
) f0 k7 j# t! u - )4 b! h9 h. X6 T5 J- r6 O, d
- ((= ecolor 0)1 E1 p: Z+ m7 O8 I8 F" p4 G
- (set_tile "t_color" "BYBLOCK")9 g* r9 _- D- }9 }
- (col_tile "show_image" 7 nil) ; show BYBLOCK as white
! i( u- p* R5 w% D4 E* d& V# X - )
9 }7 H, B! B8 z/ m- A& X1 s - ((= ecolor 1)
( q- K7 @9 R3 x# l ^: J: b" c" S - (set_tile "t_color" "1 red")% U4 X A0 H: N# Q+ T: {
- (col_tile "show_image" 1 nil)
# U5 Y/ ^! B! ]6 t% C' b e! t4 \# } - )7 B% O' A7 @" _" [' K
- ((= ecolor 2)" B( d' L0 r: f1 v
- (set_tile "t_color" "2 yellow")/ }4 G/ L7 ?" w$ l+ k3 b
- (col_tile "show_image" 2 nil)
& I/ c5 J4 r% n, {8 s - )* t/ u: e+ @' }8 o: M- T$ @
- ((= ecolor 3)$ v5 l- j5 A4 E- [
- (set_tile "t_color" "3 green"), u2 }2 m M$ B
- (col_tile "show_image" 3 nil)" e4 e/ S& ^" L' J
- ) z' ?$ c& a. D* i9 P3 D
- ((= ecolor 4)
. X$ h( `" R; r6 t, s" N. r - (set_tile "t_color" "4 cyan")
0 {6 j" Z! T! v: v* G2 j - (col_tile "show_image" 4 nil)
- F, P4 \: q0 o - )9 _( z& _1 e% O! ^5 _. \+ ~
- ((= ecolor 5)! N4 p9 Q. G6 M3 m) ]8 ?
- (set_tile "t_color" "5 blue")2 g& c, V3 \6 y* F" Q# x
- (col_tile "show_image" 5 nil)8 u$ Q9 x R2 q' l% o: T$ w7 K
- )
3 y# S7 a5 K" X0 k9 y - ((= ecolor 6)
+ V4 A$ e& s% T: u - (set_tile "t_color" "6 magenta")
, Y0 |: v) [& B - (col_tile "show_image" 6 nil)
! l+ X7 s& A0 } f3 l4 i - ) \' u: e; ^7 g- \! C
- ((= ecolor 7)
3 `4 ]- b T' x/ D4 I% W3 C$ A - (set_tile "t_color" "7 white")
. Y$ H5 q' T3 F( a9 A, L - (col_tile "show_image" 7 nil)# u0 @( s$ C# K/ b+ C, A
- )
$ H& G, V, I: r+ ? - ;; If the color is "BYLAYER", then set the tile to% T6 H! [$ w @3 V, ~! X# C) m; |
- ;; show it's set By layer, but also indicate the
! l/ s2 |/ `2 _ - ;; color of the layer - i.e. By layer (red)# Z( s B" o. O9 m
- ((= ecolor 256). `, |! Z( o* s' K1 q' Q, g
- (set_tile "t_color" (bylayer_col))' ^( L* `+ u$ ]. R" ~. T1 V
- (col_tile "show_image" cn nil)$ ?6 v& x: S; u0 l
- ); N% h1 O& ^8 P \7 _$ J
- (T
9 L: T+ r0 {, I - (set_tile "t_color" (itoa ecolor))
4 C7 u6 n! @' p" J% Q0 q - (col_tile "show_image" ecolor nil)/ K- Q" e0 R6 x6 c
- )
* [1 p+ K3 g2 t3 S- } - )% J& U7 |) V% l% A8 R
- )
: X# l+ J* z6 a& B1 a7 l* b8 t: G - ;;' b( P+ V. X% b! i
- ;; Function to put up the standard color dialogue.- h2 e6 l- c+ Q8 J
- ;;
* n4 f& Z8 l) H6 r - (defun getcolor(/ col_def lay_clr temp_color)
$ Z/ x- q+ f2 } - ;; col_def is the default color used when rq_color is called. If ecolor
: P2 O* p+ i; D - ;; is nil (varies) then set it to 1, else use the value of ecolor.& m. ~ e# ]7 S- Z, n, p; w
- (if ecolor# p( k2 }# {1 t/ S
- (setq col_def ecolor)
) J! r! C) D! Q! {- Y - (setq col_def 1)' V/ X4 o+ b) }9 Z
- )
9 ]; i9 e e& }4 Y; M' K. Z/ A& i
' r8 l7 h1 C3 R4 d# m& I- ;; If we're working with a single layer, get its color9 Z( T; U- U0 n g
- ;; for use in the color swatch if the user selects color BYLAYER.
7 d% g) B# S: u( F- N - (if (/= elayer ;|MSG0|;"Varies")
* y) @8 A" {; n! L - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
' w' D$ ^8 D0 M: S* X; K+ y. ] - (setq lay_clr 0)
& s/ ?8 e$ s$ G X: [ - )
1 v6 L9 X' G: Y/ P7 N' P - (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
7 j* `7 h5 \3 I3 r( p* S0 \3 E - (progn- G5 U, y- o/ S7 h4 p
- (setq ecolor temp_color)
- J4 S; h. `& F# q3 {% O& o - (set_col_tile)
8 A2 C# U$ {1 g0 ^9 P# T. o4 h - ecolor
6 N& g. F- z# s6 Z0 J+ G: x - ) {/ I$ H1 D9 X# O
- ecolor& L) M0 \ f! F6 B2 c' Z: v3 Y
- )
3 n& q9 p0 Q* R G8 O - )$ i* T7 l, x3 j6 P
- ;;
5 b: }9 Q: S- c' I( C - ;; This function pops a dialogue box consisting of a list box, image tile,1 ~6 o. q4 v8 s8 s. ?
- ;; and edit box to allow the user to select or type a linetype. It returns
7 z2 X$ T' f, {) d - ;; the linetype selected.
0 s* t' t& O7 j5 i6 b- f - ;;* l, E. r2 c8 u* \" ~
- (defun getltype (/ old-idx ltname)
' R3 n! e' h M v1 N - ;; Initialize a dialogue from dialogue file
7 {9 w9 Y4 c! n$ b - (if (not (new_dialog "setltype" dcl_id)) (exit))
- @2 m6 i) `" R7 u8 a - (start_list "list_lt")
, l- Z5 g. T# H- j5 S: \; E2 a8 { - (mapcar 'add_list ltnmlst) ; initialize list box
7 V8 h- i4 R( j# U1 c - (end_list)
|( w8 d6 Q) T$ f; C$ f - (setq old-idx lt-idx)
+ T0 T" N4 ?, j4 X N! v - ;; Show initial ltype in image tile, list box, and edit box9 @: J2 n% I+ d
- (if (/= lt-idx nil)
; [( x: ~# S- ^; U t - (ltlist_act (itoa lt-idx))
+ r6 L7 w' b3 a& F- A4 i- ~ - (progn8 T5 q: |% \) ^' R
- (set_tile "edit_lt" "")
: g4 p" v& l1 j3 ?- ^ - (col_tile "show_image" 0 nil)8 {; r I. P! U7 x8 X9 R* |2 f
- );progn else/ y8 g0 O5 R) q, t
- );if
7 T4 [& O2 L9 L4 Y$ H& B - (action_tile "list_lt" "(ltlist_act $value)")# B, |; B& Q, ~- C( Y
- (action_tile "edit_lt" "(ltedit_act)")
4 w) p& F0 e# G V0 y - (action_tile "accept" "(test-ok)")
^7 P) w# k4 u' ?: p- g - (action_tile "cancel" "(reset-lt)")( X# x4 A% H4 g
- (if (= (start_dialog) 1) ; User pressed OK
- U0 `& m1 ^0 B' h - (cond
6 Z& H* \) F y: Y6 J. g9 @% J - ((or (= lt-idx nil)
, f/ e9 `4 O$ c: u1 G - (= lt-idx (1- (length ltnmlst)))7 S9 F: L1 ]5 ]6 f% f4 F3 X6 K
- );or
: n+ v+ N9 n( K; Z' s: N) d% Z7 ]" m - (set_tile "t_ltype" "Varies")1 m3 `/ d7 p1 D9 [5 x7 R, J
- ;|MSG0|;"Varies"
5 m% @; b2 r0 s) t" O) ^ - )
9 |# h4 o S0 h! i7 z5 P - ((= lt-idx 0); n0 O+ H- g- A" q, b7 Z7 |6 m
- (set_tile "t_ltype" (bylayer_lt))
; w& |# J& C' R; o- a/ `' s% B2 | - ;|MSG0|;"BYLAYER"
0 k) z' Y* t) B! P, V& \/ L - )0 x5 y: N+ x9 I' b
- ((= lt-idx 1)6 O) w" a1 X' l0 g
- (set_tile "t_ltype" "BYBLOCK")
. X! E4 a7 W/ W* L - ;|MSG0|;"BYBLOCK"
' R- V$ D* ?+ o9 E9 r& B - ): [ `8 ]& O0 G. \1 G$ c/ e
- (T
) m: o* z J7 h$ z - (set_tile "t_ltype" ltname)8 X2 O) q$ X! s$ O3 w% W
- ltname
2 u; _3 S5 R. c u, M- B; ] - )
( V4 F4 V) Q9 D; z0 R& q( J - );cond then g8 z3 y5 M: ?& v& a1 C' `# I& s, w
- eltype
* k: n$ H% H! e2 F9 o - );if$ c" Z: U" A* K
- );defun
5 f& I: F- c w - ;;) p& J4 \ Q3 s9 h% C
- ;; Edit box entries end up here
/ v* b$ r" w2 e; m. M2 p - ;;' y% I; e5 E! l: O" n2 W
- (defun ltedit_act ( / flag)
5 M b2 A9 J' a1 X0 e - ;; If linetype name,is valid, then clear error string,. i# }1 c/ }( j' z$ j! y
- ;; call ltlist_act function, and change focus to list box.
! m; F' _- F2 z7 X5 E8 g* ] - ;; Else print error message., n- R8 Y* X$ j Z M
- % F+ o' x5 v7 j' w$ T
- (setq ltvalue (xstrcase (get_tile "edit_lt")))
) n0 K: Z$ ~, e/ {9 T( c6 Z( p - (if (or (= ltvalue ;|MSG0|;"BYLAYER")* B' c" ^/ M9 t8 D
- (= ltvalue "BY LAYER")
! H' [7 x- a! g+ r6 h4 b) J - )6 P! G: J: H2 @# d; V t2 Q
- (setq ltvalue "BYLAYER")( i7 l& n! B" k; f Y
- )
# s! Y3 F# E3 ^ - (if (or (= ltvalue ;|MSG0|;"BYBLOCK"): N2 n+ n- c" K9 O4 F% g( v
- (= ltvalue "BY BLOCK")+ g9 g0 Y5 F8 c ?
- ); [" h7 B8 t, Z }
- (setq ltvalue "BYBLOCK")! v2 s0 \! Y. Z! a2 k* h
- )
' Q! n/ n# w1 G0 T; k) v - (if (setq lt-idx (getindex ltvalue ltnmlst))
/ S% N" [- h% ~8 `5 Z' W$ a1 v j - (progn
- ?7 }, ?" B6 }' ^ h2 R - (set_tile "error" "")
' @ x9 f% m& s: Q - (ltlist_act (itoa lt-idx)), j( \" o {2 T& U
- ;(mode_tile "list_lt" 2)
" I: _8 k9 i' C# r$ V - );progn then2 M3 e6 c1 E" O, \" c6 `+ y. j, r9 h
- (progn/ }, o7 T6 U8 `2 i0 [6 u) }
- (if (/= ltvalue "")6 X. v$ }& [* s4 k9 R
- (progn
6 n# ~# `* g E% z5 x: b - (set_tile "error" "Invalid linetype.")
- b7 Q# r5 C w+ I - (setq flag T)
% x. w- Q$ C4 m - );progn
0 C8 \: ]7 c8 h1 D6 B l# ~. @ - )
- |5 N& b$ R7 W) K9 ?2 B( p* J5 p' E - (setq lt-idx old-idx); Z: m5 c! d% @0 f4 \) I: Z9 b
- );progn else/ v4 e! c9 k% }3 ?, b
- );if8 D& \9 g- x; t- b0 J
- (if (and (not flag) ;added so a return will take you out of the dialog.
Y+ _( ?. ~- r9 L! b, @ - (= $reason 1)
0 Q% j$ A" j$ k# w - );and3 e: ^& E8 {) Q9 ?6 s- [! U
- (done_dialog 1)
$ B4 j# Q+ H4 n6 B% m+ C( I - );if + `7 K! e. ^: a3 g
- );defun ltedit_act# |6 j4 U$ I. G, ]! D4 o2 e
- ;;
# w @( v2 ^9 q1 c& y' r - ;; List selections end up here
- o' n2 s+ r( G1 U; b; h - ;;
* s2 ]3 \: h7 q" O J$ P- j4 I& P - (defun ltlist_act (index / dashdata)
$ M+ }& d/ }2 }, ^- D$ K3 f - ;; Update the list box, edit box, and color tile q/ p- @- S" u2 k) `, y1 u
- (set_tile "error" "")% E j. {1 S/ o, A
- (setq lt-idx (atoi index))
, J7 e' `# i' ~/ z5 ?3 p9 w - (setq ltname (nth lt-idx ltnmlst))
3 x( H+ z+ Z f - (setq dashdata (nth lt-idx mdashlist))5 d( W% u2 Y* r4 `: Y% G" c
- (col_tile "show_image" 0 dashdata)8 I. G% @4 m% n- H$ H- q- }
- (set_tile "list_lt" (itoa lt-idx))# J: {! b: U5 x% c O* [ I3 R
- (set_tile "edit_lt" ltname)
b: p; p1 l% R" n - )" r1 t1 n) ]! ~
- ;;& \2 U+ u+ K3 c: H# W* [' p
- ;; Reset to original linetype when cancel it selected
! C* ~# H3 M& V( h3 q+ d - ;;
1 M: @- O% j' C" |% |3 H* q/ [ - (defun reset-lt ()" H" s* Z$ A, y" s4 V; O' x( `
- (setq lt-idx old-idx)
. C1 d6 m) U9 [9 | - (done_dialog 0)" t! v) k) U% |1 o6 N
- )
% l; O3 Z% u2 ^( @, ? - ;;0 x {$ a2 K* t h& O; T% \% `" W
- ;; This function pops a dialogue box consisting of a list box and edit box to* k' H/ Y$ M+ y* b' S" y, d
- ;; allow the user to select or type a layer name. It returns the layer name
# V; o% n' l' ]/ D - ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the
' o. c+ }9 f( V6 V: p* ^% F# } - ;; drawing.0 P; N l' A. ^# _! e
- ;;. s4 ]7 q% G5 M! V4 z
- (defun getlayer (/ old-idx layname on off frozth linetype colname)
6 M2 W, t* m- l. a' l( Z - ;; Create layer list the first time the layer( f8 p/ g S/ y8 L2 m; q
- ;; dialogue is called.
. O2 d2 H! N: x4 K: V: k# c% I! w x - (if (not lay-idx)
0 d( f4 E8 \" s8 i( s- s3 a9 c - (progn6 G- ?0 r# o$ f2 Y
- (makelaylists) ; layer list - laynmlst4 K. t3 T: i; a4 f0 I; }. S
- ;rk
) k& P3 X) U+ Z- g2 T# K - (setq lay-idx (getindex elayer laynmlst))
! v( ?9 c" @. u% m9 X$ p2 J - );progn
4 C% T: `3 s5 Q" }1 ~( ~5 ^: }6 c - );if, q& s& L% {4 R G" ?$ l8 X7 |
0 n/ o* ?3 Z2 q8 c- ;; Load a dialogue from dialogue file" {1 Z+ [3 F+ w6 V( l8 [. N. j
- (if (not (new_dialog "setlayer" dcl_id)) (exit))$ j$ @" j3 Q7 I0 x0 O* h
- (start_list "list_lay")
( l$ l8 u0 r4 B# o9 } - (mapcar 'add_list longlist) ; initialize list box. } t9 z) B, Q' r6 j; k5 ~# `
- (end_list)
, s2 _9 x' l2 p - ;; Display current layer, show initial layer name in edit
; i2 X2 c+ [- i8 y9 j2 \ - ;; box, and highlight list box.) H* e% t" j7 R0 ^" f. d! b# V
- (setq old-idx lay-idx)
& N; h% n9 s# @" N( m - (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))- J) S1 b& p% k% V9 s$ n$ B( w ~
- (set_tile "cur_layer" (getvar "clayer"))6 g/ }8 [3 G. L; I8 m( e
- (action_tile "list_lay" "(laylist_act $value)")
# ]* p. T6 ~) r5 i+ P - (action_tile "edit_lay" "(layedit_act)")# ^/ L0 c, s/ J7 N3 q
- (action_tile "accept" "(test-ok)")* X9 I# J& l3 {, |3 M l. O- [* _ s% Y- l
- (action_tile "cancel" "(reset-lay)")
+ y; s0 r: {- ]( O3 j$ Q - (if (= (start_dialog) 1) ; User pressed OK2 m3 A& J, o; `5 P3 t: b) u
- (progn( `$ N5 y7 Q, e9 a9 ]
- (if (or (= lay-idx nil)& f. B7 Q8 W9 ]! ]8 ?
- (= lay-idx (1- (length laynmlst)))+ L" `) ~" Q& a/ n
- );or
7 z0 i' q Y5 n4 G7 ^( s - (progn) O) J, k9 |- C# F) k9 {
- (setq lay-idx nil) 0 x+ f7 ?. [" w8 K& H
- (setq layname ;|MSG0|;"VARIES")* n2 v/ I0 Q- |* O# R/ i
- (set_tile "t_layer" "Varies")* D* I0 q! D/ f9 u- N
- (setq layname "")3 A1 Z1 D! C% L- r( C$ G
- );progn( a, p% }$ `. l! R9 m1 e
- (set_tile "t_layer" layname)4 z/ A6 O( r" s1 o$ b7 b
- );if7 R- o+ V/ }' A' r- k
- ; If layer or ltype equals bylayer reset their tiles9 e& n2 f! B' r# i2 m
- (if (= lt-idx 0)
0 ` M8 _8 }4 F6 t+ A1 |# |$ o: I - (set_tile "t_ltype" (bylayer_lt))7 U! R7 C+ h% W- \* }/ c" p( Y# a
- );if( C7 d: u" y8 P1 j6 Y" H2 [6 L2 A
- (if (= ecolor 256)' N ` ]9 O$ R6 l V( q
- (progn8 \2 Y8 H ^/ c2 L, X7 r6 l
- (set_tile "t_color" (bylayer_col))
) ]7 W/ b6 _$ q# F+ }' K - (col_tile "show_image" cn nil): E& m) }# M# @; n9 _
- )
$ P& x3 E8 o$ T9 b* U4 I" k& B# V/ o - );if2 t, s" Z4 o5 a
- layname
2 B' t+ c! ^8 v( M - );progn6 K( W9 E. `2 j, {! D+ |7 Q
- elayer/ }! y; ]& R M3 W& t. }9 Y. {+ l
- );if; M$ L0 n- Q$ A
- )* r8 W" Y k4 [0 f) y
- ;;
1 g O# Q, x5 ?! y - ;; Edit box selections end up here% W6 d3 }$ Q4 F3 b
- ;;4 Y/ e; b4 i+ u, B" u( m
- (defun layedit_act()
$ t7 Q0 c$ W9 y( r5 g# r8 ~ - ;; Convert layer entry to upper case. If layer name is0 X4 `# L/ w \
- ;; valid, clear error string, call (laylist_act) function,# `; W6 m3 Y8 w% H
- ;; and change focus to list box. Else print error message.
! ?4 J& W" H( _+ O$ N+ c) c - (setq layvalue (xstrcase (get_tile "edit_lay"))) i# [! {: ~( X: [ v
- (if (setq lay-idx (getindex layvalue laynmlst))
4 V1 S- Z6 a4 m1 }* m5 V& h - (progn7 T. V% s' |/ Y, J( ?9 Y7 ~, y
- (set_tile "error" "")
* C/ \% i* O3 C' |) Q' I - (laylist_act (itoa lay-idx))8 \; U8 y3 D8 O L% k4 z9 Q1 y
- )
' `) E, m3 M) ^ - (progn" v- S# H9 T# ~' r6 E
- (set_tile "error" "Invalid layer name.")
9 G* g+ a# m5 b* Y( F9 a4 | - (mode_tile "edit_lay" 2)- k. I% M6 o7 O) A6 }) Z% V$ ?& w
- (setq lay-idx old-idx)
; R$ W: U" a# C6 K4 O; S N1 l - )
) e+ F J. ?( ]/ e. S5 f* F$ d - );if% a2 P& q( _' f4 m. {" ?' K
- );defun
x& h" u( Y! Y; U) _$ | - ;;( p! v) a% c; G
- ;; List entry selections end up here% Q0 Q# C8 t) v+ j. D
- ;;
1 ]& Q% b2 a" J. K" q7 o1 i% m - (defun laylist_act (index / layinfo color dashdata)" A8 } }; w' ?0 g& W: T
- ;; Update the list box, edit box, and color tile$ [/ k, z+ v9 r
- (set_tile "error" "")$ @9 i' A( P" n- q& ` t
- (setq lay-idx (atoi index))
8 i% {; ?0 F" F) h - (if (not (equal lay-idx (1- (length laynmlst))))! f) l( k5 l2 b Q! A# v, h' V+ y
- (progn
' V( d' I" s) z7 k- m( Z9 U& y - (setq layname (nth lay-idx laynmlst))9 F- v4 G4 p( E9 S' q3 Q
- (setq layinfo (tblsearch "layer" layname))
& k! r0 ] S- d- u% S% X% ~ - (setq color (cdr (assoc 62 layinfo)))
# S& e/ Z, r/ ? - (setq color (abs color))
( K; U: C& `) r - (setq colname (colorname color))7 N5 G: y0 ]/ \7 Q4 M% E" g
- (set_tile "list_lay" (itoa lay-idx))
; j3 @" |7 ^: _ - (set_tile "edit_lay" layname)6 f; ~5 N1 t" s6 X7 N) ]
- ;(mode_tile "list_lay" 2)' n$ X* j; y7 s
- );progn then
1 H) a! Y/ u0 m7 F$ t - (set_tile "edit_lay" "")
* |% {2 g" g, }# Y6 V { - );if 5 n! c$ K D* \# K, \
- );defun laylist_act
& j, n& ?2 d# a7 o* I* q - ;;
( M A t# m' r. ]( ~% \0 j - ;; Reset to original layer when cancel is selected
$ q; q4 q' X) ~1 o9 y' A - ;;
5 {+ P9 m q* X, c - (defun reset-lay (); U) b9 S1 p6 _
- (setq lay-idx old-idx)' M, @. ]5 d& C
- (done_dialog 0)7 K* Q. g' X8 d- S! q
- )2 S. M, p! Y$ B c
- ; U- { x+ k" v
- ;; Checks validity of linetype scale from edit box. It checks to3 ?1 X6 ^) Q" F0 q) O3 i
- ;; see if the value equals "Varies".
3 x& m7 b% A- E- ~# I# C, L5 r - # l( s! @. c$ J' e$ @+ L1 B
- (defun getscale (value / rval)
* c/ N8 e' ~# q$ S. K. W1 x - (setq value (strcase value)
# j; A* \9 v3 T - rval (distof value)
7 l$ |" Y6 T6 ^* h% Z8 Z! T+ q - );setq% M; s& y) g- y, ^6 O2 u3 H
- (if (or (= value "")
0 m+ \7 V) s% k/ t/ S) F; [4 | - (> rval 0.0)
2 W$ d5 c. f; i" Z1 d - )5 Z2 R. x m/ g9 |) l# Y% u; r
- (progn
/ r/ k3 v7 S: X$ N" ?; K, z Y% E - (set_tile "error" "")) O5 R. D- q) {
- (if (= value "")3 d; f$ c+ o5 U" G
- (progn
5 G$ R' b! L3 M! S& w q - (set_tile "eb_ltscale" "")5 A9 {1 @ Q: ^% J' t2 n6 |$ P7 g1 j
- (setq eltscale nil)' B2 z0 q. L6 Z$ O. A
- );progn then& K, X7 L @5 x5 H t9 Q2 g9 W
- (progn
: p" }3 g1 O# Z6 I9 Z - (setq eltscale (distof value))
# n! {! }+ U% V( G# {! Y - (set_tile "eb_ltscale" (ai_rtos eltscale)) @. ?% w& {$ w$ o7 m
- eltscale9 {; t8 e/ s8 M |# S
- );progn else. H3 h5 \$ H( A' f
- );if
4 T# E% ^* j/ Y% i2 q - );progn
2 w0 ?: P8 U& f: l x) b - (progn2 {2 H: a O4 _( k
- (set_tile "error" "Invalid ltscale.")
- t! w2 G8 n; {/ I - nil
0 m, d9 o! _9 n0 I) O4 w$ g! m - );progn else! M9 Y: W# k- h+ Q' K
- );if. C2 ?' f9 k2 x4 O5 R
- );defun
6 ?8 U) Z' B: j/ L. [$ V# J& x3 I - ;;( q6 T" e- f$ I& X7 v
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a8 ^8 l% A6 L2 \8 N7 h1 v
- ;; string can't be converted to a real, this routine checks if the first
/ f, b2 q& W4 b) f - ;; character is "0". It also checks to see if the value equals "Varies".+ x/ M4 W. P+ g' g, m$ J( u! p
- ;;9 ~/ a/ i1 m% g4 H# z4 Z( s6 i% i
- (defun getthickness (value)
; @7 t# `. f5 U$ F - (setq value (strcase value))
- Y/ F3 o% e: `. P" _$ B* ] - (if (or (= value "")- v0 K5 g! ?: g6 k2 T, q
- (distof value)
: Z1 C) O8 ?1 w) _ - );or
" w; T& N# z1 @! I - (progn
/ q8 a+ r2 F8 t& z# K4 v% G - (set_tile "error" "")& z0 D0 h; @" A- f; c1 @0 M
- (if (= value "")9 ^; v0 o& \7 i; s k
- (progn
+ L: x' V6 F6 N( F! D - (set_tile "eb_thickness" "")
5 ?4 H" b/ F! u" m9 Y - (setq ethickness nil)7 T; U/ @5 g* m# \0 Y+ T/ |
- );progn
, F" Y. j+ O( v, p6 u3 O1 K/ S - (progn ?$ ~- k! @) P+ Q% i$ F* E
- (setq ethickness (distof value))7 ]; K& t5 v9 T, D( f" f
- (set_tile "eb_thickness" (ai_rtos ethickness))
& j9 l! h! C2 b0 G* S - ethickness
. h" g. R0 G* u% C - );progn7 K8 p; B0 W9 Z
- );if; @" A$ S* B6 L$ l6 A
- );progn2 J( h& L3 h( G9 H z, _ @* P5 b. ]
- (progn
* M0 m' J; G! y$ U, @" q" [ - (set_tile "error" "Invalid thickness.")" X1 U) x0 `5 B: E; V. h: ]
- nil6 L! n2 n* K" Y( Q& J* v% S( J2 q! }
- );progn' h) e# u0 Q9 \% L* z" [; f6 W/ z# _6 U
- );if
% N* s0 [3 p% F- Z8 L4 M - );defun
6 g- a( F. ~' s0 X- \( k& Q% { - ;;
( j1 t% e/ T% I- n - ;; Checks validity of polyline elevation from edit box.* C( W5 m" q: d+ i. j* I v5 O
- ;;
2 c' r6 q; @- H* E, j* v! p - (defun getelevation (value)* U% b8 Y' P& j: c o5 w
- (setq value (strcase value))
+ U' X1 i4 P1 m g5 t+ @ - (if (or (= value "")
z: E, o$ U" _- V - (distof value)( i9 `+ |# l0 f' @5 G q
- )% p( q8 D' \# `3 c. R8 N
- (progn0 C$ g3 \& }2 T% K% t- x
- (set_tile "error" "")
: \( X3 y8 L/ C% f9 I" J/ X" w - (if (= value "")
# O4 n4 a! u4 W' m6 f0 v2 S' q - (progn9 P8 ]" `5 Z; u% r) E, O' V: ?
- (set_tile "poly_elev" "")
* f9 W5 a+ S3 z8 w - (setq eelevation nil)6 ?' K8 f* s) t. e/ X6 C: W
- );progn, i8 p: `" B. b m
- (progn \- U7 b3 _$ }. t v9 u: l/ D
- (setq eelevation (distof value))
( r5 V0 N5 @! A6 r - (set_tile "poly_elev" (ai_rtos eelevation))
" W: B2 i. Q, M& `+ W H - eelevation! ^; i1 [4 ~. `
- );progn
% @& Z( S- l: F7 { F( J! D" i7 M - );if
! A/ a0 ~4 P3 k% W0 B, y6 i" R - );progn% _1 h* n; R# c/ `# \
- (progn
* @/ o$ S- ~9 ?, ^ - (set_tile "error" "Invalid elevation."); N$ d0 r5 e% |/ M) c5 [
- nil' M8 p$ \ Y; j& c2 i
- );progn1 E( F8 O; @* P/ C; E8 ~ v
- );if9 R" ?) \) y8 l* N2 {$ {
- );defun( C8 S3 b6 a/ m% r) i, O. T; l6 N
- ;;5 W+ D# @* K }. K! ?
- ;; Checks validity of polyline width from edit box.! Q5 Z# |3 i; p9 E' A" f2 N5 \
- ;;" o+ C9 G4 t# I$ y
- (defun getwidth (value / rval)
' @! j- N; J+ A, S$ c( K* n; D - (setq value (strcase value)
0 _% e0 B* v; N- j - rval (distof value)
2 w. a, A5 _. Y6 f0 t7 b5 G- ~ - )
' Y& A1 @+ x5 T) ~+ y! [- t - (if (or (= value "")
2 ^' _# Q( J$ b# ?& l0 b5 l4 w; ` - (>= rval 0.0)- B+ b* i, L3 z2 Z3 E
- )
' ]2 `) O' G' K% P5 T5 Q - (progn1 m+ j( d: p6 q' W% x
- (set_tile "error" "")! h0 t8 s6 W$ H8 e# M
- (if (= value "")
& u' p. I- g+ }5 `* n) x - (progn9 J- D7 z! j7 O# O
- (set_tile "poly_wid" ""); @$ a% w% J8 S; ]4 d# G
- (setq ewidth nil)8 d w# \* `' ?
- );progn0 x! G, R3 D7 W$ _% s
- (progn) ~, W& Z) O! P& K. g
- (setq ewidth (distof value))
7 r1 D; z. ~# o* F( u - (set_tile "poly_wid" (ai_rtos ewidth))
. l+ a; L4 O9 @0 c5 ]1 K - ;width6 G7 s& d; r9 c; ~+ _7 Z- `! Y
- );progn
0 q8 l) Z9 {5 }6 d7 s" Z - );if, @9 l1 c7 c! I" G' u2 E
- );progn% ^/ F) y$ ~7 V0 \; |2 w* c
- (progn. d% \8 ]7 G3 |' j! d) S$ @, l
- (set_tile "error" "Invalid width.")
! g6 j- Y! m7 H1 b8 S# B - ;(setq ewidth nil)
% i* w2 p# u3 x - nil
) \2 R+ p, E2 v+ k; F - );progn* D \! e+ D) @, m
- );if/ u# G7 \" |7 C( u% c( | ~
- );defun n' w- k. v5 d# l2 N3 q
- ;;
5 K" G2 H7 M+ Z8 i. k - ;; Checks validity of text height from edit box.: ^2 K+ ?) V+ v/ R9 u2 @2 k6 K
- ;;
! e: {7 _8 Z A' ^- K/ Q7 h+ B, B - (defun getheight (value / rval)/ Z6 }: a7 j; a2 @+ r
- (setq value (strcase value)' [( @7 {: Q$ h2 P
- rval (distof value). m) _& [! R. c8 l: ?( S
- ): C; `0 o5 Q4 U. W+ R { h
- (if (or (= value "")& e1 k5 \6 ]/ O+ B" Z; |
- (> rval 0.0)* i4 L9 o2 K9 J( M& F E
- )
3 i3 T4 m& ]1 H- ^ - (progn
: z+ M9 j* M% \9 o9 P' M, {: R$ S ] - (set_tile "error" "")
8 U- u6 F4 Z' S% S3 Y - (if (= value "")5 D Y o3 T7 s/ U6 W! n. L
- (progn
0 S6 g0 r" @9 n! B5 ` - (set_tile "text_hgt" "")* b- W8 m6 N9 D4 g0 s+ z& x
- (setq eheight nil)
+ _8 m, G# F% C1 O) W' \: f1 f - );progn
. u+ E2 J' |( R4 Z# T - (progn
0 ^6 z) G: l( l7 ]" I& L6 E) Q - (setq eheight (distof value))2 |3 H2 |, X2 B; q
- (set_tile "text_hgt" (ai_rtos eheight))$ a( Q& [& l' W" X# i
- eheight+ \" t( M z9 f/ {. V$ T6 |: Y6 x
- );progn. ~, l0 I) T9 f7 [6 D/ ~# n D
- );if
8 K& }6 ?6 v7 j6 M( y - );progn( _) e- L, e) y _
- (progn$ A3 D6 S: N) e
- (set_tile "error" "Invalid height.") I8 ]( \, l5 @8 V& `3 |
- nil
# S( W- g0 \- ~+ d1 I. | b g$ e - );progn3 |3 y6 W, R9 q4 }
- );if& T: {- v' U% f- h: t
- );defun
5 Y2 \ z" W/ [" A% o+ _8 x `
4 S. I! p" Z$ X- (defun getstyle (value lst / rval)
, R5 b4 s6 ~7 y9 @. F$ t; | ` - ;(setq value (strcase value))
) G4 \3 \3 B6 R# q4 c6 R- ?( _ - (set_tile "error" "")( Y+ [1 z) a5 U
- (setq estyle (nth (atoi value) lst))
- y) z+ r+ y; R s9 `! v# [: l* o3 ? - (if (equal estyle "")# o" A- t( e0 S$ u9 {
- (setq estyle nil)+ r: _2 o* K* c* q
- );if0 W6 [. C! C( z" v, ?: f9 H; Z& A- \
- , p8 p/ F' v% _7 q3 g# j/ P& O! i
- );defun getstyle
4 N5 m0 ]* w M7 J/ c
W6 ^1 S4 _/ t9 |- ;;
# N) T" a5 L5 Q' i, u/ P" D - ;; This function make a list called laynmlst which consists of all the layer1 P/ a5 h, `) v: z# I" G( h Y: T
- ;; names in the drawing. It also creates a list called longlist which' d% d" y: O+ }
- ;; consists of strings which contain the layer name, color, linetype, etc.
$ }. R2 G6 ~/ x* `+ k' H - ;; Longlist is later mapped into the layer listbox. Both are ordered the# ?; G) F k# u; H& Q
- ;; same.) g8 G' y' ^0 M7 R% K" H% \5 y
- ;;+ @. a- F- Y4 @$ s0 V
- (defun makelaylists (/ layname onoff frozth color linetype lock vpf vpn ss cvpname
' K( n& w. j/ t: _% k5 `1 j, e - xdlist vpldata sortlist name templist bit-70' E d8 l9 F) G& A3 k/ u1 ?+ h
- layer_number5 C9 H/ X: _4 Z' N
- )
0 j. d8 ]3 G* c, E" N - (if (= (setq tilemode (getvar "tilemode")) 0)
; G* A3 ^ f" I# c* H* P5 m - (progn
( W6 L, |5 b; d - (setq ss (ssget "_x" (list (cons 0 "VIEWPORT")) m1 M2 b7 c$ p! c+ a
- (cons 69 (getvar "CVPORT"))' X7 w7 d. }$ |; g9 Y3 r' C- z2 X* w
- ) K3 ^$ q2 y' n7 L# n
- )
$ ~4 r1 X- b* M0 }) B2 \ - )- L; z& d: v/ }/ t$ ~
- (setq cvpname (ssname ss 0))0 r8 N$ z4 x+ _5 Q; ~) \8 S
- (setq xdlist (assoc -3 (entget cvpname '("acad"))))
# |. {* m, c/ O3 o: N - (setq vpldata (cdadr xdlist)), K& I4 Z. p. ^9 S
- )
9 t. Z( d0 w4 O0 O2 S - )+ W- Z* T V# D
- (setq sortlist nil), d( \! `& ^& a3 \# l
- (setq templist (tblnext "LAYER" T))# ?3 a- a" L- K" p
- (setq layer_number 1)
, `& M1 |' q# ]# i! ` - (while templist
0 e: E, A. y- I/ L - (if (not (equal 16 (logand 16 (cdr (assoc 70 templist)))))
3 F% i3 C% o9 S3 u( R" `. s+ q2 R - (progn
$ @; ^' t' K# u - (setq name (cdr (assoc 2 templist)))4 m) G9 j1 _) y# }) w& B
- (setq sortlist (cons name sortlist))
. i0 S2 L" u1 y# v - ;; Not dead message...
. V f8 A* b' z/ V# I - (setq layer_number (1+ layer_number))+ S, A, e. V5 w9 P# o
- );progn7 X0 B8 d. ]0 v- ]
- );if
' `9 D9 x; g) W, _+ x' L - (setq templist (tblnext "LAYER"))4 U+ p) G+ S$ [5 f z
- (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))
# X8 ]2 s/ `& U/ a - (set_tile "error" (strcat "Collecting..." (itoa layer_number)))7 {$ }) R: d8 z& |- q) m! Z( j2 E
- );if
4 L7 u, J- S% C# z8 {- y' ^ q - )) G/ I& T7 C1 t% i# X
- (set_tile "error" "")4 P. Z, t# k" F
- (if (>= (getvar "maxsort") (length sortlist))
1 }4 P, V- |7 q8 R! R - (progn- T* l, H* r& e4 h6 z& j, l
- (if (> layer_number 50)
" d. u. \ N9 g2 g' \# | - (set_tile "error" "Sorting...")
- {1 w/ m2 j4 B. j- w. ? - )
' p- {2 S. \$ k a3 ?* F4 Y - (setq sortlist (acad_strlsort sortlist))/ P, `$ |/ c4 F1 t
- )
, l# B0 H, i3 e: X1 z# l - (setq sortlist (reverse sortlist))
$ Z0 `! ^; t/ F% W6 G" o; k) n - )7 i% J6 Z5 D* M- I! f: o
- (set_tile "error" "")
: F% ?) B! d& ~, D - (setq laynmlst sortlist)7 g1 i% c9 O5 U* k
- ;rk
, `9 q! G% ?- ^6 T# L - (setq laynmlst (append laynmlst (list ""))) 0 ?/ @# |0 Y9 Q
- " X4 e, b+ F" q/ P4 S, p& `
- (setq longlist nil), \4 `& ]! m+ H$ a
- (setq layname (car sortlist))" c% o$ i7 ^+ H( W& [" H
- (setq layer_number 1)
0 p- _ O" b7 g0 l - (while layname& Q& } O! _# q) j" U; T9 h
- (if (= (/ layer_number 50.0) . C0 ? Z. ^2 h' _0 ~/ g3 E
- (fix (/ layer_number 50.0))6 {$ _- A% ?5 u" w9 e4 g
- )% ~+ q' a9 n E) v! r
- (set_tile "error" (strcat "Analyzing..." (itoa layer_number)))5 I# {2 u! w6 t7 Y2 ?- u/ [
- );if
6 e3 m3 O) |( m) x - (setq layer_number (1+ layer_number)). S H% |. r" h- P) b' k% v0 o
- (setq laylist (tblsearch "LAYER" layname))
9 X1 T. S, i0 b) I5 V% B, P: N - (setq color (cdr (assoc 62 laylist)))
5 r. {$ X* ~: V7 s6 j8 E t - (if (minusp color)
" ]: w# m* H6 r# x+ s) [6 g" E) Q" k; ?9 P - (setq onoff ".")) h# b$ F9 F& k3 w3 g0 `
- (setq onoff "On")
- B% ?2 ^8 R2 k* O/ Z' Y. V - )+ Y. B% U% o2 \3 l9 s( w) n) }" f
- (setq color (abs color))
{9 H( T) y* |* v+ L - (setq colname (colorname color))# t; k3 x; |: u5 q
- (setq bit-70 (cdr (assoc 70 laylist)))8 T1 U4 I7 _( ? J6 Y0 C3 f' a
- (if (= (logand bit-70 1) 1)
& F: P5 [- \$ v9 N1 X - (setq frozth "F" fchk laylist)4 {* J% a6 E1 I6 c8 ]. ^. I
- (setq frozth ".")
2 H0 |$ x% v7 l% E0 P2 Q: D - )2 m; C) `/ H: C6 M
- (if (= (logand bit-70 2) 2)0 p4 o3 s6 P& E0 k$ e2 P" \
- (setq vpn "N")
/ U& m& ?+ i, K: r0 @; l) a - (setq vpn ".")
. v J9 F) x" L( d9 }4 G- |$ O - )
6 ~1 O% v/ i5 b- a8 U; ]5 E - (if (= (logand bit-70 4) 4)
+ J/ l- w2 c! Y9 L) Q) D - (setq lock "L")/ g6 e# G. h* l8 }$ q4 I5 q
- (setq lock ".")
) X& v* j* t! M' W# V) Z# a - )
/ |! I7 i/ a/ c7 Z - (setq linetype (cdr (assoc 6 laylist)))( X+ o. r" C0 H# C: ~
- (setq layname (substr layname 1 31))
$ f% y6 C1 n. X* ^8 u% K - (if (= tilemode 0)
% b; E+ `+ V' k, y% @& l% \ - (progn5 V8 W* w& Q) N
- (if (member (cons 1003 layname) vpldata)
2 ]3 ]0 d7 e, Y - (setq vpf "C")1 S2 Y0 O; X3 A9 m
- (setq vpf ".")- ]' u0 P: c, w5 r& M- J
- )5 n- Y5 B6 ^5 {2 K
- ), [9 c7 _: b4 k3 B. l6 ~( F
- (setq vpf ".")
/ o8 v& E* X: t5 S: d - )' Q2 Y3 l* @0 u) ~8 T' t- _- P. L
- (setq ltabstr (strcat layname "\t"3 X6 K+ q3 J" U9 L: F" c
- onoff "\t"
4 n7 o* E1 l1 L8 e# H - frozth "\t"
5 Q5 T9 n2 k, Z N- c9 } - lock "\t"7 X! C3 g! ?* I4 G/ h7 X a
- vpf "\t"
; F2 l' c" q' y8 q. o0 l - vpn "\t"
1 q) [- \# H, B: N4 `+ ^4 ^9 J8 ` - colname "\t"
8 `- r% Q6 d2 @4 @& X+ U - linetype( w( @# c) F8 c
- )
8 W$ C; C' n/ H. ?' D6 y q - ); ~7 y1 X8 o( x# m( z
- (setq longlist (append longlist (list ltabstr)))
5 f9 V" X# F7 [$ d1 x5 Z - (setq sortlist (cdr sortlist))
& L4 L( I0 D( c+ N9 u5 P; J1 N - (setq layname (car sortlist))% W, c1 n! }! E2 c! }
- );while' c" [" o6 Z4 D4 L
- (setq longlist (append longlist (list "")))' I3 x' [9 t6 z0 ~% j
- (set_tile "error" "")/ o. c$ m6 e; Z+ |) ^
- )9 H( o# r: G5 G
- ;;
5 ?, Z+ e9 |" R0 D - ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
/ q/ V' D" \2 t! u# V! Q - ;; linetype names read from the symbol table. Mdashlist is list consisting
5 p4 v# d" v- N; r$ \ - ;; of lists which define the linetype pattern - numbers that indicate dots,
1 ^+ X5 w* D( H/ w5 L- E# m - ;; dashes, and spaces taken from group code 49. The list corresponds to the
6 u) h6 Y1 ~* w% C3 K - ;; order of names in ltnmlst.
% d. W. u3 o; M. b$ U1 S - ;;9 W( h+ G( P( @ q% p5 \( F& l
- (defun makeltlists (/ ltlist ltname)
9 Y( E2 N: o1 R: Y5 X- H - (setq mdashlist nil)9 \2 T5 b: N0 v
- (setq ltlist (tblnext "LTYPE" T))- t& C% t7 A8 R8 V( \% P
- (setq ltname (cdr (assoc 2 ltlist)))
1 @( p& c- I5 n - (setq ltnmlst (list ltname)), r+ ?3 @4 P8 e0 I+ c2 e8 x0 a
- (while (setq ltlist (tblnext "LTYPE"))
# P3 Z) l: D5 u7 W; d8 P6 b, `/ O; m - (if (not (equal 16 (logand 16 (cdr (assoc 70 ltlist)))))6 o( F* T" H( H8 U3 `4 J1 G
- (progn , I3 F( R. z n; k
- (setq ltname (cdr (assoc 2 ltlist)))2 p' a$ N2 l! A* Q
- (setq ltnmlst (append ltnmlst (list ltname)))5 S+ y1 _% S5 ?9 E/ @
- );progn
+ \0 j* x8 E$ n' n+ |. h - );if & T5 V. M* K7 X
- );while
: J8 X; m/ g- | - (setq ltnmlst (acad_strlsort ltnmlst))# i# \" ?' S: \7 E# F! }& B$ Y
- (setq ltnmlst (append ltnmlst (list "")));add by rk : w9 T( @8 C: E; }0 Z
- (foreach ltname ltnmlst
3 S& u$ c1 A" t+ o. a1 b2 j - (setq ltlist (tblsearch "LTYPE" ltname))
# ? v: r- \! y! |" T( h/ |* C - (if (= ltname "CONTINUOUS")5 a4 v1 L7 s9 m* \' V
- (setq mdashlist (append mdashlist (list "CONT")))
" O' a' I% d3 {4 P b6 D7 N - (setq mdashlist# `) f& ~/ x( M9 a
- (append mdashlist (list (add-mdash ltlist))) P, v8 g+ t: B
- )4 ]8 S- C% B( U0 z2 q
- )% d/ h, q) h6 a
- )
7 M! h' F2 P7 y# S5 ~ - (setq ltnmlst (cons "BYBLOCK" ltnmlst))0 O" g) r# h5 p! Y. p
- (setq mdashlist (cons nil mdashlist))# y: F! K$ v4 f4 j: ^$ i
- (setq ltnmlst (cons "BYLAYER" ltnmlst))! j! Q$ |/ `: c( |) z* Z9 t# K
- (setq mdashlist (cons nil mdashlist)) s6 E9 i7 J7 [' m0 G
- )3 y9 v, G: ~9 t$ |7 Q
- ;;
# e( u/ @" G& Y+ H - ;; Get all the group code 49 values for a linetype and put them in a list+ g) V4 t% N Z/ f) V
- ;; (pen-up, pen-down info)6 y; \' h' C+ ], _
- ;;. I9 ]2 ?- j+ Q2 ]
- (defun add-mdash (ltlist1 / dashlist assoclist dashsize)4 p. J) J: E7 o+ }
- (setq dashlist nil)& U4 P5 j- s0 E+ j
- (while (setq assoclist (car ltlist1))
8 w( w4 z8 n; t# m+ W; ` - (if (= (car assoclist) 49)' e2 ~, _0 c3 ~/ y& o
- (progn! `; Q+ a% r% J
- (setq dashsize (cdr assoclist))6 D6 J% D: n7 ^+ E/ m; ~# O
- (setq dashlist (cons dashsize dashlist)) L9 P' ^1 {* k
- )
. J3 a2 v1 r& k - )+ {6 @' G2 W* X. X$ g
- (setq ltlist1 (cdr ltlist1))
) A/ n+ ^; d W - )0 y8 m4 ~' ^7 W5 g r
- (setq dashlist (reverse dashlist))' e( a5 W3 p1 S! ?, M' r
- )
7 x/ x+ A d" u5 v M! P, e - ;;) Z* G+ e" S* G( w- o( N1 C4 `
- ;; Color a tile, draw linetype, and draw a border around it
* p F7 T* `/ \5 d+ P$ O) E - ;;) }$ `9 E! D* ^( L* Y
- (defun col_tile (tile color patlist / x y)3 B) O1 Q' @4 i( [
- (setq x (dimx_tile tile)). D6 c6 Q0 p3 ~0 Z2 Y$ T( R
- (setq y (dimy_tile tile))4 F0 D; |' k3 A6 ]; f* ^
- (start_image tile)
& E$ i% w4 q5 f7 I+ O4 [ - (fill_image 0 0 x y color)5 \4 w: `7 o8 r7 s) V0 P8 \
- (if (= color 7)
p' J) d0 ^, n$ U3 c E9 v - (progn
8 X9 s' O0 E8 f - (if patlist (drawpattern x (/ y 2) patlist 0))/ y: c6 V) m. v: I! \/ q' \. Q
- (tile_rect 0 0 x y 0)2 C' I1 N5 t& L# K& c" _' `
- )
+ R$ Z' k* m7 u' V/ S! Y9 O" v1 T - (progn
) T; P/ b+ z- Y9 s9 r) u - (if patlist (drawpattern x (/ y 2) patlist 7))0 ~$ O3 e+ q0 v! r/ m: K9 [' Y5 j
- (tile_rect 0 0 x y 7), a$ ?7 k$ a- b' v6 |
- )
- S4 r; Z2 t/ K, N - )
! x6 M/ l1 T9 C4 r4 r - (end_image)7 [5 Z, v$ W- ~, C& \- A b0 |
- )
6 L9 |6 x! T& X ~9 Q+ J: M* G - ;;3 `6 A) h. L4 ]7 M+ c/ S& i4 h
- ;; Draw a border around a tile7 |6 I) [, p- b% ~, P
- ;;
+ P( z+ L- z. P/ k; x - (defun tile_rect (x1 y1 x2 y2 color)
' {2 R( H% r# n2 l' e - (setq x2 (- x2 1))1 V( a/ E, C; o
- (setq y2 (- y2 1))
- w1 c) k N+ A& e2 ^/ h - (vector_image x1 y1 x2 y1 color)( J3 M* w: j8 @/ f# ?. Q
- (vector_image x2 y1 x2 y2 color)
# } [, a: h1 @) d1 L - (vector_image x2 y2 x1 y2 color)4 b- s4 L% H8 C) t
- (vector_image x1 y2 x1 y1 color)
1 m, j8 i0 g' N; o8 R, q) Q- ]5 C J - )
$ {2 g7 v2 O: A6 x) j4 W& { - ;;
7 K; K. t: r* h& | R - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image7 P8 K& U) h; u; a& E
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a7 b8 U5 n+ f, z z$ n$ M
- ;; list of numbers that define the linetype, and color is the color of the& f+ k3 E8 w% w |
- ;; tile.
' I6 V0 p/ \6 A, ~* Z, m - ;;
3 J4 k' ~, T. v2 g0 o6 L! p$ | - (defun drawpattern (boxlength y2 pattern color / x1 x21 A8 }& y* ?& F" _ i2 p" _
- patlist dash): X! a s% G7 ~; }
- (setq x1 0 x2 0)$ n( S- U) W) d7 @# Y
- (setq patlist pattern)9 M; d- g- r/ i N( g5 I
- (setq fx 30)4 D$ Y5 U/ `8 R0 t) }% v
- (if (= patlist "CONT")
" ]6 }4 y$ Y4 ~: D7 @8 P - (progn- y8 n6 q) C6 H. c8 x% y0 h
- (setq dash boxlength)
$ B' ?9 S: W& _. F7 r - (vi)
5 _$ X9 j0 v/ d - (setq x1 boxlength)
$ W$ Z* Q% r ~1 v+ c) q - )
0 _: g* b! ]9 R7 M+ y - (foreach dash patlist& q2 k" m+ R5 T# g i
- (if (> (abs dash) 2.5)
) O( w. _ g3 H9 E& g- l - (setq fx 2). @: `& R! u8 O5 E# H1 _
- )% v7 ?1 [2 {+ N. Y( |
- )
& e0 J, X( N& L+ W" }! d3 g - )
3 Q# d4 m3 s. G% h: `5 |9 Y - (while (< x1 boxlength)
7 ~& @- U, U9 n( X1 U - (if (setq dash (car patlist)); k2 e& N: t& X# h- F
- (progn2 X1 Y3 o4 P5 ^# T, f/ O8 H0 H
- (setq dash (fix (* fx dash)))
2 Q& \, |9 w1 |. n9 T" ?% \ - (cond. o: P" h, k- F7 w, F* [9 ^/ o
- ((= dash 0)( _+ V& _7 h a1 s
- (setq dash 1), K; }/ w8 _! w2 H
- (vi)
9 y* q. |* u" `* x - )
; z8 A/ j q7 B5 a - ((> dash 0)# g& d4 c. J5 |& P
- (vi)
2 U) h# }2 g- `2 y: W+ ^6 [ - )! z+ `) C9 B/ X( G8 j# Y+ _
- (T
6 a* |" {! G( t2 x' i - (if (< (abs dash) 2) (setq dash 2))8 y* C1 p9 E0 _" _
- (setq x2 (+ x2 (abs dash)))) l( q7 W9 E/ T! ^" v5 K5 v
- )
: Z5 x4 v& Y1 s$ ]7 p% @0 _. u! W' Y - )
% k, m6 x& Q* ~' D' j - (setq patlist (cdr patlist))
0 Q4 } g2 ]) b- L5 \. U8 g( n6 m - (setq x1 x2)
0 \% U$ U4 d Y - )
: K o1 R8 W5 x6 ]/ |% f# d$ w _) O - (setq patlist pattern)8 K6 e1 y& z& I* ]
- )
9 E. Z' B7 v- ?5 a9 ]/ o9 { - )! i& {# l3 |" W0 Y' f
- )+ T T- L( x0 L+ |
- ;;# }: u: r' @8 U2 f, r1 L4 L
- ;; Draw a dash or dot in image tile
0 W" ~+ h5 A* i; N - ;;
: K* r1 g! y' {& n. i3 q' j8 Z - (defun vi (): j" p3 \ v0 N5 K! G2 Z
- (setq x2 (+ x2 dash))6 W. T0 ? _. h1 O
- (vector_image x1 y2 x2 y2 color)& n# s3 b4 T2 \
- )
' R/ [1 S# C# ], d) x" r/ k - , J3 H. w7 F* f7 e; W
- ;; This function takes a selection and returns a list of the color,, h4 Z1 ~9 p0 ~8 W c7 D
- ;; linetype, layer, linetype scale, and thickness properties that
+ _+ N" ]! W. A/ I6 R) e5 t. C6 N" ] - ;; are common to every entities in the selection set - (color
2 `. T# q8 Z' _& |9 J) [ - ;; linetype layer thickness). If all entities do not share the same
1 {0 u* d5 e, y. o G3 f1 b - ;; property value it returns "Varies" in place of the property( u9 x6 G, v- g( k: K S
- ;; value. i.e. ("BYLAYER" "DASHED" "Varies" 0)6 H8 ?& |7 j1 e6 u
- ;; The last item in the return list is an integer flag for the6 u7 m: c6 T; I: r4 b; b8 }
- ;; homegenity of the selection-set object types.. U$ X$ D5 b0 M* o6 G* v) M
- ;; 1 = All polylines
, ~) ~( A4 ?* A1 P8 L - ;; 2 = All text or mtext or attdef, or a combination of the three2 I7 S/ f- s, n: y5 D: I0 ?
- ;; -1 = Any other mix of objects
( j0 o: J$ A) T% M$ W - 7 l( p9 g& Z/ A; |
- (defun getprops (selset / sslen elist color ltype layer ltscale thickness1 `- I! e2 I4 L
- width elevation height go ctr
# v3 y- r5 U' V0 X& p- Z - eflag 3 t5 i( T' N9 W! V
- etype temp 7 v1 i+ H4 I; L! r# p) Q
- txt_ss ;;;;rk 11:24 AM 1/30/973 H. f* C! O% O+ i) a1 ]7 r5 [
- tmp
" x9 k2 t) G, I4 G - poly_ss 2 Z# m% R) o! k: }& v
- style
8 G* ]' S/ F. a& u* B- D$ m - )/ E' I- Q0 d* A
- $ W z8 M( b0 ^+ D$ @- f3 R. g
- ( u0 z8 i* e# D7 e
- (setq sslen (sslength selset)' ^$ m- F( @, ~ @ E8 V
- elist (entget (ssname selset 0))* d0 ? R& I$ J$ u1 h% t! @" d
- etype (strcase (cdr (assoc 0 elist)))
, t2 g" V9 N: w - color (cdr (assoc 62 elist))
P" W" [7 |( Z# r% | - ltype (cdr (assoc 6 elist))
" i0 D) K) Y" [, s3 A - layer (cdr (assoc 8 elist))4 w6 f9 Z8 g# G" X: r0 H* J c+ V
- thickness (cdr (assoc 39 elist))
: S j" L3 ]& i - ltscale (cdr (assoc 48 elist))
5 `; S+ X6 f0 |' l: q1 y/ x - );setq
0 d4 J% z0 \+ z4 E
1 k4 k2 K$ G' J$ q- (if (not color) (setq color 256))
' O5 E" b$ G3 \. A7 u/ U - (if (not ltype) (setq ltype "BYLAYER"))
& P3 a1 t6 m5 }1 B2 A1 K; y - (if (not thickness) (setq thickness 0))
; R" ^' t6 n: J4 s" y9 f1 ?1 M - (if (not ltscale) (setq ltscale 1)): U% F! P7 H, @1 m$ ^/ ?/ c
9 I0 l, \( N5 C0 R" E- (if (not width) (setq width ""))
# j/ N% A1 e! A1 S - (if (not elevation) (setq elevation ""))
$ v4 l T+ I: Y+ V1 ` - (if (not height) (setq height ""))2 Z J4 K/ R" V' w7 i" @( k- ]
- ) H* [, ?# |% k$ |% ^
- (setq go T + d! X' Z9 q4 O9 d3 }0 _
- chk-col T
2 m3 U( f5 x3 Y9 l& O. Z/ o. O9 G - chk-lt T . e$ ~ ^) O$ G/ M$ t1 \
- chk-lay T
9 }9 N! V: k9 C - chk-lts T $ g% c6 f( O1 R( j7 a9 d4 U
- chk-th T * u) A- i& Y8 v" {
- ctr 0
z7 M! \; h3 c - );setq
/ w& u4 s: n/ e2 R1 H, M
8 w$ h; [* S. I' `2 ]4 ]- ;; Page through the selection set. When a property) q0 S) c. ]' R
- ;; does not match, stop checking for that property.$ [& M! b0 c- F8 r; \
- ;; When the selection set is not homogenous, stop checking.
3 {$ k0 y& S7 \1 D# Y - ;; If all properties vary and the set is not a type 11 \ I6 W5 `: b8 D/ c3 J# e
- ;; (polyline) or type 2 (attdef/text/mtext) set, stop paging.1 U( F, }' f. G( T/ `% |
- ) M$ M; N/ g7 ]5 i a) D7 c2 t
- ;Lets set the eflag so we know if the selection set includes any
1 a2 \5 B5 v! \4 ] {6 P* g - ;combination of polylines, lwpolylines, text, mtext or attdefs.
% f2 h1 G" k( N - 5 _4 u8 q9 D9 O8 F1 ?
- ;watch out for 3dpolyline and 3dmeshes here! @rk 10:17 AM 1/30/972 f8 A, U* K: V2 o$ k0 @
- (setq eflag 0)0 m) b. a. H0 \* p0 m
- (if (setq poly_ss
# ]8 F" \# z, l) ^* B' K - (ssget "P" (list '(0 . "*POLYLINE")& B5 ]7 c- H1 T5 ^ h: V6 x
- '(-4 . "<AND") , f+ Z T, J4 a0 i8 D
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 8) '(-4 . "NOT>")
+ G- o1 Z& n* s - '(-4 . "<NOT") '(-4 . "&=") '(70 . 16) '(-4 . "NOT>")' Q& i* y3 S5 U. c1 O
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 64) '(-4 . "NOT>")% |* b- ]! g! E" _6 ~8 A- R
- '(-4 . "AND>")
1 c" v' L/ E3 G( T1 _, z - );list% B; y$ x& q8 y; H' w6 E
- );ssget get 2d polylines (legacy and lw)
: }5 U9 _4 k) u$ T/ ]9 l8 \" N - );setq% _8 @: J' ?% t
- (progn7 w1 H4 g; Z" ^. j) A) }
- (setq eflag (+ eflag 1))
- o* m) p/ j8 f' Q7 _& P9 U -
& j0 N7 ?+ S! h* P, l! f: Y7 ] - (setq tmp (entget (ssname poly_ss 0)));setq" b% I: M. O2 a7 ] p Y6 a- O
% O7 ^4 [) X: {8 S) s1 R; r9 a- (if (equal "POLYLINE" (cdr (assoc 0 tmp)))/ L3 d. g5 L, A9 C0 m. e( n
- (setq elevation (last (cdr (assoc 10 tmp))))
% d1 P' x$ j2 N6 {1 ~* t - (setq elevation (cdr (assoc 38 tmp)))
: K) K- u; [ A4 {. E }$ u3 J - );if
6 f) r. I+ P6 }# U6 z - (if (not elevation)
* z; m! ^$ R g; e% y3 L* b$ S - (setq elevation 0.0);setq1 z5 U, w% z6 H Q
- );if
8 r0 d/ w* X+ e$ ]( J9 e - 6 u A' Y% J, w. u" ~4 M/ g9 d
- (setq tmp (ssget "P" ; m, O) r" G2 [! X3 W
- (list
! R. v0 _2 e) l q) p - '(-4 . "<OR")
) F% c9 C- D5 w* | - '(-4 . "<AND") 5 A3 ]3 @0 {% r4 I
- '(0 . "LWPOLYLINE")1 J0 ?* ~+ A* R8 U
- (cons 38 elevation)0 t5 p9 d6 w1 _. h% S* i4 V
- '(-4 . "AND>")3 f. a0 Y! j" } }+ W6 b
- '(-4 . "<AND") h: @" c7 k. \- ^8 {& R# z
- '(0 . "POLYLINE")
& Q0 T) {2 {* q* N - '(-4 . "*,*,=")
' k! Y+ `1 G8 Y! c5 S - (cons 10 (list 1.0 1.0 elevation))* x! f& h# J- H5 X
- '(-4 . "AND>")
2 k3 @, N1 l+ d/ c' s1 V" p - '(-4 . "OR>")
1 B, L& B1 B ~0 Z - );list
) A# Q7 i5 H: q6 I4 B' ~% s% x7 ~ - );ssget7 E) f+ h- A2 F8 \
- );setq2 @ n3 C7 e$ e& T' U( p+ N7 V! @
; z4 \- W# \1 s/ K$ L8 D- (if (and tmp - }% B5 ]# l3 x4 Q
- (equal (sslength tmp) (sslength poly_ss))% _; Z# C1 t" I; H
- );and
5 v2 `: V1 f# D- [$ ~& ^ - (setq elevation (ai_rtos elevation));setq! p. _0 V: Q2 E. \
- (setq elevation "")
# }/ V& D1 ^# U- v" }# H+ m - );if
- t% y0 z) f: W5 a6 ?* |# o -
6 r4 p! y( R' D0 H3 ? o5 Y% \ - (setq width (pl_width_getter poly_ss));setq
+ j y" U H) |; ^$ u- O -
) b" w0 ^* e/ n. x0 U - );progn then 2d polylines and/or lwpolylines are in the HHHHHOUSE!
6 K3 @- x& G7 `1 x% O# i( y - );if5 z$ G1 _1 _0 S9 X
- (command "_.select" selset "")
. b4 Z( v t, O& f- W6 l - 4 L6 K& v3 N* ]5 F: h
- (if (setq txt_ss ! `% C3 N, X% z: ?
- (ssget "P" '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT") , O3 M' z1 ]" o* I
- (0 . "ATTDEF") (-4 . "OR>"))* G ~8 W% E" F- _+ J
- ) - @ X) L3 Y- `" E- K F- x4 @
- );setq$ |$ K+ G; A' ~( Q/ {; x
- (progn
! V* b' [% U( A' u# L9 y% i/ T1 ? - (setq eflag (+ eflag 2))
5 s5 |( i1 T3 ], N9 u - (setq height (cdr (assoc 40 (entget (ssname txt_ss 0))))( h! {! N+ @% X4 G: w+ C
- tmp (ssget "P" (list (cons 40 height)))
: f$ T9 ~; s% X1 y/ r - );setq 9 |$ L8 p2 i1 `: z
- (if (and tmp
8 g9 `* y/ j& d0 @4 N$ R' M - (equal (sslength txt_ss) (sslength tmp))
. ^+ |" L* |8 r - );and
8 t7 E( q% M& Y" R1 T* _0 P - (setq height (ai_rtos height));setq ;@rk need to translate from float 8 P0 p# F7 m7 v8 D' n7 Z
- ;to string and back again easily, h) ^: @ X! e5 W a$ J9 @
- (setq height "");setq else the height varies
$ U3 g- t/ d; j9 U! ` - );if& j9 p# }5 S! i
- (command "_.select" txt_ss "") ' @9 n6 b7 N0 |# [ c( n
- (setq style (cdr (assoc 7 (entget (ssname txt_ss 0))))
$ j. [& [2 o j+ y0 i2 t$ M& L6 ^ - tmp (ssget "P" (list (cons 7 style))) 3 ?! F/ w V1 a% Z+ A3 u. u" m; E& b
- );setq
5 Y7 N: E. n- y" t. b - (if (not (and tmp
) b& d( Q! _4 x, m# e8 f$ }$ y - (equal (sslength txt_ss) (sslength tmp))
# o& O8 M. E) v7 L/ C( J: | - );and
; W6 [3 J' L, y" `! d7 N' B - );not
3 R' X7 {# V3 {( [ - (setq style "");setq then the style varies ' z7 ~, ^# L( Y+ A, H0 J/ x" d" A
- );if" J7 ~' E1 `: L f
- );progn the text type objects are in the selection set, w; R ^- O- l9 ^. b% s% g
- );if
9 H4 j- `; E$ y& s& Q$ Y - (command "_.select" selset "")8 j$ A2 j6 Q5 X% S
-
w5 V; d1 D6 b" l7 s5 @1 ? - (while (and (> sslen ctr) 7 p& q% _- v2 K) S$ Y
- go
7 g0 _/ {7 N! w+ x$ ^ - );and
6 Z5 W% p- d1 ?% ? - (setq elist (entget (setq en (ssname selset ctr))))) H+ m8 B) L* ]5 r. U6 l
- ) F; i( X+ s0 f7 H9 I" b
- (if chk-col (match-col))6 \" V9 _& I0 J/ q( s3 O
- (if chk-lt (match-lt))1 ^3 h2 n9 d% A
- (if chk-lay (match-lay))( W* V2 b( v1 K9 ]1 [9 ~
- (if chk-lts (match-lts))4 i& Z% B1 G, S3 c8 q
- (if chk-th (match-th)); [! t F5 y( N4 U- \$ K) f
- 4 u% M. s) `4 V# @
- ;(if chk-etype (match-etype))/ d# z; n( n& ]) B0 V
& d; r8 R, I$ c) ?$ J- (setq ctr (1+ ctr))( B. o& \, X: H7 \1 e
- (if (and (not chk-col)/ l) q1 L: B" j; N
- (not chk-lt)0 y6 p' ~% K- ^% ~( B1 `0 e/ t
- (not chk-lay)4 u0 e7 q- \6 i* t- X& f( m
- (not chk-lts)
: p) n# r6 n8 y - (not chk-th)* l) ~+ G/ l$ R$ E# `3 K4 Q$ c
- ;(not chk-etype)( t: R& R: f3 c% P$ n
- );and3 Q" p1 T- W# w" G3 Y2 B
- (setq go nil): C9 w3 D/ `# o8 M" Q" U
- );if
/ B; @ v* |% i; z( ^ - );while
& O+ ` Y6 n" ^4 s7 d - # h# e5 z! x) K# c
- (list color ltype layer thickness ltscale
+ [. ]6 j% W; @* k6 |! n - width elevation height eflag
6 p, H" [: k6 @9 `( s1 Y- X, {) T - style poly_ss txt_ss$ C/ Y) d: z' a& d+ `1 Z
- )
2 k' M; r4 L; s2 U y - );defun getprops
2 v V4 I* c2 G1 X0 n0 T7 z1 u' ~ - " J" q1 J, W& o' F
- ; This is a speedy little routine to tell whether the polylines in 7 P. ~, j- }4 R( ^- |7 I
- ;the selection set argument are of varying width or a constant value.
8 ?* B! E- `6 u* O# I - ;Looping through the vertex's has to be done for old polylines when
4 c* r8 Q) U) ? v6 \ - ;the polyline header has width values of 0.0. Basically, in this case, ( v1 s) N9 ?1 F! C6 m% L$ B
- ;information in the polyline entity header is abmiguous. Width values - E5 J* c4 k! ?$ W& R
- ;of 0.0 in the header entity could mean the polyline has a constant
4 D0 t2 k% y+ } - ;width of 0.0 or it could mean that the polyline has vertex's of varying
( e4 M4 l( n1 l, d - ;width.
3 m7 o3 A/ ^3 k6 U7 _ \ - ;# E0 m8 i8 w7 v0 r \7 y( C6 Z
- ; It's all in wrist. Err a.., I mean it's all in the 'if'
, D% F, ^/ S8 R0 R# k - ;;: T2 O: f, A m! X5 C2 g
- (defun pl_width_getter ( ss / ss2 ss3 n na e1 width width_a width_b flag flag2)
: ]' o1 o3 P; O t
& m8 M/ p9 Q/ k0 L" K) W% h5 e- (if ss ! N, v6 j4 o; b) R
- (command "_.select" ss "")/ j( o" M+ `9 r$ t: c
- );if" Z% f% f2 M$ U e) K% D, [
- (setq width ""
3 f: i9 s. b1 B3 i - flag nil
& \% k( @% r' Q- O( y - flag2 nil
9 U8 T9 V/ A$ ^ - );setq, }! F5 @; ~, T. ]/ O1 T6 R$ m
- (if (not
, c0 a! X# u! G* G5 p/ Z- F7 B5 h% ` - (and ss& Q' R$ ~ x! c [( o4 x; q/ G; f
- (setq ss2 (ssget "p" '((0 . "LWPOLYLINE"))));setq* I, A" v7 G" Y* \7 i# r; Q
- (setq na (ssname ss2 0) @: G2 q9 B2 I/ l. _0 A4 @
- width (cdr (assoc 43 (entget na)))- P5 U; }4 e6 f* @
- );setq5 _0 G7 a( C e1 {, w
- (setq ss3 (ssget "p" (list '(0 . "LWPOLYLINE")
`/ J3 ^* O" {' Y! w6 l - (cons 43 width)
; l- D2 p" H* O2 l* F, W - );list
. n6 n3 `+ L ]0 J! \" P - );ssget
; M2 d) C. R+ T8 r1 X - );setq( _/ r8 \5 n5 t; c3 H' g/ I
- (setq flag T)
! ^* `! f; _* W# a# t7 Q - (equal (sslength ss2) (sslength ss3))2 \# J# ~! h* g
- );and
+ {7 l5 z& z( h1 B8 R0 c9 ^! @ - );not
. u/ d2 f5 R& P3 ~8 P7 r - (progn$ r. K" Z' N; T# Z
- (if flag
7 U6 ^4 L/ e/ n+ E - (setq width nil) $ ]+ E' \; P+ E# n9 S& F# d
- );if
! C+ Z1 h/ n2 `: k1 P. Z - );progn% Y% a- \: K, s/ [
- );if + @# V7 m' ]% q5 L; w' H
-
+ Y7 s. D% H u - (if (not
' `, ^8 g* S5 R) K, U" s) R - (and . U8 I4 ? o- H# e2 }5 f9 N- }
- ss
8 D* \# e' [4 h0 t- U$ i - (progn (command "_.select" ss "") 4 q& ~3 u/ m3 Q- x- ~ X6 E1 ?
- (setq ss2 (ssget "p" '((0 . "POLYLINE"))));setq+ ^) ]7 X- N/ b5 \3 J3 B7 Q; V
- ) * A4 M9 X* R5 [+ }- Q
- (setq na (ssname ss2 0)$ T% U/ r7 P0 T; O/ y. ]% t
- e1 (entget na)+ e; ]7 `2 J0 \
- width_a (cdr (assoc 40 e1))
$ i3 C; I W0 j! D - width_b (cdr (assoc 41 e1))) _ _4 h; j# R+ G
- );setq/ L( y, n) N: k( v& A
- (equal width_a width_b)
) q8 S+ ]6 j9 ] - (setq ss3 (ssget "p" (list '(0 . "POLYLINE")
; G% P0 }6 a3 k$ K) l4 x$ G0 L2 t2 F% P - (cons 40 width_a)
9 }! ^& l+ u( z! n9 F4 `1 g2 \ - (cons 41 width_b)
2 c: S' w. c) H+ Y- T: l; _4 q - );list) n6 H% t" M; p8 K
- );ssget
: n; B0 V9 k* P" X, T; k. h, y - );setq# H( v: `7 @4 [2 i
- (setq flag2 T)
v- |# Q0 B* g - (equal (sslength ss2) (sslength ss3))
. j8 G3 D7 z( b" F I9 t - );and + Y- I# y, [+ z; L. F8 g# {
- );not 5 c: H' p( f$ w4 @" ?# e
- (progn
+ e# d; k9 @: d# L; @0 p: x - (if flag2
3 o/ k6 l k% Q1 M+ v" x& l5 i - (setq width nil);setq9 S, i$ D" p8 m) q) y6 ]$ X9 u: l4 W
- );if2 |, O9 {5 U, a. X% }3 A; ~+ e9 ]
- );progn then x: B6 r! R0 v: ]
- (progn
$ h/ x1 \! t$ T* e9 B% ] - (if (or (equal width "")
* ^0 V; D0 s2 S4 k9 ?, L - (not flag)
1 c: k) t2 M @) s) \) E4 S. H - );or% y" Y5 K' h% [+ o
- (setq width width_a)
z( W; N! v/ P# C( u Y4 a( C* U - (progn
! z! h2 ]/ s% P0 _( {$ Q - (if (not (equal width width_a))
/ B6 p* T: ^6 _ Q - (setq width "")* V( ~4 Q" u' t
- );if
. Z/ c6 l; U2 E2 }$ Z- z+ \! Y - );progn' G4 }' X: L( X! z4 e" e; F
- );if
- E5 h% l: K6 o0 I6 ^6 h - );progn
- g& {) _3 Y( R - );if6 e! U. ~0 {( Y1 {+ `0 f
-
% c2 f9 y3 Y S# i2 V
- d8 k8 I. T" R- ;now for the special handling for old polylines( Z7 M9 y! K6 W; e f0 f
- (if (and width
0 n# L7 T% j, L$ {( [+ c! y - (equal width 0.0)
* y, y8 w- y: ?- i# f' U+ S) n - flag2
, }4 `/ _6 j, L/ \ - );and ! {! M' p4 Q7 T
- (progn
) Q2 e9 e3 n% `1 n - + Z+ v( [: o, q$ B4 M
- (setq n 0);setq
% _- A1 W; y! i" ]! e! v3 n - (while (and (equal width 0.0)
8 b! a- C4 B1 D. h2 ~$ f8 q3 B8 b - (< n (sslength ss3))
" O& U; g1 _4 N8 h9 y - );and E3 D8 V J$ d0 k& V- N
- (setq flag nil
o' e9 V* p: y( t - na (ssname ss3 n)* G2 m! l. x4 |+ B. U5 e4 U% |
- na (entnext na) \9 e9 A$ Q! x& q/ v/ r P6 C) @
- e1 (entget na)
' r- X( B5 Q6 o( |( V+ N2 Q - );setq" Z! B* p6 z5 _4 A( a
- (while (not flag). i9 s& S7 V# p/ w
- (if (or (equal (cdr (assoc 0 e1)) "SEQEND")
% z) K# p7 |* V - (not (equal (cdr (assoc 40 e1)) 0.0))& R! C$ O; o3 ?0 o" l3 Q5 v& x
- (not (equal (cdr (assoc 41 e1)) 0.0))# c" Z# \% a( E) s& K1 U
- );or1 O9 d2 c( s+ R9 `' c
- (progn
7 q Y1 Q& [. h8 ~ - (setq flag T);, u1 p: K0 t; C
- (if (not (equal (cdr (assoc 0 e1)) "SEQEND"))
7 J* _) m3 w I - (setq width nil) / g2 d$ |; |( ^% Y- n9 t. T: M
- );if
( I) N# q0 r! \ - );progn then jump out of the loop' [; H" i; c8 U7 b" P
- (setq na (entnext na)# Q! j3 W x, X g$ ]& S# e
- e1 (entget na)
& c% G2 k$ s( L X1 l - );setq , [# }0 o" r1 c1 b0 z6 r/ A
- );if % r4 u4 A! Q" K' T3 w# ?+ Z
- );while" H% I: n* I0 V0 \2 Y
- (setq n (+ n 1));setq & j' v+ i! [* M5 y0 d/ w
- );while / D- H. h0 l) |1 E, x& Y& C9 ]
-
0 g3 Z3 `' j0 v/ s8 Y - );progn then it's a legacy 9 \ Q& _3 ~3 b# d) n# D: J
- );if ;legacy polylines that may have varying widths
8 w% t/ B3 c6 G1 |; M& Y2 S' b - 3 n+ N+ T/ N& t. B' E6 J5 r- K
- (if (not width)! l5 w/ B$ N m$ U
- (setq width "");setq, P7 ?& M( C( ^; d+ y
- );if5 ]! V' r0 N0 N% r. y
- (if (not (equal 'STR (type width)))* n M _) ~& \- @3 w) r2 Z
- (setq width (ai_rtos width));setq 3 V7 s, a9 q! T/ z' S" m
- );if
: X7 q: {, N7 G/ O# J -
, b) ^5 b7 K/ p" [! m: d% c - width
: i% F) N; S0 j. L - );defun pl_width_getter' s" C, f7 f& l9 J, Y) B
- * q) Q0 Q, O( y0 _" N6 \
-
2 E' ~- ?6 b9 m' M& b- W( j+ G - (defun match-col (/ ncolor)
) ^( s9 ?0 z b) K - (setq ncolor (cdr (assoc 62 elist)))
# Y5 [5 G$ n6 M$ \" T6 c - (if (not ncolor) (setq ncolor 256))
& U( d' @4 V% T1 G5 v, F! T' { - (if (/= color ncolor)
$ L Q3 M% |* N3 D& I - (progn ~& G( S8 t+ S0 |! S, [
- (setq chk-col nil)! T% V% M% w8 f9 m7 H
- (setq color nil)) x. L, N. W8 f* S g
- )
J' o O2 A% i9 t2 M/ u* P4 l9 H( U$ ] - ), |3 P& Q( O; e
- )
W( K# e: I. n- A# t% u - 4 ]( T( _1 L7 N* J' q. i
- (defun match-lt (/ nltype)% a$ H( @( @4 o o! t. X- s
- (setq nltype (cdr (assoc 6 elist)))
$ U2 I! |* E w" c& W - (if (not nltype) (setq nltype "BYLAYER"))
( |: u9 d4 j; V. {+ \6 E - (if (/= ltype nltype)
, R# Q7 l8 ~3 \$ G - (progn. j, Z% N+ G' y8 {5 ^* l8 ^
- (setq chk-lt nil)" B' R! l/ N; A! c L+ Y
- (setq ltype ;|MSG0|;"Varies"); a3 }( H) ^+ m, ?7 w" e* I, n+ t
- )
& L1 [) u: F6 O0 P" [7 ?& E - )8 Z. G! B3 M: |8 {
- )# f$ M/ `* [- Z0 q6 w
7 Y) b7 T3 e0 C; O" j- (defun match-lay (/ nlayer)' T$ Y2 c% y9 i3 g5 m
- (setq nlayer (cdr (assoc 8 elist)))0 I$ v' l8 q8 F' e/ k0 e
- (if (/= layer nlayer)1 S* j* I5 z8 Q
- (progn
! x" e( `, y0 M( L+ a) ^# z, X - (setq chk-lay nil)
) |8 |" w3 o( _/ X - (setq layer ;|MSG0|;"Varies"). ?+ I7 z/ C' V9 B9 O
- )
0 x# t* G8 M6 j' }2 L - )
' T9 E; Z0 G# b7 g4 v0 s - )
8 S; A* @* l! X* D M% g1 O/ t - ) O9 V* O V" i# w
- (defun match-th (/ nthickness)+ n: j: F4 e/ U2 |
- (setq nthickness (cdr (assoc 39 elist)))( O& l8 ~' l( i5 ^5 W
- (if (not nthickness) (setq nthickness 0))
, }- n6 l1 X* E0 a6 h1 x* E7 M& o* s: G - (if (/= thickness nthickness)" m6 G: U0 i) j( P; ]* l. J3 e
- (progn
k) t5 F3 L! S$ ?2 C - (setq chk-th nil)
5 o8 y6 E2 y- g) D: c - (setq thickness ;|MSG0|;"Varies") y4 n% [1 [/ A- s/ K6 _' V
- )- g% t) a" x3 ^
- )
|9 H; c U) J% ^: G - ); ] E2 q4 A5 L
2 r8 m; W, b4 m* A1 w( c/ O* C/ M- (defun match-lts (/ nltscale)
, o4 [/ B9 B3 B! C - (setq nltscale (cdr (assoc 48 elist)))
+ f/ R( e- _- k3 T2 `. U6 p6 T( n - (if (not nltscale) (setq nltscale 1))
: i9 i, y1 q/ ^& T) s - (if (/= ltscale nltscale)3 _. a+ a* c+ h5 N" o4 w
- (progn
. m( N5 K4 I6 n+ W- z0 D - (setq chk-lts nil)# R* _! |# c' d0 C* h. t* v
- (setq ltscale ;|MSG0|;"Varies")
/ M8 o3 R& p. J- J8 [& Z { - )9 y n* N5 V% G
- )
6 U1 `4 b7 j6 o; M7 w. l - )# [0 {/ I! C; m* J! B
- $ n$ U( ?: t$ V! t% f
- ;;
R( S/ R0 o7 K& j% v* Y' l - ;; If an item is a member of the list, then return its index number, else
/ u1 q( s- T" z! J( h$ ] - ;; return nil.$ y o7 L! Y7 H7 ^8 s
- ;;
% u0 Y5 w5 N% p: P& |9 u% o - (defun getindex (item itemlist / m n)' x; F( t$ X" {8 `2 O# ?
- (setq n (length itemlist))
& M: Z' V) E$ |- z - (if (> (setq m (length (member item itemlist))) 0)1 F |7 m+ V8 R% t2 |- H0 G
- (- n m)8 n1 s+ A4 X: W6 _
- nil; E; U9 n3 F+ c( o q( ^
- )* e( v, g/ D* k& a
- )1 Y& K# p, L5 r) O; r0 ?1 W6 n& |
- ;;
; u5 e+ q* r; E: K, U - ;; This function is called if the linetype is set "BYLAYER". It finds the# t. G9 b+ |+ `: `1 v; K' j
- ;; ltype of the layer so it can be displayed beside the linetype button., r# ?# O1 @/ r. J- C5 M$ E3 N
- ;;
8 S k' u0 x9 W3 E( E. l! \) R - (defun bylayer_lt (/ layname layinfo ltype)
W. n* q, |% c9 l - (if lay-idx
. ?1 E+ H, j- e - (progn4 b# ]9 T; ^1 K1 n
- (setq layname (nth lay-idx laynmlst))
; s) u& Q1 |7 P2 E - (setq layinfo (tblsearch "layer" layname))
# c) |' q9 B& N+ L8 G# o0 Y - (setq ltype (cdr (assoc 6 layinfo)))
0 z6 V& _7 M' T' |9 ] - (strcat "BYLAYER" " (" ltype ")")( c, b6 }* {1 F, z" r+ c% e
- ), Q1 s/ e2 O) a+ Q" F
- "BYLAYER"3 i$ h8 U9 k7 Q a$ Q
- )- s: U& Y% `! }# E; C0 V' g( T
- )
$ A. ]8 N) x' N, l* K7 p1 f - ;;
5 w6 {! G7 {! G4 E% h3 g: e8 R: P - ;; This function is called if the color is set "BYLAYER". It finds the6 Q1 l* T9 N% R- C6 j5 R8 {
- ;; color of the layer so it can be displayed beside the color button.9 w. [" j/ S0 Z4 g0 _9 H
- ;;
6 ~* q) o" U }5 c - (defun bylayer_col (/ layname layinfo color)
8 S9 w% N: B: h% q) n- s; E: X - (if lay-idx$ w( n; C. I6 I) o: V$ M
- (progn
# f9 f+ Q* d1 Q2 f0 ], j - (setq layname (nth lay-idx laynmlst))$ ~! |6 `' u* Z+ d$ F1 l h
- (setq layinfo (tblsearch "layer" layname))& W( c* X/ R0 Y% U0 v7 K3 w
- (setq color (abs (cdr (assoc 62 layinfo))))
: i0 K0 V" [! \5 f& c - (setq cn color)9 T0 z" _9 H( m1 `7 O3 Y/ [
- (strcat "BYLAYER" " (" (colorname color) ")") d. [3 M3 j- U( s: A* i# [
- )
+ |9 j& N9 L( M5 {: _ - (progn
: n c6 L' y. T5 L; k+ y - (setq layname elayer)
) Q) I9 y' _7 n1 M9 A6 h9 m - (if (and (/= elayer "")
0 K9 K* c: o3 {7 y - (/= elayer "Varies")
4 d" p' e# u) }, o7 c0 V! b+ C - );and8 I7 s: B0 `; @) `$ T! H
- (progn+ `% D4 p0 A6 B% l
- (setq layinfo (tblsearch "layer" elayer))
1 x% I, [7 ~0 _1 u5 N5 V3 O8 P - (setq color (abs (cdr (assoc 62 layinfo))))+ c% o1 i5 @9 n# Q, h
- (setq cn color)$ P7 n% g% d( z3 n3 l& i7 Q
- (strcat "BYLAYER" " (" (colorname color) ")")
! Y% y' M& K3 h* D - )
% ^5 q8 \8 {9 M0 L - (progn
' n& U* H( [0 {2 m - (setq cn 0)& u& |1 q: k* T7 i$ k
- "BYLAYER"
`. y5 i5 G- E - )
$ ~ U" l' h! U+ e! n - );if
3 }) G3 R& g' G/ x - );progn Z+ g- G3 z, e" a7 I: P3 i0 [
- );if
- O2 q1 |5 K9 B) D& t - )
% M! l: G0 u9 a1 B% T) [ - ;;0 c' {- ]5 p, |: i) V% P% ^9 H
- ;; If there is no error message, then close the dialogue) R$ g1 h5 o& Z
- ;;
% }2 ]3 O& |7 R - ;; If there is an error message, then set focus to the tile
. `% L) S/ B9 J% T3 s - ;; that's associated with the error message.
$ C) j3 [9 `) {+ o% Y$ G - ;;5 ~! [! i7 S! G
- (defun test-ok ( / errtile)
" J/ t0 e) w( u) a - (setq errtile (get_tile "error"))2 W. ~4 r, A9 C0 Q
- (cond
1 L9 l3 ~% Z, B; _& H - ( (= errtile "")
. y1 B' \$ Q: _) W. C. t2 n( x - (done_dialog 1)). m" s& w7 G7 Q; b0 |' S
- ( (= errtile "Invalid thickness.")
* ^+ G, O" F* p* h5 \4 E6 |! U - (mode_tile "eb_thickness" 2))
; f2 d) ~' M( a. v - )' t/ a2 }- x0 ~ I$ j# }% ~
- )
0 x+ B$ v% B: E - ;;
7 e& V% l' r# F - ;; OK in main dialogue.
7 j B7 m: U! z! J - ;;4 W* ^, G7 q7 k3 R- ]
- (defun test-main-ok ( / flag)+ K1 t$ c* u: s
- (setq flag T)
/ c3 s: e1 j2 o" n4 s - (if (not (or (distof (get_tile "eb_thickness"))1 S% J+ g$ U3 p& F% j1 C- B& ~
- (= "" (get_tile "eb_thickness"))
# o" r0 _- c% P - );or& t4 ]4 w- g! ~
- );not I% V$ ]- C3 |" s" ]8 z1 V7 b( _
- (progn! X; e6 \ A- A$ W8 r
- (set_tile "error" "Invalid thickness.")
w8 x6 K% f4 ] i, b - (mode_tile "eb_thickness" 2)
1 }* f2 S% T, s" @, \0 t) [6 j - (setq flag nil);setq; G- ?1 D. K" N# ]
- );progn" h* ?- \4 A t/ ]* _: }1 Z4 |
- );if
/ y$ @5 }5 \1 f - (if (and flag3 f+ e: d9 p" R! @' Y" h
- (not (or (< 0 (distof (get_tile "eb_ltscale")))1 B% e+ s1 V# p5 B9 B/ ~1 {
- (= "" (get_tile "eb_ltscale"))' W1 T1 e6 `4 g3 \: |
- );or
+ O6 P5 m+ R7 q# P - );not
3 y( M1 B1 ?5 G; G0 @+ B i+ x - );and . v- S) F5 e' R3 \) X/ {8 M
- (progn
- |4 \& z1 i5 n8 r! {7 J+ Y/ c - (set_tile "error" "Invalid ltscale."), K; }" [- c8 t/ v2 t/ T" e6 w
- (mode_tile "eb_ltscale" 2)
/ R3 {3 U1 b3 A, E$ G" V$ { - (setq flag nil);
+ _, r, x! z! U% W+ Y - );progn then' S% L) P) d) I3 A" H3 E% V* s6 ]
- );if3 m* a' v# r( K* b
- (if (and flag
* H9 d( @( {9 ^% H+ ~3 n - ; Don't test the tile's value unless it's enabled.
& G/ O0 {' F& h - ; We're not set up for the display-only value
: E/ ?) r0 v2 `) @$ }4 U$ k/ F! r - ; of "" here in the error handler.
0 r! ^: Z$ L1 }7 t - (= 2 (logand 2 eflag)). Z- [8 @7 x! O7 K
- (not (or (< 0 (distof (get_tile "text_hgt")))
, |# h. c% Z2 @5 m( {. r9 o7 K - (= "" (get_tile "text_hgt"))8 M4 Y% _( ? ~8 G
- );or
5 H" \$ I; K2 I+ k1 o0 ^ - );not* T2 r) X' ~. c7 w8 Y. s: X" j
- );and' `, q1 [% j( R" P3 w V9 |$ h; H2 W
- (progn% I; Q% z1 e3 `) `+ n
- (set_tile "error" "Invalid height.")
, @( A. I4 @( w6 M: F: O - (mode_tile "text_hgt" 2)7 K) l# T1 r% d& f4 K: Q
- (setq flag nil);( ^2 X4 z9 S- A1 q
- );progn then
; W/ P9 c. Z/ b: M" |) `9 K, G - );if B1 P, a$ F( W. f* k
- (if (and flag
8 i6 X3 M; G) v `( i! S - (= 1 (logand 1 eflag))
6 K3 R& x* U \- @ - (not (or (<= 0 (distof (get_tile "poly_wid")))( R- k {+ g c- u" p+ _, X4 G+ J1 l! q
- (= "" (get_tile "poly_wid"))- }1 X% F/ [) g' b6 W
- );or0 H, ?; M( b! N; |* u4 n& V4 v- X7 J5 _
- );not
. T; m: F* N5 `, N( C - );and
8 m7 q& x' k" y! U: B7 A9 @; V - (progn$ q4 h9 Q( h! C/ z. t
- (set_tile "error" "Invalid width.")
- ^ X: C6 {7 G - (mode_tile "poly_wid" 2)
: a' o3 j2 I% V/ G% T7 I - (setq flag nil)
! a' N3 T+ G9 T$ U( X8 d5 P - );progn then
% j" k4 r. }0 @5 f- ?% v R - );if
& t G* W }5 [& C1 P - (if (and flag: j& Z: A' h: I/ X, z! ?
- (= 1 (logand 1 eflag))
6 ^( q: _' z( S" T4 b" ^) D - (not (or (distof (get_tile "poly_elev"))2 v# U9 w" u" U7 q9 c
- (= "" (get_tile "poly_elev"))
0 @6 |- B {* {2 }% r - );or
9 ?( x {5 O4 Y( `+ ~9 j - );not% d- c- l/ O5 q% z( G
- );and
/ I* n; w; X3 Z$ J* Z/ \: v - (progn5 Z' f+ G, O/ Z% L7 i5 ^* j
- (set_tile "error" "Invalid elevation.")& e1 l7 k/ s" |- Y: {; ?5 l. y/ d
- (mode_tile "poly_elev" 2)$ U6 I( z4 H8 r6 j
- (setq flag nil)* Y& _ @# D0 W* ?& \
- );progn then5 U6 ^2 x+ e& y, O% O- d. g
- );if ) v5 ~0 [$ y: a6 l% `
- (if flag ! W) C% U! B9 D0 }
- (done_dialog 1)
, u, i6 X/ ]& G1 h: R% u - );if
8 t% F3 E0 h/ I0 x5 F9 B - );defun test-main-ok5 W$ Q( B# R5 q2 j6 Z! ]3 R2 J
- $ R! L- y% }* V! V% |" m# w3 }
- ;;
' h6 Z6 f; a+ R6 _0 H2 t - ;; A color function used by getlayer.' \7 t. _2 p7 M& E
- ;;3 Q4 I0 r3 r& f: S" d9 e: |+ Y
- (defun colorname (colnum)
8 j$ z9 I8 o9 i1 }. U; T/ ^ - (setq cn (abs colnum))
, y; G* B8 ~3 N& t* G8 e - (cond ((= cn 1) "red")
% E9 C$ f$ ^, m2 t$ g+ e; N4 z - ((= cn 2) "yellow")
5 l- I( D7 z. h. O; U - ((= cn 3) "green")
y9 m) `- n+ A$ _2 S6 J4 s" W! ` - ((= cn 4) "cyan")8 I" U2 y$ C5 s1 v, X7 O
- ((= cn 5) "blue")
7 P0 Q( q m! u6 e0 ^ - ((= cn 6) "magenta")* p/ u$ |8 `* ]+ \2 j2 t1 S
- ((= cn 7) "white")
; o D7 W; D. y6 D1 N - (T (itoa cn))7 O4 F# H n4 G& g- A: K- C
- ) U5 _" P7 O9 D
- );defun
4 S% z0 a+ r2 D; e% t( H# s- Q5 D - ( i; x0 x7 S) U% J. g, e" f6 K
- ;;; Construct layer and ltype lists and initialize all
. @% }# v: Q1 ^# M& n/ T - ;;; program variables:4 G( v2 g! z- O' ?9 [& N# e
- # j6 i- r0 \* G( S. `
- ; (makelaylists) ; layer list - laynmlst
# ~9 ]# U8 r4 P* w. `+ f) N4 x
{6 F7 `! o9 Y3 z7 K4 t- 9 X& I8 h" C5 l# C% d) D; u
- (makeltlists) ; linetype lists - ltnmlst, mdashlist% d! p$ W( ?% Q- E' r1 p7 @
" |: b, U0 @& w: E% e6 j- ;; Find the property values of the selection set." D" U, v# q& I7 V% p3 D
- ;; (getprops ss) returns a list of properties from
! W$ X1 |. C! S% Q7 @, H; q) J - ;; a selection set - (color ltype layer thickness HEGHT STYLE WIDTH).
" q) L, L8 C/ }- ?
$ B$ f$ ^* S; r3 k H) E: s- (setq proplist (getprops ss));@rk interesting things happen here
. y* B8 i0 V3 B- z. l
) G$ g' o% D5 i0 h2 I+ }6 T" ]- (setq
+ g* N4 p n% Q6 Y8 M - ecolor (car proplist)6 _4 _; f% T( m; i3 F) b" U
- eltype (nth 1 proplist)
! o) y3 f# b0 c+ n* D# z% w, n - elayer (nth 2 proplist)
7 `1 U! n# N7 E- V - ethickness (nth 3 proplist)6 |0 n7 s( z6 T9 N4 |6 n' T
- eltscale (nth 4 proplist)' D' v( K8 I9 C* ?
- ewidth (nth 5 proplist)9 U5 F" e9 t; k6 P s: H+ H# B$ h
- eelevation (nth 6 proplist)0 G4 `9 A' f/ B, J& y. B& r
- eheight (nth 7 proplist)
% X- {. `- U% K6 L. a - ;etype (nth 8 proplist);commented out and replaced with the line below. RK.8 t7 Z+ G( _' {3 D" M3 L$ a; `
- eflag (nth 8 proplist)& l ?. J+ u; h
- estyle (nth 9 proplist)4 W: [2 }3 M' c+ d
- poly_ss (nth 10 proplist)3 u% q8 I1 F& s5 v; I' @, k# f. [6 j
- txt_ss (nth 11 proplist) g# r& b R+ z. T: s' F3 G
- );setq
( e4 h2 l) G9 q; b. L# _# Y! p& R* ` - # q$ x2 f& w- k3 u" S Y
- ;; Find index of linetype, and layer lists
1 ^0 e! S4 C A. C7 z C$ ?# z - (cond
* n8 R% B6 D+ p- f - ((= eltype "Varies") (setq lt-idx nil))1 ~6 Z2 G2 R# H9 Q# t! i u' f
- ((= eltype "BYLAYER")
# t, [9 W6 `% { - (setq lt-idx (getindex "BYLAYER" ltnmlst)))
$ \2 r) M$ M; o+ r4 g5 z - ((= eltype "BYBLOCK")3 H" u& s4 |6 z9 S
- (setq lt-idx (getindex "BYBLOCK" ltnmlst)))0 G4 G# W$ z& b8 B+ K6 C0 a
- (T (setq lt-idx (getindex eltype ltnmlst)))* T( ?, @/ w4 X( {( Z7 x
- )# t6 l0 g3 u1 k" h5 K% R" D
- (if (= elayer "Varies")
# A# H. [ f( }$ I! z - (setq lay-idx nil)$ ^& K8 B$ j/ X0 c
- (setq lay-idx (getindex elayer laynmlst))
; g1 R+ e1 h8 Z2 J' ~& j - );if8 x6 y& Y- n- N B9 n
- (if (= ethickness "")
& ~( f* N( F/ x" ~2 ~ - (setq ethickness nil)* k" p' ]* L' e; k
- );if2 [, B) R l- l) G" o
- (if (= eltscale "")
$ N" u4 m% e0 k+ O - (setq eltscale nil)$ p6 x5 S" l9 ^0 P
- );if
' z& W* S, y! s0 S
" H9 p6 |* T+ ]9 e5 f: l- );defun ddchprop2_init ; end (ddchprop2_init)
, O1 E l" J0 S. @8 X - 6 w$ `; v) l! L7 O R$ U
- ;;; (ddchprop2_select)9 p" U3 d9 b- r, e& l* I* N
- ;;; y+ }; v1 u; r1 k/ M; V s
- ;;; Aquires selection set for DDCHPROP2, in one of three ways:3 o1 ]) N t$ R K( b
- ;;;
- o0 M8 r2 _% K' z4 ]4 I - ;;; 1 - Autoselected.
2 Q" y" j8 U% ~- C7 I/ S - ;;; 2 - Prompted for.
( C+ Z, X8 c/ c- Z& b: w - ;;; 3 - Passed as an argument in a call to (ddchprop2 <ss> )3 M) M/ C f5 d" v6 V2 ~
- ;;;% ?. D, ?" w' L% o# x8 S
- ;;; The (ddchprop2_select) function also sets the value of the
# {4 {2 t; L8 `3 }( } - ;;; global symbol AI_SELTYPE to one of the above three values to
! `6 x, H: q4 G - ;;; indicate the method thru which the entity was aquired.
4 j: ^3 N+ f2 v1 R, x' y
7 A3 f) M2 |" o" _) z- 0 e9 x+ i1 V D) {( y
- (defun ddchprop2_select ( / )
4 h, m- x" }5 L& o' I8 ?
4 g! e$ `) s4 w* B; p' b; ~; w5 t4 ~# D- # I: ]- B& e3 o8 S" N) t% N; W+ Q
- ;returns only entities in ss that are in the current space.
9 t: f" D. Z+ g8 p" Y* c1 t - (defun ss_in_current_space ( ss / a cur_space ss2)
) h* L n( Y. m
2 _ y- t7 y3 @9 I- (if ss- M) p) e, {7 {' n. Q
- (progn3 @7 z! b& i8 W' O2 Q7 l: X
- (if (and (equal (getvar "tilemode") 0)
2 a( s+ m) V8 {& X - (equal (getvar "cvport") 1)
9 x7 t9 K6 y: m4 B- G7 y8 K - );and
( F& Y0 k o( M+ T& G1 S0 { - (setq cur_space 1);then paper space is where we are.
# \3 {& j* _: C7 y1 F& G$ q' t - (setq cur_space 0);else model space.3 D2 d) D& G8 w9 F, g
- );if$ c# f# A3 i! k+ k
- (command "_.select" ss "")
2 U% m& Y N3 D) z - (setq ss2 (ssget "p" (list (cons 67 cur_space))));setq
% N8 @% T3 m% z* G - (cond ;;;;;tell the user what's going on.
- L# e* D; N: _3 M0 T0 i3 m/ S4 G5 h - ((not ss2) (princ "\nNo objects found in current space."))
8 s( p5 B" c! q, p0 t% f v - ((not (equal (sslength ss) (sslength ss2)))
1 f6 H. D9 k3 Z/ }! x - (princ (strcat "\n" (itoa (- (sslength ss) (sslength ss2)))% @: @5 S' ?& o
- " object(s) were not in current space."6 [3 c7 O' ]% N: p J0 H
- )
- K2 g& y" f! W - )" Q- b% _/ }' }& ~6 {/ l
- )
* @ `; j$ Z( v6 p& |" {8 t% }/ a - );cond * o! M+ e0 O0 s+ L! r* Q7 ?% M
- );progn then- e# c9 [( h/ k( |9 I/ j
- );if / x8 K3 J4 n4 l
- ss2, _) }. W, y0 ^; D9 J
- );defun ss_in_current_space8 K h% o9 O) r
) u+ ] h1 p# b( S! s
% r3 Y6 k# V" V- ;;;begin the work of ddchprop2_select
3 h' \$ }# q: G6 W/ y c -
6 y0 R7 m9 F3 l* L( G - ;; temporarily restore original highlight setting.# f, O& d l6 ~: v6 b
- (b_set_sysvars (assoc "HIGHLIGHT" (car bonus_varlist)))
# F& o: b2 f! B( w$ ^7 c$ P8 | - (cond
. [9 o( A/ h) C* c) g7 v6 x' ~ E - ((and ss
" ^* [0 | G! \) S* R* ] - (eq (type ss) 'pickset)
. b! \( s1 p5 I - ) ; selection set passed to
9 \# m) z% Y$ ^0 Z( t - (cond ; (ddchprop2) as argument+ A0 H1 r- X3 S+ Y/ X
- ((not (zerop (sslength ss))) ; If not empty, then3 g1 \: [9 b* |5 y! v5 n
- (setq ai_seltype 3) ; then return pickset.
" ~$ ^5 S* C l! k$ b9 c7 d2 {1 l2 _ - (ai_return ss)
0 j! p! e& s& Z0 p& ~+ Z& { - )! z' F' E4 A& A! {3 }2 g5 s
- );cond close+ d0 K/ z" S" W
- );cond #1
+ I+ I) w4 c& H+ C. E - ((setq ss (ai_aselect))) ; Use current selection
8 x, z. n1 a/ g# M& ~ - ; set or prompt for objects t P, C4 E( `; e* h
- (T (princ "\nNothing selected."). _0 O* F3 L1 {* h9 i# {
- (ai_return nil)
. c4 M, ? W- b5 {4 L# p+ a; | - )
" L5 z) T. _: `1 v6 \ - );cond close! O" w3 q$ }1 ~
- (b_restore_sysvars)
- E; @, d3 u) U7 W - $ m- Z) B' e! d9 V z
- ;(if ss
: F5 }- r/ ]" C9 o! A - ; (setq ss (ss_remove_locked ss))
& [1 R& K9 {1 I; W9 W - ;);if
2 r) O8 ]2 c* ]2 M' T - (if ss
1 n9 \% m1 |7 K2 j! m8 M$ p3 s - (setq ss (ss_in_current_space ss))
3 y+ K; b! |. [. d$ R2 \; M - );if
( W- U/ v* W, W$ ^: T1 H7 Z
( Q+ O, c+ \5 A7 [- ss
: U4 ~1 Q3 N: A" ?, t, O) V! A; q - );defun ddchprop2_select# D; H6 B) n, A) h
% A3 s1 ^$ ?) H- 4 c9 R7 e( g5 P# _
- ;;; Define command function.9 g) Q4 c* W w, N( k G
- (defun C:CCH ()
9 L0 k+ Q5 O* A9 u6 A6 e - (ddchprop2 nil)1 a0 A' v$ Q5 p
- (princ)" f* Y& S6 h% P( c7 l
- );defun
) s; ]# ^8 r6 u+ v$ J2 U. Y9 w5 ]
3 e7 M# e' d9 [. L/ X+ _
e4 s W) `* A- O, c4 F+ }1 T! j- ;;; Main program function - callable as a subroutine.- R* W: L9 V( y
- ;;;7 X% R& V4 ^; B8 v1 t
- ;;; (ddchprop2 <pickset> )9 ^! x" O3 f' Y" `; k
- ;;;
N A g: D+ A( `: F0 Q) q" ^5 m - ;;; <pickset> is the selection set of objects to be changed.6 h9 w3 _. n! y
- ;;;
+ H4 K0 l1 ^3 `) v% U8 H; P1 k0 W - ;;; If <pickset> is nil, then the current selection set is
& J( P$ u, H+ w4 @ - ;;; aquired, if one exists. Otherwise, the user is prompted5 z( Q) G1 s. I2 t- k+ |7 R
- ;;; to select the objects to be changed.4 ^& J' `0 S. f. e) o
- ;;;
* v( ?1 U" g; u1 \ - ;;; Before (ddchprop2) can be called as a subroutine, it must- s0 m0 t8 g9 c# k% v. B
- ;;; be loaded first. It is up to the calling application to4 ?2 `; X; M/ Z5 L8 O
- ;;; first determine this, and load it if necessary.
& S' q3 j. z! q- \$ L" I9 l, k: T
/ L: X! h) A# l- (defun ddchprop2 (ss /9 Q# A) G" U+ @
( B) y6 T& \# y) Z* s5 S5 U- W- a
. C, w* N. m# i - add-mdash
0 p0 D( N) R4 l+ d* A" V% z+ ^ - assoclist
& z- d) X7 b& e( n) i4 N+ d) f4 A - bit-70
$ n$ u% q/ w4 H: Y- ` k2 |2 E - boxlength
% T/ p6 Q3 J9 O/ x0 j3 n3 W - bylayer-lt$ V1 c, {$ u. I" k
- bylayer_col
7 n7 t3 Q: b3 i3 m: C$ U - bylayer_lt
; k) b3 K0 |# p9 m/ u' f - call_chp25 f, g& \4 V' L4 d2 S& k
- chk-col
4 y. K/ O3 B& n: g - ;chk-etype ;var removed by rk
6 m# t0 V7 r0 d5 M/ n - chk-lay 6 d- a( }. b% h4 N
- chk-lt
$ R: U# Y$ I5 ]" n" f - chk-lts ;var added by rk 1 K" j1 C% r* \
- chk-th6 k; h# o: S- T) q- }
- cmd0 O! U r: U) k0 J) v0 k+ `
- cmdecho
/ d$ n0 x+ ~% N1 Q8 H' S - cn# y$ [' n6 X6 k9 R) Y
- cnum/ f* \3 P1 U9 H9 L1 q. @
- col-idx
; E" G" u. R# V; b3 `- r6 G, V! V - col_def
! b+ y+ G+ v I3 p5 } - col_tile
5 L8 P/ q$ i0 A( X8 D* @ - colname
; J A7 z6 `% w b- c - colnum b% Z( W [# g4 T3 l u
- color
) q3 @6 R/ F, d3 m1 d Z - colorname
* m! H5 M. z" m! u, l' G - cvpname. d+ @" e& `7 b' h4 V( r. a
- dash
; c2 a6 b7 F+ Q' u/ f: w - dashdata. G3 @3 m& T4 l3 i& \* F! t
- dashlist+ x0 L$ s0 R! y4 W2 w
- dashsize
) q0 I8 P! `7 q% N3 T - dcl_id
- k7 j& s4 u/ C: U - ddchprop-err9 P8 s; t7 J) A
- drawpattern; E$ c3 ]/ ]0 V \* ~5 o
- ecolor* N- {4 k S, Z* @+ f0 O
- eelevation
4 n5 `$ R; D6 k, N$ N - eflag
: O- y! m, B+ q) [4 ? - eheight
: I7 S- [, z7 }+ _ - elayer' j7 a7 O5 ~8 R+ i; V
- elevation
, f$ D( S8 U1 O r1 @. p( o! M* d - elist2 I9 k; Y; |, P6 s. x& i$ P L
- eltscale6 z5 W) V( j) {% V6 B
- eltype
8 D0 c9 x, S& f, ^# m - en. m$ w: a9 s0 D8 Q: N' p* n
- ename
9 l4 c% ^6 x6 \' R - ESTYLE ;var added by rk
! ]- {8 d' ]9 [4 w) r - ethickness
1 F5 X* `1 K( z0 R# u, l8 Z) q. n - ;etype ;var removed by rk/ \/ B( p+ v2 ^3 C. w6 y
- ewidth/ E. k% M7 R& b: @
- fchk
; @+ `) n- _5 P7 S8 t% y5 N2 j3 y - frozth
( N! L' F) u$ [7 L4 Z - fx4 S3 @+ o1 T; e7 K& ~! i
- getcolor
% }% L$ w7 }0 x) ~ - GETELEVATION ;function added by rk
1 R7 d0 o' T- a |+ l3 P' H" h - GETHEIGHT ;function added by rk
% v9 X3 |& H9 y9 g) G - getindex
0 o8 k9 d% m& [8 L7 @/ Y - getlayer
% G5 e* }9 Y, k* u - ;get_locked_layers ;function added and then removed by rk $ C2 q! n1 b3 G; Y v4 j( c8 D- d
- getltype
; f9 l) l* k4 \! ^5 w0 p - getprops
! r+ ?: c# h7 c' J - getscale ;function added by rk5 j2 v% [1 r$ ^2 L' o1 M
- GETSTYLE ;function added by rk
" T( F7 u4 w/ q1 k& Y - getthickness5 e" L+ \4 k; H8 N1 D/ m( W
- GETWIDTH ;function added by rk
: y3 K. F0 b/ W+ t* D/ G* p - globals
9 Z: V1 Z; Y8 N - HAIR_STYLE_LIST ;var added by rk- N5 G% v/ p9 t9 R" @
- height
' Z" l" l+ `# D- [ - index0 M- ~8 S( g# z: e
- item0 L0 q8 i% W9 W$ Q! g# O* |% ~
- item15 E3 B7 @9 N% o" [8 q& {$ U
- item2
9 T9 r3 Z4 h9 J Q* {& f2 q% U3 j r - itemlist
) Y5 @' V( d% N( J( G+ g$ T' t - lay-idx
3 l! x2 Q# @# ]# V' f4 M" c - layedit_act
( }1 c6 p8 A1 X4 g - layer; A' E, f% \* }, j; b2 Q
- layinfo
7 {$ F- [" ^. D. _6 K" s; m' _ - laylist. H: H+ _" x- J& E, s
- laylist_act0 `4 d) I+ J0 _- T! b U6 @0 G: F
- layname! D- a3 D ~$ E- O c& O W/ x; h4 K5 g8 P
- laynmlst
' Q" P( g& E% r3 \2 C - layvalue
, f. ]7 m+ w1 ]. o* T - linetype3 V/ C4 E$ k4 ?: J$ ~" [
- list11 g4 T9 C* s# N& S G3 @+ }
- longlist
& a2 [/ t* G. T0 u+ y- G - lt-idx
1 H* M( Y2 u# G9 {( F - ltabstr& O* x+ B& c; D9 J4 I4 F
- ltedit_act3 H( y' M- i/ D' S" o/ i0 `
- ltidx
( {5 y5 c P# j0 o( e: S0 Q - ltlist- \; u6 ]% N0 ?
- ltlist12 k2 z2 _9 `5 L! x6 C! q; t
- ltlist_act
! D/ S! M9 e2 V+ F/ t - ltname- k5 r4 A( ?' p% F; x
- ltnmlst
& j7 R2 `) c7 U+ ` - ltvalue
5 ^* J7 i% }5 C8 s1 D - ltype
, ]. V$ n" X$ Y% t4 z' |$ K% C# n - m
$ d. x! }: X' K6 `6 j0 B& u - makelaylists+ @( }1 ~5 W" V0 w% p: n, a
- makeltlists
* s, W% ]4 }5 ~" E! n - match-col
' m# I1 `0 l2 X - ;match-etype ;function removed by rk$ x$ h2 C* E: p- z
- match-in+ [, O, }" m* D9 K" M0 b
- match-lay4 @4 E9 l0 a: s0 |8 W
- match-lt
& V% T" e; P. | - match-lts7 }- B q" H+ L9 J1 |$ m
- match-th
8 i! B- n* n0 l/ l0 E$ d - match_col
+ \# e# u( a: O4 v! F; Z) |1 H - mdashlist$ n+ E4 v: V8 k0 Z& l
- ;MPOPLST ;function added and then move to ac_bonus.lsp by rk
1 |6 N' D2 C; b- Z/ ~) P: t - n
+ m: }: `% n6 \ - name
5 i8 X' s% B) _, s - ncolor- \ o* D# v6 G6 i- o
- nlayer% d0 W+ V' @. l- G. B! s# L* h- T
- nltype
* B" V$ U* Q. n) K - nthickness1 D6 [: A, P7 o" ~) B
- off
7 N; g% n m0 ]. l. O+ q3 i0 S9 B - old-idx9 n s7 T) B5 Z- J6 M9 Q9 i
- olderr. W: X/ P- } [8 e
- on
q+ q+ |# n6 p2 @ - onoff
1 Z( ?8 M# I' t$ Y5 o - patlist
# f; R* V0 X# a* V4 P - pattern
+ |6 F7 o" Y+ H0 E5 p3 c - PL_WIDTH_GETTER ;function added by rk
- b% H" { F3 t1 l4 Z3 j - POLY_SS ;var added by rk) p. N6 ?. a; J" y, w
- ;POSITION ;function added by rk and then moved to ac_bonus.lsp0 Y( {' p" i8 u& K' b
- proplist
, B9 M5 W D) i9 a5 L' {2 d - reset-lay
/ L ]2 ]9 A/ x5 t/ u - reset-lt- c9 }! ~. F, J4 w/ K
- s+ B# R4 S- Y3 h1 Q; q! I5 H6 v/ ]* \
- selset
. Y) Q7 r9 B. }: Y/ t W; Y0 R3 } - set_col_tile
$ I( d1 Q: M% \1 `( Z - sortlist
. o' M/ z. x3 c, u+ m - ss
. d) c C3 |" A7 o$ g - ss_in_current_space ;function add by rk.) Z* L5 G6 v/ S7 r
- ss-index" u6 c; _% y7 _
- ss-length
( p; I7 X5 ?4 s; {) \ - ;ss_remove_locked ;function added and then removed by rk./ N" \6 ~+ D6 h* E" W7 s2 i
- sslen) n7 z% W6 {# A9 n. i0 E
- temp_color- H& {7 _8 v# v1 W6 x
- templist! N0 ] m8 j: `- { B" V' e
- test-main-ok% Y: g h$ s* y+ C \& _8 T8 r3 U
- test-ok: w- k3 y7 V( R! g6 m( t( |
- testidx: K( i; ^1 p. _
- testlay) n; @( b( a; z
- th-value) q F* g2 E! j+ L) \& e
- thickness+ @9 e& Z9 a; f* x
- tile- H2 ?. g$ {: e" L$ ]
- tile_rect
* C% f* p* `0 J+ ] - tilemode$ G' X+ s) b0 _
- ;TNLIST ;function removed and moved to ac_bonus.lsp by rk% J D* g) m' B l
- TXT_SS ;var added by rk
$ p* p7 j* @. S! z7 U. U% e g$ u - ;undo_init ;removed by rk.* ~8 r9 C( V+ P& P& L# `
- vi
+ g2 \! a( ` k2 o+ S V1 K - vpf7 Q1 E% E6 C& V( J
- vpldata7 y/ G! L* W/ {6 `3 b
- vpn
) \; Q% ?3 D3 f" O9 s) i - which_tiles H6 l& E7 H& U+ P2 @
- width
( G# M) j8 i2 Q5 x5 @0 d; q3 u" S: o - x H! F, b9 \0 Y( i' k# a# F
- x12 w6 f+ q1 m0 i5 e- l
- x2
6 Q% A; w$ h- [ - xdlist1 ]5 {& \7 W# o7 u( C/ I/ F5 n' F" I
- y8 w& R. u8 b, m y
- y1
7 t: K1 s" M# R: Z; h. Y - y2& Y( C6 E( ~8 [) n$ \ W8 i
- )! }. g; U7 ?; \* ~$ i8 ^
! N3 ]- C _; M! I D7 t- (if (and (not init_bonus_error)
) j. ^5 P9 _, d$ p, d& E3 D - (equal -1 (load "ac_bonus.lsp" -1)) 8 u0 J8 {% d9 F5 S3 [
- );and1 _; _$ s8 ~3 H, T( E7 x$ T3 P
- (progn (alert "Error:\n Cannot find AC_BONUS.LSP.")(exit))
n1 c: e9 f2 I) k7 ?* |" t - );if# }5 M) s( A4 h
- (init_bonus_error (list+ P) a5 `" b/ G6 E P3 h# n7 O
- (list "cmdecho" 0
5 u: f/ j& A9 f# t6 R - "highlight" 02 F7 o2 c% a4 o
- "regenmode" 1) u: f. x, B u+ k5 Z8 g O
- "ucsicon" 0
* y' [' n8 I/ o8 Y r) E! ~' X - )
6 x( R: w+ N- \8 W - T ;flag. True means use undo for error clean up. 3 G2 u0 M. Y1 l3 d4 L6 }
- );list
% Q3 e; w) m! G" ` |. ] - );init_bonus_error0 P1 U; D. K8 P* _4 @0 M
- 3 d* @# A Q4 h7 V8 U
- (cond
% v6 w1 ]8 a* h. u9 O - ( (not (ai_notrans))) ; Not transparent?! u! i! P: T) \! u6 y( N
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?3 D+ w2 Q5 w. X8 m+ F R
- ( (not (setq dcl_id (ai_dcl "exchprop")))) ; is .DCL file loaded?9 {/ l9 u9 X5 {* c v; f! A
- ( (not (setq ss (ddchprop2_select)))) ; objects to modify?% L: b Z# F* h* U, F" r% ]
- (t
1 @9 V7 F/ V0 j- A) ~, S" s/ G* W - ;(ai_undo_push)
( J. H; `. L" W' H; @2 E - (ddchprop2_init) ; Everything's cool,* f/ {/ r( u$ O% e7 Q1 [' T
- (call_chp2) ; so proceed!4 [& k* u7 E5 D. {; _' P$ D
- ;(ai_undo_pop)7 |9 r4 |4 ]6 m0 q7 u+ M3 N
- )
@( W0 f3 p. E - );cond close! D G0 f# T# ]6 ^/ ~
* F6 K; z7 ^2 I# i- (restore_old_error)+ X v0 m8 |# i+ Q8 t3 q
- - O- |0 B5 N! ^7 w" U' T, W$ P( M3 q
- (princ)
2 u0 Y" F) w' c) q - );defun ddchprop2! { S& t, K! \& Y$ t1 J( _5 C
- / p1 D- U# D5 h6 f
- ;;;----------------------------------------------------------------------------* u; o2 u, _, T0 H3 N, p/ u2 M# k
- " c s& |$ O% E* G: m0 B
- (princ " EXCHPROP loaded.")% F( H) `6 g8 d) C! ]" {
- (princ)7 }( x! g8 o [' Q, X+ O4 k' s
9 y: p2 Q9 Q' d6 M8 z# G' z' Z- ;;;----------------------------------------------------------------------------8 d( W6 o. m5 _, V/ O$ p3 c) v: M
- ;;;---------------------------------DDCOLOR_LSP-------------------------------- `* M' C$ S2 U" C! A/ ]1 c4 ?
- ;;;----------------------------------------------------------------------------! p) g2 a8 O7 |# ~# Q; P
- " c K2 n. G$ ~$ y/ I( E/ a
- ; Next available MSG number is 24 ! M: X3 {3 A) O+ ?0 e; H
- ; MODULE_ID DDCOLOR_LSP_
! O. Y5 P E! a5 `" T& z+ U* x - ;;;" X6 T# L b* s
- ;;; ddcolor.lsp
8 y6 G4 p( B! F - ;;; % _" z6 S/ z% i! J2 U5 V% F) u
- ;;; Copyright 1990, 1992, 1994, 1996 by Autodesk, Inc.0 Y, Z* q8 I1 q+ J
- ;;;$ \: W& o, S3 b) Z4 I+ E3 \
- ;;; Permission to use, copy, modify, and distribute this software
1 v& A8 X. {/ M! V. t - ;;; for any purpose and without fee is hereby granted, provided
2 T& R1 k, X$ l# Y! r3 J - ;;; that the above copyright notice appears in all copies and- h" e* b( s- u( r
- ;;; that both that copyright notice and the limited warranty and
& @, V" ^9 E$ G. ]- m" x: }% `& i - ;;; restricted rights notice below appear in all supporting
% {$ T: R. X: Z4 M/ v" e - ;;; documentation., a, m; O8 P: \3 o- X) w
- ;;;
' q# L) L& |6 M% e5 b - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS., ^3 J' J7 `: Q6 ?' \5 m1 K
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF( T, f- w& G9 _1 O
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.3 Q) ^) L. G, [
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE$ f7 M+ }. s* t [
- ;;; UNINTERRUPTED OR ERROR FREE.
3 R2 f2 ^( c$ y/ P. l - ;;;2 l% ]9 o3 b2 i0 T) i/ }
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to9 a0 Y0 s3 K$ @6 M4 J+ ^* i3 V
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
8 N! ]0 `5 @8 E$ v. w6 z6 r - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) ! F) [- X/ z6 b! Q/ M5 r
- ;;; (Rights in Technical Data and Computer Software), as applicable.5 p: O1 c5 a# _6 e' l! J
- ;;;
( K4 n; N1 n. z, ^5 H5 } - ;;;.% \# j% u: m, o9 o/ \, R
- ;;;, _' x! I7 w! b5 B+ r- ^& v. c, X
- ;;;----------------------------------------------------------------------------
$ D4 U9 t' V _. \; }# ~ - ;;; DESCRIPTION8 {: q: I" O' Q
- ;;; + M8 e8 {9 P/ `9 y1 l
- ;;; Chromatic Pallete style color selection dialog.* A: _& Y; e6 T: q/ }; M( M
- ;;; # m: G7 \7 D- K* P3 L: G n$ Y
- ;;; Globals:' V7 o/ _6 E% A9 a9 a/ f% v0 x' s1 E
- ;;;
+ R0 Z' x8 n2 \3 u% \! H2 `! A - ;;; chroma_color - Integer color index. The last value selected/ s' w/ j F6 Y' ?# h
- ;;; by the user in chroma dialog. It is not cleared or reset
( ]" S- S# }) e; D6 U6 g/ y8 o7 c& d+ m - ;;; by a cancel. Only used for communication between callback' v# l0 e% s' e) Q6 j7 @1 X( Q+ z
- ;;; functions and the (chroma) funciton.8 k( C% F3 O2 k% G# Z( E
- ;;; - ]( b6 g- }$ E4 o" u4 s
- ;;; Depends on the definitions for the dialog provided in chroma.dcl.
* u, B' L$ R" i7 _0 P$ z( O* ~+ W - ;;;
% v4 W+ ?7 P/ y, Z4 t+ j. B - ;;;: d. {" v6 K6 k
- ;;; C:DDCOLOR -- Dialogue front end to the CECOLOR sysvar. Uses the chroma
/ x2 |' S5 ? c) A3 Q# w @4 B - ;;; pallete style color selector.
( a! i" `! V$ p% u9 l- d - ;;;
0 }# {# b8 z! u* k - ;;; ===========================================================================5 F! t# H4 N9 s, U. Z b
- ;;; ===================== load-time error checking ============================2 x. T8 X" P" g! F" B
- ;;;6 w9 F+ t f+ q# ~. X& H
- $ W. Q% P& E+ {) N8 u! h
- (defun ai_abort (app msg)
7 h: t4 n" H1 \% G' S5 M - (defun *error* (s)
" Q. U- h1 n& u2 _+ s - (if old_error (setq *error* old_error))9 Y# V# j- L3 ~
- (princ)- ~8 G' D) P: O' ^9 X
- )
+ K# f# j! {' V: M - (if msg7 w9 l3 C; i, A6 N9 l
- (alert (strcat " Application error: "; E" o3 M+ L! l7 u0 V: B5 Y
- app
% M3 O' H7 b# m1 |! Z* e8 r - " \n\n "* I+ @5 r- f; S7 U
- msg
9 Y4 }9 i9 J0 {. p - " \n"
3 c! c# V6 J( f9 q {( m# F9 G: [ - )
2 U/ G* G5 M Y: r n - )
. R, S: M' o4 {4 O. z: M) F3 U5 l1 X - )
7 c" A( Z' w; s K E- K' ] - (exit)7 V2 z0 O# e/ ~+ m
- )4 d# g B% H( l+ Q% }8 E8 p
- ) q E' i$ j' w0 U! C' _
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,$ ?1 C# L5 W r: N7 h8 C
- ;;; and then try to load it.6 f+ u: s2 g0 D0 a8 J& P. _
- ;;;
9 Z7 F+ C1 @* d" U9 T: K, c - ;;; If it can't be found or it can't be loaded, then abort the( I& b3 e" a) W0 o: y w) z3 H1 q
- ;;; loading of this file immediately, preserving the (autoload)
) B% e8 V; W* p, Z4 v1 g0 t5 w" W - ;;; stub function.
1 H6 e7 ]2 K2 ?' A# m( k" ^0 U M) W
7 U" D; [3 k* Z* u; {- (cond
& X. {: o+ i: d- w - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.( p: G% k2 _7 @& |: s
- 0 K. u& A9 {2 V
- ( (not (findfile "ai_utils.lsp")) ; find it
- } }. s6 m* ~# @5 @7 b3 c0 } - (ai_abort "DDCOLOR"
/ y5 B8 Z3 r/ C6 n. f - (strcat "Can't locate file AI_UTILS.LSP."
1 \5 w: C0 @6 u; Q$ F# B - "\n Check support directory.")))0 n, t" X T, I" ~
* {9 m* _4 I3 ^6 B- ( (eq "failed" (load "ai_utils" "failed")) ; load it
8 i4 R' z7 n E' S0 A4 A - (ai_abort "DDCOLOR" "Can't load file AI_UTILS.LSP"))
. K# K; M2 y* m - )
* b: B( u7 [5 M - 6 ?6 U* y8 V. L$ P& J0 d1 @
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
3 D% _( A+ y4 Y2 ^- Y- t g - (ai_abort "DDCOLOR" nil) ; a Nil <msg> supresses# z! Q" x" {2 b' s0 o
- ) ; ai_abort's alert box dialog.9 z- F' C; C) E) V
- 5 g; d% |: t. h1 P
- ;;; ==================== end load-time operations ===========================
4 k, r+ {; {! }: h' i, \- }' p - 3 I% E3 D* b# T) k, F
- (defun c:ccc (/ co_oce clrx co_err co_oer lay_clr)
+ l3 |/ C7 Z9 k, \& [$ V2 n -
o9 N. C# r: R- t" P8 _ J7 r - ;; Main Color function, called by setup code./ }3 U, k' _9 ]- R a/ X
- (defun ddcolor_main()3 g& ]$ s: U" g# A+ q! S$ ]
- ! r: P7 G' E$ H- v! ~+ U9 y
- (graphscr)1 b" u* D! ?2 Y0 Q; k- s
-
, Z. C. r% H" t! \6 ?6 @5 }: u - ;; Get the color of the current layer, for possible BYLAYER color swatch.
& S" B4 J, Z( _% [- Z' P0 t z - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" (getvar "clayer")))))/ ]' D/ Q5 ^( A9 i7 v6 K: Z
- / @. a" ^5 e& C7 b
- ;; Call the dialog here...7 k% n4 G5 L$ o, v
- (setq clr (acad_colordlg (cstoci (getvar "cecolor")) T lay_clr))
7 V2 @" l7 X6 C5 b# L1 | - , |3 M/ R) T `. G4 Q+ T
- (if clr1 [6 k( K0 \7 ~2 D) v
- (setvar "CECOLOR" (citocs clr)))
4 s8 R/ F; y( w1 O2 E - )
* Q% S+ y/ S0 P8 P) w' [ - ) m% h% B7 l6 G- Y
- ;;;
5 }/ t3 k+ L/ h" I$ Y7 V4 E, { - ;;; CSTOCI -- Color string to color index
2 }( u* U+ r/ l& X- Y5 t! G* ~ - ;;; Convert an arbitrary case string into a color index.) V+ \ u( M5 W6 R2 A- a0 L
- ;;; Returns nil if string is not a valid color.
4 q t. G) u8 l - ;;;) V/ M5 E: n5 o
- (defun cstoci (str)
3 ^( a. G4 p9 P; |6 L - (setq str (strcase str))- H3 [* }, H: H( X/ z2 R
- (cond
/ P A) m( E$ o- c, H - ((= str "RED") 1)
6 E) E/ M1 K! `: Q- r8 y - ((= str "YELLOW") 2)) n3 X" p" h7 f0 x8 n2 Q- q
- ((= str "GREEN") 3)' n( W+ W' p" L4 J6 ]7 N6 I/ t
- ((= str "CYAN") 4)
' \7 c0 k3 S) `! x: q. ^ - ((= str "BLUE") 5)1 u" b& ]& a7 [* j! X) i
- ((= str "MAGENTA") 6)0 [ w5 B6 R( {0 [
- ((= str "WHITE") 7) L+ I p$ D9 |0 z4 j* N7 n
- ((= str "BYLAYER") 256)
4 q+ E7 K; H5 d+ O/ j: c3 b5 Q9 U - ((= str "BYBLOCK") 0)" j7 b, r1 J. Z5 m2 d3 c" t
- ((= str "BY LAYER") 256)
5 a3 o, u- Q2 N' X/ h; N - ((= str "BY BLOCK") 0)
7 e4 v, m/ k5 f - ((and (< 0 (atoi str)) (> 256 (atoi str))) (atoi str)). _0 v9 X. k& B, B) `- x9 N
- (nil))& w, {/ M1 y# I6 G% [
- )
: s% X; S# b/ o9 d- v( p- X
% V7 u, b, D6 _3 F9 m- 4 q* b) n: v3 C# ~
- ;;;% P0 ?% j# f, i k1 V. \3 W. R
- ;;; CITOCS -- Convert color index into standard color name.. l# y# f8 p: _
- ;;; Will return the standard and logical color names as text2 ~4 \0 k9 w w# E
- ;;; strings. Returns nil for out-of-range color indicies.
2 Q' ?- d( J! q: I' p3 T - ;;;
3 s7 Q+ j; S/ e; w1 K: B - (defun citocs(i)+ X9 n+ S3 K. O& P, j& q! T$ a: J
- (cond) u) D0 F5 U7 _
- ((= i 0) "BYBLOCK"): c& e3 {9 b' O
- ((= i 1) "red")
2 P' T8 A" \+ {1 [: c0 V# ] - ((= i 2) "yellow")
7 r$ n9 y+ b$ u/ @7 f+ ]2 v+ U" p - ((= i 3) "green")+ K0 ? ~. e9 ]6 S$ w/ q
- ((= i 4) "cyan")+ }% [+ c" E4 u! Z( F, {
- ((= i 5) "blue")
8 n2 ^9 Y" N5 G - ((= i 6) "magenta")
& e- e5 g+ K) {+ j - ((= i 7) "white")
6 P. D) b1 Y9 O( a" A- ` - ((= i 256) "BYLAYER")
* R: L- H1 h) p2 C$ w - ((and (< 0 i) (> 256 i)) (itoa i))
' z5 }% l' o. B% n" s" l2 t% C7 b - (nil)) E1 R' A+ l! ?( t+ ^" h( o: O
- )
* s& L+ }/ i, R; {
- J# X. a. ~. f0 S6 Q& ~- ;; Start of ddcolor
( S/ u' R- \/ n: b) E R - (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
: E! k6 b* L. g. y - old_error *error* ; save current error function
( u4 I$ G* A4 @. w& a2 l9 y - *error* ai_error ; new error function, s7 i% x1 t! u( d: S
- )
4 b" D6 F+ h: m9 S' F
6 I/ V! Y6 v. ?8 C' ^- (setvar "cmdecho" 0)% C+ I. }% b Q4 L
" k# `" m# P/ E" N L- (cond
$ V1 L& O1 K. { - ( (not (ai_trans))) ; transparent OK9 q+ Q( {3 ~% v% u! v9 l% {$ ?
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?( N- Z' d4 ~0 R1 W, K7 ]! h& S
% o8 c5 D6 H* ]8 x$ ?+ i8 E- (t (if (and (/= 1 (logand 1 (getvar "cmdactive")))6 _! B7 ~8 P- f$ M* ~8 b. @
- (/= 8 (logand 8 (getvar "cmdactive")))
$ X- i' L5 {/ t, _- j - )
3 O8 P; r3 D t" _, t5 d# k - (ai_undo_push)
! v$ ]+ I( i! m5 c/ j4 s - )) u8 L, O4 H d9 I
- & M9 ] r/ ~1 R# G/ k0 J( i( Q; c
- (ddcolor_main) ; proceed!
( m: R5 \2 l+ t - ( G4 D d; N5 N
- (if (and (/= 1 (logand 1 (getvar "cmdactive")))
: [, e) \2 d' m6 h, A, F. g$ W$ [ - (/= 8 (logand 8 (getvar "cmdactive")))
) ~- P9 F( O# }: [. d; k" y - )3 j+ p& ^; S" d5 b
- (ai_undo_pop), s0 R* X9 b' S |! q$ ?( \
- )
9 R+ Q, d5 y) l- ~ - )
8 I: E9 n% | O - )
/ h; R5 I ~8 o% h& Y: w4 U5 i
1 @, C# m! F9 E5 a- (setq *error* old_error)
9 x6 S& x/ W! c& y! T2 d; z E/ C3 k7 ? - (setvar "cmdecho" old_cmd)
; |! D; l6 T- G4 ~+ F& D8 Z - (princ)9 ^# D; T0 R! z/ r* `2 H' U' Q, k
- 1 o5 s6 v, ~7 K! o4 E# H7 [; Z
- )
" u8 a3 `. m6 T# b" o) d - 9 `' s, ?, `6 z, X
- ;;;----------------------------------------------------------------------------
b8 K0 r# M& ~+ u! R; p5 z; ~
8 b4 n6 u, C" o4 A/ m3 o- (princ " DDCOLOR loaded. ")& Y/ D* [5 [9 y8 B8 Y
- (princ)6 ~4 i) S1 ^# I H. s- M
- " a7 R- |* o6 K7 ~
- ;;;--------------------------------------------------------------------------;
4 ~7 `9 k8 \) w2 z+ E- a- l4 D - ;;;---------------Chon NHANH Nhieu Doi Tuong GIONG THUOC TINH----------------;, d% V0 r: R8 W6 `2 K2 K& u9 K1 ?9 y
- ;;;--------------------------------------------------------------------------;' l0 R2 r+ l1 e! ?" d- B9 Q
- ;;; ssx.lsp# K, ]0 x+ I! n; t9 I# ]3 _
- ;;; Copyright (C) 1990 by Autodesk, Inc.
1 Z% z# g% b6 ^& p& k4 p8 i8 o2 w4 d) B - ;;; Copyright (C) 1991 by Control Systems, Inc.( E1 p! K( N* T3 M
- ;;;
& {( z! ^# l# r+ K; R# x - ;;; Permission to use, copy, modify, and distribute this software and its
8 C" K/ M% L* `9 w - ;;; documentation for any purpose and without fee is hereby granted. j7 g' I1 _. w& j: [8 ]+ E
- ;;;1 I2 i7 }) ^, B
- ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.
' o! J$ @3 Q$ z: W2 S3 n% ]' t( y - ;;; ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF
8 c. V* e6 \: H3 ^ - ;;; MERCHANTABILITY ARE HEREBY DISCLAIMED.% I1 E3 ]2 A, l! U
- ;;;5 X8 v3 c4 C7 _' `" M
- ;;; Larry Knott Version 2.0 7/18/88$ I- h, ^. v9 u, K% Z8 W! F$ q
- ;;; Carl Bethea & Jan S. Yoder Version 3.0! b7 h/ Z, {5 k4 }2 r% z& x0 \* b
- ;;; Enhancements to (ssx).
8 `3 N- l1 i: e- L0 T9 x - ;;; 15 March 1990 , i; q' Z4 v5 }% F, Q$ d
- ;;;) ~0 _$ o3 h5 d$ e
- ;;; ARTIST Software, Inc Version 4.0 December 1991
! Y% @4 Q0 \3 U, M- q' M - ;;; Modified for FLEXICON usage. If the variable FLEXVAR = 1, {/ r' V1 i! s/ \) F9 n6 T
- ;;; use Flexicon menus; F: Z4 y, ?9 V* `/ P) Q
- ;;;
9 b Q& }2 F; o' F9 m8 }( Z( o* a - ;;;--------------------------------------------------------------------------;) ]2 o, o7 {# e; F( {& c" r
- ;;; DESCRIPTION/ m2 J4 t/ ^2 d) f6 J1 y7 n1 \
- ;;; SSX.LSP
1 L+ [# \# z- d( H5 _: ?1 N - ;;; # E* [5 p! |: Y5 H; x) c) S) [+ ~. I
- ;;; "(SSX)" - Easy SSGET filter routine. ) k: ^# g: \( j& [
- ;;; & f- K8 u- |8 Z
- ;;; Creates a selection set. Either type "SSX" at the "Command:" prompt
: o# E4 K( ~* Q `7 ]) h# F - ;;; to create a "previous" selection set or type "(SSX)" in response to
, r/ k, x# ^( u6 W4 Z - ;;; any "Select objects:" prompt. You may use the functions "(A)" to add a4 J: Q' ?% X
- ;;; entities and "(R)" to remove entities from a selection set during 3 x- ?1 _# C0 Y, M
- ;;; object selection. More than one filter criteria can be used at a 3 [* _+ W; L0 N1 e! u. L# c# R
- ;;; time.
4 s3 w+ {% I6 v$ S - ;;; 2 P' c* C$ K5 a# g/ K K
- ;;; SSX returns a selection set either exactly like a selected
7 i; G$ _6 A+ m2 w: x - ;;; entity or, by adjusting the filter list, similar to it.) J3 u& R( b, t z+ J% o8 b" [2 h
- ;;;
8 \ ^1 A( u; c4 Y5 d - ;;; The initial prompt is this:) h1 B' m% F) v3 Y5 A9 w
- ;;;
4 D) |. U+ c0 i - ;;; Command: ssx
: Q9 i$ m( ?7 Y N - ;;; Select object/<None>: (RETURN)
# |! d& B9 A! ]/ Z" f% n( | - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: : x" L0 F* ~! W. l
- ;;;
' ?) z, U* l Y1 A! H5 U& V - ;;; Pressing RETURN at the initial prompt gives you a null selection 5 i- ?9 ], H. b2 i
- ;;; mechanism just as (ssx) did in Release 10, but you may select an
2 H" ]$ m' `3 i6 r/ s - ;;; entity if you desire. If you do so, then the list of valid types & q6 z% J3 h. a* ~% m: |! E0 g. l# j/ o
- ;;; allowed by (ssget "x") are presented on the command line. H: E* P: I6 M! v3 R$ W
- ;;; 9 P: d- {. t8 O5 G' a1 J0 Z1 o, w
- ;;; Select object/<None>: (a LINE selected)
& O+ h+ L( D7 h8 S9 k# _4 s% K - ;;; Filter: ((0 . "LINE") (8 . "0") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))
( H) Z6 G$ t9 @( S - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
6 G2 u/ H& ]) ^ - ;;; ; b2 A( Y9 | L( k4 T! J
- ;;; At this point any of these filters may be removed by selecting the
- U6 B1 c2 d3 l4 I - ;;; option keyword, then pressing RETURN.3 @# Y% h% Q: D) w
- ;;;
2 u3 M) h) T/ e: D" g - ;;; >>Layer name to add/<RETURN to remove>: (RETURN)
6 g. a; V- ?$ h- V7 c - ;;; * G3 E1 }6 s1 q
- ;;; Filter: ((0 . "LINE") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))
- X; c: W8 q1 Q1 Y d& M( C - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: 7 _5 X) K7 x2 O5 s. {4 f0 i
- ;;;
% ?1 m5 {0 Y( }; D+ F5 D2 Q - ;;; If an item exists in the filter list and you elect to add a new item,
/ U" N L( I) O6 @5 |- P - ;;; the old value is overwritten by the new value, as you can have only / Z4 G: j- ]6 |% Y# j4 p
- ;;; one of each type in a single (ssget "x") call.
2 z$ y5 N' m7 P/ z X7 t - ;;;
# b) J) ?3 H! H2 w - ;;;--------------------------------------------------------------------------;
4 w K" Y0 P2 j, F' _; D. J9 V - ;;;$ E! X) A, f; Z7 N7 t C h, F
- ;;; Find the dotted pairs that are valid filters for ssget9 ]' R& q$ X' k; z- r
- ;;; in entity named "ent"., s5 s! ?+ L3 s# l: r
- ;;;; @" S4 v k8 K/ E2 T
- ;;; ssx_fe == SSX_Find_Entity" H; V$ C8 i9 `% F# i% h
- ;;;# R2 N) \: ]- m, I7 A! ?1 Q4 E
- (defun ssx_fe (/ x data fltr ent)+ }6 P) Z/ {. ?
- (if (and (= flexvar 1)(/= t2 "Pick"))
1 _0 T+ D g, k( W; M2 W, d - (setq ent nil)
0 U$ F1 q" T8 S5 ?6 |& O - (setq ent (car (entsel "\nSelect object/<None>: ")))" ^# | D$ H2 G5 @8 y
- )
: Z( e3 c5 g. `. f, J! S2 j - (if ent
: b$ M5 e$ p! @6 `- B& ~& I - (progn
) R b5 `" I6 L2 a - (setq data (entget ent))) _. B- B9 B$ D$ j; ]9 o# O
- (foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 38* s. k9 A" ?3 R1 `8 S
- (if (assoc x data)
0 s9 ^4 ^. b8 [; o) ~* r - (setq fltr
. d9 V c5 e. \ j! \ - (cons (assoc x data) fltr)
% f4 z0 P! F/ N0 U - )
% V5 u( ]' g- i/ j1 a& p9 d - )2 l! W& o( y6 Y$ y( m4 H
- )
) n @2 w9 z4 u, i7 d - (reverse fltr): @- C9 D' g: v$ q+ Y, O
- )3 ]' O+ L- _0 G8 F0 |2 R
- ) $ l- m+ s- p, J R+ _& ^9 e. k8 H* i
- )5 B1 E4 d% |3 s; J" L/ e! K
- ;;;7 Z( Z: g6 l: E8 Q
- ;;; Remove "element" from "alist".
: C, ]2 S4 U: S7 Y - ;;;4 ?% V7 A' J2 ` [* U
- ;;; ssx_re == SSX_Remove_Element8 x! }6 A& f; D/ S- b0 C6 @
- ;;;
! J. {9 D/ y- c( k7 x - (defun ssx_re (element alist)
1 n, [! G% r4 X, f' R5 g3 h' V) y - (append
/ N) u) ?' `$ i6 i - (reverse (cdr (member element (reverse alist))))
2 r" L, \* z/ X& `- B: b - (cdr (member element alist)) % d9 P" }- Y P5 E/ n3 n
- )5 N3 a/ ?4 l4 [+ C9 |
- )0 F$ R$ S' E3 p J3 u# g
- ;;;
. x% o8 u7 q& L! X - ;;; INTERNAL ERROR HANDLER
( `. b b7 P( M, o0 B - ;;;" e( j3 O; q9 D, w& @, D# v8 J( ` Q
- (defun ssx_er (s) ; If an error (such as CTRL-C) occurs0 N$ @, J; }4 |: X
- ; while this command is active...6 S9 y9 `! [1 a1 D8 j* t- k& Z
- (if (/= s "Function cancelled")5 N+ k4 P& g: S3 Z! b" T$ _' t
- (princ (strcat "\nError: " s)). A- q5 `5 p: F7 t2 F
- ). W( I8 m W' V- T- H
- (if olderr (setq *error* olderr)) ; Restore old *error* handler
# u$ R7 d8 q# U1 h - (setq flexvar 0)
; y6 d- @/ m! R5 A, c - (princ)
- i" S; V" a9 X, d( P9 l l - )
5 ?) C5 l! Y! S" w/ u - ;;;
% s: j- ~7 r$ R M Y - ;;; Flexicon call routine# T$ o+ ^* j+ y' |: _( K" \; \
- ;;;
5 E: }; i* k1 P' q1 O. } - (defun flexmnu (a)1 s( \0 ]6 P( x7 p8 R6 f& O
- (if (= flexvar 1), H0 Z9 A- K( c6 e" O9 l7 p
- (command "FLEXICON" (strcat "FLEX" a))
& h% m3 E7 F4 V" P( n. T& s - )6 S) @: B8 Q# y2 q7 h6 K0 ^
- )
) D: O" k8 J# V* ~
# g8 p. V4 `9 O# t* Q/ N3 |' G- ;;;
/ b# b0 V2 Q+ O: m' L - ;;; Get the filtered sel-set.9 r5 [+ d2 k8 Y6 g
- ;;;
$ n+ u& j. V% _: Q6 p5 P- b - ;;;
5 d$ j: z! I% c' i - (defun ssx (/ olderr)
2 O! Q6 B6 S2 F6 H1 ?2 b; M - (gc) ; close any sel-sets * l4 q4 x$ H* M
- (setq olderr *error* " C) a2 e2 m8 q% O3 h1 w7 t# H% M e
- *error* ssx_er
3 \. V# r4 M, R5 O2 w - )
6 o' u9 M }2 C' z% F+ Z8 s2 O - (setq fltr (ssx_fe)) # ^5 `! {8 _/ `/ v; [
- (ssx_gf fltr)
& I" z) \0 \9 F) u, i0 P8 Z - (if (= flexvar 1) I L5 ^1 V3 _* q6 \$ J1 u
- (progn, Y- u! a4 {7 [8 z) ^8 \
- (prompt "\n \n \nNow select the required EDIT command and (P)revious.")% J9 _, _; q7 J
- (flexmnu "EDIT") y( u3 O- F; H
- ): C6 D( U" v8 J6 O0 U. z. y* W8 ^
- (command "p")4 R2 T1 A' l- S/ ?/ n7 l* V# _
- )$ d8 ]: x' q! }: [( Z) ~
- (princ)' `6 [8 k0 a6 m8 c9 g
- ), d. V7 b5 a. a- n
- ;;;
* U' L: E2 J2 ~# R* s4 F8 C! K - ;;; Build the filter list up by picking, selecting an item to add,' R& I, M& I/ F) N7 w9 X: b+ h
- ;;; or remove an item from the list by selecting it and pressing RETURN.
5 ]& y3 o; `" u9 ~: g7 k$ }$ \ - ;;;7 v6 B. Z1 v, [: K8 V# O
- ;;; ssx_gf == SSX_Get_Filters
$ ~- P% O0 k; y: C; k: i2 w - ;;;0 p# g1 I, _; U" _; s9 V! g
- (defun ssx_gf (f1 / t1 t2 t3 f1 f2)
5 i: S+ c6 @! K! N% L/ H - (while 0 `& v' p! i) j$ }
- (progn7 f- y. d3 E: e( I9 a
- (flexmnu "SSX")
- w! T5 a) p9 E7 F( G* c4 M% ` - (cond (f1 (prompt "\nFilter: ") (prin1 f1)))0 M# @' Y2 \$ i8 \2 i
- (initget
! k! g% R6 j( t7 ] - "Block Color Entity Flag LAyer LType Pick Style Thickness Vector")
1 X( L2 M& c" V* g - (setq t1 (getkword (strcat
" o5 q8 R- Z6 D- ? - "\n>>Block name/Color/Entity/Flag/"3 j$ u& X& p9 \7 g/ R4 v
- "LAyer/LType/Pick/Style/Thickness/Vector: "))) . b; V. n, w) q6 n6 D) U# x
- )8 H p) S+ d) p8 B
- (setq t2' G. c. e3 _7 |* P( B3 j- ?: o
- (cond' \ N2 x6 O- |& h
- ((eq t1 "Block") 2) ((eq t1 "Color") 62)( n& T8 M* d: l
- ((eq t1 "Entity") 0) ((eq t1 "LAyer") 8)
' W( c% a' u: x0 d7 ~! f1 w$ h; E, Q) e - ((eq t1 "LType") 6) ((eq t1 "Style") 7)9 o, X1 `2 q6 h I R$ X
- ((eq t1 "Thickness") 39) ((eq t1 "Flag" ) 66)) Q/ Z- ?0 b* u" Z* O$ [
- ((eq t1 "Vector") 210)# T0 V' u# @9 r0 e' ^
- (T t1)7 @( Y9 ]! E, B: v7 N
- )- c0 K0 A6 j9 e! K& n
- )% z8 i3 n0 V: K0 |+ o4 F7 J
- (setq t3. R2 F- H i+ e% y
- (cond
* h! r ~3 f @$ z" L& L* s - ((= t2 2)
9 F4 j- T. u( c4 i - (if (= flexvar gtads 1)- Q* y1 j% u5 o; G% _
- (progn4 T$ R; } W1 t6 q& M" h- s
- (prompt "\n>>Block name to add/<RETURN to remove>: "), m2 _) Z' Z5 W7 n* a, L7 d
- (gttable "BLOCK")+ k& Q9 V- a$ e2 L/ z0 {
- )- O. @2 I1 q c1 G6 ^+ c
- (getstring "\n>>Block name to add/<RETURN to remove>: ")
2 p- @ q- t* S+ E: v% M - )
, y) U( f0 U+ C: l - )# H4 r' @: r" M2 K. k
- ((= t2 62) (initget 4 "?")- ]: j6 b+ t; R: v
- (cond
* y9 _: j D$ [$ s - ((or (eq (setq t3 (getint
6 {' `, w; I1 B. G( l. F- S- R - "\n>>Color number to add/?/<RETURN to remove>: ")) "?") ' H% y V( z. G; ?- ]" \7 m0 X' W
- (> t3 256))! m- d( M% [* K& c
- (ssx_pc) ; Print color values./ |0 R$ m- e9 e D1 ?& j9 q, b% V+ i
- nil! V! c* K6 y/ |- J# m
- )- I& G+ r$ a9 n- h8 r4 g1 P8 H1 x, z
- (T1 X8 j+ E% C0 D9 e6 z
- t3 ; Return t3.; h: t% O H; k! v& W3 ]+ Z _
- )
! I& w; U# ~" Z8 U7 G - )
! Z8 c& o" y1 F. ?, n8 Q - )$ t1 ^5 @5 p9 P& i/ {
- ((= t2 0) (getstring "\n>>Entity type to add/<RETURN to remove>: "))! H+ ~/ R' ?% J7 G I
- ((= t2 8)9 h, ~( Z$ }' r" H) ]
- (if (= flexvar gtads 1)
" S+ [' \2 l3 f - (progn0 c' f* X" [2 ]0 \; T% F, p/ O& q
- (prompt "\n>>Layer name to add/<RETURN to remove>: ")
7 c4 E: J3 K7 P$ T, I, f( ^# i+ `2 E6 E - (gttable "LAYER")8 n1 |" _( V5 X' v5 |/ S/ ~
- )
' y3 w7 z, ~2 U, T: U4 o - (getstring "\n>>Layer name to add/<RETURN to remove>: ")
/ }9 C' ~. Y% F! u3 L& Z - )0 t0 x1 q! G2 z9 B; |
- )
9 c4 x) B* J2 {, F% J( E4 }. N X - ((= t2 6) . a: n9 @; f: H
- (if (= flexvar gtads 1)
! Y7 P/ e+ ?! w' q( A - (progn
8 a9 h( J" X9 M" e - (prompt "\n>>Linetype name to add/<RETURN to remove>: ")
# O4 |7 ]2 K5 S3 q0 U - (gttable "LTYPE")
. B5 T) c1 ]. H- ?" ]: R" Z6 T7 Y - )9 I6 ?) C6 X5 Q0 Z
- (getstring "\n>>Linetype name to add/<RETURN to remove>: ")
0 D& j% H# D% G4 o% ~4 q9 e - )
8 f- M) f" g1 F. ^# V - )5 I$ S+ u% I. W" G1 y2 p
- ((= t2 7) & U# L! [' E" j
- (if (= flexvar gtads 1)
0 c( H' w- R# E- h) m& b - (progn
6 H- C+ u T# X - (prompt "\n>>Text style name to add/<RETURN to remove>: ")+ J, s" B$ |3 R b0 T
- (gttable "STYLE")
; F3 i! X# v; n, g - )$ y! w7 x. G* E& y! A- p) R: F( }
- (getstring "\n>>Text style name to add/<RETURN to remove>: ")
\% O: e- Q4 j" H& H5 _& @ - )
! H' t" z& B* g - )6 ^+ i; [- H/ I# L+ r3 M k8 X
- ((= t2 39)$ ]3 i8 f6 C+ }8 j/ e1 u: k
- (prompt "\n>>Thickness to add/<RETURN to remove>: ")
( O8 H+ `; N/ c7 v- _ d: J* l - (if(= flexvar gtads 1)(gtfnum"Thickness to add:")(getreal))
4 }7 s6 d& z2 b6 o8 m - )- J& b" {3 i5 @8 |* a& }- X |8 E7 s
- ((= t2 66) (if (assoc 66 f1) nil 1))
1 K9 [5 k; N* B( p! m" |4 ~ - ((= t2 210) % d2 U" N0 T4 Z0 J9 R2 G e/ S5 r
- (getpoint "\n>>Extrusion Vector to add/<RETURN to remove>: ")* A5 H) a/ W/ u+ a Z; h
- )# K7 V: v% C Q. B
- (T nil)0 x+ q, {9 J. o R) K) ^3 u# f1 @
- )! X9 Y: ]6 ]0 A* {, @
- )8 O. e& G0 k$ f! G$ Q/ T: S
- (cond# K3 I) f- J$ k' ]
- ((= t2 "Pick") (setq f1 (ssx_fe) t2 nil)) ; get entity6 w, B2 ?% g0 E* b
- ((and f1 (assoc t2 f1)) ; already in the list
* o4 K2 v/ R: i( o ^ - (if (and t3 (/= t3 ""))
# l- {2 U/ W+ {4 J% u8 s - ;; Replace with a new value... 5 Z m; @6 f% h
- (setq f1 (subst (cons t2 t3) (assoc t2 f1) f1))
A/ b! T9 q/ Y0 x - ;; Remove it from filter list...
/ G# V9 Z: D" c% P2 ~4 d+ R# Q - (setq f1 (ssx_re (assoc t2 f1) f1)) 1 T( {9 {4 T7 Q/ j
- )
5 q6 O F9 y& Q# k" b6 B/ ~ - )
1 i3 K" t& m2 I; r, W - ((and t3 (/= t3 ""))7 U# R e) J* T- k
- (setq f1 (cons (cons t2 t3) f1))9 z/ b- ^( f% ?7 `. B! W
- )! A! R" L0 ]( O/ P/ X$ F
- (T nil)+ P& H# b7 Q8 K# O% W
- )0 V" v! y' B! W6 K. z
- )
) A4 {4 D. S% Q. S) X3 s; R" @ - (if f1 (setq f2 (ssget "x" f1)))
( ^$ b3 ~, @1 K X - (setq *error* olderr)
/ _4 l' c5 a# f3 a - (if (and f1 f2) " l3 E' e/ |2 b* O
- (progn
: t' b2 q1 k+ R7 I9 H$ h - (princ (strcat "\n" (itoa (sslength f2)) " found. "))
; k( T3 _, W( y9 z - f2 + B3 {4 Z1 b8 q( ~/ i1 q
- )9 J# [# l1 X+ p" Z! o; R% i
- (progn (princ "\n0 found.") (prin1))
) I% ~, B& j9 j0 v( l5 M - )) j2 P- o. G% R% J7 H+ M
- )' l6 ], S9 G) q, h% l. V
- ;;;0 Z$ k5 `% V5 E- J! D
- ;;; Print the standard color assignments.. |, k. {3 z# ^5 t0 r: ?& R4 \
- ;;;
: G9 k/ c& p& y( M3 { - ;;;" d) U$ x3 T2 A& {8 W" E/ i
- (defun ssx_pc ()
+ b+ [* j4 V0 ]1 C - (if textpage (textpage) (textscr))
% C+ M8 B2 K* c! @6 |9 Q - (princ "\n ")9 ]% w& u ?; c& Q, ]7 n2 k. Q0 B
- (princ "\n Color number | Standard meaning ")
?. b9 C) U+ x0 v8 P9 o - (princ "\n ________________|____________________")
/ n8 Y3 K) Z) g D! c$ l - (princ "\n | ")! C- c; v0 O4 ~2 m/ j
- (princ "\n 0 | <BYBLOCK> ")
5 n2 i& W! r) P& N4 V - (princ "\n 1 | Red ")
, t, c% Q r+ |+ Z - (princ "\n 2 | Yellow ")
( j; P t& _2 @' o; b - (princ "\n 3 | Green ")' [% i! B4 ~4 u2 y
- (princ "\n 4 | Cyan ")
0 V I6 D3 O8 |) L4 a% ^, P - (princ "\n 5 | Blue ")
4 Q+ N2 N1 p6 E; {7 i8 j1 L+ `" E$ G - (princ "\n 6 | Magenta ")+ h& Q* R! |. C' X6 t0 p4 S
- (princ "\n 7 | White ")7 x& W1 U. } [" e+ A
- (princ "\n 8...255 | -Varies- ")
0 F# C7 i" M1 h# k - (princ "\n 256 | <BYLAYER> ")
) q+ B7 o4 w; p! X7 Y - (princ "\n \n\n\n")9 L, s# I4 P, l8 S
- )5 Z" ?, |3 X; m3 n" v' X7 a7 N
- ;;;# J3 p3 v5 p. _# {2 _8 L: C1 y
- ;;; C: function definition./ ~: } [5 \( z7 i% d" ^4 w4 _
- ;;;% c' m5 V/ V0 o: {2 h
- (defun c:ssx () (ssx)(princ))
5 N. V/ L. i7 ] - (princ "\n\tType \"ssx\" at a Command: prompt or ")
; J/ I8 ?& T: I2 ^ - (princ "\n\t(ssx) at any object selection prompt. ")
/ J1 F% L+ C) ^, J1 P7 h; a - (princ)" S& O1 Q& t- e8 Z
- 4 ~ `0 D5 V. g3 N0 {, G1 R- ]
- ;;;--------------------------------------------------------------------------;, _; W6 m7 g; K `: _' w
- ;;;--------------------------------------------------------------------------;- G( |; a& G, a- t9 m
- ;;;--------------------------------------------------------------------------;
4 V5 K% ^$ a, N7 q% l2 K# ?1 b - (defun S::STARTUP (): k8 Z! n) J; E9 M* O& a8 X8 w
- (setvar "cmdecho" 0)) E; e. K% T1 |
- (setvar "cmdecho" 1)+ f" T, w* o8 _ r8 `3 t! Q$ M
- (setvar "LTSCALE" 10)
; `/ p( Z; s5 c, Q- Q0 D - 2 m C3 x. `! b; `
- ;(command "_load" "chenKH.fas")# s( y2 b% l# y4 K
- ;(command "_load" "ctcot.fas")
6 T' n) |2 z( x, `* q i - ;(command "_load" "damdoc.fas")
$ H7 Y" |" d3 J |# M5 [2 m - ;(command "_load" "ghichu.fas")- t/ [& U, Z! Y- B9 Z) e
- ;(command "_load" "hamtutao.lsp")# o9 G3 L; m6 W0 i' i1 c
- ;(command "_load" "KHOITAO.fas")
' q/ U" P, ^7 z) s% ^ - ;(command "_load" "KHthep.fas")# Y2 }. Q8 K9 t
- ;(command "_load" "mbmong.dcl")6 Y% N* V2 ~* M, A# {) h
- ;(command "_load" "mbmong.fas")
( B* ~# c9 o6 c2 f - ;(command "_load" "mccot.fas")% ~& p( f f+ i u8 C3 T0 u
- ;(command "_load" "mcdam.fas")
- \! j4 r1 c9 X' D - ;(command "_load" "mcmong1.dcl"), j: v$ e4 m- @" N/ x6 L- j
- ;(command "_load" "mcmong1.fas")5 Q* t0 w- B/ P. b4 ]
- ;(command "_load" "mcmong2.dcl")
D2 f: g( R# l8 W# F/ h - ;(command "_load" "mcmong2.fas")
- x3 e, k. N1 [' J- N& N - ;(command "_load" "mcmong3.dcl")+ j. w; _0 ?5 `, p0 Q
- ;(command "_load" "mcmong3.fas")
! w9 K5 p6 v0 j: a, L - ;(command "_load" "mcsan.fas")
' U& i( n1 |* G# u - ;(command "_load" "thepdai.fas"), u1 m7 e( f9 ]3 a2 P1 T: n
- ;(command "_load" "thepdoc.fas")2 I& Y" t/ c, S- e. O$ P' |
- ;(command "_load" "thepmb.fas")
! d+ V: U# U! y1 s - ;(command "_load" "thepphbo.fas"). b$ m/ \: S: t% U
- (command "_script" "thongso.scr")
5 A/ d4 [; P/ Y2 a - ;(command "_load" "thongso1.dcl")
& y! b7 S, Y$ e4 O$ O - ;(command "_load" "thongso1.fas")/ f1 j/ _' f' u4 r" A N5 L
- ;(command "_load" "thongso2.dcl"), U* i. [ O: L3 y& F/ o% o" E
- ;(command "_load" "thongso2.fas")
: M1 S: M& H& q+ Y - ;(command "_load" "tietdien.fas")
1 l( {3 Q5 f6 U0 _ - ;(command "_load" "vehan.fas")0 R( Q! {' A7 ^2 F) A$ j" S/ c5 \! B
- (command "_load" "phamDuy782006_TKT.lsp")5 v X/ c1 {9 @: V8 ]
- (command "_load" "phamduy782006ganhtd.lsp")% B+ |2 ~1 e+ n1 X
- (command "_load" "phamduy782006ganhtds.lsp")* N0 i& Y+ R7 Z- c+ m5 ]# z- \
- (command "_load" "phamduy782006htd.dcl")! t/ Y# e0 Q6 d( g
- (princ)
) \ Y0 @# T) a$ H u( Q - )
; d- d: v1 U d L6 i& F( n* n
9 y, j& V5 N7 Z1 K& w* u! C8 v- ;; Silent load.
. K5 A" b/ s8 T! r0 f$ V# z - (princ)
( a, g. H* J% B: s( ] - 1 S" Q3 e3 G1 y3 J
- X! h6 {7 ?" ], Z0 q- ;; Silent load for the Express Tools.
m; D4 \" x, p6 n - ;; Altering this line will affect Express Tools functionality
; u2 a) P% o- Z* p - (load "acettest.fas" (princ))
# m- l# D6 K; ? C* \8 E- P F* l) r9 Q - �32
Sao chép mã , v C& I. T! l" C+ f2 V- |, v; O2 Q- Z
00st Cách Thêm Menu & Lisp Vẽ & Fonts Chữ mở Gõ Chữ Administrator để Gõ% e; S, P: w5 K& @; p6 J
|
|