土木在线论坛 \ 建筑设计 \ CAD下载及教程 \ 提取扩展数据.lsp

提取扩展数据.lsp

发布于: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直线终
  • sztk2001
    sztk2001 沙发
    能具体说明其功能吗?谢谢
    2004-09-11 15:06:11

    回复 举报
    赞同0
这个家伙什么也没有留下。。。

CAD下载及教程

返回版块

52.08 万条内容 · 682 人订阅

猜你喜欢

阅读下一篇

附加扩展数据到ACAD实体.lsp

也许有用!(defun AddXdata()(if (/= sa nil)(setq DwgX (rtos sa 2 7))(setq DwgX "z"))(if (/= sb nil)(setq DwgY (rtos sb 2 7))(setq DwgY "z"))(setq OrivX (car Oriv))(setq OrivY (cadr Oriv))(if (/= OrivX nil)(setq ProX (rtos OrivX 2 3))(setq ProX "z"))

回帖成功

经验值 +10