Kablamtron 发表于 2022-7-6 09:54:00

抱歉花了这么长时间,伙计们,我忘记贴了!
 
我又换了一次,记得我说过要贴更紧的色带。
 
大卫做了所有的工作,所有的荣誉都归于他!
 

;originally made by David Bethel
;modified by Kablamtron
(defun c:rgb (/ ss i en ed ev el minz delta pc nc)
(if (setq ss (ssget "X" '((0 . "POINT"))))
   (progn
      (setq i (sslength ss))
      (while (setq en (ssname ss (setq i (1- i))))
               (setq ed (entget en)
                     ev (caddr (cdr (assoc 10 ed)))
                     el (cons ev el)))
      (setq minz (apply 'min el)
             delta (- (apply 'max el) (apply 'min el))
                  i -1)
      (while (setq en (ssname ss (setq i (1+ i))))
               (setq ed (entget en)
                     ev (caddr (cdr (assoc 10 ed)))
                     pc (cdr (assoc 62 ed))
                     nc (- 249 (abs (fix (*24.9 (/ (- delta (- ev minz) 1e-4) delta 0.1)))))
                     ed (if pc (subst (cons 62 nc) (cons 62 pc) ed)
                               (append ed (list (cons 62 nc)))))
               (entmod ed))))
(prin1))

stevesfr 发表于 2022-7-6 09:58:09

我当然不能让这些想法中的任何一个为我工作。使用DCA“Point”和acad 2008 vanilla
提前感谢您提供线索
S

Kablamtron 发表于 2022-7-6 10:00:29

嘿,史蒂夫,
 
如果加载修改后的lisp,然后在命令行中键入rgb,则会运行修改后的lisp,
 
原始运行了另一个命令,不记得它是什么。
 
它所做的是选择所有autocad“点”,我的意思是,如果您在命令行中键入“点”并单击,它将选择您制作的内容或图形中是否有现有点。
 
确保点不在块中,或者它无法选择它们。
 
我不确定除了它实际上不是autocad点或点位于未爆炸的块中之外,还有什么可能导致问题。
 
希望这有帮助!
 
卡布拉姆特隆

stevesfr 发表于 2022-7-6 10:04:08

 
在以上提示之后,它现在运行良好。谢谢S

teknomatika 发表于 2022-7-6 10:09:22

出色的工作。是否可以通过为每个颜色组创建不同的层来改进例程?当然,如果能够创建一个图例来识别不同的颜色以及它们在Z值中的对应关系,这将是一件很棒的事情,这就是高光测量比例的例子。

BlackBox 发表于 2022-7-6 10:13:07

 
也许Lee的GrText例程可以帮助您获得想要的结果,而不是将层添加到混合中(因为每个点都已经在一个层上)。

teknomatika 发表于 2022-7-6 10:16:27

 
 
我感谢你的建议。然而,这不是他想要的。当我提到创建层时,我希望每个标高对应一个单独的层。
顺便提一下,添加另一个挑战:采用相同的颜色和图层区分概念,但应用于不同值的多段线​​Z、 它在地形方面的作品会很出色。
页: 1 [2]
查看完整版本: 通过Elevat为点云着色