本帖最后由 lingfne 于 2025-10-23 14:31 编辑

  • 如果用两次拉线取点,连续取点,取x值y值点,得出xy值点表。怎样并合操作?路过的前辈帮忙修改或指点一下!!
  • (defun c:tt ()
  •   ;(setq space (yaling_Non_enclosed_space)) ;;点取四个角点
  •   (setq mp1 (getpoint "\n请选择第一点:") mp2 (getpoint mp1 "\n指定拉线方向:"))
  •   (Width_labeling mp1 mp2)
  •   ;(mapcar '(lambda (x) (+ x 3)) lmt)
  • )
  • (defun Width_labeling (mp1 mp2)
  •   (setq lcpmta (Get_Width_calculation mp1 mp2))
  •   (setq lcpmtb (Get_Heigh_calculation mp1 mp2))
  •   (setq minh (atoi (rtos (apply '+ lcpmta))))
  •   (setq ming (atoi (rtos (apply '+ lcpmtb))))
  •   (setq oo (append lmtbz lmtbz))
  •   (cond
  •     ((>= minh 0.1)
  •       (setq lmtbz (mapcar 'list (reverse (cdr (reverse lcpmta))) (cdr lcpmta)))
  •       (princ "\n水平求值")
  •       (princ)
  •       lmtbz
  •     )
  •     ((>= ming 0.1)
  •       (setq lmtbz (mapcar 'list (reverse (cdr (reverse lcpmtb))) (cdr lcpmtb)))
  •       (princ "\n垂直求值")
  •       (princ)
  •       lmtbz
  •     )
  •   )
  • )



网友答:
这样吗
(defun c:tt (/ A DB X Y)
   (setq a (getpoint "\n 请点选两个以上的点") db (list a))
   (while  (setq a (getpoint a))
           (setq db (append db (list a)))
           (mapcar '(lambda (x y) (grdraw x y 2 1)nil)
             db (cdr db)
           )
   )
   (redraw)
   db
)

网友答:
guosheyang 发表于 2025-10-23 14:55
这样吗
(defun c:tt (/ A DB X Y)
   (setq a (getpoint "\n 请点选两个以上的点") db (list a))

不这样的,打开附件就明白!

网友答:
lingfne 发表于 2025-10-23 15:29
不这样的,打开附件就明白!

最好直接文字表达你的需求   那么长的代码 看起来比写代码还费力

网友答: 直接用(ssget "f" pt01 pt02),再去掉重合就可以了

网友答:
binzi 发表于 2025-10-23 16:53
直接用(ssget "f" pt01 pt02),再去掉重合就可以了

多谢指点!问题已经解决!
  • 上一篇:缩放命令怎么选择对象输入尺寸就可以正比例缩
  • 下一篇:没有了