michaeloureiro 发表于 2022-7-5 23:53:13

偏移到图层

大家好,
 
有人知道可以偏移到当前层或所选层的lisp吗?
 
提前感谢!

tzframpton 发表于 2022-7-5 23:57:30

我相信OFFSET命令已经做到了这一点。
 
命令:偏移
指定偏移距离或[通过/擦除/层]

GhostRider 发表于 2022-7-6 00:02:54

是的,这是另一个线程中的一个:
 
;Offset to current layer...excellent program.
(DeFun C:OSET1 (/ LAYER ECHO TEMP
ENTITY)
(SetQ LAYER (GetVar "CLayer")
       ECHO (GetVar "CmdEcho"))
(SetVar "CmdEcho" 0)
(While
(ProgN
(SetQ TEMP (GetString (StrCat
   "\nDestination layer? <"LAYER">:")))
(Cond
   ((Eq TEMP "") Nil)
   ((TblSearch "LAYER" TEMP) (SetQ
    LAYER TEMP) Nil)
   (T (PrinC "\nLayer not found."))
)))
(InitGet (+ 2 4) "Through")
(SetQ TEMP (GetDist (StrCat
"\nOffset distance or Through <"
(If DIST (RToS DIST) "Through")
">: ")))
(Cond
((Eq TEMP "Through") (SetQ DIST Nil))
(TEMP (SetQ DIST TEMP))
)
(SetQ TEMP (If DIST "\nSide to offset?"
"\nThrough point: "))
(While
(And
(SetQ ENTITY (EntSel
   "\nSelect object to offset: "))
(SetQ PT (GetPoint TEMP))
)
(Command ".OFFSET" (If DIST DIST "T")
ENTITY PT "")
(SetQ ENTITY (EntLast)
       ENTITY (EntGet ENTITY)
       ENTITY (SubSt (Cons 8 LAYER)
         (Assoc 8 ENTITY) ENTITY))
(EntMod ENTITY)
)
(SetVar "CmdEcho" ECHO)
(PrinC)
)

michaeloureiro 发表于 2022-7-6 00:06:18

谢谢大家

VVA 发表于 2022-7-6 00:09:42

Express Tools的偏移量

Lee Mac 发表于 2022-7-6 00:17:14

 
是的,我喜欢这个工具-也适用于多个偏移:眨眼:

dblclkmatt 发表于 2022-7-6 00:17:25

有没有办法将一个对象偏移到源层,但将原始对象更改到不同的层,所有这些都在同一个运动中?
 

dblclkmatt 发表于 2022-7-6 00:21:39

 
这有可能吗?
 
我喜欢GhostRider建议的代码,我一直在调整它以尝试这些结果,但我不是程序员,所以我没有运气也就不足为奇了。

Lee Mac 发表于 2022-7-6 00:26:05

下面是一个非常简单的示例:
(defun c:myoffset ( / ent off )
   (if
       (and
         (setq ent (car (entsel "\nSelect object to offset: ")))
         (setq off (getdist "\nSpecify offset distance: "))
       )
       (if (vl-cmdf "_.offset" "_L" "_S" off ent "\\" "")
         (entmod (subst '(8 . "YourLayerHere") (assoc 8 (setq ent (entget ent))) ent))
       )
   )
   (princ)
)

dblclkmatt 发表于 2022-7-6 00:29:17

 
杰出的工作完美!
 
谢谢李!
页: [1] 2
查看完整版本: 偏移到图层