danthecadman 发表于 2022-7-5 23:54:00

Lisp例程偏移线和c

大家好,
 
我有一份工作,我正在抵消一堆线,我需要改变线的颜色,我抵消了它的颜色,我必须不断重复这一点。
 
是否有LISP例程可以在特定距离进行偏移,更改偏移线的颜色,然后重复?
我似乎找不到一个专门做这件事的人,而且我的编程能力很低。

BIGAL 发表于 2022-7-6 00:03:58

你需要先找到一个偏移例程,然后改变颜色,你需要做一个简单的“chprop last”,如果你想在第二个版本中看到彩虹,这个例子将更改为1种颜色
 
; offset code ..........
; offsets a line
(command "chprop" "L" '' "C" 140 "")
; code again

;2nd version
(setq x 10)
; code ...............
; offsets a line
(command "chprop" "L" '' "C" x "")
(setq x (+ x 10))
; code again...........

pBe 发表于 2022-7-6 00:15:19

 
我不太清楚,重复一遍?偏移具有相同距离的对象而不选择其他对象?
 
 
提示距离?或者特定距离的特定颜色?
 
这和比格尔的建议一样简单,但你需要更清楚地了解参数。

satishrajdev 发表于 2022-7-6 00:23:30

试试这个:-
别忘了根据您的要求更改颜色代码。。。。
 
(DEFUN C:TEST (/ A B C)
(VL-LOAD-COM)
(WHILE
   (SETQ A (CAR (ENTSEL "\nSelect Line to Offset :")))
    (INITGET 1)
    (SETQ B (GETDIST "\nSpecify Offset Distance :"))
    (SETQ C (GETPOINT "\nSpecify Point on Side to Offset :"))
    (VLA-OFFSET
      (VLAX-ENAME->VLA-OBJECT A)
      (POINTSIDE A C)
    )
    (VLA-PUT-COLOR (VLAX-ENAME->VLA-OBJECT (ENTLAST)) 1)    ;<- SPECIFY COLOR CODE HERE
)
(PRINC)
)

(DEFUN POINTSIDE (OBJ PNT / P1 PA P2)
(SETQ    P1 (VLAX-CURVE-GETCLOSESTPOINTTO OBJ (TRANS PNT 1 0))
   PA (VLAX-CURVE-GETPARAMATPOINT OBJ P1)
)
(IF (EQUAL '(0.0 0.0 0.0)
      (VLAX-CURVE-GETSECONDDERIV OBJ PA)
      1e-8
   )
   (SETQ P1 (VLAX-CURVE-GETPOINTATPARAM OBJ (FIX PA))
   P2 (VLAX-CURVE-GETPOINTATPARAM OBJ (1+ (FIX PA)))
   )
   (SETQ P2 (MAPCAR '+ P1 (VLAX-CURVE-GETFIRSTDERIV OBJ PA)))
)
(IF (MINUSP (SIN (- (ANGLE P1 PNT) (ANGLE P2 PNT))))
   (SETQ B (- B))
   (SETQ B (+ B))
)
)

pBe 发表于 2022-7-6 00:31:11

Danthecadman,如果颜色和偏移量是恒定的,那么多行(命令MLSTYLE和MLINE)不是更好吗?

MSasu 发表于 2022-7-6 00:36:05

 
也许你是对的,MSasu,猜猜satishrajdev和我都跳枪了!
 

pBe 发表于 2022-7-6 00:40:31

只要把它扔出去,只拾取物体,但你知道哪一侧是偏移侧,没有额外的方向拾取点,是的,这是可以做到的。智能偏移例程。抱歉劫持了邮件。

BIGAL 发表于 2022-7-6 00:53:03

 
别担心,在我看来,是我们劫持了邮报

pBe 发表于 2022-7-6 00:54:49

页: [1]
查看完整版本: Lisp例程偏移线和c