增加了Grid格式的对话框
可同时设置线宽
双击容差单元格可量取设置容差值
 - (defun c:XDTB_Join (/ #join
- tol ents
- ents1 ss
- ss-line ss-arc
- n precision
- c:XDTB_Join/Form1/Grid1#OnDblClicked
- c:XDTB_Join/Form1#OnCancelClose
- *error*
- )
- (defun #join (n / x y)
- (foreach x n
- (foreach y n
- (if (and (not (equal x y)) (entget x) (entget y))
- (xdrx_curve_join x y)
- )
- )
- )
- )
- (defun *error* (msg)
- (if (dcl-form-isactive XDTB_Join/Form1)
- (dcl-form-close XDTB_Join/Form1)
- )
- (apply 'xdrx_document_setprec precision)
- )
- (defun c:XDTB_Join/Form1/Grid1#OnDblClicked (Row Column /)
- (if (eq row 0)
- (progn (if (not (setq tol
- (getdist (strcat "\n容差<"
- (VL-PRINC-TO-STRING $xdtb_global_var_tol)
- ">:"
- )
- )
- )
- )
- (setq tol $xdtb_global_var_tol)
- (setq $xdtb_global_var_tol tol)
- )
- (dcl-grid-setcelltext
- XDTB_Join/Form1/Grid1
- 0
- 1
- (VL-PRINC-TO-STRING (fix tol))
- )
- )
- )
- )
- (defun c:XDTB_Join/Form1#OnCancelClose (Reason /)
- t
- )
- (if (not $xdtb_global_var_tol)
- (setq $xdtb_global_var_tol 0)
- )
- (if (not $xdtb_global_var_constantwidth)
- (setq $xdtb_global_var_constantwidth 0)
- )
- (setq precision (xdrx_document_getprec))
- (setq box(last(xdrx_document_pixelbox)))
- (command "_opendcl")
- (dcl-project-import
- '("YWt6A9wHAAA9ScpcBuL76rUxbS9quMEc/3Wq+v6QMqou3eV4FFUqnXRlMy7a9PdQSnoWrzRXOPNk"
- "SRID0wudtPsQ84/LGB8KmWEenCWPww2f3Z0JUa1nmN26RefnjUWZok2ZoA2YCARLcYCjCHoHYrxe"
- "uE76J+ovO3K+jSjeo3QKN4gfdO2Wneu4Rsw27w2muFU7lFknV5lCNOqsqjIvQTejKBqW7QhEiTex"
- "OLLcNjV3fcKElxtd6OLJ8+a/CJQtgijwDPisfssD2lIRRV09JeSq+vozzH0I0v33L51xANgHSSkK"
- "ZE0KSzGvK8mGUJhenAvrcxyYorXze9gXmK/yW70K+4j8myvPBrqAVspFAF6CLobAjmG32VnMZmjU"
- "9s3mJixWjVKcf81b8gapOIb16AQ+GcFnn4vtpv+bm5E7xhNDZt8YaQnFtBToLt8i34tyGw0w3CFq"
- "iPohduFpwF8CM8ZbaJuhHMFeEtyA9/PqbPB56Qu0YFDGsnMQolczTj/rQDUpAnSJgumT5EefBpaR"
- "1ERcK8FTKxFpqFDSOGwxch1qZQbhDqvXLrCNB2KY4LqvkJM4JW65Tam7hfCOJLfEXuMIPpJRG4Bt"
- "z6HsKwPvMKBagIVbhcMcoVlCUkJa0gGwGLcpgdodrCVjvNGDsFx5/5PCcS/DmXGNtEHNlITkqUpB"
- "BNS6CRIZv0LolpEp9owYe4N8qEqymF3EZZSh0+6DpdZAscUWi9Vdh1uBAfCKXIK/aLHqQjHMu63a"
- "su0b5KMl+mftCyn81MYU5hef5940z+EIo80cQVdCX49Rd2FowFICK4b0DtmOL58RP6lTDFOysQuj"
- "CbeJVSRd4uqHQbyLhRGCfcdhXqk="
- )
- )
- (dcl-form-show XDTB_Join/form1)
- (dcl-form-setpos XDTB_Join/form1 (car box)(cadr box))
- (dcl-grid-filllist
- XDTB_Join/form1/grid1
- (list (list "容差" (VL-PRINC-TO-STRING $xdtb_global_var_tol))
- (list "线宽"
- (VL-PRINC-TO-STRING $xdtb_global_var_constantwidth)
- )
- )
- )
- (dcl-Grid-SetCellStyle XDTB_Join/Form1/Grid1 1 1 6)
- (dcl-Grid-SetCellStyle XDTB_Join/Form1/Grid1 0 1 6)
- (xdrx_begin)
- (prompt
- "\n选取要JOIN的曲线(LINE,POLYLINE,ARC,SPLINE,ELLIPSE):"
- )
- (while (setq ss (ssget '((0 . "*LINE,ARC,ELLIPSE,SPLINE"))))
- (progn
- (setq tol (atof (dcl-grid-getcelltext
- XDTB_Join/Form1/Grid1
- 0
- 1
- )
- )
- $xdtb_global_var_tol
- tol
- $xdtb_global_var_constantwidth
- (atof (dcl-grid-getcelltext
- XDTB_Join/Form1/Grid1
- 1
- 1
- )
- )
- )
- (xdrx_document_setprec
- tol
- )
- (setq ss-line (ssadd)
- ss-arc (ssadd)
- )
- (xdrx_setsstodb ss 0)
- (while (setq e (xdrx_getentdata 0))
- (setq tf (car (xdrx_getpropertyvalue e "classname")))
- (cond ((= tf "LINE") (ssadd e ss-line))
- ((= tf "ARC") (ssadd e ss-arc))
- )
- )
- (setq ents (xdrx_pickset->ents ss-line))
- (setq ents1 (mapcar
- '(lambda (x) (list (xdrx_getpropertyvalue x "angle") x))
- ents
- )
- ents1 (XD::assocList:MergeByNumKey ents1 0.01)
- ents1 (mapcar 'cdr ents1)
- )
- (foreach n ents1 (#join n))
- (setq ents (xdrx_pickset->ents ss-arc))
- (setq ents1 (mapcar
- '(lambda (x)
- (list (xdrx_getpropertyvalue x "center")
- (list (xdrx_getpropertyvalue x "radius") x)
- )
- )
- ents
- )
- ents1 (XD::assocList:MergeByNumKey ents1 0.01)
- ents1 (mapcar 'cdr ents1)
- ents1 (mapcar '(lambda (x) (XD::assocList:MergeByNumKey x 0.01))
- ents1
- )
- ents1 (mapcar 'cdar ents1)
- )
- (mapcar '(lambda (x) (#join x)) ents1)
- (#join (xdrx_pickset->ents ss))
- (xdrx_setsstodb ss 0)
- (while (setq e (xdrx_getentdata 0))
- (xdrx_setpropertyvalue
- e
- "constantwidth"
- $xdtb_global_var_constantwidth
- )
- )
- )
- (prompt
- "\n选取要JOIN的曲线(LINE,POLYLINE,ARC,SPLINE,ELLIPSE):"
- )
- )
- (xdrx_end)
- (*error*)
- (princ)
- )
|