277283904 发表于 2024-1-17 10:01:44

新开一帖,谁能帮写一下,怎么能把拉伸命令和‘cal组合起来一起用呢?

新开一帖,谁能帮写一下,怎么能把拉伸命令和‘cal组合起来一起用呢?:lol

lingduwx 发表于 2024-1-17 13:25:59

本帖最后由 lingduwx 于 2024-1-19 23:08 编辑

只用了拉伸命令,中间没有输入其他的,然后就是输入长度

飞雪神光 发表于 2024-1-27 20:12:07

zhufeng1004 发表于 2024-1-26 23:06
加上记忆功能记住上次拉伸距离就完美了

(defun c:tt (/ ang dis pt1 pt2 ssls)
        (if (null (type c:cal))
    (cond
                        ((findfile "GEOMCAL.CRX") (ARXLOAD "GEOMCAL.CRX"))
                        ((findfile "GEOMCAL.ARX") (ARXLOAD "GEOMCAL.ARX"))
                )
)
        (mapcar 'set '(ang dis) **stretch_dat**)
        (or ang (setq ang 0))
        (or dis (setq dis 100))
        (setq pt2 nil)
        (setq ssls (ssget))
        (setq pt1 (getpoint (strcat "\n指定基点或默认相对基点位移量<" (rtos dis) ">: ")))
        (if ssls
                (progn
                        (if pt1
                                (progn
                                        (command "_.stretch" ssls "" pt1 "non" (cal (getstring "\n输入相对基点位移量算式:")))
                                        (setq pt2 (getvar "lastpoint"))
                                )
                        )
                        (if pt2
                                (setq **stretch_dat** (list (angle pt1 pt2) (distance pt1 pt2)))
                                (progn
                                        (setq pt1 '(0 0 0) pt2 (polar pt1 ang dis))
                                        (command "_.stretch" ssls "" "_non" pt1 "_non" pt2)
                                )
                        )
                )
        )
        (princ)
)

ljpnb 发表于 2024-1-27 22:01:43

本帖最后由 ljpnb 于 2024-1-27 22:04 编辑

;;修改了一下

(defun c:tt (/ s_dis str)
(if (null (type c:cal))
    (cond
      ((findfile "GEOMCAL.CRX") (ARXLOAD "GEOMCAL.CRX"))
      ((findfile "GEOMCAL.ARX") (ARXLOAD "GEOMCAL.ARX"))
    )
)
(command ".STRETCH" (ssget) "")
(command (setq BasicPoint (getpoint "\n指定基点:")))
(if (= nil s_dis_all)
    (progn
      (setq s_dis_all (cal (getstring "\n输入拉伸距离<>:")))
      (command "non" s_dis_all)
    )
    (progn
      (setq str        (getstring
                  (strcat "\n输入拉伸距离<" (rtos s_dis_all 2 4) ">:")
                )
      )
      (if (= str "")
        (setq s_dis s_dis_all)
        (setq s_dis (cal str))
      )

      (command "non" s_dis)
      (setq s_dis_all s_dis)
    )
)
(princ)
)

sniper1111 发表于 2024-1-17 13:14:37

反正都写程序了,不如计算好直接用了,用这个好像更麻烦

wzg356 发表于 2024-1-17 13:48:45

同样问题开多贴有何意义,
如果直接用命令,按要求操作即可,不能同时cal
如果写程序,一个距离要怎么算,用什么算

ssyfeng 发表于 2024-1-17 13:50:34

条条大道通罗马,不要死盯着一条路

277283904 发表于 2024-1-17 14:22:59

wzg356 发表于 2024-1-17 13:48
同样问题开多贴有何意义,
如果直接用命令,按要求操作即可,不能同时cal
如果写程序,一个距离要怎么算 ...

只要按'CAL就可以算出来了,只是每次都要按'CAL,感觉有点麻烦

hubeiwdlue 发表于 2024-1-17 15:07:28

http://www.mjtd.com/forum.php?mod=viewthread&tid=188643&mobile=2&_dsign=639c50ed
kucha007大神写的倍长直线,可能是你想要的效果,稍微修改下就成。

huisguiji 发表于 2024-1-17 17:05:00

lingduwx 发表于 2024-1-17 13:25
只用了拉伸命令,中间没有输入其他的,然后就是输入长度

这个怎么操作的

qazxswk 发表于 2024-1-17 17:11:02

huisguiji 发表于 2024-1-17 17:05
这个怎么操作的

就是拉伸时,先捕捉到起点,然后再输入拉伸距离。

277283904 发表于 2024-1-17 18:14:41

hubeiwdlue 发表于 2024-1-17 15:07
http://www.mjtd.com/forum.php?mod=viewthread&tid=188643&mobile=2&_dsign=639c50ed
kucha007大神写的倍 ...

手机版打不开呢
页: [1] 2 3 4 5
查看完整版本: 新开一帖,谁能帮写一下,怎么能把拉伸命令和‘cal组合起来一起用呢?