明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 867|回复: 8

[提问] (求助)各位大神能否帮小弟在以下的代码中把数值改一下

[复制链接]
发表于 2023-12-7 17:51:21 | 显示全部楼层 |阅读模式
6明经币
麻烦各位路过的大神帮忙看一下,代码现在的问题就是,输入的数值比如说:我输入2,但是最终偏移的两边尺寸是4    求大神帮忙改成,输入2,最终的两边偏移的尺寸还是2,谢谢大家了






;双偏留中线
(defun c:SS( / en m n pon ename et ppp ouse )
  (setvar "cmdecho" 1)
  (COMMAND "OFFSET" PAUSE "")
  ;(prompt "\n Select Objects to Offset: ")
  (setq en (ssget))
  (setq m (sslength en ))
  (setq n 0)
  (setvar "cmdecho" 0)
  (repeat m
    (setq ename (ssname en n))
    (setq et  (entget ename))
    (setq ppp (trans (cdr (assoc 10 et)) 0 1))
    (setq ouse (list ename ppp))
    (setq pon  (trans (list (+ (car ppp) 1001) (- (cadr ppp) 1000) ) 0 1 ))
    (command "offset" "" ouse pon "")
    (setq ouse (list (entlast) (trans (cdr (assoc 10 (entget (entlast)))) 0 1)))
    (command "offset" (* (getvar "offsetdist") 2 )  ouse ppp "")
    (command "offset" (/ (getvar "offsetdist") 2 ) "")
    (setq n (+ n 1))
  )
)



附件: 您需要 登录 才可以下载或查看,没有账号?注册

最佳答案

查看完整内容

我小白,不是大神 (defun c:tt( / en m n pon ename et ppp ouse x) (setvar "cmdecho" 1) (COMMAND "OFFSET" PAUSE "") ;(prompt "\n Select Objects to Offset: ") (setq en (ssget)) (setq m (sslength en )) (setq n 0) (setvar "cmdecho" 0) (setq x (*(getvar "offsetdist")0.5)) (repeat m (setq ename (ssname en n)) (setq et (entget ename)) (setq ppp (trans (cdr (assoc ...
发表于 2023-12-7 17:51:22 | 显示全部楼层
我小白,不是大神
(defun c:tt( / en m n pon ename et ppp ouse x)
  (setvar "cmdecho" 1)
  (COMMAND "OFFSET" PAUSE "")
  ;(prompt "\n Select Objects to Offset: ")
  (setq en (ssget))
  (setq m (sslength en ))
  (setq n 0)
  (setvar "cmdecho" 0)
  (setq x (*(getvar "offsetdist")0.5))
  (repeat m
    (setq ename (ssname en n))
    (setq et  (entget ename))
    (setq ppp (trans (cdr (assoc 10 et)) 0 1))
    (setq ouse (list ename ppp))
    (setq pon  (trans (list (+ (car ppp) 1001) (- (cadr ppp) 1000) ) 0 1 ))
;    (command "offset" "" ouse pon "")
(command "offset" x ouse pon "")
    (setq ouse (list (entlast) (trans (cdr (assoc 10 (entget (entlast)))) 0 1)))
    (command "offset" (* (getvar "offsetdist") 2 )  ouse ppp "")
    (command "offset" (/ (getvar "offsetdist") 2 ) "")
    (setq n (+ n 1))
  )
)
回复

使用道具 举报

发表于 2023-12-7 18:21:14 | 显示全部楼层
;双偏留中线
(defun c:SS( / en m n pon ename et ppp ouse )
  (setvar "cmdecho" 1)
  (COMMAND "OFFSET" PAUSE "")
  ;(prompt "\n Select Objects to Offset: ")
  (setq en (ssget))
  (setq m (sslength en ))
  (setq n 0)
  (setvar "cmdecho" 0)
  (repeat m
    (setq ename (ssname en n))
    (setq et  (entget ename))
    (setq ppp (trans (cdr (assoc 10 et)) 0 1))
    (setq ouse (list ename ppp))
    (setq pon  (trans (list (+ (car ppp) 1001) (- (cadr ppp) 1000) ) 0 1 ))
    (command "offset" (*(getvar "offsetdist")0.5) ouse pon "")
    (setq ouse (list (entlast) (trans (cdr (assoc 10 (entget (entlast)))) 0 1)))
    (command "offset" (* (getvar "offsetdist") 2 )  ouse ppp "")
    (command "offset" (/ (getvar "offsetdist") 2 ) "")
    (setq n (+ n 1))
  )
)
回复

使用道具 举报

 楼主| 发表于 2023-12-7 21:26:07 | 显示全部楼层
努.力 发表于 2023-12-7 18:21
;双偏留中线
(defun c:SS( / en m n pon ename et ppp ouse )
  (setvar "cmdecho" 1)

大神您好,您改后的确实可以实现我想要的,就是我这边试了一下,之前的是能实现批量的,现在改后就不能批量了,可不可以帮忙再改一下呢,谢谢您啦
回复

使用道具 举报

 楼主| 发表于 2023-12-7 22:37:10 | 显示全部楼层
努.力 发表于 2023-12-7 21:40
我小白,不是大神
(defun c:tt( / en m n pon ename et ppp ouse x)
  (setvar "cmdecho" 1)

大神非常棒,能解决问题的就是大神,哈哈,您太谦虚了,谢谢您帮我解决了问题
回复

使用道具 举报

发表于 2023-12-7 23:00:15 | 显示全部楼层
  1. (defun c:tt (/ d)
  2.         (if (and (or (and (setq d (getreal "\n输入双线间距<2>")) (/= d 0))
  3.                                                  (setq d 2)
  4.                                          )
  5.                                 (setq d (* d 0.5))
  6.                                 (ssget '((0 . "*LINE,ARC,CIRCLE,ELLIPSE")))                               
  7.                         )
  8.                 (vlax-for e (vla-get-activeselectionset (vla-get-ActiveDocument (vlax-get-acad-object)))
  9.                         (vl-catch-all-apply 'vla-Offset (list e d))
  10.                         (vl-catch-all-apply 'vla-Offset (list e (- d)))
  11.                 )
  12.         )
  13.         (princ)
  14. )

评分

参与人数 3明经币 +3 金钱 +5 收起 理由
hubeiwdlue + 1 波总的代码总是这样的简洁明了。
999999 + 1 + 5 赞一个!
努.力 + 1 很给力!

查看全部评分

回复

使用道具 举报

发表于 2023-12-7 23:57:01 | 显示全部楼层

高效简洁,厉害
回复

使用道具 举报

 楼主| 发表于 2023-12-8 08:19:56 | 显示全部楼层

谢谢大神的支持
回复

使用道具 举报

发表于 2024-1-16 21:48:39 | 显示全部楼层
确实简洁明了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 23:39 , Processed in 0.198169 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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