明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 277283904

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

[复制链接]
发表于 2024-1-27 20:12:07 | 显示全部楼层
zhufeng1004 发表于 2024-1-26 23:06
加上记忆功能  记住上次拉伸距离就完美了

  1. (defun c:tt (/ ang dis pt1 pt2 ssls)
  2.         (if (null (type c:cal))
  3.     (cond
  4.                         ((findfile "GEOMCAL.CRX") (ARXLOAD "GEOMCAL.CRX"))
  5.                         ((findfile "GEOMCAL.ARX") (ARXLOAD "GEOMCAL.ARX"))
  6.                 )
  7.   )
  8.         (mapcar 'set '(ang dis) **stretch_dat**)
  9.         (or ang (setq ang 0))
  10.         (or dis (setq dis 100))
  11.         (setq pt2 nil)
  12.         (setq ssls (ssget))
  13.         (setq pt1 (getpoint (strcat "\n指定基点或默认相对基点位移量<" (rtos dis) ">: ")))
  14.         (if ssls
  15.                 (progn
  16.                         (if pt1
  17.                                 (progn
  18.                                         (command "_.stretch" ssls "" pt1 "non" (cal (getstring "\n输入相对基点位移量算式:")))
  19.                                         (setq pt2 (getvar "lastpoint"))
  20.                                 )
  21.                         )
  22.                         (if pt2
  23.                                 (setq **stretch_dat** (list (angle pt1 pt2) (distance pt1 pt2)))
  24.                                 (progn
  25.                                         (setq pt1 '(0 0 0) pt2 (polar pt1 ang dis))
  26.                                         (command "_.stretch" ssls "" "_non" pt1 "_non" pt2)
  27.                                 )
  28.                         )
  29.                 )
  30.         )
  31.         (princ)
  32. )
发表于 2024-1-27 21:24:24 | 显示全部楼层

下面这个程序的记忆功能比较好,就是没有计算功能》》》    你的试了一下好像和我想的不一样
(defun c:ss (/ s_dis)
  (command ".STRETCH" (ssget) "")
  (command (setq BasicPoint (getpoint "\n指定基点:")))
  (if (= nil s_dis_all)
    (progn
      (setq s_dis_all (getreal "\n输入拉伸距离:"))
      (command s_dis_all)
    )
    (progn
      (setq
s_dis (getreal
  (strcat "\n输入拉伸距离<" (rtos s_dis_all 2 4) ">:")
       )
      )
      (if (= nil s_dis)
(setq s_dis s_dis_all)
      )
      (command s_dis)
      (setq s_dis_all s_dis)
    )
  )
)
发表于 2024-1-27 21:26:27 | 显示全部楼层

能把CAL   jj加在我的下面这个程序里面吗
发表于 2024-1-27 22:01:43 | 显示全部楼层
本帖最后由 ljpnb 于 2024-1-27 22:04 编辑
  1. ;;修改了一下

  2. (defun c:tt (/ s_dis str)
  3.   (if (null (type c:cal))
  4.     (cond
  5.       ((findfile "GEOMCAL.CRX") (ARXLOAD "GEOMCAL.CRX"))
  6.       ((findfile "GEOMCAL.ARX") (ARXLOAD "GEOMCAL.ARX"))
  7.     )
  8.   )
  9.   (command ".STRETCH" (ssget) "")
  10.   (command (setq BasicPoint (getpoint "\n指定基点:")))
  11.   (if (= nil s_dis_all)
  12.     (progn
  13.       (setq s_dis_all (cal (getstring "\n输入拉伸距离<>:")))
  14.       (command "non" s_dis_all)
  15.     )
  16.     (progn
  17.       (setq str        (getstring
  18.                   (strcat "\n输入拉伸距离<" (rtos s_dis_all 2 4) ">:")
  19.                 )
  20.       )
  21.       (if (= str "")
  22.         (setq s_dis s_dis_all)
  23.         (setq s_dis (cal str))
  24.       )

  25.       (command "non" s_dis)
  26.       (setq s_dis_all s_dis)
  27.     )
  28.   )
  29.   (princ)
  30. )

评分

参与人数 1明经币 +1 收起 理由
zhufeng1004 + 1 赞一个!

查看全部评分

发表于 2024-1-27 23:05:23 | 显示全部楼层
不错。多谢分享
发表于 2024-2-28 16:35:43 | 显示全部楼层
lingduwx 发表于 2024-1-17 13:25
只用了拉伸命令,中间没有输入其他的,然后就是输入长度

你这是用了插件吧,正常拉伸是输入多少拉多少,你这是直接输入得这个结果
发表于 2024-5-5 21:29:58 | 显示全部楼层
拉伸到,配合TK直接输入拉伸的目标长度。根本不需要CAL计算或写代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 17:27 , Processed in 0.176729 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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