(defun c:XDTB_CoordsList1
(/ $XDOB_GLOBAL_COORDSATLINE_MASKCHECK
$XDTB_COORDS_VAR_JD att
atts bCutZ blk
blkna bMakeBlk box
boxType coords-odcl-data
dimTolCtrl div e
el ept gap
h HeaderBaselineType
HeaderH HeaderTxt i
iList ilist1 inxs
j LeaderL len
lst mask n
na p1 p2
pj pn pt
pts RowGap RowNums
scl spt ss
startNo str tb
tf titleheight TolAngle
TolDist txtH txtPrefix
v_direct v_next v_prev
value vert-nums x
)
'("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"
"+4GBcSBvO5c="
)
)
(defun c:CoordList1#OnInitialize
(/) (if (not $XDOB_GLOBAL_COORDSATLINE_MASKCHECK
) (setq $XDOB_GLOBAL_COORDSATLINE_MASKCHECK
0) )
(dcl-Control-SetFocus CoordList1-check-dim-control)
(dcl-Control-ZOrder CoordList1-check-dim-control 1)
HeaderH
(cadr (assoc "HeaderH" #coords_data
)) HeaderTxt
(cadr (assoc "HeaderTxt" #coords_data
)) txtPrefix
(cadr (assoc "TxtPrefix" #coords_data
)) LeaderL
(cadr (assoc "LeaderL" #coords_data
)) RowNums
(cadr (assoc "RowNums" #coords_data
)) boxType
(cadr (assoc "BoxType" #coords_data
)) dimTolCtrl
(cadr (assoc "DimToCtrl" #coords_data
)) TolDist
(cadr (assoc "TolDist" #coords_data
)) TolAngle
(cadr (assoc "TolAngle" #coords_data
)) bMakeBlk
(cadr (assoc "bMakeBlk" #coords_data
)) )
(dcl-Control-SetText CoordList1-txtheight txtH)
(dcl-Control-SetText CoordList1-table-title-height HeaderH)
(dcl-Control-SetText CoordList1-scale HeaderTxt)
(dcl-Control-SetText CoordList1-prefix txtPrefix)
(dcl-Control-SetText CoordList1-leaderlen LeaderL)
(dcl-Control-SetCurrentSelection
boxType
)
(dcl-Control-SetText CoordList1-scale scl)
(dcl-Control-SetValue
CoordList1-check-dim-control
dimTolCtrl
)
(dcl-Control-SetText CoordList1-dim-dist TolDist)
(dcl
-Control
-SetText CoordList1
-dim
-angle TolAngle
) (dcl-Control-SetValue CoordList1-check-insert bMakeBlk)
(dcl-Control-SetValue CoordList1-cutz bCutZ)
)
(dcl-Control-SetText
CoordList1-scale
(rtos (xd::var:getscaleratio
) 2 1) )
)
)
(defun c:xdtb_coordslist
/CoordList1
/CheckBox2#OnClicked
(Value
/) (progn (dcl
-Control
-SetEnabled CoordList1
-dim
-dist t
) (dcl
-Control
-SetEnabled CoordList1
-dim
-angle t
) (dcl-Control-SetEnabled CoordList1-dim-dist-label t)
(dcl-Control-SetEnabled CoordList1-dim-angle-label t)
(dcl-Control-SetEnabled CoordList1-dim-points-label t)
(dcl-Control-SetEnabled CoordList1-dim-point-nums t)
)
(progn (dcl
-Control
-SetEnabled CoordList1
-dim
-dist
nil) (dcl
-Control
-SetEnabled CoordList1
-dim
-angle nil) (dcl-Control-SetEnabled CoordList1-dim-dist-label nil)
(dcl-Control-SetEnabled CoordList1-dim-angle-label nil)
(dcl-Control-SetEnabled CoordList1-dim-points-label nil)
(dcl-Control-SetEnabled CoordList1-dim-point-nums nil)
)
)
)
(setq str
(rtos str
2 $XDTB_COORDS_VAR_JD
)) )
str
)
(defun _drawtable
(lst
/ i
) (xdrx_statusbar_begin
"Table Making" (length lst
)) (xdrx_statusbar_setpos i)
)
)
)
)
)
)
lst
)
(list "No" "Coords X" "Coords Y" "Coords Z") )
lst
)
(list "No" "Coords X" "Coords Y") )
lst
)
)
)
(xdrx_statusbar_end)
(xd::text:init 1)
lst
)
)
(if (/= txth titleheight
) (xdrx_table_settextheight
tb
0
0
)
)
(xd::table->block tb)
)
)
)
)
)
(defun _makeLineblk
(len txth gap
/ att blk blkna el
) (setq blkna
(xdrx_object_get
"block" "XD_INDEX_LINE_BLK")) )
(progn (setq el
(xdrx_line_make '
(0.0 0.0 0.0) (list len
0.0 0.0))) ($XDLSP_SETTEXTSTYLE "ht" "黑体" 0.8)
(xdrx_text_make
(list (+ len gap
) 0.0 0.0) "A"
0.0
)
(XD::Text:AdjustAlignMent
(entlast) 0 2) (xdrx_block_make
"XD_INDEX_LINE_BLK"
'(0 0 0)
t
)
)
)
blk
)
(if (not $XDTB_COORDS_VAR_JD
) (setq $XDTB_COORDS_VAR_JD
4) )
(xdrx_entsel
"\nPlease Pick the Polyline<Exit>:"
'((0 . "*polyline"))
)
)
)
(xdrx_setpropertyvalue e "closed" t)
(xdrx_getpropertyvalue e "vertices")
)
pts iList
)
)
(xdrx_begin)
(xdrx_sysvar_push '("dimzin" 0))
(if (xdrx_object_isa e
"AcDb2dPolyline") (xdrx_polyline_convertfrom e)
)
(setq tf
(xd::doc:safezoom e
)) (xd::
list:removedup iList
) '((-4 . "<or")
(0 . "MULTILEADER")
(2 . "XDTB_COORDS_LIST*,XMLEADER-*")
(-3 ("xd-mleader"))
(-4 . "or>")
)
)
)
(if (xdrx_object_iskindof x
"insert") x
"attributeEntities"
)
)
)
(setq x
(car (xdrx_block_getentities temp
))) )
)
)
(strcase (xdrx_getpropertyvalue x
"textstring")) )
(xdrx_entity_delete temp)
)
)
(xdrx_pickset->ents ss)
)
)
)
(setq na
($XDLSP_POLYGON_ZBYX_BLK
(atof LeaderL
) (atof txtH
))) )
(if (and (/= vert
-nums
"") )
)
div
)
ilist1 nil
inxs nil
)
)
)
)
)
)
)
)
ilist
)
)
)
)
)
)
(xd::text:init 1)
j 0
)
(xdrx_statusbar_begin
"Data Collection" (length pts
)) (xdrx_setmark)
)
)
)
(setq pn
(xdrx_getpropertyvalue e
"prevnextindex" i
) p1
(xdrx_polyline_getpointat e
(car pn
)) p2
(xdrx_polyline_getpointat e
(cadr pn
)) v_next (xdrx_vector_normalize
(xdrx_getpropertyvalue e "firstderiv" n)
)
v_prev (xdrx_vector_normalize
(xdrx_getpropertyvalue e "firstderiv-" n)
)
v_direct
(if (xdrx_vector_iscodirectional
v_next
(xdrx_vector_negate v_prev)
1e-3
)
(xdrx_vector_perpvector v_next)
(xdrx_vector_normalize
(mapcar '
+ v_next v_prev
)) )
)
(if (= (xdrx_point_getRelationAtClosedCurve
e
)
2
)
(setq v_direct
(xdrx_vector_negate v_direct
)) )
)
)
)
n
(xdrx_vector_product
v_direct
)
)
)
(XD::DimLeaderIndex:Make
str
spt
ept
1.0
"_none"
0
)
(progn ;(setq lxd1 n lxd2 v_direct lxd3 (* (atof scl) (atof leaderl)) lxd4 0.0 lxd5 str lxd6 (* (atof scl) (atof txth))) (xd::mleader:make
n
v_direct
(/ txth1 3.0)
str
txth1
)
)
)
(xdrx_getpropertyvalue
(entlast) "handle") )
)
(xdrx_block_make
str
(xdrx_getpropertyvalue
(entlast) "firstvertex" 0) t
)
)
)
(xdrx_statusbar_setpos j)
)
(xdrx_statusbar_end)
(_drawtable ilist) ; (xd::drag:simplemove (entlast)
; "\n插入点<退出>:" 8 t)
(xdrx_entity_setproperty
(xdrx_getss 9)
"layer"
"coordinate"
)
(xdrx_prompt
"\nMarked " (length ilist
) " Point.") ;(and tf ; (xdrx_document_zoomprevious))
(xdrx_end)
)
)
)
(defun c:CoordList1
-button
-ok#OnClicked
(/) (setq txtH
(dcl
-Control
-GetText CoordList1
-txtheight
) HeaderH (dcl-Control-GetText CoordList1-table-title-height)
HeaderTxt (dcl-Control-GetText CoordList1-content)
txtPrefix (dcl-Control-GetText CoordList1-prefix)
LeaderL (dcl-Control-GetText CoordList1-leaderlen) ;
; HeaderBaselineType
; (dcl-Control-GetCurrentSelection
; xdtb_coordslist/CoordList1/OptionL
; ist2)
RowNums (dcl-Control-GetText CoordList1-Table-fenlan)
RowGap (dcl-Control-GetText CoordList1-table-cellmargin)
;
; mask (dcl-Control-GetValue
; CoordList1-check-insert)
boxType
(dcl
-Control
-GetCurrentSelection CoordList1
-box
-type) dimTolCtrl (dcl-Control-GetValue CoordList1-check-dim-control)
TolDist (dcl-Control-GetText CoordList1-dim-dist)
TolAngle
(dcl
-Control
-GetText CoordList1
-dim
-angle) startNo (dcl-Control-GetText CoordList1-start)
bMakeBlk (dcl-Control-GetValue CoordList1-check-insert)
bCutZ (dcl-Control-GetValue CoordList1-cutz)
titleHeight (dcl-Control-GetText CoordList1-table-title-height)
vert-nums (dcl-Control-GetText CoordList1-dim-point-nums)
scl (dcl-Control-GetText CoordList1-scale)
)
(list "HeaderTxt" HeaderTxt
) (list "TxtPrefix" txtPrefix
) (list "HeaderBaseLineType" HeaderBaselineType
) (list "DimToCtrl" dimTolCtrl
) (list "TolAngle" tolAngle
) (list "bMakeBlk" bMakeBlk
) (list "TitleHeight" titleHeight
) )
)
(dcl_MessageBox
"Title Content Cannot be Empty."
"XD Tips"
2
2
)
)
((= "" startNo)
(dcl_MessageBox
"Start Number Content cannot be Empty."
"XD Tips"
2
2
)
)
(t (dcl_sendstring "(_process)\n"))
)
)
(defun c:CoordList1
-button
-quit#OnClicked
(/) (dcl_Form_close CoordList1)
)
(xd::doc:checkacadversion '>= "2008" "")
(dcl_Project_import coords-odcl-data)
(dcl_Form_Show CoordList1)
(setq box
(xdrx_drawing_pixelbox
)) (dcl_Form_SetPos
CoordList1
)
(dcl-Control-SetFocus CoordList1-check-dim-control)
(dcl-Control-ZOrder CoordList1-check-dim-control 1)
(dcl-Control-SetFocus CoordList1)
)