明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 648|回复: 3

[提问] 如何使trim能多次选择?

[复制链接]
发表于 2017-10-18 17:36:24 | 显示全部楼层 |阅读模式
本帖最后由 chenjieq1990 于 2017-10-18 17:39 编辑

接上面的帖子http://bbs.mjtd.com/thread-175494-1-1.html,已经做了修改,其中w1是修剪,w2是延伸。。。


  1. (defun C:w1(/ cm os wt_text0 wt_text wt_textdata wt_box wt_txpz1 wt_txpz3 wt_1 wt_2)
  2.     (vl-load-com)
  3. ; (defun r2d (r) (/ (* r 180.0) pi));弧度转角度
  4.   (setq cm (getvar "cmdecho"))
  5.   (setq os (getvar "osmode"))
  6.   (setvar "cmdecho" 0)
  7.   (setvar "osmode" 0)
  8.   (defun *error* (msg) ;错误处理
  9.     (vl-cmdf "" "")
  10.     (vl-cmdf "ucs" "")
  11.       (vl-cmdf "erase" wt_1 wt_2)

  12.     (redraw wt_text 4)

  13.     (setvar "cmdecho" cm)
  14.     (setvar "osmode" os)

  15.    (princ msg)
  16.   )
  17.   (setq wt_text0(entsel"\n选择文本:"))
  18.   ;(setq h(cdr (assoc 0 (entget(car wt_text0)))))
  19.   (while(or (= wt_text0 nil) (/= (cdr (assoc 0 (entget(car wt_text0)))) "TEXT") )
  20.     (setq wt_text0(entsel"\n选择文本:"))
  21.     )
  22.     (setq wt_text(car wt_text0))
  23. (setq wt_textdata(entget wt_text))
  24.   ;or (wt_text0 null)  
  25.   (redraw wt_text 3)
  26.   (vl-cmdf "ucs" "e" wt_text)
  27.   (setq wt_box(textbox wt_textdata))
  28.   (setq wt_txpz1(car wt_box)
  29.   wt_txpz3(cadr wt_box)
  30.   )
  31. ; (setq wt_attext(vlax-ename->vla-object wt_text))
  32. ; (setq wt_ro(r2d (vla-get-rotation  wt_attext)))
  33.   (vl-cmdf "xline" "v" wt_txpz1 "")
  34.   (setq wt_1(entlast))
  35.   ;(redraw wt_1 2)
  36.   (vl-cmdf "xline" "v" wt_txpz3 "")
  37.   (setq wt_2(entlast))
  38.   ;(redraw wt_2 2)
  39.   (redraw wt_text 4)
  40.   (vl-cmdf "trim" wt_1 wt_2 "" )
  41.   (vl-cmdf pause "")
  42.   ;(prompt "\n请选择择修剪位置:")
  43.   ;(setq wt_line0(entsel"\n修剪对象:"))

  44.   ;(setq wt_line(car wt_line0))
  45.   ;(setq wt_linedata(entget wt_line))
  46.   ;(setq wt_n 0)
  47.   ;(repeat (sslength wt_lines) () (setq wt_n(1+ wt_n)))
  48.   ;(setq ent(ssname ss n))
  49.     (vl-cmdf "trim" wt_1 wt_2 "" )
  50.   (vl-cmdf pause "")
  51.   (vl-cmdf "erase" wt_1 wt_2)
  52.   (vl-cmdf "erase" "" "")
  53.   (vl-cmdf "ucs" "")
  54.   (setvar "cmdecho" cm)
  55.   (setvar "osmode" os)
  56.   (prin1)
  57. )
  58. (defun C:w2(/ cm os wt_text0 wt_text wt_textdata wt_box wt_txpz1 wt_txpz3 wt_1 wt_2)
  59.   (vl-load-com)
  60.   (setq cm (getvar "cmdecho"))
  61.   (setq os (getvar "osmode"))
  62.   (setvar "cmdecho" 0)
  63.   (setvar "osmode" 0)

  64.   (defun *error* (msg) ;错误处理
  65.    (vl-cmdf "" "")
  66.    (vl-cmdf "ucs" "")
  67.    (redraw wt_text 4)
  68.       (vl-cmdf "erase" wt_1 wt_2)
  69.     (setvar "cmdecho" cm)
  70.     (setvar "osmode" os)
  71.    (princ msg)
  72.   );

  73.   (setq wt_text0(entsel"\n选择文本:"))
  74.   (while(or (= wt_text0 nil) (/= (cdr (assoc 0 (entget(car wt_text0)))) "TEXT") )
  75.     (setq wt_text0(entsel"\n选择文本:"))
  76.     )
  77.   (setq wt_text(car wt_text0))
  78.   (setq wt_textdata(entget wt_text))
  79.   (redraw wt_text 3)
  80.   (vl-cmdf "ucs" "e" wt_text)
  81.   (setq wt_box(textbox wt_textdata))
  82.   (setq wt_txpz1(car wt_box)
  83.   wt_txpz3(cadr wt_box)
  84.   )
  85.   (vl-cmdf "xline" "v" wt_txpz1 "")
  86.   (setq wt_1(entlast))
  87.   ;(redraw wt_1 2)
  88.   (vl-cmdf "xline" "v" wt_txpz3 "")
  89.   (setq wt_2(entlast))
  90.   (vl-cmdf "extend" wt_1 wt_2 "" )
  91.   (vl-cmdf pause "")
  92.     ;(vl-cmdf pause "")
  93.     (vl-cmdf "extend" wt_1 wt_2 "" )
  94.   (vl-cmdf pause "")
  95.   
  96.   (vl-cmdf "erase" wt_1 wt_2)
  97.   (vl-cmdf "erase" "" "")
  98.   (vl-cmdf "ucs" "")

  99.   (redraw wt_text 4)
  100.   (setvar "cmdecho" cm)
  101.   (setvar "osmode" os)
  102.   (prin1)
  103.   )
 楼主| 发表于 2017-10-18 17:37:37 | 显示全部楼层
本帖最后由 chenjieq1990 于 2017-10-18 17:40 编辑

其中w1是修剪,w2是延伸。。。
现在使用了两次pause,有点傻,总感觉能够多次修剪和延伸。。。。是不是使用while和getpoint可以实现多次修剪????希望有人能指点一二。。。
 楼主| 发表于 2017-10-18 21:50:02 | 显示全部楼层
ysq101 发表于 2017-10-18 20:42
新手??????????????

啥意思?不太懂哎?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-20 00:07 , Processed in 0.162758 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表