发布于:2004-09-05 15:06:05
来自:建筑设计/CAD下载及教程
[复制转发]
(defun ReadXdata()
(setq PositionInStr 2)
(Setq DWX "" DWY "" PRX "" PRY "" XDTA "" SX "" SY "" EX "" EY "")
(setq Str (cdr (cadr (cadr (assoc ’-3 (entget (car (entsel)) ’("NEWDATA")))))))
(if (/= str nil)(progn
(setq StrLength (strlen str))
(if (< PositionInStr StrLength)(progn
(while (/= (setq Ch (substr str PositionInStr 1)) "*")
(setq DWX (strcat DWX ch))
(setq PositionInStr (+ PositionInStr 1))
)))
(setq PositionInStr (+ PositionInStr 1))
(if (< PositionInStr StrLength)(progn
(while (and (/= (setq Ch (substr str PositionInStr 1)) "*") (< PositionInStr StrLength))
(setq DWY (strcat DWY ch))
(setq PositionInStr (+ PositionInStr 1))
)))
(setq PositionInStr (+ PositionInStr 1))
(if (< PositionInStr StrLength)(progn
(while (and (/= (setq Ch (substr str PositionInStr 1)) "*") (< PositionInStr StrLength))
(setq PRX (strcat PRX ch))
(setq PositionInStr (+ PositionInStr 1))
)))
(setq PositionInStr (+ PositionInStr 1))
(if (< PositionInStr StrLength)(progn
(while (and (/= (setq Ch (substr str PositionInStr 1)) "*") (< PositionInStr StrLength))
(setq PRY (strcat PRY ch))
(setq PositionInStr (+ PositionInStr 1))
) ))
(setq PositionInStr (+ PositionInStr 1))
(if (< PositionInStr StrLength)(progn
(while (and (/= (setq Ch (substr str PositionInStr 1)) "*") (< PositionInStr StrLength))
(setq XDTA (strcat XDTA ch))
(setq PositionInStr (+ PositionInStr 1))
)))
(setq PositionInStr (+ PositionInStr 1))
(if (< PositionInStr StrLength)(progn
(while (and (/= (setq Ch (substr str PositionInStr 1)) "*") (< PositionInStr StrLength))
(setq SX (strcat SX ch))
(setq PositionInStr (+ PositionInStr 1))
)))
(setq PositionInStr (+ PositionInStr 1))
(if (< PositionInStr StrLength)(progn
(while (and (/= (setq Ch (substr str PositionInStr 1)) "*") (< PositionInStr StrLength))
(setq SY (strcat SY ch))
(setq PositionInStr (+ PositionInStr 1))
)))
(setq PositionInStr (+ PositionInStr 1))
(if (< PositionInStr StrLength)(progn
(while (and (/= (setq Ch (substr str PositionInStr 1)) "*") (< PositionInStr StrLength))
(setq EX (strcat EX ch))
(setq PositionInStr (+ PositionInStr 1))
)))
(setq PositionInStr (+ PositionInStr 1))
(if (< PositionInStr StrLength)(progn
(while (and (/= (setq Ch (substr str PositionInStr 1)) "*") (< PositionInStr StrLength))
(setq EY (strcat EY ch))
(setq PositionInStr (+ PositionInStr 1))
)))
(if (and (/= SX "") (/= SY ""))(progn
(setq sTmx (atof SX))
(setq sTmy (atof SY))
(setq eTmx (atof EX))
(setq eTmy (atof EY))
(setq SX (rtos (+ (- sTmx (atof DWX)) (atof PRX)) 2 3))
(setq SY (rtos (+ (- sTmy (atof DWY)) (atof PRY)) 2 3))
(setq EX (rtos (+ (- eTmx (atof DWX)) (atof PRX)) 2 3))
(setq EY (rtos (+ (- eTmy (atof DWY)) (atof PRY)) 2 3))
)
)
(if (= SX "") (setq SX "Not a line"))
(if (= EX "") (setq EX "Not a line"))
(if (or (= DWX "") (= DWX "z")) (progn (setq DWX "No origin setlecting")(setq DWY "")))
(if (or (= PRX "") (= PRX "z")) (progn (setq PRX "No origin setting") (setq PRY "")))
(if (= XDTA "")(setq XDTA "No Xdata"))
(alert (strcat "断面原点: " DWX " " DWY "\n原点设为: " PRX " " PRY "\n\n直线起点: " SX " " SY "\n直线终
全部回复(1 )
只看楼主 我来说两句 抢板凳回复 举报