luyu9635 发表于 2009-2-24 19:00:00

[原创]批量偏移

<p>咸觉好用就用吧,命令是qq,功能见主题,不保证百分百成功,大多数情况是没问题的,用法见提示,</p><p></p>

luyu9635 发表于 2009-2-24 20:50:00

觉得好用的,帮忙顶一下

chenlianghuai 发表于 2025-6-21 14:46:31

dforme 发表于 2016-6-16 14:09
谢谢,我这里有个相似的程序,但是只能改变原对象的颜色,能否帮我看看,让偏移后的对象颜色改变,比如4 ...

(defun C:w3 ( / curve ent holdcmd holdosmode jang n pt pt1 pt2 ss tmp x)
(defun LEN (CURVE / TLEN)
    (setq TLEN (vlax-curve-getdistatparam CURVE (vlax-curve-getendparam CURVE)))
)

(command "_.UNDO" "BE")
(if (null tee_dist) (setq tee_dist 10.0)) ;_设置全局变量
(setq HOLDOSMODE (getvar "OSMODE"))
(setq HOLDCMD (getvar "CMDECHO"))
(setvar "CMDECHO" 0)
(setvar "OSMODE" 0)
(if (setq ss (ssget '((0 . "*LINE,CIRCLE,ARC"))))
    (progn
      (setq n 0)
      (initget 2)
      (if (setq tmp (getdist (strcat "\n指定偏移距离(正__向外偏移 /负__向内偏移): <" (rtos tee_dist 2) ">")))
         (setq tee_dist tmp)
) ;_不输入时自动使用上一次输入数值
      (repeat (sslength ss)
(setq ent (ssname ss n)
       n   (1+ n)
)
(setq CURVE (vlax-ename->vla-object ENT)
       x   (vlax-curve-getParamAtDist curve (/ (len curve) 3.33))
       pt    (vlax-curve-getPointAtParam curve x)
);_获得线上指定距离值的点及参数
(setq JANG (angle '(0 0 0) (vlax-curve-getfirstderiv CURVE X)))
(setq PT1 (polar PT (+ JANG (* 0.5 pi)) 0.00000001))
(setq PT2 (polar PT (- JANG (* 0.5 pi)) 0.00000001))
(command "_.OFFSET" (abs tee_dist) ENT PT1 "")
(if (or (and (> tee_dist 0) (> (LEN CURVE) (LEN (entlast))))
(and (< tee_dist 0) (< (LEN CURVE) (LEN (entlast))))
   )
   (progn
   (entdel (entlast))
   (command "_.OFFSET" (abs tee_dist) ENT PT2 "")
       (command "change" (entlast) "" "p" "c" 4 "")
   )
)
      )
    )
)

;;<<<
;;改变颜色
;;参考http://bbs.mjtd.com/forum.php?mod=viewthread&tid=101254
   ;(command "change" ss "" "p" "c" 4 "")
;;<<<
(setvar "OSMODE" HOLDOSMODE)
(setvar "CMDECHO" HOLDCMD)
(command "_.UNDO" "E")
(princ)
)

longlongfe 发表于 2009-2-25 09:36:00

<p>如果能同时偏移N个指定的距离就好了</p>

lengliqun 发表于 2009-4-14 10:04:00

很好,谢谢。

liminnet 发表于 2009-4-14 14:02:00

luyu9635 发表于 2009-4-14 23:57:00

<p>既然大家有兴趣就放出代码,有要求的自己改吧</p><p>&nbsp;</p>

luyu9635 发表于 2009-4-15 00:08:00

上面漏了一句(setq end(entlast)),不然颜色不会变

phoenixdjq 发表于 2009-4-15 08:36:00

<p>还是请楼主把源程序完善一下吧</p><p>谢谢!</p>

luyu9635 发表于 2009-4-16 20:11:00

phoenixdjq发表于2009-4-15 8:36:00static/image/common/back.gif还是请楼主把源程序完善一下吧谢谢!

<p>要怎么完善?</p>

rzg0972 发表于 2009-4-19 14:51:00

支持原创,支持源码
页: [1] 2 3 4
查看完整版本: [原创]批量偏移