LISP 是如何实现分数的表达?

LISP 是如何实现分数的表达?,第1张

其实就是用选择集的方法去做,先框选(用 选择集SELECT W,P1,P2),实体即进入选择集,然后在选择集中遍历,根据各文本的X坐标与Y坐标,计算其间距,重新设定其插入点,使其左对齐即可

(DEFUN C:TT ( / ss ff ss1 en pt x y)
 (setvar "cmdecho" 0)
 (setvar "blipmode" 0)
 (setvar "dimzin" 0)
 (vl-load-com);;加载vlax扩展函数
 (setq ss (ssget '((0  "point"))) n 0);;请选择点
 (if (/= ss nil)
  (progn
   (setq ff (open "d://文字到TXTtxt" "w") ss1 '());;在D盘建立记事本《文字到TXT》这里可以查看内容
   (repeat (sslength ss);;循环选择
    (setq en (ssname ss n) n (+ n 1);;提取图元
          pt (cdr (assoc 10 (entget en)));;取得点坐标
          ss1 (cons pt ss1);;加入表
    )
   )
   (setq ss1 (vl-sort ss1 (function (lambda (x y)(< (car x) (car y))))));;X排序从左到右
   (setq ss1 (vl-sort ss1 (function (lambda (x y)(> (cadr x) (cadr y))))));;Y排序从上到下
   (foreach en ss1;;函数遍历表,将其中每一个元素依次赋给变量,并对每一个表达式求值
    (setq x (rtos (car en) 2 5))
    (setq y (rtos (cadr en)2 5));;取得Y坐标精确到小数点后5位
    (princ x ff)
    (princ "," ff)
    (princ y ff)
    (princ "\n" ff)
   )
   (close ff)
  )
 )
 (princ)
)

这个TT命令修改了一下,可以对点坐标排序,保存到D盘《文字到TXT》记事本里面;实际上坐标需要X=;Y=这个标记的,这个标记表示大地坐标;大地坐标X=cad里面的y坐标,同样的Y=cad里面的x坐标,所以不能够随便修改文字格式。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13410383.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-30
下一篇 2023-07-30

发表评论

登录后才能评论

评论列表(0条)

保存